diff --git a/Mage.Sets/src/mage/cards/g/GaeasLiege.java b/Mage.Sets/src/mage/cards/g/GaeasLiege.java index 4ffddd66093..27ca80114fc 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasLiege.java +++ b/Mage.Sets/src/mage/cards/g/GaeasLiege.java @@ -30,10 +30,11 @@ package mage.cards.g; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.AttackingCondition; import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; @@ -72,8 +73,11 @@ public class GaeasLiege extends CardImpl { this.toughness = new MageInt(0); // As long as Gaea's Liege isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as Gaea's Liege is attacking, its power and toughness are each equal to the number of Forests defending player controls. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.EndOfGame))); - this.addAbility(new AttacksTriggeredAbility(new SetPowerToughnessSourceEffect(new DefendersForestCount(), Duration.EndOfCombat), false)); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new ConditionalContinuousEffect( + new SetPowerToughnessSourceEffect(new DefendersForestCount(), Duration.EndOfCombat), + new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.EndOfGame), + AttackingCondition.getInstance(), + "As long as {this} isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as {this} is attacking, its power and toughness are each equal to the number of Forests defending player controls."))); // {tap}: Target land becomes a Forest until Gaea's Liege leaves the battlefield. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.WhileOnBattlefield, "Forest"), new TapSourceCost()); ability.addTarget(new TargetLandPermanent()); diff --git a/Mage.Sets/src/mage/cards/p/ProteanHydra.java b/Mage.Sets/src/mage/cards/p/ProteanHydra.java index 84a9e1bfd06..ceada0c831a 100644 --- a/Mage.Sets/src/mage/cards/p/ProteanHydra.java +++ b/Mage.Sets/src/mage/cards/p/ProteanHydra.java @@ -34,7 +34,6 @@ import mage.abilities.DelayedTriggeredAbility; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.PreventionEffectData; import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect; diff --git a/Mage.Sets/src/mage/cards/r/RockHydra.java b/Mage.Sets/src/mage/cards/r/RockHydra.java index a8145666b46..b7c06ef61a2 100644 --- a/Mage.Sets/src/mage/cards/r/RockHydra.java +++ b/Mage.Sets/src/mage/cards/r/RockHydra.java @@ -87,7 +87,7 @@ public class RockHydra extends CardImpl { public RockHydraEffect() { super(Duration.WhileOnBattlefield, Integer.MAX_VALUE, false, false); - staticText = "For each 1 damage that would be dealt to Rock Hydra, if it has a +1/+1 counter on it, remove a +1/+1 counter from it and prevent that 1 damage."; + staticText = "For each 1 damage that would be dealt to {this}, if it has a +1/+1 counter on it, remove a +1/+1 counter from it and prevent that 1 damage."; } public RockHydraEffect(final RockHydraEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/condition/common/AttackingCondition.java b/Mage/src/main/java/mage/abilities/condition/common/AttackingCondition.java new file mode 100644 index 00000000000..a1b315a3b09 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/AttackingCondition.java @@ -0,0 +1,30 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author anonymous + */ +public class AttackingCondition implements Condition { + + private static final AttachedCondition fInstance = new AttachedCondition(); + + public static AttachedCondition getInstance() { + return fInstance; + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getSourceId()); + return permanent != null && permanent.isAttacking(); + } +}