mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
use static upkeep method for IsStepCondition
This commit is contained in:
parent
e19f7c22b7
commit
bbbc2e5baf
12 changed files with 71 additions and 86 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package mage.cards.c;
|
package mage.cards.c;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
|
@ -12,12 +11,10 @@ import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffec
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledLandPermanent;
|
import mage.filter.common.FilterControlledLandPermanent;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -38,7 +35,7 @@ public final class CoffinPuppets extends CardImpl {
|
||||||
private static final Condition condition = new CompoundCondition(
|
private static final Condition condition = new CompoundCondition(
|
||||||
"during your upkeep and only if you control a Swamp",
|
"during your upkeep and only if you control a Swamp",
|
||||||
new PermanentsOnTheBattlefieldCondition(filter),
|
new PermanentsOnTheBattlefieldCondition(filter),
|
||||||
new IsStepCondition(PhaseStep.UPKEEP)
|
IsStepCondition.getMyUpkeep()
|
||||||
);
|
);
|
||||||
|
|
||||||
public CoffinPuppets(UUID ownerId, CardSetInfo setInfo) {
|
public CoffinPuppets(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package mage.cards.c;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.Condition;
|
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||||
|
|
@ -12,7 +11,6 @@ import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -22,8 +20,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class ColossusOfSardia extends CardImpl {
|
public final class ColossusOfSardia extends CardImpl {
|
||||||
|
|
||||||
private static final Condition condition = new IsStepCondition(PhaseStep.UPKEEP);
|
|
||||||
|
|
||||||
public ColossusOfSardia(UUID ownerId, CardSetInfo setInfo) {
|
public ColossusOfSardia(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{9}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{9}");
|
||||||
this.subtype.add(SubType.GOLEM);
|
this.subtype.add(SubType.GOLEM);
|
||||||
|
|
@ -38,7 +34,9 @@ public final class ColossusOfSardia extends CardImpl {
|
||||||
this.addAbility(new SimpleStaticAbility(new DontUntapInControllersUntapStepSourceEffect()));
|
this.addAbility(new SimpleStaticAbility(new DontUntapInControllersUntapStepSourceEffect()));
|
||||||
|
|
||||||
// {9}: Untap Colossus of Sardia. Activate this ability only during your upkeep.
|
// {9}: Untap Colossus of Sardia. Activate this ability only during your upkeep.
|
||||||
this.addAbility(new ConditionalActivatedAbility(new UntapSourceEffect(), new GenericManaCost(9), condition));
|
this.addAbility(new ConditionalActivatedAbility(
|
||||||
|
new UntapSourceEffect(), new GenericManaCost(9), IsStepCondition.getMyUpkeep()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ColossusOfSardia(final ColossusOfSardia card) {
|
private ColossusOfSardia(final ColossusOfSardia card) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.DelayedTriggeredAbility;
|
import mage.abilities.DelayedTriggeredAbility;
|
||||||
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
|
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
|
||||||
import mage.abilities.common.delayed.AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility;
|
import mage.abilities.common.delayed.AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility;
|
||||||
import mage.abilities.condition.Condition;
|
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
|
|
@ -44,14 +43,13 @@ public final class CyclopeanTomb extends CardImpl {
|
||||||
filter.add(Predicates.not(SubType.SWAMP.getPredicate()));
|
filter.add(Predicates.not(SubType.SWAMP.getPredicate()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Condition condition = new IsStepCondition(PhaseStep.UPKEEP);
|
|
||||||
|
|
||||||
public CyclopeanTomb(UUID ownerId, CardSetInfo setInfo) {
|
public CyclopeanTomb(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||||
|
|
||||||
// {2}, {tap}: Put a mire counter on target non-Swamp land. That land is a Swamp for as long as it has a mire counter on it. Activate this ability only during your upkeep.
|
// {2}, {tap}: Put a mire counter on target non-Swamp land. That land is a Swamp for as long as it has a mire counter on it. Activate this ability only during your upkeep.
|
||||||
Ability ability = new ConditionalActivatedAbility(
|
Ability ability = new ConditionalActivatedAbility(
|
||||||
new AddCountersTargetEffect(CounterType.MIRE.createInstance()), new GenericManaCost(2), condition
|
new AddCountersTargetEffect(CounterType.MIRE.createInstance()),
|
||||||
|
new GenericManaCost(2), IsStepCondition.getMyUpkeep()
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetPermanent(filter));
|
ability.addTarget(new TargetPermanent(filter));
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,7 @@
|
||||||
|
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
|
||||||
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.costs.Cost;
|
import mage.abilities.costs.Cost;
|
||||||
|
|
@ -14,16 +11,21 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
||||||
import mage.abilities.keyword.FirstStrikeAbility;
|
import mage.abilities.keyword.FirstStrikeAbility;
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
|
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.Zone;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class EbonPraetor extends CardImpl {
|
public final class EbonPraetor extends CardImpl {
|
||||||
|
|
@ -45,8 +47,11 @@ public final class EbonPraetor extends CardImpl {
|
||||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.M2M2.createInstance())));
|
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.M2M2.createInstance())));
|
||||||
|
|
||||||
// Sacrifice a creature: Remove a -2/-2 counter from Ebon Praetor. If the sacrificed creature was a Thrull, put a +1/+0 counter on Ebon Praetor. Activate this ability only during your upkeep and only once each turn.
|
// Sacrifice a creature: Remove a -2/-2 counter from Ebon Praetor. If the sacrificed creature was a Thrull, put a +1/+0 counter on Ebon Praetor. Activate this ability only during your upkeep and only once each turn.
|
||||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.M2M2.createInstance()),
|
Ability ability = new LimitedTimesPerTurnActivatedAbility(
|
||||||
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE), 1, new IsStepCondition(PhaseStep.UPKEEP));
|
Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.M2M2.createInstance()),
|
||||||
|
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE),
|
||||||
|
1, IsStepCondition.getMyUpkeep()
|
||||||
|
);
|
||||||
ability.addEffect(new EbonPraetorEffect());
|
ability.addEffect(new EbonPraetorEffect());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
|
|
@ -12,12 +10,11 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class EmberwildeAugur extends CardImpl {
|
public final class EmberwildeAugur extends CardImpl {
|
||||||
|
|
@ -32,10 +29,8 @@ public final class EmberwildeAugur extends CardImpl {
|
||||||
|
|
||||||
// Sacrifice Emberwilde Augur: Emberwilde Augur deals 3 damage to target player. Activate this ability only during your upkeep.
|
// Sacrifice Emberwilde Augur: Emberwilde Augur deals 3 damage to target player. Activate this ability only during your upkeep.
|
||||||
Ability ability = new ActivateIfConditionActivatedAbility(
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
|
||||||
new DamageTargetEffect(3, "it"),
|
new DamageTargetEffect(3, "it"),
|
||||||
new SacrificeSourceCost(),
|
new SacrificeSourceCost(), IsStepCondition.getMyUpkeep());
|
||||||
new IsStepCondition(PhaseStep.UPKEEP));
|
|
||||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.TargetController;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
|
@ -49,12 +51,11 @@ public final class EnergyVortex extends CardImpl {
|
||||||
|
|
||||||
// {X}: Put X vortex counters on Energy Vortex. Activate this ability only during your upkeep.
|
// {X}: Put X vortex counters on Energy Vortex. Activate this ability only during your upkeep.
|
||||||
this.addAbility(new ActivateIfConditionActivatedAbility(
|
this.addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
|
||||||
new AddCountersSourceEffect(
|
new AddCountersSourceEffect(
|
||||||
CounterType.VORTEX.createInstance(),
|
CounterType.VORTEX.createInstance(),
|
||||||
GetXValue.instance, true
|
GetXValue.instance, true
|
||||||
), new ManaCostsImpl<>("{X}"),
|
), new ManaCostsImpl<>("{X}"),
|
||||||
new IsStepCondition(PhaseStep.UPKEEP)
|
IsStepCondition.getMyUpkeep()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
|
|
@ -10,14 +8,13 @@ import mage.abilities.effects.common.DestroyTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.target.common.TargetArtifactPermanent;
|
import mage.target.common.TargetArtifactPermanent;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class GateToPhyrexia extends CardImpl {
|
public final class GateToPhyrexia extends CardImpl {
|
||||||
|
|
@ -26,9 +23,10 @@ public final class GateToPhyrexia extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}{B}");
|
||||||
|
|
||||||
// Sacrifice a creature: Destroy target artifact. Activate this ability only during your upkeep and only once each turn.
|
// Sacrifice a creature: Destroy target artifact. Activate this ability only during your upkeep and only once each turn.
|
||||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(),
|
Ability ability = new LimitedTimesPerTurnActivatedAbility(
|
||||||
|
Zone.BATTLEFIELD, new DestroyTargetEffect(),
|
||||||
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE),
|
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE),
|
||||||
1, new IsStepCondition(PhaseStep.UPKEEP));
|
1, IsStepCondition.getMyUpkeep());
|
||||||
ability.addTarget(new TargetArtifactPermanent());
|
ability.addTarget(new TargetArtifactPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
|
||||||
|
|
@ -16,21 +15,21 @@ import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Ketsuban
|
* @author Ketsuban
|
||||||
*/
|
*/
|
||||||
public final class InfernalSpawnOfEvil extends CardImpl {
|
public final class InfernalSpawnOfEvil extends CardImpl {
|
||||||
|
|
||||||
public InfernalSpawnOfEvil(UUID ownerId, CardSetInfo setInfo) {
|
public InfernalSpawnOfEvil(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[] { CardType.CREATURE }, "{6}{B}{B}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{B}{B}{B}");
|
||||||
this.subtype.add(SubType.BEAST);
|
this.subtype.add(SubType.BEAST);
|
||||||
|
|
||||||
this.power = new MageInt(7);
|
this.power = new MageInt(7);
|
||||||
|
|
@ -47,13 +46,13 @@ public final class InfernalSpawnOfEvil extends CardImpl {
|
||||||
// Activate this ability only during your upkeep and only once each turn.
|
// Activate this ability only during your upkeep and only once each turn.
|
||||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.HAND, new DamageTargetEffect(1),
|
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.HAND, new DamageTargetEffect(1),
|
||||||
new CompositeCost(
|
new CompositeCost(
|
||||||
new ManaCostsImpl<>("{1}{B}"),
|
new ManaCostsImpl<>("{1}{B}"),
|
||||||
new CompositeCost(
|
new CompositeCost(
|
||||||
new RevealSourceFromYourHandCost(),
|
new RevealSourceFromYourHandCost(),
|
||||||
new SayCost("It's coming!"),
|
new SayCost("It's coming!"),
|
||||||
"Reveal {this} from your hand, Say \"It's coming!\""),
|
"Reveal {this} from your hand, Say \"It's coming!\""),
|
||||||
"{1}{B}, Reveal {this} from your hand, Say \"It's coming!\""),
|
"{1}{B}, Reveal {this} from your hand, Say \"It's coming!\""),
|
||||||
1, new IsStepCondition(PhaseStep.UPKEEP, true));
|
1, IsStepCondition.getMyUpkeep());
|
||||||
ability.addTarget(new TargetOpponentOrPlaneswalker());
|
ability.addTarget(new TargetOpponentOrPlaneswalker());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package mage.cards.k;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.condition.CompoundCondition;
|
import mage.abilities.condition.CompoundCondition;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.condition.common.MetalcraftCondition;
|
import mage.abilities.condition.common.MetalcraftCondition;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
|
@ -13,7 +14,10 @@ import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.HasteAbility;
|
import mage.abilities.keyword.HasteAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.AbilityWord;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -22,6 +26,11 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class KuldothaPhoenix extends CardImpl {
|
public final class KuldothaPhoenix extends CardImpl {
|
||||||
|
|
||||||
|
private static final Condition condition = new CompoundCondition(
|
||||||
|
"during your upkeep and only if you control three or more artifacts",
|
||||||
|
IsStepCondition.getMyUpkeep(), MetalcraftCondition.instance
|
||||||
|
);
|
||||||
|
|
||||||
public KuldothaPhoenix(UUID ownerId, CardSetInfo setInfo) {
|
public KuldothaPhoenix(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}{R}");
|
||||||
this.subtype.add(SubType.PHOENIX);
|
this.subtype.add(SubType.PHOENIX);
|
||||||
|
|
@ -37,9 +46,7 @@ public final class KuldothaPhoenix extends CardImpl {
|
||||||
// Activate this ability only during your upkeep and only if you control three or more artifacts.
|
// Activate this ability only during your upkeep and only if you control three or more artifacts.
|
||||||
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
|
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
|
||||||
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
|
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
|
||||||
new ManaCostsImpl<>("{4}"),
|
new ManaCostsImpl<>("{4}"), condition
|
||||||
new CompoundCondition("during your upkeep and only if you control three or more artifacts",
|
|
||||||
new IsStepCondition(PhaseStep.UPKEEP), MetalcraftCondition.instance)
|
|
||||||
);
|
);
|
||||||
ability.setAbilityWord(AbilityWord.METALCRAFT);
|
ability.setAbilityWord(AbilityWord.METALCRAFT);
|
||||||
ability.addHint(MetalcraftHint.instance);
|
ability.addHint(MetalcraftHint.instance);
|
||||||
|
|
@ -54,5 +61,4 @@ public final class KuldothaPhoenix extends CardImpl {
|
||||||
public KuldothaPhoenix copy() {
|
public KuldothaPhoenix copy() {
|
||||||
return new KuldothaPhoenix(this);
|
return new KuldothaPhoenix(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,29 +1,24 @@
|
||||||
|
|
||||||
package mage.cards.m;
|
package mage.cards.m;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.target.Target;
|
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class MtendaGriffin extends CardImpl {
|
public final class MtendaGriffin extends CardImpl {
|
||||||
|
|
@ -32,10 +27,10 @@ public final class MtendaGriffin extends CardImpl {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(SubType.GRIFFIN.getPredicate());
|
filter.add(SubType.GRIFFIN.getPredicate());
|
||||||
}
|
}
|
||||||
|
|
||||||
public MtendaGriffin(UUID ownerId, CardSetInfo setInfo) {
|
public MtendaGriffin(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||||
this.subtype.add(SubType.GRIFFIN);
|
this.subtype.add(SubType.GRIFFIN);
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
@ -44,16 +39,13 @@ public final class MtendaGriffin extends CardImpl {
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
// {W}, {tap}: Return Mtenda Griffin to its owner's hand and return target Griffin card from your graveyard to your hand. Activate this ability only during your upkeep.
|
// {W}, {tap}: Return Mtenda Griffin to its owner's hand and return target Griffin card from your graveyard to your hand. Activate this ability only during your upkeep.
|
||||||
Effect effect = new ReturnToHandSourceEffect(true);
|
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||||
effect.setText("Return Mtenda Griffin to its owner's hand");
|
new ReturnToHandSourceEffect(true),
|
||||||
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
|
new ManaCostsImpl<>("{W}"), IsStepCondition.getMyUpkeep()
|
||||||
effect, new ManaCostsImpl<>("{W}"), new IsStepCondition(PhaseStep.UPKEEP));
|
);
|
||||||
effect = new ReturnToHandTargetEffect();
|
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
effect.setText("and return target Griffin card from your graveyard to your hand");
|
ability.addEffect(new ReturnFromGraveyardToHandTargetEffect().concatBy("and"));
|
||||||
ability.addEffect(effect);
|
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||||
Target target = new TargetCardInYourGraveyard(filter);
|
|
||||||
ability.addTarget(target);
|
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,16 @@ package mage.cards.t;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.condition.Condition;
|
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.keyword.HasteAbility;
|
import mage.abilities.keyword.HasteAbility;
|
||||||
import mage.abilities.keyword.InspiredAbility;
|
import mage.abilities.keyword.InspiredAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.turn.TurnMod;
|
import mage.game.turn.TurnMod;
|
||||||
import mage.game.turn.UpkeepStep;
|
import mage.game.turn.UpkeepStep;
|
||||||
|
|
@ -21,8 +23,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class TheNinthDoctor extends CardImpl {
|
public final class TheNinthDoctor extends CardImpl {
|
||||||
|
|
||||||
private static final Condition condition = new IsStepCondition(PhaseStep.UNTAP);
|
|
||||||
|
|
||||||
public TheNinthDoctor(UUID ownerId, CardSetInfo setInfo) {
|
public TheNinthDoctor(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}");
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
@ -35,7 +35,7 @@ public final class TheNinthDoctor extends CardImpl {
|
||||||
|
|
||||||
// Into the TARDIS — Whenever The Ninth Doctor becomes untapped during your untap step, you get an additional upkeep step after this step.
|
// Into the TARDIS — Whenever The Ninth Doctor becomes untapped during your untap step, you get an additional upkeep step after this step.
|
||||||
this.addAbility(new InspiredAbility(new TheNinthDoctorEffect(), false, false)
|
this.addAbility(new InspiredAbility(new TheNinthDoctorEffect(), false, false)
|
||||||
.withTriggerCondition(condition)
|
.withTriggerCondition(IsStepCondition.getMyUpkeep())
|
||||||
.withFlavorWord("Into the TARDIS"));
|
.withFlavorWord("Into the TARDIS"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,10 @@
|
||||||
package mage.abilities.keyword;
|
package mage.abilities.keyword;
|
||||||
|
|
||||||
import mage.abilities.ActivatedAbilityImpl;
|
import mage.abilities.ActivatedAbilityImpl;
|
||||||
import mage.abilities.condition.Condition;
|
|
||||||
import mage.abilities.condition.common.IsStepCondition;
|
import mage.abilities.condition.common.IsStepCondition;
|
||||||
import mage.abilities.costs.Cost;
|
import mage.abilities.costs.Cost;
|
||||||
import mage.abilities.costs.common.RevealSourceFromYourHandCost;
|
import mage.abilities.costs.common.RevealSourceFromYourHandCost;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -26,12 +24,10 @@ import mage.constants.Zone;
|
||||||
*/
|
*/
|
||||||
public class ForecastAbility extends ActivatedAbilityImpl {
|
public class ForecastAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
private static final Condition upkeepCondition = new IsStepCondition(PhaseStep.UPKEEP, true);
|
|
||||||
|
|
||||||
public ForecastAbility(Effect effect, Cost cost) {
|
public ForecastAbility(Effect effect, Cost cost) {
|
||||||
super(Zone.HAND, effect, cost);
|
super(Zone.HAND, effect, cost);
|
||||||
this.maxActivationsPerTurn = 1;
|
this.maxActivationsPerTurn = 1;
|
||||||
this.condition = upkeepCondition;
|
this.condition = IsStepCondition.getMyUpkeep();
|
||||||
this.addCost(new RevealSourceFromYourHandCost());
|
this.addCost(new RevealSourceFromYourHandCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue