mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Fixed potential NPE errors in getPhase usage (fixed Berserker's Frenzy, etc)
This commit is contained in:
parent
cfd7464b49
commit
a15a0daa04
81 changed files with 162 additions and 130 deletions
|
|
@ -248,7 +248,7 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
}
|
||||
val = minimaxAB(node, depth - 1, alpha, beta);
|
||||
} else {
|
||||
logger.trace("Add Action -- alpha: " + alpha + " beta: " + beta + " depth:" + depth + " step:" + game.getTurn().getStepType() + " for player:" + game.getPlayer(game.getActivePlayerId()).getName());
|
||||
logger.trace("Add Action -- alpha: " + alpha + " beta: " + beta + " depth:" + depth + " step:" + game.getTurnStepType() + " for player:" + game.getPlayer(game.getActivePlayerId()).getName());
|
||||
if (allPassed(game)) {
|
||||
if (!game.getStack().isEmpty()) {
|
||||
resolve(node, depth, game);
|
||||
|
|
@ -291,7 +291,7 @@ public class ComputerPlayer6 extends ComputerPlayer /*implements Player*/ {
|
|||
}
|
||||
}
|
||||
node.setScore(val);
|
||||
logger.trace("returning -- score: " + val + " depth:" + depth + " step:" + game.getTurn().getStepType() + " for player:" + game.getPlayer(node.getPlayerId()).getName());
|
||||
logger.trace("returning -- score: " + val + " depth:" + depth + " step:" + game.getTurnStepType() + " for player:" + game.getPlayer(node.getPlayerId()).getName());
|
||||
return val;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ public class ComputerPlayer7 extends ComputerPlayer6 {
|
|||
logger.info("======================= Turn: " + game.getTurnNum() + " [" + game.getPlayer(game.getActivePlayerId()).getName() + "] =========================================");
|
||||
}
|
||||
logState(game);
|
||||
logger.debug("Priority -- Step: " + (game.getTurn().getStepType() + " ").substring(0, 25) + " ActivePlayer-" + game.getPlayer(game.getActivePlayerId()).getName() + " PriorityPlayer-" + name);
|
||||
logger.debug("Priority -- Step: " + (game.getTurnStepType() + " ").substring(0, 25) + " ActivePlayer-" + game.getPlayer(game.getActivePlayerId()).getName() + " PriorityPlayer-" + name);
|
||||
game.getState().setPriorityPlayerId(playerId);
|
||||
game.firePriorityEvent(playerId);
|
||||
switch (game.getTurn().getStepType()) {
|
||||
switch (game.getTurnStepType()) {
|
||||
case UPKEEP:
|
||||
case DRAW:
|
||||
pass(game);
|
||||
|
|
|
|||
|
|
@ -1266,7 +1266,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
if (game.isMainPhase() && game.getStack().isEmpty()) {
|
||||
playLand(game);
|
||||
}
|
||||
switch (game.getTurn().getStepType()) {
|
||||
switch (game.getTurnStepType()) {
|
||||
case UPKEEP:
|
||||
findPlayables(game);
|
||||
break;
|
||||
|
|
@ -1331,7 +1331,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
}
|
||||
} else {
|
||||
//respond to opponent events
|
||||
switch (game.getTurn().getStepType()) {
|
||||
switch (game.getTurnStepType()) {
|
||||
case UPKEEP:
|
||||
findPlayables(game);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
|
||||
@Override
|
||||
public boolean priority(Game game) {
|
||||
if (game.getStep().getType() == PhaseStep.UPKEEP) {
|
||||
if (game.getTurnStepType() == PhaseStep.UPKEEP) {
|
||||
if (!lastPhase.equals(game.getTurn().getValue(game.getTurnNum()))) {
|
||||
logList(game.getTurn().getValue(game.getTurnNum()) + name + " hand: ", new ArrayList(hand.getCards(game)));
|
||||
lastPhase = game.getTurn().getValue(game.getTurnNum());
|
||||
|
|
@ -236,7 +236,7 @@ public class ComputerPlayerMCTS extends ComputerPlayer implements Player {
|
|||
if (root.getNumChildren() > 0)
|
||||
nodeSizeRatio = root.getVisits() / root.getNumChildren();
|
||||
// logger.info("Ratio: " + nodeSizeRatio);
|
||||
PhaseStep curStep = game.getStep().getType();
|
||||
PhaseStep curStep = game.getTurnStepType();
|
||||
if (action == NextAction.SELECT_ATTACKERS || action == NextAction.SELECT_BLOCKERS) {
|
||||
if (nodeSizeRatio < THINK_MIN_RATIO) {
|
||||
thinkTime = maxThinkTime;
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class MCTSNode {
|
|||
if (game.getStep().getStepPart() == StepPart.PRIORITY) {
|
||||
playerId = game.getPriorityPlayerId();
|
||||
} else {
|
||||
if (game.getStep().getType() == PhaseStep.DECLARE_BLOCKERS) {
|
||||
if (game.getTurnStepType() == PhaseStep.DECLARE_BLOCKERS) {
|
||||
playerId = game.getCombat().getDefenders().iterator().next();
|
||||
} else {
|
||||
playerId = game.getActivePlayerId();
|
||||
|
|
@ -129,7 +129,7 @@ public class MCTSNode {
|
|||
}
|
||||
switch (player.getNextAction()) {
|
||||
case PRIORITY:
|
||||
// logger.info("Priority for player:" + player.getName() + " turn: " + game.getTurnNum() + " phase: " + game.getPhase().getType() + " step: " + game.getStep().getType());
|
||||
// logger.info("Priority for player:" + player.getName() + " turn: " + game.getTurnNum() + " phase: " + game.getTurnPhaseType() + " step: " + game.getTurnStepType());
|
||||
List<Ability> abilities;
|
||||
if (!USE_ACTION_CACHE)
|
||||
abilities = player.getPlayableOptions(game);
|
||||
|
|
|
|||
|
|
@ -1022,7 +1022,7 @@ public class HumanPlayer extends PlayerImpl {
|
|||
boolean quickStop = false;
|
||||
if (isGameUnderControl()) { // TODO: remove to enable quick stop for controlling player
|
||||
// if was attacked - always stop BEFORE blocker step (to cast extra spells)
|
||||
if (game.getTurn().getStepType() == PhaseStep.DECLARE_ATTACKERS
|
||||
if (game.getTurnStepType() == PhaseStep.DECLARE_ATTACKERS
|
||||
&& game.getCombat().getPlayerDefenders(game).contains(playerId)) {
|
||||
FilterCreatureForCombatBlock filter = filterCreatureForCombatBlock.copy();
|
||||
filter.add(new ControllerIdPredicate(playerId));
|
||||
|
|
@ -1044,7 +1044,7 @@ public class HumanPlayer extends PlayerImpl {
|
|||
}
|
||||
|
||||
if (passedUntilEndStepBeforeMyTurn) {
|
||||
if (game.getTurn().getStepType() != PhaseStep.END_TURN) {
|
||||
if (game.getTurnStepType() != PhaseStep.END_TURN) {
|
||||
// other step
|
||||
if (passWithManaPoolCheck(game)) {
|
||||
return false;
|
||||
|
|
@ -1080,8 +1080,8 @@ public class HumanPlayer extends PlayerImpl {
|
|||
}
|
||||
|
||||
if (passedUntilNextMain) {
|
||||
if (game.getTurn().getStepType() == PhaseStep.POSTCOMBAT_MAIN
|
||||
|| game.getTurn().getStepType() == PhaseStep.PRECOMBAT_MAIN) {
|
||||
if (game.getTurnStepType() == PhaseStep.POSTCOMBAT_MAIN
|
||||
|| game.getTurnStepType() == PhaseStep.PRECOMBAT_MAIN) {
|
||||
// it's main step
|
||||
if (!skippedAtLeastOnce
|
||||
|| (!playerId.equals(game.getActivePlayerId())
|
||||
|
|
@ -1103,7 +1103,7 @@ public class HumanPlayer extends PlayerImpl {
|
|||
}
|
||||
|
||||
if (passedUntilEndOfTurn) {
|
||||
if (game.getTurn().getStepType() == PhaseStep.END_TURN) {
|
||||
if (game.getTurnStepType() == PhaseStep.END_TURN) {
|
||||
// it's end of turn step
|
||||
if (!skippedAtLeastOnce
|
||||
|| (playerId.equals(game.getActivePlayerId())
|
||||
|
|
@ -1271,16 +1271,16 @@ public class HumanPlayer extends PlayerImpl {
|
|||
try {
|
||||
|
||||
if (playerId.equals(game.getActivePlayerId())) {
|
||||
return !controllingPlayer.getUserData().getUserSkipPrioritySteps().getYourTurn().isPhaseStepSet(game.getStep().getType());
|
||||
return !controllingPlayer.getUserData().getUserSkipPrioritySteps().getYourTurn().isPhaseStepSet(game.getTurnStepType());
|
||||
} else {
|
||||
return !controllingPlayer.getUserData().getUserSkipPrioritySteps().getOpponentTurn().isPhaseStepSet(game.getStep().getType());
|
||||
return !controllingPlayer.getUserData().getUserSkipPrioritySteps().getOpponentTurn().isPhaseStepSet(game.getTurnStepType());
|
||||
}
|
||||
} catch (NullPointerException ex) {
|
||||
if (controllingPlayer.getUserData() != null) {
|
||||
if (controllingPlayer.getUserData().getUserSkipPrioritySteps() != null) {
|
||||
if (game.getStep() != null) {
|
||||
if (game.getStep().getType() == null) {
|
||||
logger.error("game.getStep().getType() == null");
|
||||
if (game.getTurnStepType() == null) {
|
||||
logger.error("game.getTurnStepType() == null");
|
||||
}
|
||||
} else {
|
||||
logger.error("game.getStep() == null");
|
||||
|
|
@ -2659,7 +2659,7 @@ public class HumanPlayer extends PlayerImpl {
|
|||
}
|
||||
// TODO: chooseUse and other dialogs must be under controlling player
|
||||
if (!chooseUse(Outcome.Detriment, GameLog.getPlayerConfirmColoredText("You still have mana in your mana pool. Pass regardless?")
|
||||
+ GameLog.getSmallSecondLineText(activePlayerText + " / " + game.getStep().getType().toString() + priorityPlayerText), null, game)) {
|
||||
+ GameLog.getSmallSecondLineText(activePlayerText + " / " + game.getTurnStepType().toString() + priorityPlayerText), null, game)) {
|
||||
sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, game, null);
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue