From 5abb581109241bfa9683faef9ce1b90693a74584 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 9 Mar 2014 06:19:30 +0000 Subject: [PATCH] - Added Emberwilde Djinn --- .gitattributes | 1 + .../main/java/forge/ai/ComputerUtilCost.java | 21 ++++++++++++------- .../res/cardsfolder/e/emberwilde_djinn.txt | 11 ++++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 forge-gui/res/cardsfolder/e/emberwilde_djinn.txt diff --git a/.gitattributes b/.gitattributes index 9610e66c068..b1b20e0b8e0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4057,6 +4057,7 @@ forge-gui/res/cardsfolder/e/embersmith.txt svneol=native#text/plain forge-gui/res/cardsfolder/e/emberstrike_duo.txt svneol=native#text/plain forge-gui/res/cardsfolder/e/emberwilde_augur.txt svneol=native#text/plain forge-gui/res/cardsfolder/e/emberwilde_caliph.txt svneol=native#text/plain +forge-gui/res/cardsfolder/e/emberwilde_djinn.txt -text forge-gui/res/cardsfolder/e/emblem_of_the_warmind.txt svneol=native#text/plain forge-gui/res/cardsfolder/e/embolden.txt -text forge-gui/res/cardsfolder/e/embrace_my_diabolical_vision.txt -text diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java index f0f3428a191..994fefb9501 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCost.java @@ -350,20 +350,25 @@ public class ComputerUtilCost { public static boolean willPayUnlessCost(SpellAbility sa, Player payer, Cost cost, boolean alreadyPaid, List payers) { final Card source = sa.getHostCard(); - boolean payForOwnOnly = "OnlyOwn".equals(sa.getParam("UnlessAI")); - boolean payOwner = sa.hasParam("UnlessAI") ? sa.getParam("UnlessAI").startsWith("Defined") : false; - boolean payNever = "Never".equals(sa.getParam("UnlessAI")); - boolean shockland = "Shockland".equals(sa.getParam("UnlessAI")); + final String aiLogic = sa.getParam("UnlessAI"); + boolean payForOwnOnly = "OnlyOwn".equals(aiLogic); + boolean payOwner = sa.hasParam("UnlessAI") ? aiLogic.startsWith("Defined") : false; + boolean payNever = "Never".equals(aiLogic); + boolean shockland = "Shockland".equals(aiLogic); boolean isMine = sa.getActivatingPlayer().equals(payer); if (payNever) { return false; } if (payForOwnOnly && !isMine) { return false; } if (payOwner) { - final String defined = sa.getParam("UnlessAI").substring(7); + final String defined = aiLogic.substring(7); final Player player = AbilityUtils.getDefinedPlayers(source, defined, sa).get(0); if (!payer.equals(player)) { return false; } + } else if ("OnlyDontControl".equals(aiLogic)) { + if (sa.getHostCard() == null || payer.equals(sa.getHostCard().getController())) { + return false; + } } else if (shockland) { if (payer.getLife() > 3 && payer.canPayLife(2)) { // If the new land size would equal the CMC of a card in AIs hand, play it untapped @@ -375,18 +380,18 @@ public class ComputerUtilCost { } } return false; - } else if ("Paralyze".equals(sa.getParam("UnlessAI"))) { + } else if ("Paralyze".equals(aiLogic)) { final Card c = source.getEnchantingCard(); if (c == null || c.isUntapped()) { return false; } - } else if ("MorePowerful".equals(sa.getParam("UnlessAI"))) { + } else if ("MorePowerful".equals(aiLogic)) { final int sourceCreatures = sa.getActivatingPlayer().getCreaturesInPlay().size(); final int payerCreatures = payer.getCreaturesInPlay().size(); if (payerCreatures > sourceCreatures + 1) { return false; } - } else if ("LifeLE2".equals(sa.getParam("UnlessAI"))) { + } else if ("LifeLE2".equals(aiLogic)) { if (payer.getLife() < 3) { return true; } diff --git a/forge-gui/res/cardsfolder/e/emberwilde_djinn.txt b/forge-gui/res/cardsfolder/e/emberwilde_djinn.txt new file mode 100644 index 00000000000..24a0fb78bab --- /dev/null +++ b/forge-gui/res/cardsfolder/e/emberwilde_djinn.txt @@ -0,0 +1,11 @@ +Name:Emberwilde Djinn +ManaCost:2 R R +Types:Creature Djinn +PT:5/4 +K:Flying +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ At the beginning of each player's upkeep, that player may pay {R}{R} or 2 life. If he or she does, the player gains control of CARDNAME. +SVar:TrigChoose:DB$ GenericChoice | Defined$ TriggeredPlayer | AILogic$ PayUnlessCost | Choices$ PayRR,Pay2Life +SVar:PayRR:DB$ GainControl | Defined$ Self | NewController$ TriggeredPlayer | UnlessCost$ R R | UnlessPayer$ TriggeredPlayer | UnlessSwitched$ True | UnlessAI$ OnlyDontControl | SpellDescription$ Pay R R to gain control of CARDNAME +SVar:Pay2Life:DB$ GainControl | Defined$ Self | NewController$ TriggeredPlayer | UnlessCost$ PayLife<2> | UnlessPayer$ TriggeredPlayer | UnlessSwitched$ True | UnlessAI$ OnlyDontControl | SpellDescription$ Pay 2 life to gain control of CARDNAME +SVar:Picture:http://www.wizards.com/global/images/magic/general/emberwilde_djinn.jpg +Oracle:Flying\nAt the beginning of each player's upkeep, that player may pay {R}{R} or 2 life. If he or she does, the player gains control of Emberwilde Djinn.