You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
State each closed set in one place: healing services and the morale exempt code #108
Two places where a closed set is stated twice or a code carries two meanings, both found by reviewers during the docstring pass.
PurchaseHealing.service is a Literal in crawl/commands.py and HEALING_SERVICES in crawl/exploration.py is a dict with the same keys and the prices. Adding a service to one does nothing without the other, and the docstring on HEALING_SERVICES had to warn about it (Docstrings: crawl exploration #87). Derive one from the other, or make the service table the single source and validate the command against it.
MoraleCheckedEvent emits one code, combat.morale.exempt, for two opposite outcomes: a score of 2 or less never holds and a score of 12 or more always holds. The score field is the only discriminator, so a consumer cannot render the outcome from the code alone, which every other event in the catalog lets it do (Docstrings: core effects and events #95). Two codes, or an outcome field the code already carries elsewhere.
Both are additive within the schema version: a new code and a derived table change no existing field. Update the generated message-code and rejection-code pages in the same change.
Activity
mmacy commentedon Sep 15, 2026
Both items landed: HealingService is the one home of the service set (#116), and MoraleCheckedEvent.held states the verdict on every code (#117).