public static EventListener CreateEventListener(ConsoleOptions options) { var eventListeners = new List <EventListener>(); if (options.HasStoryOutput) { eventListeners.Add(EventListeners.FileOutputEventListener(options.StoryOutput)); } if (options.HasStoryXmlOutput) { eventListeners.Add(EventListeners.XmlWriterEventListener(options.Xml)); } if (options.Console) { eventListeners.Add(EventListeners.ColorfulConsoleOutputEventListener()); } if (eventListeners.Count == 0) { eventListeners.Add(EventListeners.ColorfulConsoleOutputEventListener()); } if (options.Codegen) { eventListeners.Add(EventListeners.CodeGenEventListener(System.Console.Out)); } return(new MultiOutputEventListener(eventListeners.ToArray())); }