From b090706b8fccd0e45ab4eb18859641bc1716751e Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 08:58:36 +0000 Subject: [PATCH] Added: Selenia Dark Angel Blinking Spirit Luminous Angel Fork Amugaba Beast of Burden Benthic Djinn Workhorse Flowstone Sculpture Mindless Automaton --- src/forge/CardFactory_Creatures.java | 300 +++++++++++++++++++++++++++ src/forge/CardFactory_Instants.java | 2 +- 2 files changed, 301 insertions(+), 1 deletion(-) diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 64abd8e60da..62239f5ca37 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -7332,7 +7332,159 @@ public class CardFactory_Creatures { ability.setBeforePayMana(runtime); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Amugaba")) { + + final Ability ability = new Ability(card, "2 U") { + @Override + public boolean canPlayAI() { + return false; + } + @Override + public void resolve() { + PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getOwner()); + + card.untap(); + AllZone.getZone(card).remove(card); + if(!card.isToken()) hand.add(card); + }//resolve() + };//SpellAbility + + + Input runtime = new Input() { + private static final long serialVersionUID = -4302210760957471033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability, 1)); + + } + }; + ability.setStackDescription(card + " gets returned to owner's hand"); + ability.setDescription("2U, Discard a card: Return Amugaba to owner's hand."); + card.addSpellAbility(ability); + ability.setBeforePayMana(runtime); + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Flowstone Sculpture")) { + + final Ability ability1 = new Ability(card, "2") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + card.addCounter(Counters.P1P1,1); + }//resolve() + };//SpellAbility + + + Input runtime1 = new Input() { + private static final long serialVersionUID = -4312210760957471033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability1, 1)); + + } + }; + + ability1.setStackDescription(card + " gets a +1/+1 counter. "); + ability1.setDescription("2, Discard a card: put a +1/+1 counter on Flowstone Sculpture."); + card.addSpellAbility(ability1); + ability1.setBeforePayMana(runtime1); + + final Ability ability2 = new Ability(card, "2") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + card.addIntrinsicKeyword("Flying"); + }//resolve() + };//SpellAbility + + + Input runtime2 = new Input() { + private static final long serialVersionUID = -4312210745957471033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability2, 1)); + + } + }; + + ability2.setStackDescription(card + " gains flying. "); + ability2.setDescription("2, Discard a card: Flowstone Sculpture gains flying."); + card.addSpellAbility(ability2); + ability2.setBeforePayMana(runtime2); + + final Ability ability3 = new Ability(card, "2") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + card.addIntrinsicKeyword("First Strike"); + }//resolve() + };//SpellAbility + + + Input runtime3 = new Input() { + private static final long serialVersionUID = -4312213760957471033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability3, 1)); + + } + }; + + ability3.setStackDescription(card + " gains First Strike. "); + ability3.setDescription("2, Discard a card: FlowStone Sculpture gains first strike."); + card.addSpellAbility(ability3); + ability3.setBeforePayMana(runtime3); + + final Ability ability4 = new Ability(card, "2") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + card.addIntrinsicKeyword("Trample"); + }//resolve() + };//SpellAbility + + + Input runtime4 = new Input() { + private static final long serialVersionUID = -4312210700957472033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability4, 1)); + + } + }; + + ability4.setStackDescription(card + " gains trample. "); + ability4.setDescription("2, Discard a card: Flowstone Sculpture gains trample."); + card.addSpellAbility(ability4); + ability4.setBeforePayMana(runtime4); + + + }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Wild Mongrel")) { @@ -9662,6 +9814,60 @@ public class CardFactory_Creatures { }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Blinking Spirit")) { + + final SpellAbility ability = new Ability(card, "0") { + @Override + public void resolve() { + PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getOwner()); + + card.untap(); + AllZone.getZone(card).remove(card); + if(!card.isToken()) hand.add(card); + + } + + @Override + public boolean canPlayAI() { + return false; + } + }; + + card.addSpellAbility(ability); + ability.setStackDescription(card.getController() + " returns Blinking Spirit back to owner's hand."); + ability.setDescription("0: return Blinking Spirit to its owner's hand."); + + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Selenia Dark Angel")) { + + final SpellAbility ability = new Ability(card, "0") { + @Override + public void resolve() { + PlayerLife life = AllZone.GameAction.getPlayerLife(card.getController()); + PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getOwner()); + life.subtractLife(2,card); + + card.untap(); + AllZone.getZone(card).remove(card); + if(!card.isToken()) hand.add(card); + + } + + @Override + public boolean canPlayAI() { + return false; + } + }; + + card.addSpellAbility(ability); + ability.setStackDescription(card.getController() + " returns Selenia Dark Angel back to owner's hand."); + ability.setDescription("Pay 2 life: return Selenia Dark Angel to its owner's hand."); + + }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Horde of Notions")) { @@ -15030,6 +15236,100 @@ public class CardFactory_Creatures { card.addComesIntoPlayCommand(intoPlay); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Workhorse")) { + + final Ability_Mana ability = new Ability_Mana(card, "0: add 1") { + private static final long serialVersionUID = -6764282980691397966L; + + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + + card.subtractCounter(Counters.P1P1,1); + super.resolve(); + + } + + @Override + public String mana() { + return "1"; + } + }; + ability.setStackDescription(card + " adds 1 mana to mana pool. "); + ability.setDescription("Remove a +1/+1 counter: add 1 to your mana pool."); + card.addSpellAbility(ability); + + 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("Mindless Automaton")) { + + final Ability ability1 = new Ability(card, "1") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public void resolve() { + card.addCounter(Counters.P1P1,1); + }//resolve() + };//SpellAbility + + + Input runtime1 = new Input() { + private static final long serialVersionUID = -4312210760057471033L; + + @Override + public void showMessage() { + stopSetNext(CardFactoryUtil.input_discard(ability1, 1)); + + } + }; + + ability1.setStackDescription(card + " gets a +1/+1 counter. "); + ability1.setDescription("1, Discard a card: put a +1/+1 counter on Mindless Automaton."); + card.addSpellAbility(ability1); + ability1.setBeforePayMana(runtime1); + + final SpellAbility ability2 = new Ability(card, "0") { + @Override + public void resolve() { + final String player = card.getController(); + AllZone.GameAction.drawCards(player, 1); + card.subtractCounter(Counters.P1P1, 2); + } + }; + + ability2.setStackDescription("Remove two +1/+1 counters: Draw a card."); + ability2.setDescription("Remove two +1/+1 counters: Draw a card."); + card.addSpellAbility(ability2); + + Command intoPlay = new Command() { + + private static final long serialVersionUID = 255901520244894L; + + public void execute() { + card.addCounter(Counters.P1P1, 2); + }//execute() + };//Command + card.addComesIntoPlayCommand(intoPlay); + }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Spitting Hydra")) { SpellAbility spell = new Spell_Permanent(card) { diff --git a/src/forge/CardFactory_Instants.java b/src/forge/CardFactory_Instants.java index aeecb868ed0..3f247978cde 100644 --- a/src/forge/CardFactory_Instants.java +++ b/src/forge/CardFactory_Instants.java @@ -1183,7 +1183,7 @@ public class CardFactory_Instants { //*************** START *********** START ************************** - else if(cardName.equals("Twincast") || cardName.equals("Reverberate")) { + else if(cardName.equals("Twincast") || cardName.equals("Reverberate") || cardName.equals("Fork")) { final SpellAbility spell = new Spell(card) { private static final long serialVersionUID = -659841515428746L;