From d8daec11d4239a1dd0f3ad9d7513d72c31aea3ae Mon Sep 17 00:00:00 2001 From: Zzooouhh Date: Thu, 7 Dec 2017 01:04:31 +0100 Subject: [PATCH] Fixed Butcher Orgg handling attackers/blockers leaving combat --- Mage/src/main/java/mage/game/combat/CombatGroup.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Mage/src/main/java/mage/game/combat/CombatGroup.java b/Mage/src/main/java/mage/game/combat/CombatGroup.java index ba67ca8cfc0..50f1d778594 100644 --- a/Mage/src/main/java/mage/game/combat/CombatGroup.java +++ b/Mage/src/main/java/mage/game/combat/CombatGroup.java @@ -244,7 +244,7 @@ public class CombatGroup implements Serializable, Copyable { } private void butcherOrggDamage(Permanent attacker, Player player, boolean first, Game game, boolean isAttacking) { - if (!(blocked && blockers.isEmpty()) && (!first || hasFirstOrDoubleStrike(game))) { + if (!((blocked && blockers.isEmpty() && isAttacking) || (attackers.isEmpty() && !isAttacking)) && (!first || hasFirstOrDoubleStrike(game))) { if (attacker == null) { return; } @@ -806,9 +806,12 @@ public class CombatGroup implements Serializable, Copyable { // for handling Butcher Orgg if (creature.getAbilities().containsKey(ControllerDivideCombatDamageAbility.getInstance().getId())) { Player player = game.getPlayer(defenderControlsDefensiveFormation(game) ? defendingPlayerId : playerId); - if (player.chooseUse(Outcome.Damage, "Do you wish to divide " + creature.getLogName() + "'s combat damage among defending player and/or any number of defending creatures?", null, game)) { - butcherOrggDamage(creature, player, first, game, isAttacking); - return true; + // 10/4/2004 If it is blocked but then all of its blockers are removed before combat damage is assigned, then it won’t be able to deal combat damage and you won’t be able to use its ability. + if (!((blocked && blockers.isEmpty() && isAttacking) || (attackers.isEmpty() && !isAttacking))) { + if (player.chooseUse(Outcome.Damage, "Do you wish to divide " + creature.getLogName() + "'s combat damage among defending player and/or any number of defending creatures?", null, game)) { + butcherOrggDamage(creature, player, first, game, isAttacking); + return true; + } } } return false;