package magic.model.event;
import java.util.LinkedList;
import java.util.List;
import magic.model.MagicCounterType;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPermanent;
import magic.model.action.ChangeCountersAction;
import magic.model.condition.MagicCondition;
public class MagicOutlastActivation extends MagicPermanentActivation{
private static final MagicActivationHints HINT = new MagicActivationHints(MagicTiming.Pump);
private static final MagicCondition COND[] = new MagicCondition[] {MagicCondition.SORCERY_CONDITION};
private final List<MagicMatchedCostEvent> matchedCostEvents;
public MagicOutlastActivation(final List<MagicMatchedCostEvent> aMatchedCostEvents) {
super(COND, HINT, "Outlast");
matchedCostEvents = aMatchedCostEvents;
}
@Override
public Iterable<? extends MagicEvent> getCostEvent(final MagicPermanent source) {
final List<MagicEvent> costEvents = new LinkedList<MagicEvent>();
costEvents.add(new MagicTapEvent(source));
for (final MagicMatchedCostEvent matched : matchedCostEvents) {
costEvents.add(matched.getEvent(source));
}
return costEvents;
}
@Override
public MagicEvent getPermanentEvent(MagicPermanent source, MagicPayedCost payedCost) {
return new MagicEvent(
source,
this,
"PN puts a +1/+1 counter on SN."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusOne, 1));
}
}