예제 #1
0
        public void Add(LeaderboardEntry entry)
        {
            if (scores.Count == 0)
            {
                scores.Add(entry);
                return;
            }

            bool added = false;

            for (int i = 0; i < scores.Count; ++i)
            {
                if (entry.Score > scores[i].Score)
                {
                    scores.Insert(i, entry);
                    added = true;
                    break;
                }
            }

            if (!added && scores.Count < MaxSize)
            {
                scores.Add(entry);
            }

            if (scores.Count > MaxSize)
            {
                scores.RemoveRange(MaxSize, scores.Count - MaxSize);
            }
        }
예제 #2
0
 public bool TryAdd(LeaderboardEntry entry)
 {
     if (scores.Count < MaxSize || entry.Score > LastOrDefault().Score)
     {
         Add(entry);
         return(true);
     }
     return(false);
 }
예제 #3
0
 public static bool TryAdd(LeaderboardEntry entry)
 {
     if (content.TryAdd(entry))
     {
         WriteLeaderboard();
         return(true);
     }
     else
     {
         return(false);
     }
 }