mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48: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.GameState;
|
||||||
import forge.game.GlobalRuleChange;
|
import forge.game.GlobalRuleChange;
|
||||||
import forge.game.ai.ComputerUtil;
|
import forge.game.ai.ComputerUtil;
|
||||||
import forge.game.ai.ComputerUtilBlock;
|
|
||||||
import forge.game.ai.ComputerUtilCard;
|
import forge.game.ai.ComputerUtilCard;
|
||||||
import forge.game.ai.ComputerUtilCost;
|
import forge.game.ai.ComputerUtilCost;
|
||||||
import forge.game.player.AIPlayer;
|
import forge.game.player.AIPlayer;
|
||||||
@@ -58,7 +57,6 @@ import forge.game.zone.PlayerZone;
|
|||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
import forge.gui.GuiDialog;
|
import forge.gui.GuiDialog;
|
||||||
import forge.gui.GuiUtils;
|
|
||||||
import forge.gui.framework.EDocID;
|
import forge.gui.framework.EDocID;
|
||||||
import forge.gui.framework.SDisplayUtil;
|
import forge.gui.framework.SDisplayUtil;
|
||||||
import forge.gui.match.views.VCombat;
|
import forge.gui.match.views.VCombat;
|
||||||
@@ -432,20 +430,7 @@ public class CombatUtil {
|
|||||||
if (blockers.size() <= 1) {
|
if (blockers.size() <= 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
List<Card> orderedBlockers = player.getController().orderBlockers(attacker, blockers);
|
||||||
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);
|
combat.setBlockerList(attacker, orderedBlockers);
|
||||||
}
|
}
|
||||||
CombatUtil.showCombat();
|
CombatUtil.showCombat();
|
||||||
@@ -460,19 +445,7 @@ public class CombatUtil {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Card> orderedAttacker = null;
|
List<Card> orderedAttacker = blocker.getController().getController().orderAttackers(blocker, attackers);
|
||||||
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);
|
|
||||||
}
|
|
||||||
combat.setAttackersBlockedByList(blocker, orderedAttacker);
|
combat.setAttackersBlockedByList(blocker, orderedAttacker);
|
||||||
}
|
}
|
||||||
CombatUtil.showCombat();
|
CombatUtil.showCombat();
|
||||||
|
|||||||
@@ -97,4 +97,7 @@ public abstract class PlayerController {
|
|||||||
public abstract boolean confirmAction(SpellAbility sa, String mode, String message);
|
public abstract boolean confirmAction(SpellAbility sa, String mode, String message);
|
||||||
public abstract boolean getWillPlayOnFirstTurn(String message);
|
public abstract boolean getWillPlayOnFirstTurn(String message);
|
||||||
public abstract boolean confirmStaticApplication(Card hostCard, GameEntity affected, String logic, 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.AiInputBlock;
|
||||||
import forge.game.ai.AiInputCommon;
|
import forge.game.ai.AiInputCommon;
|
||||||
import forge.game.ai.ComputerUtil;
|
import forge.game.ai.ComputerUtil;
|
||||||
|
import forge.game.ai.ComputerUtilBlock;
|
||||||
import forge.game.ai.ComputerUtilCombat;
|
import forge.game.ai.ComputerUtilCombat;
|
||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
|
|
||||||
@@ -208,4 +209,14 @@ public class PlayerControllerAi extends PlayerController {
|
|||||||
return brains.confirmStaticApplication(hostCard, affected, logic, message);
|
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.game.phase.PhaseType;
|
||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
import forge.gui.GuiDialog;
|
import forge.gui.GuiDialog;
|
||||||
|
import forge.gui.GuiUtils;
|
||||||
import forge.gui.match.CMatchUI;
|
import forge.gui.match.CMatchUI;
|
||||||
import forge.item.CardPrinted;
|
import forge.item.CardPrinted;
|
||||||
|
|
||||||
@@ -260,4 +261,16 @@ public class PlayerControllerHuman extends PlayerController {
|
|||||||
|
|
||||||
return !playDraw.equals(1);
|
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