예제 #1
0
    //check scores for adding, if more than max then keep the highest
    public void AddEntry(ScoreboardEntryData scoreboardEntryData)
    {
        ScoreboardSaveData SavedScores = GetSavedScore();

        bool scoreAdded = false;

        //find the higher score and save to scoreboard
        for (int i = 0; i < SavedScores.Scores.Count; i++)
        {
            if (scoreboardEntryData.InputScore > SavedScores.Scores[i].InputScore)
            {
                SavedScores.Scores.Insert(i, scoreboardEntryData);
                scoreAdded = true;
                break;
            }
        }

        //check max, if not max then add more
        if (!scoreAdded && SavedScores.Scores.Count < MaxScoreboard)
        {
            SavedScores.Scores.Add(scoreboardEntryData);
        }

        //check for more than max
        if (SavedScores.Scores.Count > MaxScoreboard)
        {
            SavedScores.Scores.RemoveRange(MaxScoreboard, SavedScores.Scores.Count - MaxScoreboard);
        }

        UpdateUI(SavedScores);
        SaveScores(SavedScores);
    }
예제 #2
0
    public void UpdateScoreBoard()
    {
        //Sort dictionaty by kills
        var items = from pair in GameSystem.Instance.ActorsKills
                    orderby pair.Value descending
                    select pair;

        int i = 0;

        foreach (KeyValuePair <GameObject, int> pair in items)
        {
            ScoreboardEntryData sed = entryDataList[pair.Key];
            sed.kills = pair.Value;
            sed.death = GameSystem.Instance.ActorsDeaths[pair.Key];

            if (pair.Key.CompareTag("Player"))
            {
                entryUIList[i].UpdateInfo(sed, true);
            }
            else
            {
                entryUIList[i].UpdateInfo(sed, false);
            }
            i++;
        }
    }
예제 #3
0
    public bool AddEntry(ScoreboardEntryData entryData)
    {
        ScoreboardSavedData savedData = LoadSavedData();
        bool isAdded = false;

        for (int i = 0; i < savedData.highscores.Count; i++)
        {
            if (entryData.score > savedData.highscores[i].score)
            {
                savedData.highscores.Insert(i, entryData);
                isAdded = true;
                break;
            }
        }

        if (!isAdded && savedData.highscores.Count < _maxNumberOfEntries)
        {
            savedData.highscores.Add(entryData);
            isAdded = true;
        }

        if (savedData.highscores.Count > _maxNumberOfEntries)
        {
            savedData.highscores.RemoveRange(
                _maxNumberOfEntries,
                savedData.highscores.Count - _maxNumberOfEntries
                );
        }
        if (isAdded)
        {
            SaveData(savedData);
            UpdateUI(savedData);
        }
        return(isAdded);
    }
예제 #4
0
    public void SaveScore()
    {
        ScoreboardEntryData entry = new ScoreboardEntryData
        {
            score = _value,
            date  = DateTime.Today.ToString("d")
        };

        _scoreboard.GetComponent <Scoreboard>().AddEntry(entry);
        _betweenScenesValue = _value;
    }
예제 #5
0
    public void AddScore()
    {
        string username = inputObject.text;

        Debug.Log($"{username} : {score.ToString()}");

        var newScore = new ScoreboardEntryData();

        newScore.entryName  = username;
        newScore.entryScore = score;

        FindObjectOfType <Scoreboard>().AddEntry(newScore);
        submittedText.SetActive(true);
    }
예제 #6
0
    /*private void Awake()
     * {
     *  background = GetComponent<Image>();
     * }*/

    public void UpdateInfo(ScoreboardEntryData data, bool highlight = false)
    {
        nicknameText.text = data.nickname;
        killsText.text    = data.kills.ToString();
        deathText.text    = data.death.ToString();

        if (highlight)
        {
            background.color = highlightColor;
        }
        else
        {
            background.color = defaultColor;
        }
    }
예제 #7
0
    private void CreateScoreboardEntryData()
    {
        var actors = GameSystem.Instance.ActorsKills.Keys;

        foreach (var actor in actors)
        {
            ScoreboardEntryData sed = new ScoreboardEntryData();
            if (actor.CompareTag("Player"))
            {
                sed.nickname = "YOU";
            }
            else
            {
                sed.nickname = "BOT " + numberOfBots;
                numberOfBots++;
            }
            entryDataList.Add(actor, sed);
        }
    }
 public void init(ScoreboardEntryData scoreboardEntryData)
 {
     InputNameText.text  = scoreboardEntryData.InputName;
     InputScoreText.text = scoreboardEntryData.InputScore.ToString();
 }
예제 #9
0
 public void Init(ScoreboardEntryData scoreboardEntryData)
 {
     _scoreText.text = scoreboardEntryData.score.ToString();
     _dateText.text  = scoreboardEntryData.date.ToString();
 }