diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 168aed42db8..6c4265507f9 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -594,7 +594,24 @@ public class Combat { unregisterDefender(c, be.getKey()); } } - + + for (Card pw : getDefendingPlaneswalkers()) { + if (pw.equals(c)) { + Multimap attackerBuffer = ArrayListMultimap.create(); + Collection bands = attackedByBands.get(pw); + for (AttackingBand abPW : bands) { + unregisterDefender(c, abPW); + // Rule 506.4c workaround to keep creatures in combat + Card fake = new Card(-1, c.getGame()); + fake.setName(""); + fake.setController(c.getController(), 0); + attackerBuffer.put(fake, abPW); + } + bands.clear(); + attackedByBands.putAll(attackerBuffer); + } + } + // remove card from map while (blockedBands.values().remove(c)); c.updateBlockingForView();