* Order of Succession - Fixed possible exception error.

This commit is contained in:
LevelX2 2018-01-07 22:23:41 +01:00
parent 423e3847a8
commit 6de177f8ac

View file

@ -58,8 +58,7 @@ import mage.target.targetpointer.FixedTarget;
public class OrderOfSuccession extends CardImpl {
public OrderOfSuccession(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{U}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}");
// Choose left or right. Starting with you and proceeding in the chosen direction, each player chooses a creature controlled by the next player in that direction. Each player gains control of the creature he or she chose.
this.getSpellAbility().addEffect(new OrderOfSuccessionEffect());
@ -98,7 +97,7 @@ class OrderOfSuccessionEffect extends OneShotEffect {
Map<UUID, UUID> playerCreature = new HashMap<>(2);
Choice choice = new ChoiceLeftOrRight();
controller.choose(Outcome.Neutral, choice, game);
boolean left = choice.getChoice().equals("Left");
boolean left = choice == null || choice.getChoice().equals("Left"); // to prevent npe
PlayerList playerList = game.getState().getPlayerList().copy();
// set playerlist to controller
while (!playerList.get().equals(source.getControllerId()) && controller.canRespond()) {
@ -108,7 +107,7 @@ class OrderOfSuccessionEffect extends OneShotEffect {
Player nextPlayer;
UUID firstNextPlayer = null;
while (!getNextPlayerInDirection(left, playerList, game).equals(firstNextPlayer) && controller.canRespond()){
while (!getNextPlayerInDirection(left, playerList, game).equals(firstNextPlayer) && controller.canRespond()) {
nextPlayer = game.getPlayer(playerList.get());
if (nextPlayer == null) {
return false;