From cc4833c014216720596f1ebe2edf2449f8d1d364 Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 22 Apr 2013 01:35:58 +0000 Subject: [PATCH] - Added Needlebite Trap --- .gitattributes | 1 + res/cardsfolder/n/needlebite_trap.txt | 10 +++++++ res/cardsfolder/s/swords_to_plowshares.txt | 2 +- .../card/cardfactory/CardFactoryUtil.java | 6 +++++ .../java/forge/game/phase/PhaseHandler.java | 1 + src/main/java/forge/game/player/Player.java | 27 +++++++++++++++++++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 res/cardsfolder/n/needlebite_trap.txt diff --git a/.gitattributes b/.gitattributes index bc7415cc0fa..495da118a71 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7177,6 +7177,7 @@ res/cardsfolder/n/need_for_speed.txt svneol=native#text/plain res/cardsfolder/n/needle_drop.txt -text res/cardsfolder/n/needle_specter.txt svneol=native#text/plain res/cardsfolder/n/needle_storm.txt svneol=native#text/plain +res/cardsfolder/n/needlebite_trap.txt -text res/cardsfolder/n/needlebug.txt svneol=native#text/plain res/cardsfolder/n/needlepeak_spider.txt svneol=native#text/plain res/cardsfolder/n/needleshot_gourna.txt svneol=native#text/plain diff --git a/res/cardsfolder/n/needlebite_trap.txt b/res/cardsfolder/n/needlebite_trap.txt new file mode 100644 index 00000000000..097e3784481 --- /dev/null +++ b/res/cardsfolder/n/needlebite_trap.txt @@ -0,0 +1,10 @@ +Name:Needlebite Trap +ManaCost:5 B B +Types:Instant Trap +SVar:AltCost:Cost$ B | CheckSVar$ OppLifeGained | Description$ If an opponent gained life this turn, you may pay B rather than pay CARDNAME's mana cost. +SVar:OppLifeGained:PlayerCountOpponents$LifeGainedThisTurn +A:SP$ LoseLife | Cost$ 5 B B | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ 5 | SubAbility$ DBGainLife | SpellDescription$ Target player loses 5 life and you gain 5 life. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 5 +SVar:Picture:http://www.wizards.com/global/images/magic/general/needlebite_trap.jpg +Oracle:If an opponent gained life this turn, you may pay {B} rather than pay Needlebite Trap's mana cost.\nTarget player loses 5 life and you gain 5 life. +SetInfo:ZEN Uncommon \ No newline at end of file diff --git a/res/cardsfolder/s/swords_to_plowshares.txt b/res/cardsfolder/s/swords_to_plowshares.txt index 8c9d6ef1a62..edb3d95aab1 100644 --- a/res/cardsfolder/s/swords_to_plowshares.txt +++ b/res/cardsfolder/s/swords_to_plowshares.txt @@ -2,7 +2,7 @@ Name:Swords to Plowshares ManaCost:W Types:Instant A:SP$ ChangeZone | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target creature. Its controller gains life equal to its power. | SubAbility$ DBGainLife -SVar:DBGainLife:DB$GainLife | Defined$ TargetedController | LifeAmount$ X +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | References$ X SVar:X:Targeted$CardPower SVar:Picture:http://resources.wizards.com/magic/cards/br/en-us/card21172.jpg Oracle:Exile target creature. Its controller gains life equal to its power. diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 4aab07b0419..848eb480c26 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -1042,6 +1042,12 @@ public class CardFactoryUtil { } } + if (sq[0].contains("LifeGainedThisTurn")) { + if (players.size() > 0) { + return doXMath(players.get(0).getLifeGainedThisTurn(), m, source); + } + } + if (sq[0].contains("PoisonCounters")) { if (players.size() > 0) { return doXMath(players.get(0).getPoisonCounters(), m, source); diff --git a/src/main/java/forge/game/phase/PhaseHandler.java b/src/main/java/forge/game/phase/PhaseHandler.java index d0b18d698f7..8bd36b54b24 100644 --- a/src/main/java/forge/game/phase/PhaseHandler.java +++ b/src/main/java/forge/game/phase/PhaseHandler.java @@ -539,6 +539,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable { p.resetProwl(); p.setLifeLostThisTurn(0); + p.setLifeGainedThisTurn(0); p.removeKeyword("At the beginning of this turn's end step, you lose the game."); p.removeKeyword("Skip the untap step of this turn."); diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 76d524c4be7..1f306604ca4 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -99,6 +99,9 @@ public abstract class Player extends GameEntity implements Comparable { /** The life lost this turn. */ private int lifeLostThisTurn = 0; + /** The life Gained this turn. */ + private int lifeGainedThisTurn = 0; + /** The num power surge lands. */ private int numPowerSurgeLands; @@ -458,6 +461,7 @@ public abstract class Player extends GameEntity implements Comparable { this.addLife(lifeGain); newLifeSet = true; this.updateObservers(); + this.lifeGainedThisTurn += lifeGain; // Run triggers final HashMap runParams = new HashMap(); @@ -2575,6 +2579,29 @@ public abstract class Player extends GameEntity implements Comparable { this.numLandsPlayed = n; } + /** + *

+ * Getter for the field lifeGainedThisTurn. + *

+ * + * @return a int. + */ + public final int getLifeGainedThisTurn() { + return this.lifeGainedThisTurn; + } + + /** + *

+ * Setter for the field lifeGainedThisTurn. + *

+ * + * @param n + * a int. + */ + public final void setLifeGainedThisTurn(final int n) { + this.lifeGainedThisTurn = n; + } + /** *

* Getter for the field lifeLostThisTurn.