From ecd43c07e2e0a42298404e62ece18abd8cc8f2e0 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Wed, 21 Sep 2022 20:17:58 -0400 Subject: [PATCH] Inform players of combat damage assignment order in log --- .../java/mage/game/combat/CombatGroup.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Mage/src/main/java/mage/game/combat/CombatGroup.java b/Mage/src/main/java/mage/game/combat/CombatGroup.java index 2e9cb570882..be15d044fdb 100644 --- a/Mage/src/main/java/mage/game/combat/CombatGroup.java +++ b/Mage/src/main/java/mage/game/combat/CombatGroup.java @@ -655,6 +655,9 @@ public class CombatGroup implements Serializable, Copyable { blockerList.remove(blockerId); } } + if (!game.isSimulation() && blockerOrder.size() > 1) { + logDamageAssignmentOrder("Creatures blocking ", attackers, blockerOrder, game); + } } public void pickAttackerOrder(UUID playerId, Game game) { @@ -681,6 +684,37 @@ public class CombatGroup implements Serializable, Copyable { attackerList.remove(attackerId); } } + if (!game.isSimulation() && attackerOrder.size() > 1) { + logDamageAssignmentOrder("Creatures blocked by ", blockers, attackerOrder, game); + } + } + + private void logDamageAssignmentOrder(String prefix, List assignedFor, List assignedOrder, Game game) { + StringBuilder sb = new StringBuilder(prefix); + boolean first = true; + for (UUID id : assignedFor) { + Permanent perm = game.getPermanent(id); + if (perm != null) { + if (!first) { + sb.append(", "); + } + sb.append(perm.getLogName()); + first = false; + } + } + sb.append(" are ordered: "); + first = true; + for (UUID id : assignedOrder) { + Permanent perm = game.getPermanent(id); + if (perm != null) { + if (!first) { + sb.append(", "); + } + sb.append(perm.getLogName()); + first = false; + } + } + game.informPlayers(sb.toString()); } public int totalAttackerDamage(Game game) {