package magic.model.event; import magic.model.MagicCard; import magic.model.MagicGame; import magic.model.MagicLocationType; import magic.model.MagicManaCost; import magic.model.MagicPayedCost; import magic.model.action.MagicPlayMod; import magic.model.action.ReturnCardAction; import magic.model.choice.MagicTargetChoice; import magic.model.condition.MagicCondition; import java.util.Arrays; public class MagicNinjutsuActivation extends MagicCardAbilityActivation { final MagicManaCost cost; public MagicNinjutsuActivation(final MagicManaCost aCost) { super( new MagicCondition[]{ MagicCondition.NINJUTSU_CONDITION, }, new MagicActivationHints(MagicTiming.Block,true), "Ninjutsu" ); cost = aCost; } public Iterable<? extends MagicEvent> getCostEvent(final MagicCard source) { return Arrays.asList( new MagicPayManaCostEvent( source, cost ), new MagicBounceChosenPermanentEvent( source, MagicTargetChoice.AN_UNBLOCKED_ATTACKING_CREATURE_YOU_CONTROL ) ); } @Override public MagicEvent getCardEvent(final MagicCard source,final MagicPayedCost payedCost) { return new MagicEvent( source, this, "Put SN onto the battlefield from your hand tapped and attacking." ); } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { game.doAction(new ReturnCardAction( MagicLocationType.OwnersHand, event.getCard(), event.getPlayer(), MagicPlayMod.TAPPED, MagicPlayMod.ATTACKING )); } }