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

@ -58,6 +58,11 @@ public interface TriggeredAbility extends Ability {
GameEvent getTriggerEvent();
/**
* Don't override this. Use setTriggerPhrase instead and let the base class handle it.
* @return
*/
@Deprecated
String getTriggerPhrase();
TriggeredAbility setTriggerPhrase(String triggerPhrase);

View file

@ -26,7 +26,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
private boolean triggersOnce = false;
private boolean doOnlyOnce = false;
private GameEvent triggerEvent = null;
private String triggerPhrase = null;
private String triggerPhrase = null; // TODO: This should be change to final and all constructers to set a value
public TriggeredAbilityImpl(Zone zone, Effect effect) {
this(zone, effect, false);
@ -175,8 +175,20 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
@Override
public String getRule() {
String superRule = super.getRule(true);
StringBuilder sb = new StringBuilder();
String prefix;
if (abilityWord != null) {
prefix = abilityWord.formatWord();
} else if (flavorWord != null) {
prefix = CardUtil.italicizeWithEmDash(flavorWord);
} else {
prefix = "";
}
sb.append(prefix);
sb.append(triggerPhrase == null ? getTriggerPhrase() : triggerPhrase);
String superRule = super.getRule(true);
if (!superRule.isEmpty()) {
String ruleLow = superRule.toLowerCase(Locale.ENGLISH);
if (isOptional()) {
@ -213,19 +225,12 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
sb.append(" Do this only once each turn.");
}
}
String prefix;
if (abilityWord != null) {
prefix = abilityWord.formatWord();
} else if (flavorWord != null) {
prefix = CardUtil.italicizeWithEmDash(flavorWord);
} else {
prefix = "";
}
return prefix + (triggerPhrase == null ? getTriggerPhrase() : triggerPhrase) + sb;
return sb.toString();
}
@Override
@Deprecated
public String getTriggerPhrase() {
return "";
}

View file

@ -32,6 +32,8 @@ public class ConstellationAbility extends TriggeredAbilityImpl {
super(Zone.BATTLEFIELD, effect, optional);
this.thisOr = thisOr;
setAbilityWord(AbilityWord.CONSTELLATION);
setTriggerPhrase("Whenever " + (thisOr ? "{this} or another" : "an")
+ " enchantment enters the battlefield under your control, ");
}
public ConstellationAbility(final ConstellationAbility ability) {
@ -57,10 +59,4 @@ public class ConstellationAbility extends TriggeredAbilityImpl {
Permanent permanent = game.getPermanent(event.getTargetId());
return permanent != null && ((thisOr && permanent.getId().equals(getSourceId())) || permanent.isEnchantment(game));
}
@Override
public String getTriggerPhrase() {
return "Whenever " + (thisOr ? "{this} or another" : "an")
+ " enchantment enters the battlefield under your control, ";
}
}

View file

@ -27,6 +27,7 @@ public class KinshipAbility extends TriggeredAbilityImpl {
public KinshipAbility(Effect kinshipEffect) {
super(Zone.BATTLEFIELD, new KinshipBaseEffect(kinshipEffect), true);
this.setAbilityWord(AbilityWord.KINSHIP);
setTriggerPhrase("At the beginning of your upkeep, ");
}
public KinshipAbility(final KinshipAbility ability) {
@ -56,12 +57,6 @@ public class KinshipAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
return event.getPlayerId().equals(this.controllerId);
}
@Override
public String getTriggerPhrase() {
return "At the beginning of your upkeep, ";
}
}
class KinshipBaseEffect extends OneShotEffect {

View file

@ -17,6 +17,7 @@ public class ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility extends Triggere
public ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility(Effect effect, SubType planeswalkerSubType) {
super(Zone.BATTLEFIELD, effect, false);
this.planeswalkerSubType = planeswalkerSubType;
setTriggerPhrase("Whenever you activate a loyalty ability of a " + planeswalkerSubType.getDescription() + " planeswalker, ");
}
private ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility(final ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility ability) {
@ -51,11 +52,4 @@ public class ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility extends Triggere
this.getEffects().setValue("stackAbility", stackAbility);
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever you activate a loyalty ability of a "
+ planeswalkerSubType.getDescription()
+ " planeswalker, " ;
}
}

View file

@ -18,6 +18,7 @@ public class AllyEntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl
public AllyEntersBattlefieldTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.setAbilityWord(AbilityWord.RALLY);
setTriggerPhrase("Whenever {this} or another Ally enters the battlefield under your control, ");
}
public AllyEntersBattlefieldTriggeredAbility(AllyEntersBattlefieldTriggeredAbility ability) {
@ -37,11 +38,6 @@ public class AllyEntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl
|| (ebe.getTarget().hasSubtype(SubType.ALLY, game) && !event.getTargetId().equals(this.getSourceId())));
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} or another Ally enters the battlefield under your control, ";
}
@Override
public AllyEntersBattlefieldTriggeredAbility copy() {
return new AllyEntersBattlefieldTriggeredAbility(this);

View file

@ -14,6 +14,7 @@ public class AttachedToCreatureSourceTriggeredAbility extends TriggeredAbilityIm
public AttachedToCreatureSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("As {this} becomes attached to a creature, ");
}
public AttachedToCreatureSourceTriggeredAbility(final AttachedToCreatureSourceTriggeredAbility ability) {
@ -33,11 +34,6 @@ public class AttachedToCreatureSourceTriggeredAbility extends TriggeredAbilityIm
return attachedPermanent != null && attachedPermanent.isCreature(game);
}
@Override
public String getTriggerPhrase() {
return "As {this} becomes attached to a creature, " ;
}
@Override
public AttachedToCreatureSourceTriggeredAbility copy() {
return new AttachedToCreatureSourceTriggeredAbility(this);

View file

@ -42,6 +42,7 @@ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect, optional);
this.setTargetPointer = setTargetPointer;
this.filter = filter;
setTriggerPhrase("Whenever " + filter.getMessage() + " attacks you, ");
}
public AttackedByCreatureTriggeredAbility(final AttackedByCreatureTriggeredAbility ability) {
@ -79,10 +80,4 @@ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl {
public AttackedByCreatureTriggeredAbility copy() {
return new AttackedByCreatureTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever " + filter.getMessage() + " attacks you, " ;
}
}

View file

@ -35,6 +35,11 @@ public class AttackingCreaturePutIntoGraveyardTriggeredAbility extends Triggered
this.filterPermanent = filterPermanent;
this.onlyToControllerGraveyard = onlyToControllerGraveyard;
this.itDies = itDies;
setTriggerPhrase("Whenever " + filterPermanent.getMessage() +
(itDies ?
" dies, " :
" is put into " + (onlyToControllerGraveyard ? "your" : "a") + " graveyard from the battlefield, ")
);
}
private AttackingCreaturePutIntoGraveyardTriggeredAbility(final AttackingCreaturePutIntoGraveyardTriggeredAbility ability) {
@ -111,14 +116,4 @@ public class AttackingCreaturePutIntoGraveyardTriggeredAbility extends Triggered
return false;
}
}
@Override
public String getTriggerPhrase() {
if (itDies) {
return "Whenever " + filterPermanent.getMessage() + " dies, ";
}
return "Whenever " + filterPermanent.getMessage() + " is put into " + (onlyToControllerGraveyard ? "your" : "a")
+ " graveyard from the battlefield, ";
}
}

View file

@ -19,8 +19,8 @@ import java.util.UUID;
*/
public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
protected FilterCreaturePermanent filter;
protected boolean attacksYouOrYourPlaneswalker;
protected final FilterCreaturePermanent filter;
protected final boolean attacksYouOrYourPlaneswalker;
protected SetTargetPointer setTargetPointer;
protected boolean controller;
@ -42,11 +42,13 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
this.attacksYouOrYourPlaneswalker = attacksYouOrYourPlaneswalker;
this.setTargetPointer = setTargetPointer;
this.controller = controller;
setTriggerPhrase("Whenever " + CardUtil.addArticle(filter.getMessage()) + " attacks"
+ (attacksYouOrYourPlaneswalker ? " you or a planeswalker you control" : "") + ", ");
}
public AttacksAllTriggeredAbility(final AttacksAllTriggeredAbility ability) {
super(ability);
this.filter = ability.filter.copy();
this.filter = ability.filter; // TODO: Does this have to be a copy?
this.attacksYouOrYourPlaneswalker = ability.attacksYouOrYourPlaneswalker;
this.setTargetPointer = ability.setTargetPointer;
this.controller = ability.controller;
@ -96,11 +98,4 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
public AttacksAllTriggeredAbility copy() {
return new AttacksAllTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever " + CardUtil.addArticle(filter.getMessage()) + " attacks"
+ (attacksYouOrYourPlaneswalker ? " you or a planeswalker you control" : "") + ", ";
}
}

View file

@ -10,6 +10,7 @@ import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
import mage.util.CardUtil;
import mage.util.CardUtil;
/**
* @author TheElk801
@ -35,6 +36,7 @@ public class AttacksAloneControlledTriggeredAbility extends TriggeredAbilityImpl
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + CardUtil.addArticle(filter.getMessage()) + " attacks alone, ");
}
private AttacksAloneControlledTriggeredAbility(final AttacksAloneControlledTriggeredAbility ability) {
@ -67,9 +69,4 @@ public class AttacksAloneControlledTriggeredAbility extends TriggeredAbilityImpl
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + CardUtil.addArticle(filter.getMessage()) + " attacks alone, ";
}
}

View file

@ -18,6 +18,7 @@ public class AttacksAloneSourceTriggeredAbility extends TriggeredAbilityImpl {
public AttacksAloneSourceTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect);
setTriggerPhrase("Whenever {this} attacks alone, ");
}
public AttacksAloneSourceTriggeredAbility(final AttacksAloneSourceTriggeredAbility ability) {
@ -52,9 +53,4 @@ public class AttacksAloneSourceTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} attacks alone, " ;
}
}

View file

@ -23,6 +23,7 @@ public class AttacksAndIsNotBlockedTriggeredAbility extends TriggeredAbilityImpl
public AttacksAndIsNotBlockedTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} attacks and isn't blocked, ");
}
public AttacksAndIsNotBlockedTriggeredAbility(final AttacksAndIsNotBlockedTriggeredAbility ability) {
@ -52,9 +53,4 @@ public class AttacksAndIsNotBlockedTriggeredAbility extends TriggeredAbilityImpl
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} attacks and isn't blocked, " ;
}
}

View file

@ -19,7 +19,7 @@ import java.util.Locale;
*/
public class AttacksAttachedTriggeredAbility extends TriggeredAbilityImpl {
private AttachmentType attachmentType;
private final AttachmentType attachmentType;
private final boolean setTargetPointer;
public AttacksAttachedTriggeredAbility(Effect effect) {
@ -38,6 +38,7 @@ public class AttacksAttachedTriggeredAbility extends TriggeredAbilityImpl {
super(Zone.BATTLEFIELD, effect, optional);
this.attachmentType = attachmentType;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + attachmentType.verb().toLowerCase(Locale.ENGLISH) + " creature attacks, ");
}
public AttacksAttachedTriggeredAbility(final AttacksAttachedTriggeredAbility abiltity) {
@ -74,11 +75,4 @@ public class AttacksAttachedTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever ");
sb.append(attachmentType.verb().toLowerCase(Locale.ENGLISH));
return sb.append(" creature attacks, ").toString();
}
}

View file

@ -16,8 +16,8 @@ import mage.util.CardUtil;
*/
public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityImpl {
protected FilterControlledCreaturePermanent filter;
protected boolean setTargetPointer;
protected final FilterControlledCreaturePermanent filter;
protected final boolean setTargetPointer;
protected boolean once = false;
public AttacksCreatureYouControlTriggeredAbility(Effect effect) {
@ -40,6 +40,7 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + CardUtil.addArticle(filter.getMessage()) + " attacks, ");
}
public AttacksCreatureYouControlTriggeredAbility(AttacksCreatureYouControlTriggeredAbility ability) {
@ -51,6 +52,7 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
public void setOnce(boolean once) {
this.once = once;
setTriggerPhrase("When" + (once ? " " : "ever ") + CardUtil.addArticle(filter.getMessage()) + " attacks, ");
}
@Override
@ -75,9 +77,4 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
public AttacksCreatureYouControlTriggeredAbility copy() {
return new AttacksCreatureYouControlTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "When" + (once ? "" : "ever") + " " + CardUtil.addArticle(filter.getMessage()) + " attacks, " ;
}
}

View file

@ -19,6 +19,7 @@ public class AttacksFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
public AttacksFirstTimeTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.addWatcher(new AttackedThisTurnWatcher());
setTriggerPhrase("Whenever {this} attacks for the first time each turn, ");
}
public AttacksFirstTimeTriggeredAbility(final AttacksFirstTimeTriggeredAbility ability) {
@ -52,11 +53,6 @@ public class AttacksFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} attacks for the first time each turn, " ;
}
@Override
public AttacksFirstTimeTriggeredAbility copy() {
return new AttacksFirstTimeTriggeredAbility(this);

View file

@ -16,6 +16,7 @@ public class AttacksOpponentWithMostLifeTriggeredAbility extends TriggeredAbilit
public AttacksOpponentWithMostLifeTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever this creature attacks a player, if no opponent has more life than that player, ");
}
private AttacksOpponentWithMostLifeTriggeredAbility(final AttacksOpponentWithMostLifeTriggeredAbility ability) {
@ -49,11 +50,6 @@ public class AttacksOpponentWithMostLifeTriggeredAbility extends TriggeredAbilit
.getLife();
}
@Override
public String getTriggerPhrase() {
return "Whenever this creature attacks a player, if no opponent has more life than that player, ";
}
@Override
public AttacksOpponentWithMostLifeTriggeredAbility copy() {
return new AttacksOpponentWithMostLifeTriggeredAbility(this);

View file

@ -17,6 +17,7 @@ public class AttacksOrBlocksAttachedTriggeredAbility extends TriggeredAbilityImp
public AttacksOrBlocksAttachedTriggeredAbility(Effect effect, AttachmentType attachmentType) {
super(Zone.BATTLEFIELD, effect);
this.attachmentType = attachmentType;
setTriggerPhrase("Whenever " + attachmentType.verb().toLowerCase() + " creature attacks or blocks, ");
}
public AttacksOrBlocksAttachedTriggeredAbility(final AttacksOrBlocksAttachedTriggeredAbility ability) {
@ -40,9 +41,4 @@ public class AttacksOrBlocksAttachedTriggeredAbility extends TriggeredAbilityImp
Permanent enchantment = getSourcePermanentOrLKI(game);
return enchantment != null && event.getSourceId().equals(enchantment.getAttachedTo());
}
@Override
public String getTriggerPhrase() {
return "Whenever " + attachmentType.verb().toLowerCase() + " creature attacks or blocks, ";
}
}

View file

@ -9,18 +9,17 @@ import mage.game.events.GameEvent;
public class AttacksOrBlocksTriggeredAbility extends TriggeredAbilityImpl {
protected String startText = "Whenever";
public AttacksOrBlocksTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
if (effect instanceof CreateDelayedTriggeredAbilityEffect) {
startText = "When";
setTriggerPhrase("When {this} attacks or blocks, ");
} else {
setTriggerPhrase("Whenever {this} attacks or blocks, ");
}
}
public AttacksOrBlocksTriggeredAbility(final AttacksOrBlocksTriggeredAbility ability) {
super(ability);
this.startText = ability.startText;
}
@Override
@ -28,11 +27,6 @@ public class AttacksOrBlocksTriggeredAbility extends TriggeredAbilityImpl {
return new AttacksOrBlocksTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return startText + " {this} attacks or blocks, " ;
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.ATTACKER_DECLARED || event.getType() == GameEvent.EventType.BLOCKER_DECLARED;

View file

@ -34,6 +34,7 @@ public class AttacksTriggeredAbility extends TriggeredAbilityImpl {
super(Zone.BATTLEFIELD, effect, optional);
this.text = text;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} attacks, ");
}
public AttacksTriggeredAbility(final AttacksTriggeredAbility ability) {
@ -69,11 +70,6 @@ public class AttacksTriggeredAbility extends TriggeredAbilityImpl {
return text;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} attacks, ";
}
@Override
public AttacksTriggeredAbility copy() {
return new AttacksTriggeredAbility(this);

View file

@ -29,6 +29,16 @@ public class AttacksWithCreaturesTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect);
this.filter = filter;
this.minAttackers = minAttackers;
if (minAttackers == 1) {
setTriggerPhrase("Whenever you attack, ");
} else {
StringBuilder sb = new StringBuilder("Whenever you attack with ");
sb.append(CardUtil.numberToText(minAttackers));
sb.append(" or more ");
sb.append(filter.getMessage());
sb.append(", ");
setTriggerPhrase(sb.toString());
}
}
public AttacksWithCreaturesTriggeredAbility(final AttacksWithCreaturesTriggeredAbility ability) {
@ -66,17 +76,4 @@ public class AttacksWithCreaturesTriggeredAbility extends TriggeredAbilityImpl {
getEffects().setValue("attackers", attackers);
return true;
}
@Override
public String getTriggerPhrase() {
if (minAttackers == 1) {
return "Whenever you attack, ";
}
StringBuilder sb = new StringBuilder("Whenever you attack with ");
sb.append(CardUtil.numberToText(minAttackers));
sb.append(" or more ");
sb.append(filter.getMessage());
sb.append(", ");
return sb.toString();
}
}

