package magic.model.event;
import magic.model.MagicGame;
import magic.model.choice.MagicTargetChoice;
import magic.model.stack.MagicItemOnStack;
import magic.model.trigger.MagicTriggerType;
public class MagicStackGetChoicesEvent extends MagicEvent {
public MagicStackGetChoicesEvent(final MagicItemOnStack itemOnStack) {
super(
itemOnStack.getEvent().getSource(),
itemOnStack.getEvent().getPlayer(),
itemOnStack.getEvent().getChoice(),
itemOnStack.getEvent().getTargetPicker(),
itemOnStack,
EVENT_ACTION,
""
);
}
private static final MagicEventAction EVENT_ACTION = (final MagicGame game, final MagicEvent event) -> {
final MagicItemOnStack itemOnStack = event.getRefItemOnStack();
itemOnStack.setChoiceResults(event.getChosen());
// trigger WhenTargeted
final MagicTargetChoice tchoice = event.getTargetChoice();
if (tchoice != null && tchoice.isTargeted()) {
game.executeTrigger(MagicTriggerType.WhenTargeted,itemOnStack);
}
};
}