private void CheckTriggers(ServerGameState state, EventBase ev) { var myEventFilter = new PredicatedEvent() { Event = ev, Filter = ev.GetFilter(), Side = PredicateSide.Friendly }; var oppEventFilter = new PredicatedEvent() { Event = ev, Filter = ev.GetFilter(), Side = PredicateSide.Enemy }; var myTriggeredEvents = state.Me.Triggers.GetAssociatedEvents(myEventFilter); var oppTriggeredEvents = state.Opp.Triggers.GetAssociatedEvents(oppEventFilter); if (myTriggeredEvents.Any() || oppTriggeredEvents.Any()) { // TODO: form and re-query chain of events // TODO: check the event orders / orders of minion appearances // TODO: re-call ProcessEvent() for each triggered event and return the resulting events throw new NotImplementedException(); } }