master #56

Merged
Failure merged 58 commits from External/mage:master into master 2026-02-19 22:03:40 -08:00
Owner
No description provided.
Fix incorrect target on noncombat damage to player triggers
It is the player paying the blight cost that puts the counters on their
creatures.  Without specifying this explicitly it defaults to the
controller of the ability triggering the blight, which is not
necessarily the same as the player paying the blight cost.

Fixes https://github.com/magefree/mage/issues/14421
Attribute blight counter placement to player paying blight cost
When an ability triggers due to being forced to discard by an opponent,
that ability should always go off even when the source of the ability
goes to a zone other than the graveyard.

Fixes https://github.com/magefree/mage/issues/14419

Co-authored-by: matoro <matoro@users.noreply.github.com>
* Make Vastwood Animist use CreatureToken instead of custom private token

* Make Turn // Burn use CreatureToken instead of custom private token

* Make Wind Zendikon use CreatureToken instead of custom private token

* Make Woodwraith Corrupter use CreatureToken instead of custom private token

* Make Wakeroot Elemental use CreatureToken instead of custom private token

* Make Xanthic Statue use CreatureToken instead of custom private token
* Refactor to use CreatureToken: Balduvian Frostwalker

* Refactor to use CreatureToken: Skinshifter

* Refactor to use CreatureToken: Bogardan Dragonheart

* Don't piggyback off an existing token
* Refactor to use CreatureToken: Cacophony Unleashed

* Refactor to use CreatureToken: Case of the Filched Falcon

* Refactor to use CreatureToken: Case of the Gorgon's Kiss

* Refactor to use CreatureToken: Chromium the Mutable

* Refactor to use CreatureToken: Clan Guildmage

* Refactor to use CreatureToken: Corrupted Zendikon

* Refactor to use CreatureToken: Crusher Zendikon
* Refactor to use CreatureToken: Dancing Sword

* Refactor to use CreatureToken: Darksteel Mutation

* Refactor to use CreatureToken: Deep Freeze

* Refactor to use CreatureToken: Dance of the Skywise

* Refactor to use CreatureToken: Dread Statuary

* Refactor to use CreatureToken: Dromoka Monument

* Refactor to use CreatureToken: Druid Class

* PR comments
* Refactor to use CreatureToken: Elemental Uprising

* Refactor to use CreatureToken: Hidden Stag

* Refactor to use CreatureToken: Elvish Branchbender

* Refactor to use CreatureToken: Embodiment of Fury

* Refactor to use CreatureToken: Embodiment of Insight

* Refactor to use CreatureToken: Ensouled Scimitar
* Refactor to use CreatureToken: Faceless Haven

* Refactor to use CreatureToken: Faerie Conclave

* Refactor to use CreatureToken: Forbidding Watchtower

* Refactor to use CreatureToken: Foriysian Totem

* Refactor to use CreatureToken: Fountain of Ichor

* Refactor to use CreatureToken: Frostwalk Bastion
* Refactor private GargoyleToken to CreatureToken

* Refactor private GhituEncampmentToken to CreatureToken

* Refactor private GiantToken to CreatureToken

* Refactor private GideonAllyOfZendikarToken to CreatureToken

* Refactor private GideonBlackbladeToken to CreatureToken

* Refactor private GideonChampionOfJusticeToken to CreatureToken

* Refactor private GideonJuraToken to CreatureToken

* Refactor private GideonMartialParagonToken to CreatureToken

* Refactor private GideonOfTheTrialsToken to CreatureToken

* Refactor private GideonTheOathswornToken to CreatureToken

* Refactor private GlintHawkIdolToken to CreatureToken

* Refactor private GolgariKeyruneToken to CreatureToken

* Refactor private GruulKeyruneToken to CreatureToken

* Refactor private GruulWarPlowToken to CreatureToken

* Refactor private GuardianIdolGolemToken to CreatureToken

* Refactor private GuardianZendikonWallToken to CreatureToken
* Refactor private HalcyonGlazeToken to CreatureToken

* Refactor private HissingQuagmireToken to CreatureToken

* Refactor private HuntingWildsToken to CreatureToken

* Refactor private HydroformToken to CreatureToken
* Refactor private InkmothNexusToken to CreatureToken

* Refactor private IzzetKeyruneToken to CreatureToken
* Refactor private JadeIdolToken to CreatureToken

* Refactor private KolaghanMonumentToken to CreatureToken

* Refactor private KothOfTheHammerToken to CreatureToken
* Refactor private LavaclawReachesToken to CreatureToken

* Refactor private LifecraftAwakeningToken to CreatureToken

* Refactor private LumberingFallsToken to CreatureToken

* Refactor private LurkingEvilToken to CreatureToken
* Refactor private MishrasGroundbreakerToken to CreatureToken

* Refactor private MobilizedDistrictToken to CreatureToken

* Refactor private MythRealizedToken to CreatureToken
* Refactor private NantukoMonasteryToken to CreatureToken

* Refactor private NeedleSpiresToken to CreatureToken

* Refactor private NissaStewardOfElementsToken to CreatureToken

* Refactor private NissaVitalForceToken to CreatureToken

* Refactor private NissaWhoShakesTheWorldToken to CreatureToken

* Refactor private NissaWorldwakerToken to CreatureToken

* Refactor private NissasZendikonToken to CreatureToken

* Add an option for losing other subtypes on becoming a creature. Correct Nissa's Zendikon to use this
* Refactor private ObuunMulDayaAncestorToken to CreatureToken

* Refactor private OjutaiMonumentToken to CreatureToken

* Refactor private OozeToken to CreatureToken

* Refactor private OrzhovKeyruneToken to CreatureToken

* Correct Ooze Garden to use the correct public token
* Refactor private PhantasmalFormToken to CreatureToken

* Refactor private PhantasmalSphereToken to CreatureToken

* Refactor private PhyrexianTotemToken to CreatureToken

* Refactor private PrimalAdversaryToken to CreatureToken

* Refactor private QuirionDruidToken to CreatureToken
* Refactor private RakdosKeyruneToken to CreatureToken

* Refactor private ReprobationToken to CreatureToken

* Refactor private ReptilianReflectionToken to CreatureToken

* Refactor private RiddleformToken to CreatureToken

* Refactor private RustedRelicToken to CreatureToken
There is an explicit ruling on this:
> The granted ability triggers on all damage dealt by the creature to one of your opponents, not just combat damage.
> (2011-06-01)

Co-authored-by: matoro <matoro@users.noreply.github.com>
Without setting the target of the earthbend animate effect, it defaults
to the first target of the ability, and thus on a multiple apply the
animate effect applies twice to the first target.

Fixes https://github.com/magefree/mage/issues/14426

Co-authored-by: matoro <matoro@users.noreply.github.com>
This was doing a direct access to the tagsMap data structure, which is
null when no tags have been applied to the object.

Fixes https://github.com/magefree/mage/issues/14414

Co-authored-by: matoro <matoro@users.noreply.github.com>
* Refactor private ApeToken to CreatureToken

* Refactor private AvalancheCallerToken to CreatureToken

* Refactor private AwakenElementalToken to CreatureToken

* Refactor private AwakenerDruidToken to CreatureToken

* Refactor private AwakeningOfVituGhaziToken to CreatureToken
* Refactor private TheCurseOfFenricHorrorToken to CreatureToken

* Refactor private ThunderTotemToken to CreatureToken

* Refactor private TreefolkToken to CreatureToken
Failure merged commit eec10fe558 into master 2026-02-19 22:03:40 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Failure/foul-magics!56
No description provided.