View file

@ -17,6 +17,7 @@ public class AuraAttachedTriggeredAbility extends TriggeredAbilityImpl {
public AuraAttachedTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever an Aura becomes attached to {this}, ");
}
public AuraAttachedTriggeredAbility(final AuraAttachedTriggeredAbility ability) {
@ -39,11 +40,6 @@ public class AuraAttachedTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever an Aura becomes attached to {this}, " ;
}
@Override
public AuraAttachedTriggeredAbility copy() {
return new AuraAttachedTriggeredAbility(this);

View file

@ -26,6 +26,7 @@ public class BecomesBlockedAllTriggeredAbility extends TriggeredAbilityImpl {
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + filter.getMessage() + " becomes blocked, ");
}
public BecomesBlockedAllTriggeredAbility(final BecomesBlockedAllTriggeredAbility ability) {
@ -51,11 +52,6 @@ public class BecomesBlockedAllTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + filter.getMessage() + " becomes blocked, " ;
}
@Override
public BecomesBlockedAllTriggeredAbility copy() {
return new BecomesBlockedAllTriggeredAbility(this);

View file

@ -25,6 +25,7 @@ public class BecomesBlockedAttachedTriggeredAbility extends TriggeredAbilityImpl
public BecomesBlockedAttachedTriggeredAbility(Effect effect, boolean optional, SetTargetPointer setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever enchanted creature becomes blocked, ");
}
public BecomesBlockedAttachedTriggeredAbility(final BecomesBlockedAttachedTriggeredAbility ability) {
@ -58,11 +59,6 @@ public class BecomesBlockedAttachedTriggeredAbility extends TriggeredAbilityImpl
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever enchanted creature becomes blocked, ";
}
@Override
public BecomesBlockedAttachedTriggeredAbility copy() {
return new BecomesBlockedAttachedTriggeredAbility(this);

View file

@ -24,6 +24,7 @@ public class BecomesBlockedByCreatureTriggeredAbility extends TriggeredAbilityIm
public BecomesBlockedByCreatureTriggeredAbility(Effect effect, FilterCreaturePermanent filter, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
setTriggerPhrase("Whenever {this} becomes blocked by " + CardUtil.addArticle(filter.getMessage()) + ", ");
}
public BecomesBlockedByCreatureTriggeredAbility(final BecomesBlockedByCreatureTriggeredAbility ability) {
@ -48,11 +49,6 @@ public class BecomesBlockedByCreatureTriggeredAbility extends TriggeredAbilityIm
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} becomes blocked by " + CardUtil.addArticle(filter.getMessage()) + ", ";
}
@Override
public BecomesBlockedByCreatureTriggeredAbility copy() {
return new BecomesBlockedByCreatureTriggeredAbility(this);

View file

@ -22,6 +22,7 @@ public class BecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl {
public BecomesBlockedSourceTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} becomes blocked, ");
}
public BecomesBlockedSourceTriggeredAbility(final BecomesBlockedSourceTriggeredAbility ability) {
@ -44,11 +45,6 @@ public class BecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl {
return event.getTargetId().equals(this.getSourceId());
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} becomes blocked, " ;
}
@Override
public BecomesBlockedSourceTriggeredAbility copy() {
return new BecomesBlockedSourceTriggeredAbility(this);

View file

@ -16,6 +16,7 @@ public class BecomesClassLevelTriggeredAbility extends TriggeredAbilityImpl {
public BecomesClassLevelTriggeredAbility(Effect effect, int level) {
super(Zone.BATTLEFIELD, effect);
this.level = level;
setTriggerPhrase("When this Class becomes level " + level + ", " );
}
private BecomesClassLevelTriggeredAbility(final BecomesClassLevelTriggeredAbility ability) {
@ -37,9 +38,4 @@ public class BecomesClassLevelTriggeredAbility extends TriggeredAbilityImpl {
public BecomesClassLevelTriggeredAbility copy() {
return new BecomesClassLevelTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "When this Class becomes level " + level + ", " ;
}
}

View file

@ -17,6 +17,7 @@ public class BecomesDayOrNightTriggeredAbility extends TriggeredAbilityImpl {
public BecomesDayOrNightTriggeredAbility(Zone zone, Effect effect) {
super(zone, effect, false);
setTriggerPhrase("Whenever day becomes night or night becomes day, ");
}
private BecomesDayOrNightTriggeredAbility(final BecomesDayOrNightTriggeredAbility ability) {
@ -37,9 +38,4 @@ public class BecomesDayOrNightTriggeredAbility extends TriggeredAbilityImpl {
public BecomesDayOrNightTriggeredAbility copy() {
return new BecomesDayOrNightTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever day becomes night or night becomes day, ";
}
}

View file

@ -15,6 +15,7 @@ public class BecomesExertSourceTriggeredAbility extends TriggeredAbilityImpl {
public BecomesExertSourceTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
setTriggerPhrase("When {this} becomes exerted, ");
}
public BecomesExertSourceTriggeredAbility(final BecomesExertSourceTriggeredAbility ability) {
@ -35,9 +36,4 @@ public class BecomesExertSourceTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
return event.getTargetId().equals(this.getSourceId());
}
@Override
public String getTriggerPhrase() {
return "When {this} becomes exerted, " ;
}
}

View file

@ -17,6 +17,7 @@ public class BecomesMonstrousSourceTriggeredAbility extends TriggeredAbilityImpl
public BecomesMonstrousSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("When {this} becomes monstrous, ");
}
public BecomesMonstrousSourceTriggeredAbility(Effect effect) {
@ -50,9 +51,4 @@ public class BecomesMonstrousSourceTriggeredAbility extends TriggeredAbilityImpl
public int getMonstrosityValue() {
return monstrosityValue;
}
@Override
public String getTriggerPhrase() {
return "When {this} becomes monstrous, " ;
}
}

View file

@ -16,6 +16,7 @@ public class BecomesMonstrousTriggeredAbility extends TriggeredAbilityImpl {
public BecomesMonstrousTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
setTriggerPhrase("Whenever a creature you control becomes monstrous, ");
}
public BecomesMonstrousTriggeredAbility(final BecomesMonstrousTriggeredAbility ability) {
@ -42,9 +43,4 @@ public class BecomesMonstrousTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever a creature you control becomes monstrous, " ;
}
}

View file

@ -16,6 +16,7 @@ public class BecomesRenownedSourceTriggeredAbility extends TriggeredAbilityImpl
public BecomesRenownedSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("When {this} becomes renowned, ");
}
public BecomesRenownedSourceTriggeredAbility(final BecomesRenownedSourceTriggeredAbility ability) {
@ -45,9 +46,4 @@ public class BecomesRenownedSourceTriggeredAbility extends TriggeredAbilityImpl
public int getRenownValue() {
return renownValue;
}
@Override
public String getTriggerPhrase() {
return "When {this} becomes renowned, " ;
}
}

View file

@ -14,20 +14,17 @@ import mage.game.permanent.Permanent;
*/
public class BecomesTappedAttachedTriggeredAbility extends TriggeredAbilityImpl {
private final String description;
public BecomesTappedAttachedTriggeredAbility(Effect effect, String description) {
this(effect, description, false);
}
public BecomesTappedAttachedTriggeredAbility(Effect effect, String description, boolean isOptional) {
super(Zone.BATTLEFIELD, effect, isOptional);
this.description = description;
setTriggerPhrase("Whenever " + description + " becomes tapped, ");
}
public BecomesTappedAttachedTriggeredAbility(final BecomesTappedAttachedTriggeredAbility ability) {
super(ability);
this.description = ability.description;
}
@Override
@ -49,9 +46,4 @@ public class BecomesTappedAttachedTriggeredAbility extends TriggeredAbilityImpl
Permanent enchanted = game.getPermanent(enchantment.getAttachedTo());
return enchanted != null && event.getTargetId().equals(enchanted.getId());
}
@Override
public String getTriggerPhrase() {
return "Whenever " + description + " becomes tapped, " ;
}
}

View file

@ -19,6 +19,7 @@ public class BecomesTappedSourceTriggeredAbility extends TriggeredAbilityImpl {
public BecomesTappedSourceTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect);
setTriggerPhrase("Whenever {this} becomes tapped, ");
}
public BecomesTappedSourceTriggeredAbility(final BecomesTappedSourceTriggeredAbility ability) {
@ -39,9 +40,4 @@ public class BecomesTappedSourceTriggeredAbility extends TriggeredAbilityImpl {
public boolean checkTrigger(GameEvent event, Game game) {
return event.getTargetId().equals(sourceId);
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} becomes tapped, " ;
}
}

View file

