Skip to content

[SOI] Fix Sage of Ancient Lore's back face dying as a 0/0 on transform - #16587

Merged
xenohedron merged 1 commit into
magefree:masterfrom
MaxFreedomPollard:fix/sage-of-ancient-lore
Nov 4, 2026
Merged

xenohedron merged 1 commit into
magefree:masterfrom
MaxFreedomPollard:fix/sage-of-ancient-lore

Conversation

@MaxFreedomPollard

Copy link
Copy Markdown
Contributor

Fixes #16121
Fixes #14156

Werewolf of Ancient Hunger, the back face of Sage of Ancient Lore (SOI), reads "Werewolf of Ancient Hunger's power and toughness are each equal to the total number of cards in all players' hands." In XMage it dies as a 0/0 as soon as Sage of Ancient Lore transforms.

Both faces wrapped their P/T characteristic-defining ability in ConditionalContinuousEffect(..., NotTransformedCondition.instance, ...) (Mage.Sets/src/mage/cards/s/SageOfAncientLore.java, lines 39-45 and 63-69 on master). NotTransformedCondition returns !permanent.isTransformed(), which is always false while the back face is up. So the back face's P/T was never set, and state-based actions put it into the graveyard.

Changes:

  • Both faces now use new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(...)). That is the same pattern used by Westvale Cult Leader (Hanweir Militia Captain), Invasion of Xerex and Maro. The front face doesn't need the condition either: when the permanent transforms, it loses the front face's abilities, so they stop applying.
  • The front face text is now generated as "{this}'s power and toughness are each equal to the number of cards in your hand", which matches Oracle. The old text said "the total number". The back face keeps its explicit text, because CardsInAllHandsCount.getMessage() already starts with "the total number".
  • Removed NotTransformedCondition, as suggested in Sage of Ancient Lore - back face condition incorrectly implemented #16121. Sage of Ancient Lore was its only user.
  • Added SageOfAncientLoreTest. It checks that the front face is 3/3 with three cards in hand. It also checks that after the card transforms on turn 2, Werewolf of Ancient Hunger is still on the battlefield as a 6/6 (three cards in each player's hand, counting player B's draw).

This was not compiled or run locally, so the new test has not been run yet.

🤖 Generated with Claude Code

Both P/T characteristic-defining abilities were wrapped in a
ConditionalContinuousEffect with NotTransformedCondition. On the back face
that condition is false whenever the permanent is transformed, so Werewolf
of Ancient Hunger never got its P/T set and died to state-based actions as
a 0/0 right after transforming.

Use plain SetBasePowerToughnessSourceEffect CDAs on both faces like other
transforming cards (Hanweir Militia Captain, Invasion of Xerex). The front
face text now matches Oracle ("the number of cards in your hand"). Remove
NotTransformedCondition, which had no other usages.

Fixes #16121
Fixes #14156

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@wreckavp

This comment was marked as spam.

@xenohedron
xenohedron merged commit 669acc9 into magefree:master Nov 4, 2026
3 checks passed
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.

Sage of Ancient Lore - back face condition incorrectly implemented Sage of ancient Lore / Werewolf of Ancient Hunger

3 participants