fixed initial turn number (that affects draw on 1st turn)

This commit is contained in:
Maxmtg
2013-03-07 19:09:57 +00:00
parent ff3652c766
commit 0496dca705
3 changed files with 18 additions and 25 deletions

View File

@@ -53,8 +53,8 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
private static final long serialVersionUID = 5207222278370963197L; private static final long serialVersionUID = 5207222278370963197L;
private PhaseType phase = PhaseType.UNTAP; private PhaseType phase = PhaseType.UNTAP;
private int turn = 0; private int turn = 1;
// Start turn at 0, so first untap step will turn it to 1 // Start turn at 1, since first untap is where we start
private final transient Stack<ExtraTurn> extraTurns = new Stack<ExtraTurn>(); private final transient Stack<ExtraTurn> extraTurns = new Stack<ExtraTurn>();
private final transient Map<PhaseType, Stack<PhaseType>> extraPhases = new HashMap<PhaseType, Stack<PhaseType>>(); private final transient Map<PhaseType, Stack<PhaseType>> extraPhases = new HashMap<PhaseType, Stack<PhaseType>>();
@@ -262,7 +262,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
break; break;
case DRAW: case DRAW:
if (getTurn() == 1 || PhaseUtil.skipDraw(this.getPlayerTurn())) { if (getTurn() == 1 || this.getPlayerTurn().isSkippingDraw()) {
this.setPlayersPriorityPermission(false); this.setPlayersPriorityPermission(false);
} else { } else {
this.getPlayerTurn().drawCards(1, true); this.getPlayerTurn().drawCards(1, true);

View File

@@ -114,28 +114,7 @@ public class PhaseUtil {
game.getPhaseHandler().setPlayersPriorityPermission(false); game.getPhaseHandler().setPlayersPriorityPermission(false);
} }
/**
* <p>
* skipDraw.
* </p>
*
* @param player
* a {@link forge.game.player.Player} object.
* @return a boolean.
*/
public static boolean skipDraw(final Player player) {
if (player.hasKeyword("Skip your next draw step.")) {
player.removeKeyword("Skip your next draw step.");
return true;
}
if (player.hasKeyword("Skip your draw step.")) {
return true;
}
return false;
}
// ********* Declare Attackers *********** // ********* Declare Attackers ***********

View File

@@ -3242,6 +3242,20 @@ public abstract class Player extends GameEntity implements Comparable<Player> {
game.getStack().add(miracleTrigger); game.getStack().add(miracleTrigger);
} }
public boolean isSkippingDraw() {
if (hasKeyword("Skip your next draw step.")) {
removeKeyword("Skip your next draw step.");
return true;
}
if (hasKeyword("Skip your draw step.")) {
return true;
}
return false;
}
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *