diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index cf5222ae6de..959f6a9952f 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -1877,6 +1877,15 @@ public class Card extends GameEntity implements Comparable { if(this.isCommander) { sb.append(this.getOwner().getName() + "'s Commander\r\n"); + for(Player p : getOwner().getGame().getPlayers()) { + if(p.equals(getOwner())) + continue; + + Map map = p.getCommanderDamage(); + if(map.containsKey(this)) { + sb.append("Damage to " + p.getName() + ": "+ map.get(p) + "\r\n"); + } + } } sb.append(this.getAbilityText()); diff --git a/src/main/java/forge/game/ai/ComputerUtilCombat.java b/src/main/java/forge/game/ai/ComputerUtilCombat.java index 059f549b623..4ade2e15477 100644 --- a/src/main/java/forge/game/ai/ComputerUtilCombat.java +++ b/src/main/java/forge/game/ai/ComputerUtilCombat.java @@ -310,6 +310,25 @@ public class ComputerUtilCombat { for (final Card attacker : attackers) { final List blockers = combat.getBlockers(attacker); + + if(attacker.isCommander()) + { + int possibleCommanderDamage = attacker.getCurrentPower(); + int currentCommanderDamage = ai.getCommanderDamage().containsKey(attacker) ? ai.getCommanderDamage().get(attacker) : 0; + if(blockers.size() > 0) { + if(attacker.getKeyword().contains("Trample")) { + for(Card b : blockers) { + possibleCommanderDamage -= b.getCurrentToughness(); + } + } + else { + possibleCommanderDamage = 0; + } + } + + if(possibleCommanderDamage + currentCommanderDamage >= 21) + return true; + } if (blockers.size() == 0) { if (!attacker.getSVar("MustBeBlocked").equals("")) { diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java index 538df2e5b26..59424935b90 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java @@ -112,9 +112,10 @@ public final class CEditorCommander extends ACEditorBase { if ((item == null) || !(item instanceof PaperCard) || toAlternate) { return; } - if(controller.getModel().getMain().contains((PaperCard)item) + if((controller.getModel().getMain().contains((PaperCard)item) || controller.getModel().getOrCreate(DeckSection.Sideboard).contains((PaperCard)item) - || controller.getModel().getOrCreate(DeckSection.Commander).contains((PaperCard)item)) { + || controller.getModel().getOrCreate(DeckSection.Commander).contains((PaperCard)item)) + && !((PaperCard)item).getRules().getType().isBasic()) { return; }