From c6e4df60badcfa7daf6caa68d288bf98bd8e9784 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Thu, 12 Sep 2013 12:50:14 +0200 Subject: [PATCH] Fixed possible NPE during handling of choosing start player (Fixes #317). --- Mage/src/mage/game/GameImpl.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index c81a37fe3b8..acf8d8d9179 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -624,22 +624,21 @@ public abstract class GameImpl> implements Game, Serializa TargetPlayer targetPlayer = new TargetPlayer(); targetPlayer.setRequired(true); targetPlayer.setTargetName("starting player"); - Player choosingPlayer; - if (choosingPlayerId == null) { - choosingPlayer = getPlayer(pickChoosingPlayer()); - } - else { + Player choosingPlayer = null; + if (choosingPlayerId != null) { choosingPlayer = this.getPlayer(choosingPlayerId); } - if (choosingPlayer.choose(Outcome.Benefit, targetPlayer, null, this)) { + if (choosingPlayer == null) { + choosingPlayer = getPlayer(pickChoosingPlayer()); + } + if (choosingPlayer != null && choosingPlayer.choose(Outcome.Benefit, targetPlayer, null, this)) { startingPlayerId = ((List)targetPlayer.getTargets()).get(0); fireInformEvent(state.getPlayer(startingPlayerId).getName() + " will start"); - } - else { + } else { + // not possible to choose starting player, stop here return; } - //saveState(); //20091005 - 103.3 for (UUID playerId: state.getPlayerList(startingPlayerId)) {