order attackes and blockers moved to PlayerController

This commit is contained in:
Maxmtg
2013-03-07 09:00:43 +00:00
parent 8b08ac5e78
commit 3c017f36d8
4 changed files with 30 additions and 30 deletions

View File

@@ -49,7 +49,6 @@ import forge.game.GameActionUtil;
import forge.game.GameState;
import forge.game.GlobalRuleChange;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilBlock;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCost;
import forge.game.player.AIPlayer;
@@ -58,7 +57,6 @@ import forge.game.zone.PlayerZone;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
import forge.gui.GuiDialog;
import forge.gui.GuiUtils;
import forge.gui.framework.EDocID;
import forge.gui.framework.SDisplayUtil;
import forge.gui.match.views.VCombat;
@@ -432,21 +430,8 @@ public class CombatUtil {
if (blockers.size() <= 1) {
continue;
}
List<Card> orderedBlockers = null;
if (player.isHuman()) {
GuiUtils.setPanelSelection(attacker);
List<Card> ordered = GuiChoose.order("Choose Blocking Order", "Damaged First", 0, blockers, null, attacker);
orderedBlockers = new ArrayList<Card>();
for (Object o : ordered) {
orderedBlockers.add((Card) o);
}
}
else {
orderedBlockers = ComputerUtilBlock.orderBlockers(attacker, blockers);
}
combat.setBlockerList(attacker, orderedBlockers);
List<Card> orderedBlockers = player.getController().orderBlockers(attacker, blockers);
combat.setBlockerList(attacker, orderedBlockers);
}
CombatUtil.showCombat();
// Refresh Combat Panel
@@ -460,19 +445,7 @@ public class CombatUtil {
continue;
}
List<Card> orderedAttacker = null;
if (blocker.getController().isHuman()) {
GuiUtils.setPanelSelection(blocker);
List<Card> ordered = GuiChoose.order("Choose Blocking Order", "Damaged First", 0, attackers, null, blocker);
orderedAttacker = new ArrayList<Card>();
for (Object o : ordered) {
orderedAttacker.add((Card) o);
}
}
else {
orderedAttacker = ComputerUtilBlock.orderAttackers(blocker, attackers);
}
List<Card> orderedAttacker = blocker.getController().getController().orderAttackers(blocker, attackers);
combat.setAttackersBlockedByList(blocker, orderedAttacker);
}
CombatUtil.showCombat();

View File

@@ -97,4 +97,7 @@ public abstract class PlayerController {
public abstract boolean confirmAction(SpellAbility sa, String mode, String message);
public abstract boolean getWillPlayOnFirstTurn(String message);
public abstract boolean confirmStaticApplication(Card hostCard, GameEntity affected, String logic, String message);
public abstract List<Card> orderBlockers(Card attacker, List<Card> blockers);
public abstract List<Card> orderAttackers(Card blocker, List<Card> attackers);
}

View File

@@ -15,6 +15,7 @@ import forge.game.ai.AiController;
import forge.game.ai.AiInputBlock;
import forge.game.ai.AiInputCommon;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilBlock;
import forge.game.ai.ComputerUtilCombat;
import forge.gui.GuiChoose;
@@ -208,4 +209,14 @@ public class PlayerControllerAi extends PlayerController {
return brains.confirmStaticApplication(hostCard, affected, logic, message);
}
@Override
public List<Card> orderBlockers(Card attacker, List<Card> blockers) {
return ComputerUtilBlock.orderBlockers(attacker, blockers);
}
@Override
public List<Card> orderAttackers(Card blocker, List<Card> attackers) {
return ComputerUtilBlock.orderAttackers(blocker, attackers);
}
}

View File

@@ -22,6 +22,7 @@ import forge.game.GameType;
import forge.game.phase.PhaseType;
import forge.gui.GuiChoose;
import forge.gui.GuiDialog;
import forge.gui.GuiUtils;
import forge.gui.match.CMatchUI;
import forge.item.CardPrinted;
@@ -260,4 +261,16 @@ public class PlayerControllerHuman extends PlayerController {
return !playDraw.equals(1);
}
@Override
public List<Card> orderBlockers(Card attacker, List<Card> blockers) {
GuiUtils.setPanelSelection(attacker);
return GuiChoose.order("Choose Blocking Order", "Damaged First", 0, blockers, null, attacker);
}
@Override
public List<Card> orderAttackers(Card blocker, List<Card> attackers) {
GuiUtils.setPanelSelection(blocker);
return GuiChoose.order("Choose Blocking Order", "Damaged First", 0, attackers, null, blocker);
}
}