From 8fe37a2be3bda4242cfa87a25bbb9e96d0ef57eb Mon Sep 17 00:00:00 2001 From: Hellfish Date: Fri, 21 Oct 2011 10:35:31 +0000 Subject: [PATCH] *Added LastTurnCast in addition to ThisTurnCast. --- src/main/java/forge/CardUtil.java | 17 +++++++++++++++ src/main/java/forge/MagicStack.java | 21 +++++++++++++++++-- src/main/java/forge/Phase.java | 1 + .../card/cardFactory/CardFactoryUtil.java | 15 ++++++++++--- 4 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index 02cc948afdd..a6312172eca 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -711,6 +711,23 @@ public final class CardUtil { return res; } + + /** + * getLastTurnCast. + * + * @param valid a String object + * @param src a Card object + * @return a CardList that matches the given criteria + */ + public static CardList getLastTurnCast(final String valid, final Card src) { + CardList res = new CardList(); + + res.addAll(AllZone.getStack().getCardsCastLastTurn()); + + res = res.getValidCards(valid, src.getController(), src); + + return res; + } /** * getLKICopy. diff --git a/src/main/java/forge/MagicStack.java b/src/main/java/forge/MagicStack.java index b7744911c9e..f496a5a7073 100644 --- a/src/main/java/forge/MagicStack.java +++ b/src/main/java/forge/MagicStack.java @@ -42,6 +42,7 @@ public class MagicStack extends MyObservable { private int splitSecondOnStack = 0; private CardList thisTurnCast = new CardList(); + private CardList lastTurnCast = new CardList(); /** *

isFrozen.

@@ -1219,11 +1220,27 @@ public class MagicStack extends MyObservable { public final CardList getCardsCastThisTurn() { return thisTurnCast; } - + /** * clearCardsCastThisTurn. */ - public void clearCardsCastThisTurn() { + public final void clearCardsCastThisTurn() { thisTurnCast.clear(); } + + /** + * + * setCardsCastLastTurn. + */ + public final void setCardsCastLastTurn() { + lastTurnCast = new CardList(thisTurnCast); + } + + /** + * Accessor for the field lastTurnCast. + * @return a CardList. + */ + public final CardList getCardsCastLastTurn() { + return lastTurnCast; + } } diff --git a/src/main/java/forge/Phase.java b/src/main/java/forge/Phase.java index 42194d146d6..71415368054 100644 --- a/src/main/java/forge/Phase.java +++ b/src/main/java/forge/Phase.java @@ -457,6 +457,7 @@ public class Phase extends MyObservable implements java.io.Serializable { private Player handleNextTurn() { Player nextTurn = extraTurns.isEmpty() ? getPlayerTurn().getOpponent() : extraTurns.pop(); + AllZone.getStack().setCardsCastLastTurn(); AllZone.getStack().clearCardsCastThisTurn(); AllZone.resetZoneMoveTracking(); AllZone.getComputerPlayer().resetProwl(); diff --git a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java index 2f1c1469951..f6fa16ee882 100644 --- a/src/main/java/forge/card/cardFactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardFactory/CardFactoryUtil.java @@ -3211,14 +3211,23 @@ public class CardFactoryUtil { } // Count$ThisTurnCast - if(sq[0].contains("ThisTurnCast")) { + // Count$LastTurnCast + if(sq[0].contains("ThisTurnCast") || sq[0].contains("LastTurnCast")) { + String[] workingCopy = l[0].split(" "); String validFilter = workingCopy[1]; - CardList res = CardUtil.getThisTurnCast(validFilter, c); + CardList res; + + if(workingCopy[0].contains("This")) { + res = CardUtil.getThisTurnCast(validFilter, c); + } + else { + res = CardUtil.getLastTurnCast(validFilter, c); + } + int ret = doXMath(res.size(), m, c); - System.out.println("Requesting ThisTurn Cast \"" + validFilter + "\", returning " + ret); return ret; }