Skip to content

fix: end invalid Dodge benefits permanently - #142

Merged
dajiaohuang merged 3 commits into
mainfrom
fix/134-dodge-lifecycle
Sep 1, 2026
Merged

fix: end invalid Dodge benefits permanently#142
dajiaohuang merged 3 commits into
mainfrom
fix/134-dodge-lifecycle

Conversation

@dajiaohuang

@dajiaohuang dajiaohuang commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a source-bound 2014 Dodge lifecycle contract based on encounter-owned effective speed and incapacitating conditions
  • permanently clear the current Dodge benefit when speed reaches 0 or the actor becomes incapacitated, recording the reason so later restoration cannot reactivate it
  • reconcile legacy encounter projections before and after condition/speed synchronization, so the first effect-removal write upgrades stale dodging=True snapshots without duplicate logs
  • reuse the same active-state helper for normal/opportunity attack preflight and generic Dexterity saves
  • register the mechanic only in the 2014 core rule pack and refresh the official-expansion lock from the checksum produced by the seeded core-content validation path

This PR intentionally makes no completeness claim for the 2024 Dodge lifecycle; 2024 Slow mastery effective-speed projection is tracked separately in #144.

Verification

  • pytest packages/domain/tests -q
  • pytest packages/mcp/tests/test_combat_transaction_boundaries_mcp.py -q
  • pytest packages/mcp/tests/test_combat_transaction_boundaries_mcp.py -k "zero_speed_dodge or legacy_invalid_dodge" -q
  • pytest packages/mcp/tests/test_official_expansions_mcp.py::test_official_expansion_lock_matches_seeded_core_content -q
  • focused Dodge/core-boundary domain tests
  • ruff check packages/domain packages/mcp
  • git diff --check

The full MCP suite was sampled through more than 7% after the focused MCP file passed; the unchanged origin/main baseline was independently green at 1020 passed, 1 skipped.

Closes #134

@dajiaohuang
dajiaohuang merged commit 803d0c5 into main Sep 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

End the 2014 Dodge benefit when effective speed drops to zero

1 participant