@ -35,6 +35,7 @@ public class BecomesTappedTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + CardUtil.addArticle(filter.getMessage()) + " becomes tapped, ");
}
public BecomesTappedTriggeredAbility(final BecomesTappedTriggeredAbility ability) {
@ -64,9 +65,4 @@ public class BecomesTappedTriggeredAbility extends TriggeredAbilityImpl {
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + CardUtil.addArticle(filter.getMessage()) + " becomes tapped, ";
}
}

View file

@ -17,7 +17,6 @@ import mage.game.permanent.Permanent;
public class BecomesTargetAttachedTriggeredAbility extends TriggeredAbilityImpl {
private final FilterStackObject filter;
private final String enchantType;
public BecomesTargetAttachedTriggeredAbility(Effect effect) {
this(effect, StaticFilters.FILTER_SPELL_OR_ABILITY_A);
@ -30,13 +29,12 @@ public class BecomesTargetAttachedTriggeredAbility extends TriggeredAbilityImpl
public BecomesTargetAttachedTriggeredAbility(Effect effect, FilterStackObject filter, String enchantType) {
super(Zone.BATTLEFIELD, effect);
this.filter = filter.copy();
this.enchantType = enchantType;
setTriggerPhrase("When enchanted " + enchantType + " becomes the target of " + filter.getMessage() + ", ");
}
public BecomesTargetAttachedTriggeredAbility(final BecomesTargetAttachedTriggeredAbility ability) {
super(ability);
this.filter = ability.filter.copy();
this.enchantType = ability.enchantType;
}
@Override
@ -61,9 +59,4 @@ public class BecomesTargetAttachedTriggeredAbility extends TriggeredAbilityImpl
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When enchanted " + enchantType + " becomes the target of " + filter.getMessage() + ", ";
}
}

View file

@ -18,6 +18,7 @@ public class BecomesTargetControlledPermanentTriggeredAbility extends TriggeredA
public BecomesTargetControlledPermanentTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever a permanent you control becomes the target of a spell or ability an opponent controls, ");
}
private BecomesTargetControlledPermanentTriggeredAbility(final BecomesTargetControlledPermanentTriggeredAbility ability) {
@ -69,9 +70,4 @@ public class BecomesTargetControlledPermanentTriggeredAbility extends TriggeredA
game.getState().setValue("targetMap" + this.id, targetMap);
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever a permanent you control becomes the target of a spell or ability an opponent controls, " ;
}
}

View file

@ -16,6 +16,7 @@ public class BecomesTargetControllerSpellTriggeredAbility extends TriggeredAbili
public BecomesTargetControllerSpellTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("When you become the target of a spell, ");
}
public BecomesTargetControllerSpellTriggeredAbility(final BecomesTargetControllerSpellTriggeredAbility ability) {
@ -41,9 +42,4 @@ public class BecomesTargetControllerSpellTriggeredAbility extends TriggeredAbili
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When you become the target of a spell, " ;
}
}

View file

@ -25,6 +25,7 @@ public class BecomesTargetTriggeredAbility extends TriggeredAbilityImpl {
public BecomesTargetTriggeredAbility(Effect effect, FilterStackObject filter) {
this(effect, filter, SetTargetPointer.NONE);
setTriggerPhrase("When {this} becomes the target of " + filter.getMessage() + ", ");
}
public BecomesTargetTriggeredAbility(Effect effect, FilterStackObject filter, SetTargetPointer setTargetPointer) {
@ -76,9 +77,4 @@ public class BecomesTargetTriggeredAbility extends TriggeredAbilityImpl {
}
return true;
}
@Override
public String getTriggerPhrase() {
return "When {this} becomes the target of " + filter.getMessage() + ", " ;
}
}

View file

@ -21,6 +21,7 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect, isOptional);
this.targetController = targetController;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfCombatTriggeredAbility(final BeginningOfCombatTriggeredAbility ability) {
@ -74,8 +75,7 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "At the beginning of combat on your turn, " + generateZoneString();

View file

@ -28,6 +28,7 @@ public class BeginningOfDrawTriggeredAbility extends TriggeredAbilityImpl {
public BeginningOfDrawTriggeredAbility(Zone zone, Effect effect, TargetController targetController, boolean isOptional) {
super(zone, effect, isOptional);
this.targetController = targetController;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfDrawTriggeredAbility(final BeginningOfDrawTriggeredAbility ability) {
@ -101,8 +102,7 @@ public class BeginningOfDrawTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case ACTIVE:
case YOU:

View file

@ -27,6 +27,7 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect, isOptional);
this.targetController = targetController;
this.interveningIfClauseCondition = interveningIfClauseCondition;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfEndStepTriggeredAbility(final BeginningOfEndStepTriggeredAbility ability) {
@ -103,8 +104,7 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "At the beginning of your end step, " + generateConditionString();
@ -134,7 +134,7 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
}
String clauseText = interveningIfClauseCondition.toString();
if (clauseText.startsWith("if")) {
//Fixes punctuation on multiple sentence if-then construction
// Fixes punctuation on multiple sentence if-then construction
// see -- Colfenor's Urn
if (clauseText.endsWith(".")) {
return clauseText + " ";

View file

@ -24,6 +24,7 @@ public class BeginningOfPostCombatMainTriggeredAbility extends TriggeredAbilityI
super(zone, effect, isOptional);
this.targetController = targetController;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfPostCombatMainTriggeredAbility(final BeginningOfPostCombatMainTriggeredAbility ability) {
@ -76,8 +77,7 @@ public class BeginningOfPostCombatMainTriggeredAbility extends TriggeredAbilityI
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "At the beginning of your postcombat main phase, " + generateZoneString();

View file

@ -29,6 +29,7 @@ public class BeginningOfPreCombatMainTriggeredAbility extends TriggeredAbilityIm
super(zone, effect, isOptional);
this.targetController = targetController;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfPreCombatMainTriggeredAbility(final BeginningOfPreCombatMainTriggeredAbility ability) {
@ -81,8 +82,7 @@ public class BeginningOfPreCombatMainTriggeredAbility extends TriggeredAbilityIm
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "At the beginning of your precombat main phase, " + generateZoneString();

View file

@ -35,6 +35,7 @@ public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
this.targetController = targetController;
this.setTargetPointer = setTargetPointer;
this.ruleTrigger = ruleTrigger;
setTriggerPhrase(generateTriggerPhrase());
}
public BeginningOfUpkeepTriggeredAbility(final BeginningOfUpkeepTriggeredAbility ability) {
@ -111,8 +112,7 @@ public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
if (ruleTrigger != null && !ruleTrigger.isEmpty()) {
return ruleTrigger;
}

View file

@ -13,18 +13,18 @@ import mage.game.events.GameEvent;
*/
public class BeginningOfYourEndStepTriggeredAbility extends TriggeredAbilityImpl {
public BeginningOfYourEndStepTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this(Zone.BATTLEFIELD, effect, optional);
}
public BeginningOfYourEndStepTriggeredAbility(Zone zone, Effect effect, boolean optional) {
super(zone, effect, optional);
setTriggerPhrase("At the beginning of your end step, ");
}
public BeginningOfYourEndStepTriggeredAbility(final BeginningOfYourEndStepTriggeredAbility ability) {
super(ability);
}
@Override
public BeginningOfYourEndStepTriggeredAbility copy() {
return new BeginningOfYourEndStepTriggeredAbility(this);
@ -39,9 +39,4 @@ public class BeginningOfYourEndStepTriggeredAbility extends TriggeredAbilityImpl
public boolean checkTrigger(GameEvent event, Game game) {
return event.getPlayerId().equals(this.controllerId);
}
@Override
public String getTriggerPhrase() {
return "At the beginning of your end step, ";
}
}

View file

@ -15,31 +15,28 @@ import mage.target.targetpointer.FixedTarget;
*/
public class BlocksAttachedTriggeredAbility extends TriggeredAbilityImpl {
private boolean setFixedTargetPointer;
private String attachedDescription;
private boolean setFixedTargetPointerToBlocked;
private final boolean setFixedTargetPointer;
private final boolean setFixedTargetPointerToBlocked;
public BlocksAttachedTriggeredAbility(Effect effect, String attachedDescription, boolean optional) {
this(effect, attachedDescription, optional, false);
}
public BlocksAttachedTriggeredAbility(Effect effect, String attachedDescription, boolean optional, boolean setFixedTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setFixedTargetPointer = setFixedTargetPointer;
this.attachedDescription = attachedDescription;
this(effect, attachedDescription, optional, setFixedTargetPointer, false);
}
public BlocksAttachedTriggeredAbility(Effect effect, String attachedDescription, boolean optional, boolean setFixedTargetPointer, boolean setFixedTargetPointerToBlocked) {
super(Zone.BATTLEFIELD, effect, optional);
this.setFixedTargetPointer = setFixedTargetPointer;
this.attachedDescription = attachedDescription;
this.setFixedTargetPointerToBlocked = setFixedTargetPointerToBlocked;
setTriggerPhrase("Whenever " + attachedDescription + " creature blocks" + (setFixedTargetPointerToBlocked ? " a creature, " : ", "));
}
public BlocksAttachedTriggeredAbility(final BlocksAttachedTriggeredAbility ability) {
super(ability);
this.setFixedTargetPointer = ability.setFixedTargetPointer;
this.attachedDescription = ability.attachedDescription;
this.setFixedTargetPointerToBlocked = ability.setFixedTargetPointerToBlocked;
}
@Override
@ -70,9 +67,4 @@ public class BlocksAttachedTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + attachedDescription + " creature blocks" + (setFixedTargetPointerToBlocked ? " a creature, " : ", ") ;
}
}

View file

@ -23,6 +23,7 @@ public class BlocksCreatureTriggeredAbility extends TriggeredAbilityImpl {
public BlocksCreatureTriggeredAbility(Effect effect, boolean optional) {
this(effect, StaticFilters.FILTER_PERMANENT_CREATURE, optional);
setTriggerPhrase("Whenever {this} blocks " + CardUtil.addArticle(filter.getMessage()) + ", ");
}
public BlocksCreatureTriggeredAbility(Effect effect, FilterCreaturePermanent filter, boolean optional) {
@ -52,11 +53,6 @@ public class BlocksCreatureTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} blocks " + CardUtil.addArticle(filter.getMessage()) + ", ";
}
@Override
public BlocksCreatureTriggeredAbility copy() {
return new BlocksCreatureTriggeredAbility(this);

View file

@ -33,13 +33,13 @@ public class BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility extends Triggered
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
this.rule = rule;
setTriggerPhrase("Whenever {this} blocks or becomes blocked by one or more " + (filter != null ? filter.getMessage() : "creatures") + ", ");
}
public BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility(final BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility ability) {
super(ability);
this.filter = ability.filter;
this.rule = ability.rule;
}
@Override
@ -77,15 +77,7 @@ public class BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility extends Triggered
@Override
public String getRule() {
if (rule != null) {
return rule;
}
return super.getRule();
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} blocks or becomes blocked by one or more " + (filter != null ? filter.getMessage() : "creatures") + ", ";
return rule != null ? rule : super.getRule();
}
@Override

View file

@ -41,6 +41,7 @@ public class BlocksOrBecomesBlockedSourceTriggeredAbility extends TriggeredAbili
this.filter = filter;
this.rule = rule;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", ");
}
public BlocksOrBecomesBlockedSourceTriggeredAbility(final BlocksOrBecomesBlockedSourceTriggeredAbility ability) {
@ -48,7 +49,6 @@ public class BlocksOrBecomesBlockedSourceTriggeredAbility extends TriggeredAbili
this.filter = ability.filter;
this.rule = ability.rule;
this.setTargetPointer = ability.setTargetPointer;
}
@Override
@ -81,15 +81,7 @@ public class BlocksOrBecomesBlockedSourceTriggeredAbility extends TriggeredAbili
@Override
public String getRule() {
if (rule != null) {
return rule;
}
return super.getRule();
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", ";
return rule != null ? rule : super.getRule();
}
@Override

View file

@ -19,6 +19,7 @@ public class BlocksSourceTriggeredAbility extends TriggeredAbilityImpl {
public BlocksSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever {this} blocks, ");
}
public BlocksSourceTriggeredAbility(final BlocksSourceTriggeredAbility ability) {
@ -36,11 +37,6 @@ public class BlocksSourceTriggeredAbility extends TriggeredAbilityImpl {
return permanent != null && permanent.getBlocking() > 0;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} blocks, ";
}
@Override
public BlocksSourceTriggeredAbility copy() {
return new BlocksSourceTriggeredAbility(this);

View file

@ -17,6 +17,7 @@ public class CardsLeaveGraveyardTriggeredAbility extends TriggeredAbilityImpl {
public CardsLeaveGraveyardTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
setTriggerPhrase("Whenever one or more cards leave your graveyard, ");
}
private CardsLeaveGraveyardTriggeredAbility(final CardsLeaveGraveyardTriggeredAbility ability) {
@ -46,9 +47,4 @@ public class CardsLeaveGraveyardTriggeredAbility extends TriggeredAbilityImpl {
public CardsLeaveGraveyardTriggeredAbility copy() {
return new CardsLeaveGraveyardTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever one or more cards leave your graveyard, " ;
}
}

View file

@ -35,6 +35,7 @@ public class CastSecondSpellTriggeredAbility extends TriggeredAbilityImpl {
this.addHint(hint);
}
this.targetController = targetController;
setTriggerPhrase(generateTriggerPhrase());
}
private CastSecondSpellTriggeredAbility(final CastSecondSpellTriggeredAbility ability) {
@ -77,8 +78,7 @@ public class CastSecondSpellTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "Whenever you cast your second spell each turn, ";

View file

@ -21,6 +21,7 @@ public class CompletedDungeonTriggeredAbility extends TriggeredAbilityImpl {
public CompletedDungeonTriggeredAbility(Zone zone, Effect effect, boolean optional) {
super(zone, effect, optional);
setTriggerPhrase("Whenever you complete a dungeon, ");
}
private CompletedDungeonTriggeredAbility(final CompletedDungeonTriggeredAbility ability) {
@ -41,9 +42,4 @@ public class CompletedDungeonTriggeredAbility extends TriggeredAbilityImpl {
public CompletedDungeonTriggeredAbility copy() {
return new CompletedDungeonTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever you complete a dungeon, " ;
}
}

View file

@ -15,6 +15,7 @@ public class ControllerPlaysLandTriggeredAbility extends TriggeredAbilityImpl {
public ControllerPlaysLandTriggeredAbility(Zone zone, Effect effect, Boolean optional) {
super(zone, effect, optional);
setTriggerPhrase("Whenever you play a land, ");
}
public ControllerPlaysLandTriggeredAbility(ControllerPlaysLandTriggeredAbility ability) {
@ -36,9 +37,4 @@ public class ControllerPlaysLandTriggeredAbility extends TriggeredAbilityImpl {
public ControllerPlaysLandTriggeredAbility copy() {
return new ControllerPlaysLandTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever you play a land, ";
}
}

View file

@ -30,6 +30,7 @@ public class ControlsPermanentsControllerTriggeredAbility extends StateTriggered
this.filter = filter;
this.value = value;
this.type = type;
setTriggerPhrase("When you control " + filter.getMessage() + ", " );
}
public ControlsPermanentsControllerTriggeredAbility(final ControlsPermanentsControllerTriggeredAbility ability) {
@ -49,9 +50,4 @@ public class ControlsPermanentsControllerTriggeredAbility extends StateTriggered
int inputValue = game.getBattlefield().countAll(filter, getControllerId(), game);
return ComparisonType.compare(inputValue, type, value);
}
@Override
public String getTriggerPhrase() {
return "When you control " + filter.getMessage() + ", " ;
}
}

View file

@ -18,6 +18,7 @@ public class CycleAllTriggeredAbility extends TriggeredAbilityImpl {
public CycleAllTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever a player cycles a card, ");
}
public CycleAllTriggeredAbility(final CycleAllTriggeredAbility ability) {
@ -39,14 +40,8 @@ public class CycleAllTriggeredAbility extends TriggeredAbilityImpl {
&& item.getStackAbility() instanceof CyclingAbility;
}
@Override
public String getTriggerPhrase() {
return "Whenever a player cycles a card, " ;
}
@Override
public CycleAllTriggeredAbility copy() {
return new CycleAllTriggeredAbility(this);
}
}

View file

@ -27,6 +27,7 @@ public class CycleControllerTriggeredAbility extends TriggeredAbilityImpl {
public CycleControllerTriggeredAbility(Effect effect, boolean optional, boolean excludeSource) {
super(Zone.BATTLEFIELD, effect, optional);
this.excludeSource = excludeSource;
setTriggerPhrase("Whenever you cycle " + (excludeSource ? "another" : "a") + " card, ");
}
private CycleControllerTriggeredAbility(final CycleControllerTriggeredAbility ability) {
@ -51,11 +52,6 @@ public class CycleControllerTriggeredAbility extends TriggeredAbilityImpl {
&& item.getStackAbility() instanceof CyclingAbility;
}
@Override
public String getTriggerPhrase() {
return "Whenever you cycle " + (excludeSource ? "another" : "a") + " card, " ;
}
@Override
public CycleControllerTriggeredAbility copy() {
return new CycleControllerTriggeredAbility(this);

View file

@ -19,6 +19,7 @@ public class CycleOrDiscardControllerTriggeredAbility extends TriggeredAbilityIm
public CycleOrDiscardControllerTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever you cycle or discard a card, ");
}
public CycleOrDiscardControllerTriggeredAbility(final CycleOrDiscardControllerTriggeredAbility ability) {
@ -35,11 +36,6 @@ public class CycleOrDiscardControllerTriggeredAbility extends TriggeredAbilityIm
return event.getPlayerId().equals(controllerId);
}
@Override
public String getTriggerPhrase() {
return "Whenever you cycle or discard a card, " ;
}
@Override
public CycleOrDiscardControllerTriggeredAbility copy() {
return new CycleOrDiscardControllerTriggeredAbility(this);

View file

@ -39,6 +39,8 @@ public class DealCombatDamageControlledTriggeredAbility extends TriggeredAbility
super(zone, effect, false);
this.setTargetPointer = setTargetPointer;
this.onlyOpponents = onlyOpponents;
setTriggerPhrase("Whenever one or more creatures you control deal combat damage to "
+ (onlyOpponents ? "an opponent" : "a player") + ", ");
}
public DealCombatDamageControlledTriggeredAbility(final DealCombatDamageControlledTriggeredAbility ability) {
@ -84,10 +86,4 @@ public class DealCombatDamageControlledTriggeredAbility extends TriggeredAbility
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever one or more creatures you control deal combat damage to "
+ (onlyOpponents ? "an opponent" : "a player") + ", " ;
}
}

View file

@ -20,6 +20,7 @@ public class DealsCombatDamageEquippedTriggeredAbility extends TriggeredAbilityI
public DealsCombatDamageEquippedTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever equipped creature deals combat damage, ");
}
public DealsCombatDamageEquippedTriggeredAbility(final DealsCombatDamageEquippedTriggeredAbility ability) {
@ -56,9 +57,4 @@ public class DealsCombatDamageEquippedTriggeredAbility extends TriggeredAbilityI
this.getEffects().setValue("damage", amount);
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever equipped creature deals combat damage, ";
}
}

View file

@ -25,6 +25,7 @@ public class DealsCombatDamageToACreatureTriggeredAbility extends TriggeredAbili
public DealsCombatDamageToACreatureTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} deals combat damage to a creature, ");
}
public DealsCombatDamageToACreatureTriggeredAbility(final DealsCombatDamageToACreatureTriggeredAbility ability) {
@ -59,10 +60,4 @@ public class DealsCombatDamageToACreatureTriggeredAbility extends TriggeredAbili
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals combat damage to a creature, " ;
}
}

View file

@ -98,6 +98,7 @@ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbility
return text;
}
// TODO: This class needs refactoring to specify onlyOppontns and OrPLaneswalkers in constructor
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals combat damage to "

View file

@ -21,6 +21,7 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl {
public DealsCombatDamageTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.usedInPhase = false;
setTriggerPhrase("Whenever {this} deals combat damage, ");
}
public DealsCombatDamageTriggeredAbility(final DealsCombatDamageTriggeredAbility ability) {
@ -53,9 +54,4 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals combat damage, ";
}
}

View file

@ -15,6 +15,7 @@ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
public DealsDamageAttachedTriggeredAbility(Zone zone, Effect effect, boolean optional) {
super(zone, effect, optional);
setTriggerPhrase("Whenever enchanted creature deals damage, ");
}
public DealsDamageAttachedTriggeredAbility(final DealsDamageAttachedTriggeredAbility ability) {
@ -47,9 +48,4 @@ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever enchanted creature deals damage, " ;
}
}

View file

@ -17,6 +17,7 @@ public class DealsDamageGainLifeSourceTriggeredAbility extends TriggeredAbilityI
public DealsDamageGainLifeSourceTriggeredAbility() {
super(Zone.BATTLEFIELD, new GainLifeEffect(SavedDamageValue.MUCH), false);
setTriggerPhrase("Whenever {this} deals damage, ");
}
public DealsDamageGainLifeSourceTriggeredAbility(final DealsDamageGainLifeSourceTriggeredAbility ability) {
@ -43,9 +44,4 @@ public class DealsDamageGainLifeSourceTriggeredAbility extends TriggeredAbilityI
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals damage, " ;
}
}

View file

@ -40,6 +40,8 @@ public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityI
this.combatOnly = combatOnly;
this.setTargetPointer = setTargetPointer;
this.filterPermanent = filterPermanent;
setTriggerPhrase("Whenever " + filterPermanent.getMessage() + " deals "
+ (combatOnly ? "combat " : "") + "damage to a creature, ");
}
public DealsDamageToACreatureAllTriggeredAbility(final DealsDamageToACreatureAllTriggeredAbility ability) {
@ -90,10 +92,4 @@ public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityI
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + filterPermanent.getMessage() + " deals "
+ (combatOnly ? "combat " : "") + "damage to a creature, ";
}
}

View file

@ -25,6 +25,8 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi
this.combatOnly = combatOnly;
this.setTargetPointer = setTargetPointer;
this.attachedDescription = attachedDescription;
setTriggerPhrase("Whenever " + attachedDescription + " deals "
+ (combatOnly ? "combat " : "") + "damage to a creature, ");
}
public DealsDamageToACreatureAttachedTriggeredAbility(final DealsDamageToACreatureAttachedTriggeredAbility ability) {
@ -65,10 +67,4 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + attachedDescription + " deals "
+ (combatOnly ? "combat " : "") + "damage to a creature, ";
}
}

View file

@ -30,6 +30,7 @@ public class DealsDamageToACreatureTriggeredAbility extends TriggeredAbilityImpl
this.combatOnly = combatOnly;
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} deals " + (combatOnly ? "combat " : "") + "damage to " + filter.getMessage() + ", ");
}
public DealsDamageToACreatureTriggeredAbility(final DealsDamageToACreatureTriggeredAbility ability) {
@ -67,9 +68,4 @@ public class DealsDamageToACreatureTriggeredAbility extends TriggeredAbilityImpl
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals " + (combatOnly ? "combat " : "") + "damage to " + filter.getMessage() + ", ";
}
}

View file

@ -43,6 +43,8 @@ public class DealsDamageToAPlayerAllTriggeredAbility extends TriggeredAbilityImp
this.onlyCombat = onlyCombat;
this.affectsDefendingPlayer = affectsDefendingPlayer;
this.targetController = targetController;
setTriggerPhrase("Whenever " + filter.getMessage() + " deals " + (onlyCombat ? "combat " : "") + "damage to "
+ (targetController == TargetController.OPPONENT ? "an opponent" : "a player") + ", ");
}
public DealsDamageToAPlayerAllTriggeredAbility(final DealsDamageToAPlayerAllTriggeredAbility ability) {
@ -93,10 +95,4 @@ public class DealsDamageToAPlayerAllTriggeredAbility extends TriggeredAbilityImp
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever " + filter.getMessage() + " deals " + (onlyCombat ? "combat " : "") + "damage to "
+ (targetController == TargetController.OPPONENT ? "an opponent" : "a player") + ", " ;
}
}

View file

@ -38,6 +38,7 @@ public class DealsDamageToAPlayerAttachedTriggeredAbility extends TriggeredAbili
this.attachedDescription = attachedDescription;
this.targetController = targetController;
this.onlyCombat = onlyCombat;
setTriggerPhrase(generateTriggerPhrase());
}
public DealsDamageToAPlayerAttachedTriggeredAbility(final DealsDamageToAPlayerAttachedTriggeredAbility ability) {
@ -84,8 +85,7 @@ public class DealsDamageToAPlayerAttachedTriggeredAbility extends TriggeredAbili
return true;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever ");
sb.append(attachedDescription);
if (!attachedDescription.endsWith("creature")) {

View file

@ -29,6 +29,7 @@ public class DealsDamageToAPlayerTriggeredAbility extends TriggeredAbilityImpl {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
this.orPlaneswalker = orPlaneswalker;
setTriggerPhrase("Whenever {this} deals damage to a player" + (orPlaneswalker ? " or planeswalker" : "") + ", ");
}
public DealsDamageToAPlayerTriggeredAbility(final DealsDamageToAPlayerTriggeredAbility ability) {
@ -67,10 +68,4 @@ public class DealsDamageToAPlayerTriggeredAbility extends TriggeredAbilityImpl {
}
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals damage to a player" + (orPlaneswalker ? " or planeswalker" : "") + ", " ;
}
}

View file

@ -12,6 +12,7 @@ public class DealsDamageToOneOrMoreCreaturesTriggeredAbility extends DealsDamage
public DealsDamageToOneOrMoreCreaturesTriggeredAbility(Effect effect, boolean combatOnly, boolean optional, boolean setTargetPointer) {
super(effect, combatOnly, optional, setTargetPointer);
setTriggerPhrase("Whenever {this} deals " + (combatOnly ? "combat " : "") + "damage to one or more creatures, ");
}
public DealsDamageToOneOrMoreCreaturesTriggeredAbility(DealsDamageToOneOrMoreCreaturesTriggeredAbility ability) {
@ -45,9 +46,4 @@ public class DealsDamageToOneOrMoreCreaturesTriggeredAbility extends DealsDamage
public DealsDamageToOneOrMoreCreaturesTriggeredAbility copy() {
return new DealsDamageToOneOrMoreCreaturesTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} deals " + (combatOnly ? "combat " : "") + "damage to one or more creatures, ";
}
}

