Ejemplo n.º 1
0
    public void InitPlayerRanksScreen(List <PlayerReplayModel> playerReplays, PlayerReplayModel currentPlayerReplay)
    {
        foreach (Transform playerRow in PlayerRanksScreen.transform.Find("Players"))
        {
            Destroy(playerRow.gameObject);
        }

        playerReplays.Add(currentPlayerReplay);
        playerReplays.Sort((x, y) => y.ReplayTime.CompareTo(x.ReplayTime));

        for (int i = 0; i < playerReplays.Count; i++)
        {
            PlayerRowController playerRow = (PlayerRowController)Instantiate(PlayerRow);
            playerRow.SetPlayerRow((i + 1) + ". " + playerReplays[i].UserName, GetTimeText(playerReplays[i].ReplayTime));

            if (currentPlayerReplay == playerReplays[i])
            {
                playerRow.MarkRowAsPlayer();
            }

            playerRow.transform.SetParent(PlayerRanksScreen.transform.Find("Players"), false);
        }

        WaitScreen.SetActive(false);
        PlayerRanksScreen.SetActive(true);
    }
Ejemplo n.º 2
0
    //SELECT Users.UserName, Levels.LevelName, ReplayTime, ReplayData FROM Replays
    //INNER JOIN Users ON Users.Id = Replays.UserId
    //INNER JOIN Levels ON Levels.Id = Replays.LevelId
    //WHERE Levels.LevelName = 'test' ORDER BY ReplayTime ASC LIMIT 26;
    public IEnumerator GetPlayerReplaysServer(string levelName, int numOfReplays, Action <List <PlayerReplayModel> > action)
    {
        string hash = Md5Sum(levelName + secretKey);
        List <PlayerReplayModel> replays = new List <PlayerReplayModel>();
        WWW GetReplaysPost = new WWW(GetReplaysUrl + "levelName=" + WWW.EscapeURL(levelName) + "&hash=" + hash + "&numOfReplays=" + numOfReplays);

        Debug.Log(GetReplaysPost.url);
        yield return(GetReplaysPost);

        if (GetReplaysPost.error == null)
        {
            Debug.Log(GetReplaysPost.text);
            foreach (JSONNode replay in JSON.Parse(GetReplaysPost.text))
            {
                string playerReplayJson = replay.ToString().Replace("\\", String.Empty);
                playerReplayJson = playerReplayJson.ToString().Replace("\"[{", "[{");
                playerReplayJson = playerReplayJson.ToString().Replace("}]\"", "}]");
                PlayerReplayModel newPlayerReplayModel = JsonUtility.FromJson <PlayerReplayModel> (playerReplayJson);
                replays.Add(newPlayerReplayModel);
            }

            action(replays);
        }
        else
        {
            replays = new List <PlayerReplayModel>();
            action(replays);
        }
    }
 public void StartRecording()
 {
     _playerPlayback = new PlayerReplayModel();
     _timeStarted    = Time.time;
     _timePassed     = 0.0f;
     _recording      = true;
     AddState(_timePassed);
 }
Ejemplo n.º 4
0
 void PlayerCaught()
 {
     if (_gameOn)
     {
         _gameOn = false;
         Level.SetSectionCreator(Bug.Bug);
         PlayerReplayModel currentReplay = Player.PlayerCompleted(_levelName, GrappleUI.Timer);
         GrappleUI.InitPlayerRanksScreen(_replays, currentReplay);
         GrappleUI.StopTimer();
         Invoke("ShowEndScreen", 2.0f);
     }
 }
    public PlayerReplayModel DoneRecording(string levelName, float replayTime)
    {
        AddState(_timePassed);
        _recording = false;
        PlayerReplayModel playerReplayModel = new PlayerReplayModel(PlayerPrefs.GetString(Constants.USERNAME_KEY), levelName, replayTime, _playerPlayback.ReplayData);

        PlayerReplay.Instance.StartCoroutine(PlayerReplay.SavePlayerPlayback(playerReplayModel, (Success) => {
            // placeholder if needed
        }));

        return(playerReplayModel);
    }
Ejemplo n.º 6
0
    IEnumerator ReleaseGhosts()
    {
        while (true)
        {
            GhostPlaybackController ghostPlayback = (GhostPlaybackController)Instantiate(GhostPlayback);
            ghostPlayback.transform.SetParent(GhostHolder.transform);
            ghostPlayback.SetPlayerReplayModel(_replays[0]);
            _ghostPlaybacks.Add(ghostPlayback);
            ghostPlayback.StartPlayGhostPlayback();

            PlayerReplayModel tempPlayerReplayModel = new PlayerReplayModel(_replays[0].UserName, _replays[0].LevelName, _replays[0].ReplayTime, _replays[0].ReplayData);
            _replays.RemoveAt(0);
            _replays.Add(tempPlayerReplayModel);

            yield return(new WaitForSeconds(_ghostReleaseInterval));
        }
    }
Ejemplo n.º 7
0
    public IEnumerator AddReplay(PlayerReplayModel playerReplay, Action <bool> action)
    {
        string   hash             = Md5Sum(playerReplay.UserName + secretKey);
        var      encoding         = new System.Text.UTF8Encoding();
        string   playerReplayJson = JsonUtility.ToJson(playerReplay);
        JSONNode replayJsonNode   = JSON.Parse(playerReplayJson);
        //byte[] postData = encoding.GetBytes(replayJsonNode["ReplayData"].ToString());

        UnityWebRequest www = UnityWebRequest.Post(AddReplayURL + "userName="******"&hash=" + hash + "&levelName=" + playerReplay.LevelName + "&replayTime=" + playerReplay.ReplayTime, replayJsonNode["ReplayData"].ToString());

        //WWW ReplayPost = new WWW(AddReplayURL + "userName="******"&hash=" + hash + "&levelName=" + playerReplay.LevelName + "&replayTime=" + playerReplay.ReplayTime, postData);
        yield return(www.SendWebRequest());

        if (www.error == null)
        {
            action(true);
        }
        else
        {
            action(false);
        }
    }
 void Awake()
 {
     _player         = transform.parent.GetComponent <PlayerController>();
     _playerPlayback = new PlayerReplayModel();
 }
 public void SetPlayerReplayModel(PlayerReplayModel playerReplayModel)
 {
     _playerReplayModel         = playerReplayModel;
     _ghostPlayer.Username.text = _playerReplayModel.UserName;
 }