package magic.model.event; import magic.model.MagicGame; import magic.model.MagicPayedCost; import magic.model.MagicPermanent; import magic.model.MagicType; import magic.model.mstatic.MagicStatic; import magic.model.mstatic.MagicLayer; import magic.model.action.AddStaticAction; import java.util.Arrays; public class MagicCrewActivation extends MagicPermanentActivation { private static final MagicActivationHints ACTIVATION_HINTS = new MagicActivationHints(MagicTiming.Animate); private static MagicStatic ST = new MagicStatic(MagicLayer.Type, MagicStatic.UntilEOT) { @Override public int getTypeFlags(final MagicPermanent permanent,final int flags) { return flags|MagicType.Artifact.getMask()|MagicType.Creature.getMask(); } }; private final int crew; public MagicCrewActivation(final int n) { super( ACTIVATION_HINTS, "Crew" ); crew = n; } @Override public Iterable<? extends MagicEvent> getCostEvent(final MagicPermanent source) { return Arrays.asList(new MagicCrewCostEvent(source,crew)); } @Override public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) { return new MagicEvent( source, this, "SN becomes an artifact creature until end of turn." ); } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { game.doAction(new AddStaticAction(event.getPermanent(), ST)); } }