magarena/src/magic/model/phase/MagicDrawPhase.java

46 lines
1.2 KiB
Java

package magic.model.phase;
import magic.model.MagicGame;
import magic.model.MagicPlayer;
import magic.model.action.DrawAction;
import magic.model.event.MagicExcludeEvent;
import magic.model.trigger.MagicTriggerType;
public class MagicDrawPhase extends MagicPhase {
private static final MagicPhase INSTANCE=new MagicDrawPhase();
public MagicDrawPhase() {
super(MagicPhaseType.Draw);
}
public static MagicPhase getInstance() {
return INSTANCE;
}
@Override
public void executeBeginStep(final MagicGame game) {
//skip draw phase for first turn
if (game.getTurn() == 1) {
game.setStep(MagicStep.NextPhase);
return;
}
final MagicPlayer player=game.getTurnPlayer();
game.doAction(new DrawAction(player));
game.executeTrigger(MagicTriggerType.AtDraw,game.getTurnPlayer());
game.setStep(game.canSkip() ?
MagicStep.NextPhase :
MagicStep.ActivePlayer
);
// Determines what the purpose is for permanents that can attack,
// block or produce mana. Do this after draw, could be a land card.
if (player.isArtificial()) {
game.addEvent(new MagicExcludeEvent(player));
}
}
}