package magic.model.event;
import magic.model.MagicCardList;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPlayer;
import magic.model.MagicSource;
import magic.model.action.DrawAction;
import magic.model.action.ShuffleCardsIntoLibraryAction;
import magic.model.choice.MagicMulliganChoice;
public class MagicMulliganEvent extends MagicEvent {
public MagicMulliganEvent(final MagicPlayer player) {
super(
MagicSource.NONE,
player,
new MagicMulliganChoice(),
EVENT_ACTION,
"PN may$ take a mulligan."
);
}
private static final MagicEventAction EVENT_ACTION = (final MagicGame game, final MagicEvent event) -> {
final MagicPlayer player = event.getPlayer();
if (event.isYes()) {
final MagicCardList hand = new MagicCardList(player.getHand());
game.doAction(new ShuffleCardsIntoLibraryAction(hand, MagicLocationType.OwnersHand));
game.doAction(new DrawAction(player, hand.size() - 1));
game.addEvent(new MagicMulliganEvent(player));
}
};
}