Beispiel #1
0
        /// <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);
                }
            }
        }
Beispiel #2
0
        /// <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);
                }
            }
        }