AhmedKorwash

public static void Sort

Jun 16th, 2016
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.72 KB | None | 0 0
  1. public static void Sort(uint updateUID)
  2.         {
  3.             SortedDictionary<ulong, SortEntry<uint, NobilityInformation>> sortdict = new SortedDictionary<ulong, SortEntry<uint, NobilityInformation>>();
  4.             SortedDictionary<int, SortEntry<uint, NobilityInformation>> sortdicts = new SortedDictionary<int, SortEntry<uint, NobilityInformation>>();
  5.             foreach (NobilityInformation info in Board.Values)
  6.             {
  7.                 if (sortdict.ContainsKey(info.Donation))
  8.                 {
  9.                     SortEntry<uint, NobilityInformation> entry = sortdict[info.Donation];
  10.                     entry.Values.Add(info.EntityUID, info);
  11.                 }
  12.                 else
  13.                 {
  14.                     SortEntry<uint, NobilityInformation> entry = new SortEntry<uint, NobilityInformation>();
  15.                     entry.Values = new Dictionary<uint, NobilityInformation>();
  16.                     entry.Values.Add(info.EntityUID, info);
  17.                     sortdict.Add(info.Donation, entry);
  18.                 }
  19.             }
  20.             SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>(10000);
  21.             int Place = 0;
  22.             foreach (KeyValuePair<ulong, SortEntry<uint, NobilityInformation>> entries in sortdict.Reverse())
  23.             {
  24.                 foreach (KeyValuePair<uint, NobilityInformation> value in entries.Value.Values)
  25.                 {
  26.                     Client.GameState client = null;
  27.                     try
  28.                     {
  29.                         int previousPlace = value.Value.Position;
  30.                         value.Value.Position = Place;
  31.                         NobilityInformation nobilityinfo = new NobilityInformation();
  32.                         NobilityRank Rank = NobilityRank.Serf;
  33.                         if (Place >= 50)
  34.                     {
  35.                         if (value.Value.Donation >= 1)
  36.                         {
  37.                             Rank = NobilityRank.King;
  38.                         }
  39.                        
  40.                     }
  41.                     else
  42.                     {
  43.                         if (Place < 6) //serverrank
  44.                         {
  45.                             Rank = NobilityRank.King;
  46.                         }
  47.                         else if (Place < 30)
  48.                         {
  49.                             Rank = NobilityRank.King;
  50.                         }
  51.                        
  52.                         else
  53.                         {
  54.                             Rank = NobilityRank.King;
  55.                         }
  56.                     }
  57.                         var oldRank = value.Value.Rank;
  58.                         value.Value.Rank = Rank;
  59.                         if (Kernel.GamePool.TryGetValue(value.Key, out client))
  60.                         {
  61.                             bool updateTheClient = false;
  62.                             if (oldRank != Rank)
  63.                             {
  64.                                 updateTheClient = true;
  65.                                 Message message2 = null;
  66.                                 message2 = new Message("The Player " + client.Entity.Name + " Has Been Promoted to the rank " + Rank + " of The  Nobility. Congratulations!", System.Drawing.Color.White, Message.Center);
  67.                                 foreach (Client.GameState Client in Kernel.GamePool.Values)
  68.                                 {
  69.                                     Client.Send(message2);
  70.                                 }
  71.                             }
  72.                             else
  73.                             {
  74.                                 if (previousPlace == Place)
  75.                                 {
  76.                                     updateTheClient = true;
  77.                                 }
  78.                             }
  79.                             if (updateTheClient || client.Entity.UID == updateUID)
  80.                             {
  81.                                 NobilityInfo update = new NobilityInfo(true);
  82.                                 update.Type = NobilityInfo.Icon;
  83.                                 update.dwParam = value.Key;
  84.                                 update.UpdateString(value.Value);
  85.                                 client.SendScreen(update, true);
  86.                                 client.Entity.NobilityRank = value.Value.Rank;
  87.                             }
  88.                         }
  89.                         sortedBoard.Add(value.Key, value.Value);
  90.                         Place++;
  91.                     }
  92.                     catch { }
  93.                 }
  94.             }
  95.             Board = sortedBoard;
  96.             lock (BoardList)
  97.             {
  98.                 BoardList = Board.Values.ToList();
  99.             }
  100.         }
Advertisement
Add Comment
Please, Sign In to add comment