forked from External/mage
I did check the BEGINNING_PHASE_PRE usage, and found none that wanted to watch the extra beginning phases. Of note, we may want to have separate 'beginning of turn'/'beginning of game' events, if there is ever a way to skip beginning phases.
51 lines
1.3 KiB
Java
51 lines
1.3 KiB
Java
|
|
|
|
package mage.game.turn;
|
|
|
|
import mage.constants.TurnPhase;
|
|
import mage.game.Game;
|
|
import mage.game.events.GameEvent.EventType;
|
|
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* @author BetaSteward_at_googlemail.com
|
|
*/
|
|
public class BeginningPhase extends Phase {
|
|
|
|
private final boolean isExtra;
|
|
|
|
public BeginningPhase() {
|
|
this(false);
|
|
}
|
|
|
|
public BeginningPhase(boolean isExtra) {
|
|
this.type = TurnPhase.BEGINNING;
|
|
this.event = isExtra ? EventType.BEGINNING_PHASE_EXTRA : EventType.BEGINNING_PHASE;
|
|
this.preEvent = isExtra ? EventType.BEGINNING_PHASE_PRE_EXTRA : EventType.BEGINNING_PHASE_PRE;
|
|
this.postEvent = isExtra ? EventType.BEGINNING_PHASE_PRE_EXTRA : EventType.BEGINNING_PHASE_POST;
|
|
this.steps.add(new UntapStep());
|
|
this.steps.add(new UpkeepStep());
|
|
this.steps.add(new DrawStep());
|
|
this.isExtra = isExtra;
|
|
}
|
|
|
|
@Override
|
|
public boolean beginPhase(Game game, UUID activePlayerId) {
|
|
if (!isExtra) {
|
|
game.getBattlefield().beginningOfTurn(game);
|
|
}
|
|
return super.beginPhase(game, activePlayerId);
|
|
}
|
|
|
|
protected BeginningPhase(final BeginningPhase phase) {
|
|
super(phase);
|
|
this.isExtra = phase.isExtra;
|
|
}
|
|
|
|
@Override
|
|
public BeginningPhase copy() {
|
|
return new BeginningPhase(this);
|
|
}
|
|
|
|
}
|