private CEEvent CheckDelayedCaptorEvent()
        {
            CEEvent eventToFire     = null;
            bool    shouldFireEvent = delayedEvents.Any(item =>
            {
                if (item.eventName != null && item.eventTime < Campaign.Current.CampaignStartTime.ElapsedHoursUntilNow)
                {
                    CECustomHandler.LogToFile("Firing " + item.eventName);
                    if (item.conditions == true)
                    {
                        string result = CEEventManager.FireSpecificEventPartyLeader(item.eventName, out CEEvent ceEvent, true, item.heroName);
                        switch (result)
                        {
                        case "$FAILEDTOFIND":
                            CECustomHandler.LogToFile("Failed to load event list.");
                            break;

                        case "$EVENTNOTFOUND":
                            CECustomHandler.LogToFile("Event not found.");
                            break;

                        case "$EVENTCONDITIONSNOTMET":
                            CECustomHandler.LogToFile("Event conditions are not met.");
                            break;

                        default:
                            if (result.StartsWith("$"))
                            {
                                CECustomHandler.LogToFile(result.Substring(1));
                            }
                            else
                            {
                                eventToFire       = ceEvent;
                                item.hasBeenFired = true;
                                return(true);
                            }
                            break;
                        }
                    }
                    else
                    {
                        eventToFire = CEPersistence.CEEventList.FirstOrDefault(ceevent => ceevent.Name.ToLower() == item.eventName.ToLower());
                        if (!eventToFire.MultipleRestrictedListOfFlags.Contains(RestrictedListOfFlags.Captor))
                        {
                            eventToFire = null;
                            return(false);
                        }
                        item.hasBeenFired = true;
                        return(true);
                    }
                }
                return(false);
            });

            if (shouldFireEvent)
            {
                delayedEvents.RemoveAll(item => item.hasBeenFired);
                return(eventToFire);
            }
            return(null);
        }