private void EventOnTimerFiredHandler(MemeEvent sender)
 {
     if (OnMemeEventHasFired != null)
     {
         OnMemeEventHasFired(this, sender);
     }
 }
        void child_OnMemeEventHasFired(Meme meme, MemeEvent memeEvent)
        {
            string msg = meme.Name + " has fired." + Environment.NewLine;

            SetText(msg);

            TypeSwitch.Do(
                meme,
                TypeSwitch.Case <WanderMeme>(ProcessRoom),
                TypeSwitch.Case <ExhaustionMeme>(ProcessExhaustion)
                );
        }
        private void SetupEventGenerators()
        {
            event1 = new MemeEvent(new TimeSpan(0, 0, 5), MemePriority.Medium, MemeEventType.Timed);
            event1.OnTimerFired += EventOnTimerFiredHandler;
            Events.Add(event1);

            event2 = new MemeEvent(new TimeSpan(0, 0, 3), MemePriority.Medium, MemeEventType.Timed);
            event2.OnTimerFired += EventOnTimerFiredHandler;
            Events.Add(event2);

            event3 = new MemeEvent(new TimeSpan(0, 0, 10), MemePriority.Low, MemeEventType.Timed);
            event3.OnTimerFired += EventOnTimerFiredHandler;
            Events.Add(event3);

            event4 = new MemeEvent(new TimeSpan(0, 0, 20), MemePriority.Medium, MemeEventType.Timed);
            event4.OnTimerFired += EventOnTimerFiredHandler;
            Events.Add(event4);
        }