package magic.model.trigger;
import magic.model.MagicGame;
import magic.model.MagicManaCost;
import magic.model.MagicPermanent;
import magic.model.action.ChangeLifeAction;
import magic.model.choice.MagicMayChoice;
import magic.model.choice.MagicPayManaCostChoice;
import magic.model.event.MagicEvent;
import magic.model.stack.MagicCardOnStack;
public class ExtortTrigger extends OtherSpellIsCastTrigger {
private static final ExtortTrigger INSTANCE = new ExtortTrigger();
private ExtortTrigger() {}
public static final ExtortTrigger create() {
return INSTANCE;
}
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicCardOnStack cardOnStack) {
return permanent.isFriend(cardOnStack) ?
new MagicEvent(
permanent,
new MagicMayChoice(
new MagicPayManaCostChoice(MagicManaCost.create("{W/B}"))
),
this,
"You may$ pay {W/B}. If you do, each opponent loses 1 life and you gain that much life."
):
MagicEvent.NONE;
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new ChangeLifeAction(event.getPlayer().getOpponent(),-1));
game.doAction(new ChangeLifeAction(event.getPlayer(),1));
}
}
}