* Fixed that the becomes land effects of Gaea's Liege and Graceful Antelope did not end when the source left the battlefield.

This commit is contained in:
LevelX2 2019-01-06 11:11:09 +01:00
parent ca18c6a283
commit 554e8076cf
4 changed files with 23 additions and 24 deletions

View file

@ -1,6 +1,6 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
@ -28,8 +28,6 @@ import mage.game.combat.CombatGroup;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.target.common.TargetLandPermanent; import mage.target.common.TargetLandPermanent;
import java.util.UUID;
/** /**
* *
* @author anonymous * @author anonymous
@ -55,8 +53,8 @@ public final class GaeasLiege extends CardImpl {
new SetPowerToughnessSourceEffect(new DefendersForestCount(), Duration.EndOfCombat), new SetPowerToughnessSourceEffect(new DefendersForestCount(), Duration.EndOfCombat),
new InvertCondition(SourceAttackingCondition.instance), new InvertCondition(SourceAttackingCondition.instance),
"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."))); "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. // {T}: Target land becomes a Forest until Gaea's Liege leaves the battlefield.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.WhileOnBattlefield, SubType.FOREST), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.UntilSourceLeavesBattlefield, SubType.FOREST), new TapSourceCost());
ability.addTarget(new TargetLandPermanent()); ability.addTarget(new TargetLandPermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,6 +1,6 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
@ -11,11 +11,8 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.target.Target;
import mage.target.common.TargetLandPermanent; import mage.target.common.TargetLandPermanent;
import java.util.UUID;
/** /**
* *
* @author cbt33, Loki (Contaminated Ground), Plopman (Larceny) * @author cbt33, Loki (Contaminated Ground), Plopman (Larceny)
@ -32,9 +29,8 @@ public final class GracefulAntelope extends CardImpl {
// Plainswalk // Plainswalk
this.addAbility(new PlainswalkAbility()); this.addAbility(new PlainswalkAbility());
// Whenever Graceful Antelope deals combat damage to a player, you may have target land become a Plains until Graceful Antelope leaves the battlefield. // Whenever Graceful Antelope deals combat damage to a player, you may have target land become a Plains until Graceful Antelope leaves the battlefield.
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new BecomesBasicLandTargetEffect(Duration.WhileOnBattlefield, SubType.PLAINS), true); Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new BecomesBasicLandTargetEffect(Duration.UntilSourceLeavesBattlefield, SubType.PLAINS), true);
Target target = new TargetLandPermanent(); ability.addTarget(new TargetLandPermanent());
ability.addTarget(target);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,14 +1,13 @@
package mage.abilities.effects; package mage.abilities.effects;
import java.util.*;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.MageSingleton; import mage.abilities.MageSingleton;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import java.util.*;
/** /**
* @param <T> * @param <T>
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
@ -106,6 +105,11 @@ public class ContinuousEffectsList<T extends ContinuousEffect> extends ArrayList
if (effect.isInactive(ability, game)) { if (effect.isInactive(ability, game)) {
it.remove(); it.remove();
} }
break;
case UntilSourceLeavesBattlefield:
if (Zone.BATTLEFIELD != game.getState().getZone(ability.getSourceId())) {
it.remove();
}
} }
} }
} }

View file

@ -12,6 +12,7 @@ public enum Duration {
WhileInGraveyard("", false), WhileInGraveyard("", false),
EndOfTurn("until end of turn", true), EndOfTurn("until end of turn", true),
UntilYourNextTurn("until your next turn", true), UntilYourNextTurn("until your next turn", true),
UntilSourceLeavesBattlefield("until {source} leaves the battlefield", true), // supported for continuous layered effects
EndOfCombat("until end of combat", true), EndOfCombat("until end of combat", true),
EndOfStep("until end of phase step", true), EndOfStep("until end of phase step", true),
Custom("", true); Custom("", true);