From 284db016a058b60474508bcf9381202d69e56b49 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 20 Apr 2021 18:28:01 +0200 Subject: [PATCH] Rework ceaseToExist --- forge-game/src/main/java/forge/game/Game.java | 1 + forge-game/src/main/java/forge/game/GameAction.java | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index 08da265ce41..cfd9b21e4f7 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -789,6 +789,7 @@ public class Game { cc.removeImprintedCard(c); cc.removeEncodedCard(c); cc.removeRemembered(c); + cc.removeAttachedTo(c); } getAction().ceaseToExist(c, false); // CR 603.2f owner of trigger source lost game diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index b4dcf95746b..e7d55ec0962 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -920,17 +920,14 @@ public class GameAction { } public void ceaseToExist(Card c, boolean skipTrig) { - final String origin = c.getZone().getZoneType().name(); - c.getZone().remove(c); - c.setZone(null); // CR 603.6c other players LTB triggers should work if (!skipTrig) { game.addChangeZoneLKIInfo(c); - Card lki = null; CardCollectionView lastBattlefield = game.getLastStateBattlefield(); int idx = lastBattlefield.indexOf(c); + Card lki = null; if (idx != -1) { lki = lastBattlefield.get(idx); } @@ -942,10 +939,9 @@ public class GameAction { game.getCombat().saveLKI(lki); } game.getTriggerHandler().registerActiveLTBTrigger(lki); - final Map runParams = AbilityKey.mapFromCard(c); runParams.put(AbilityKey.CardLKI, lki); - runParams.put(AbilityKey.Origin, origin); + runParams.put(AbilityKey.Origin, c.getZone().getZoneType().name()); game.getTriggerHandler().runTrigger(TriggerType.ChangesZone, runParams, false); game.getTriggerHandler().runWaitingTriggers(); }