From 1b8602bd153cc0b13c60663cacf2c6e7380fd8ad Mon Sep 17 00:00:00 2001 From: xenohedron <12538125+xenohedron@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:46:07 -0400 Subject: [PATCH] improve text generation for intervening if triggers --- Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java | 2 +- Mage.Sets/src/mage/cards/r/RalsStaticaster.java | 2 +- Mage.Sets/src/mage/cards/r/RisonaAsariCommander.java | 2 +- Mage.Sets/src/mage/cards/s/SoulhunterRakshasa.java | 3 ++- Mage.Sets/src/mage/cards/t/TerritorialAllosaurus.java | 4 +++- Mage.Sets/src/mage/cards/t/TyrantOfValakut.java | 2 +- Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java | 1 + 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java b/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java index 3da23f749cc..2fe9d2e2682 100644 --- a/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java +++ b/Mage.Sets/src/mage/cards/k/KangeeAerieKeeper.java @@ -55,7 +55,7 @@ public final class KangeeAerieKeeper extends CardImpl { // When Kangee, Aerie Keeper enters the battlefield, if it was kicked, put X feather counters on it. this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect( CounterType.FEATHER.createInstance(), GetXValue.instance, true - )).withInterveningIf(KickedCondition.ONCE)); + )).withInterveningIf(KickedCondition.ONCE).withRuleTextReplacement(true)); // Other Bird creatures get +1/+1 for each feather counter on Kangee, Aerie Keeper. this.addAbility(new SimpleStaticAbility(new BoostAllEffect( diff --git a/Mage.Sets/src/mage/cards/r/RalsStaticaster.java b/Mage.Sets/src/mage/cards/r/RalsStaticaster.java index 4429d34a0dd..3745ab51b15 100644 --- a/Mage.Sets/src/mage/cards/r/RalsStaticaster.java +++ b/Mage.Sets/src/mage/cards/r/RalsStaticaster.java @@ -40,7 +40,7 @@ public final class RalsStaticaster extends CardImpl { // Whenever Ral's Staticaster attacks, if you control a Ral planeswalker, Ral's Staticaster gets +1/+0 for each card in your hand until end of turn. this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect( CardsInControllerHandCount.ANY, StaticValue.get(0), Duration.EndOfTurn - )).withInterveningIf(condition)); + ).setText("this creature gets +1/+0 for each card in your hand until end of turn")).withInterveningIf(condition)); } private RalsStaticaster(final RalsStaticaster card) { diff --git a/Mage.Sets/src/mage/cards/r/RisonaAsariCommander.java b/Mage.Sets/src/mage/cards/r/RisonaAsariCommander.java index bd0bbdeba0a..ca678994940 100644 --- a/Mage.Sets/src/mage/cards/r/RisonaAsariCommander.java +++ b/Mage.Sets/src/mage/cards/r/RisonaAsariCommander.java @@ -45,7 +45,7 @@ public final class RisonaAsariCommander extends CardImpl { // Whenever Risona, Asari Commander deals combat damage to a player, if it doesn't have an indestructible counter on it, put an indestructible counter on it. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new AddCountersSourceEffect( CounterType.INDESTRUCTIBLE.createInstance()), false - ).withInterveningIf(RisonaAsariCommanderCondition.instance)); + ).withInterveningIf(RisonaAsariCommanderCondition.instance).withRuleTextReplacement(true)); // Whenever combat damage is dealt to you, remove an indestructible counter from Risona. this.addAbility(new RisonaAsariCommanderTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SoulhunterRakshasa.java b/Mage.Sets/src/mage/cards/s/SoulhunterRakshasa.java index ed83aaec369..a1f38766859 100644 --- a/Mage.Sets/src/mage/cards/s/SoulhunterRakshasa.java +++ b/Mage.Sets/src/mage/cards/s/SoulhunterRakshasa.java @@ -37,7 +37,8 @@ public final class SoulhunterRakshasa extends CardImpl { // When Soulhunter Rakshasa enters the battlefield, if you cast it from your hand, it deals 1 damage to target opponent for each Swamp you control. Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(xValue)) - .withInterveningIf(CastFromHandSourcePermanentCondition.instance); + .withInterveningIf(CastFromHandSourcePermanentCondition.instance) + .withRuleTextReplacement(true); ability.addTarget(new TargetOpponent()); this.addAbility(ability, new CastFromHandWatcher()); } diff --git a/Mage.Sets/src/mage/cards/t/TerritorialAllosaurus.java b/Mage.Sets/src/mage/cards/t/TerritorialAllosaurus.java index 0c41c0014fc..2ab55d1ebef 100644 --- a/Mage.Sets/src/mage/cards/t/TerritorialAllosaurus.java +++ b/Mage.Sets/src/mage/cards/t/TerritorialAllosaurus.java @@ -31,7 +31,9 @@ public final class TerritorialAllosaurus extends CardImpl { this.addAbility(new KickerAbility("{2}{G}")); // When Territorial Allosaurus enters the battlefield, if it was kicked, it fights another target creature. - Ability ability = new EntersBattlefieldTriggeredAbility(new FightTargetSourceEffect()).withInterveningIf(KickedCondition.ONCE); + Ability ability = new EntersBattlefieldTriggeredAbility(new FightTargetSourceEffect()) + .withInterveningIf(KickedCondition.ONCE) + .withRuleTextReplacement(true); ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TyrantOfValakut.java b/Mage.Sets/src/mage/cards/t/TyrantOfValakut.java index 6e22c3202be..35063c1b7be 100644 --- a/Mage.Sets/src/mage/cards/t/TyrantOfValakut.java +++ b/Mage.Sets/src/mage/cards/t/TyrantOfValakut.java @@ -34,7 +34,7 @@ public final class TyrantOfValakut extends CardImpl { // When Tyrant of Valakut enters the battlefield, if its surge cost was paid, it deals 3 damage to any target. Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(3)) - .withInterveningIf(SurgedCondition.instance); + .withInterveningIf(SurgedCondition.instance).withRuleTextReplacement(true); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); } diff --git a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java index 93100ce08c3..fd9e0142291 100644 --- a/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/TriggeredAbilityImpl.java @@ -218,6 +218,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge @Override public TriggeredAbility withInterveningIf(Condition interveningIfCondition) { this.interveningIfCondition = interveningIfCondition; + this.replaceRuleText = false; return this; }