diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index 9a3375fd2b9..0149ae16909 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -2565,14 +2565,34 @@ public abstract class GameImpl implements Game, Serializable { } } - //Remove all emblems the player controls + //Remove all emblems/plane the player controls + boolean addPlaneAgain = false; for (Iterator it = this.getState().getCommand().iterator(); it.hasNext();) { CommandObject obj = it.next(); if ((obj instanceof Emblem || obj instanceof Plane) && obj.getControllerId().equals(playerId)) { - ((Emblem) obj).discardEffects();// This may not be the best fix but it works + if (obj instanceof Emblem) { + ((Emblem) obj).discardEffects();// This may not be the best fix but it works + } + if (obj instanceof Plane) { + ((Plane) obj).discardEffects(); + // Readd a new one + addPlaneAgain = true; + } it.remove(); } } + + if (addPlaneAgain) { + boolean addedAgain = false; + for (Player aplayer : state.getPlayers().values()) { + if (!aplayer.hasLeft() && !addedAgain) { + addedAgain = true; + Plane plane = Plane.getRandomPlane(); + plane.setControllerId(aplayer.getId()); + addPlane(plane, null, aplayer.getId()); + } + } + } Iterator> it = gameCards.entrySet().iterator();