package magic.model.trigger; import magic.model.MagicCounterType; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.action.ChangeCountersAction; import magic.model.choice.MagicMayChoice; import magic.model.choice.MagicTargetChoice; import magic.model.event.MagicEvent; import magic.model.target.MagicPumpTargetPicker; public class ModularTrigger extends ThisDiesTrigger { private static final ModularTrigger INSTANCE = new ModularTrigger(); private ModularTrigger() {} public static ModularTrigger create() { return INSTANCE; } @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent died) { final int amount = permanent.getCounters(MagicCounterType.PlusOne); return new MagicEvent( permanent, new MagicMayChoice( MagicTargetChoice.POS_TARGET_ARTIFACT_CREATURE ), MagicPumpTargetPicker.create(), amount, this, "PN may$ put RN +1/+1 counters on target artifact creature$." ); } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { if (event.isYes()) { event.processTargetPermanent(game, (final MagicPermanent creature) -> game.doAction(new ChangeCountersAction( creature, MagicCounterType.PlusOne, event.getRefInt() )) ); } } }