Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.58 KB | None | 0 0
  1. -- parameters
  2. local boss_count = 13
  3. local drop_chance = .5
  4. local upgrade_chance = .5
  5. local base_ilvl = 835
  6. local max_ilvl = 895
  7. local over_ilvl = 880
  8.  
  9. local week_count = 26 -- 20 years
  10. local run_count = 10000
  11.  
  12.  
  13. math.randomseed(os.time())
  14.  
  15. function rollItem(base_ilvl)
  16.     local new_ilvl = base_ilvl
  17.     while math.random() > upgrade_chance do
  18.         new_ilvl = new_ilvl + 5
  19.  
  20.         if new_ilvl >= max_ilvl then
  21.             break
  22.         end
  23.     end
  24.     return new_ilvl
  25. end
  26.  
  27. function getRaidDrops(boss_count)
  28.     local drops = 0
  29.  
  30.     for i = 1, boss_count do
  31.         if math.random() > drop_chance then
  32.             drops = drops + 1
  33.         end
  34.     end
  35.  
  36.     return drops
  37. end
  38.  
  39. local total_over_ilvl_count = 0
  40.  
  41. local run = 1
  42. while run <= run_count do
  43.     local run_over_ilvl_count = 0
  44.     local week = 1
  45.  
  46.     while week <= week_count do
  47.         local week_drops = {}
  48.         local week_over_ilvl_count = 0
  49.  
  50.         for i = 1, getRaidDrops(boss_count) do
  51.             local ilvl = rollItem(base_ilvl)
  52.  
  53.             if week_drops[ilvl] == nil then
  54.                 week_drops[ilvl] = 1
  55.             else
  56.                 week_drops[ilvl] = week_drops[ilvl] + 1
  57.             end
  58.  
  59.             if ilvl >= over_ilvl then
  60.                 week_over_ilvl_count = week_over_ilvl_count + 1
  61.             end
  62.         end
  63.  
  64.     --[[
  65.         print("week #" .. week)
  66.         for ilvl, count in pairs(week_drops) do
  67.             print(ilvl .. " = " .. count)
  68.         end
  69.         print("--")
  70.     --]]
  71.  
  72.         week = week + 1
  73.         run_over_ilvl_count = run_over_ilvl_count + week_over_ilvl_count
  74.     end
  75.     print("Week over ilvl total = " .. run_over_ilvl_count)
  76.     total_over_ilvl_count = total_over_ilvl_count + run_over_ilvl_count
  77.     run = run + 1
  78. end
  79.  
  80. print("Average max ilvl = " .. (total_over_ilvl_count/run_count))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement