From a8dad64b91f762b9d8258166acfa51e767cfc638 Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 25 Mar 2013 04:13:58 +0000 Subject: [PATCH] - Move Planeswalker abilities from a file by itself into CardFactory --- .gitattributes | 1 - .../forge/card/cardfactory/CardFactory.java | 20 +++++- .../cardfactory/CardFactoryPlaneswalkers.java | 61 ------------------- 3 files changed, 19 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/forge/card/cardfactory/CardFactoryPlaneswalkers.java diff --git a/.gitattributes b/.gitattributes index 1951068d42c..0ee330cf508 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13954,7 +13954,6 @@ src/main/java/forge/card/cardfactory/CardFactory.java svneol=native#text/plain src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java -text src/main/java/forge/card/cardfactory/CardFactoryCreatures.java svneol=native#text/plain src/main/java/forge/card/cardfactory/CardFactoryLands.java svneol=native#text/plain -src/main/java/forge/card/cardfactory/CardFactoryPlaneswalkers.java svneol=native#text/plain src/main/java/forge/card/cardfactory/CardFactorySorceries.java svneol=native#text/plain src/main/java/forge/card/cardfactory/CardFactoryUtil.java svneol=native#text/plain src/main/java/forge/card/cardfactory/CardStorageReader.java svneol=native#text/plain diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index 98109794cb4..2eef426fda5 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -27,6 +27,8 @@ import forge.CardCharacteristicName; import forge.CardColor; import forge.CardUtil; import forge.Color; +import forge.Command; +import forge.CounterType; import forge.ImageCache; import forge.card.CardCharacteristics; import forge.card.CardRules; @@ -298,7 +300,7 @@ public class CardFactory { if (card.isCreature()) { CardFactoryCreatures.buildCard(card, cardName); } else if (card.isPlaneswalker()) { - CardFactoryPlaneswalkers.buildCard(card); + buildPlaneswalkerAbilities(card); } else if (card.isLand()) { CardFactoryLands.buildCard(card, cardName); } else if (card.isSorcery()) { @@ -332,6 +334,22 @@ public class CardFactory { card.addSpellAbility(planarRoll); } + private static void buildPlaneswalkerAbilities(Card card) { + if (card.getBaseLoyalty() > 0) { + Command cmd = CardFactoryUtil.entersBattleFieldWithCounters(card, CounterType.LOYALTY, card.getBaseLoyalty()); + card.addComesIntoPlayCommand(cmd); + } + + //Planeswalker damage redirection + card.addReplacementEffect(ReplacementHandler.parseReplacement("Event$ DamageDone | ActiveZones$ Battlefield | IsCombat$ False | ValidSource$ Card.YouDontCtrl" + + " | ValidTarget$ You | Optional$ True | OptionalDecider$ Opponent | ReplaceWith$ DamagePW | Secondary$ True" + + " | AICheckSVar$ DamagePWAI | AISVarCompare$ GT4 | Description$ Redirect damage to " + card.toString(), card)); + card.setSVar("DamagePW", "AB$DealDamage | Cost$ 0 | Defined$ Self | NumDmg$ DamagePWX | DamageSource$ ReplacedSource | References$ DamagePWX,DamagePWAI"); + card.setSVar("DamagePWX", "ReplaceCount$DamageAmount"); + card.setSVar("DamagePWAI", "ReplaceCount$DamageAmount/NMinus.DamagePWY"); + card.setSVar("DamagePWY", "Count$YourLifeTotal"); + } + private static Card readCard(final CardRules rules) { final Card card = new Card(); diff --git a/src/main/java/forge/card/cardfactory/CardFactoryPlaneswalkers.java b/src/main/java/forge/card/cardfactory/CardFactoryPlaneswalkers.java deleted file mode 100644 index 95448bb9640..00000000000 --- a/src/main/java/forge/card/cardfactory/CardFactoryPlaneswalkers.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.card.cardfactory; - -import forge.Card; -import forge.Command; -import forge.CounterType; -import forge.card.replacement.ReplacementHandler; - -/** - *

- * CardFactory_Planeswalkers class. - *

- * - * @author Forge - * @version $Id$ - */ -public class CardFactoryPlaneswalkers { - - /** - *

- * getCard. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link forge.Card} object. - */ - public static void buildCard(final Card card) { - // All Planeswalkers set their loyality in the beginning - if (card.getBaseLoyalty() > 0) { - Command cmd = CardFactoryUtil.entersBattleFieldWithCounters(card, CounterType.LOYALTY, card.getBaseLoyalty()); - card.addComesIntoPlayCommand(cmd); - } - - //Planeswalker damage redirection - card.addReplacementEffect(ReplacementHandler.parseReplacement("Event$ DamageDone | ActiveZones$ Battlefield | IsCombat$ False | ValidSource$ Card.YouDontCtrl" - + " | ValidTarget$ You | Optional$ True | OptionalDecider$ Opponent | ReplaceWith$ DamagePW | Secondary$ True" - + " | AICheckSVar$ DamagePWAI | AISVarCompare$ GT4 | Description$ Redirect damage to " + card.toString(), card)); - card.setSVar("DamagePW", "AB$DealDamage | Cost$ 0 | Defined$ Self | NumDmg$ DamagePWX | DamageSource$ ReplacedSource | References$ DamagePWX,DamagePWAI"); - card.setSVar("DamagePWX", "ReplaceCount$DamageAmount"); - card.setSVar("DamagePWAI", "ReplaceCount$DamageAmount/NMinus.DamagePWY"); - card.setSVar("DamagePWY", "Count$YourLifeTotal"); - } - -} // end class CardFactoryPlaneswalkers