From 160a68cd85225b2c20bab48d56bcfde391a8e2c2 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 12:06:18 +0000 Subject: [PATCH] - Convert Spitting Hydra - Changed Chronatog's ability to Ability_Activated --- res/cardsfolder/spitting_hydra.txt | 2 + src/forge/CardFactory_Creatures.java | 111 ++------------------------- 2 files changed, 9 insertions(+), 104 deletions(-) diff --git a/res/cardsfolder/spitting_hydra.txt b/res/cardsfolder/spitting_hydra.txt index 0e29f4117a7..d96a249abcc 100644 --- a/res/cardsfolder/spitting_hydra.txt +++ b/res/cardsfolder/spitting_hydra.txt @@ -3,6 +3,8 @@ ManaCost:3 R R Types:Creature Hydra Text:Spitting Hydra enters the battlefield with four +1/+1 counters. PT:0/0 +K:etbCounter:P1P1:4 +A:AB$DealDamage | Cost$1 R SubCounter<1/P1P1> | Tgt$TgtC | NumDmg$1 | SpellDescription$CARDNAME deals 1 damage to target creature. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/spitting_hydra.jpg SetInfo:STH|Rare|http://magiccards.info/scans/en/sh/99.jpg diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index b3f3f331069..93cf420d440 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -2764,7 +2764,7 @@ public class CardFactory_Creatures { }; card.addComesIntoPlayCommand(intoPlay); }//*************** END ************ END ************************** - + //*************** START *********** START ************************** else if(cardName.equals("Skirk Prospector")) { final Ability_Mana ability = new Ability_Mana(card, "Sacrifice a Goblin: Add R") { @@ -15275,106 +15275,6 @@ public class CardFactory_Creatures { }//*************** END ************ END ************************** */ - //*************** START *********** START ************************** - else if(cardName.equals("Spitting Hydra")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = -11489323314L; - - }; - card.clearSpellAbility(); - card.addSpellAbility(spell); - - final Ability ability = new Ability(card, "1 R") { - - @Override - public boolean canPlay() { - return card.getCounters(Counters.P1P1) > 0 && super.canPlay(); - } - - @Override - public boolean canPlayAI() { - return getCreature().size() != 0; - } - - @Override - public void chooseTargetAI() { - if(AllZone.HumanPlayer.getLife() < card.getCounters(Counters.P1P1)) setTargetPlayer(AllZone.HumanPlayer); - else { - CardList list = getCreature(); - list.shuffle(); - setTargetCard(list.get(0)); - } - card.subtractCounter(Counters.P1P1, 1); - }//chooseTargetAI() - - CardList getCreature() { - //toughness of 1 - CardList list = CardFactoryUtil.AI_getHumanCreature(1, card, true); - list = list.filter(new CardListFilter() { - public boolean addCard(Card c) { - return (1 == c.getKillDamage()); - } - }); - return list; - }//getCreature() - - @Override - public void resolve() { - if(getTargetCard() != null) { - if(AllZone.GameAction.isCardInPlay(getTargetCard()) - && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(1, - card); - } else getTargetPlayer().loseLife(1,card); - }//resolve() - - };//SpellAbility - Input target = new Input() { - - private static final long serialVersionUID = 4246601245231656L; - - @Override - public void showMessage() { - AllZone.Display.showMessage("Select creature or player to target: "); - ButtonUtil.enableOnlyCancel(); - } - - @Override - public void selectPlayer(Player player) { - ability.setTargetPlayer(player); - card.subtractCounter(Counters.P1P1, 1); - AllZone.Stack.add(ability); - stopSetNext(new ComputerAI_StackNotEmpty()); - } - - @Override - public void selectButtonCancel() { - stop(); - } - @Override - public void selectCard(Card c, PlayerZone zone) { - PlayerZone Hplay = AllZone.getZone(Constant.Zone.Play, AllZone.HumanPlayer); - PlayerZone Cplay = AllZone.getZone(Constant.Zone.Play, AllZone.ComputerPlayer); - if(AllZone.GameAction.isCardInZone(c, Hplay) || AllZone.GameAction.isCardInZone(c, Cplay)) { - card.subtractCounter(Counters.P1P1, 1); - ability.setTargetCard(c); - AllZone.Stack.add(ability); - stopSetNext(new ComputerAI_StackNotEmpty()); - } - }//selectCard() - };//Input - card.addSpellAbility(ability); - ability.setAfterPayMana(target); - Command intoPlay = new Command() { - - private static final long serialVersionUID = 255901529244894L; - - public void execute() { - card.addCounter(Counters.P1P1, 4); - }//execute() - };//Command - card.addComesIntoPlayCommand(intoPlay); - }//*************** END ************ END ************************** - //*************** START *********** START ************************** else if(cardName.equals("Molten Hydra")) { @@ -17608,8 +17508,11 @@ public class CardFactory_Creatures { } }; - final Ability ability = new Ability(card, "0") { - @Override + Ability_Cost abCost = new Ability_Cost("0", cardName, true); + final Ability_Activated ability = new Ability_Activated(card, abCost, null) { + private static final long serialVersionUID = -8345060615720565828L; + + @Override public void resolve() { if(AllZone.GameAction.isCardInPlay(card)) { card.addTempAttackBoost(3); @@ -18058,7 +17961,7 @@ public class CardFactory_Creatures { }; card.addComesIntoPlayCommand(comesIntoPlay); }//*************** END ************ END ************************** - + //*************** START *********** START ************************** else if(cardName.equals("Viridian Joiner"))