From 37dbdb4b4b3dd43fc66149558b9bd8ce6a49fb8a Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 7 Jun 2024 22:45:39 +0400 Subject: [PATCH] refactor: fixed miss deep copy of AlternativeSourceCosts in PlayerImpl (related to #12420) --- Mage/src/main/java/mage/players/PlayerImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 9b034246e28..6b651cf32de 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -158,7 +158,7 @@ public abstract class PlayerImpl implements Player, Serializable { protected boolean drawsOnOpponentsTurn = false; protected FilterPermanent sacrificeCostFilter; - protected final List alternativeSourceCosts = new ArrayList<>(); + protected List alternativeSourceCosts = new ArrayList<>(); // TODO: rework turn controller to use single list (see other todos) //protected Stack allTurnControllers = new Stack<>(); @@ -264,7 +264,7 @@ public abstract class PlayerImpl implements Player, Serializable { this.payLifeCostLevel = player.payLifeCostLevel; this.sacrificeCostFilter = player.sacrificeCostFilter; - this.alternativeSourceCosts.addAll(player.alternativeSourceCosts); + this.alternativeSourceCosts = CardUtil.deepCopyObject(player.alternativeSourceCosts); this.storedBookmark = player.storedBookmark; this.topCardRevealed = player.topCardRevealed; @@ -365,8 +365,7 @@ public abstract class PlayerImpl implements Player, Serializable { this.canPlayCardsFromGraveyard = player.canPlayCardsFromGraveyard(); this.canPlotFromTopOfLibrary = player.canPlotFromTopOfLibrary(); this.drawsOnOpponentsTurn = player.isDrawsOnOpponentsTurn(); - this.alternativeSourceCosts.clear(); - this.alternativeSourceCosts.addAll(player.getAlternativeSourceCosts()); + this.alternativeSourceCosts = CardUtil.deepCopyObject(player.getAlternativeSourceCosts()); this.topCardRevealed = player.isTopCardRevealed();