Exemplo n.º 1
0
        public Task QuitGameAsync(QuitGameRequest request)
        {
            string userId = ExtractUserId();
            // If game is vs computer delete it. If it's vs another player, send them notification then delete it.
            // TODO: Factorize duplicate authorization code
            GameState gameState   = null;
            bool      gameExists  = serverState.Exists(request.GameId);
            bool      validUserId = false;

            if (gameExists)
            {
                gameState   = serverState.GetGameState(request.GameId);
                validUserId = gameState.Player1.Id == userId || gameState.Player2.Id == userId;
            }
            if (!gameExists || !validUserId)
            {
                return(Task.CompletedTask);
            }

            return(HandlePlayerLeftGameAsync(userId, gameState));
        }
Exemplo n.º 2
0
    void Awake()
    {
        Joystick          = transform.Find("Joystick").GetComponent <ETCJoystick>();
        showTimerRequest  = GetComponent <ShowTimerRequest>();
        startPlayRequest  = GetComponent <StartPlayRequest>();
        gameOverRequest   = GetComponent <GameOverRequest>();
        quitBattleRequest = GetComponent <QuitBattleRequest>();
        quitGameRequest   = GetComponent <QuitGameRequest>();
        destroyRequest    = GetComponent <DestroyRequest>();
        gameChatRequest   = GetComponent <GameChatRequest>();
        knapsack          = transform.Find("KnapsackPanel").GetComponent <Knapsack>();
        for (int i = 0; i < 3; i++)
        {
            skillPos.Add(transform.Find("Skill" + i));
        }

        roleSelectPanel = transform.Find("RoleSelectPanel");

        timer        = transform.Find("TimerPanel/Time").GetComponent <Text>();
        gameOverText = transform.Find("GameOverPanel/GameOver").GetComponent <Text>();
        closeButton  = transform.Find("GameOverPanel/CloseButton").GetComponent <Button>();
        closeButton.onClick.AddListener(OnCloseClick);

        EffectDict    = facade.GetEffectDict();
        SkillItemDict = facade.GetSkillItemDict();

        transform.Find("SettingPanel/QuitGameButton").GetComponent <Button>().onClick.AddListener(OnQuitGameClick);

        chatDialog = transform.Find("ChatDialog");
        sendButton = transform.Find("ChatDialog/InputPanel/SendButton");
        chatButton = transform.Find("ChatDialog/ChatButton").GetComponent <Button>();
        inputField = transform.Find("ChatDialog/InputPanel/InputField").GetComponent <InputField>();
        sendButton.GetComponent <Button>().onClick.AddListener(OnSendClick);
        chatButton.onClick.AddListener(OnChatClick);
        inputField.onEndEdit.AddListener(x => OnSendClick());

        OtherPlayerChatMsgItem = Resources.Load <GameObject>("UIItem/Chat/OtherPlayerChatMsgItem");
        LocalPlayerChatMsgItem = Resources.Load <GameObject>("UIItem/Chat/LocalPlayerChatMsgItem");
        ChangeSeatItem         = Resources.Load <GameObject>("UIItem/ChangeSeatItem");
    }