Exemple #1
0
 private void SaveToDisk()
 {
     using (FileStream stream = new FileStream(@"rank.bin", FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
     {
         stream.WriteByte((byte)entries.Count);
         for (int i = 0; i < entries.Count; i++)
         {
             RankEntry entry = entries[i];
             entry.WriteToStream(stream);
         }
     }
 }
Exemple #2
0
        private void RefreshLabels()
        {
            int count = Math.Min(9, entries.Count);

            for (int i = 0; i < count; i++)
            {
                RankEntry entry = entries[i];
                lblRankName[i].Text  = entry.Name;
                lblRankLevel[i].Text = "Lv " + (entry.Level + 1);
                lblRankScore[i].Text = entry.Score.ToString();
            }
        }
Exemple #3
0
        private void LoadRankFromDisk()
        {
            using (FileStream stream = new FileStream(@"rank.bin", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read))
            {
                if (stream.Length == 0)
                {
                    return;
                }

                int count = stream.ReadByte();
                for (int i = 0; i < count; i++)
                {
                    RankEntry entry = new RankEntry(stream);
                    rank.Add(entry);
                }
            }
        }
Exemple #4
0
        public int GetFutureEntryIndex(int score)
        {
            for (int i = 0; i < entries.Count; i++)
            {
                RankEntry entry = entries[i];
                if (entry.Score < score)
                {
                    return(i);
                }
            }

            if (entries.Count < 9)
            {
                return(entries.Count);
            }

            return(-1);
        }
Exemple #5
0
        public void AddRank(int index, RankEntry entry)
        {
            entries.Insert(index, entry);
            if (entries.Count > 9)
            {
                entries.RemoveRange(9, entries.Count - 9);
            }
            RefreshLabels();
            SaveToDisk();

            lblRankName[index].ForeColor = Color.YellowGreen;
            lblRankName[index].Font      = new Font(lblRankName[index].Font, FontStyle.Bold);

            lblRankLevel[index].ForeColor = Color.YellowGreen;
            lblRankLevel[index].Font      = new Font(lblRankName[index].Font, FontStyle.Bold);

            lblRankScore[index].ForeColor = Color.YellowGreen;
            lblRankScore[index].Font      = new Font(lblRankName[index].Font, FontStyle.Bold);
        }
Exemple #6
0
 /// <summary>
 /// Atualiza a entrada do rank a partir de outra entrada
 /// </summary>
 /// <param name="entry">Entrada do rank usada como fonte dos dados</param>
 public void UpdateFrom(RankEntry entry)
 {
     name  = entry.name;
     level = entry.level;
     score = entry.score;
 }
Exemple #7
0
 /// <summary>
 /// Cria uma nova entrada do rank a partir de outra entrada
 /// </summary>
 /// <param name="entry">Entrada do rank usada como protótipo</param>
 public RankEntry(RankEntry entry)
 {
     UpdateFrom(entry);
 }