Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. -- Custom Text [Every Frame]
  2. function()
  3. -- Calculate Damage
  4. local inRange = aura_env.raidRangeCheck()
  5. local damage = aura_env.calculateDamage(aura_env.baseDamage, inRange)
  6. -- Calculate Safety
  7. local currentHealth = aura_env.getUnitHealth("player")
  8. -- Build Output
  9. local number, marker = aura_env.shortenNumber(damage)
  10. local color = aura_env.getSafetyColor(currentHealth, damage, aura_env.safeColor, aura_env.dangerColor)
  11.  
  12. return aura_env.buildString(color, number, marker)
  13. end
  14.  
  15.  
  16. -- Init
  17. aura_env.baseDamage = 12000000
  18. aura_env.dangerColor = "ffff2b2b"
  19. aura_env.safeColor = "ff66ff6d"
  20.  
  21. aura_env.buildString = function(color, number, marker)
  22. return string.format("|c%s%.1f%s|r", color, number, marker)
  23. end
  24.  
  25. aura_env.calculateDamage = function(base, inRange)
  26. return base / math.max(inRange, 1)
  27. end
  28.  
  29. aura_env.getSafetyColor = function(health, damage, safeColor, dangerColor)
  30. if (health > damage) then
  31. return safeColor
  32. else
  33. return dangerColor
  34. end
  35. end
  36.  
  37. aura_env.getUnitHealth = function(unit)
  38. return UnitHealth(unit) + UnitGetTotalAbsorbs(Unit)
  39. end
  40.  
  41. aura_env.raidRangeCheck = function()
  42. local inRange = 0
  43. for i = 1, GetNumGroupMembers() do
  44. local player = GetRaidRosterInfo(i)
  45. if UnitName("player") ~= player then
  46. if aura_env.rangeCheck(player) <= 8 then
  47. inRange = inRange + 1
  48. end
  49. end
  50. end
  51.  
  52. return inRange
  53. end
  54.  
  55. aura_env.rangeCheck = function(uId)
  56. local range = 0
  57. if IsItemInRange(37727, uId) then range = 5--Ruby Acorn
  58. elseif IsItemInRange(63427, uId) then range = 8--Worgsaw
  59. elseif CheckInteractDistance(uId, 3) then range = 10
  60. elseif CheckInteractDistance(uId, 2) then range = 11
  61. elseif IsItemInRange(32321, uId) then range = 13--reports 12 but actual range tested is 13
  62. elseif IsItemInRange(6450, uId) then range = 18--Bandages.
  63. elseif IsItemInRange(21519, uId) then range = 22--Item says 20, returns true until 22.
  64. elseif CheckInteractDistance(uId, 1) then range = 30
  65. elseif UnitInRange(uId) then range = 43
  66. elseif IsItemInRange(116139, uId) then range = 50
  67. elseif IsItemInRange(32825, uId) then range = 60
  68. elseif IsItemInRange(35278, uId) then range = 80
  69. else range = 1000 end--Just so it has a numeric value, even if it's unknown to protect from nil errors
  70. return range
  71. end
  72.  
  73. aura_env.shortenNumber = function(number)
  74. number = tonumber(number);
  75. local marker = "";
  76. if (number > 999 and number < 1000000) then
  77. marker = "k";
  78. number = number / 1000;
  79. elseif (number > 999999) then
  80. marker = "m";
  81. number = number / 1000000;
  82. end
  83. return number, marker;
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement