Exemple #1
0
    public override void Execute(int eventCode, object message)
    {
        switch (eventCode)
        {
        case UIEvent.Player_Hide_State:
            Invoke("HideUI", 0.5f);
            break;

        case UIEvent.Player_Ready:
            //显示准备文本框
            if (userCharacterDto == null)
            {
                break;
            }
            int userId = (int)message;
            if (userCharacterDto.Id == userId)
            {
                ReadyState(true);
            }
            break;

        case UIEvent.Player_Leave:
            if (userCharacterDto == null)
            {
                break;
            }
            //玩家离开隐藏面板
            int leaveUserId = (int)message;
            if (userCharacterDto.Id == leaveUserId)
            {
                ReadyState(false);
                SetPanelActive(false);
                userCharacterDto = null;
            }
            break;

        case UIEvent.Player_Enter:
            //玩家进入房间
            if (userCharacterDto == null)
            {
                break;
            }
            int enterUserId = (int)message;
            if (userCharacterDto.Id == enterUserId)
            {
                SetPanelActive(true);
            }
            break;

        case UIEvent.Player_Chat:
        {
            if (userCharacterDto == null)
            {
                break;
            }
            ChatDto chatDto = message as ChatDto;
            if (userCharacterDto.Id == chatDto.UserId)
            {
                var text = ConstantHelper.GetChatText(chatDto.Type);
                ShowChat(text);
            }
            break;
        }

        case UIEvent.Player_Change_Identity:
        {
            if (userCharacterDto == null)
            {
                break;
            }
            GrabDto dto = message as GrabDto;
            if (userCharacterDto.Id == dto.UserId)
            {
                SetIdentity(1);
            }
            break;
        }
        }
    }