View file

@ -32,6 +32,7 @@ public class DealsDamageToOpponentTriggeredAbility extends TriggeredAbilityImpl
super(Zone.BATTLEFIELD, effect, optional);
this.onlyCombat = onlyCombat;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever {this} deals " + (onlyCombat ? "combat " : "") + "damage to an opponent, ");
}
public DealsDamageToOpponentTriggeredAbility(final DealsDamageToOpponentTriggeredAbility ability) {
@ -70,14 +71,4 @@ public class DealsDamageToOpponentTriggeredAbility extends TriggeredAbilityImpl
}
return false;
}
@Override
public String getTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever {this} deals ");
if (onlyCombat) {
sb.append("combat ");
}
sb.append("damage to an opponent, ");
return sb.toString();
}
}

View file

@ -33,6 +33,7 @@ public class DealtDamageAndDiedTriggeredAbility extends TriggeredAbilityImpl {
super(Zone.ALL, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever a " + filter.getMessage() + " dealt damage by {this} this turn dies, ");
}
public DealtDamageAndDiedTriggeredAbility(final DealtDamageAndDiedTriggeredAbility ability) {
@ -76,9 +77,4 @@ public class DealtDamageAndDiedTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever a " + filter.getMessage() + " dealt damage by {this} this turn dies, ";
}
}

View file

@ -27,6 +27,7 @@ public class DealtDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
public DealtDamageAttachedTriggeredAbility(Zone zone, Effect effect, boolean optional, SetTargetPointer setTargetPointer) {
super(zone, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever enchanted creature is dealt damage, ");
}
public DealtDamageAttachedTriggeredAbility(final DealtDamageAttachedTriggeredAbility ability) {
@ -64,9 +65,4 @@ public class DealtDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever enchanted creature is dealt damage, " ;
}
}

View file

@ -22,6 +22,7 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
if (enrage) {
this.setAbilityWord(AbilityWord.ENRAGE);
}
setTriggerPhrase("Whenever {this} is dealt damage, ");
}
public DealtDamageToSourceTriggeredAbility(final DealtDamageToSourceTriggeredAbility ability) {
@ -53,9 +54,4 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
this.getEffects().setValue("damage", damage);
return true;
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} is dealt damage, ";
}
}

View file

@ -40,6 +40,7 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl {
this.attachedDescription = attachedDescription;
this.diesRuleText = diesRuleText;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase(generateTriggerPhrase());
}
public DiesAttachedTriggeredAbility(final DiesAttachedTriggeredAbility ability) {
@ -126,8 +127,7 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
StringBuilder sb = new StringBuilder();
if (attachedDescription.startsWith("equipped")) {
sb.append("Whenever ");

View file

@ -48,6 +48,7 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl {
super(zone, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + filter.getMessage() + (filter.getMessage().startsWith("one or more") ? " die, " : " dies, "));
}
public DiesCreatureTriggeredAbility(final DiesCreatureTriggeredAbility ability) {
@ -83,9 +84,4 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl {
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game);
}
@Override
public String getTriggerPhrase() {
return "Whenever " + filter.getMessage() + (filter.getMessage().startsWith("one or more") ? " die, " : " dies, ") ;
}
}

View file

@ -24,6 +24,7 @@ public class DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility extends Tri
public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(Effect effect, boolean optional, FilterCreatureOrPlaneswalkerPermanent filter) {
super(Zone.ALL, effect, optional); // Needs "ALL" if the source itself should trigger or multiple (incl. source go to grave)
this.filter = filter;
setTriggerPhrase("Whenever {this} or another " + filter.getMessage() + " dies, ");
}
public DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility(DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility ability) {
@ -62,9 +63,4 @@ public class DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility extends Tri
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game);
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} or another " + filter.getMessage() + " dies, " ;
}
}

View file

@ -25,6 +25,7 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI
public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional, FilterPermanent filter) {
super(Zone.ALL, effect, optional); // Needs "ALL" if the source itself should trigger or multiple (incl. source go to grave)
this.filter = filter;
setTriggerPhrase("Whenever {this} or another " + filter.getMessage() + " dies, ");
}
public DiesThisOrAnotherCreatureTriggeredAbility(DiesThisOrAnotherCreatureTriggeredAbility ability) {
@ -69,9 +70,4 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game);
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} or another " + filter.getMessage() + " dies, ";
}
}

View file

@ -20,6 +20,7 @@ public class DiscardedByOpponentTriggeredAbility extends TriggeredAbilityImpl {
public DiscardedByOpponentTriggeredAbility(Effect effect, boolean optional) {
super(Zone.GRAVEYARD, effect, optional);
setTriggerPhrase("When a spell or ability an opponent controls causes you to discard this card, ");
}
public DiscardedByOpponentTriggeredAbility(final DiscardedByOpponentTriggeredAbility ability) {
@ -46,9 +47,4 @@ public class DiscardedByOpponentTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When a spell or ability an opponent controls causes you to discard this card, " ;
}
}

View file

@ -27,6 +27,7 @@ public class DiscardsACardOpponentTriggeredAbility extends TriggeredAbilityImpl
public DiscardsACardOpponentTriggeredAbility(Effect effect, boolean isOptional, SetTargetPointer setTargetPointer) {
super(Zone.BATTLEFIELD, effect, isOptional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever an opponent discards a card, ");
}
public DiscardsACardOpponentTriggeredAbility(final DiscardsACardOpponentTriggeredAbility ability) {
@ -62,9 +63,4 @@ public class DiscardsACardOpponentTriggeredAbility extends TriggeredAbilityImpl
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever an opponent discards a card, " ;
}
}

View file

