diff --git a/res/card-pictures.txt b/res/card-pictures.txt index c522cc9336c..649da91055f 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -38,6 +38,8 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg +stream_of_life.jpg http://www.wizards.com/global/images/magic/general/stream_of_life.jpg +vitalizing_cascade.jpg http://www.wizards.com/global/images/magic/general/vitalizing_cascade.jpg savage_twister.jpg http://www.wizards.com/global/images/magic/general/savage_twister.jpg starstorm.jpg http://www.wizards.com/global/images/magic/general/starstorm.jpg squall_line.jpg http://www.wizards.com/global/images/magic/general/squall_line.jpg diff --git a/res/cards.txt b/res/cards.txt index e33b91cc5f8..3701ed8fd72 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,12 @@ +Stream of Life +X G +Sorcery +no text + +Vitalizing Cascade +X G W +Instant + Savage Twister X R G Sorcery diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 4f5a36cc015..3bbfc93f81e 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -17406,6 +17406,69 @@ public class CardFactory implements NewConstants { } //*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Stream of Life")) + { + final SpellAbility spell = new Spell(card){ + private static final long serialVersionUID = 851280814064291421L; + + public void resolve() + { + String player = getTargetPlayer(); + + AllZone.GameAction.getPlayerLife(player).addLife(card.getXManaCostPaid()); + card.setXManaCostPaid(0); + } + + public boolean canPlayAI() + { + int humanLife = AllZone.Human_Life.getLife(); + int computerLife = AllZone.Computer_Life.getLife(); + + final int maxX = ComputerUtil.getAvailableMana().size() - 1; + return maxX > 3 && (humanLife >= computerLife); + } + }; + spell.setDescription("Target player gains X life."); + spell.setBeforePayMana(CardFactoryUtil.input_targetPlayer(spell)); + spell.setChooseTargetAI(CardFactoryUtil.AI_targetComputer()); + + card.clearSpellAbility(); + card.addSpellAbility(spell); + } + //*************** END ************ END ************************** + + + //*************** START *********** START ************************** + else if(cardName.equals("Vitalizing Cascade")) + { + final SpellAbility spell = new Spell(card){ + private static final long serialVersionUID = -5930794708688097023L; + + public void resolve() + { + AllZone.GameAction.getPlayerLife(card.getController()).addLife(card.getXManaCostPaid() + 3); + card.setXManaCostPaid(0); + } + + public boolean canPlayAI() + { + int humanLife = AllZone.Human_Life.getLife(); + int computerLife = AllZone.Computer_Life.getLife(); + + final int maxX = ComputerUtil.getAvailableMana().size() - 1; + return maxX > 3 && (humanLife >= computerLife); + } + }; + spell.setDescription("You gain X plus 3 life."); + spell.setStackDescription("Vitalizing Cascade - You gain X plus 3 life."); + + card.clearSpellAbility(); + card.addSpellAbility(spell); + } + //*************** END ************ END ************************** + // Cards with Cycling abilities // -1 means keyword "Cycling" not found if(hasKeyword(card, "Cycling") != -1) {