add ConditionalActivatedAbility code to ActivateIfConditionActivatedAbility

This commit is contained in:
theelk801 2025-06-18 15:43:31 -04:00
parent fe1b01114f
commit f89efd226a

View file

@ -5,14 +5,21 @@ import mage.abilities.condition.Condition;
import mage.abilities.condition.InvertCondition; import mage.abilities.condition.InvertCondition;
import mage.abilities.costs.Cost; import mage.abilities.costs.Cost;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.Effects;
import mage.constants.EffectType;
import mage.constants.TimingRule; import mage.constants.TimingRule;
import mage.constants.Zone; import mage.constants.Zone;
import mage.game.Game;
/** /**
* @author LevelX2 * @author LevelX2
*/ */
public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
private static final Effects emptyEffects = new Effects();
private String conditionText = null;
public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) { public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) {
this(Zone.BATTLEFIELD, effect, cost, condition); this(Zone.BATTLEFIELD, effect, cost, condition);
} }
@ -24,6 +31,24 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) { protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {
super(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 @Override
@ -48,7 +73,6 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
sb.append(" and only as a sorcery"); sb.append(" and only as a sorcery");
} }
sb.append('.'); sb.append('.');
return sb.toString(); return sb.toString();
} }
@ -56,5 +80,4 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
public ActivateIfConditionActivatedAbility copy() { public ActivateIfConditionActivatedAbility copy() {
return new ActivateIfConditionActivatedAbility(this); return new ActivateIfConditionActivatedAbility(this);
} }
} }