diff --git a/src/forge/Combat.java b/src/forge/Combat.java index 7f9d9b91c40..cefb21790c2 100644 --- a/src/forge/Combat.java +++ b/src/forge/Combat.java @@ -380,10 +380,16 @@ public class Combat { } else// card is a blocker { - for (int i = 0; i < att.size(); i++) - if (getBlockers(att.get(i)).contains(c)) - getList(att.get(i)).remove(c); + for(Card a : att) + if (getBlockers(a).contains(c)){ + getList(a).remove(c); + // TODO if Declare Blockers and Declare Blockers (Abilities) merge this logic needs to be tweaked + if (getBlockers(a).size() == 0 && AllZone.Phase.is(Constant.Phase.Combat_Declare_Blockers)) + blocked.remove(a); + } } + // update combat + CombatUtil.showCombat(); }// removeFromCombat() public void verifyCreaturesInPlay() { diff --git a/src/forge/GuiDisplay3.java b/src/forge/GuiDisplay3.java index 986775098ed..8d3022661e2 100644 --- a/src/forge/GuiDisplay3.java +++ b/src/forge/GuiDisplay3.java @@ -406,15 +406,12 @@ public class GuiDisplay3 extends JFrame implements CardContainer, Display, NewCo AllZone.Combat.removeFromCombat(cardPanel.getCard()); } - /* - // won't work yet: - else if (block.contains(cardPanel.getCard()) && inputControl.input instanceof Input_Block) - { + else if (inputControl.input instanceof Input_Block){ + Card crd = cardPanel.getCard(); - AllZone.Combat.removeFromCombat(crd); + if(crd.getController().isHuman()) + AllZone.Combat.removeFromCombat(crd); } - */ - } else inputControl.selectCard(cardPanel.getCard(), AllZone.Human_Battlefield); diff --git a/src/forge/GuiDisplay4.java b/src/forge/GuiDisplay4.java index 72bfd64b93e..d569cd949f3 100644 --- a/src/forge/GuiDisplay4.java +++ b/src/forge/GuiDisplay4.java @@ -407,6 +407,10 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo c.untap(); AllZone.Combat.removeFromCombat(c); } + else if (inputControl.input instanceof Input_Block) { + if(c.getController().isHuman()) + AllZone.Combat.removeFromCombat(c); + } } else inputControl.selectCard(c, AllZone.Human_Battlefield); } }