Пример #1
0
 public void DeletePlayerAndInfo()
 {
     currentPlayer = null;
     Destroy(playerPref);
     Destroy(playerInfo);
     darkBody.SetActive(true);
 }
Пример #2
0
    private void SpawnBody(PaintBallPlayer player)
    {
        {
            //turn off dark body
            darkBody.SetActive(false);

            //instattiate body from dobyConf
            GameObject bodyPref = ScriptableList <BodyConfig> .instance.GetItemByID(player.bodyConfigID).game_body_prefab;

            GameObject nakedBody = Instantiate(bodyPref, spawnPlaceHolder.transform.position, spawnPlaceHolder.transform.rotation, spawnPlaceHolder.transform);

            //add component SkinsManager
            var skinsManager = nakedBody.AddComponent <SkinsManager>();

            //skinsmanag.initializeFields ????
            skinsManager.InitializeFields(nakedBody.transform);

            //put on clothes from our field
            skinsManager.PutOnClothes(player.clothesConfig);

            playerPref    = nakedBody;
            currentPlayer = player;

            Destroy(skinsManager);
        }
    }
    void InitializeSpawnedPlayer(GameObject player, PaintBallPlayer paintBallPlayer)
    {
        myPlayer = paintBallPlayer; //save for later

        if (!photon.IsMine)         //if photon isnot ours, disable cam
        {
            GameObject playerCam = player.GetComponentInChildren <PlayerCamera>().gameObject;
            playerCam.SetActive(false);
        }

        //in skins manager change gameMode to paintball
        player.GetComponent <SkinsManager>()._gameMode = GameMode.Paintball;

        PlayerTeam playerTeam = player.GetComponent <PlayerTeam>();
        var        myTeam     = PaintBallTeamManager.Instance.GetTeamByIndex(paintBallPlayer.teamIndex);

        Color teamColor;

        ColorUtility.TryParseHtmlString("#" + myTeam.hexColor, out teamColor);
        teamCol = teamColor;

        playerTeam.InitializePlayerTeam(myTeam, teamColor);

        DisablePlayer(); //don't move and shoot before start
    }
    void SetPlayerTeamAndNickName(PaintBallPlayer player, Color teamCol)
    {
        teamCanvasGO.SetActive(true);

        var playerTMinfo = teamCanvasGO.GetComponent <PlayerTeamInfo>();

        playerTMinfo.Initialize(player.nickName, teamCol);
    }
Пример #5
0
    public void JoinTeam(PaintBallPlayer newPlayer)
    {
        if (playersInTeam.Count < playersMax)
        {
            playersInTeam.Add(newPlayer);
/*            Debug.Log("PLAYER :" + newPlayer.nickName + "JOINED " + teamName.ToString() + " TEAM!");*/
        }
    }
Пример #6
0
    private GameObject PickStartSpawnPoint(PaintBallPlayer player)
    {
        //we take pedestal index as spawnpoint
        PaintBallSpawnPoint point = spawnPoints.Where(x => x.startSpawnIndex == player.myPedestalIndex).ToList()[0];

        //pick random one

        return(point.gameObject);
    }
Пример #7
0
    private void SpawnPlayerInfo(PaintBallPlayer player)
    {
        //spawn info in placeholder
        /*var newInfo = PhotonNetwork.Instantiate(playerInfoRectPrefab.name, infoPlaceHolder.transform.position , Quaternion.identity, 0, null, infoCanvas.transform);*/

        var newInfo = Instantiate(playerInfoRectPrefab, infoPlaceHolder.transform.position, Quaternion.identity, infoCanvas.transform);

        newInfo.GetComponent <InfoPlayer>().Initialize(player.nickName, player.nickName == SaveManager.Instance.GetNickName(), infoPlaceHolder); //we check if our player is target player

        playerInfo = newInfo;
    }
Пример #8
0
    void SendLocalPlayerDataToMaster()
    {
        SaveManager saveManager = SaveManager.Instance;

        PaintBallPlayer newPlayerToJoin = new PaintBallPlayer(saveManager.LoadBody().ConfigId,
                                                              saveManager.LoadClothesSet(saveManager.LoadBody().gender.ToString() + GameMode.Paintball.ToString()), saveManager.GetNickName());

        ExitGames.Client.Photon.Hashtable customProperties = new ExitGames.Client.Photon.Hashtable();
        customProperties.Add("newPlayerToJoin", JsonConvert.SerializeObject(newPlayerToJoin));
        PhotonNetwork.LocalPlayer.SetCustomProperties(customProperties);
    }
    public void OnPhotonInstantiate(PhotonMessageInfo info)
    {
        var customProps = info.Sender.CustomProperties;

        if (customProps["playerWithTeam"] != null)
        {
            string          newPlayer     = customProps["playerWithTeam"].ToString();
            PaintBallPlayer spawnedPlayer = JsonConvert.DeserializeObject <PaintBallPlayer>(newPlayer);
            InitializeSpawnedPlayer(gameObject, spawnedPlayer);
        }
        else
        {
            Debug.LogError("Dont have key [playerWithTeam] in custom props");
        }
    }
Пример #10
0
    private void OnNewPlayerJoins(string playerWithTeam)
    {
        PaintBallPlayer player  = JsonConvert.DeserializeObject <PaintBallPlayer>(playerWithTeam);
        var             newTeam = paintBallTeamManager.AddPlayerToTeam(player.teamIndex, player);

        var pedestal = player.GetTeamPedestal(newTeam);

        var pedestalController = pedestal.GetComponent <PedestalController>();

        pedestalController.SpawnPlayerAndInfo(player);
        player.myPedestalIndex = pedestalController.pedestalID;

        //if the player who joined is ours, add this player as my player for future
        if (player.photonActorNumber == PhotonNetwork.LocalPlayer.ActorNumber)
        {
            paintBallTeamManager.SetMyPlayerAndMyTeam(player, newTeam);
        }
    }
Пример #11
0
/*    private void SpawnNewPlayerForClients(Player targetPlayer, ExitGames.Client.Photon.Hashtable changedProps)
 *  {
 *      if (!paintBallTeamManager.PlayerIsInTeam(targetPlayer.ActorNumber*//*.ToString()*//*))
 *      {
 *          string playerJson = changedProps["newPlayerWithTeam"].ToString();
 *          PaintBallPlayer finalPlayer = JsonConvert.DeserializeObject<PaintBallPlayer>(playerJson);
 *          int teamIndex = (int)changedProps["teamIndex"];
 *
 *          OnNewPlayerJoins(finalPlayer, teamIndex);
 *      }
 *  }*/

    private void PickTeamForNewPlayer(Player targetPlayer, ExitGames.Client.Photon.Hashtable changedProps)
    {
        if (paintBallTeamManager.LookForEmptySlot() && !paintBallTeamManager.PlayerIsInTeam(targetPlayer.ActorNumber /*.ToString()*/)) //
        {
            string          newPlayerJSON = changedProps["newPlayerToJoin"].ToString();
            PaintBallPlayer player        = JsonConvert.DeserializeObject <PaintBallPlayer>(newPlayerJSON);

            player.SetTeam(paintBallTeamManager.PickTeam());


            //Master fills empty fields for new player
            player.photonActorNumber = targetPlayer.ActorNumber;

            string playerWithTeam = JsonConvert.SerializeObject(player);

            changedProps.Add("playerWithTeam", playerWithTeam);
            targetPlayer.SetCustomProperties(changedProps);
/*            SetTeamsToRoomProps();*/

            photon.RPC("OnNewPlayerJoins", RpcTarget.All, playerWithTeam);
        }
    }
Пример #12
0
    public PaintBallTeam AddPlayerToTeam(int teamIndex, PaintBallPlayer player)
    {
        PaintBallTeam playerNewTeam = null;

        foreach (var team in teams)
        {
            if (team.teamIndex == teamIndex)
            {
                playerNewTeam = team;
                playerNewTeam.JoinTeam(player);
            }
        }

        if (playerNewTeam == null)
        {
            Debug.LogError("CannotFind team by index");
            return(null);
        }
        else
        {
            return(playerNewTeam);
        }
    }
Пример #13
0
 private void Initialize()
 {
     if (PhotonNetwork.IsConnectedAndReady)
     {
         if (photon.IsMine) //we spawn body for our player
         {
             currentBodyConfig = saveManager.LoadBody();
             ApplyBodyConfig(currentBodyConfig);
         }
         else if (!photon.IsMine && photon.Owner != null) //we spawn other player bodies
         {
             var             playerProps   = photon.Owner.CustomProperties;
             string          PlayerBodySTR = playerProps["playerWithTeam"].ToString();
             PaintBallPlayer player        = JsonConvert.DeserializeObject <PaintBallPlayer>(PlayerBodySTR);
             ApplyBodyConfig(player.bodyConfigID);
         }
     }
     //we just spawn locally
     else if (saveManager.LoadBody() != null)
     {
         currentBodyConfig = saveManager.LoadBody();
         ApplyBodyConfig(currentBodyConfig);
     }
 }
Пример #14
0
 public void SpawnPlayerAndInfo(PaintBallPlayer player)
 {
     SpawnBody(player);
     SpawnPlayerInfo(player);
 }
Пример #15
0
 public void SetMyPlayerAndMyTeam(PaintBallPlayer player, PaintBallTeam team)
 {
     myPlayer = player;
     myTeam   = team;
 }
Пример #16
0
 public void RemoveFromTeam(PaintBallPlayer player)
 {
     playersInTeam.Remove(player);
 }