From b6ec9728d8742af98461ec1a85ceb3024916005a Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sun, 15 Oct 2017 08:10:44 +0000 Subject: [PATCH] CardFactoryUtil: add Reinforce as Keyword --- .../src/main/java/forge/game/card/Card.java | 1 + .../java/forge/game/card/CardFactoryUtil.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 86206bd300d..d693fc862e6 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1574,6 +1574,7 @@ public class Card extends GameEntity implements Comparable { || keyword.startsWith("Surge") || keyword.startsWith("Transmute") || keyword.startsWith("Suspend") || keyword.equals("Undaunted") || keyword.startsWith("Monstrosity") || keyword.startsWith("Embalm") || keyword.startsWith("Level up") || keyword.equals("Prowess") || keyword.startsWith("Eternalize") + || keyword.startsWith("Reinforce") || keyword.startsWith("Cycling") || keyword.startsWith("TypeCycling")) { // keyword parsing takes care of adding a proper description } else if (keyword.startsWith("CantBeBlockedBy")) { diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 08d4dee3c6a..22d0cfcdadf 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2005,6 +2005,9 @@ public class CardFactoryUtil { else if (keyword.startsWith("Ninjutsu")) { addSpellAbility(keyword, card, null); } + else if (keyword.startsWith("Reinforce")) { + addSpellAbility(keyword, card, null); + } else if (keyword.startsWith("Scavenge")) { addSpellAbility(keyword, card, null); } @@ -4104,6 +4107,33 @@ public class CardFactoryUtil { final SpellAbility sa = AbilityFactory.getAbility(abilityStr.toString(), card); sa.setIntrinsic(intrinsic); + if (!intrinsic) { + sa.setTemporary(true); + //sa.setOriginalHost(hostCard); + kws.addSpellAbility(sa); + } + card.addSpellAbility(sa); + } else if (keyword.startsWith("Reinforce")) { + final String[] k = keyword.split(":"); + final String n = k[1]; + final String manacost = k[2]; + + StringBuilder sb = new StringBuilder(); + sb.append("AB$ PutCounter | CounterType$ P1P1 | ActivationZone$ Hand"); + sb.append("| ValidTgts$ Creature | TgtPrompt$ Select target creature"); + sb.append("| Cost$ " + manacost + " Discard<1/CARDNAME>"); + sb.append("| CounterNum$ ").append(n); + sb.append("| CostDesc$ " + ManaCostParser.parse(manacost)); // to hide the Discard from the cost + sb.append("| PrecostDesc$ Reinforce ").append(n).append("—"); + sb.append("| SpellDescription$ (").append(Keyword.getInstance(keyword).getReminderText()).append(")"); + + final SpellAbility sa = AbilityFactory.getAbility(sb.toString(), card); + sa.setIntrinsic(intrinsic); + + if (n.equals("X")) { + sa.setSVar("X", "Count$xPaid"); + } + if (!intrinsic) { sa.setTemporary(true); //sa.setOriginalHost(hostCard);