Merge branch 'DumpTurn' into PriceOfProgress

This commit is contained in:
Seravy
2018-02-14 16:14:22 +01:00
3 changed files with 22 additions and 5 deletions

View File

@@ -82,6 +82,8 @@ public abstract class GameState {
private String precastHuman = null; private String precastHuman = null;
private String precastAI = null; private String precastAI = null;
private int turn;
// Targeting for precast spells in a game state (mostly used by Puzzle Mode game states) // Targeting for precast spells in a game state (mostly used by Puzzle Mode game states)
private final int TARGET_NONE = -1; // untargeted spell (e.g. Joraga Invocation) private final int TARGET_NONE = -1; // untargeted spell (e.g. Joraga Invocation)
private final int TARGET_HUMAN = -2; private final int TARGET_HUMAN = -2;
@@ -110,6 +112,7 @@ public abstract class GameState {
sb.append(TextUtil.concatNoSpace("humanlife=", String.valueOf(humanLife), "\n")); sb.append(TextUtil.concatNoSpace("humanlife=", String.valueOf(humanLife), "\n"));
sb.append(TextUtil.concatNoSpace("ailife=", String.valueOf(computerLife), "\n")); sb.append(TextUtil.concatNoSpace("ailife=", String.valueOf(computerLife), "\n"));
sb.append(TextUtil.concatNoSpace("turn=", String.valueOf(turn), "\n"));
if (!humanCounters.isEmpty()) { if (!humanCounters.isEmpty()) {
sb.append(TextUtil.concatNoSpace("humancounters=", humanCounters, "\n")); sb.append(TextUtil.concatNoSpace("humancounters=", humanCounters, "\n"));
@@ -149,6 +152,7 @@ public abstract class GameState {
tChangePlayer = game.getPhaseHandler().getPlayerTurn() == ai ? "ai" : "human"; tChangePlayer = game.getPhaseHandler().getPlayerTurn() == ai ? "ai" : "human";
tChangePhase = game.getPhaseHandler().getPhase().toString(); tChangePhase = game.getPhaseHandler().getPhase().toString();
turn = game.getPhaseHandler().getTurn();
aiCardTexts.clear(); aiCardTexts.clear();
humanCardTexts.clear(); humanCardTexts.clear();
@@ -392,6 +396,9 @@ public abstract class GameState {
boolean isHuman = categoryName.startsWith("human"); boolean isHuman = categoryName.startsWith("human");
if (categoryName.endsWith("turn")) {
turn = Integer.parseInt(categoryValue);
}
if (categoryName.endsWith("life")) { if (categoryName.endsWith("life")) {
if (isHuman) if (isHuman)
humanLife = Integer.parseInt(categoryValue); humanLife = Integer.parseInt(categoryValue);
@@ -499,7 +506,7 @@ public abstract class GameState {
applyCountersToGameEntity(ai, computerCounters); applyCountersToGameEntity(ai, computerCounters);
} }
game.getPhaseHandler().devModeSet(newPhase, newPlayerTurn); game.getPhaseHandler().devModeSet(newPhase, newPlayerTurn, turn);
game.getTriggerHandler().setSuppressAllTriggers(true); game.getTriggerHandler().setSuppressAllTriggers(true);
@@ -530,7 +537,7 @@ public abstract class GameState {
private void handleCombat(final Game game, final Player attackingPlayer, final Player defendingPlayer, final boolean toDeclareBlockers) { private void handleCombat(final Game game, final Player attackingPlayer, final Player defendingPlayer, final boolean toDeclareBlockers) {
// First we need to ensure that all attackers are declared in the Declare Attackers step, // First we need to ensure that all attackers are declared in the Declare Attackers step,
// even if proceeding straight to Declare Blockers // even if proceeding straight to Declare Blockers
game.getPhaseHandler().devModeSet(PhaseType.COMBAT_DECLARE_ATTACKERS, attackingPlayer); game.getPhaseHandler().devModeSet(PhaseType.COMBAT_DECLARE_ATTACKERS, attackingPlayer, turn);
if (game.getPhaseHandler().getCombat() == null) { if (game.getPhaseHandler().getCombat() == null) {
game.getPhaseHandler().setCombat(new Combat(attackingPlayer)); game.getPhaseHandler().setCombat(new Combat(attackingPlayer));

View File

@@ -98,7 +98,7 @@ public class GameCopier {
PhaseHandler origPhaseHandler = origGame.getPhaseHandler(); PhaseHandler origPhaseHandler = origGame.getPhaseHandler();
Player newPlayerTurn = playerMap.get(origPhaseHandler.getPlayerTurn()); Player newPlayerTurn = playerMap.get(origPhaseHandler.getPlayerTurn());
newGame.getPhaseHandler().devModeSet(origPhaseHandler.getPhase(), newPlayerTurn); newGame.getPhaseHandler().devModeSet(origPhaseHandler.getPhase(), newPlayerTurn, origPhaseHandler.getTurn());
newGame.getTriggerHandler().suppressMode(TriggerType.ChangesZone); newGame.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
for (Player p : newGame.getPlayers()) { for (Player p : newGame.getPlayers()) {
((PlayerZoneBattlefield) p.getZone(ZoneType.Battlefield)).setTriggers(false); ((PlayerZoneBattlefield) p.getZone(ZoneType.Battlefield)).setTriggers(false);

View File

@@ -1054,13 +1054,14 @@ public class PhaseHandler implements java.io.Serializable {
// this is a hack for the setup game state mode, do not use outside of devSetupGameState code // this is a hack for the setup game state mode, do not use outside of devSetupGameState code
// as it avoids calling any of the phase effects that may be necessary in a less enforced context // as it avoids calling any of the phase effects that may be necessary in a less enforced context
public final void devModeSet(final PhaseType phase0, final Player player0, boolean endCombat) { public final void devModeSet(final PhaseType phase0, final Player player0, boolean endCombat, int cturn) {
if (phase0 != null) { if (phase0 != null) {
setPhase(phase0); setPhase(phase0);
} }
if (player0 != null) { if (player0 != null) {
setPlayerTurn(player0); setPlayerTurn(player0);
} }
turn = cturn;
game.fireEvent(new GameEventTurnPhase(playerTurn, phase, "")); game.fireEvent(new GameEventTurnPhase(playerTurn, phase, ""));
if (endCombat) { if (endCombat) {
@@ -1068,9 +1069,18 @@ public class PhaseHandler implements java.io.Serializable {
} }
} }
public final void devModeSet(final PhaseType phase0, final Player player0) { public final void devModeSet(final PhaseType phase0, final Player player0) {
devModeSet(phase0, player0, true); devModeSet(phase0, player0, true, 1);
} }
public final void devModeSet(final PhaseType phase0, final Player player0, int cturn) {
devModeSet(phase0, player0, true, cturn);
}
public final void devModeSet(final PhaseType phase0, final Player player0, boolean endCombat) {
devModeSet(phase0, player0, endCombat, 0);
}
public final void endTurnByEffect() { public final void endTurnByEffect() {
endCombat(); endCombat();
extraPhases.clear(); extraPhases.clear();