Ejemplo n.º 1
0
    /// <summary>
    /// Finds the nearest entries in each of the leaderboards and outputs it to the three closest variables
    /// </summary>
    /// <param name="entry">The entry that you want to compare to the leaderboard</param>
    public void FindClosest(LeaderboardEntry entry = null)
    {
        if (entry == null)
        {
            entry = LeaderboardManager.Instance.playerHigh;
        }
        for (int i = 0; i < AllTime.board.Count; i++)
        {
            if (entry.Compare(AllTime.board[i]))
            {
                if (i == 0)
                {
                    closestAllTime = new LeaderboardEntry("NaN", "You", LeaderboardManager.Instance.playerEntry.Score);
                }
                else
                {
                    closestAllTime = AllTime.board[Mathf.Clamp(i - 1, 0, AllTime.board.Count)];
                }
                break;
            }
            if (i == AllTime.board.Count - 1)
            {
                closestAllTime = AllTime.board[i];
            }
        }
        for (int i = 0; i < Weekly.board.Count; i++)
        {
            if (entry.Compare(Weekly.board[i]))
            {
                if (i == 0)
                {
                    closestWeekly = new LeaderboardEntry("NaN", "You", LeaderboardManager.Instance.playerEntry.Score);
                }
                else
                {
                    closestWeekly = Weekly.board[Mathf.Clamp(i - 1, 0, Weekly.board.Count)];
                }
                break;
            }
            if (i == Weekly.board.Count - 1)
            {
                closestWeekly = Weekly.board[i];
            }
        }
        for (int i = 0; i < Daily.board.Count; i++)
        {
            if (entry.Compare(Daily.board[i]))
            {
                if (i == 0)
                {
                    closestDaily = new LeaderboardEntry("NaN", "You", LeaderboardManager.Instance.playerEntry.Score);
                }
                else
                {
                    closestDaily = Daily.board[Mathf.Clamp(i - 1, 0, Daily.board.Count)];
                }
                break;
            }
            if (i == Daily.board.Count - 1)
            {
                closestDaily = Daily.board[i];
            }
        }

        closestOverall = closestAllTime.Compare(closestWeekly) ? closestWeekly : closestAllTime;
        closestOverall = closestOverall.Compare(closestDaily) ? closestDaily : closestOverall;
    }