mirror of
https://github.com/correl/mage.git
synced 2024-12-24 11:50:45 +00:00
Replace Overriden getTriggerPhrase() with setTriggerPhrase() usage (#9343)
This commit is contained in:
parent
188e6dd8c1
commit
ebdb6b53a4
406 changed files with 918 additions and 2665 deletions
|
@ -59,6 +59,7 @@ public final class AAT1 extends CardImpl {
|
|||
|
||||
public AAT1TriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
setTriggerPhrase("Whenever a repair counter is removed from a creature card in your graveyard ");
|
||||
}
|
||||
|
||||
public AAT1TriggeredAbility(AAT1TriggeredAbility ability) {
|
||||
|
@ -83,11 +84,6 @@ public final class AAT1 extends CardImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a repair counter is removed from a creature card in your graveyard " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AAT1TriggeredAbility copy() {
|
||||
return new AAT1TriggeredAbility(this);
|
||||
|
|
|
@ -99,6 +99,7 @@ class AdarkarValkyrieDelayedTriggeredAbility extends DelayedTriggeredAbility {
|
|||
public AdarkarValkyrieDelayedTriggeredAbility(MageObjectReference mor) {
|
||||
super(new ReturnToBattlefieldUnderYourControlTargetEffect(), Duration.EndOfTurn);
|
||||
this.mor = mor;
|
||||
setTriggerPhrase("When target creature other than {this} dies this turn, " );
|
||||
}
|
||||
|
||||
public AdarkarValkyrieDelayedTriggeredAbility(final AdarkarValkyrieDelayedTriggeredAbility ability) {
|
||||
|
@ -130,9 +131,4 @@ class AdarkarValkyrieDelayedTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When target creature other than {this} dies this turn, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ class AeonChroniclerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public AeonChroniclerTriggeredAbility() {
|
||||
super(Zone.EXILED, new DrawCardSourceControllerEffect(1), false);
|
||||
setTriggerPhrase("Whenever a time counter is removed from {this} while it's exiled, " );
|
||||
}
|
||||
|
||||
public AeonChroniclerTriggeredAbility(final AeonChroniclerTriggeredAbility ability) {
|
||||
|
@ -79,10 +80,4 @@ class AeonChroniclerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return Objects.equals(event.getData(), CounterType.TIME.getName()) && event.getTargetId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a time counter is removed from {this} while it's exiled, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ class AkoumFirebirdLandfallAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public AkoumFirebirdLandfallAbility(Effect effect, boolean optional) {
|
||||
this(Zone.GRAVEYARD, effect, optional);
|
||||
setTriggerPhrase("<i>Landfall</i> — Whenever a land enters the battlefield under your control, " );
|
||||
}
|
||||
|
||||
public AkoumFirebirdLandfallAbility (Zone zone, Effect effect, boolean optional ) {
|
||||
|
@ -82,11 +83,6 @@ class AkoumFirebirdLandfallAbility extends TriggeredAbilityImpl {
|
|||
return permanent != null && permanent.isLand(game) && permanent.isControlledBy(this.controllerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "<i>Landfall</i> — Whenever a land enters the battlefield under your control, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AkoumFirebirdLandfallAbility copy() {
|
||||
return new AkoumFirebirdLandfallAbility(this);
|
||||
|
|
|
@ -72,6 +72,7 @@ class AnjeMaidOfDishonorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public AnjeMaidOfDishonorTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new BloodToken()));
|
||||
this.setTriggersOnce(true);
|
||||
setTriggerPhrase("Whenever {this} and/or one or more other Vampires enter the battlefield under your control, ");
|
||||
}
|
||||
|
||||
private AnjeMaidOfDishonorTriggeredAbility(final AnjeMaidOfDishonorTriggeredAbility ability) {
|
||||
|
@ -96,11 +97,6 @@ class AnjeMaidOfDishonorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} and/or one or more other Vampires enter the battlefield under your control, ";
|
||||
}
|
||||
}
|
||||
|
||||
enum AnjeMaidOfDishonorPredicate implements ObjectSourcePlayerPredicate<MageObject> {
|
||||
|
|
|
@ -58,6 +58,7 @@ class ArashinWarBeastTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public ArashinWarBeastTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.usedForCombatDamageStep = false;
|
||||
setTriggerPhrase("Whenever {this} deals combat damage to one or more blockers, ");
|
||||
}
|
||||
|
||||
public ArashinWarBeastTriggeredAbility(final ArashinWarBeastTriggeredAbility ability) {
|
||||
|
@ -95,9 +96,4 @@ class ArashinWarBeastTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals combat damage to one or more blockers, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ class ArcboundTrackerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ArcboundTrackerTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
setTriggerPhrase("Whenever you cast a spell other than your first spell each turn, ");
|
||||
}
|
||||
|
||||
private ArcboundTrackerTriggeredAbility(final ArcboundTrackerTriggeredAbility ability) {
|
||||
|
@ -77,9 +78,4 @@ class ArcboundTrackerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast a spell other than your first spell each turn, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ class AsLuckWouldHaveItTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public AsLuckWouldHaveItTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AsLuckWouldHaveItEffect(), false);
|
||||
setTriggerPhrase("Whenever you roll a die, ");
|
||||
}
|
||||
|
||||
public AsLuckWouldHaveItTriggeredAbility(final AsLuckWouldHaveItTriggeredAbility ability) {
|
||||
|
@ -79,11 +80,6 @@ class AsLuckWouldHaveItTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you roll a die, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class AsLuckWouldHaveItEffect extends OneShotEffect {
|
||||
|
|
|
@ -121,6 +121,7 @@ class AthreosDiesCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
AthreosDiesCreatureTriggeredAbility(Effect effect, boolean optional, FilterCreaturePermanent filter) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.filter = filter;
|
||||
setTriggerPhrase("Whenever " + filter.getMessage() + " dies, ");
|
||||
}
|
||||
|
||||
private AthreosDiesCreatureTriggeredAbility(AthreosDiesCreatureTriggeredAbility ability) {
|
||||
|
@ -152,9 +153,4 @@ class AthreosDiesCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ class AwakenTheSkyTyrantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public AwakenTheSkyTyrantTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DoIfCostPaid(new CreateTokenEffect(new DragonToken2(), 1), new SacrificeSourceCost(), null, false), false);
|
||||
setTriggerPhrase("When a source an opponent controls deals damage to you, ");
|
||||
}
|
||||
|
||||
public AwakenTheSkyTyrantTriggeredAbility(final AwakenTheSkyTyrantTriggeredAbility ability) {
|
||||
|
@ -67,9 +68,4 @@ class AwakenTheSkyTyrantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When a source an opponent controls deals damage to you, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,10 +49,9 @@ public final class AzoriusAethermage extends CardImpl {
|
|||
|
||||
class AzoriusAEthermageAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private static final String rule = "Whenever a permanent is returned to your hand, ";
|
||||
|
||||
public AzoriusAEthermageAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever a permanent is returned to your hand, ");
|
||||
}
|
||||
|
||||
private AzoriusAEthermageAbility(final AzoriusAEthermageAbility ability) {
|
||||
|
@ -83,11 +82,6 @@ class AzoriusAEthermageAbility extends TriggeredAbilityImpl {
|
|||
return StaticFilters.FILTER_PERMANENT_CREATURE.match(permanentThatMoved, controllerId, this, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return rule;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AzoriusAEthermageAbility copy() {
|
||||
return new AzoriusAEthermageAbility(this);
|
||||
|
|
|
@ -52,6 +52,7 @@ class AzorsElocutorsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public AzorsElocutorsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.FILIBUSTER.createInstance()), false);
|
||||
setTriggerPhrase("Whenever a source deals damage to you, ");
|
||||
}
|
||||
|
||||
public AzorsElocutorsTriggeredAbility(final AzorsElocutorsTriggeredAbility ability) {
|
||||
|
@ -72,12 +73,6 @@ class AzorsElocutorsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getTargetId().equals(this.controllerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a source deals damage to you, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class AzorsElocutorsEffect extends OneShotEffect {
|
||||
|
|
|
@ -104,6 +104,7 @@ class BaronVonCountTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BaronVonCountTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BaronVonCountMoveDoomCounterEffect());
|
||||
setTriggerPhrase("Whenever you cast a spell with the indicated numeral in its mana cost, text box, power, or toughness, ");
|
||||
}
|
||||
|
||||
public BaronVonCountTriggeredAbility(final BaronVonCountTriggeredAbility abiltity) {
|
||||
|
@ -150,11 +151,6 @@ class BaronVonCountTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast a spell with the indicated numeral in its mana cost, text box, power, or toughness, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BaronVonCountMoveDoomCounterEffect extends OneShotEffect {
|
||||
|
@ -203,6 +199,7 @@ class BaronVonCountSecondTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public BaronVonCountSecondTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BaronVonCountDestroyPlayerEffect());
|
||||
this.addTarget(new TargetPlayer());
|
||||
setTriggerPhrase("When the doom counter moves from \"1,\" ");
|
||||
}
|
||||
|
||||
public BaronVonCountSecondTriggeredAbility(BaronVonCountSecondTriggeredAbility ability) {
|
||||
|
@ -223,11 +220,6 @@ class BaronVonCountSecondTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public BaronVonCountSecondTriggeredAbility copy() {
|
||||
return new BaronVonCountSecondTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When the doom counter moves from \"1,\" " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BaronVonCountDestroyPlayerEffect extends OneShotEffect {
|
||||
|
|
|
@ -71,6 +71,7 @@ class BattleOfFrostAndFireTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
public BattleOfFrostAndFireTriggeredAbility() {
|
||||
super(new DrawDiscardControllerEffect(2, 1), Duration.EndOfTurn, false);
|
||||
setTriggerPhrase("Whenever you cast a spell with mana value 5 or greater this turn, ");
|
||||
}
|
||||
|
||||
private BattleOfFrostAndFireTriggeredAbility(BattleOfFrostAndFireTriggeredAbility ability) {
|
||||
|
@ -95,9 +96,4 @@ class BattleOfFrostAndFireTriggeredAbility extends DelayedTriggeredAbility {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast a spell with mana value 5 or greater this turn, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ class BenalishCommanderTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BenalishCommanderTriggeredAbility() {
|
||||
super(Zone.EXILED, new CreateTokenEffect(new SoldierToken()), false);
|
||||
setTriggerPhrase("Whenever a time counter is removed from {this} while it's exiled, ");
|
||||
}
|
||||
|
||||
public BenalishCommanderTriggeredAbility(final BenalishCommanderTriggeredAbility ability) {
|
||||
|
@ -86,10 +87,4 @@ class BenalishCommanderTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getData().equals(CounterType.TIME.getName()) && event.getTargetId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a time counter is removed from {this} while it's exiled, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ class BlackViseTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BlackViseTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BlackViseEffect(), false);
|
||||
setTriggerPhrase("At the beginning of the chosen player's upkeep, ");
|
||||
}
|
||||
|
||||
public BlackViseTriggeredAbility(final BlackViseTriggeredAbility ability) {
|
||||
|
@ -65,11 +66,6 @@ class BlackViseTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getPlayerId().equals(game.getState().getValue(getSourceId().toString() + ChooseOpponentEffect.VALUE_KEY));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of the chosen player's upkeep, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BlackViseEffect extends OneShotEffect {
|
||||
|
|
|
@ -57,6 +57,7 @@ class BlazeCommandoTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BlazeCommandoTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierTokenWithHaste(), 2), false);
|
||||
setTriggerPhrase("Whenever an instant or sorcery spell you control deals damage, ");
|
||||
}
|
||||
|
||||
public BlazeCommandoTriggeredAbility(final BlazeCommandoTriggeredAbility ability) {
|
||||
|
@ -102,9 +103,4 @@ class BlazeCommandoTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an instant or sorcery spell you control deals damage, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ class BlindCreeperAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BlindCreeperAbility() {
|
||||
super(Zone.BATTLEFIELD, new BoostSourceEffect(-1, -1, Duration.EndOfTurn), false);
|
||||
setTriggerPhrase("Whenever a player casts a spell, ");
|
||||
}
|
||||
|
||||
public BlindCreeperAbility(final BlindCreeperAbility ability) {
|
||||
|
@ -66,9 +67,4 @@ class BlindCreeperAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.getStack().getSpell(event.getTargetId()) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a player casts a spell, " ;
|
||||
}
|
||||
}
|
|
@ -54,6 +54,7 @@ class BloodcrazedHopliteTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BloodcrazedHopliteTriggeredAbility() {
|
||||
super(Zone.ALL, new RemoveCounterTargetEffect(CounterType.P1P1.createInstance()), false);
|
||||
setTriggerPhrase("Whenever a +1/+1 counter is put on {this}, ");
|
||||
}
|
||||
|
||||
public BloodcrazedHopliteTriggeredAbility(BloodcrazedHopliteTriggeredAbility ability) {
|
||||
|
@ -74,9 +75,4 @@ class BloodcrazedHopliteTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public BloodcrazedHopliteTriggeredAbility copy() {
|
||||
return new BloodcrazedHopliteTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a +1/+1 counter is put on {this}, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ class BloodletterStateTriggeredAbility extends StateTriggeredAbility {
|
|||
|
||||
public BloodletterStateTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BloodletterEffect());
|
||||
setTriggerPhrase("When the names of three or more nonland permanents begin with the same letter, ");
|
||||
}
|
||||
|
||||
public BloodletterStateTriggeredAbility(final BloodletterStateTriggeredAbility ability) {
|
||||
|
@ -76,11 +77,6 @@ class BloodletterStateTriggeredAbility extends StateTriggeredAbility {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When the names of three or more nonland permanents begin with the same letter, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BloodletterEffect extends OneShotEffect {
|
||||
|
|
|
@ -58,6 +58,7 @@ class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl {
|
|||
Duration.EndOfTurn
|
||||
).setText("and gains menace until end of turn. "
|
||||
+ "<i>(It can't be blocked except by two or more creatures.)</i>"));
|
||||
setTriggerPhrase("Whenever you cast a spell, if that spell was kicked, ");
|
||||
}
|
||||
|
||||
BloodstoneGoblinTriggeredAbility(final BloodstoneGoblinTriggeredAbility ability) {
|
||||
|
@ -79,9 +80,4 @@ class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return KickerAbility.getSpellKickedCount(game, event.getTargetId()) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast a spell, if that spell was kicked, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
@ -65,10 +66,9 @@ public final class BombSquad extends CardImpl {
|
|||
|
||||
class BombSquadTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||
|
||||
public BombSquadTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BombSquadDamgeEffect(), false);
|
||||
setTriggerPhrase("Whenever a creature has four or more fuse counters on it, ");
|
||||
}
|
||||
|
||||
public BombSquadTriggeredAbility(final BombSquadTriggeredAbility ability) {
|
||||
|
@ -89,7 +89,7 @@ class BombSquadTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getData().equals(CounterType.FUSE.getName())) {
|
||||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
if (filter.match(permanent, game)) {
|
||||
if (StaticFilters.FILTER_PERMANENT_CREATURE.match(permanent, game)) {
|
||||
if (4 <= permanent.getCounters(game).getCount(CounterType.FUSE)) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
|
@ -100,11 +100,6 @@ class BombSquadTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature has four or more fuse counters on it, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BombSquadDamgeEffect extends OneShotEffect {
|
||||
|
|
|
@ -69,6 +69,7 @@ class DiesWhileInGraveyardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public DiesWhileInGraveyardTriggeredAbility(Effect effect, FilterCreaturePermanent filter) {
|
||||
super(Zone.GRAVEYARD, effect, false);
|
||||
this.filter = filter;
|
||||
setTriggerPhrase("Whenever " + filter.getMessage() + " dies while {this} is in your graveyard, ");
|
||||
}
|
||||
|
||||
public DiesWhileInGraveyardTriggeredAbility(final DiesWhileInGraveyardTriggeredAbility ability) {
|
||||
|
@ -99,9 +100,4 @@ class DiesWhileInGraveyardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
return filter.match(zEvent.getTarget(), controllerId,this, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " dies while {this} is in your graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ class BreathOfFuryAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BreathOfFuryAbility() {
|
||||
super(Zone.BATTLEFIELD, new BreathOfFuryEffect());
|
||||
setTriggerPhrase("When enchanted creature deals combat damage to a player, ");
|
||||
}
|
||||
|
||||
public BreathOfFuryAbility(final BreathOfFuryAbility ability) {
|
||||
|
@ -90,11 +91,6 @@ class BreathOfFuryAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When enchanted creature deals combat damage to a player, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BreathOfFuryEffect extends OneShotEffect {
|
||||
|
|
|
@ -56,6 +56,7 @@ class BreathlessKnightTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BreathlessKnightTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
setTriggerPhrase("Whenever {this} or another creature enters the battlefield under your control, if that creature entered from a graveyard or you cast it from a graveyard, ");
|
||||
}
|
||||
|
||||
private BreathlessKnightTriggeredAbility(final BreathlessKnightTriggeredAbility ability) {
|
||||
|
@ -88,9 +89,4 @@ class BreathlessKnightTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} or another creature enters the battlefield under your control, if that creature entered from a graveyard or you cast it from a graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ class BridgeFromBelowAbility extends TriggeredAbilityImpl {
|
|||
public BridgeFromBelowAbility(Effect effect, FilterCreaturePermanent filter) {
|
||||
super(Zone.GRAVEYARD, effect, false);
|
||||
this.filter = filter;
|
||||
setTriggerPhrase(filter.getMessage() + ", if {this} is in your graveyard, ");
|
||||
}
|
||||
|
||||
public BridgeFromBelowAbility(BridgeFromBelowAbility ability) {
|
||||
|
@ -96,9 +97,4 @@ class BridgeFromBelowAbility extends TriggeredAbilityImpl {
|
|||
return controller != null
|
||||
&& controller.getGraveyard().contains(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return filter.getMessage() + ", if {this} is in your graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ class LoseControlTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public LoseControlTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
setTriggerPhrase("When a player other than {this}'s owner controls it, ");
|
||||
}
|
||||
|
||||
public LoseControlTriggeredAbility(final LoseControlTriggeredAbility ability) {
|
||||
|
@ -76,11 +77,6 @@ class LoseControlTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When a player other than {this}'s owner controls it, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class BronzeBombshellEffect extends OneShotEffect {
|
||||
|
|
|
@ -56,6 +56,7 @@ class BurningCinderFuryOfCrimsonChaosFireAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public BurningCinderFuryOfCrimsonChaosFireAbility() {
|
||||
super(Zone.BATTLEFIELD, new BurningCinderFuryOfCrimsonChaosFireEffect(), false);
|
||||
setTriggerPhrase("Whenever any player taps a permanent, ");
|
||||
}
|
||||
|
||||
public BurningCinderFuryOfCrimsonChaosFireAbility(BurningCinderFuryOfCrimsonChaosFireAbility ability) {
|
||||
|
@ -83,11 +84,6 @@ class BurningCinderFuryOfCrimsonChaosFireAbility extends TriggeredAbilityImpl {
|
|||
public BurningCinderFuryOfCrimsonChaosFireAbility copy() {
|
||||
return new BurningCinderFuryOfCrimsonChaosFireAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever any player taps a permanent, ";
|
||||
}
|
||||
}
|
||||
|
||||
class BurningCinderFuryOfCrimsonChaosFireEffect extends OneShotEffect {
|
||||
|
|
|
@ -58,6 +58,7 @@ class CanalCourierTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CanalCourierTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
setTriggerPhrase("Whenever {this} and another creature attack different players, ");
|
||||
}
|
||||
|
||||
public CanalCourierTriggeredAbility(final CanalCourierTriggeredAbility ability) {
|
||||
|
@ -96,10 +97,4 @@ class CanalCourierTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} and another creature attack different players, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ class CaptainRipleyVanceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
addEffect(new DamageTargetEffect(new SourcePermanentPowerCount()).setText("it deals damage equal to its power to any target").concatBy(", then"));
|
||||
addTarget(new TargetAnyTarget());
|
||||
setTriggerPhrase("Whenever you cast your third spell each turn, ");
|
||||
}
|
||||
|
||||
private CaptainRipleyVanceTriggeredAbility(final CaptainRipleyVanceTriggeredAbility ability) {
|
||||
|
@ -77,9 +78,4 @@ class CaptainRipleyVanceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast your third spell each turn, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ class CapturedByTheConsulateTriggeredAbility extends TriggeredAbilityImpl {
|
|||
*/
|
||||
CapturedByTheConsulateTriggeredAbility(Zone zone, Effect effect) {
|
||||
super(zone, effect, false);
|
||||
setTriggerPhrase("Whenever an opponent casts a spell, if it has a single target, ");
|
||||
}
|
||||
|
||||
private CapturedByTheConsulateTriggeredAbility(final CapturedByTheConsulateTriggeredAbility ability) {
|
||||
|
@ -111,11 +112,6 @@ class CapturedByTheConsulateTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent casts a spell, if it has a single target, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CapturedByTheConsulateTriggeredAbility copy() {
|
||||
return new CapturedByTheConsulateTriggeredAbility(this);
|
||||
|
|
|
@ -50,6 +50,7 @@ class CarpetOfFlowersTriggeredAbility extends TriggeredAbilityImpl {
|
|||
CarpetOfFlowersTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CarpetOfFlowersEffect(), true);
|
||||
this.addTarget(new TargetOpponent());
|
||||
setTriggerPhrase("At the beginning of each of your main phases, if you haven't added mana with this ability this turn, ");
|
||||
}
|
||||
|
||||
CarpetOfFlowersTriggeredAbility(final CarpetOfFlowersTriggeredAbility ability) {
|
||||
|
@ -98,14 +99,6 @@ class CarpetOfFlowersTriggeredAbility extends TriggeredAbilityImpl {
|
|||
+ game.getState().getZoneChangeCounter(sourceId),
|
||||
Boolean.FALSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of each of your main phases, if "
|
||||
+ "you haven't added mana with this ability this turn, "
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class CarpetOfFlowersEffect extends ManaEffect {
|
||||
|
|
|
@ -58,6 +58,7 @@ class CarthTheLionTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public CarthTheLionTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new LookLibraryAndPickControllerEffect(
|
||||
7, 1, filter, PutCards.HAND, PutCards.BOTTOM_RANDOM));
|
||||
setTriggerPhrase("Whenever {this} enters the battlefield or a planeswalker you control dies, ");
|
||||
}
|
||||
|
||||
private CarthTheLionTriggeredAbility(final CarthTheLionTriggeredAbility ability) {
|
||||
|
@ -90,11 +91,6 @@ class CarthTheLionTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} enters the battlefield or a planeswalker you control dies, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class CarthTheLionLoyaltyCostEffect extends CostModificationEffectImpl {
|
||||
|
|
|
@ -31,7 +31,6 @@ public final class CeaselessSearblades extends CardImpl {
|
|||
|
||||
// Whenever you activate an ability of an Elemental, Ceaseless Searblades gets +1/+0 until end of turn.
|
||||
this.addAbility(new CeaselessSearbladesTriggeredAbility());
|
||||
|
||||
}
|
||||
|
||||
private CeaselessSearblades(final CeaselessSearblades card) {
|
||||
|
@ -54,6 +53,7 @@ class CeaselessSearbladesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
CeaselessSearbladesTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), false);
|
||||
setTriggerPhrase("Whenever you activate an ability of an Elemental, ");
|
||||
}
|
||||
|
||||
CeaselessSearbladesTriggeredAbility(final CeaselessSearbladesTriggeredAbility ability) {
|
||||
|
@ -83,9 +83,4 @@ class CeaselessSearbladesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& source != null
|
||||
&& filter.match(source, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you activate an ability of an Elemental, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ class CemeteryGatekeeperTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CemeteryGatekeeperTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(2, true, "that player"));
|
||||
setTriggerPhrase("Whenever a player plays a land or casts a spell, if it shares a card type with the exiled card, ");
|
||||
}
|
||||
|
||||
private CemeteryGatekeeperTriggeredAbility(final CemeteryGatekeeperTriggeredAbility ability) {
|
||||
|
@ -161,9 +162,4 @@ class CemeteryGatekeeperTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a player plays a land or casts a spell, if it shares a card type with the exiled card, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ class CemeteryProtectorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CemeteryProtectorTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new HumanToken()));
|
||||
setTriggerPhrase("Whenever you play a land or cast a spell, if it shares a card type with the exiled card, ");
|
||||
}
|
||||
|
||||
private CemeteryProtectorTriggeredAbility(final CemeteryProtectorTriggeredAbility ability) {
|
||||
|
@ -164,9 +165,4 @@ class CemeteryProtectorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you play a land or cast a spell, if it shares a card type with the exiled card, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ class ChanceEncounterTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
ChanceEncounterTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LUCK.createInstance()), false);
|
||||
setTriggerPhrase("Whenever you win a coin flip, ");
|
||||
}
|
||||
|
||||
private ChanceEncounterTriggeredAbility(final ChanceEncounterTriggeredAbility ability) {
|
||||
|
@ -74,9 +75,4 @@ class ChanceEncounterTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& flipEvent.isWinnable()
|
||||
&& (flipEvent.getChosen() == flipEvent.getResult());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you win a coin flip, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@ class CherishedHatchlingTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
public CherishedHatchlingTriggeredAbility() {
|
||||
super(getEffectToAdd(), Duration.EndOfTurn, true);
|
||||
setTriggerPhrase("and whenever you cast a Dinosaur spell this turn, ");
|
||||
}
|
||||
|
||||
private static Effect getEffectToAdd() {
|
||||
|
@ -105,9 +106,4 @@ class CherishedHatchlingTriggeredAbility extends DelayedTriggeredAbility {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "and whenever you cast a Dinosaur spell this turn, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,6 +69,7 @@ class CircleOfConfinementTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CircleOfConfinementTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GainLifeEffect(2));
|
||||
setTriggerPhrase("Whenever an opponent casts a Vampire spell with the same name as a card exiled with {this}, ");
|
||||
}
|
||||
|
||||
private CircleOfConfinementTriggeredAbility(final CircleOfConfinementTriggeredAbility ability) {
|
||||
|
@ -102,9 +103,4 @@ class CircleOfConfinementTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent casts a Vampire spell with the same name as a card exiled with {this}, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ class CloakedCadetTriggeredAbility extends TriggeredAbilityImpl {
|
|||
CloakedCadetTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1));
|
||||
this.setTriggersOnce(true);
|
||||
setTriggerPhrase("Whenever one or more +1/+1 counters are put on one or more Humans you control, ");
|
||||
}
|
||||
|
||||
private CloakedCadetTriggeredAbility(final CloakedCadetTriggeredAbility ability) {
|
||||
|
@ -75,9 +76,4 @@ class CloakedCadetTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& permanent.hasSubtype(SubType.HUMAN, game)
|
||||
&& event.getData().equals(CounterType.P1P1.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more +1/+1 counters are put on one or more Humans you control, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ class CloakwoodSwarmkeeperTriggeredAbility extends TriggeredAbilityImpl {
|
|||
CloakwoodSwarmkeeperTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||
this.withFlavorWord("Gathered Swarm");
|
||||
setTriggerPhrase("Whenever one or more tokens enter the battlefield under your control, ");
|
||||
}
|
||||
|
||||
private CloakwoodSwarmkeeperTriggeredAbility(final CloakwoodSwarmkeeperTriggeredAbility ability) {
|
||||
|
@ -77,9 +78,4 @@ class CloakwoodSwarmkeeperTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public CloakwoodSwarmkeeperTriggeredAbility copy() {
|
||||
return new CloakwoodSwarmkeeperTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more tokens enter the battlefield under your control, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ class ColossalWhaleAbility extends TriggeredAbilityImpl {
|
|||
super(Zone.BATTLEFIELD, null);
|
||||
this.addEffect(new ColossalWhaleExileEffect());
|
||||
this.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
|
||||
setTriggerPhrase("Whenever {this} attacks, ");
|
||||
}
|
||||
|
||||
public ColossalWhaleAbility(final ColossalWhaleAbility ability) {
|
||||
|
@ -87,11 +88,6 @@ class ColossalWhaleAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ColossalWhaleAbility copy() {
|
||||
return new ColossalWhaleAbility(this);
|
||||
|
|
|
@ -52,6 +52,7 @@ class ContainmentConstructTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ContainmentConstructTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new ContainmentConstructEffect(), false);
|
||||
setTriggerPhrase("Whenever you discard a card, ");
|
||||
}
|
||||
|
||||
public ContainmentConstructTriggeredAbility(final ContainmentConstructTriggeredAbility ability) {
|
||||
|
@ -77,11 +78,6 @@ class ContainmentConstructTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you discard a card, ";
|
||||
}
|
||||
}
|
||||
|
||||
class ContainmentConstructEffect extends OneShotEffect {
|
||||
|
|
|
@ -48,6 +48,7 @@ class CrackdownConstructTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
CrackdownConstructTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), false);
|
||||
setTriggerPhrase("Whenever you activate an ability of an artifact or creature that isn't a mana ability, ");
|
||||
}
|
||||
|
||||
CrackdownConstructTriggeredAbility(final CrackdownConstructTriggeredAbility ability) {
|
||||
|
@ -77,9 +78,4 @@ class CrackdownConstructTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you activate an ability of an artifact or creature that isn't a mana ability, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,75 +46,71 @@ public final class CragSaurian extends CardImpl {
|
|||
public CragSaurian copy() {
|
||||
return new CragSaurian(this);
|
||||
}
|
||||
}
|
||||
|
||||
private static class CragSaurianEffect extends OneShotEffect {
|
||||
class CragSaurianEffect extends OneShotEffect {
|
||||
|
||||
public CragSaurianEffect() {
|
||||
super(Outcome.GainControl);
|
||||
this.staticText = "that source's controller gains control of {this}";
|
||||
}
|
||||
|
||||
private CragSaurianEffect(CragSaurianEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Player newController = game.getPlayer(this.getTargetPointer().getFirst(game, source));
|
||||
if (newController != null && controller != null && !controller.equals(newController)) {
|
||||
ContinuousEffect effect = new GainControlTargetEffect(Duration.Custom, newController.getId());
|
||||
effect.setTargetPointer(new FixedTarget(source.getSourceId(), game));
|
||||
game.addEffect(effect, source);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Effect copy() {
|
||||
return new CragSaurianEffect(this);
|
||||
}
|
||||
public CragSaurianEffect() {
|
||||
super(Outcome.GainControl);
|
||||
this.staticText = "that source's controller gains control of {this}";
|
||||
}
|
||||
|
||||
class CragSaurianTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
CragSaurianTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CragSaurianEffect());
|
||||
}
|
||||
|
||||
CragSaurianTriggeredAbility(final CragSaurianTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CragSaurianTriggeredAbility copy() {
|
||||
return new CragSaurianTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.DAMAGED_PERMANENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getTargetId().equals(this.sourceId)) {
|
||||
UUID controller = game.getControllerId(event.getSourceId());
|
||||
if (controller != null) {
|
||||
Player player = game.getPlayer(controller);
|
||||
if (player != null) {
|
||||
getEffects().get(0).setTargetPointer(new FixedTarget(player.getId()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a source deals damage to {this}, " ;
|
||||
private CragSaurianEffect(CragSaurianEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Player newController = game.getPlayer(this.getTargetPointer().getFirst(game, source));
|
||||
if (newController != null && controller != null && !controller.equals(newController)) {
|
||||
ContinuousEffect effect = new GainControlTargetEffect(Duration.Custom, newController.getId());
|
||||
effect.setTargetPointer(new FixedTarget(source.getSourceId(), game));
|
||||
game.addEffect(effect, source);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Effect copy() {
|
||||
return new CragSaurianEffect(this);
|
||||
}
|
||||
}
|
||||
|
||||
class CragSaurianTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
CragSaurianTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CragSaurianEffect());
|
||||
setTriggerPhrase("Whenever a source deals damage to {this}, ");
|
||||
}
|
||||
|
||||
CragSaurianTriggeredAbility(final CragSaurianTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CragSaurianTriggeredAbility copy() {
|
||||
return new CragSaurianTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.DAMAGED_PERMANENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getTargetId().equals(this.sourceId)) {
|
||||
UUID controller = game.getControllerId(event.getSourceId());
|
||||
if (controller != null) {
|
||||
Player player = game.getPlayer(controller);
|
||||
if (player != null) {
|
||||
getEffects().get(0).setTargetPointer(new FixedTarget(player.getId()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -48,6 +48,7 @@ class CrawlingInfestationTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public CrawlingInfestationTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new InsectToken()));
|
||||
this.setTriggersOnce(true);
|
||||
setTriggerPhrase("Whenever one or more creature cards are put into your graveyard from anywhere during your turn, ");
|
||||
}
|
||||
|
||||
private CrawlingInfestationTriggeredAbility(final CrawlingInfestationTriggeredAbility ability) {
|
||||
|
@ -73,9 +74,4 @@ class CrawlingInfestationTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more creature cards are put into your graveyard from anywhere during your turn, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ class CultOfTheWaxingMoonAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CultOfTheWaxingMoonAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new WolfToken()), false);
|
||||
setTriggerPhrase("Whenever a permanent you control transforms into a non-Human creature, ");
|
||||
}
|
||||
|
||||
public CultOfTheWaxingMoonAbility(final CultOfTheWaxingMoonAbility ability) {
|
||||
|
@ -75,9 +76,4 @@ class CultOfTheWaxingMoonAbility extends TriggeredAbilityImpl {
|
|||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
return filter.match(permanent, getControllerId(), this, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a permanent you control transforms into a non-Human creature, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ class CurseOfChaosTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public CurseOfChaosTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CurseOfChaosEffect(), false); // false because handled in effect
|
||||
setTriggerPhrase("Whenever a player attacks enchanted player with one or more creatures, ");
|
||||
}
|
||||
|
||||
public CurseOfChaosTriggeredAbility(final CurseOfChaosTriggeredAbility ability) {
|
||||
|
@ -81,11 +82,6 @@ class CurseOfChaosTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a player attacks enchanted player with one or more creatures, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CurseOfChaosTriggeredAbility copy() {
|
||||
return new CurseOfChaosTriggeredAbility(this);
|
||||
|
@ -114,6 +110,7 @@ class CurseOfChaosEffect extends OneShotEffect {
|
|||
Player attacker = game.getPlayer(this.getTargetPointer().getFirst(game, source));
|
||||
if (attacker != null) {
|
||||
if (!attacker.getHand().isEmpty() && attacker.chooseUse(outcome, "Discard a card and draw a card?", source, game)) {
|
||||
// TODO: This should check that a card was actually discarded
|
||||
attacker.discard(1, false, false, source, game);
|
||||
attacker.drawCards(1, source, game);
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ class CurseOfShakenFaithTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public CurseOfShakenFaithTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CurseOfShakenFaithEffect());
|
||||
this.addWatcher(new SpellsCastWatcher());
|
||||
setTriggerPhrase("Whenever enchanted player casts a spell other than the first spell they cast each turn or copies a spell, ");
|
||||
}
|
||||
|
||||
private CurseOfShakenFaithTriggeredAbility(final CurseOfShakenFaithTriggeredAbility ability) {
|
||||
|
@ -94,11 +95,6 @@ class CurseOfShakenFaithTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted player casts a spell other than the first spell they cast each turn or copies a spell, ";
|
||||
}
|
||||
}
|
||||
|
||||
class CurseOfShakenFaithEffect extends OneShotEffect {
|
||||
|
|
|
@ -108,6 +108,7 @@ class CurseOfSilenceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
new DrawCardSourceControllerEffect(1),
|
||||
new SacrificeSourceCost()
|
||||
));
|
||||
setTriggerPhrase("Whenever enchanted player casts a spell with the chosen name, ");
|
||||
}
|
||||
|
||||
private CurseOfSilenceTriggeredAbility(final CurseOfSilenceTriggeredAbility ability) {
|
||||
|
@ -136,9 +137,4 @@ class CurseOfSilenceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted player casts a spell with the chosen name, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ class BecomesMonarchSourceControllerTriggeredAbility extends TriggeredAbilityImp
|
|||
|
||||
public BecomesMonarchSourceControllerTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever you become the monarch, ");
|
||||
}
|
||||
|
||||
public BecomesMonarchSourceControllerTriggeredAbility(final BecomesMonarchSourceControllerTriggeredAbility ability) {
|
||||
|
@ -73,11 +74,6 @@ class BecomesMonarchSourceControllerTriggeredAbility extends TriggeredAbilityImp
|
|||
return isControlledBy(event.getPlayerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you become the monarch, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BecomesMonarchSourceControllerTriggeredAbility copy() {
|
||||
return new BecomesMonarchSourceControllerTriggeredAbility(this);
|
||||
|
|
|
@ -48,6 +48,7 @@ class DaringSleuthTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DaringSleuthTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new TransformSourceEffect());
|
||||
setTriggerPhrase("When you sacrifice a Clue, ");
|
||||
}
|
||||
|
||||
public DaringSleuthTriggeredAbility(final DaringSleuthTriggeredAbility ability) {
|
||||
|
@ -69,9 +70,4 @@ class DaringSleuthTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return event.getPlayerId().equals(this.getControllerId())
|
||||
&& game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).hasSubtype(SubType.CLUE, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When you sacrifice a Clue, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ class DeadIronSledgeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DeadIronSledgeTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
setTriggerPhrase("Whenever equipped creature blocks or becomes blocked by a creature, ");
|
||||
}
|
||||
|
||||
public DeadIronSledgeTriggeredAbility(final DeadIronSledgeTriggeredAbility ability) {
|
||||
|
@ -89,11 +90,6 @@ class DeadIronSledgeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever equipped creature blocks or becomes blocked by a creature, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeadIronSledgeTriggeredAbility copy() {
|
||||
return new DeadIronSledgeTriggeredAbility(this);
|
||||
|
|
|
@ -61,6 +61,7 @@ class DeathTyrantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DeathTyrantTriggeredAbility() {
|
||||
super(Zone.ALL, new CreateTokenEffect(new ZombieToken()));
|
||||
setTriggerPhrase("Whenever an attacking creature you control or a blocking creature an opponent controls dies, ");
|
||||
}
|
||||
|
||||
private DeathTyrantTriggeredAbility(final DeathTyrantTriggeredAbility ability) {
|
||||
|
@ -96,9 +97,4 @@ class DeathTyrantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
|
||||
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an attacking creature you control or a blocking creature an opponent controls dies, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl {
|
|||
|
||||
DesolationTwinOnCastAbility() {
|
||||
super(Zone.STACK, new CreateTokenEffect(new EldraziToken()));
|
||||
setTriggerPhrase("When you cast this spell, ");
|
||||
}
|
||||
|
||||
DesolationTwinOnCastAbility(DesolationTwinOnCastAbility ability) {
|
||||
|
@ -67,9 +68,4 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl {
|
|||
public DesolationTwinOnCastAbility copy() {
|
||||
return new DesolationTwinOnCastAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When you cast this spell, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ class DetritivoreTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public DetritivoreTriggeredAbility() {
|
||||
super(Zone.EXILED, new DestroyTargetEffect(), false);
|
||||
this.addTarget(new TargetNonBasicLandPermanent());
|
||||
setTriggerPhrase("Whenever a time counter is removed from {this} while it's exiled, ");
|
||||
}
|
||||
|
||||
public DetritivoreTriggeredAbility(final DetritivoreTriggeredAbility ability) {
|
||||
|
@ -86,12 +87,6 @@ class DetritivoreTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getData().equals(CounterType.TIME.getName()) && event.getTargetId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a time counter is removed from {this} while it's exiled, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class NonBasicLandsInOpponentsGraveyards implements DynamicValue {
|
||||
|
|
|
@ -150,6 +150,7 @@ class DhalsimPliablePacifistTriggeredAbility extends TriggeredAbilityImpl {
|
|||
DhalsimPliablePacifistTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), false);
|
||||
this.withFlavorWord("Fierce Punch");
|
||||
setTriggerPhrase("Whenever one or more creatures you control deal combat damage to a player, ");
|
||||
}
|
||||
|
||||
private DhalsimPliablePacifistTriggeredAbility(final DhalsimPliablePacifistTriggeredAbility ability) {
|
||||
|
@ -190,9 +191,4 @@ class DhalsimPliablePacifistTriggeredAbility extends TriggeredAbilityImpl {
|
|||
damagedPlayerIds.add(event.getPlayerId());
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more creatures you control deal combat damage to a player, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ class DragonAppeasementTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public DragonAppeasementTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), true);
|
||||
setLeavesTheBattlefieldTrigger(true);
|
||||
setTriggerPhrase("Whenever you sacrifice a creature, ");
|
||||
}
|
||||
|
||||
public DragonAppeasementTriggeredAbility(final DragonAppeasementTriggeredAbility ability) {
|
||||
|
@ -66,9 +67,4 @@ class DragonAppeasementTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return event.getPlayerId().equals(this.getControllerId())
|
||||
&& game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).isCreature(game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you sacrifice a creature, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,7 @@ class DragonlordKolaghanTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DragonlordKolaghanTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, ");
|
||||
}
|
||||
|
||||
public DragonlordKolaghanTriggeredAbility(final DragonlordKolaghanTriggeredAbility ability) {
|
||||
|
@ -106,9 +107,4 @@ class DragonlordKolaghanTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ class DreadhoundTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DreadhoundTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new LoseLifeOpponentsEffect(1));
|
||||
setTriggerPhrase("Whenever a creature dies or a creature card is put into a graveyard from a library, ");
|
||||
}
|
||||
|
||||
private DreadhoundTriggeredAbility(final DreadhoundTriggeredAbility ability) {
|
||||
|
@ -83,9 +84,4 @@ class DreadhoundTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature dies or a creature card is put into a graveyard from a library, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,6 +110,7 @@ class DropOfHoneyStateTriggeredAbility extends StateTriggeredAbility {
|
|||
|
||||
public DropOfHoneyStateTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new SacrificeSourceEffect());
|
||||
setTriggerPhrase("When there are no creatures on the battlefield, ");
|
||||
}
|
||||
|
||||
public DropOfHoneyStateTriggeredAbility(final DropOfHoneyStateTriggeredAbility ability) {
|
||||
|
@ -125,9 +126,4 @@ class DropOfHoneyStateTriggeredAbility extends StateTriggeredAbility {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.getBattlefield().count(StaticFilters.FILTER_PERMANENT_CREATURES, this.getControllerId(), this, game) == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When there are no creatures on the battlefield, " ;
|
||||
}
|
||||
}
|
|
@ -50,6 +50,7 @@ class DruidOfHornsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DruidOfHornsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new BeastToken()), false);
|
||||
setTriggerPhrase("Whenever you cast an Aura spell that targets {this}, ");
|
||||
}
|
||||
|
||||
public DruidOfHornsTriggeredAbility(final DruidOfHornsTriggeredAbility ability) {
|
||||
|
@ -98,9 +99,4 @@ class DruidOfHornsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast an Aura spell that targets {this}, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ class EfreetWeaponmasterAbility extends TriggeredAbilityImpl {
|
|||
super(Zone.BATTLEFIELD, new BoostTargetEffect(3,0, Duration.EndOfTurn), false);
|
||||
this.addTarget(new TargetControlledCreaturePermanent(filter));
|
||||
this.setWorksFaceDown(true);
|
||||
setTriggerPhrase("When {this} enters the battlefield or is turned face up, ");
|
||||
}
|
||||
|
||||
public EfreetWeaponmasterAbility(final EfreetWeaponmasterAbility ability) {
|
||||
|
@ -96,10 +97,4 @@ class EfreetWeaponmasterAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} enters the battlefield or is turned face up, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ class ElderBrainTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
ElderBrainTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new ElderBrainEffect());
|
||||
setTriggerPhrase("Whenever {this} attacks a player, ");
|
||||
}
|
||||
|
||||
private ElderBrainTriggeredAbility(final ElderBrainTriggeredAbility ability) {
|
||||
|
@ -73,11 +74,6 @@ class ElderBrainTriggeredAbility extends TriggeredAbilityImpl {
|
|||
this.getEffects().setTargetPointer(new FixedTarget(player.getId()));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks a player, ";
|
||||
}
|
||||
}
|
||||
|
||||
class ElderBrainEffect extends OneShotEffect {
|
||||
|
|
|
@ -64,6 +64,7 @@ class EnigmaSphinxTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public EnigmaSphinxTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.ALL, effect, optional);
|
||||
setTriggerPhrase("When {this} is put into your graveyard from the battlefield, ");
|
||||
}
|
||||
|
||||
EnigmaSphinxTriggeredAbility(EnigmaSphinxTriggeredAbility ability) {
|
||||
|
@ -93,11 +94,6 @@ class EnigmaSphinxTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} is put into your graveyard from the battlefield, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class EnigmaSphinxEffect extends OneShotEffect {
|
||||
|
|
|
@ -59,6 +59,7 @@ class ErayoSoratamiAscendantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ErayoSoratamiAscendantTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, getFlipEffect(), false);
|
||||
setTriggerPhrase("Whenever the fourth spell of a turn is cast, ");
|
||||
}
|
||||
|
||||
private static Effect getFlipEffect() {
|
||||
|
@ -82,11 +83,6 @@ class ErayoSoratamiAscendantTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return watcher != null && watcher.getAmountOfSpellsAllPlayersCastOnCurrentTurn() == 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever the fourth spell of a turn is cast, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErayoSoratamiAscendantTriggeredAbility copy() {
|
||||
return new ErayoSoratamiAscendantTriggeredAbility(this);
|
||||
|
@ -120,6 +116,7 @@ class ErayosEssenceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ErayosEssenceTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever an opponent casts a spell for the first time each turn, ");
|
||||
}
|
||||
|
||||
public ErayosEssenceTriggeredAbility(final ErayosEssenceTriggeredAbility ability) {
|
||||
|
@ -145,11 +142,6 @@ class ErayosEssenceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent casts a spell for the first time each turn, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErayosEssenceTriggeredAbility copy() {
|
||||
return new ErayosEssenceTriggeredAbility(this);
|
||||
|
|
|
@ -64,6 +64,7 @@ class ErebossTitanTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ErebossTitanTriggeredAbility() {
|
||||
super(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToHandEffect(), new DiscardCardCost()));
|
||||
setTriggerPhrase("Whenever a creature card leaves an opponent's graveyard, ");
|
||||
}
|
||||
|
||||
public ErebossTitanTriggeredAbility(final ErebossTitanTriggeredAbility ability) {
|
||||
|
@ -93,9 +94,4 @@ class ErebossTitanTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature card leaves an opponent's graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ class EssenceSliverTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public EssenceSliverTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new EssenceSliverEffect(), false);
|
||||
setTriggerPhrase("Whenever a Sliver deals damage, ");
|
||||
}
|
||||
|
||||
public EssenceSliverTriggeredAbility(final EssenceSliverTriggeredAbility ability) {
|
||||
|
@ -82,11 +83,6 @@ class EssenceSliverTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a Sliver deals damage, ";
|
||||
}
|
||||
}
|
||||
|
||||
class EssenceSliverEffect extends OneShotEffect {
|
||||
|
|
|
@ -26,11 +26,7 @@ import mage.game.events.GameEvent;
|
|||
*/
|
||||
public final class EssenceSymbiote extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("creature you control mutates");
|
||||
|
||||
static {
|
||||
filter.add(new AbilityPredicate(MutateAbility.class));
|
||||
}
|
||||
|
||||
public EssenceSymbiote(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
@ -41,8 +37,7 @@ public final class EssenceSymbiote extends CardImpl {
|
|||
|
||||
// Whenever a creature you control mutates, put a +1/+1 counter on that creature and you gain 2 life.
|
||||
Ability ability = new EssenceSymbioteTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance()).setText("put a +1/+1 counter on that creature"),
|
||||
filter);
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance()).setText("put a +1/+1 counter on that creature"));
|
||||
// You gain 2 life when Essence Symbiote’s ability resolves, even if you can’t put a +1/+1 counter on the mutated creature
|
||||
ability.addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
|
@ -60,16 +55,19 @@ public final class EssenceSymbiote extends CardImpl {
|
|||
|
||||
class EssenceSymbioteTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private final FilterPermanent filter;
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("creature you control mutates");
|
||||
|
||||
public EssenceSymbioteTriggeredAbility(Zone zone, Effect effect, FilterPermanent filter) {
|
||||
static {
|
||||
filter.add(new AbilityPredicate(MutateAbility.class));
|
||||
}
|
||||
|
||||
public EssenceSymbioteTriggeredAbility(Zone zone, Effect effect) {
|
||||
super(zone, effect, false);
|
||||
this.filter = filter;
|
||||
setTriggerPhrase("Whenever a creature you control mutates, ");
|
||||
}
|
||||
|
||||
public EssenceSymbioteTriggeredAbility(final mage.cards.e.EssenceSymbioteTriggeredAbility ability) {
|
||||
super(ability);
|
||||
this.filter = ability.filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -106,10 +104,4 @@ class EssenceSymbioteTriggeredAbility extends TriggeredAbilityImpl {
|
|||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control mutates, " ;
|
||||
}
|
||||
|
||||
}
|
|
@ -64,6 +64,7 @@ class EtherealValkyrieTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
EtherealValkyrieTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever {this} enters the battlefield or attacks, ");
|
||||
}
|
||||
|
||||
EtherealValkyrieTriggeredAbility(final EtherealValkyrieTriggeredAbility ability) {
|
||||
|
@ -95,11 +96,6 @@ class EtherealValkyrieTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} enters the battlefield or attacks, ";
|
||||
}
|
||||
}
|
||||
|
||||
class EtherealValkyrieEffect extends OneShotEffect {
|
||||
|
|
|
@ -101,6 +101,7 @@ class ExtraplanarLensTriggeredAbility extends TriggeredManaAbility {
|
|||
|
||||
public ExtraplanarLensTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddManaOfAnyTypeProducedEffect());
|
||||
setTriggerPhrase("Whenever a land with the same name as the exiled card is tapped for mana, ");
|
||||
}
|
||||
|
||||
public ExtraplanarLensTriggeredAbility(final ExtraplanarLensTriggeredAbility ability) {
|
||||
|
@ -137,11 +138,6 @@ class ExtraplanarLensTriggeredAbility extends TriggeredManaAbility {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a land with the same name as the exiled card is tapped for mana, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExtraplanarLensTriggeredAbility copy() {
|
||||
return new ExtraplanarLensTriggeredAbility(this);
|
||||
|
|
|
@ -64,6 +64,7 @@ class FaldornDreadWolfHeraldTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
FaldornDreadWolfHeraldTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new WolfToken()));
|
||||
setTriggerPhrase("Whenever you cast a spell from exile or a land enters the battlefield under your control from exile, ");
|
||||
}
|
||||
|
||||
private FaldornDreadWolfHeraldTriggeredAbility(final FaldornDreadWolfHeraldTriggeredAbility ability) {
|
||||
|
@ -99,9 +100,4 @@ class FaldornDreadWolfHeraldTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast a spell from exile or a land enters the battlefield under your control from exile, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ class FatalMutationAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public FatalMutationAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever enchanted creature is turned face up, ");
|
||||
}
|
||||
|
||||
public FatalMutationAbility(final FatalMutationAbility ability) {
|
||||
|
@ -79,11 +80,5 @@ class FatalMutationAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature is turned face up, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ class FathomMageTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public FathomMageTriggeredAbility() {
|
||||
super(Zone.ALL, new DrawCardSourceControllerEffect(1), true);
|
||||
setTriggerPhrase("Whenever a +1/+1 counter is put on {this}, ");
|
||||
}
|
||||
|
||||
public FathomMageTriggeredAbility(FathomMageTriggeredAbility ability) {
|
||||
|
@ -71,9 +72,4 @@ class FathomMageTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public FathomMageTriggeredAbility copy() {
|
||||
return new FathomMageTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a +1/+1 counter is put on {this}, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ class FeywildVisitorAbility extends TriggeredAbilityImpl {
|
|||
|
||||
FeywildVisitorAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new FaerieDragonToken()), false);
|
||||
setTriggerPhrase("Whenever one or more nontoken creatures you control deal combat damage to a player, you ");
|
||||
}
|
||||
|
||||
private FeywildVisitorAbility(final FeywildVisitorAbility ability) {
|
||||
|
@ -90,9 +91,4 @@ class FeywildVisitorAbility extends TriggeredAbilityImpl {
|
|||
damagedPlayerIds.add(event.getTargetId());
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more nontoken creatures you control deal combat damage to a player, you ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ class FiveAlarmFireTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public FiveAlarmFireTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.BLAZE.createInstance()), false);
|
||||
setTriggerPhrase("Whenever a creature you control deals combat damage, ");
|
||||
}
|
||||
|
||||
public FiveAlarmFireTriggeredAbility(final FiveAlarmFireTriggeredAbility ability) {
|
||||
|
@ -100,10 +101,4 @@ class FiveAlarmFireTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control deals combat damage, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ class ScryTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public ScryTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new BoostSourceEffect(2,0, Duration.EndOfTurn), false);
|
||||
this.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn));
|
||||
setTriggerPhrase("Whenever you scry, ");
|
||||
}
|
||||
|
||||
public ScryTriggeredAbility(final ScryTriggeredAbility ability) {
|
||||
|
@ -69,9 +70,4 @@ class ScryTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getPlayerId().equals(this.getControllerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you scry, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ class FleetingMemoriesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public FleetingMemoriesTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new MillCardsTargetEffect(3));
|
||||
setLeavesTheBattlefieldTrigger(true);
|
||||
setTriggerPhrase("Whenever you sacrifice a Clue, ");
|
||||
}
|
||||
|
||||
public FleetingMemoriesTriggeredAbility(final FleetingMemoriesTriggeredAbility ability) {
|
||||
|
@ -78,9 +79,4 @@ class FleetingMemoriesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return event.getPlayerId().equals(this.getControllerId())
|
||||
&& game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).hasSubtype(SubType.CLUE, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you sacrifice a Clue, " ;
|
||||
}
|
||||
}
|
|
@ -67,6 +67,7 @@ class FleshCarverAbility extends DiesSourceTriggeredAbility {
|
|||
|
||||
public FleshCarverAbility() {
|
||||
super(new FleshCarverEffect(), false);
|
||||
setTriggerPhrase("When Flesh Carver dies, ");
|
||||
}
|
||||
|
||||
public FleshCarverAbility(final FleshCarverAbility ability) {
|
||||
|
@ -91,11 +92,6 @@ class FleshCarverAbility extends DiesSourceTriggeredAbility {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When Flesh Carver dies, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class FleshCarverEffect extends OneShotEffect {
|
||||
|
@ -123,5 +119,4 @@ class FleshCarverEffect extends OneShotEffect {
|
|||
public FleshCarverEffect copy() {
|
||||
return new FleshCarverEffect(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ class FleshReaverTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
FleshReaverTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamageControllerEffect(SavedDamageValue.MUCH));
|
||||
setTriggerPhrase("Whenever {this} deals damage to a creature or opponent, ");
|
||||
}
|
||||
|
||||
private FleshReaverTriggeredAbility(final FleshReaverTriggeredAbility effect) {
|
||||
|
@ -76,9 +77,4 @@ class FleshReaverTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals damage to a creature or opponent, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ class ForbiddenOrchardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
ForbiddenOrchardTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenTargetEffect(new SpiritToken()));
|
||||
this.addTarget(new TargetOpponent());
|
||||
setTriggerPhrase("Whenever you tap {this} for mana, ");
|
||||
}
|
||||
|
||||
private ForbiddenOrchardTriggeredAbility(final ForbiddenOrchardTriggeredAbility ability) {
|
||||
|
@ -69,11 +70,6 @@ class ForbiddenOrchardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& isControlledBy(event.getPlayerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you tap {this} for mana, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForbiddenOrchardTriggeredAbility copy() {
|
||||
return new ForbiddenOrchardTriggeredAbility(this);
|
||||
|
|
|
@ -76,7 +76,7 @@ class FrontierSiegeKhansTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
FrontierSiegeKhansTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new AddManaToManaPoolSourceControllerEffect(Mana.GreenMana(2)), false);
|
||||
|
||||
setTriggerPhrase("At the beginning of each of your main phases, ");
|
||||
}
|
||||
|
||||
private FrontierSiegeKhansTriggeredAbility(final FrontierSiegeKhansTriggeredAbility ability) {
|
||||
|
@ -98,12 +98,6 @@ class FrontierSiegeKhansTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getPlayerId().equals(this.controllerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of each of your main phases, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class FrontierSiegeFightEffect extends OneShotEffect {
|
||||
|
|
|
@ -64,6 +64,7 @@ class FungalBehemothTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public FungalBehemothTriggeredAbility() {
|
||||
super(Zone.EXILED, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), true);
|
||||
addTarget(new TargetCreaturePermanent());
|
||||
setTriggerPhrase("Whenever a time counter is removed from {this} while it's exiled, ");
|
||||
}
|
||||
|
||||
public FungalBehemothTriggeredAbility(final FungalBehemothTriggeredAbility ability) {
|
||||
|
@ -84,12 +85,6 @@ class FungalBehemothTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getData().equals(CounterType.TIME.getName()) && event.getTargetId().equals(this.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a time counter is removed from {this} while it's exiled, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class P1P1CountersOnControlledCreaturesCount implements DynamicValue {
|
||||
|
|
|
@ -43,6 +43,7 @@ class FurnaceCelebrationAbility extends TriggeredAbilityImpl {
|
|||
public FurnaceCelebrationAbility() {
|
||||
super(Zone.BATTLEFIELD, new DoIfCostPaid(new DamageTargetEffect(2), new ManaCostsImpl<>("{2}")));
|
||||
this.addTarget(new TargetAnyTarget());
|
||||
setTriggerPhrase("Whenever you sacrifice another permanent, ");
|
||||
}
|
||||
|
||||
public FurnaceCelebrationAbility(final FurnaceCelebrationAbility ability) {
|
||||
|
@ -63,11 +64,4 @@ class FurnaceCelebrationAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getPlayerId().equals(this.getControllerId()) && !event.getTargetId().equals(sourceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you sacrifice another permanent, " ;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -92,6 +92,7 @@ class GoToJailTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GoToJailTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GoToJailUpkeepEffect(), false);
|
||||
setTriggerPhrase("At the beginning of the chosen player's upkeep, ");
|
||||
}
|
||||
|
||||
public GoToJailTriggeredAbility(final GoToJailTriggeredAbility ability) {
|
||||
|
@ -112,11 +113,6 @@ class GoToJailTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return event.getPlayerId().equals(game.getState().getValue(this.getSourceId().toString() + ChooseOpponentEffect.VALUE_KEY));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of the chosen player's upkeep, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GoToJailUpkeepEffect extends OneShotEffect {
|
||||
|
|
|
@ -51,6 +51,7 @@ class GladehartCavalryTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GladehartCavalryTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GainLifeEffect(2));
|
||||
setTriggerPhrase("Whenever a creature you control with a +1/+1 counter on it dies, ");
|
||||
}
|
||||
|
||||
public GladehartCavalryTriggeredAbility(final GladehartCavalryTriggeredAbility ability) {
|
||||
|
@ -81,9 +82,4 @@ class GladehartCavalryTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control with a +1/+1 counter on it dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ class GlintHornBuccaneerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
GlintHornBuccaneerTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamagePlayersEffect(1, TargetController.OPPONENT), false);
|
||||
setTriggerPhrase("Whenever you discard a card, ");
|
||||
}
|
||||
|
||||
private GlintHornBuccaneerTriggeredAbility(final GlintHornBuccaneerTriggeredAbility ability) {
|
||||
|
@ -82,11 +83,5 @@ class GlintHornBuccaneerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return isControlledBy(event.getPlayerId());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you discard a card, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ class GlyphOfLifeTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
public GlyphOfLifeTriggeredAbility() {
|
||||
super(new GlyphOfLifeGainLifeEffect(), Duration.EndOfTurn, false);
|
||||
setTriggerPhrase("Whenever that creature is dealt damage by an attacking creature this turn, ");
|
||||
}
|
||||
|
||||
public GlyphOfLifeTriggeredAbility(final GlyphOfLifeTriggeredAbility effect) {
|
||||
|
@ -84,11 +85,6 @@ class GlyphOfLifeTriggeredAbility extends DelayedTriggeredAbility {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever that creature is dealt damage by an attacking creature this turn, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GlyphOfLifeGainLifeEffect extends OneShotEffect {
|
||||
|
|
|
@ -105,6 +105,7 @@ class GoldenGuardianDelayedTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
public GoldenGuardianDelayedTriggeredAbility() {
|
||||
super(new GoldenGuardianReturnTransformedEffect(), Duration.EndOfTurn);
|
||||
setTriggerPhrase("When {this} dies this turn, ");
|
||||
}
|
||||
|
||||
public GoldenGuardianDelayedTriggeredAbility(final GoldenGuardianDelayedTriggeredAbility ability) {
|
||||
|
@ -125,11 +126,6 @@ class GoldenGuardianDelayedTriggeredAbility extends DelayedTriggeredAbility {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return ((ZoneChangeEvent) event).isDiesEvent() && event.getTargetId().equals(getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} dies this turn, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GoldenGuardianReturnTransformedEffect extends OneShotEffect {
|
||||
|
|
|
@ -73,6 +73,7 @@ class GoldspanDragonTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
GoldspanDragonTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new TreasureToken()));
|
||||
setTriggerPhrase("Whenever {this} attacks or becomes the target of a spell, ");
|
||||
}
|
||||
|
||||
private GoldspanDragonTriggeredAbility(final GoldspanDragonTriggeredAbility ability) {
|
||||
|
@ -100,11 +101,6 @@ class GoldspanDragonTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks or becomes the target of a spell, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GoldspanDragonTriggeredAbility copy() {
|
||||
return new GoldspanDragonTriggeredAbility(this);
|
||||
|
|
|
@ -57,6 +57,7 @@ class GontisMachinationsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GontisMachinationsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GetEnergyCountersControllerEffect(1), false);
|
||||
setTriggerPhrase("Whenever you lose life for the first time each turn, ");
|
||||
}
|
||||
|
||||
public GontisMachinationsTriggeredAbility(final GontisMachinationsTriggeredAbility ability) {
|
||||
|
@ -85,11 +86,6 @@ class GontisMachinationsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public GontisMachinationsTriggeredAbility copy() {
|
||||
return new GontisMachinationsTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you lose life for the first time each turn, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GontisMachinationsFirstLostLifeThisTurnWatcher extends Watcher {
|
||||
|
|
|
@ -46,6 +46,7 @@ class GrafMoleTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public GrafMoleTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GainLifeEffect(3));
|
||||
setLeavesTheBattlefieldTrigger(true);
|
||||
setTriggerPhrase("Whenever you sacrifice a Clue, ");
|
||||
}
|
||||
|
||||
public GrafMoleTriggeredAbility(final GrafMoleTriggeredAbility ability) {
|
||||
|
@ -67,9 +68,4 @@ class GrafMoleTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return event.getPlayerId().equals(this.getControllerId())
|
||||
&& game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).hasSubtype(SubType.CLUE, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you sacrifice a Clue, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,20 +48,13 @@ public final class GrandMoffTarkin extends CardImpl {
|
|||
|
||||
class GrandMoffTarkinTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
protected String text;
|
||||
|
||||
public GrandMoffTarkinTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
}
|
||||
|
||||
public GrandMoffTarkinTriggeredAbility(Effect effect, boolean optional, String text) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.text = text;
|
||||
setTriggerPhrase("At the beginning of each opponent's upkeep, ");
|
||||
}
|
||||
|
||||
public GrandMoffTarkinTriggeredAbility(final GrandMoffTarkinTriggeredAbility ability) {
|
||||
super(ability);
|
||||
this.text = ability.text;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -85,11 +78,6 @@ class GrandMoffTarkinTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of each opponent's upkeep, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrandMoffTarkinTriggeredAbility copy() {
|
||||
return new GrandMoffTarkinTriggeredAbility(this);
|
||||
|
|
|
@ -87,6 +87,7 @@ class GrandWarlordRadhaTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GrandWarlordRadhaTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GrandWarlordRadhaEffect(), false);
|
||||
setTriggerPhrase("Whenever one or more creatures you control attack, ");
|
||||
}
|
||||
|
||||
public GrandWarlordRadhaTriggeredAbility(final GrandWarlordRadhaTriggeredAbility ability) {
|
||||
|
@ -115,11 +116,6 @@ class GrandWarlordRadhaTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more creatures you control attack, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GrandWarlordRadhaEffect extends OneShotEffect {
|
||||
|
|
|
@ -46,6 +46,7 @@ class GravePactTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GravePactTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GravePactEffect());
|
||||
setTriggerPhrase("Whenever a creature you control dies, ");
|
||||
}
|
||||
|
||||
public GravePactTriggeredAbility(final GravePactTriggeredAbility ability) {
|
||||
|
@ -71,11 +72,6 @@ class GravePactTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control dies, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GravePactEffect extends OneShotEffect {
|
||||
|
|
|
@ -43,6 +43,7 @@ class GravityWellTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GravityWellTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GravityWellEffect());
|
||||
setTriggerPhrase("Whenever a creature with flying attacks, ");
|
||||
}
|
||||
|
||||
public GravityWellTriggeredAbility(final GravityWellTriggeredAbility ability) {
|
||||
|
@ -66,11 +67,6 @@ class GravityWellTriggeredAbility extends TriggeredAbilityImpl {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature with flying attacks, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GravityWellTriggeredAbility copy() {
|
||||
return new GravityWellTriggeredAbility(this);
|
||||
|
|
|
@ -58,6 +58,7 @@ class GreatbowDoyenTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GreatbowDoyenTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GreatbowDoyenEffect());
|
||||
setTriggerPhrase("Whenever an Archer you control deals damage to a creature, ");
|
||||
}
|
||||
|
||||
public GreatbowDoyenTriggeredAbility(final GreatbowDoyenTriggeredAbility ability) {
|
||||
|
@ -89,11 +90,6 @@ class GreatbowDoyenTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an Archer you control deals damage to a creature, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GreatbowDoyenEffect extends OneShotEffect {
|
||||
|
|
|
@ -68,6 +68,7 @@ class GrenzoHavocRaiserTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GrenzoHavocRaiserTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever a creature you control deals combat damage to a player, ");
|
||||
}
|
||||
|
||||
public GrenzoHavocRaiserTriggeredAbility(final GrenzoHavocRaiserTriggeredAbility ability) {
|
||||
|
@ -117,11 +118,6 @@ class GrenzoHavocRaiserTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control deals combat damage to a player, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GrenzoHavocRaiserEffect extends OneShotEffect {
|
||||
|
|
|
@ -62,6 +62,7 @@ class GrolnokTheOmnivoreTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public GrolnokTheOmnivoreTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new GrolnokTheOmnivoreExileEffect());
|
||||
setTriggerPhrase("Whenever a permanent card is put into your graveyard from your library, ");
|
||||
}
|
||||
|
||||
private GrolnokTheOmnivoreTriggeredAbility(final GrolnokTheOmnivoreTriggeredAbility ability) {
|
||||
|
@ -89,11 +90,6 @@ class GrolnokTheOmnivoreTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a permanent card is put into your graveyard from your library, ";
|
||||
}
|
||||
}
|
||||
|
||||
class GrolnokTheOmnivoreExileEffect extends OneShotEffect {
|
||||
|
|
|
@ -57,6 +57,7 @@ class GuardianOfTazeemTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public GuardianOfTazeemTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new TapTargetEffect(), false);
|
||||
addEffect(new GuardianOfTazeemEffect());
|
||||
setTriggerPhrase("<i>Landfall</i> — Whenever a land enters the battlefield under your control, " );
|
||||
}
|
||||
|
||||
public GuardianOfTazeemTriggeredAbility(final GuardianOfTazeemTriggeredAbility ability) {
|
||||
|
@ -88,11 +89,6 @@ class GuardianOfTazeemTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "<i>Landfall</i> — Whenever a land enters the battlefield under your control, " ;
|
||||
}
|
||||
}
|
||||
|
||||
class GuardianOfTazeemEffect extends OneShotEffect {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue