コード例 #1
0
    void CheckTimeUp()
    {
        if (currentSeconds >= goalTime)
        {
            var players = FindObjectsOfType <Player>();
            foreach (var player in players)
            {
                player.Freeze();
            }

            //Online game
            if (!GameManager.isLocalGame)
            {
                ClientInRoom.GoToVictoryScene();
            }
            //Local Game
            else
            {
                SceneLoader.instance.LoadVictoryScene();
            }
        }
        else
        {
            StartCoroutine(Timer());
        }
    }
コード例 #2
0
 private void CreateStates()
 {
     unconnectedState = new ClientUnconnected();
     connectedState   = new ClientConnected();
     signedUpState    = new ClientSignedUp();
     signedInState    = new ClientSignedIn();
     inRoomState      = new ClientInRoom();
 }
コード例 #3
0
    IEnumerator KickCountdown()
    {
        yield return(new WaitForSecondsRealtime(timeToKickOut));

        if (!anyInputDone && GameManager.isClient)
        {
            Debug.Log("kicking");
            kicking = true;
            ClientInRoom.Exit();
        }
    }
コード例 #4
0
    private void Update()
    {
        ms += (Time.deltaTime * 1000d);

#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.Y) && state == inRoomState)
        {
            ClientInRoom.GoToVictoryScene();
        }
#endif
    }
コード例 #5
0
 private void GoToMainMenu()
 {
     if (GameManager.isLocalGame)
     {
         SceneLoader.instance.LoadMainMenuScene();
         var players = FindObjectsOfType <Player>();
         foreach (var player in players)
         {
             Destroy(player.gameObject);
         }
     }
     else
     {
         ClientInRoom.Exit();
     }
 }
コード例 #6
0
 // Start is called before the first frame update
 void Awake()
 {
     FindPlayers();
     if (!GameManager.isLocalGame)
     {
         foreach (var p in players)
         {
             if (p.userInfo.id == Client.user.id)
             {
                 Client.user.gems += p.score;
             }
         }
         ClientInRoom.SaveGems();
     }
     else
     {
         Client.user.gems += gemsEarnedInLocal;
         ClientSignedIn.SaveInfo();
     }
 }
コード例 #7
0
    public void ExitHub()
    {
        //Online game
        if (!GameManager.isLocalGame)
        {
            ClientInRoom.Exit();
        }
        //Local game
        else
        {
            Player[] players = FindObjectsOfType <Player>();

            foreach (Player player in players)
            {
                Destroy(player.gameObject);
            }

            SceneLoader.instance.LoadMainMenuScene();
        }
    }
コード例 #8
0
    public void EnterLevel()
    {
        Player[] players = FindObjectsOfType <Player>();

        foreach (Player player in players)
        {
            player.Reset();
        }

        //Online game
        if (!GameManager.isLocalGame)
        {
            ClientInRoom.GoToGameScene();
        }
        //Local game
        else
        {
            SceneLoader.instance.LoadGameScene();
        }
    }
コード例 #9
0
    private void PlayAgain()
    {
        var players = FindObjectsOfType <Player>();

        foreach (var player in players)
        {
            player.UnFreeze();
            player.Reset();
        }

        if (GameManager.isLocalGame)
        {
            SceneLoader.instance.LoadHubScene();
        }
        else if (GameManager.isHost)
        {
            PlayerSpawnerManager.firstTimeInHub = false;
            ClientInRoom.GoToHUBScene();
        }
    }
コード例 #10
0
    void OnPlayerJoined(PlayerInput playerInput)
    {
        if (currentJoinedPlayers >= maxPlayers)
        {
            Destroy(playerInput.gameObject);
            return;
        }

        Player player = playerInput.GetComponent <Player>();

        if (isInHub && !player.initialized)
        {
            player.initialized = true;

            if (!GameManager.isLocalGame)
            {
                //Online Game
                if (kicking)
                {
                    Destroy(playerInput.gameObject);
                    return;
                }
                Player playerComp = SpawnPlayerAtLocation(playerInput.gameObject);
                if (!hasJoined && playerInput.transform.parent != networkPlayersParent)
                {
                    anyInputDone = true;
                    hasJoined    = true;
                    UserInfo userInfo = new UserInfo();
                    User     user     = Client.user;
                    userInfo.id       = user.id;
                    userInfo.isHost   = GameManager.isHost;
                    userInfo.isClient = GameManager.isClient;
                    userInfo.bodyType = user.avatar_bodyType;
                    userInfo.skinTone = user.avatar_skinTone;
                    userInfo.color    = user.avatar_color;
                    userInfo.face     = user.avatar_face;
                    userInfo.hat      = user.avatar_hat;
                    userInfo.frame    = user.avatar_frame;
                    playerComp.SetUserInfo(userInfo);

                    if (joinButtons != null)
                    {
                        joinButtons.SetActive(false);
                    }

                    ClientInRoom.Spawn();
                }
                else if (playerInput.transform.parent != networkPlayersParent)
                {
                    Destroy(playerInput.gameObject);
                }
            }
            //Local Game (Random skin)
            else
            {
                anyInputDone = true;
                playerInput.GetComponent <PlayerAvatar>().UpdateVisuals();
                SpawnPlayerAtLocation(playerInput.gameObject);
            }
        }
        else
        {
            SpawnPlayerAtLocation(player.gameObject);
        }
    }