Ejemplo n.º 1
0
    // this syncs all inputs from all other clients into single place in server
    public void SyncInputFromClients(IEnums.PlayerPosition pPosition, Vector3[] pTouchInput)
    {
        if (inputDictionary == null)
        {
            InitInputDictionary();
        }

        inputDictionary[pPosition] = pTouchInput;
    }
 void RpcSetPlayerPosition(string pPlayerName, IEnums.PlayerPosition pPlayerPosition)
 {
     if (pPlayerName == Common._PlayerName)
     {
         Debug.Log(Common._PlayerName + ": " + pPlayerName + " selected " + pPlayerPosition);
         Common._PlayerPosition = pPlayerPosition;
     }
     GameNetworkManager.singleton.gameStartController.beginLevel();
     Debug.Log("RpcSetPlayerPosition called");
 }
 void CmdSetPlayerInput(IEnums.PlayerPosition pPosition, Vector3[] pInputTouches)
 {
     // server
     GameNetworkManager.singleton.shipMovementController.SyncInputFromClients(pPosition, pInputTouches);
 }
    void CmdPlayerReady(string pPlayerName)
    {
        for (int i = 0; i < GameNetworkManager.singleton.positionsOccupiedByPlayers.Length; i++)
        {
            if (GameNetworkManager.singleton.positionsOccupiedByPlayers[i] == pPlayerName)
            {
                GameNetworkManager.singleton.isPlayersReady[i] = true;
                break;
            }
        }

        RpcPlayerStatusUpdated(GameNetworkManager.singleton.positionsOccupiedByPlayers, GameNetworkManager.singleton.isPlayersReady);
        int playerCount     = GameNetworkManager.singleton.playerNameList.Count;
        int numPlayersReady = 0;

        for (int i = 0; i < GameNetworkManager.singleton.isPlayersReady.Length; i++)
        {
            if (GameNetworkManager.singleton.isPlayersReady[i])
            {
                numPlayersReady++;
            }
        }

        Debug.Log("if " + numPlayersReady + ">=" + playerCount + " then show in game");

        IEnums.PlayerPosition playerSelectedPosition = IEnums.PlayerPosition.CoaxialCannon;
        for (int i = 0; i < GameNetworkManager.singleton.positionsOccupiedByPlayers.Length; i++)
        {
            //Debug.Log(GameNetworkManager.singleton.positionsOccupiedByPlayers[i] + " == " + pPlayerName);
            if (GameNetworkManager.singleton.positionsOccupiedByPlayers[i] == pPlayerName)
            {
                switch (i)
                {
                case 0:
                    playerSelectedPosition = IEnums.PlayerPosition.CoaxialCannon;
                    break;

                case 1:
                    playerSelectedPosition = IEnums.PlayerPosition.Drones;
                    break;

                case 2:
                    playerSelectedPosition = IEnums.PlayerPosition.Missiles;
                    break;

                case 3:
                    playerSelectedPosition = IEnums.PlayerPosition.Shield;
                    break;
                }

                RpcSetPlayerPosition(pPlayerName, playerSelectedPosition);
                break;
            }
        }

        if (numPlayersReady > 0 && numPlayersReady >= playerCount)
        {
            RpcShowIngameUI();
            GameNetworkManager.singleton.EnableEnemySpawner();
            //GameNetworkManager.singleton.gameStartController.beginLevel();
            GameNetworkManager.singleton.EnemySpawner.spawningEnabled = true;
        } // end of if (numPlayersReady)
    }