From 4e48078d2baff388af91995f6750eb3a929e5ef6 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 28 Jun 2017 19:37:42 +0000 Subject: [PATCH] - Clean up PayX and SunburstValue when a card goes to a zone like graveyard,exile,etc., so that it's not remembered in case a card is replayed via something like Goblin Dark-Dwellers. --- forge-game/src/main/java/forge/game/GameAction.java | 5 +++++ forge-game/src/main/java/forge/game/card/Card.java | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 5f4bddc76c8..87275ab7ed3 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -189,6 +189,11 @@ public class GameAction { c.removeSVar("EndOfTurnLeavePlay"); } + // Clean up temporary variables such as Sunburst value or announced PayX value + if (!(zoneTo.is(ZoneType.Stack) || zoneTo.is(ZoneType.Battlefield))) { + c.clearTemporaryVars(); + } + if (fromBattlefield && !toBattlefield) { c.getController().setRevolt(true); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 0d1f111226d..37252953d99 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -7111,4 +7111,12 @@ public class Card extends GameEntity implements Comparable { this.addCounter(e.getKey(), e.getValue(), this, true); } } + + public final void clearTemporaryVars() { + // Add cleanup for all variables that are set temporarily but that need + // to be restored to their original value if a card changes zones + + removeSVar("PayX"); // Temporary AI X announcement variable + setSunburstValue(0); // Sunburst + } }