diff --git a/.gitattributes b/.gitattributes index 92d677725a8..517381670f6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2859,6 +2859,7 @@ res/cardsfolder/d/dream_fighter.txt -text res/cardsfolder/d/dream_fracture.txt svneol=native#text/plain res/cardsfolder/d/dream_halls.txt -text res/cardsfolder/d/dream_prowler.txt svneol=native#text/plain +res/cardsfolder/d/dream_salvage.txt -text res/cardsfolder/d/dream_stalker.txt svneol=native#text/plain res/cardsfolder/d/dream_thief.txt -text res/cardsfolder/d/dream_thrush.txt -text diff --git a/res/cardsfolder/d/dream_salvage.txt b/res/cardsfolder/d/dream_salvage.txt new file mode 100644 index 00000000000..60c810b1ca6 --- /dev/null +++ b/res/cardsfolder/d/dream_salvage.txt @@ -0,0 +1,10 @@ +Name:Dream Salvage +ManaCost:UB +Types:Instant +A:SP$ Draw | Cost$ UB | NumCards$ X | Defined$ You | ValidTgts$ Opponent | References$ X | SpellDescription$ Draw cards equal to the number of cards target opponent discarded this turn. +SVar:X:TargetedPlayer$CardsDiscardedThisTurn +SVar:RemAIDeck:True +SVar:RemRandomDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/dream_salvage.jpg +Oracle:Draw cards equal to the number of cards target opponent discarded this turn. +SetInfo:SHM Uncommon \ No newline at end of file diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index a9a84c8fcc6..d5198d5d643 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -1064,6 +1064,12 @@ public class CardFactoryUtil { return CardFactoryUtil.doXMath(players.get(0).getNumDrawnThisTurn(), m, source); } } + + if (sq[0].contains("CardsDiscardedThisTurn")) { + if (players.size() > 0) { + return CardFactoryUtil.doXMath(players.get(0).getNumDiscardedThisTurn(), m, source); + } + } if (sq[0].contains("AttackersDeclared")) { if (players.size() > 0) { diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 486890f3940..9eafeb77993 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -127,7 +127,10 @@ public abstract class Player extends GameEntity implements Comparable { /** The num drawn this turn. */ private int numDrawnThisTurn = 0; private int numDrawnThisDrawStep = 0; - + + /** The num discarded this turn. */ + private int numDiscardedThisTurn = 0; + /** The slowtrip list. */ private List slowtripList = new ArrayList(); @@ -1607,11 +1610,13 @@ public abstract class Player extends GameEntity implements Comparable { game.getAction().moveToLibrary(c, 0); // Play the Discard sound game.getEvents().post(new CardDiscardedEvent()); + this.numDiscardedThisTurn++; } else { game.getAction().moveToGraveyard(c); // Play the Discard sound game.getEvents().post(new CardDiscardedEvent()); + this.numDiscardedThisTurn++; } // Run triggers @@ -1628,6 +1633,27 @@ public abstract class Player extends GameEntity implements Comparable { } // end doDiscard + /** + *

+ * Getter for the field numDiscardedThisTurn. + *

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

+ * Getter for the field numDrawnThisTurn. + *

+ * + * @return a int. + */ + public final void resetNumDiscardedThisTurn() { + this.numDiscardedThisTurn = 0; + } /** *

* discardUnless. @@ -2767,6 +2793,7 @@ public abstract class Player extends GameEntity implements Comparable { } resetPreventNextDamage(); resetNumDrawnThisTurn(); + resetNumDiscardedThisTurn(); setAttackedWithCreatureThisTurn(false); setNumLandsPlayed(0); clearAssignedDamage();