From eb34f917275746807ecc0b5fef7565eb638cf567 Mon Sep 17 00:00:00 2001 From: Bug Hunter Date: Sun, 31 Jan 2021 05:12:03 +0000 Subject: [PATCH] Fix multiplayer losing keeping auras & stolen permanents --- forge-game/src/main/java/forge/game/Game.java | 10 ++++++++++ forge-game/src/main/java/forge/game/card/Card.java | 1 + 2 files changed, 11 insertions(+) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index 991a219048d..639e4d2c7ca 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -717,8 +717,18 @@ public class Game { if(isMultiplayer) { if (c.getOwner().equals(p)) { + for(Card cc : cards) { + cc.removeImprintedCard(c); + cc.removeEncodedCard(c); + cc.removeRemembered(c); + } c.ceaseToExist(); } else { + // return stolen permanents + if (c.getController().equals(p) && c.isInZone(ZoneType.Battlefield)) { + c.removeTempController(p); + getAction().controllerChangeZoneCorrection(c); + } c.removeTempController(p); if (c.getController().equals(p)) { this.getAction().exile(c, null); 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 e3177cd1b04..a9b9aece4d4 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -6371,6 +6371,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { public void ceaseToExist() { getGame().getTriggerHandler().suppressMode(TriggerType.ChangesZone); getZone().remove(this); + setZone(null); getGame().getTriggerHandler().clearSuppression(TriggerType.ChangesZone); }