@ -19,6 +19,7 @@ public class DrawCardControllerTriggeredAbility extends TriggeredAbilityImpl {
public DrawCardControllerTriggeredAbility(Zone zone, Effect effect, boolean optional) {
super(zone, effect, optional);
setTriggerPhrase("Whenever you draw a card, ");
}
public DrawCardControllerTriggeredAbility(final DrawCardControllerTriggeredAbility ability) {
@ -35,11 +36,6 @@ public class DrawCardControllerTriggeredAbility extends TriggeredAbilityImpl {
return event.getPlayerId().equals(controllerId);
}
@Override
public String getTriggerPhrase() {
return "Whenever you draw a card, " ;
}
@Override
public DrawCardControllerTriggeredAbility copy() {
return new DrawCardControllerTriggeredAbility(this);

View file

@ -21,6 +21,7 @@ public class DrawCardOpponentTriggeredAbility extends TriggeredAbilityImpl {
public DrawCardOpponentTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever an opponent draws a card, ");
}
public DrawCardOpponentTriggeredAbility(final DrawCardOpponentTriggeredAbility ability) {
@ -50,9 +51,4 @@ public class DrawCardOpponentTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever an opponent draws a card, ";
}
}

View file

@ -38,6 +38,7 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl {
this.addWatcher(new DrawSecondCardWatcher());
this.targetController = targetController;
this.addHint(hint);
setTriggerPhrase(generateTriggerPhrase());
}
private DrawSecondCardTriggeredAbility(final DrawSecondCardTriggeredAbility ability) {
@ -75,8 +76,7 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl {
return DrawSecondCardWatcher.checkEvent(event.getPlayerId(), event, game);
}
@Override
public String getTriggerPhrase() {
public String generateTriggerPhrase() {
switch (targetController) {
case YOU:
return "Whenever you draw your second card each turn, ";

View file

@ -15,6 +15,7 @@ public class EnchantedPlayerAttackedTriggeredAbility extends TriggeredAbilityImp
public EnchantedPlayerAttackedTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
setTriggerPhrase("Whenever enchanted player is attacked, ");
}
public EnchantedPlayerAttackedTriggeredAbility(final EnchantedPlayerAttackedTriggeredAbility ability) {
@ -36,11 +37,6 @@ public class EnchantedPlayerAttackedTriggeredAbility extends TriggeredAbilityImp
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever enchanted player is attacked, " ;
}
@Override
public EnchantedPlayerAttackedTriggeredAbility copy() {
return new EnchantedPlayerAttackedTriggeredAbility(this);

View file

@ -20,6 +20,7 @@ public class EndOfCombatTriggeredAbility extends TriggeredAbilityImpl {
public EndOfCombatTriggeredAbility(Effect effect, boolean optional, String rule) {
super(Zone.BATTLEFIELD, effect, optional);
this.rule = rule;
setTriggerPhrase("At end of combat, ");
}
public EndOfCombatTriggeredAbility(final EndOfCombatTriggeredAbility ability) {
@ -42,11 +43,6 @@ public class EndOfCombatTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
@Override
public String getTriggerPhrase() {
return "At end of combat, ";
}
@Override
public String getRule() {
if (rule != null) {

View file

@ -64,6 +64,7 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
this.controlledText = controlledText;
this.setTargetPointer = setTargetPointer;
this.thisOrAnother = thisOrAnother;
setTriggerPhrase(generateTriggerPhrase());
}
public EntersBattlefieldAllTriggeredAbility(final EntersBattlefieldAllTriggeredAbility ability) {
@ -111,8 +112,7 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
return super.getRule();
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever ");
if (thisOrAnother) {
sb.append("{this} or another ");

View file

@ -59,6 +59,7 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
this.rule = rule;
this.controlledText = controlledText;
this.setTargetPointer = setTargetPointer;
this.setTriggerPhrase(generateTriggerPhrase());
}
public EntersBattlefieldOrAttacksAllTriggeredAbility(final EntersBattlefieldOrAttacksAllTriggeredAbility ability) {
@ -128,8 +129,7 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
return super.getRule();
}
@Override
public String getTriggerPhrase() {
private String generateTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever ").append(filter.getMessage());
sb.append(" enters the battlefield ");
if (controlledText) {

View file

@ -19,6 +19,7 @@ public class EntersBattlefieldOrAttacksSourceTriggeredAbility extends TriggeredA
public EntersBattlefieldOrAttacksSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever {this} enters the battlefield or attacks, ");
}
public EntersBattlefieldOrAttacksSourceTriggeredAbility(final EntersBattlefieldOrAttacksSourceTriggeredAbility ability) {
@ -43,10 +44,4 @@ public class EntersBattlefieldOrAttacksSourceTriggeredAbility extends TriggeredA
}
return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD && event.getTargetId().equals(this.getSourceId());
}
@Override
public String getTriggerPhrase() {
return "Whenever {this} enters the battlefield or attacks, " ;
}
}

View file

@ -22,6 +22,8 @@ public class EntersBattlefieldOrDiesSourceTriggeredAbility extends TriggeredAbil
super(Zone.BATTLEFIELD, effect, optional);
this.diesText = diesText;
setLeavesTheBattlefieldTrigger(true);
setTriggerPhrase("When {this} enters the battlefield or " +
(diesText ? "dies" : "is put into a graveyard from the battlefield") + ", ");
}
public EntersBattlefieldOrDiesSourceTriggeredAbility(final EntersBattlefieldOrDiesSourceTriggeredAbility ability) {
@ -54,10 +56,4 @@ public class EntersBattlefieldOrDiesSourceTriggeredAbility extends TriggeredAbil
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When {this} enters the battlefield or " +
(diesText ? "dies" : "is put into a graveyard from the battlefield") + ", ";
}
}

View file

@ -17,6 +17,7 @@ public class EntersBattlefieldOrLeavesSourceTriggeredAbility extends TriggeredAb
public EntersBattlefieldOrLeavesSourceTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
setLeavesTheBattlefieldTrigger(true);
setTriggerPhrase("When {this} enters or leaves the battlefield, ");
}
public EntersBattlefieldOrLeavesSourceTriggeredAbility(final EntersBattlefieldOrLeavesSourceTriggeredAbility ability) {
@ -47,9 +48,4 @@ public class EntersBattlefieldOrLeavesSourceTriggeredAbility extends TriggeredAb
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When {this} enters or leaves the battlefield, " ;
}
}

View file

@ -25,6 +25,7 @@ public class EntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl {
public EntersBattlefieldTriggeredAbility(Effect effect, boolean optional, boolean ignoreRulesGeneration) {
super(Zone.ALL, effect, optional); // Zone.All because a creature with trigger can be put into play and be sacrificed during the resolution of an effect (discard Obstinate Baloth with Smallpox)
this.ignoreRulesGeneration = ignoreRulesGeneration;
setTriggerPhrase("When {this} enters the battlefield, ");
}
public EntersBattlefieldTriggeredAbility(final EntersBattlefieldTriggeredAbility ability) {
@ -47,11 +48,6 @@ public class EntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
@Override
public String getTriggerPhrase() {
return "When {this} enters the battlefield, ";
}
@Override
public EntersBattlefieldTriggeredAbility copy() {
return new EntersBattlefieldTriggeredAbility(this);

View file

@ -13,6 +13,7 @@ public class EntersBattlefieldUntappedTriggeredAbility extends EntersBattlefield
public EntersBattlefieldUntappedTriggeredAbility(Effect effect, boolean optional) {
super(effect, optional);
this.ignoreRulesGeneration = true;
setTriggerPhrase("When {this} enters the battlefield untapped, ");
}
private EntersBattlefieldUntappedTriggeredAbility(final EntersBattlefieldUntappedTriggeredAbility ability) {
@ -32,9 +33,4 @@ public class EntersBattlefieldUntappedTriggeredAbility extends EntersBattlefield
Permanent permanent = game.getPermanent(event.getTargetId());
return permanent != null && !permanent.isTapped();
}
@Override
public String getTriggerPhrase() {
return "When {this} enters the battlefield untapped, " ;
}
}

View file

@ -14,6 +14,7 @@ public class ExertCreatureControllerTriggeredAbility extends TriggeredAbilityImp
public ExertCreatureControllerTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect);
setTriggerPhrase("Whenever you exert a creature, ");
}
public ExertCreatureControllerTriggeredAbility(final ExertCreatureControllerTriggeredAbility ability) {
@ -37,9 +38,4 @@ public class ExertCreatureControllerTriggeredAbility extends TriggeredAbilityImp
public ExertCreatureControllerTriggeredAbility copy() {
return new ExertCreatureControllerTriggeredAbility(this);
}
@Override
public String getTriggerPhrase() {
return "Whenever you exert a creature, " ;
}
}

View file

@ -30,6 +30,7 @@ public class ExploitCreatureTriggeredAbility extends TriggeredAbilityImpl {
this.setTargetPointer = setTargetPointer;
// For example: if the creature with the Exploit ability is sacrificed, the trigger ability must use the controller of the LKI, not the owner
setLeavesTheBattlefieldTrigger(true); // https://github.com/magefree/mage/issues/8317
setTriggerPhrase("When {this} exploits a creature, ");
}
public ExploitCreatureTriggeredAbility(final ExploitCreatureTriggeredAbility ability) {
@ -75,9 +76,4 @@ public class ExploitCreatureTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "When {this} exploits a creature, ";
}
}

View file

@ -15,6 +15,7 @@ public class ForetellSourceControllerTriggeredAbility extends TriggeredAbilityIm
public ForetellSourceControllerTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
setTriggerPhrase("Whenever you foretell a card, ");
}
public ForetellSourceControllerTriggeredAbility(final ForetellSourceControllerTriggeredAbility ability) {
@ -35,11 +36,6 @@ public class ForetellSourceControllerTriggeredAbility extends TriggeredAbilityIm
&& isControlledBy(player.getId()));
}
@Override
public String getTriggerPhrase() {
return "Whenever you foretell a card, ";
}
@Override
public ForetellSourceControllerTriggeredAbility copy() {
return new ForetellSourceControllerTriggeredAbility(this);

View file

@ -25,6 +25,7 @@ public class GainLifeControllerTriggeredAbility extends TriggeredAbilityImpl {
public GainLifeControllerTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect, optional);
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever you gain life, ");
}
public GainLifeControllerTriggeredAbility(final GainLifeControllerTriggeredAbility ability) {
@ -53,9 +54,4 @@ public class GainLifeControllerTriggeredAbility extends TriggeredAbilityImpl {
}
return false;
}
@Override
public String getTriggerPhrase() {
return "Whenever you gain life, ";
}
}

View file

@ -33,6 +33,7 @@ public class GainLifeFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
this.when = when;
this.addWatcher(new GainLifeFirstTimeWatcher());
this.addHint(hint);
setTriggerPhrase("When" + (when ? "" : "ever") + " you gain life for the first time each turn, ");
}
private GainLifeFirstTimeTriggeredAbility(final GainLifeFirstTimeTriggeredAbility ability) {
@ -51,11 +52,6 @@ public class GainLifeFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
return watcher != null && watcher.checkEvent(getControllerId(), event);
}
@Override
public String getTriggerPhrase() {
return "When" + (when ? "" : "ever") + " you gain life for the first time each turn, " ;
}
@Override
public GainLifeFirstTimeTriggeredAbility copy() {
return new GainLifeFirstTimeTriggeredAbility(this);

Some files were not shown because too many files have changed in this diff Show more