public static void Sort(
public static void Sort(uint updateUID) { SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>(); int Place = 0; foreach (NobilityInformation entry in Board.Values.OrderByDescending((p) => p.Donation)) { Client.GameState client = null; try { int previousPlace = entry.Position; entry.Position = Place; NobilityRank Rank = NobilityRank.Serf; if (Place >= 50) { if (entry.Donation == 1) { Rank = NobilityRank.King; } else { if (entry.Donation >= 200000000) { Rank = NobilityRank.Earl; } else if (entry.Donation >= 100000000) { Rank = NobilityRank.Baron; } else if (entry.Donation >= 30000000) { Rank = NobilityRank.Knight; } else { Rank = NobilityRank.Serf; } } } else { if (entry.Donation == 1) { Rank = NobilityRank.King; } else { if (Place < 2)//serverrank { Rank = NobilityRank.King; } else if (Place < 24) { Rank = NobilityRank.Prince; } else { Rank = NobilityRank.Duke; } } } var oldRank = entry.Rank; entry.Rank = Rank; if (Kernel.GamePool.TryGetValue(entry.EntityUID, out client)) { bool updateTheClient = false; if (oldRank != Rank) { updateTheClient = true; if (Rank == NobilityRank.Duke) { Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " has the Duke title in Frozen||Hell.", System.Drawing.Color.White, Message.Center), Program.Values); } if (Rank == NobilityRank.Prince) { Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " has the Prince title in Frozen||Hell.", System.Drawing.Color.White, Message.Center), Program.Values); } if (Rank == NobilityRank.King) { Kernel.SendWorldMessage(new Message("Congratulation! " + client.Entity.Name + " has become the new King/Queen in Frozen||Hell.", System.Drawing.Color.White, Message.Center), Program.Values); } } else { if (previousPlace != Place) { updateTheClient = true; } } if (updateTheClient || client.Entity.UID == updateUID) { NobilityInfo update = new NobilityInfo(true); update.Type = NobilityInfo.Icon; update.dwParam = entry.EntityUID; update.UpdateString(entry); client.SendScreen(update, true); client.Entity.NobilityRank = entry.Rank; } } sortedBoard.Add(entry.EntityUID, entry); Place++; } catch { } } Board = sortedBoard; lock (BoardList) BoardList = Board.Values.ToList(); }