Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Custom Text [Every Frame]
- function()
- -- Calculate Damage
- local inRange = aura_env.raidRangeCheck()
- local damage = aura_env.calculateDamage(aura_env.baseDamage, inRange)
- -- Calculate Safety
- local currentHealth = aura_env.getUnitHealth("player")
- -- Build Output
- local number, marker = aura_env.shortenNumber(damage)
- local color = aura_env.getSafetyColor(currentHealth, damage, aura_env.safeColor, aura_env.dangerColor)
- return aura_env.buildString(color, number, marker)
- end
- -- Init
- aura_env.baseDamage = 12000000
- aura_env.dangerColor = "ffff2b2b"
- aura_env.safeColor = "ff66ff6d"
- aura_env.buildString = function(color, number, marker)
- return string.format("|c%s%.1f%s|r", color, number, marker)
- end
- aura_env.calculateDamage = function(base, inRange)
- return base / math.max(inRange, 1)
- end
- aura_env.getSafetyColor = function(health, damage, safeColor, dangerColor)
- if (health > damage) then
- return safeColor
- else
- return dangerColor
- end
- end
- aura_env.getUnitHealth = function(unit)
- return UnitHealth(unit) + UnitGetTotalAbsorbs(Unit)
- end
- aura_env.raidRangeCheck = function()
- local inRange = 0
- for i = 1, GetNumGroupMembers() do
- local player = GetRaidRosterInfo(i)
- if UnitName("player") ~= player then
- if aura_env.rangeCheck(player) <= 8 then
- inRange = inRange + 1
- end
- end
- end
- return inRange
- end
- aura_env.rangeCheck = function(uId)
- local range = 0
- if IsItemInRange(37727, uId) then range = 5--Ruby Acorn
- elseif IsItemInRange(63427, uId) then range = 8--Worgsaw
- elseif CheckInteractDistance(uId, 3) then range = 10
- elseif CheckInteractDistance(uId, 2) then range = 11
- elseif IsItemInRange(32321, uId) then range = 13--reports 12 but actual range tested is 13
- elseif IsItemInRange(6450, uId) then range = 18--Bandages.
- elseif IsItemInRange(21519, uId) then range = 22--Item says 20, returns true until 22.
- elseif CheckInteractDistance(uId, 1) then range = 30
- elseif UnitInRange(uId) then range = 43
- elseif IsItemInRange(116139, uId) then range = 50
- elseif IsItemInRange(32825, uId) then range = 60
- elseif IsItemInRange(35278, uId) then range = 80
- else range = 1000 end--Just so it has a numeric value, even if it's unknown to protect from nil errors
- return range
- end
- aura_env.shortenNumber = function(number)
- number = tonumber(number);
- local marker = "";
- if (number > 999 and number < 1000000) then
- marker = "k";
- number = number / 1000;
- elseif (number > 999999) then
- marker = "m";
- number = number / 1000000;
- end
- return number, marker;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement