From 82a2468f701ca6c0c5a19b7b67ef68cf02f78974 Mon Sep 17 00:00:00 2001 From: Bug Hunter Date: Fri, 15 Jan 2021 09:51:13 +0000 Subject: [PATCH] RestartGameEffect: Reuse more code --- .../src/main/java/forge/game/GameAction.java | 1 + .../game/ability/effects/RestartGameEffect.java | 17 +++++------------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 45e8ab183d3..f2cf093f486 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1638,6 +1638,7 @@ public class GameAction { game.getPhaseHandler().startFirstTurn(first, startGameHook); //after game ends, ensure Auto-Pass canceled for all players so it doesn't apply to next game for (Player p : game.getRegisteredPlayers()) { + p.setNumCardsInHandStartedThisTurnWith(p.getCardsIn(ZoneType.Hand).size()); p.getController().autoPassCancel(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/RestartGameEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RestartGameEffect.java index 061af6c1377..39266cd3b51 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RestartGameEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RestartGameEffect.java @@ -66,6 +66,8 @@ public class RestartGameEffect extends SpellAbilityEffect { TriggerHandler trigHandler = game.getTriggerHandler(); trigHandler.clearDelayedTrigger(); trigHandler.suppressMode(TriggerType.ChangesZone); + // Avoid Psychic Surgery trigger in new game + trigHandler.suppressMode(TriggerType.Shuffled); game.getStack().reset(); GameAction action = game.getAction(); @@ -80,18 +82,8 @@ public class RestartGameEffect extends SpellAbilityEffect { player.setStartingLife(psc.getStartingLife()); player.setPoisonCounters(0, sa.getHostCard()); player.resetSpellCastThisGame(); + player.onCleanupPhase(); player.setLandsPlayedLastTurn(0); - player.resetLandsPlayedThisTurn(); - player.resetInvestigatedThisTurn(); - player.resetCycledThisTurn(); - player.resetNumDiscardedThisTurn(); - player.resetNumDrawnThisTurn(); - player.resetNumTokenCreatedThisTurn(); - player.resetProwl(); - player.resetSacrificedThisTurn(); - player.resetSpellsCastThisTurn(); - player.resetPreventNextDamage(); - player.resetPreventNextDamageWithEffect(); List newLibrary = playerLibraries.get(player); for (Card c : newLibrary) { @@ -101,7 +93,8 @@ public class RestartGameEffect extends SpellAbilityEffect { player.shuffle(null); } - + + trigHandler.clearSuppression(TriggerType.Shuffled); trigHandler.clearSuppression(TriggerType.ChangesZone); game.resetTurnOrder();