diff --git a/.gitattributes b/.gitattributes index a5d44a51ee2..3fb33dfcaf1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -618,6 +618,7 @@ forge-game/src/main/java/forge/game/keyword/Kicker.java -text svneol=unset#text/ forge-game/src/main/java/forge/game/keyword/Modular.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/keyword/Protection.java -text forge-game/src/main/java/forge/game/keyword/SimpleKeyword.java -text +forge-game/src/main/java/forge/game/keyword/Suspend.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/keyword/UndefinedKeyword.java -text forge-game/src/main/java/forge/game/mana/Mana.java svneol=native#text/plain forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java svneol=native#text/plain diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index 82d52ad627f..60034e57ebe 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -128,7 +128,7 @@ public enum Keyword { STRIVE(KeywordWithCost.class, false, "CARDNAME costs %s more to cast for each target beyond the first."), SUNBURST(SimpleKeyword.class, false, "This enters the battlefield with either a +1/+1 or charge counter on it for each color of mana spent to cast it based on whether it's a creature."), SURGE(KeywordWithCost.class, true, "You may cast this spell for its surge cost if you or a teammate has cast another spell this turn."), - SUSPEND(KeywordWithCostAndAmount.class, false, "Rather than cast this card from your hand, you may pay %s and exile it with {%d:time counter} on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost."), + SUSPEND(Suspend.class, false, "Rather than cast this card from your hand, you may pay %s and exile it with {%d:time counter} on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost."), TOTEM_ARMOR(SimpleKeyword.class, true, "If enchanted permanent would be destroyed, instead remove all damage marked on it and destroy this Aura."), TRAMPLE(SimpleKeyword.class, true, "If this creature would assign enough damage to its blockers to destroy them, you may have it assign the rest of its damage to defending player or planeswalker."), TRANSFIGURE(KeywordWithCost.class, false, "%s, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and put that card onto the battlefield. Then shuffle your library. Transfigure only as a sorcery."), diff --git a/forge-game/src/main/java/forge/game/keyword/Suspend.java b/forge-game/src/main/java/forge/game/keyword/Suspend.java new file mode 100644 index 00000000000..875c88d98ae --- /dev/null +++ b/forge-game/src/main/java/forge/game/keyword/Suspend.java @@ -0,0 +1,24 @@ +package forge.game.keyword; + +public class Suspend extends KeywordWithCostAndAmount { + + boolean withoutCostAndAmount = false; + + @Override + protected void parse(String details) { + if ("".equals(details)) { + withoutCostAndAmount = true; + } else { + super.parse(details); + } + } + + @Override + protected String formatReminderText(String reminderText) { + if (withoutCostAndAmount) { + return "At the beginning of its owner's upkeep, remove a time counter from that card. When the last is removed, the player plays it without paying its mana cost. If it's a creature, it has haste."; + } else { + return super.formatReminderText(reminderText); + } + } +}