Card: add Aftermath keyword

This commit is contained in:
Hanmac
2017-04-04 20:41:12 +00:00
parent e2387ad813
commit 28813be8b5
3 changed files with 21 additions and 1 deletions

View File

@@ -1874,6 +1874,8 @@ public class Card extends GameEntity implements Comparable<Card> {
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second")) || (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))
|| (keyword.startsWith("Devoid"))) { || (keyword.startsWith("Devoid"))) {
sb.append(keyword).append("\r\n"); sb.append(keyword).append("\r\n");
} else if (keyword.equals("Aftermath")) {
sb.append(Keyword.getInstance(keyword).getReminderText()).append("\r\n");
} else if (keyword.equals("You may cast CARDNAME as though it had flash if you pay 2 more to cast it.")) { } else if (keyword.equals("You may cast CARDNAME as though it had flash if you pay 2 more to cast it.")) {
sb.append(keyword).append("\r\n"); sb.append(keyword).append("\r\n");
} else if (keyword.startsWith("Flashback")) { } else if (keyword.startsWith("Flashback")) {

View File

@@ -2160,6 +2160,9 @@ public class CardFactoryUtil {
else if (keyword.equals("Living Weapon")) { else if (keyword.equals("Living Weapon")) {
addTriggerAbility(keyword, card, null); addTriggerAbility(keyword, card, null);
} }
else if (keyword.equals("Aftermath")) {
addSpellAbility(keyword, card, null);
}
else if (keyword.equals("Epic")) { else if (keyword.equals("Epic")) {
addSpellAbility(keyword, card, null); addSpellAbility(keyword, card, null);
} }
@@ -3495,6 +3498,20 @@ public class CardFactoryUtil {
kws.addSpellAbility(newSA); kws.addSpellAbility(newSA);
} }
card.addSpellAbility(newSA); card.addSpellAbility(newSA);
} else if (keyword.equals("Aftermath")) {
// Aftermath does modify existing SA, and does not add new one
// only target RightSplit of it
final SpellAbility origSA = card.getState(CardStateName.RightSplit).getFirstAbility();
origSA.getRestrictions().setZone(ZoneType.Graveyard);
// Add the Exile Self Part
String dbStr = "DB$ ChangeZone | Origin$ Stack | Destination$ Exile";
final AbilitySub newSA = (AbilitySub) AbilityFactory.getAbility(dbStr.toString(), card);
// append to original SA
origSA.appendSubAbility(newSA);
} else if (keyword.startsWith("Awaken")) { } else if (keyword.startsWith("Awaken")) {
final String[] k = keyword.split(":"); final String[] k = keyword.split(":");
final String counters = k[1]; final String counters = k[1];

View File

@@ -10,11 +10,12 @@ import forge.util.EnumUtil;
public enum Keyword { public enum Keyword {
UNDEFINED(SimpleKeyword.class, false, ""), UNDEFINED(SimpleKeyword.class, false, ""),
ABSORB(KeywordWithAmount.class, false, "If a source would deal damage to this creature, prevent %d of that damage."), ABSORB(KeywordWithAmount.class, false, "If a source would deal damage to this creature, prevent %d of that damage."),
AWAKEN(KeywordWithCostAndAmount.class, true, "If you cast this spell for %s, also put {%d:+1/+1 counter} on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land."),
AFFINITY(KeywordWithType.class, false, "This spell costs you {1} less to cast for each %s you control."), AFFINITY(KeywordWithType.class, false, "This spell costs you {1} less to cast for each %s you control."),
AFTERMATH(SimpleKeyword.class, false, "Cast this spell only from your graveyard. Then exile it."),
AMPLIFY(KeywordWithAmountAndType.class, false, "As this creature enters the battlefield, put %d +1/+1 counter on it for each %s card you reveal in your hand."), AMPLIFY(KeywordWithAmountAndType.class, false, "As this creature enters the battlefield, put %d +1/+1 counter on it for each %s card you reveal in your hand."),
ANNIHILATOR(KeywordWithAmount.class, false, "Whenever this creature attacks, defending player sacrifices {%d:permanent}."), ANNIHILATOR(KeywordWithAmount.class, false, "Whenever this creature attacks, defending player sacrifices {%d:permanent}."),
AURA_SWAP(KeywordWithCost.class, false, "%s: You may exchange this permanent with an Aura card in your hand."), AURA_SWAP(KeywordWithCost.class, false, "%s: You may exchange this permanent with an Aura card in your hand."),
AWAKEN(KeywordWithCostAndAmount.class, true, "If you cast this spell for %s, also put {%d:+1/+1 counter} on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land."),
BANDING(SimpleKeyword.class, true, "Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking."), BANDING(SimpleKeyword.class, true, "Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking."),
BATTLE_CRY(SimpleKeyword.class, false, "Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn."), BATTLE_CRY(SimpleKeyword.class, false, "Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn."),
BESTOW(KeywordWithCost.class, true, "If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature."), BESTOW(KeywordWithCost.class, true, "If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature."),