예제 #1
0
    // 誰かが切断した
    private bool OnDisconnectOtherPlayer(OtherPlayerDisconnectedEvent e)
    {
        if (m_IsGameSet)
        {
            return(false);
        }
        if (m_IsOnNetworkError)
        {
            return(false);
        }
        if (RoomManager.IsHost == false)
        {
            return(false);
        }
        if (RoomManager.NumPlayers > 1)
        {
            return(false);
        }

        // 自分以外誰も居ないならゲーム終了
        m_GameUIManager.OnNetworkError("Disconected Other Players");
        StartCoroutine(DelayFinishGame(m_FinishGameOffsetTime));
        m_IsOnNetworkError = true;
        return(false);
    }
예제 #2
0
    // ルーム内の誰かが退室したとき
    public void OnOtherPlayerDisconnected(MonobitEngine.MonobitPlayer otherPlayer)
    {
        NetworkEvent e = new OtherPlayerDisconnectedEvent {
            m_OtherPlayer = otherPlayer
        };

        NotifyObservers(e);
    }
예제 #3
0
    // 誰かが切断した
    public bool OnDisconnectedOtherPlayer(OtherPlayerDisconnectedEvent e)
    {
        // 管理対象のプレイヤーか
        if (m_PlayerIDToPlayer.ContainsKey(e.m_OtherPlayer.ID) == false)
        {
            return(false);
        }

        // ゲーム終了時の切断か
        if (GameManager.IsGameSet)
        {
            return(false);
        }

        // 切断されたプレイヤーは管理下から除外
        var disconnectedPlayer = m_PlayerIDToPlayer[e.m_OtherPlayer.ID];

        m_Players.Remove(disconnectedPlayer);
        m_SurvivingPlayers.Remove(disconnectedPlayer);
        --m_NumSurvivingPlayers;

        return(false);
    }
예제 #4
0
 // 誰かが切断した
 private bool OnDisconnectedOtherPlayer(OtherPlayerDisconnectedEvent e)
 {
     UpdateSurvivingPlayersTextUI();
     return(false);
 }