Skip to content

Support fading counters with correct upkeep sacrifice timing - #330

Open
valzargaming wants to merge 2 commits into
mainfrom
improve/fading-counters
Open

valzargaming wants to merge 2 commits into
mainfrom
improve/fading-counters

Conversation

@valzargaming

Copy link
Copy Markdown
Member

Summary

  • Add exact numbered Fading through existing entry counters, controller-upkeep triggers, and sacrifice handling.
  • Removing the last fade counter does not sacrifice the permanent. The next upkeep sacrifices it only if a counter cannot be removed, unlike Vanishing.
  • Preserve source-incarnation boundaries and the original trigger controller's inability to sacrifice a permanent someone else now controls.
  • Document the measured corpus delta and explicitly unsupported complex fading-card clauses. No saved-state schema change beyond Resolve slow cantrip draws through a persisted upkeep trigger #329.

Validation

  • Focused suite: 19 tests / 311 assertions passed.
  • Independent source/test review: no blocking findings.
  • Final integrated full suite with the local corpus: 713 tests / 102,978 assertions, zero skips, including all imported-card parsing and 50 official-deck simulations.
  • Full Pint and whitespace checks passed. Tests are offline; no live bot or deployment.

Tests exercise the complete fading lifecycle, zero/last counters, indestructibility and sacrifice observers, counter payments/response additions and removals, original-controller restrictions, source removal/blink, multiple instances, save/resume, and a distinct Vanishing regression.

Recognition, not blanket gameplay support

Same hashed local MTGJSON 5.3.0+20261019 corpus, after #329:

  • All imported pools: 11,278 → 11,287 / 28,729 (39.3%), +9.
  • Modern: unchanged at 9,520 / 22,399 (42.5%).

New wholly recognized entries: Blastoderm, Cloudskate, Defender en-Vec, Jolting Merfolk, Phyrexian Prowler, Rejuvenation Chamber, Skyshroud Behemoth, Skyshroud Ridgeback, Woodripper. Their relevant counter effects/lifecycle are tested; this is not a certification of every possible interaction. Ancient Hydra, Tangle Wire and other complex cards still expose unsupported text. Coverage remains incomplete. See docs/fading-coverage.md.

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.

2 participants