From f89efd226a7bfb501695ef946c22781bb18ec9ae Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 18 Jun 2025 15:43:31 -0400 Subject: [PATCH] add ConditionalActivatedAbility code to ActivateIfConditionActivatedAbility --- .../ActivateIfConditionActivatedAbility.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java index ffd7f05860c..ad45dc342fe 100644 --- a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java @@ -5,14 +5,21 @@ import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; import mage.abilities.costs.Cost; import mage.abilities.effects.Effect; +import mage.abilities.effects.Effects; +import mage.constants.EffectType; import mage.constants.TimingRule; import mage.constants.Zone; +import mage.game.Game; /** * @author LevelX2 */ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { + private static final Effects emptyEffects = new Effects(); + + private String conditionText = null; + public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) { this(Zone.BATTLEFIELD, effect, cost, condition); } @@ -24,6 +31,24 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) { super(ability); + this.conditionText = ability.conditionText; + } + + @Override + public Effects getEffects(Game game, EffectType effectType) { + if (!condition.apply(game, this)) { + return emptyEffects; + } + return super.getEffects(game, effectType); + } + + public ActivateIfConditionActivatedAbility hideCondition() { + return withConditionText(""); + } + + public ActivateIfConditionActivatedAbility withConditionText(String conditionText) { + this.conditionText = conditionText; + return this; } @Override @@ -48,7 +73,6 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { sb.append(" and only as a sorcery"); } sb.append('.'); - return sb.toString(); } @@ -56,5 +80,4 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { public ActivateIfConditionActivatedAbility copy() { return new ActivateIfConditionActivatedAbility(this); } - }