kdmxp192

AssignArmorLevel() method

Aug 22nd, 2019
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.63 KB | None | 0 0
  1.         /// <summary>
  2.         /// Assign a final AL value based upon tier
  3.         /// Based upon http://acpedia.org/wiki/Loot/Tier_7_Pre2013#Max_Armor_Levels
  4.         /// and http://acpedia.org/wiki/Loot/Tier_8#Maximum_Armor_Levels given the base AL values on the weenies
  5.         /// Assumes that the Olthoi Armor pieces have been normalized to a smaller baseline value
  6.         /// </summary>
  7.         /// <param name="wo"></param>
  8.         /// <param name="tier"></param>
  9.         /// <param name="armorType"></param>
  10.         /// <returns></returns>
  11.         private static WorldObject AssignArmorLevel(WorldObject wo, int tier)
  12.         {
  13.             var baseArmorLevel = wo.GetProperty(PropertyInt.ArmorLevel) ?? 0;
  14.  
  15.             if (wo.ArmorType != null && wo.ClothingPriority != (CoverageMask)CoverageMaskHelper.Underwear)
  16.             {
  17.                 int armorModValue = 0;
  18.  
  19.                 switch (tier)
  20.                 {
  21.                     case 1:
  22.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  23.                             armorModValue = ThreadSafeRandom.Next(20, 50);
  24.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  25.                             armorModValue = ThreadSafeRandom.Next(50, 70);
  26.                         if (wo.ArmorType == (int)ArmorType.Metal
  27.                             || wo.ArmorType == (int)ArmorType.Chainmail
  28.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  29.                             armorModValue = ThreadSafeRandom.Next(0, 10);
  30.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  31.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  32.                             armorModValue = 0;
  33.                         break;
  34.                     case 2:
  35.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  36.                             armorModValue = ThreadSafeRandom.Next(50, 80);
  37.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  38.                             armorModValue = ThreadSafeRandom.Next(70, 100);
  39.                         if (wo.ArmorType == (int)ArmorType.Metal
  40.                             || wo.ArmorType == (int)ArmorType.Chainmail
  41.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  42.                             armorModValue = ThreadSafeRandom.Next(10, 30);
  43.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  44.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  45.                             armorModValue = 0;
  46.                         break;
  47.                     case 3:
  48.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  49.                             armorModValue = ThreadSafeRandom.Next(80, 110);
  50.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  51.                             armorModValue = ThreadSafeRandom.Next(100, 130);
  52.                         if (wo.ArmorType == (int)ArmorType.Metal
  53.                             || wo.ArmorType == (int)ArmorType.Chainmail
  54.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  55.                             armorModValue = ThreadSafeRandom.Next(30, 60);
  56.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  57.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  58.                             armorModValue = ThreadSafeRandom.Next(190, 210);
  59.                         break;
  60.                     case 4:
  61.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  62.                             armorModValue = ThreadSafeRandom.Next(110, 140);
  63.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  64.                             armorModValue = ThreadSafeRandom.Next(120, 150);
  65.                         if (wo.ArmorType == (int)ArmorType.Metal
  66.                             || wo.ArmorType == (int)ArmorType.Chainmail
  67.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  68.                             armorModValue = ThreadSafeRandom.Next(60, 90);
  69.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  70.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  71.                             armorModValue = ThreadSafeRandom.Next(210, 230);
  72.                         break;
  73.                     case 5:
  74.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  75.                             armorModValue = ThreadSafeRandom.Next(140, 170);
  76.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  77.                             armorModValue = ThreadSafeRandom.Next(150, 180);
  78.                         if (wo.ArmorType == (int)ArmorType.Metal
  79.                             || wo.ArmorType == (int)ArmorType.Chainmail
  80.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  81.                             armorModValue = ThreadSafeRandom.Next(90, 120);
  82.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  83.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  84.                             armorModValue = ThreadSafeRandom.Next(230, 250);
  85.                         break;
  86.                     case 6:
  87.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  88.                             armorModValue = ThreadSafeRandom.Next(170, 200);
  89.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  90.                             armorModValue = ThreadSafeRandom.Next(180, 210);
  91.                         if (wo.ArmorType == (int)ArmorType.Metal
  92.                             || wo.ArmorType == (int)ArmorType.Chainmail
  93.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  94.                             armorModValue = ThreadSafeRandom.Next(120, 150);
  95.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  96.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  97.                             armorModValue = ThreadSafeRandom.Next(250, 270);
  98.                         break;
  99.                     case 7:
  100.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  101.                             armorModValue = ThreadSafeRandom.Next(200, 230);
  102.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  103.                             armorModValue = ThreadSafeRandom.Next(210, 240);
  104.                         if (wo.ArmorType == (int)ArmorType.Metal
  105.                             || wo.ArmorType == (int)ArmorType.Chainmail
  106.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  107.                             armorModValue = ThreadSafeRandom.Next(150, 180);
  108.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  109.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  110.                             armorModValue = ThreadSafeRandom.Next(270, 290);
  111.                         break;
  112.                     case 8:
  113.                         if (wo.ArmorType == (int)ArmorType.Leather || wo.ArmorType == (int)ArmorType.Cloth)
  114.                             armorModValue = ThreadSafeRandom.Next(230, 260);
  115.                         if (wo.ArmorType == (int)ArmorType.StuddedLeather)
  116.                             armorModValue = ThreadSafeRandom.Next(240, 270);
  117.                         if (wo.ArmorType == (int)ArmorType.Metal
  118.                             || wo.ArmorType == (int)ArmorType.Chainmail
  119.                             || wo.ArmorType == (int)ArmorType.Scalemail)
  120.                             armorModValue = ThreadSafeRandom.Next(180, 210);
  121.                         // Covenant and Olthoi Armor (not Amuli, Celdon, Koujia, or Alduressa types of Olthoi Armor)
  122.                         if (wo.ResistMagic != null && wo.ResistMagic == 9999)
  123.                             armorModValue = ThreadSafeRandom.Next(290, 310);
  124.                         break;
  125.                 }
  126.  
  127.                 int adjustedArmorLevel = baseArmorLevel + armorModValue;
  128.                 wo.SetProperty(PropertyInt.ArmorLevel, adjustedArmorLevel);
  129.             }
  130.  
  131.             return wo;
  132.         }
Advertisement
Add Comment
Please, Sign In to add comment