package magic.model.event;
import java.util.Arrays;
import magic.model.MagicCard;
import magic.model.MagicGame;
import magic.model.MagicManaCost;
import magic.model.MagicPayedCost;
import magic.model.action.MagicPlayMod;
import magic.model.action.PlayCardFromStackAction;
import magic.model.condition.MagicCondition;
import magic.model.stack.MagicCardOnStack;
public class MagicDashActivation extends MagicHandCastActivation {
final MagicManaCost cost;
public MagicDashActivation(final MagicManaCost aCost) {
super(
new MagicCondition[]{
MagicCondition.CARD_CONDITION,
},
new MagicActivationHints(MagicTiming.FirstMain,true),
"Dash"
);
cost = aCost;
}
public Iterable<? extends MagicEvent> getCostEvent(final MagicCard source) {
return Arrays.asList(
new MagicPayManaCostEvent(
source,
cost
)
);
}
@Override
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
return new MagicEvent(
cardOnStack,
this,
"Put SN onto the battlefield, " +
"it gains haste and it's returned from the battlefield to its owner's hand at the beginning of the next end step."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new PlayCardFromStackAction(
event.getCardOnStack(),
MagicPlayMod.HASTE, MagicPlayMod.RETURN_AT_END_OF_TURN
));
}
}