mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 13:19:18 -08:00
refactor: simplify BeginningOfUpkeepTriggeredAbility (#13046)
* remove superfluous zone.battlefield * remove redundant TargetController.YOU * remove unneeded param * simpler constructor with default optional false * move to inheritance structure remove setTargetPointer * adjust * align trigger phrase text * add comments, fix param * fix params and text * fix params to fix text * simplify * package reorg
This commit is contained in:
parent
eee0fee79e
commit
587a68a837
944 changed files with 2188 additions and 3009 deletions
|
|
@ -1,127 +0,0 @@
|
|||
package mage.abilities.common;
|
||||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
*/
|
||||
public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private final TargetController targetController;
|
||||
private final boolean setTargetPointer;
|
||||
|
||||
public BeginningOfUpkeepTriggeredAbility(Effect effect, TargetController targetController, boolean isOptional) {
|
||||
this(Zone.BATTLEFIELD, effect, targetController, isOptional);
|
||||
}
|
||||
|
||||
public BeginningOfUpkeepTriggeredAbility(Zone zone, Effect effect, TargetController targetController, boolean isOptional) {
|
||||
this(zone, effect, targetController, isOptional, true);
|
||||
}
|
||||
|
||||
public BeginningOfUpkeepTriggeredAbility(Zone zone, Effect effect, TargetController targetController, boolean isOptional, boolean setTargetPointer) {
|
||||
super(zone, effect, isOptional);
|
||||
this.targetController = targetController;
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
setTriggerPhrase(generateTriggerPhrase());
|
||||
}
|
||||
|
||||
protected BeginningOfUpkeepTriggeredAbility(final BeginningOfUpkeepTriggeredAbility ability) {
|
||||
super(ability);
|
||||
this.targetController = ability.targetController;
|
||||
this.setTargetPointer = ability.setTargetPointer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BeginningOfUpkeepTriggeredAbility copy() {
|
||||
return new BeginningOfUpkeepTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.UPKEEP_STEP_PRE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
boolean yours = event.getPlayerId().equals(this.controllerId);
|
||||
if (yours && setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return yours;
|
||||
case NOT_YOU:
|
||||
boolean notYours = !event.getPlayerId().equals(this.controllerId);
|
||||
if (notYours && setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return notYours;
|
||||
case OPPONENT:
|
||||
if (game.getPlayer(this.controllerId).hasOpponent(event.getPlayerId(), game)) {
|
||||
if (setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case ANY:
|
||||
case ACTIVE:
|
||||
case EACH_PLAYER:
|
||||
if (setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return true;
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
Permanent attachment = game.getPermanent(sourceId);
|
||||
if (attachment != null && attachment.getAttachedTo() != null) {
|
||||
Permanent attachedTo = game.getPermanent(attachment.getAttachedTo());
|
||||
if (attachedTo != null && attachedTo.isControlledBy(event.getPlayerId())) {
|
||||
if (setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ENCHANTED:
|
||||
Permanent permanent = getSourcePermanentIfItStillExists(game);
|
||||
if (permanent == null || !game.isActivePlayer(permanent.getAttachedTo())) {
|
||||
break;
|
||||
}
|
||||
if (setTargetPointer && getTargets().isEmpty()) {
|
||||
this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
throw new UnsupportedOperationException("Value for targetController not supported: " + targetController);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private String generateTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return "At the beginning of your upkeep, ";
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's upkeep, ";
|
||||
case ANY:
|
||||
case ACTIVE:
|
||||
return "At the beginning of each player's upkeep, ";
|
||||
case EACH_PLAYER:
|
||||
return "At the beginning of each upkeep, ";
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return "At the beginning of the upkeep of enchanted creature's controller, ";
|
||||
case ENCHANTED:
|
||||
return "At the beginning of enchanted player's upkeep, ";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
|||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
|
|
@ -41,7 +41,7 @@ public class SanctuaryInterveningIfTriggeredAbility extends ConditionalInterveni
|
|||
|
||||
private static TriggeredAbility makeTrigger(OneShotEffect effect1, OneShotEffect effect2, ObjectColor color1, ObjectColor color2) {
|
||||
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(
|
||||
new ConditionalOneShotEffect(effect1, new InvertCondition(makeAndCondition(color1, color2))), TargetController.YOU, false
|
||||
new ConditionalOneShotEffect(effect1, new InvertCondition(makeAndCondition(color1, color2)))
|
||||
);
|
||||
ability.addEffect(new ConditionalOneShotEffect(effect2, makeAndCondition(color1, color2)));
|
||||
return ability;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.abilities.common;
|
|||
|
||||
import mage.abilities.condition.common.TwoOrMoreSpellsWereCastLastTurnCondition;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.constants.TargetController;
|
||||
import mage.game.Game;
|
||||
|
||||
|
|
@ -11,7 +12,7 @@ import mage.game.Game;
|
|||
public class WerewolfBackTriggeredAbility extends BeginningOfUpkeepTriggeredAbility {
|
||||
|
||||
public WerewolfBackTriggeredAbility() {
|
||||
super(new TransformSourceEffect(), TargetController.ANY, false);
|
||||
super(TargetController.ANY, new TransformSourceEffect(), false);
|
||||
}
|
||||
|
||||
private WerewolfBackTriggeredAbility(final WerewolfBackTriggeredAbility ability) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.abilities.common;
|
|||
|
||||
import mage.abilities.condition.common.NoSpellsWereCastLastTurnCondition;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.constants.TargetController;
|
||||
import mage.game.Game;
|
||||
|
||||
|
|
@ -11,7 +12,7 @@ import mage.game.Game;
|
|||
public class WerewolfFrontTriggeredAbility extends BeginningOfUpkeepTriggeredAbility {
|
||||
|
||||
public WerewolfFrontTriggeredAbility() {
|
||||
super(new TransformSourceEffect(), TargetController.ANY, false);
|
||||
super(TargetController.ANY, new TransformSourceEffect(), false);
|
||||
}
|
||||
|
||||
private WerewolfFrontTriggeredAbility(final WerewolfFrontTriggeredAbility ability) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.CostsImpl;
|
||||
import mage.abilities.costs.OrCost;
|
||||
|
|
@ -10,7 +10,6 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
|
@ -28,7 +27,7 @@ public class CumulativeUpkeepAbility extends BeginningOfUpkeepTriggeredAbility {
|
|||
private final Cost cumulativeCost;
|
||||
|
||||
public CumulativeUpkeepAbility(Cost cumulativeCost) {
|
||||
super(new AddCountersSourceEffect(CounterType.AGE.createInstance()), TargetController.YOU, false);
|
||||
super(new AddCountersSourceEffect(CounterType.AGE.createInstance()));
|
||||
this.addEffect(new CumulativeUpkeepEffect(cumulativeCost));
|
||||
this.cumulativeCost = cumulativeCost;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
|
@ -30,7 +29,7 @@ public class FadingAbility extends EntersBattlefieldAbility {
|
|||
|
||||
public FadingAbility(int fadeCounter, Card card, boolean shortRuleText) {
|
||||
super(new AddCountersSourceEffect(CounterType.FADE.createInstance(fadeCounter)), "with");
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new FadingEffect(), TargetController.YOU, false);
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new FadingEffect());
|
||||
ability.setRuleVisible(false);
|
||||
addSubAbility(ability);
|
||||
String cardTypeName;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.abilities.keyword;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
|
@ -31,7 +31,7 @@ public class RepairAbility extends DiesSourceTriggeredAbility {
|
|||
super(new AddCountersSourceEffect(
|
||||
CounterType.REPAIR.createInstance(), StaticValue.get(count), false, true));
|
||||
addSubAbility(new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD,
|
||||
new RemoveCounterSourceEffect(CounterType.REPAIR.createInstance()), TargetController.YOU, false)
|
||||
TargetController.YOU, new RemoveCounterSourceEffect(CounterType.REPAIR.createInstance()), false)
|
||||
.setRuleVisible(false));
|
||||
addSubAbility(new RepairCastFromGraveyardTriggeredAbility());
|
||||
this.count = count;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import mage.MageIdentifier;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.SpecialAction;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.condition.common.SuspendedCondition;
|
||||
import mage.abilities.costs.VariableCostType;
|
||||
import mage.abilities.costs.mana.ManaCost;
|
||||
|
|
@ -430,8 +430,8 @@ class GainHasteEffect extends ContinuousEffectImpl {
|
|||
class SuspendBeginningOfUpkeepInterveningIfTriggeredAbility extends ConditionalInterveningIfTriggeredAbility {
|
||||
|
||||
SuspendBeginningOfUpkeepInterveningIfTriggeredAbility() {
|
||||
super(new BeginningOfUpkeepTriggeredAbility(Zone.EXILED, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()),
|
||||
TargetController.YOU, false),
|
||||
super(new BeginningOfUpkeepTriggeredAbility(Zone.EXILED, TargetController.YOU, new RemoveCounterSourceEffect(CounterType.TIME.createInstance()),
|
||||
false),
|
||||
SuspendedCondition.instance,
|
||||
"At the beginning of your upkeep, if {this} is suspended, remove a time counter from it.");
|
||||
this.setRuleVisible(false);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.SourceHasCounterCondition;
|
||||
|
|
@ -9,7 +9,6 @@ import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
|||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
|
|
@ -30,8 +29,7 @@ public class VanishingAbility extends EntersBattlefieldAbility {
|
|||
this.amount = amount;
|
||||
this.addSubAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new BeginningOfUpkeepTriggeredAbility(
|
||||
new RemoveCounterSourceEffect(CounterType.TIME.createInstance()),
|
||||
TargetController.YOU, false
|
||||
new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), false
|
||||
), condition, "At the beginning of your upkeep, if this permanent " +
|
||||
"has a time counter on it, remove a time counter from it."
|
||||
).setRuleVisible(false));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
package mage.abilities.triggers;
|
||||
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
*/
|
||||
public class BeginningOfUpkeepTriggeredAbility extends AtStepTriggeredAbility {
|
||||
|
||||
/**
|
||||
* At the beginning of your upkeep (optional = false)
|
||||
*/
|
||||
public BeginningOfUpkeepTriggeredAbility(Effect effect) {
|
||||
this(effect, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* At the beginning of your upkeep
|
||||
*/
|
||||
public BeginningOfUpkeepTriggeredAbility(Effect effect, boolean optional) {
|
||||
this(TargetController.YOU, effect, optional);
|
||||
}
|
||||
|
||||
public BeginningOfUpkeepTriggeredAbility(TargetController targetController, Effect effect, boolean optional) {
|
||||
this(Zone.BATTLEFIELD, targetController, effect, optional);
|
||||
}
|
||||
|
||||
|
||||
public BeginningOfUpkeepTriggeredAbility(Zone zone, TargetController targetController, Effect effect, boolean optional) {
|
||||
super(zone, targetController, effect, optional);
|
||||
}
|
||||
|
||||
protected BeginningOfUpkeepTriggeredAbility(final BeginningOfUpkeepTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BeginningOfUpkeepTriggeredAbility copy() {
|
||||
return new BeginningOfUpkeepTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.UPKEEP_STEP_PRE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String generateTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return "At the beginning of your upkeep, ";
|
||||
case NOT_YOU:
|
||||
return "At the beginning of each other player's upkeep, ";
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's upkeep, ";
|
||||
case ANY:
|
||||
return "At the beginning of each upkeep, ";
|
||||
case EACH_PLAYER:
|
||||
return "At the beginning of each player's upkeep, ";
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return "At the beginning of the upkeep of enchanted creature's controller, ";
|
||||
case ENCHANTED:
|
||||
return "At the beginning of enchanted player's upkeep, ";
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unsupported TargetController in BeginningOfUpkeepTriggeredAbility: " + targetController);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.DamageControllerEffect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -19,8 +19,8 @@ public final class ChandraAwakenedInfernoEmblem extends Emblem {
|
|||
public ChandraAwakenedInfernoEmblem() {
|
||||
super("Emblem Chandra");
|
||||
this.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(
|
||||
Zone.COMMAND, new DamageControllerEffect(1, "this emblem"),
|
||||
TargetController.YOU, false, true
|
||||
Zone.COMMAND, TargetController.YOU, new DamageControllerEffect(1, "this emblem"),
|
||||
false
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.constants.TargetController;
|
||||
|
|
@ -21,7 +21,7 @@ public final class ChandraRoaringFlameEmblem extends Emblem {
|
|||
super("Emblem Chandra");
|
||||
Effect effect = new DamageTargetEffect(3);
|
||||
effect.setText("this emblem deals 3 damage to you");
|
||||
this.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, effect, TargetController.YOU, false, true));
|
||||
this.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, TargetController.YOU, effect, false));
|
||||
}
|
||||
|
||||
private ChandraRoaringFlameEmblem(final ChandraRoaringFlameEmblem card) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
|
|
@ -31,8 +31,8 @@ public class KayaTheInexorableEmblem extends Emblem {
|
|||
|
||||
super("Emblem Kaya");
|
||||
this.getAbilities().add(new BeginningOfUpkeepTriggeredAbility(
|
||||
Zone.COMMAND, new KayaTheInexorableEmblemEffect(),
|
||||
TargetController.YOU, true, false
|
||||
Zone.COMMAND, TargetController.YOU, new KayaTheInexorableEmblemEffect(),
|
||||
true
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.SacrificeEffect;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -19,7 +19,7 @@ public final class SorinSolemnVisitorEmblem extends Emblem {
|
|||
*/
|
||||
public SorinSolemnVisitorEmblem() {
|
||||
super("Emblem Sorin");
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "that player"), TargetController.OPPONENT, false, true);
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, TargetController.OPPONENT, new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "that player"), false);
|
||||
this.getAbilities().add(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.game.command.planes;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.MainPhaseStackEmptyCondition;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
|
|
@ -30,7 +30,7 @@ public class LetheLakePlane extends Plane {
|
|||
this.setPlaneType(Planes.PLANE_LETHE_LAKE);
|
||||
|
||||
// At the beginning of your upkeep, put the top ten cards of your libary into your graveyard
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, new MillCardsTargetEffect(10).setText("that player mills 10 cards"), TargetController.ANY, false, true);
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.COMMAND, TargetController.ANY, new MillCardsTargetEffect(10).setText("that player mills 10 cards"), false);
|
||||
this.getAbilities().add(ability);
|
||||
|
||||
// Active player can roll the planar die: Whenever you roll {CHAOS}, target player puts the top ten cards of their library into their graveyard
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.game.permanent.token;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.SacrificeControllerEffect;
|
||||
|
|
@ -11,7 +11,6 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.game.Game;
|
||||
|
|
@ -32,7 +31,7 @@ public final class BelzenlokDemonToken extends TokenImpl {
|
|||
toughness = new MageInt(6);
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
addAbility(TrampleAbility.getInstance());
|
||||
addAbility(new BeginningOfUpkeepTriggeredAbility(new BelzenlokDemonTokenEffect(), TargetController.YOU, false));
|
||||
addAbility(new BeginningOfUpkeepTriggeredAbility(new BelzenlokDemonTokenEffect()));
|
||||
}
|
||||
|
||||
private BelzenlokDemonToken(final BelzenlokDemonToken token) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package mage.game.permanent.token;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
|
@ -25,7 +25,7 @@ public final class RekindlingPhoenixToken extends TokenImpl {
|
|||
power = new MageInt(0);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false);
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceEffect());
|
||||
ability.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect().setText("and return target card named Rekindling Phoenix from your graveyard to the battlefield"));
|
||||
ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn).setText("It gains haste until end of turn"));
|
||||
FilterCard filter = new FilterCard("card named Rekindling Phoenix from your graveyard");
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.DamageControllerEffect;
|
||||
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
public final class RelicRobberToken extends TokenImpl {
|
||||
|
||||
|
|
@ -26,7 +25,7 @@ public final class RelicRobberToken extends TokenImpl {
|
|||
));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DamageControllerEffect(
|
||||
1, "this creature"
|
||||
), TargetController.YOU, false));
|
||||
)));
|
||||
}
|
||||
|
||||
private RelicRobberToken(final RelicRobberToken token) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue