Exemple #1
0
        private void MessageManagerNewMessage(object _sender, Message _message)
        {
            if (_message is AskMessageNg)
            {
                var amng = (AskMessageNg)_message;
                switch (amng.AskMessageType)
                {
                case EAskMessageType.LOOK_AT:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new LookAtUiBlock(m_mainUiBlock.Messages, m_mainUiBlock.Map.Rct)));
                    break;

                case EAskMessageType.ASK_DIRECTION:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new AskDirectionUiBlock(m_mainUiBlock.Map.Rct, amng)));
                    break;

                case EAskMessageType.HELP:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new HelpUiBlock(m_mainUiBlock.Rct)));
                    break;

                case EAskMessageType.HOW_MUCH:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new AskHowMuchUiBlock(m_mainUiBlock.Messages.ContentRct, amng)));
                    break;

                case EAskMessageType.ASK_SHOOT_TARGET:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new SelectTargetUiBlock(m_mainUiBlock.Messages, m_mainUiBlock.Map.Rct, amng)));
                    break;

                case EAskMessageType.ASK_DESTINATION:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new SelectDestinationUiBlock(m_mainUiBlock.Messages, m_mainUiBlock.Map.Rct, amng.Act)));
                    break;

                case EAskMessageType.SELECT_THINGS:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new SelectItemsUiBlock(m_mainUiBlock.Rct, amng)));
                    break;

                case EAskMessageType.SELECT_THINGS_FROM_BACK_PACK:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new BackpackUiBlock(m_mainUiBlock.Rct, amng)));
                    break;

                case EAskMessageType.INVENTORY:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new EquipmentUiBlock(m_mainUiBlock.Rct)));
                    break;

                case EAskMessageType.WORLD_MAP:
                    MessageManager.SendMessage(this, new OpenUIBlockMessage(new MiniMapUiBlock(m_mainUiBlock.Map.Rct)));
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            else if (_message is OpenUIBlockMessage)
            {
                var uiBlock = ((OpenUIBlockMessage)_message).UIBlock;
                UiBlocks.Push(uiBlock);
                MouseMove(m_lastMousePos);
            }
            else if (_message is SystemMessage)
            {
                switch (((SystemMessage)_message).Message)
                {
                case SystemMessage.ESystemMessage.EXIT_GAME:
                    m_gameProvider.Exit();
                    break;

                case SystemMessage.ESystemMessage.CLOSE_TOP_UI_BLOCK:
                    UiBlocks.Pop().Dispose();
                    m_pressed.Clear();
                    m_downKeys.Clear();
                    MessageManager.SendMessage(this, WorldMessage.Turn);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }