Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        // if game hasn't started or if game is over, ignore
        if (!gameStart.GetGameStart() || gameOver)
        {
            return;
        }

        if (!platform.GetRendering() || !hammer.GetRendering() || menu.GetStopGame())
        {
            return;
        }

        if (timeLeft <= 0)                                     // game ends if timer is over
        {
            if (!savedScore)
            {
                int finalScore = score.GetScore();             // get final score on this match
                PlayerHighscore.AddScore(finalScore);          // update high scores' table

                savedScore = true;
                gameOver   = true;
                StartCoroutine(ShowTimerOverMsg());
            }
        }
        else
        {
            convertTime();
            textTimer.text = minutes + ":" + seconds;
        }
    }
Esempio n. 2
0
    // creates the 3 text objects and assigns the text to them - based on the current object of the foreach loop in LoadPlayerHighscore()
    private void CreateHighscoreEntryTransform(PlayerHighscore highscoreEntry, Transform container,
                                               List <Transform> transformList)
    {
        var templateHeight     = 50f;
        var entryTransform     = Instantiate(entryTemplate, container);
        var entryRectTransform = entryTransform.GetComponent <RectTransform>();

        entryRectTransform.anchoredPosition = new Vector2(0, -templateHeight * transformList.Count);
        entryTransform.gameObject.SetActive(true);

        var    rank = transformList.Count + 1;
        string rankString;

        switch (rank)
        {
        default:
            rankString = rank + "TH";
            break;

        case 1:
            rankString = "1ST";
            break;

        case 2:
            rankString = "2ND";
            break;

        case 3:
            rankString = "3RD";
            break;
        }

        entryTransform.Find("posText").GetComponent <Text>().text = rankString;

        var score = highscoreEntry.score;

        entryTransform.Find("scoreText").GetComponent <Text>().text = score.ToString();

        var name = highscoreEntry.name;

        entryTransform.Find("nameText").GetComponent <Text>().text = name;

        transformList.Add(entryTransform);
    }
Esempio n. 3
0
    // show scores
    public void ShowScores()
    {
        List <int> scoresList = PlayerHighscore.LoadScores();

        if (scoresList.Count == 0)
        {
            noScores.SetActive(true);
        }
        else
        {
            for (int i = 0; i < scoresList.Count; i++)
            {
                scoresObj[i].SetActive(true);                           // sets score object to active
                Text scoreText = scoresObj[i].GetComponent <Text>();    // gets its text component

                int tmpNumber = i + 1;                                  // number being shown on scores table

                scoreText.text = tmpNumber + ". " + scoresList[i];      // change text
            }
        }
    }
    // Player class and methods \\
    // adds ne high score to the PlayerPrefs with JSON, sorts the stats and limits them to 15
    private void AddPlayerHighscore(string name, int score, int jumps, int walked)
    {
        // create new high score entry
        var highscore = new PlayerHighscore
        {
            name   = name,
            score  = score,
            jumps  = jumps,
            walked = walked
        };

        // load saved high score
        var loadListJSON   = PlayerPrefs.GetString("allHighscores");
        var highscoresList = JsonUtility.FromJson <Highscores>(loadListJSON);

        // if no data available
        if (highscoresList == null)
        {
            highscoresList = new Highscores()
            {
                playerHighscoreList = new List <PlayerHighscore>()
            };
        }

        // check if current high score > 15. place
        if (highscoresList.playerHighscoreList.Count < 15)
        {
            // add new high score
            highscoresList.playerHighscoreList.Add(highscore);
        }
        else if (highscoresList.playerHighscoreList.Count == 15)
        {
            if (highscore.score > highscoresList.playerHighscoreList[14].score)
            {
                highscoresList.playerHighscoreList[14] = highscore;
            }
        }


        // sort list before saving
        for (var i = 0; i < highscoresList.playerHighscoreList.Count; i++)
        {
            for (var j = i + 1; j < highscoresList.playerHighscoreList.Count; j++)
            {
                if (highscoresList.playerHighscoreList[j].score > highscoresList.playerHighscoreList[i].score)
                {
                    // swap
                    var tmp = highscoresList.playerHighscoreList[i];
                    highscoresList.playerHighscoreList[i] = highscoresList.playerHighscoreList[j];
                    highscoresList.playerHighscoreList[j] = tmp;
                }
            }
        }

        // save list to file
        var saveListJSON = JsonUtility.ToJson(highscoresList);

        Debug.Log(saveListJSON);
        PlayerPrefs.SetString("allHighscores", saveListJSON);
        PlayerPrefs.Save();
    }