From b5f30b687fe61404f832f31408a1372e9c4f528d Mon Sep 17 00:00:00 2001 From: Hanmac Date: Wed, 16 Nov 2016 12:02:14 +0000 Subject: [PATCH] CardFactoryUtil: moved Transmute to new Format --- .../src/main/java/forge/game/card/Card.java | 2 +- .../java/forge/game/card/CardFactoryUtil.java | 33 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) 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 221eec69320..e76adf44fed 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1463,7 +1463,7 @@ public class Card extends GameEntity implements Comparable { } else if (keyword.startsWith("Equip") || keyword.startsWith("Fortify") || keyword.startsWith("Outlast") || keyword.startsWith("Unearth") || keyword.startsWith("Scavenge") || keyword.startsWith("Ninjutsu") || keyword.startsWith("Evoke") || keyword.startsWith("Bestow") || keyword.startsWith("Dash") - || keyword.startsWith("Surge")) { + || keyword.startsWith("Surge") || keyword.startsWith("Transmute")) { // keyword parsing takes care of adding a proper description } else if (keyword.startsWith("CantBeBlockedBy")) { sbLong.append(getName()).append(" can't be blocked "); 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 17065c0437c..678e2e56bfa 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2109,19 +2109,7 @@ public class CardFactoryUtil { addSpellAbility(keyword, card, null); } else if (keyword.startsWith("Transmute")) { - card.removeIntrinsicKeyword(keyword); - final String manacost = keyword.split(":")[1]; - final String sbTransmute = "AB$ ChangeZone | Cost$ " + manacost + " Discard<1/CARDNAME>" - + " | CostDesc$ Transmute " + ManaCostParser.parse(manacost)+ " | ActivationZone$ Hand" - + " | Origin$ Library | Destination$ Hand | ChangeType$ Card.cmcEQ" + card.getManaCost().getCMC() - + " | ChangeNum$ 1 | SorcerySpeed$ True | References$ TransmuteX | SpellDescription$ (" - + ManaCostParser.parse(manacost) + ", Discard this card: Search your library for a card " - + "with the same converted mana cost as the discarded card, reveal that card, " - + "and put it into your hand. Then shuffle your library. Activate this ability " - + "only any time you could cast a sorcery.)"; - final SpellAbility abTransmute = AbilityFactory.getAbility(sbTransmute, card); - card.addSpellAbility(abTransmute); - card.getCurrentState().addUnparsedAbility(sbTransmute); + addSpellAbility(keyword, card, null); } else if (keyword.startsWith("Soulshift")) { addTriggerAbility(keyword, card, null); @@ -3708,6 +3696,25 @@ public class CardFactoryUtil { kws.addSpellAbility(newSA); } card.addSpellAbility(newSA); + } else if (keyword.startsWith("Transmute")) { + final String[] k = keyword.split(":"); + final String manacost = k[1]; + + final String effect = "AB$ ChangeZone | Cost$ " + manacost + " Discard<1/CARDNAME>" + + " | PrecostDesc$ Transmute | CostDesc$ " + ManaCostParser.parse(manacost) + " | ActivationZone$ Hand" + + " | Origin$ Library | Destination$ Hand | ChangeType$ Card.cmcEQ" + card.getManaCost().getCMC() + + " | ChangeNum$ 1 | SorcerySpeed$ True | StackDescription$ SpellDescription | SpellDescription$ (" + + Keyword.getInstance(keyword).getReminderText() + ")"; + + final SpellAbility sa = AbilityFactory.getAbility(effect, card); + if (!intrinsic) { + sa.setTemporary(true); + sa.setIntrinsic(false); + //sa.setOriginalHost(hostCard); + kws.addSpellAbility(sa); + } + + card.addSpellAbility(sa); } else if (keyword.startsWith("Unearth")) { final String[] k = keyword.split(":"); final String manacost = k[1];