package magic.model.event; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; import magic.model.MagicSource; import magic.model.action.SacrificeAction; import magic.model.choice.MagicTargetChoice; import magic.model.target.MagicSacrificeTargetPicker; public class MagicSacrificePermanentEvent extends MagicEvent { public MagicSacrificePermanentEvent(final MagicSource source, final MagicTargetChoice targetChoice) { this(source, source.getController(), targetChoice); } public MagicSacrificePermanentEvent(final MagicSource source, final MagicPlayer player, final MagicTargetChoice targetChoice) { this(source, player, targetChoice, EVENT_ACTION); } public MagicSacrificePermanentEvent(final MagicSource source, final MagicPlayer player, final MagicTargetChoice targetChoice, final MagicEventAction action) { super( source, player, targetChoice, MagicSacrificeTargetPicker.create(), action, "Sacrifice "+targetChoice.getTargetDescription()+"$." ); } private static final MagicEventAction EVENT_ACTION = (final MagicGame game, final MagicEvent event) -> event.processTargetPermanent(game, (final MagicPermanent permanent) -> game.doAction(new SacrificeAction(permanent)) ); }