package magic.model.event; import magic.model.MagicCounterType; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicSource; import magic.model.action.ChangeCountersAction; import magic.model.choice.MagicTargetChoice; import magic.model.target.MagicTargetFilterFactory; import magic.model.target.MagicTargetFilterFactory.Control; public class MagicRemoveCounterChosenEvent extends MagicEvent { public MagicRemoveCounterChosenEvent(final MagicSource source, final MagicCounterType counterType) { super( source, new MagicTargetChoice( MagicTargetFilterFactory.creature(counterType, Control.You), "a creature you control with a " + counterType.getName() + " counter on it" ), (final MagicGame game, final MagicEvent event) -> { event.processTargetPermanent(game, (final MagicPermanent perm) -> game.doAction(new ChangeCountersAction( perm, counterType, -1 )) ); }, "Remove a " + counterType.getName() + " counter from a creature$ you control." ); } }