mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 04:22:01 -08:00
Reworking triggered ability text generation to allow for ability words and flavor words to be added more easily (#8010)
* refactor all instances of getRule in triggered abilities using new getTriggerPrefix method * updated triggered ability rules generation * renamed method * fixed a test failure * some more refactoring * simplified some instances of ability word usage
This commit is contained in:
parent
0a31110164
commit
ca80806400
398 changed files with 946 additions and 989 deletions
|
|
@ -803,10 +803,12 @@ public abstract class AbilityImpl implements Ability {
|
|||
rule = ruleStart;
|
||||
}
|
||||
String prefix;
|
||||
if (abilityWord != null) {
|
||||
if (this instanceof TriggeredAbility) {
|
||||
prefix = null;
|
||||
} else if (abilityWord != null) {
|
||||
prefix = abilityWord.formatWord();
|
||||
} else if (flavorWord != null) {
|
||||
prefix = "<i>" + flavorWord + "</i> — ";
|
||||
prefix = CardUtil.italicizeWithEmDash(flavorWord);
|
||||
} else {
|
||||
prefix = null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,4 +55,6 @@ public interface TriggeredAbility extends Ability {
|
|||
void setTriggerEvent(GameEvent event);
|
||||
|
||||
GameEvent getTriggerEvent();
|
||||
|
||||
String getTriggerPhrase();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -173,8 +173,21 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|
|||
sb.append(" This ability triggers only once each turn.");
|
||||
}
|
||||
}
|
||||
String prefix;
|
||||
if (abilityWord != null) {
|
||||
prefix = abilityWord.formatWord();
|
||||
} else if (flavorWord != null) {
|
||||
prefix = CardUtil.italicizeWithEmDash(flavorWord);
|
||||
} else {
|
||||
prefix = "";
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
return prefix + getTriggerPhrase() + sb;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ package mage.abilities.abilityword;
|
|||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
|
@ -21,6 +22,7 @@ public class ConstellationAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public ConstellationAbility(Effect effect) {
|
||||
this(effect, false);
|
||||
setAbilityWord(AbilityWord.CONSTELLATION);
|
||||
}
|
||||
|
||||
public ConstellationAbility(Effect effect, boolean optional) {
|
||||
|
|
@ -57,9 +59,8 @@ public class ConstellationAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "<i>Constellation</i> — Whenever "
|
||||
+ (thisOr ? "{this} or another" : "an")
|
||||
+ " enchantment enters the battlefield under your control, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + (thisOr ? "{this} or another" : "an")
|
||||
+ " enchantment enters the battlefield under your control, ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ package mage.abilities.abilityword;
|
|||
import mage.abilities.ActivatedAbilityImpl;
|
||||
import mage.abilities.costs.common.DiscardTargetCost;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.AnotherCardPredicate;
|
||||
|
|
@ -12,22 +13,22 @@ import mage.filter.predicate.mageobject.NamePredicate;
|
|||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
|
||||
public class GrandeurAbility extends ActivatedAbilityImpl {
|
||||
|
||||
|
||||
protected final String cardName;
|
||||
|
||||
public GrandeurAbility(Effect effect, String cardName) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
this.cardName = cardName;
|
||||
|
||||
|
||||
FilterCard filter = new FilterCard("another card named " + cardName);
|
||||
filter.add(new NamePredicate(cardName));
|
||||
filter.add(new AnotherCardPredicate());
|
||||
this.addCost(new DiscardTargetCost(new TargetCardInHand(filter)));
|
||||
setAbilityWord(AbilityWord.GRANDEUR);
|
||||
}
|
||||
|
||||
public GrandeurAbility(final GrandeurAbility ability) {
|
||||
|
|
@ -39,9 +40,4 @@ public class GrandeurAbility extends ActivatedAbilityImpl {
|
|||
public GrandeurAbility copy() {
|
||||
return new GrandeurAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return new StringBuilder("<i>Grandeur</i> — ").append(super.getRule()).toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.cards.Card;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.EffectType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
|
|
@ -25,6 +26,7 @@ public class KinshipAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public KinshipAbility(Effect kinshipEffect) {
|
||||
super(Zone.BATTLEFIELD, new KinshipBaseEffect(kinshipEffect), true);
|
||||
this.setAbilityWord(AbilityWord.KINSHIP);
|
||||
}
|
||||
|
||||
public KinshipAbility(final KinshipAbility ability) {
|
||||
|
|
@ -56,8 +58,8 @@ public class KinshipAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return new StringBuilder("<i>Kinship</i> — At the beginning of your upkeep, ").append(super.getRule()).toString();
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of your upkeep, ";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,7 @@ import mage.abilities.SpellAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
|
||||
import mage.constants.CostModificationType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.target.Target;
|
||||
import mage.util.ManaUtil;
|
||||
|
|
@ -25,6 +22,7 @@ public class StriveAbility extends SimpleStaticAbility {
|
|||
super(Zone.STACK, new StriveCostIncreasingEffect(new ManaCostsImpl(manaString)));
|
||||
setRuleAtTheTop(true);
|
||||
this.striveCost = manaString;
|
||||
setAbilityWord(AbilityWord.STRIVE);
|
||||
}
|
||||
|
||||
public StriveAbility(final StriveAbility ability) {
|
||||
|
|
@ -39,7 +37,7 @@ public class StriveAbility extends SimpleStaticAbility {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return new StringBuilder("<i>Strive</i> — this spell costs ").append(striveCost).append(" more to cast for each target beyond the first.").toString();
|
||||
return new StringBuilder("this spell costs ").append(striveCost).append(" more to cast for each target beyond the first.").toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ public class ActivatePlaneswalkerLoyaltyAbilityTriggeredAbility extends Triggere
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you activate a loyalty ability of a "
|
||||
+ planeswalkerSubType.getDescription()
|
||||
+ " planeswalker, " + super.getRule();
|
||||
+ " planeswalker, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.abilities.common;
|
|||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
|
|
@ -10,13 +11,13 @@ import mage.game.events.EntersTheBattlefieldEvent;
|
|||
import mage.game.events.GameEvent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public class AllyEntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public AllyEntersBattlefieldTriggeredAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.setAbilityWord(AbilityWord.RALLY);
|
||||
}
|
||||
|
||||
public AllyEntersBattlefieldTriggeredAbility(AllyEntersBattlefieldTriggeredAbility ability) {
|
||||
|
|
@ -37,8 +38,8 @@ public class AllyEntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "<i>Rally</i> — Whenever {this} or another Ally enters the battlefield under your control, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} or another Ally enters the battlefield under your control, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ public class AttachedToCreatureSourceTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "As {this} becomes attached to a creature, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "As {this} becomes attached to a creature, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ public class AttackedByCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + filter.getMessage() + " attacks you, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " attacks you, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,11 +100,11 @@ public class AttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + (filter.getMessage().startsWith("an") ? "" : "a ")
|
||||
+ filter.getMessage() + " attacks"
|
||||
+ (attacksYouOrYourPlaneswalker ? " you or a planeswalker you control" : "")
|
||||
+ ", " + super.getRule();
|
||||
+ ", " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class AttacksAloneTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} attacks alone, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks alone, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public class AttacksAndIsNotBlockedTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} attacks and isn't blocked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks and isn't blocked, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ public class AttacksAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever ");
|
||||
sb.append(attachmentType.verb().toLowerCase(Locale.ENGLISH));
|
||||
return sb.append(" creature attacks, ").append(super.getRule()).toString();
|
||||
return sb.append(" creature attacks, ").toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When" + (once ? "" : "ever") + " " + CardUtil.addArticle(filter.getMessage()) + " attacks, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When" + (once ? "" : "ever") + " " + CardUtil.addArticle(filter.getMessage()) + " attacks, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ public class AttacksFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} attacks for the first time each turn, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks for the first time each turn, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class AttacksOrBlocksEnchantedTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted creature attacks or blocks, "+ super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature attacks or blocks, ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ public class AttacksOrBlocksTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return startText + " {this} attacks or blocks, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return startText + " {this} attacks or blocks, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -69,11 +69,16 @@ public class AttacksTriggeredAbility extends TriggeredAbilityImpl {
|
|||
@Override
|
||||
public String getRule() {
|
||||
if (text == null || text.isEmpty()) {
|
||||
return "Whenever {this} attacks, " + super.getRule();
|
||||
return super.getRule();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} attacks, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
public AttacksTriggeredAbility copy() {
|
||||
return new AttacksTriggeredAbility(this);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package mage.abilities.common;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -11,8 +10,9 @@ import mage.game.events.GameEvent;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Styxo
|
||||
*/
|
||||
public class AttacksWithCreaturesTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -66,14 +66,13 @@ public class AttacksWithCreaturesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
if (minAttackers == 0) {
|
||||
return "Whenever you attack, " + super.getRule();
|
||||
return "Whenever you attack, ";
|
||||
}
|
||||
StringBuilder sb = new StringBuilder("Whenever you attack with " + CardUtil.numberToText(minAttackers) + " or more ");
|
||||
sb.append(filter.getMessage());
|
||||
sb.append(", ");
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ public class AuraAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever an Aura becomes attached to {this}, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an Aura becomes attached to {this}, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ public class BecomesBlockedAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + filter.getMessage() + " becomes blocked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " becomes blocked, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class BecomesBlockedAttachedTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted creature becomes blocked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature becomes blocked, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -52,10 +52,10 @@ public class BecomesBlockedByCreatureTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} becomes blocked by "
|
||||
+ (filter.getMessage().startsWith("an ") ? "" : "a ")
|
||||
+ filter.getMessage() + ", " + super.getRule();
|
||||
+ filter.getMessage() + ", " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ public class BecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} becomes blocked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} becomes blocked, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public class BecomesClassLevelTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When this Class becomes level " + level + ", " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When this Class becomes level " + level + ", " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public class BecomesExertSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} becomes exerted, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} becomes exerted, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class BecomesMonstrousSourceTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} becomes monstrous, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} becomes monstrous, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class BecomesMonstrousTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a creature you control becomes monstrous, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a creature you control becomes monstrous, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class BecomesRenownedSourceTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} becomes renowned, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} becomes renowned, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class BecomesTappedAttachedTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + description + " becomes tapped, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + description + " becomes tapped, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class BecomesTappedSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} becomes tapped, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} becomes tapped, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class BecomesTappedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + filter.getMessage() + " becomes tapped, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " becomes tapped, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class BecomesTargetAttachedTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When enchanted " + enchantType + " becomes the target of a spell or ability, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When enchanted " + enchantType + " becomes the target of a spell or ability, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class BecomesTargetControlledPermanentTriggeredAbility extends TriggeredA
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a permanent you control becomes the target of a spell or ability an opponent controls, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a permanent you control becomes the target of a spell or ability an opponent controls, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class BecomesTargetControllerSpellTriggeredAbility extends TriggeredAbili
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you become the target of a spell, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When you become the target of a spell, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public class BecomesTargetTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} becomes the target of " + filter.getMessage() + ", " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} becomes the target of " + filter.getMessage() + ", " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,14 +74,14 @@ public class BeginningOfCombatTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return "At the beginning of combat on your turn, " + generateZoneString() + super.getRule();
|
||||
return "At the beginning of combat on your turn, " + generateZoneString();
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's combat step, " + generateZoneString() + super.getRule();
|
||||
return "At the beginning of each opponent's combat step, " + generateZoneString();
|
||||
case ANY:
|
||||
return "At the beginning of each combat, " + generateZoneString() + super.getRule();
|
||||
return "At the beginning of each combat, " + generateZoneString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,20 +95,19 @@ public class BeginningOfDrawTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case ACTIVE:
|
||||
return "At the beginning of your draw step, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
case YOU:
|
||||
return "At the beginning of your draw step, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of your draw step, " + generateZoneString();
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's draw step, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each opponent's draw step, " + generateZoneString();
|
||||
case NOT_YOU:
|
||||
return "At the beginning of each other player's draw step, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each other player's draw step, " + generateZoneString();
|
||||
case ANY:
|
||||
return "At the beginning of each player's draw step, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each player's draw step, " + generateZoneString();
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return "At the beginning of the draw step of enchanted creature's controller, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of the draw step of enchanted creature's controller, " + generateZoneString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ import mage.game.events.GameEvent;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private final TargetController targetController;
|
||||
|
|
@ -101,34 +99,20 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
StringBuilder sb = new StringBuilder(getEffects().getText(modes.getMode()));
|
||||
|
||||
if (this.optional) {
|
||||
if (sb.substring(0, 6).toLowerCase(Locale.ENGLISH).equals("target")) {
|
||||
sb.insert(0, "you may have ");
|
||||
} else if (!sb.substring(0, 4).toLowerCase(Locale.ENGLISH).equals("you ")) {
|
||||
sb.insert(0, "you may ");
|
||||
}
|
||||
}
|
||||
String abilityWordRule = "";
|
||||
if (abilityWord != null) {
|
||||
abilityWordRule = "<i>" + abilityWord.toString() + "</i> — ";
|
||||
}
|
||||
|
||||
public String getTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of your end step, ").toString();
|
||||
return "At the beginning of your end step, " + generateConditionString();
|
||||
case NEXT:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of the end step, ").toString();
|
||||
return "At the beginning of the end step, " + generateConditionString();
|
||||
case OPPONENT:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each opponent's end step, ").toString();
|
||||
return "At the beginning of each opponent's end step, " + generateConditionString();
|
||||
case ANY:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each end step, ").toString();
|
||||
return "At the beginning of each end step, " + generateConditionString();
|
||||
case EACH_PLAYER:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each player's end step, ").toString();
|
||||
return "At the beginning of each player's end step, " + generateConditionString();
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of the end step of enchanted permanent's controller, ").toString();
|
||||
return "At the beginning of the end step of enchanted permanent's controller, " + generateConditionString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,17 +3,12 @@ package mage.abilities.common;
|
|||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.TargetController;
|
||||
import static mage.constants.TargetController.ANY;
|
||||
import static mage.constants.TargetController.OPPONENT;
|
||||
import static mage.constants.TargetController.YOU;
|
||||
import mage.constants.Zone;
|
||||
import static mage.constants.Zone.GRAVEYARD;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class BeginningOfPostCombatMainTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -82,14 +77,14 @@ public class BeginningOfPostCombatMainTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return "At the beginning of your postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of your postcombat main phase, " + generateZoneString();
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each opponent's postcombat main phase, " + generateZoneString();
|
||||
case ANY:
|
||||
return "At the beginning of each player's postcombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each player's postcombat main phase, " + generateZoneString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import mage.game.events.GameEvent;
|
|||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
|
|
@ -70,7 +69,7 @@ public class BeginningOfPreCombatMainTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case ANY:
|
||||
if (setTargetPointer) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
|
|
@ -83,14 +82,14 @@ public class BeginningOfPreCombatMainTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
return "At the beginning of your precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of your precombat main phase, " + generateZoneString();
|
||||
case OPPONENT:
|
||||
return "At the beginning of each opponent's precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each opponent's precombat main phase, " + generateZoneString();
|
||||
case ANY:
|
||||
return "At the beginning of each player's precombat main phase, " + generateZoneString() + getEffects().getText(modes.getMode());
|
||||
return "At the beginning of each player's precombat main phase, " + generateZoneString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public class BeginningOfUpkeepAttachedTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "At the beginning of enchanted player's upkeep, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of enchanted player's upkeep, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import mage.game.events.GameEvent;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
*/
|
||||
|
|
@ -119,30 +117,22 @@ public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
StringBuilder sb = new StringBuilder(super.getRule());
|
||||
public String getTriggerPhrase() {
|
||||
if (ruleTrigger != null && !ruleTrigger.isEmpty()) {
|
||||
return sb.insert(0, ruleTrigger).toString();
|
||||
return ruleTrigger;
|
||||
}
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
if (this.optional) {
|
||||
if (sb.substring(0, 6).toLowerCase(Locale.ENGLISH).equals("target")) {
|
||||
sb.insert(0, "you may have ");
|
||||
} else if (!sb.substring(0, 4).toLowerCase(Locale.ENGLISH).equals("you ")) {
|
||||
sb.insert(0, "you may ");
|
||||
}
|
||||
}
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of your upkeep, ").toString();
|
||||
return "At the beginning of your upkeep, " + generateZoneString();
|
||||
case OPPONENT:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each opponent's upkeep, ").toString();
|
||||
return "At the beginning of each opponent's upkeep, " + generateZoneString();
|
||||
case ANY:
|
||||
case ACTIVE:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each player's upkeep, ").toString();
|
||||
return "At the beginning of each player's upkeep, " + generateZoneString();
|
||||
case EACH_PLAYER:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each upkeep, ").toString();
|
||||
return "At the beginning of each upkeep, " + generateZoneString();
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of the upkeep of enchanted creature's controller, ").toString();
|
||||
return "At the beginning of the upkeep of enchanted creature's controller, " + generateZoneString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.game.events.GameEvent;
|
|||
|
||||
/**
|
||||
* Beginning of controlled end step triggered ability
|
||||
*
|
||||
* @author Loki
|
||||
*/
|
||||
public class BeginningOfYourEndStepTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -40,10 +41,7 @@ public class BeginningOfYourEndStepTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
if (optional) {
|
||||
return "At the beginning of your end step, you may " + modes.getText();
|
||||
}
|
||||
return "At the beginning of your end step, " + modes.getText();
|
||||
public String getTriggerPhrase() {
|
||||
return "At the beginning of your end step, ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class BlocksAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + attachedDescription + " creature blocks" + (setFixedTargetPointerToBlocked ? " a creature, " : ", ") + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + attachedDescription + " creature blocks" + (setFixedTargetPointerToBlocked ? " a creature, " : ", ") ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import mage.game.permanent.Permanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North, Loki
|
||||
*/
|
||||
public class BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -51,23 +50,23 @@ public class BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility extends Triggered
|
|||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
for (CombatGroup group : game.getCombat().getGroups()) {
|
||||
if (group.getAttackers().contains(sourceId)){
|
||||
if (filter == null){
|
||||
if (group.getAttackers().contains(sourceId)) {
|
||||
if (filter == null) {
|
||||
return group.getBlocked();
|
||||
}
|
||||
for (UUID uuid : group.getBlockers()){
|
||||
for (UUID uuid : group.getBlockers()) {
|
||||
Permanent permanent = game.getPermanentOrLKIBattlefield(uuid);
|
||||
if (filter.match(permanent, game)){
|
||||
if (filter.match(permanent, game)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (group.getBlockers().contains(sourceId)){
|
||||
if (filter == null){
|
||||
} else if (group.getBlockers().contains(sourceId)) {
|
||||
if (filter == null) {
|
||||
return true;
|
||||
}
|
||||
for (UUID uuid : group.getAttackers()){
|
||||
for (UUID uuid : group.getAttackers()) {
|
||||
Permanent permanent = game.getPermanentOrLKIBattlefield(uuid);
|
||||
if (filter.match(permanent, game)){
|
||||
if (filter.match(permanent, game)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -81,7 +80,12 @@ public class BlocksOrBecomesBlockedByOneOrMoreTriggeredAbility extends Triggered
|
|||
if (rule != null) {
|
||||
return rule;
|
||||
}
|
||||
return "Whenever {this} blocks or becomes blocked by one or more " + (filter != null ? filter.getMessage() : "creatures") + ", " + super.getRule();
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} blocks or becomes blocked by one or more " + (filter != null ? filter.getMessage() : "creatures") + ", ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import mage.game.permanent.Permanent;
|
|||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North, Loki
|
||||
*/
|
||||
public class BlocksOrBecomesBlockedSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -81,7 +80,12 @@ public class BlocksOrBecomesBlockedSourceTriggeredAbility extends TriggeredAbili
|
|||
if (rule != null) {
|
||||
return rule;
|
||||
}
|
||||
return "Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", " + super.getRule();
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import mage.game.permanent.Permanent;
|
|||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North, Loki
|
||||
*/
|
||||
public class BlocksOrBecomesBlockedTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -81,7 +80,12 @@ public class BlocksOrBecomesBlockedTriggeredAbility extends TriggeredAbilityImpl
|
|||
if (rule != null) {
|
||||
return rule;
|
||||
}
|
||||
return "Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", " + super.getRule();
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} blocks or becomes blocked" + (setTargetPointer ? " by a " + filter.getMessage() : "") + ", ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ public class BlocksSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When" + (once ? "" : "ever") + " {this} blocks" + (setTargetPointer ? " a creature, " : ", ") + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When" + (once ? "" : "ever") + " {this} blocks" + (setTargetPointer ? " a creature, " : ", ") ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ public class BlocksTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When" + (once ? "" : "ever") + " {this} blocks" + (setTargetPointer ? " a creature, " : ", ") + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When" + (once ? "" : "ever") + " {this} blocks" + (setTargetPointer ? " a creature, " : ", ") ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public class CardsLeaveGraveyardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever one or more cards leave your graveyard, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more cards leave your graveyard, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ public class CastSecondSpellTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cast your second spell each turn, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cast your second spell each turn, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class CompletedDungeonTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you complete a dungeon, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you complete a dungeon, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,8 +86,8 @@ public class ControlledCreaturesDealCombatDamagePlayerTriggeredAbility extends T
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever one or more creatures you control deal combat damage to "
|
||||
+ (onlyOpponents ? "an opponent" : "a player") + ", " + super.getRule();
|
||||
+ (onlyOpponents ? "an opponent" : "a player") + ", " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class ControlsPermanentsControllerTriggeredAbility extends StateTriggered
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you control " + filter.getMessage() + ", " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When you control " + filter.getMessage() + ", " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ public class CycleAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a player cycles a card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a player cycles a card, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ public class CycleControllerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cycle " + (excludeSource ? "another" : "a") + " card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cycle " + (excludeSource ? "another" : "a") + " card, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ public class CycleOrDiscardControllerTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cycle or discard a card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you cycle or discard a card, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ public class DealsCombatDamageToACreatureTriggeredAbility extends TriggeredAbili
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals combat damage to a creature, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals combat damage to a creature, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,12 +93,16 @@ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbility
|
|||
@Override
|
||||
public String getRule() {
|
||||
if (text == null || text.isEmpty()) {
|
||||
return "Whenever {this} deals combat damage to "
|
||||
+ (onlyOpponents ? "an opponent" : "a player")
|
||||
+ (orPlaneswalker ? " or planeswalker" : "")
|
||||
+ ", " + super.getRule();
|
||||
return super.getRule();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals combat damage to "
|
||||
+ (onlyOpponents ? "an opponent" : "a player")
|
||||
+ (orPlaneswalker ? " or planeswalker" : "")
|
||||
+ ", ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ public class DealsCombatDamageTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals combat damage, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals combat damage, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class DealsDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted creature deals damage, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature deals damage, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ public class DealsDamageGainLifeSourceTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals damage, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals damage, " ;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ public class DealsDamageToACreatureAllTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filterPermanent.getMessage() + " deals "
|
||||
+ (combatDamageOnly ? "combat " : "") + "damage to a creature, " + super.getRule();
|
||||
+ (combatDamageOnly ? "combat " : "") + "damage to a creature, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,12 +63,11 @@ public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbi
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return new StringBuilder("Whenever ").append(attachedDescription)
|
||||
.append(" deals ")
|
||||
.append(combatOnly ? "combat " : "")
|
||||
.append("damage to a creature, ")
|
||||
.append(super.getRule()).toString();
|
||||
.append("damage to a creature, ").toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class DealsDamageToACreatureTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever {this} deals ");
|
||||
if (combatOnly) {
|
||||
sb.append("combat ");
|
||||
|
|
@ -83,7 +83,6 @@ public class DealsDamageToACreatureTriggeredAbility extends TriggeredAbilityImpl
|
|||
sb.append(filter.getMessage());
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ public class DealsDamageToAPlayerAllTriggeredAbility extends TriggeredAbilityImp
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + " deals " + (onlyCombat ? "combat " : "") + "damage to "
|
||||
+ (targetController == TargetController.OPPONENT ? "an opponent" : "a player") + ", " + super.getRule();
|
||||
+ (targetController == TargetController.OPPONENT ? "an opponent" : "a player") + ", " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ public class DealsDamageToAPlayerAttachedTriggeredAbility extends TriggeredAbili
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever ").append(attachedDescription);
|
||||
sb.append(" deals");
|
||||
if (onlyCombat) {
|
||||
|
|
@ -105,7 +105,6 @@ public class DealsDamageToAPlayerAttachedTriggeredAbility extends TriggeredAbili
|
|||
default:
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ public class DealsDamageToAPlayerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals damage to a player" + (orPlaneswalker ? " or planeswalker" : "") + ", " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} deals damage to a player" + (orPlaneswalker ? " or planeswalker" : "") + ", " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,12 +72,12 @@ public class DealsDamageToOpponentTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever {this} deals ");
|
||||
if (onlyCombat) {
|
||||
sb.append("combat ");
|
||||
}
|
||||
sb.append("damage to an opponent, ").append(super.getRule());
|
||||
sb.append("damage to an opponent, ");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class DealtDamageAndDiedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a " + filter.getMessage() + " dealt damage by {this} this turn dies, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a " + filter.getMessage() + " dealt damage by {this} this turn dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class DealtDamageAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted creature is dealt damage, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature is dealt damage, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.abilities.common;
|
|||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.DamagedEvent;
|
||||
|
|
@ -13,7 +14,6 @@ import mage.game.events.GameEvent;
|
|||
*/
|
||||
public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private final boolean enrage;
|
||||
private final boolean useValue;
|
||||
private boolean usedForCombatDamageStep;
|
||||
|
||||
|
|
@ -27,14 +27,15 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional, boolean enrage, boolean useValue) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.enrage = enrage;
|
||||
this.useValue = useValue;
|
||||
this.usedForCombatDamageStep = false;
|
||||
if (enrage) {
|
||||
this.setAbilityWord(AbilityWord.ENRAGE);
|
||||
}
|
||||
}
|
||||
|
||||
public DealtDamageToSourceTriggeredAbility(final DealtDamageToSourceTriggeredAbility ability) {
|
||||
super(ability);
|
||||
this.enrage = ability.enrage;
|
||||
this.useValue = ability.useValue;
|
||||
this.usedForCombatDamageStep = ability.usedForCombatDamageStep;
|
||||
}
|
||||
|
|
@ -75,7 +76,7 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return (enrage ? "<i>Enrage</i> — " : "") + "Whenever {this} is dealt damage, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} is dealt damage, ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (attachedDescription.startsWith("equipped")) {
|
||||
sb.append("Whenever ");
|
||||
|
|
@ -127,7 +127,6 @@ public class DiesAttachedTriggeredAbility extends TriggeredAbilityImpl {
|
|||
} else {
|
||||
sb.append(" is put into graveyard, ");
|
||||
}
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever " + filter.getMessage() + (filter.getMessage().startsWith("one or more") ? " die, " : " dies, ") + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever " + filter.getMessage() + (filter.getMessage().startsWith("one or more") ? " die, " : " dies, ") ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class DiesThisOrAnotherCreatureOrPlaneswalkerTriggeredAbility extends Tri
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} or another " + filter.getMessage() + " dies, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} or another " + filter.getMessage() + " dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} or another " + filter.getMessage() + " dies, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} or another " + filter.getMessage() + " dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public class DiscardedByOpponentTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When a spell or ability an opponent controls causes you to discard this card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When a spell or ability an opponent controls causes you to discard this card, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class DiscardsACardOpponentTriggeredAbility extends TriggeredAbilityImpl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever an opponent discards a card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent discards a card, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ public class DrawCardControllerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you draw a card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you draw a card, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class DrawCardOpponentTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return new StringBuilder("Whenever an opponent draws a card, ").append(super.getRule()).toString();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent draws a card, ";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ public class DrawSecondCardTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you draw your second card each turn, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you draw your second card each turn, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ public class EnchantedCreatureBlockedTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted creature becomes blocked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted creature becomes blocked, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class EnchantedPlayerAttackedTriggeredAbility extends TriggeredAbilityImp
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever enchanted player is attacked, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever enchanted player is attacked, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class EndOfCombatTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "At end of combat, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "At end of combat, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,6 +108,11 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (rule != null && !rule.isEmpty()) {
|
||||
return rule;
|
||||
}
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever ");
|
||||
if (thisOrAnother) {
|
||||
sb.append("{this} or another ");
|
||||
|
|
@ -123,7 +128,6 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
} else {
|
||||
sb.append(", ");
|
||||
}
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
package mage.abilities.common;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.SetTargetPointer;
|
||||
|
|
@ -12,8 +11,9 @@ import mage.game.events.GameEvent;
|
|||
import mage.game.permanent.Permanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Saga
|
||||
*/
|
||||
public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
|
@ -78,7 +78,7 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
|
|||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD
|
||||
if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD
|
||||
&& filter.match(permanent, getSourceId(), getControllerId(), game)) {
|
||||
if (setTargetPointer != SetTargetPointer.NONE) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
|
|
@ -97,7 +97,7 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
|
|||
}
|
||||
|
||||
Permanent attacker = game.getPermanent(event.getSourceId());
|
||||
if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED
|
||||
if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED
|
||||
&& filter.match(attacker, getSourceId(), getControllerId(), game)) {
|
||||
if (setTargetPointer != SetTargetPointer.NONE) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
|
|
@ -125,6 +125,11 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
|
|||
if (rule != null && !rule.isEmpty()) {
|
||||
return rule;
|
||||
}
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever ").append(filter.getMessage());
|
||||
sb.append(" enters the battlefield ");
|
||||
if (controlledText) {
|
||||
|
|
@ -132,7 +137,6 @@ public class EntersBattlefieldOrAttacksAllTriggeredAbility extends TriggeredAbil
|
|||
} else {
|
||||
sb.append("or attacks, ");
|
||||
}
|
||||
sb.append(super.getRule());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ public class EntersBattlefieldOrAttacksSourceTriggeredAbility extends TriggeredA
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} enters the battlefield or attacks, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever {this} enters the battlefield or attacks, " ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class EntersBattlefieldOrDiesSourceTriggeredAbility extends TriggeredAbil
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} enters the battlefield or dies, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} enters the battlefield or dies, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class EntersBattlefieldOrLeavesSourceTriggeredAbility extends TriggeredAb
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} enters or leaves the battlefield, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} enters or leaves the battlefield, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package mage.abilities.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.Zone;
|
||||
|
|
@ -49,20 +48,13 @@ public class EntersBattlefieldTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Ability withFlavorWord(String flavorWord) {
|
||||
// must put flavor word before auto-generated rules, so keep it in etb place
|
||||
super.withFlavorWord(null);
|
||||
this.etbFlavorWord = flavorWord;
|
||||
return this;
|
||||
public String getRule() {
|
||||
return super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
if (ignoreRulesGeneration) {
|
||||
return super.getRule();
|
||||
}
|
||||
return (this.etbFlavorWord == null ? "" : "<i>" + this.etbFlavorWord + "</i> — ")
|
||||
+ "When {this} enters the battlefield, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} enters the battlefield, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class EntersBattlefieldUntappedTriggeredAbility extends EntersBattlefield
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} enters the battlefield untapped, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} enters the battlefield untapped, " ;
|
||||
}
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ public class ExertCreatureControllerTriggeredAbility extends TriggeredAbilityImp
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you exert a creature, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you exert a creature, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class ExploitCreatureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When {this} exploits a creature, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When {this} exploits a creature, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ public class ForetellSourceControllerTriggeredAbility extends TriggeredAbilityIm
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you foretell a card, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you foretell a card, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class GainLifeControllerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you gain life, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever you gain life, " ;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ public class GainLifeFirstTimeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When" + (when ? "" : "ever") + " you gain life for the first time each turn, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "When" + (when ? "" : "ever") + " you gain life for the first time each turn, " ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.abilities.common;
|
|||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
|
|
@ -32,6 +33,7 @@ public class LandfallAbility extends TriggeredAbilityImpl {
|
|||
public LandfallAbility(Zone zone, Effect effect, boolean optional, SetTargetPointer setTargetPointer) {
|
||||
super(zone, effect, optional);
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
this.setAbilityWord(AbilityWord.LANDFALL);
|
||||
}
|
||||
|
||||
public LandfallAbility(final LandfallAbility ability) {
|
||||
|
|
@ -63,8 +65,8 @@ public class LandfallAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "<i>Landfall</i> — Whenever a land enters the battlefield under your control, " + super.getRule();
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever a land enters the battlefield under your control, ";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue