From d1b415e39fb8b076e71907f626ccf8e6689a22c8 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Wed, 8 May 2013 08:12:14 +0000 Subject: [PATCH] Tunnel Ignus added --- .gitattributes | 1 + res/cardsfolder/t/tunnel_ignus.txt | 10 ++++++++++ .../java/forge/card/cardfactory/CardFactoryUtil.java | 12 ++++++++---- .../java/forge/card/trigger/TriggerChangesZone.java | 5 +---- 4 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 res/cardsfolder/t/tunnel_ignus.txt diff --git a/.gitattributes b/.gitattributes index 61f0086cdfb..41d6c2a26fe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11545,6 +11545,7 @@ res/cardsfolder/t/tundra.txt svneol=native#text/plain res/cardsfolder/t/tundra_kavu.txt -text res/cardsfolder/t/tundra_wolves.txt svneol=native#text/plain res/cardsfolder/t/tunnel.txt svneol=native#text/plain +res/cardsfolder/t/tunnel_ignus.txt -text res/cardsfolder/t/tunneler_wurm.txt svneol=native#text/plain res/cardsfolder/t/turbulent_dreams.txt -text res/cardsfolder/t/turf_wound.txt -text diff --git a/res/cardsfolder/t/tunnel_ignus.txt b/res/cardsfolder/t/tunnel_ignus.txt new file mode 100644 index 00000000000..6f2116a3001 --- /dev/null +++ b/res/cardsfolder/t/tunnel_ignus.txt @@ -0,0 +1,10 @@ +Name:Tunnel Ignus +ManaCost:1 R +Types:Creature Elemental +PT:2/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.OppCtrl | CheckOnTriggeredCard$ X GT1 | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a land enters the battlefield under an opponent's control, if that player had another land enter the battlefield under his or her control this turn, CARDNAME deals 3 damage to that player. +SVar:TrigPump:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 3 +SVar:X:ThisTurnEntered_Battlefield_Land.YouCtrl +SVar:Picture:http://www.wizards.com/global/images/magic/general/tunner_ignus.jpg +Oracle:Whenever a land enters the battlefield under an opponent's control, if that player had another land enter the battlefield under his or her control this turn, Tunnel Ignus deals 3 damage to that player. +SetInfo:SOM Rare diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index d2552088a3f..53644d38847 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -1123,14 +1123,18 @@ public class CardFactoryUtil { if (l[0].startsWith("SVar$")) { return doXMath(xCount(c, c.getSVar(l[0].substring(5))), m, c); } + + if (l[0].startsWith("Controller$")) + return playerXProperty(cc, l[0].substring(11), c); + // Manapool if (l[0].startsWith("ManaPool")) { final String color = l[0].split(":")[1]; if (color.equals("All")) { - return c.getController().getManaPool().totalMana(); + return cc.getManaPool().totalMana(); } else { - return c.getController().getManaPool().getAmountOfColor(color); + return cc.getManaPool().getAmountOfColor(color); } } @@ -1140,8 +1144,8 @@ public class CardFactoryUtil { final String[] rest = lparts[1].split(","); final List cardsInZones = lparts[0].length() > 5 - ? cc.getGame().getCardsIn(ZoneType.listValueOf(lparts[0].substring(5))) - : cc.getGame().getCardsIn(ZoneType.Battlefield); + ? game.getCardsIn(ZoneType.listValueOf(lparts[0].substring(5))) + : game.getCardsIn(ZoneType.Battlefield); List cards = CardLists.getValidCards(cardsInZones, rest, cc, c); return doXMath(cards.size(), m, c); diff --git a/src/main/java/forge/card/trigger/TriggerChangesZone.java b/src/main/java/forge/card/trigger/TriggerChangesZone.java index 2822af8c474..7b2195b5242 100644 --- a/src/main/java/forge/card/trigger/TriggerChangesZone.java +++ b/src/main/java/forge/card/trigger/TriggerChangesZone.java @@ -88,10 +88,7 @@ public class TriggerChangesZone extends Trigger { final Card host = hostCard.getGame().getCardState(hostCard); final String comparator = condition.length < 2 ? "GE1" : condition[1]; final int referenceValue = AbilityUtils.calculateAmount(host, comparator.substring(2), null); - final Object triggered = runParams2.get("Card"); - if(!(triggered instanceof Card)) - throw new IllegalArgumentException( host + " - CheckOnTriggeredCard being checked for a trigger that has no card!"); - + final Card triggered = (Card)runParams2.get("Card"); final int actualValue = CardFactoryUtil.xCount((Card)triggered, host.getSVar(condition[0])); if (!Expressions.compare(actualValue, comparator.substring(0, 2), referenceValue)) { return false;