public QueuedMessage(String message, int secondsDelay, AbstractEvent abstractEvent) { this.messageName = message; List<MessageFragment> messageFragments = new List<MessageFragment>(); messageFragments.Add(MessageFragment.Text(message)); this.messageFolders = getMessageFolders(messageFragments); this.dueTime = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) + (secondsDelay * 1000) + updateInterval; this.abstractEvent = abstractEvent; }
private void triggerEvent(String eventName, AbstractEvent abstractEvent, GameStateData previousGameState, GameStateData currentGameState) { try { abstractEvent.trigger(previousGameState, currentGameState); } catch (Exception e) { if (faultingEventsCount.ContainsKey(eventName)) { faultingEventsCount[eventName]++; if (faultingEventsCount[eventName] > 5) { Console.WriteLine("Event " + eventName + " has failed > 5 times in this session"); } } if (!faultingEvents.ContainsKey(eventName)) { Console.WriteLine("Event " + eventName + " threw exception " + e.Message); Console.WriteLine("This is the first time this event has failed in this session"); faultingEvents.Add(eventName, e.Message); faultingEventsCount.Add(eventName, 1); } else if (faultingEvents[eventName] != e.Message) { Console.WriteLine("Event " + eventName + " threw a different exception: " + e.Message); faultingEvents[eventName] = e.Message; } } }
public QueuedMessage(String message, int secondsDelay, AbstractEvent abstractEvent, Dictionary<String, Object> validationData) : this(message, secondsDelay, abstractEvent) { this.validationData = validationData; }
/** * Queues a message with multiple fragments, with an alternate version if the first version can't be played. * Use this when a compound message includes a driver name which may or may not be in the set that are have associated * sound files. If there's no sound file for this driver name, the alternate message will be played */ public QueuedMessage(String messageName, List<MessageFragment> messageFragments, List<MessageFragment> alternateMessageFragments, int secondsDelay, AbstractEvent abstractEvent) { this.messageName = compoundMessageIdentifier + messageName; this.messageFolders = getMessageFolders(messageFragments); if (!canBePlayed) { Console.WriteLine("Using secondary messages for event " + messageName); canBePlayed = true; this.messageFolders = getMessageFolders(alternateMessageFragments); if (!canBePlayed) { Console.WriteLine("Primary and secondary messages for event " + messageName + " can't be played"); } } this.dueTime = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) + (secondsDelay * 1000) + updateInterval; this.abstractEvent = abstractEvent; }
public QueuedMessage(String messageName, List<MessageFragment> messageFragments, List<MessageFragment> alternateMessageFragments, int secondsDelay, AbstractEvent abstractEvent, Dictionary<String, Object> validationData) : this(messageName, messageFragments, alternateMessageFragments, secondsDelay, abstractEvent) { this.validationData = validationData; }
public QueuedMessage(String messageName, List<MessageFragment> messageFragments, int secondsDelay, AbstractEvent abstractEvent) { this.messageName = compoundMessageIdentifier + messageName; this.messageFolders = getMessageFolders(messageFragments); this.dueTime = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) + (secondsDelay * 1000) + updateInterval; this.abstractEvent = abstractEvent; }
// used for creating a pearl of wisdom message where we need to copy the dueTime from the original public QueuedMessage(AbstractEvent abstractEvent) { this.abstractEvent = abstractEvent; }