From 5f7b7628990e23bef07c284c9b6a2ffe82dccd08 Mon Sep 17 00:00:00 2001 From: slapshot5 Date: Sun, 2 Oct 2011 06:48:30 +0000 Subject: [PATCH] convert Shapeshifter to script --- res/cardsfolder/s/shapeshifter.txt | 8 +++- src/main/java/forge/Upkeep.java | 37 ------------------- .../card/cardFactory/CardFactoryUtil.java | 4 ++ .../cardFactory/CardFactory_Creatures.java | 29 --------------- 4 files changed, 11 insertions(+), 67 deletions(-) diff --git a/res/cardsfolder/s/shapeshifter.txt b/res/cardsfolder/s/shapeshifter.txt index fe802de7024..acf7c866992 100644 --- a/res/cardsfolder/s/shapeshifter.txt +++ b/res/cardsfolder/s/shapeshifter.txt @@ -1,8 +1,14 @@ Name:Shapeshifter ManaCost:6 Types:Artifact Creature Shapeshifter -Text:As Shapeshifter enters the battlefield, choose a number between 0 and 7.\r\nAt the beginning of your upkeep, you may choose a number between 0 and 7.\r\nShapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number. +Text:no text PT:*/7-* +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ ChooseNumber | Static$ True | TriggerDescription$ As CARDNAME enters the battlefield, choose a number between 0 and 7. +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ ChooseNumber | TriggerDescription$ At the beginning of your upkeep, you may choose a number between 0 and 7. +SVar:ChooseNumber:AB$ ChooseNumber | Cost$ 0 | Defined$ You | Min$ 0 | Max$ 7 +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ Y | Description$ CARDNAME's power is equal to the last chosen number and its toughness is equal to 7 minus that number. +SVar:X:Count$ChosenNumber +SVar:Y:Number$7/Minus.X SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/shapeshifter.jpg SetInfo:5ED|Uncommon|http://magiccards.info/scans/en/5e/398.jpg diff --git a/src/main/java/forge/Upkeep.java b/src/main/java/forge/Upkeep.java index 3eab8d642a1..5034952e808 100644 --- a/src/main/java/forge/Upkeep.java +++ b/src/main/java/forge/Upkeep.java @@ -94,8 +94,6 @@ public class Upkeep implements java.io.Serializable { upkeep_Ceta_Sanctuary(); upkeep_Tangle_Wire(); - - upkeep_Shapeshifter(); upkeep_Vesuvan_Doppelganger_Keyword(); //Kinship cards @@ -2306,45 +2304,10 @@ public class Upkeep implements java.io.Serializable { if (damage > 0) { AllZone.getStack().addSimultaneousStackEntry(ability); - } } // for } // upkeep_Power_Surge() - /** - *

upkeep_Shapeshifter.

- */ - private static void upkeep_Shapeshifter() { - final Player player = AllZone.getPhase().getPlayerTurn(); - CardList list = player.getCardsIn(Zone.Battlefield, "Shapeshifter"); - list = list.filter(CardListFilter.nonToken); - - for (final Card c : list) { - SpellAbility ability = new Ability(c, "0") { - @Override - public void resolve() { - int num = 0; - if (player.isHuman()) { - String[] choices = new String[7]; - for (int j = 0; j < 7; j++) { - choices[j] = "" + j; - } - String answer = (String) (GuiUtils.getChoiceOptional(c.getName() + " - Choose a number", choices)); - num = Integer.parseInt(answer); - } else { - num = 3; - } - c.setBaseAttack(num); - c.setBaseDefense(7 - num); - } - }; - ability.setStackDescription(c.getName() + " - choose a new number"); - - AllZone.getStack().addSimultaneousStackEntry(ability); - - } //foreach(Card) - } //upkeep_Shapeshifter - /** *

upkeep_Vesuvan_Doppelganger_Keyword.

*/ diff --git a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java index 7c002af5b38..a7e1e0b1f90 100644 --- a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java @@ -3125,6 +3125,10 @@ public class CardFactoryUtil { if (sq[0].contains("CardManaCost")) { return doXMath(CardUtil.getConvertedManaCost(c), m, c); } + // Count$ChosenNumber + if (sq[0].contains("ChosenNumber")) { + return doXMath(c.getChosenNumber(), m, c); + } // Count$CardCounters. if (sq[0].contains("CardCounters")) { return doXMath(c.getCounters(Counters.getType(sq[1])), m, c); diff --git a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java index 5ba6c018013..3db8ff9bfd9 100644 --- a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java +++ b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java @@ -2019,35 +2019,6 @@ public class CardFactory_Creatures { }//*************** END ************ END ************************** - //*************** START *********** START ************************** - else if (cardName.equals("Shapeshifter")) { - Command intoPlay = new Command() { - private static final long serialVersionUID = 5447692676152380940L; - - public void execute() { - if (!card.isToken()) { //ugly hack to get around tokens created by Crib Swap - int num = 0; - if (card.getController().isHuman()) { - String[] choices = new String[7]; - for (int j = 0; j < 7; j++) { - choices[j] = "" + j; - } - String answer = (String) (GuiUtils.getChoiceOptional( - card.getName() + " - Choose a number", choices)); - num = Integer.parseInt(answer); - } else { - num = 3; - } - card.setBaseAttack(num); - card.setBaseDefense(7 - num); - } - } - }; - - card.addComesIntoPlayCommand(intoPlay); - }//*************** END ************ END ************************** - - //*************** START *********** START ************************** else if (cardName.equals("Metalworker")) { final Cost abCost = new Cost("T", card.getName(), true);