mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
RestartGameEffect: Reuse more code
This commit is contained in:
committed by
Hans Mackowiak
parent
97391ac54e
commit
82a2468f70
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Card> 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();
|
||||
|
||||
Reference in New Issue
Block a user