Пример #1
0
        public void RemovePlayer(MatchPlayer player)
        {
            if (Players.Contains(player))
            {
                Players.Remove(player);

                if (player.BallObject)
                {
                    Destroy(player.BallObject.gameObject);
                }

                if (MatchPlayerRemoved != null)
                {
                    MatchPlayerRemoved(this, new MatchPlayerEventArgs(player));
                }
            }
        }
Пример #2
0
        public MatchPlayer CreatePlayer(string name, ControlType ctrlType, int characterId)
        {
            var p = new MatchPlayer(name, ctrlType, characterId);

            Players.Add(p);
            if (inLobby)
            {
                SpawnLobbyBall(p);
            }

            p.ChangedReady += AnyPlayerChangedReadyHandler;

            StopLobbyTimer();

            if (MatchPlayerAdded != null)
            {
                MatchPlayerAdded(this, new MatchPlayerEventArgs(p));
            }

            return(p);
        }
Пример #3
0
        public void AddNotInitializatedPlayer()
        {
            // this method is used when a player didnt choose a character, we proceed to assign him a default one
            for (int i = 0; i < NetworkServer.connections.Count; i++)
            {
                bool iniciado = false;
                for (int j = 0; j < Players.Count; j++)
                {
                    if (NetworkServer.connections[i] == Players[j].ConnectionSelf)
                    {
                        iniciado = true;
                    }
                    else
                    {
                    }
                }

                if (!iniciado && NetworkServer.connections[i] != null)
                {
                    var p = new MatchPlayer("Player_", ControlType.Keyboard, 0);

                    p.ConnectionSelf = NetworkServer.connections[i];
                    Players.Add(p);
                    if (inLobby)
                    {
                    }

                    p.ChangedReady += AnyPlayerChangedReadyHandler;


                    if (MatchPlayerAdded != null)
                    {
                        MatchPlayerAdded(this, new MatchPlayerEventArgs(p));
                    }
                }
            }
        }
Пример #4
0
        // aparece el lobbyBall
        private void SpawnLobbyBallFromRace(MatchPlayer player)
        {
            LobbyBallSpawner spawner = LobbyReferences.Active.BallSpawner;

            if (player.ConnectionSelf != null)
            {
                replace = true;

                Debug.Log("We delete the gameobject and then proceed to make a replacement.");
            }
            if (isServer && !replace)
            {
                player.ConnectionSelf = NetworkServer.connections[0];
            }

            if (!replace)
            {
                player.BallObject = spawner.SpawnBall(Data.PlayerType.Normal, player.CtrlType, player.CharacterId, "Player", NetworkManager.singleton.client.connection);               // en cliente esto da nulo,, creo.
            }
            else
            {
                player.BallObject = spawner.SpawnBall(Data.PlayerType.Normal, player.CtrlType, player.CharacterId, "Player", player.ConnectionSelf);               // en cliente esto da nulo,, creo.
            }
        }
Пример #5
0
        public void CmdSetMatchManager( )
        {
            if (isClient && !isLocalPlayer)
            {
                bool repeated = false;
                for (int i = 0; i < NetworkServer.connections.Count; i++)
                {
                    if (NetworkServer.connections[i] != null)
                    {
                        if (this.connectionToClient.connectionId == NetworkServer.connections[i].connectionId)
                        {
                            Debug.Log("THE CONNECTION WAS FOUND  " + this.connectionToClient.connectionId);
                        }
                    }
                }

                for (int i = 0; i < NetworkServer.connections.Count; i++)
                {
                    if (NetworkServer.connections[i] != null)
                    {
                        if (this.connectionToClient.connectionId == NetworkServer.connections[i].connectionId)
                        {                        //HE CONNECTION WAS FOUND  in the SERVER..
                            for (int j = 0; j < NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Count; j++)
                            {
                                if (this.connectionToClient.connectionId == NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[j].ConnectionSelf.connectionId)
                                {
                                    repeated = true;
                                }
                            }

                            if (!repeated)
                            {
                                MatchPlayer p = new MatchPlayer(this.name, this.ctrlType, this.characterId);
                                p.CharacterId    = this.characterId;
                                p.ConnectionSelf = NetworkServer.connections[i];
                                p.BallObject     = GetComponent <Ball>();
                                p = NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.AddReadyEvent(p);

                                NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Add(p);
                            }
                        }
                    }
                }
            }


            /*
             * if( NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Count==1)
             * {
             *
             *      MatchPlayer p = new MatchPlayer(this.name, this.ctrlType, this.characterId);
             *
             *      NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Add(p);
             *              Debug.Log("knknknkjnkjnknkjnkjnkjnk2");
             * }
             * if( NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players.Count==2){
             *      NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].CharacterId= this.characterId;
             *      NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].ConnectionSelf= NetworkServer.connections[1];
             *
             *      Debug.Log("THE CONNECTION  "+ NetworkManager.singleton.GetComponent<SanicNetworkManager>().matchManager.Players[1].ConnectionSelf);
             *
             *
             *
             *
             * }
             */
        }
Пример #6
0
        public override void OnStartLocalPlayer()
        {
            if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != "Lobby")
            {
                if (!isServer)
                {
//					NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManager=
//						Instantiate( NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManagerPrefab);

//					NetworkManager.singleton.GetComponent<SanicNetworkManager>().raceManager.currentState=Sanicball.RaceState.Countdown;
                }
            }

            // esto corre cada vez que instancio a mi proppia pelota, en mi propia identidad.
            //no se instancia con el vecino...
            Debug.Log("Client as been started Locally");


            this.type        = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().tipo;
            this.ctrlType    = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().controlTipo;
            this.characterId = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().personaje;
            this.nickname    = GameObject.Find("SanicNetworkManager").GetComponent <SanicNetworkManager>().nickName;


            if (!isServer)
            {
                if (NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Count > 0)
                {
                    if (NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[0].BallObject == null)
                    {
                        if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Lobby")
                        {
                            CmdInit(this.type, this.ctrlType, this.characterId, this.nickname);
                        }
                    }
                    else
                    {
                    }
                }
                else
                {
                    if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != "Lobby")
                    {
                        Debug.Log("There are not initialized local players, the player didnt choose a character.");

                        if (isLocalPlayer)
                        {
                            var p = new MatchPlayer("Player._.", ControlType.Keyboard, 0);

                            NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players.Add(p);
                        }
                    }
                }


                CmdSetMatchManager();

                NetworkManager.singleton.GetComponent <SanicNetworkManager>().matchManager.Players[0].BallObject = this.GetComponent <Ball>();
            }
            else
            {
                Debug.Log("As Im server, I need to send RpcInit to star the balls in clients");

                RpcInit(this.type, this.ctrlType, this.characterId, this.nickname);
            }
        }
Пример #7
0
 public MatchPlayerEventArgs(MatchPlayer player)
 {
     Player = player;
 }