package magic.model.event;
import magic.model.MagicGame;
import magic.model.MagicManaCost;
import magic.model.MagicSource;
import magic.model.action.SetKickerAction;
import magic.model.choice.MagicKickerChoice;
public class MagicMultikickerCost extends MagicAdditionalCost implements MagicEventAction {
final MagicManaCost manaCost;
final String name;
private MagicMultikickerCost(final MagicManaCost aManaCost, final String aName) {
manaCost = aManaCost;
name = aName;
}
public MagicMultikickerCost(final MagicManaCost aManaCost) {
this(aManaCost, "kicker");
}
public static MagicMultikickerCost Replicate(final MagicManaCost aManaCost) {
return new MagicMultikickerCost(aManaCost, "replicate");
}
public MagicEvent getEvent(final MagicSource source) {
return new MagicEvent(
source,
new MagicKickerChoice(manaCost, name),
this,
"PN may pay " + manaCost.getText() + " any number of times$$."
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.getKickerFromChosen() > 0) {
game.doAction(new SetKickerAction(event.getKickerFromChosen()));
}
}
}