@Override
 public void executeEvent(final MagicGame game, final MagicEvent event) {
   final MagicPlayer player = event.getPlayer();
   final MagicCardList hand = new MagicCardList(player.getHand());
   for (final MagicCard card : hand) {
     game.doAction(new DiscardCardAction(player, card));
   }
 }
 @Override
 public void executeEvent(final MagicGame game, final MagicEvent event) {
   final MagicPermanent permanent = event.getPermanent();
   final Collection<MagicPermanent> targets =
       MagicTargetFilterFactory.ATTACKING_CREATURE.filter(event);
   for (final MagicPermanent creature : targets) {
     if (creature != permanent && creature.isAttacking()) {
       game.doAction(new ChangeTurnPTAction(creature, 1, 0));
     }
   }
 }
 @Override
 public MagicEvent executeTrigger(
     final MagicGame game, final MagicPermanent permanent, final MagicPlayer upkeepPlayer) {
   game.doAction(new ChangeCountersAction(permanent, MagicCounterType.Age, 1));
   final int amount = permanent.getCounters(MagicCounterType.Age);
   final StringBuilder totalCost = new StringBuilder();
   for (int i = 0; i < amount; i++) {
     totalCost.append(manaCost.toString());
   }
   return new MagicEvent(
       permanent,
       new MagicMayChoice(new MagicPayManaCostChoice(MagicManaCost.create(totalCost.toString()))),
       this,
       "PN may$ " + genDescription(amount) + " If he or she doesn't, sacrifice SN.");
 }
 @Override
 public void executeEvent(final MagicGame game, final MagicEvent event) {
   game.doAction(new SacrificeAction(event.getPermanent()));
 }
 @Override
 public void executeEvent(final MagicGame game, final MagicEvent event) {
   game.doAction(new ChangeTurnPTAction(event.getRefPermanent(), 1, 1));
 }
 @Override
 public void executeEvent(final MagicGame game, final MagicEvent event) {
   game.doAction(
       ChangeCountersAction.Enters(event.getPermanent(), MagicCounterType.PlusOne, amount));
 }