diff --git a/res/cards.txt b/res/cards.txt index 341592e7b2d..6db7c880360 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,17 @@ +Blaze +X R +Sorcery +no text +spDamageTgtCP:X:Blaze deals X damage to target creature or player. +SVar:X:Count$xPaid + +Wolfbriar Elemental +2 G G +Creature Elemental +When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked. +4/4 +Multikicker G + Isochron Scepter 2 Artifact diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 5eb9c387c08..539b3c3a22d 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -1379,6 +1379,7 @@ public class CardFactory implements NewConstants { final boolean TgtPlayer[] = {false}; final boolean TgtCP[] = {false}; final boolean TgtOpp[] = {false}; + final boolean usesXCost[] = {false}; if(k[0].contains("CP")) TgtCP[0] = true; else if(k[0].contains("P")) TgtPlayer[0] = true; @@ -1395,7 +1396,11 @@ public class CardFactory implements NewConstants { String kk[] = x.split("\\$"); NumDmgX[0] = kk[1]; } - + if (x.equals("Count$xPaid")) + { + usesXCost[0] = true; + } + } else if(k[1].matches("[0-9][0-9]?")) NumDmg[0] = Integer.parseInt(k[1]); //drawbacks and descriptions @@ -1426,15 +1431,20 @@ public class CardFactory implements NewConstants { return 0; } + public int getNumXDamage() + { + return card.getXManaCostPaid(); + } + boolean shouldTgtP() { PlayerZone compHand = AllZone.getZone(Constant.Zone.Hand, Constant.Player.Computer); CardList hand = new CardList(compHand.getCards()); if(hand.size() >= 7) // anti-discard-at-EOT - return true; + return true; if(AllZone.Human_Life.getLife() < (10 - damage)) // if damage from this spell would drop the human to less than 10 life - return true; + return true; return false; } @@ -1479,6 +1489,9 @@ public class CardFactory implements NewConstants { public boolean canPlayAI() { damage = getNumDamage(); + if (damage == 0) + return false; + if(TgtCP[0] == true) { if(shouldTgtP() == true) { setTargetPlayer(Constant.Player.Human); @@ -1511,6 +1524,8 @@ public class CardFactory implements NewConstants { @Override public void resolve() { damage = getNumDamage(); + if (usesXCost[0]) + damage = getNumXDamage(); String tgtP = ""; if(TgtOpp[0] == true) setTargetPlayer(AllZone.GameAction.getOpponent(card.getController())); diff --git a/src/forge/CardFactoryUtil.java b/src/forge/CardFactoryUtil.java index 0dcd81d035f..ff751ec63c2 100644 --- a/src/forge/CardFactoryUtil.java +++ b/src/forge/CardFactoryUtil.java @@ -2317,10 +2317,23 @@ public class CardFactoryUtil { final String[] sq; sq = l[0].split("\\."); + if(sq[0].contains("xPaid")) { + if (c.getController().equals(Constant.Player.Human)) { + return c.getXManaCostPaid(); + } + else { + int dam = ComputerUtil.getAvailableMana().size()- CardUtil.getConvertedManaCost(c); + if (dam < 0) dam = 0; + return dam; + } + } + CardList someCards = new CardList(); //Complex counting methods + + // Count$Domain if(sq[0].contains("Domain")) { someCards.addAll(myField.getCards()); diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 0b37d574b19..2fc5a487477 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -17259,9 +17259,6 @@ public class CardFactory_Creatures { { Ability_Mana ma = new Ability_Mana(card, "tap: add an amount of G to your mana pool equal to CARDNAME's power.") { - /** - * - */ private static final long serialVersionUID = 3818278127211421729L; public String Mana() @@ -17275,6 +17272,35 @@ public class CardFactory_Creatures { card.addSpellAbility(ma); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Wolfbriar Elemental")) + { + final Ability ability = new Ability(card, "0") { + @Override + public void resolve() { + for (int i=0;i