Skip to content

fix(quests): model repeat point restoration - #174

Merged
zoeyrose merged 1 commit into
mainfrom
fix/repeat-reset-restoration-clock-main
Aug 12, 2026
Merged

zoeyrose merged 1 commit into
mainfrom
fix/repeat-reset-restoration-clock-main

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 12, 2026 •

Copy link
Copy Markdown
Member

Summary

  • remove the invalid player-level mutation from the repeat-reset regression
  • model elapsed quest-point restoration through the production quest-container clock
  • assert full restoration before verifying repeat-state reset
  • paired 1.x companion: fix(quests): model repeat point restoration #175

Validation

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

Program context

Classic PR atrinik/classic#180 consumed v1.8.12 and proved that the prior fixture attempted to mutate player level, which the Classic Python API correctly exposes as read-only.

This correction leaves player state untouched. It starts with all naturally available points, consumes the point through production fail(), advances the writable quest-container restoration clock by 20 hours, asserts full point restoration, and verifies that repeat-state reset then occurs. All mutated quest-container state is restored with addCleanup; production code is unchanged.

This PR does not close atrinik/atrinik#356 or atrinik/classic#169.

@zoeyrose
zoeyrose merged commit 80fc2eb into main Aug 12, 2026
5 checks passed
@zoeyrose
zoeyrose deleted the fix/repeat-reset-restoration-clock-main branch August 12, 2026 02:48
zoeyrose added a commit that referenced this pull request Aug 12, 2026
## Summary

- remove the invalid player-level mutation from the repeat-reset
regression
- model elapsed quest-point restoration through the production
quest-container clock
- assert full restoration before verifying repeat-state reset
- canonical `main` change: #174

## Validation

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

## Program context

Classic PR atrinik/classic#180 consumed v1.8.12
and proved that the prior fixture attempted to mutate player `level`,
which the Classic Python API correctly exposes as read-only.

This correction leaves player state untouched. It starts with all
naturally available points, consumes the point through production
`fail()`, advances the writable quest-container restoration clock by 20
hours, asserts full point restoration, and verifies that repeat-state
reset then occurs. All mutated quest-container state is restored with
`addCleanup`; production code is unchanged.

This maintenance fix must publish a corrected 1.8.x runtime before
Classic PR #180 can merge.
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.9.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

- remove the invalid player-level mutation from the repeat-reset
regression
- model elapsed quest-point restoration through the production
quest-container clock
- assert full restoration before verifying repeat-state reset
- paired `1.x` companion: #175

## Validation

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

## Program context

Classic PR atrinik/classic#180 consumed v1.8.12
and proved that the prior fixture attempted to mutate player `level`,
which the Classic Python API correctly exposes as read-only.

This correction leaves player state untouched. It starts with all
naturally available points, consumes the point through production
`fail()`, advances the writable quest-container restoration clock by 20
hours, asserts full point restoration, and verifies that repeat-state
reset then occurs. All mutated quest-container state is restored with
`addCleanup`; production code is unchanged.

This PR does not close atrinik/atrinik#356 or atrinik/classic#169.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(release): keep Classic packages current with verified content@1.x releases

1 participant