vanilla-wow-addons – Rev 1
?pathlinks?

local mod = klhtm
local me = {}
mod.alert = me
----------------------
-- Aggro loss / gain notification
-- This stuff is just debug material, to print out your threat when you gain or lose aggro.
----------------------
me.notifyaggro = false
me.targetname = "nil"
me.targettargetname = "nil"
function klhtest()
me.notifyaggro = not me.notifyaggro
if me.notifyaggro == true then
mod.out.print("Now notifying you of aggro changes.")
else
mod.out.print("No longer notifying you of aggro changes.")
end
end
me.onupdate = function()
if me.notifyaggro == false then
return
end
-- get current ID's. If you are targetting friend, then use HIS targets
local targetid = "target"
local doubletargetid = "targettarget"
if UnitIsFriend("player", "target") then
targetid = targetid .. "target"
doubletargetid = doubletargetid .. "target"
end
-- check for valid targets
if UnitIsFriend("player", targetid) then
-- there are no enemies around. don't do anything
me.targetname = "nil"
return
end
-- now see if the target has changed
local targetnow = UnitName(targetid)
if targetnow == nil or targetnow == "Unknown Entity" then
-- no mob targetted. ignore
targetnow = "nil"
return
end
-- get target target name
local doubletargetnow = UnitName(doubletargetid)
if doubletargetnow == nil then
doubletargetnow = "nil"
end
-- check for target change
if targetnow ~= me.targetname then
-- target change. ignore targettarget therefore
me.targetname = targetnow
me.targettargetname = doubletargetnow
return
end
-- to get here, target is valid and is the same. we want to see if targettarget is changed
-- is change?
if doubletargetnow ~= me.targettargetname then
-- changed to nil
if doubletargetnow == "nil" then
if UnitIsDead(targetid) then
-- target lost its target, because it died.
me.targetname = "nil"
else
-- target temporarily lost its target. probably it is stunned
-- so just don't update targettarget to nil
end
return
end
if me.targettargetname == "nil" then
-- picked it up from noone. no announce.
elseif me.targettargetname == UnitName("Player") then
-- we lost aggro
-- mod.out.announce("I lost aggro to " .. doubletargetnow .. ". His threat should be at least " .. math.ceil(KLHTM_MyData["Total"].threat * 1.1) .. ". " .. me.enumeratethreat())
elseif doubletargetnow == UnitName("Player") then
-- we gained aggro
mod.out.announce("I gained aggro from " .. me.targettargetname .. ". My threat is " .. math.ceil(mod.table.mydata["Total"].threat) .. ". " .. me.enumeratethreat(true))
end
me.targettargetname = doubletargetnow
end
end
me.enumeratethreat = function(lastmessage)
local message = "Damage = " .. mod.table.mydata["Total"].damage
local key; local value
for key, value in mod.table.mydata do
if key == "Healing" then
message = message .. ", Healing = " .. value.damage
elseif key ~= "Total" and key ~= "White Damage" then
if value.hits > 0 then
message = message .. ", " .. key .. " " .. value.hits .. " hits"
end
end
end
if lastmessage then
local threat = mod.table.mydata["Total"].threat
message = message .. ". Threat = " .. threat
if mod.combat.lastattack then
threat = threat - mod.combat.lastattack.threat
message = message .. ", then " .. threat
end
if mod.combat.lastattack then
threat = threat - mod.combat.lastattack.threat
message = message .. ", then " .. threat
end
end
message = message .. "."
return message
end