/// <summary> /// Consumes conversations related messages /// </summary> /// <param name="client"></param> /// <param name="message"></param> public void Consume(GameClient client, GameMessage message) { lock (openConversations) { if (message is RequestCloseConversationWindowMessage) { List <Conversation> clonedList = (from c in openConversations select c.Value).ToList(); foreach (var conversation in clonedList) { conversation.Interrupt(); } } if (message is UpdateConvAutoAdvanceMessage) { UpdateConvAutoAdvanceMessage tmpMessage = (UpdateConvAutoAdvanceMessage)message; openConversations[tmpMessage.SNOConversation].UpdateAdvance(tmpMessage.EndTick); } if (message is AdvanceConvMessage) { Conversation conv = openConversations[((AdvanceConvMessage)message).SNOConversation]; conv.PlayNextLine(true); } } }
/// <summary> /// Consumes conversations related messages /// </summary> /// <param name="client"></param> /// <param name="message"></param> public void Consume(GameClient client, GameMessage message) { lock (openConversations) { if (message is RequestCloseConversationWindowMessage) { List <Conversation> clonedList = (from c in openConversations select c.Value).ToList(); foreach (var conversation in clonedList) { conversation.Interrupt(); } } // Requires some check if openConversations[tmpMessage.SNOConversaion] exists before preceeding. // Error occured when forcing conversaion closed. (Pressing 'x' in convo) // [03.02.2012 23:50:26.462] [Debug] [Game]: Unhandled exception caught: - [Exception] System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. // at System.Collections.Generic.Dictionary`2.get_Item(TKey key) // at Mooege.Core.GS.Players.ConversationManager.Consume(GameClient client, GameMessage message) in C:\Users\James\Documents\Visual Studio 2010\Projects\mooege\src\Mooege\Core\GS\Players\ConversationManager.cs:line 468 // at Mooege.Core.GS.Games.Game.Route(GameClient client, GameMessage message) in C:\Users\James\Documents\Visual Studio 2010\Projects\mooege\src\Mooege\Core\GS\Games\Game.cs:line 215 if (message is UpdateConvAutoAdvanceMessage) { UpdateConvAutoAdvanceMessage tmpMessage = (UpdateConvAutoAdvanceMessage)message; openConversations[tmpMessage.SNOConversation].UpdateAdvance(tmpMessage.EndTick); } if (message is AdvanceConvMessage) { Conversation conv = openConversations[((AdvanceConvMessage)message).SNOConversation]; conv.PlayNextLine(true); } } }