Replace Overriden getTriggerPhrase() with setTriggerPhrase() usage (#9343)

This commit is contained in:
Alex Vasile 2022-08-08 23:28:46 -04:00 committed by GitHub
parent 188e6dd8c1
commit ebdb6b53a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
406 changed files with 918 additions and 2665 deletions

View file

@ -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);

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -61,6 +61,7 @@ class AkoumFirebirdLandfallAbility extends TriggeredAbilityImpl {
public AkoumFirebirdLandfallAbility(Effect effect, boolean optional) {
this(Zone.GRAVEYARD, effect, optional);
setTriggerPhrase("<i>Landfall</i> &mdash; 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> &mdash; Whenever a land enters the battlefield under your control, " ;
}
@Override
public AkoumFirebirdLandfallAbility copy() {
return new AkoumFirebirdLandfallAbility(this);

View file

@ -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> {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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}, " ;
}
}

View file

@ -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 {

View file

@ -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, ";
}
}

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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, ";
}
}

View file

@ -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, ";
}
}

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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}, ";
}
}

View file

@ -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, ";
}
}

View file

@ -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, ";
}
}

View file

@ -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);

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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;
}
}

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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);
}

View file

@ -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 {

View file

@ -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, ";
}
}

View file

@ -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);

View file

@ -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, " ;
}
}

View file

@ -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);

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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}, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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 {

View file

@ -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);

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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 Symbiotes ability resolves, even if you cant 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, " ;
}
}

View file

@ -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 {

View file

@ -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);

View file

@ -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, ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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}, " ;
}
}

View file

@ -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 ";
}
}

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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);
}
}

View file

@ -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, ";
}
}

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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, " ;
}
}

View file

@ -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 {

View file

@ -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 {

View file

@ -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);

View file

@ -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 {

View file

@ -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, " ;
}
}

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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 {

View file

@ -57,6 +57,7 @@ class GuardianOfTazeemTriggeredAbility extends TriggeredAbilityImpl {
public GuardianOfTazeemTriggeredAbility() {
super(Zone.BATTLEFIELD, new TapTargetEffect(), false);
addEffect(new GuardianOfTazeemEffect());
setTriggerPhrase("<i>Landfall</i> &mdash; 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> &mdash; 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