From f19cc05ee8ea4d6d42500bd784bb51de8c65f4a1 Mon Sep 17 00:00:00 2001 From: tool4ever Date: Sun, 14 Jan 2024 10:14:36 +0100 Subject: [PATCH] Fix UntilHostLeavesPlay being dropped when replaced (#4502) --- forge-game/src/main/java/forge/game/card/Card.java | 9 ++++++++- .../src/main/java/forge/game/card/CardFactory.java | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) 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 0475e22fc41..d45914ad5bd 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -307,7 +307,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { private Map goad = Maps.newTreeMap(); - private final List leavePlayCommandList = Lists.newArrayList(); + private List leavePlayCommandList = Lists.newArrayList(); private final List untapCommandList = Lists.newArrayList(); private final List changeControllerCommandList = Lists.newArrayList(); private final List unattachCommandList = Lists.newArrayList(); @@ -3397,6 +3397,13 @@ public final void addChangeControllerCommand(final GameCommand c) { changeControllerCommandList.add(c); } + public final List getLeavesPlayCommands() { + return leavePlayCommandList; + } + public final void setLeavesPlayCommands(List list) { + leavePlayCommandList = list; + } + public final void runLeavesPlayCommands() { for (final GameCommand c : leavePlayCommandList) { c.run(); diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index de875ee33a9..ac5921536dd 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -97,6 +97,7 @@ public final static Card copyCard(final Card in, boolean assignNewId) { // this's necessary for forge.game.GameAction.unattachCardLeavingBattlefield(Card) out.setAttachedCards(in.getAttachedCards()); out.setEntityAttachedTo(in.getEntityAttachedTo()); + out.setLeavesPlayCommands(in.getLeavesPlayCommands()); out.setSpecialized(in.isSpecialized()); out.addRemembered(in.getRemembered());