mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
order attackes and blockers moved to PlayerController
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user