package magic.model.trigger; import magic.model.MagicCardList; import magic.model.MagicGame; import magic.model.MagicLocationType; import magic.model.MagicPermanent; import magic.model.MagicMessage; import magic.model.action.RemoveFromPlayAction; import magic.model.action.ReturnLinkedExileAction; import magic.model.event.MagicEvent; public class LeavesReturnExiledTrigger extends LeavesBattlefieldTrigger { private static final LeavesReturnExiledTrigger INSTANCE = new LeavesReturnExiledTrigger(); private LeavesReturnExiledTrigger() {} public static final LeavesReturnExiledTrigger create() { return INSTANCE; } @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final RemoveFromPlayAction act) { if (act.isPermanent(permanent) && !permanent.getExiledCards().isEmpty()) { final MagicCardList clist = new MagicCardList(permanent.getExiledCards()); return new MagicEvent( permanent, this, "Return " + MagicMessage.getTokenizedCardNames(clist) + " to the battlefield." ); } return MagicEvent.NONE; } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { game.doAction(new ReturnLinkedExileAction(event.getPermanent(),MagicLocationType.Battlefield)); } }