package magic.model.trigger; import magic.model.MagicAbility; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.action.ChangeTurnPTAction; import magic.model.event.MagicEvent; public class FlankingTrigger extends ThisBecomesBlockedByTrigger { private static final FlankingTrigger INSTANCE = new FlankingTrigger(); private FlankingTrigger() {} public static FlankingTrigger create() { return INSTANCE; } @Override public boolean accept(final MagicPermanent permanent, final MagicPermanent blocker) { return super.accept(permanent, blocker) && blocker.hasAbility(MagicAbility.Flanking) == false; } @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent blocker) { return new MagicEvent( permanent, blocker, this, "RN gets -1/-1 until end of turn." ); } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { game.doAction(new ChangeTurnPTAction(event.getRefPermanent(),-1,-1)); } }