Skip to content

fix(quests): accept unset repeat delay - #170

Merged
zoeyrose merged 1 commit into
1.xfrom
fix/quest-repeat-delay-type-1x
Aug 12, 2026
Merged

zoeyrose merged 1 commit into
1.xfrom
fix/quest-repeat-delay-type-1x

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 12, 2026 •

Copy link
Copy Markdown
Member

Summary

  • replace the invalid isinstance(..., (int, None)) repeat-delay check with the valid NoneType
  • unblock Classic's existing repeat-quest regression test with an unset delay
  • deliver the maintained Classic-line companion to canonical main PR fix(quests): accept unset repeat delay #169

Validation

  • python3 -m compileall -q maps/python
  • python3 tools/validate.py
  • git diff --check

Program context

Discovered by the App-authored lock PR atrinik/classic#180 while delivering atrinik/atrinik#356 and atrinik/classic#169. PR #180 must not merge until a corrected 1.x release is published and the updater refreshes it.

This maintenance PR should publish the next 1.8.x patch through normal Semantic Release after merge. It intentionally does not close the program or Classic issue.

zoeyrose added a commit that referenced this pull request Aug 12, 2026
## Summary

- replace the invalid `isinstance(..., (int, None))` repeat-delay check
with the valid `NoneType`
- preserve the existing acceptance of integer delays and unset delays
- deliver the compatible fix on `main`; paired `1.x` companion:
#170

## Validation

- `python3 -m compileall -q maps/python`
- `python3 tools/validate.py`
- `git diff --check`

## Program context

Discovered by the App-authored lock PR
atrinik/classic#180 while delivering
atrinik/atrinik#356 and atrinik/classic#169. PR #180 must not merge
until a corrected 1.x release is published and the updater refreshes it.

This PR intentionally does not close the program or Classic issue;
downstream publication, lock, rehearsal, and audit gates remain.
@zoeyrose
zoeyrose merged commit cae0396 into 1.x Aug 12, 2026
5 checks passed
@zoeyrose
zoeyrose deleted the fix/quest-repeat-delay-type-1x branch August 12, 2026 01:20
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.8.10 🎉

The release is available on:

Your semantic-release bot 📦🚀

zoeyrose added a commit that referenced this pull request Aug 23, 2026
## Base update

#170 and #171 are merged. This branch is rebased directly onto merged
#171 (`66a3f0c53`), so the PR now contains only its gameplay/server
changes. It contains no inherited #171 client/protocol files or
metaserver Worker files; the Worker implementation is owned by its
separate repository.

## Summary

- distribute kill XP across the skills that actually contributed damage,
while preserving party sharing, anti-kill-steal boundaries, XP caps, and
loot eligibility
- make trap finding/disarming probabilistic and anti-reroll, retain a
meaningful trip risk, increase direct trap damage, prevent
double-triggering reusable traps, and calculate trap XP like
level-relative kill XP
- send depletion as applied in its first item update and refresh
flags/tooltips immediately after death/stat drain
- recommend the implemented `remove depletion` spell in authored content
- ignore zero-value/non-progressive disease symptoms during symptom
reduction

Closes #121.
Closes #144.

## Validation

- full warning-as-error Linux client/server build after realignment
- all 25 CTest targets, including QUIC network integration and Python
plugin runtime
- focused attack, living, and rune regression suites
- narrow archetype collection confirming the corrected depletion tooltip
- targeted clang-tidy review, repository formatting, and `git diff
--check`
- audited the complete `master...HEAD` file list to confirm the
separately owned Worker implementation is absent

## Review attention

The branch includes bounded/tag-validated per-victim contribution state
and deterministic per-player/trap probability hashing. Live balance
attention should focus on mixed-skill boss fights, party members
changing maps at death, corpse-heavy level 10-30 areas, high-skill
disarmers, and reusable/multi-payload runes.
zoeyrose added a commit that referenced this pull request Aug 23, 2026
## Summary

- replace the invalid `isinstance(..., (int, None))` repeat-delay check
with the valid `NoneType`
- preserve the existing acceptance of integer delays and unset delays
- deliver the compatible fix on `main`; paired `1.x` companion:
#170

## Validation

- `python3 -m compileall -q maps/python`
- `python3 tools/validate.py`
- `git diff --check`

## Program context

Discovered by the App-authored lock PR
atrinik/classic#180 while delivering
atrinik/atrinik#356 and atrinik/classic#169. PR #180 must not merge
until a corrected 1.x release is published and the updater refreshes it.

This PR intentionally does not close the program or Classic issue;
downstream publication, lock, rehearsal, and audit gates remain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant