package magic.model.event;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicManaCost;
import magic.model.MagicMessage;
import magic.model.MagicSource;
import magic.model.action.CounterItemOnStackAction;
import magic.model.choice.MagicMayChoice;
import magic.model.choice.MagicPayManaCostChoice;
import magic.model.stack.MagicItemOnStack;
public class MagicCounterUnlessEvent extends MagicEvent {
public MagicCounterUnlessEvent(final MagicSource source,final MagicItemOnStack itemOnStack,final MagicManaCost cost) {
this(source, itemOnStack, cost, MagicLocationType.Graveyard);
}
public MagicCounterUnlessEvent(final MagicSource source,final MagicItemOnStack itemOnStack,final MagicManaCost cost, final MagicLocationType toLocation) {
super(
source,
itemOnStack.getController(),
new MagicMayChoice(
"Pay "+cost.getText()+"?",
new MagicPayManaCostChoice(cost)
),
itemOnStack,
(final MagicGame game, final MagicEvent event) -> {
if (event.isNo()) {
game.doAction(new CounterItemOnStackAction(
event.getRefItemOnStack(),
toLocation
));
}
},
MagicMessage.format(
"You may$ pay %s$. If you don't, counter %s.",
cost.getText(),
itemOnStack
)
);
}
}