diff --git a/res/cardsfolder/b/brontotherium.txt b/res/cardsfolder/b/brontotherium.txt index 2e89a85a675..6b969906857 100644 --- a/res/cardsfolder/b/brontotherium.txt +++ b/res/cardsfolder/b/brontotherium.txt @@ -1,13 +1,12 @@ -Name:Brontotherium -ManaCost:4 G G -Types:Creature Beast -Text:no text -PT:5/3 -K:Trample -K:Provoke -SVar:RemAIDeck:True -SVar:Rarity:Uncommon -SVar:Picture:http://www.wizards.com/global/images/magic/general/brontotherium.jpg -SetInfo:LGN|Uncommon|http://magiccards.info/scans/en/le/119.jpg -Oracle:Trample\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) +Name:Brontotherium +ManaCost:4 G G +Types:Creature Beast +Text:no text +PT:5/3 +K:Trample +K:Provoke +SVar:Rarity:Uncommon +SVar:Picture:http://www.wizards.com/global/images/magic/general/brontotherium.jpg +SetInfo:LGN|Uncommon|http://magiccards.info/scans/en/le/119.jpg +Oracle:Trample\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) End \ No newline at end of file diff --git a/res/cardsfolder/c/crested_craghorn.txt b/res/cardsfolder/c/crested_craghorn.txt index fb11d36fcf6..ce8cc3ce964 100644 --- a/res/cardsfolder/c/crested_craghorn.txt +++ b/res/cardsfolder/c/crested_craghorn.txt @@ -1,13 +1,13 @@ -Name:Crested Craghorn -ManaCost:4 R -Types:Creature Goat Beast -Text:no text -PT:4/1 -K:Haste -K:Provoke -SVar:RemAIDeck:True -SVar:Rarity:Common -SVar:Picture:http://www.wizards.com/global/images/magic/general/crested_craghorn.jpg -SetInfo:LGN|Common|http://magiccards.info/scans/en/le/91.jpg -Oracle:Haste\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) +Name:Crested Craghorn +ManaCost:4 R +Types:Creature Goat Beast +Text:no text +PT:4/1 +K:Haste +K:Provoke +SVar:RemAIDeck:True +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/crested_craghorn.jpg +SetInfo:LGN|Common|http://magiccards.info/scans/en/le/91.jpg +Oracle:Haste\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) End \ No newline at end of file diff --git a/res/cardsfolder/k/krosan_vorine.txt b/res/cardsfolder/k/krosan_vorine.txt index 38b5323ff44..387fec070cd 100644 --- a/res/cardsfolder/k/krosan_vorine.txt +++ b/res/cardsfolder/k/krosan_vorine.txt @@ -5,7 +5,6 @@ Text:no text PT:3/2 K:Provoke K:CARDNAME can't be blocked by more than one creature. -SVar:RemAIDeck:True SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/krosan_vorine.jpg SetInfo:LGN|Common|http://magiccards.info/scans/en/le/131.jpg diff --git a/res/cardsfolder/l/lowland_tracker.txt b/res/cardsfolder/l/lowland_tracker.txt index 70a92013560..a34c8ca3a8d 100644 --- a/res/cardsfolder/l/lowland_tracker.txt +++ b/res/cardsfolder/l/lowland_tracker.txt @@ -1,13 +1,12 @@ -Name:Lowland Tracker -ManaCost:4 W -Types:Creature Human Soldier -Text:no text -PT:2/2 -K:First Strike -K:Provoke -SVar:RemAIDeck:True -SVar:Rarity:Common -SVar:Picture:http://www.wizards.com/global/images/magic/general/lowland_tracker.jpg -SetInfo:LGN|Common|http://magiccards.info/scans/en/le/17.jpg -Oracle:First strike\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) +Name:Lowland Tracker +ManaCost:4 W +Types:Creature Human Soldier +Text:no text +PT:2/2 +K:First Strike +K:Provoke +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/lowland_tracker.jpg +SetInfo:LGN|Common|http://magiccards.info/scans/en/le/17.jpg +Oracle:First strike\nProvoke (When this attacks, you may have target creature defending player controls untap and block it if able.) End \ No newline at end of file diff --git a/src/main/java/forge/CombatUtil.java b/src/main/java/forge/CombatUtil.java index 6902ee0ec16..daddc4f0303 100644 --- a/src/main/java/forge/CombatUtil.java +++ b/src/main/java/forge/CombatUtil.java @@ -285,11 +285,11 @@ public class CombatUtil { attackersWithLure = attackersWithLure.getKeyword("All creatures able to block CARDNAME do so."); for (Card attacker : attackersWithLure) { - if (canBlock(blocker, combat) && canBlock(attacker, blocker)) return true; + if (canBeBlocked(attacker, combat) && canBlock(attacker, blocker)) return true; } for (Card attacker : blocker.getMustBlockCards()) { - if (canBlock(blocker, combat) && canBlock(attacker, blocker)) return true; + if (canBeBlocked(attacker, combat) && canBlock(attacker, blocker)) return true; } return false; diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory_Combat.java b/src/main/java/forge/card/abilityFactory/AbilityFactory_Combat.java index 3fd8da5b8aa..1508122c171 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory_Combat.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory_Combat.java @@ -874,7 +874,7 @@ public final class AbilityFactory_Combat { if (blocker == null) return false; abTgt.addTarget(CardFactoryUtil.AI_getBestCreature(list)); - chance = false; //TODO:change this to true, once the human input takes mustblocks into account + chance = true; //TODO:change this to true, once the human input takes mustblocks into account } } else return false; diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory_PermanentState.java b/src/main/java/forge/card/abilityFactory/AbilityFactory_PermanentState.java index 178f8519dfb..ecd564b0448 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory_PermanentState.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory_PermanentState.java @@ -226,7 +226,7 @@ public class AbilityFactory_PermanentState { // TODO: use Defined to determine, if this is an unfavorable result ArrayList pDefined = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("Defined"), sa); - if (pDefined != null && pDefined.get(0).isUntapped()) + if (pDefined != null && pDefined.get(0).isUntapped() && pDefined.get(0).getController().isComputer()) return false; return true; diff --git a/src/main/java/forge/gui/game/CardDetailPanel.java b/src/main/java/forge/gui/game/CardDetailPanel.java index 1173b9a74ea..e8d9cda3bdb 100644 --- a/src/main/java/forge/gui/game/CardDetailPanel.java +++ b/src/main/java/forge/gui/game/CardDetailPanel.java @@ -340,6 +340,12 @@ public class CardDetailPanel extends JPanel implements CardContainer { if (area.length() != 0) area.append("\n"); area.append("This card can't be cast."); } + + //must block + if (!card.getMustBlockCards().isEmpty()) { + if (area.length() != 0) area.append("\n"); + area.append("Must block an attacker"); + } if (card.hasAttachedCardsByMindsDesire()) { if (area.length() != 0) area.append("\n");