package magic.model.trigger; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; import magic.model.choice.MagicTargetChoice; import magic.model.event.MagicEvent; import magic.model.event.MagicSacrificePermanentEvent; public class AnnihilatorTrigger extends ThisAttacksTrigger { private final int amount; public AnnihilatorTrigger(final int amount) { this.amount = amount; } @Override public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPermanent creature) { return new MagicEvent( permanent, permanent.getOpponent(), this, "PN sacrifices " + amount + (amount == 1 ? " permanent." : " permanents.") ); } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { final MagicPlayer player = event.getPlayer(); int count = amount; while (count > 0 && player.getPermanents().size() > 0) { game.addEvent(new MagicSacrificePermanentEvent( event.getSource(), player, MagicTargetChoice.SACRIFICE_PERMANENT )); count--; } } }