diff --git a/src/main/java/forge/game/phase/Combat.java b/src/main/java/forge/game/phase/Combat.java index 567106fd9ea..8d0b2c92823 100644 --- a/src/main/java/forge/game/phase/Combat.java +++ b/src/main/java/forge/game/phase/Combat.java @@ -563,6 +563,7 @@ public class Combat { } private final boolean assignBlockersDamage(boolean firstStrikeDamage) { + // Assign damage by Blockers final List blockers = this.getAllBlockers(); boolean assignedDamage = false; @@ -586,7 +587,7 @@ public class Combat { } assignedDamage = true; - Map map = blocker.getController().getController().assignCombatDamage(blocker, attackers, damage, null, assigningPlayer != blocker.getController()); + Map map = assigningPlayer.getController().assignCombatDamage(blocker, attackers, damage, null, assigningPlayer != blocker.getController()); for (Entry dt : map.entrySet()) { dt.getKey().addAssignedDamage(dt.getValue(), blocker); dt.getKey().updateObservers(); @@ -599,6 +600,7 @@ public class Combat { } private final boolean assignAttackersDamage(boolean firstStrikeDamage) { + // Assign damage by Attackers this.defendingDamageMap.clear(); // this should really happen in deal damage List blockers = null; final List attackers = this.getAttackers(); diff --git a/src/main/java/forge/gui/match/CMatchUI.java b/src/main/java/forge/gui/match/CMatchUI.java index d254f364baa..1a4821bd900 100644 --- a/src/main/java/forge/gui/match/CMatchUI.java +++ b/src/main/java/forge/gui/match/CMatchUI.java @@ -210,7 +210,7 @@ public enum CMatchUI { // If the first blocker can absorb all of the damage, don't show the Assign Damage Frame Card firstBlocker = blockers.get(0); - if (!attacker.hasKeyword("Deathtouch") && firstBlocker.getLethalDamage() >= damage) { + if (!overrideOrder && !attacker.hasKeyword("Deathtouch") && firstBlocker.getLethalDamage() >= damage) { Map res = new HashMap(); res.put(firstBlocker, damage); return res;