();
- runParams.put("Phase", phase.Name);
- runParams.put("Player", turn);
+ runParams.put("Phase", this.getPhase().Name);
+ runParams.put("Player", this.getPlayerTurn());
game.getTriggerHandler().runTrigger(TriggerType.Phase, runParams);
}
@@ -450,7 +460,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
game.getStack().unfreezeStack();
// UNTAP
- if (phase != PhaseType.UNTAP) {
+ if (this.getPhase() != PhaseType.UNTAP) {
// during untap
this.resetPriority();
}
@@ -502,7 +512,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
this.bCombat = false;
}
- if (this.phaseIndex == PhaseType.CLEANUP.Index) {
+ if (this.phase == PhaseType.CLEANUP) {
this.bPreventCombatDamageThisTurn = false;
if (!this.bRepeat) {
this.setPlayerTurn(this.handleNextTurn());
@@ -526,11 +536,10 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
game.getCombat().reset();
game.getCombat().setAttackingPlayer(player);
game.getCombat().setDefendingPlayer(opp);
- this.phaseIndex = PhaseType.COMBAT_DECLARE_ATTACKERS.Index;
+ this.phase = PhaseType.COMBAT_DECLARE_ATTACKERS;
} else {
if (!this.bRepeat) { // for when Cleanup needs to repeat itself
- this.phaseIndex++;
- this.phaseIndex %= PhaseType.values().length;
+ this.phase = phase.getNextPhase();
} else {
this.bRepeat = false;
}
@@ -594,7 +603,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
* @return a {@link forge.game.player.Player} object.
*/
private Player getNextActivePlayer() {
- Player nextTurn = this.getPlayerTurn().getOpponent();
+ Player nextTurn = game.getNextPlayerAfter(this.getPlayerTurn());
if (!this.extraTurns.isEmpty()) {
ExtraTurn extraTurn = this.extraTurns.pop();
nextTurn = extraTurn.getPlayer();
@@ -669,8 +678,8 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
* a {@link java.lang.String} object.
* @return a boolean.
*/
- public final synchronized boolean is(final PhaseType phase) {
- return this.getPhase() == phase;
+ public final synchronized boolean is(final PhaseType phase0) {
+ return this.getPhase() == phase0;
}
/**
@@ -681,7 +690,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
* @return a {@link java.lang.String} object.
*/
public final PhaseType getPhase() {
- return PhaseType.getByIndex(this.phaseIndex);
+ return phase;
}
/**
@@ -704,7 +713,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
*/
public final Player getNextTurn() {
if (this.extraTurns.isEmpty()) {
- return this.getPlayerTurn().getOpponent();
+ return game.getNextPlayerAfter(this.getPlayerTurn());
}
return this.extraTurns.peek().getPlayer();
@@ -736,35 +745,12 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
// use a stack to handle extra turns, make sure the bottom of the stack
// restores original turn order
if (this.extraTurns.isEmpty()) {
- this.extraTurns.push(new ExtraTurn(this.getPlayerTurn().getOpponent()));
+ this.extraTurns.push(new ExtraTurn(game.getNextPlayerAfter(this.getPlayerTurn())));
}
return this.extraTurns.push(new ExtraTurn(player));
}
- /**
- *
- * skipTurn.
- *
- *
- * @param player
- * a {@link forge.game.player.Player} object.
- */
- public final void skipTurn(final Player player) {
- // skipping turn without having extras is equivalent to giving your
- // opponent an extra turn
- boolean skipped = false;
- for (ExtraTurn turn : this.extraTurns) {
- if (turn.getPlayer().equals(player)) {
- this.extraTurns.remove(turn);
- skipped = true;
- break;
- }
- }
- if (!skipped) {
- this.addExtraTurn(player.getOpponent());
- }
- }
/**
*
@@ -831,7 +817,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
if (firstAction.equals(actingPlayer)) {
// pass the priority to other player
- this.setPriorityPlayer(actingPlayer.getOpponent());
+ this.setPriorityPlayer(game.getNextPlayerAfter(actingPlayer));
Singletons.getModel().getMatch().getInput().resetInput();
game.getStack().chooseOrderOfSimultaneousStackEntryAll();
} else {
@@ -929,8 +915,8 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
* @param phase
* a {@link java.forge.game.phase.PhaseType} object.
*/
- public final void setDevPhaseState(final PhaseType phase) {
- this.phaseIndex = phase.Index;
+ public final void setDevPhaseState(final PhaseType phase0) {
+ this.phase = phase0;
}
/**
@@ -938,8 +924,8 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
*
* @param phaseID the new phase state
*/
- public final void setPhaseState(final PhaseType phaseID) {
- this.phaseIndex = phaseID.Index;
+ public final void setPhaseState(final PhaseType phase0) {
+ this.phase = phase0;
this.handleBeginPhase();
}
diff --git a/src/main/java/forge/game/phase/PhaseType.java b/src/main/java/forge/game/phase/PhaseType.java
index 46828e2f3aa..a77af5fb889 100644
--- a/src/main/java/forge/game/phase/PhaseType.java
+++ b/src/main/java/forge/game/phase/PhaseType.java
@@ -1,57 +1,55 @@
package forge.game.phase;
-import java.security.InvalidParameterException;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
public enum PhaseType {
- UNTAP("Untap", 0),
- UPKEEP("Upkeep", 1),
- DRAW("Draw", 2),
- MAIN1("Main1", 3),
- COMBAT_BEGIN("BeginCombat", 4),
- COMBAT_DECLARE_ATTACKERS("Declare Attackers", 5),
- COMBAT_DECLARE_ATTACKERS_INSTANT_ABILITY("Declare Attackers - Play Instants and Abilities", 6),
- COMBAT_DECLARE_BLOCKERS("Declare Blockers", 7),
- COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY("Declare Blockers - Play Instants and Abilities", 8),
- COMBAT_FIRST_STRIKE_DAMAGE("First Strike Damage", 9),
- COMBAT_DAMAGE("Combat Damage", 10),
- COMBAT_END("EndCombat", 11),
- MAIN2("Main2", 12),
- END_OF_TURN("End of Turn", 13),
- CLEANUP("Cleanup", 14);
+ UNTAP("Untap"),
+ UPKEEP("Upkeep"),
+ DRAW("Draw"),
+ MAIN1("Main1"),
+ COMBAT_BEGIN("BeginCombat"),
+ COMBAT_DECLARE_ATTACKERS("Declare Attackers"),
+ COMBAT_DECLARE_ATTACKERS_INSTANT_ABILITY("Declare Attackers - Play Instants and Abilities"),
+ COMBAT_DECLARE_BLOCKERS("Declare Blockers"),
+ COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY("Declare Blockers - Play Instants and Abilities"),
+ COMBAT_FIRST_STRIKE_DAMAGE("First Strike Damage"),
+ COMBAT_DAMAGE("Combat Damage"),
+ COMBAT_END("EndCombat"),
+ MAIN2("Main2"),
+ END_OF_TURN("End of Turn"),
+ CLEANUP("Cleanup");
+
+ public static final List ALL_PHASES = Collections.unmodifiableList(
+ Arrays.asList(
+ UNTAP, UPKEEP, DRAW, MAIN1,
+ COMBAT_BEGIN, COMBAT_DECLARE_ATTACKERS, COMBAT_DECLARE_ATTACKERS_INSTANT_ABILITY,
+ COMBAT_DECLARE_BLOCKERS, COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY,
+ COMBAT_FIRST_STRIKE_DAMAGE, COMBAT_DAMAGE, COMBAT_END,
+ MAIN2, END_OF_TURN, CLEANUP
+ )
+ );
public final String Name;
- public final int Index;
- private PhaseType(String name, int index) {
+ private PhaseType(String name) {
Name = name;
- Index = index;
- }
-
- public static PhaseType getByIndex(int idx) {
- for (PhaseType ph : PhaseType.values()) {
-
- if (ph.Index == idx) {
- return ph;
- }
- }
- throw new InvalidParameterException("No PhaseType found with index " + idx);
}
public final boolean isAfter(final PhaseType phase) {
- return this.Index > phase.Index;
+ return ALL_PHASES.indexOf(this) > ALL_PHASES.indexOf(phase);
}
public final boolean isMain() {
return this == MAIN1 || this == MAIN2;
}
-
public final boolean isBefore(final PhaseType phase) {
- return this.Index < phase.Index;
+ return ALL_PHASES.indexOf(this) < ALL_PHASES.indexOf(phase);
}
public static PhaseType smartValueOf(final String value) {
@@ -91,8 +89,10 @@ public enum PhaseType {
PhaseType from = PhaseType.smartValueOf(s.substring(0, idxArrow));
String sTo = s.substring(idxArrow + 2);
PhaseType to = StringUtils.isBlank(sTo) ? PhaseType.CLEANUP : PhaseType.smartValueOf(sTo);
- for (int i = from.Index; i <= to.Index; i++) {
- result.add(PhaseType.getByIndex(i));
+ int iFrom = ALL_PHASES.indexOf(from);
+ int iTo = ALL_PHASES.indexOf(to);
+ for (int i = iFrom; i <= iTo; i++) {
+ result.add(ALL_PHASES.get(i));
}
}
else {
@@ -101,4 +101,15 @@ public enum PhaseType {
}
return result;
}
+
+ /**
+ * TODO: Write javadoc for this method.
+ * @return
+ */
+ public PhaseType getNextPhase() {
+ int iNext = ALL_PHASES.indexOf(this) + 1;
+ while ( iNext >= ALL_PHASES.size() )
+ iNext = 0;
+ return ALL_PHASES.get(iNext);
+ }
}
diff --git a/src/main/java/forge/game/phase/PhaseUtil.java b/src/main/java/forge/game/phase/PhaseUtil.java
index 0711c918e3f..d7a0a3d0f9b 100644
--- a/src/main/java/forge/game/phase/PhaseUtil.java
+++ b/src/main/java/forge/game/phase/PhaseUtil.java
@@ -28,13 +28,13 @@ import forge.CardLists;
import forge.CardPredicates.Presets;
import forge.Singletons;
import forge.card.trigger.TriggerType;
+import forge.game.GameState;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.match.CMatchUI;
import forge.gui.match.controllers.CMessage;
import forge.gui.match.nonsingleton.VField.PhaseLabel;
-
/**
*
* PhaseUtil class.
@@ -64,7 +64,8 @@ public class PhaseUtil {
return true;
}
- if (Singletons.getModel().getGame().isCardInPlay("Sands of Time") || Singletons.getModel().getGame().isCardInPlay("Stasis")) {
+ if (Singletons.getModel().getGame().isCardInPlay("Sands of Time")
+ || Singletons.getModel().getGame().isCardInPlay("Stasis")) {
return true;
}
@@ -81,18 +82,18 @@ public class PhaseUtil {
* handleUntap.
*
*/
- public static void handleUntap() {
- final PhaseHandler ph = Singletons.getModel().getGame().getPhaseHandler();
+ public static void handleUntap(GameState game) {
+ final PhaseHandler ph = game.getPhaseHandler();
final Player turn = ph.getPlayerTurn();
- Singletons.getModel().getGame().notifyNextTurn();
CMessage.SINGLETON_INSTANCE.updateGameInfo(Singletons.getModel().getMatch());
- Singletons.getModel().getGame().getCombat().reset();
- Singletons.getModel().getGame().getCombat().setAttackingPlayer(turn);
- Singletons.getModel().getGame().getCombat().setDefendingPlayer(turn.getOpponent());
+ game.getCombat().reset();
+ game.getCombat().setAttackingPlayer(turn);
+ game.getCombat().setDefendingPlayer(turn.getOpponent());
- // Tokens starting game in play now actually suffer from Sum. Sickness again
+ // Tokens starting game in play now actually suffer from Sum. Sickness
+ // again
final List list = turn.getCardsIncludePhasingIn(ZoneType.Battlefield);
for (final Card c : list) {
if (turn.getTurn() > 0 || !c.isStartsGameInPlay()) {
@@ -101,7 +102,7 @@ public class PhaseUtil {
}
turn.incrementTurn();
- Singletons.getModel().getGame().getAction().resetActivationsPerTurn();
+ game.getAction().resetActivationsPerTurn();
final List lands = CardLists.filter(turn.getLandsInPlay(), Presets.UNTAPPED);
turn.setNumPowerSurgeLands(lands.size());
@@ -110,39 +111,17 @@ public class PhaseUtil {
// phase is skipped
if (PhaseUtil.skipUntap(turn)) {
- Singletons.getModel().getGame().getPhaseHandler().setNeedToNextPhase(true);
+ game.getPhaseHandler().setNeedToNextPhase(true);
return;
}
- Singletons.getModel().getGame().getUntap().executeUntil(turn);
- Singletons.getModel().getGame().getUntap().executeAt();
+ game.getUntap().executeUntil(turn);
+ game.getUntap().executeAt();
// otherwise land seems to stay tapped when it is really untapped
- //AllZone.getHumanPlayer().getZone(ZoneType.Battlefield).updateObservers();
+ // AllZone.getHumanPlayer().getZone(ZoneType.Battlefield).updateObservers();
- Singletons.getModel().getGame().getPhaseHandler().setNeedToNextPhase(true);
- }
-
- // ******* UPKEEP PHASE *****
- /**
- *
- * handleUpkeep.
- *
- */
- public static void handleUpkeep() {
- final Player turn = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn();
-
- if (PhaseUtil.skipUpkeep()) {
- // Slowtrips all say "on the next turn's upkeep" if there is no
- // upkeep next turn, the trigger will never occur.
- turn.clearSlowtripList();
- turn.getOpponent().clearSlowtripList();
- Singletons.getModel().getGame().getPhaseHandler().setNeedToNextPhase(true);
- return;
- }
-
- Singletons.getModel().getGame().getUpkeep().executeUntil(turn);
- Singletons.getModel().getGame().getUpkeep().executeAt();
+ game.getPhaseHandler().setNeedToNextPhase(true);
}
/**
@@ -166,23 +145,6 @@ public class PhaseUtil {
return false;
}
- // ******* DRAW PHASE *****
- /**
- *
- * handleDraw.
- *
- */
- public static void handleDraw() {
- final Player playerTurn = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn();
-
- if (PhaseUtil.skipDraw(playerTurn)) {
- Singletons.getModel().getGame().getPhaseHandler().setNeedToNextPhase(true);
- return;
- }
-
- playerTurn.drawCards(1, true);
- }
-
/**
*
* skipDraw.
@@ -192,11 +154,7 @@ public class PhaseUtil {
* a {@link forge.game.player.Player} object.
* @return a boolean.
*/
- private static boolean skipDraw(final Player player) {
- // starting player skips his draw
- if (Singletons.getModel().getGame().getPhaseHandler().getTurn() == 1) {
- return true;
- }
+ public static boolean skipDraw(final Player player) {
if (player.hasKeyword("Skip your next draw step.")) {
player.removeKeyword("Skip your next draw step.");
@@ -212,15 +170,6 @@ public class PhaseUtil {
// ********* Declare Attackers ***********
- /**
- *
- * verifyCombat.
- *
- */
- public static void verifyCombat() {
- Singletons.getModel().getGame().getCombat().verifyCreaturesInPlay();
- }
-
/**
*
* handleCombatBegin.
@@ -259,7 +208,7 @@ public class PhaseUtil {
* a {@link forge.game.player.Player} object.
* @return a boolean.
*/
- private static boolean skipCombat(final Player player) {
+ public static boolean skipCombat(final Player player) {
if (player.hasKeyword("Skip your next combat phase.")) {
return true;
@@ -285,9 +234,10 @@ public class PhaseUtil {
*
*/
public static void handleDeclareAttackers() {
- PhaseUtil.verifyCombat();
+ Singletons.getModel().getGame().getCombat().verifyCreaturesInPlay();
- // Handles removing cards like Mogg Flunkies from combat if group attack didn't occur
+ // Handles removing cards like Mogg Flunkies from combat if group attack
+ // didn't occur
final List filterList = Singletons.getModel().getGame().getCombat().getAttackerList();
for (Card c : filterList) {
if (c.hasKeyword("CARDNAME can't attack or block alone.") && c.isAttacking()) {
@@ -351,26 +301,29 @@ public class PhaseUtil {
*
* handleDeclareBlockers.
*
+ *
+ * @param game
*/
- public static void handleDeclareBlockers() {
- PhaseUtil.verifyCombat();
+ public static void handleDeclareBlockers(GameState game) {
+ game.getCombat().verifyCreaturesInPlay();
- // Handles removing cards like Mogg Flunkies from combat if group block didn't occur
- final List filterList = Singletons.getModel().getGame().getCombat().getAllBlockers();
+ // Handles removing cards like Mogg Flunkies from combat if group block
+ // didn't occur
+ final List filterList = game.getCombat().getAllBlockers();
for (Card c : filterList) {
if (c.hasKeyword("CARDNAME can't attack or block alone.") && c.isBlocking()) {
- if (Singletons.getModel().getGame().getCombat().getAllBlockers().size() < 2) {
- Singletons.getModel().getGame().getCombat().undoBlockingAssignment(c);
+ if (game.getCombat().getAllBlockers().size() < 2) {
+ game.getCombat().undoBlockingAssignment(c);
}
}
}
- Singletons.getModel().getGame().getStack().freezeStack();
+ game.getStack().freezeStack();
- Singletons.getModel().getGame().getCombat().setUnblocked();
+ game.getCombat().setUnblocked();
List list = new ArrayList();
- list.addAll(Singletons.getModel().getGame().getCombat().getAllBlockers());
+ list.addAll(game.getCombat().getAllBlockers());
list = CardLists.filter(list, new Predicate() {
@Override
@@ -379,20 +332,20 @@ public class PhaseUtil {
}
});
- final List attList = Singletons.getModel().getGame().getCombat().getAttackerList();
+ final List attList = game.getCombat().getAttackerList();
CombatUtil.checkDeclareBlockers(list);
for (final Card a : attList) {
- final List blockList = Singletons.getModel().getGame().getCombat().getBlockers(a);
+ final List blockList = game.getCombat().getBlockers(a);
for (final Card b : blockList) {
CombatUtil.checkBlockedAttackers(a, b);
}
}
- Singletons.getModel().getGame().getStack().unfreezeStack();
+ game.getStack().unfreezeStack();
- Singletons.getModel().getGame().getGameLog().add("Combat", CombatUtil.getCombatBlockForLog(), 1);
+ game.getGameLog().add("Combat", CombatUtil.getCombatBlockForLog(), 1);
}
// ***** Combat Utility **********
@@ -408,66 +361,27 @@ public class PhaseUtil {
public static boolean isBeforeAttackersAreDeclared() {
final PhaseType phase = Singletons.getModel().getGame().getPhaseHandler().getPhase();
return phase == PhaseType.UNTAP || phase == PhaseType.UPKEEP || phase == PhaseType.DRAW
- || phase == PhaseType.MAIN1 || phase == PhaseType.COMBAT_BEGIN;
+ || phase == PhaseType.MAIN1 || phase == PhaseType.COMBAT_BEGIN;
}
/**
* Retrieves and visually activates phase label for appropriate phase and
* player.
*
- * @param s
+ * @param phase
* Phase state
*/
- public static void visuallyActivatePhase(final PhaseType s) {
- PhaseLabel lbl = null;
+ public static void visuallyActivatePhase(final PhaseType phase) {
final Player p = Singletons.getModel().getGame().getPhaseHandler().getPlayerTurn();
- final CMatchUI t = CMatchUI.SINGLETON_INSTANCE;
+ final CMatchUI matchUi = CMatchUI.SINGLETON_INSTANCE;
// Index of field; computer is 1, human is 0
int i = p.isComputer() ? 1 : 0;
- switch(s) {
- case UPKEEP:
- lbl = t.getFieldControls().get(i).getView().getLblUpkeep();
- break;
- case DRAW:
- lbl = t.getFieldControls().get(i).getView().getLblDraw();
- break;
- case MAIN1:
- lbl = t.getFieldControls().get(i).getView().getLblMain1();
- break;
- case COMBAT_BEGIN:
- lbl = t.getFieldControls().get(i).getView().getLblBeginCombat();
- break;
- case COMBAT_DECLARE_ATTACKERS:
- lbl = t.getFieldControls().get(i).getView().getLblDeclareAttackers();
- break;
- case COMBAT_DECLARE_BLOCKERS:
- lbl = t.getFieldControls().get(i).getView().getLblDeclareBlockers();
- break;
- case COMBAT_DAMAGE:
- lbl = t.getFieldControls().get(i).getView().getLblCombatDamage();
- break;
- case COMBAT_FIRST_STRIKE_DAMAGE:
- lbl = t.getFieldControls().get(i).getView().getLblFirstStrike();
- break;
- case COMBAT_END:
- lbl = t.getFieldControls().get(i).getView().getLblEndCombat();
- break;
- case MAIN2:
- lbl = t.getFieldControls().get(i).getView().getLblMain2();
- break;
- case END_OF_TURN:
- lbl = t.getFieldControls().get(i).getView().getLblEndTurn();
- break;
- case CLEANUP:
- lbl = t.getFieldControls().get(i).getView().getLblCleanup();
- break;
- default:
- return;
- }
+ PhaseLabel lbl = matchUi.getFieldControls().get(i).getView().getLabelFor(phase);
- t.resetAllPhaseButtons();
- lbl.setActive(true);
+ matchUi.resetAllPhaseButtons();
+ if (lbl != null)
+ lbl.setActive(true);
}
}
diff --git a/src/main/java/forge/gui/match/controllers/CMessage.java b/src/main/java/forge/gui/match/controllers/CMessage.java
index b66615a5f8f..2abec9751a1 100644
--- a/src/main/java/forge/gui/match/controllers/CMessage.java
+++ b/src/main/java/forge/gui/match/controllers/CMessage.java
@@ -91,7 +91,7 @@ public enum CMessage implements ICDoc {
match.getGameType().toString() + ": Game #"
+ (match.getPlayedGames().size() + 1)
+ " of " + match.getGamesPerMatch()
- + ", turn " + match.getCurrentGame().getTurnNumber());
+ + ", turn " + match.getCurrentGame().getPhaseHandler().getTurn());
}
/** Flashes animation on input panel if play is currently waiting on input. */
diff --git a/src/main/java/forge/gui/match/nonsingleton/VField.java b/src/main/java/forge/gui/match/nonsingleton/VField.java
index 9842ff23650..a322c9c0ed2 100644
--- a/src/main/java/forge/gui/match/nonsingleton/VField.java
+++ b/src/main/java/forge/gui/match/nonsingleton/VField.java
@@ -35,6 +35,7 @@ import javax.swing.border.MatteBorder;
import net.miginfocom.swing.MigLayout;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.mana.ManaPool;
+import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.framework.DragCell;
@@ -538,6 +539,37 @@ public class VField implements IVDoc {
//========== Custom class handling
+ public PhaseLabel getLabelFor(final PhaseType s) {
+ switch (s) {
+ case UPKEEP:
+ return this.getLblUpkeep();
+ case DRAW:
+ return this.getLblDraw();
+ case MAIN1:
+ return this.getLblMain1();
+ case COMBAT_BEGIN:
+ return this.getLblBeginCombat();
+ case COMBAT_DECLARE_ATTACKERS:
+ return this.getLblDeclareAttackers();
+ case COMBAT_DECLARE_BLOCKERS:
+ return this.getLblDeclareBlockers();
+ case COMBAT_DAMAGE:
+ return this.getLblCombatDamage();
+ case COMBAT_FIRST_STRIKE_DAMAGE:
+ return this.getLblFirstStrike();
+ case COMBAT_END:
+ return this.getLblEndCombat();
+ case MAIN2:
+ return this.getLblMain2();
+ case END_OF_TURN:
+ return this.getLblEndTurn();
+ case CLEANUP:
+ return this.getLblCleanup();
+ default:
+ return null;
+ }
+ }
+
/**
* Shows phase labels, handles repainting and on/off states. A PhaseLabel
* has "skip" and "active" states, meaning "this phase is (not) skipped" and