412 lines
14 KiB
Lua
412 lines
14 KiB
Lua
--ON SOME EVENTS
|
|
--Maybe make trigger on ~~party kill?~~ threat update? ++ namepalteadd/remove
|
|
|
|
--[[
|
|
1) On threat update calculate new %
|
|
2) On namepalte added look for threat and calculate new %
|
|
3) Organize into table with GUIDs
|
|
4) On nameplate remove remove from table // PARTY_KILL
|
|
5) Make more table for current pull, projected pull and projected total
|
|
6) Organize mobs into groups before bosses or before other groups big ???
|
|
]]
|
|
|
|
--[[
|
|
1) UNIT_THREAT_LIST_UPDATE (e, u)
|
|
Get GUID
|
|
Put into table
|
|
ggez
|
|
|
|
2) NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED (e, u)
|
|
UnitDetailedThreatSituation("player", "target") empty result for no threat
|
|
|
|
[02:49 PM] Dump: value=UnitDetailedThreatSituation("player", "target")
|
|
[02:49 PM] [1]=true, --Boolean - returns true if the unit is primary threat target of the mob (is tanking), or false otherwise
|
|
[02:49 PM] [2]=3, --Integer - returns the threat status for the unit on the mob, or nil if unit is not on mob's threat table. (3 = securely tanking, 2 = insecurely tanking, 1 = not tanking but higher threat than tank, 0 = not tanking and lower threat than tank)
|
|
[02:49 PM] [3]=100, --Number - returns the unit's threat on the mob as a percentage of the amount required to pull aggro, scaled according to the unit's range from the mob. At 100 the unit will pull aggro. Returns 100 if the unit is tanking and nil if the unit is not on the mob's threat list.
|
|
[02:49 PM] [4]=255, --Number - returns the unit's threat as a percentage of the tank's current threat. Returns nil if the unit is not on the mob's threat list.
|
|
[02:49 PM] [5]=0 --Number - returns the unit's total threat on the mob
|
|
for threat
|
|
|
|
3) can say table 1: GUID in current pull - use 1) and 2)
|
|
table 2: GUID to be pull on mouseover - use previous work
|
|
table 3: global GUID to be pull - reset with GUID of boss or pre boss maybe?
|
|
look for PARTY_KILL se in CLEU maybe? (for progress table ?)
|
|
]]
|
|
|
|
--[[
|
|
Random garbage info
|
|
|
|
[10:59 AM] Dump: value=C_Scenario.GetInfo()
|
|
[10:59 AM] [1]="Black Rook Hold",
|
|
[10:59 AM] [2]=1,
|
|
[10:59 AM] [3]=1,
|
|
[10:59 AM] [4]=3,
|
|
[10:59 AM] [5]=false,
|
|
[10:59 AM] [6]=false,
|
|
[10:59 AM] [7]=false,
|
|
[10:59 AM] [8]=0,
|
|
[10:59 AM] [9]=0,
|
|
[10:59 AM] [10]=1,
|
|
[10:59 AM] [11]="UNKNOWN"
|
|
|
|
[11:01 AM] Dump: value=C_Scenario.GetStepInfo()
|
|
[11:01 AM] [1]="Black Rook Hold",
|
|
[11:01 AM] [2]="Deal with the restless spirits of Black Rook Hold.",
|
|
[11:01 AM] [3]=5, --Num criteria
|
|
[11:01 AM] [4]=false,
|
|
[11:01 AM] [5]=false,
|
|
[11:01 AM] [6]=false,
|
|
[11:01 AM] [7]=0,
|
|
[11:01 AM] [8]={
|
|
[11:01 AM] },
|
|
[11:01 AM] [10]=0
|
|
|
|
/run local numCriteria = select(3, C_Scenario.GetStepInfo()); for i = 1, numCriteria do print(C_Scenario.GetCriteriaInfo(i)) end
|
|
[11:02 AM] Amalgam of Souls 165 false 0 1 0 1832 0 29464 0 0 false false
|
|
[11:02 AM] Illysanna Ravencrest 165 false 0 1 0 1833 0 29465 0 0 false false
|
|
[11:02 AM] Smashspite the Hateful 165 false 0 1 0 1834 0 29466 0 0 false false
|
|
[11:02 AM] Lord Kurtalos Ravencrest 165 false 0 1 0 1835 0 29467 0 0 false false
|
|
[11:02 AM] Enemy Forces 0 false 0 360 0 0 0% 0 0 0 false true
|
|
|
|
[11:06 AM] Dump: value=C_Scenario.GetCriteriaInfo(5)
|
|
[11:06 AM] [1]="Enemy Forces",
|
|
[11:06 AM] [2]=0,
|
|
[11:06 AM] [3]=false,
|
|
[11:06 AM] [4]=0,
|
|
[11:06 AM] [5]=360,
|
|
[11:06 AM] [6]=0,
|
|
[11:06 AM] [7]=0,
|
|
[11:06 AM] [8]="0%",
|
|
[11:06 AM] [9]=0,
|
|
[11:06 AM] [10]=0,
|
|
[11:06 AM] [11]=0,
|
|
[11:06 AM] [12]=false,
|
|
[11:06 AM] [13]=true --Weighted progress?
|
|
]]
|
|
|
|
--[[
|
|
So far got the mouseover counting working
|
|
Get total mob # from C_Scenario.GetCriteriaInfo(5
|
|
Add mouseover to #
|
|
Add pulls & nameplate fuckery from above into same #
|
|
Maybe use global table for all
|
|
Should be easy
|
|
Maybe add textures and attach to namepaltes of planned units??? Pog POG
|
|
]]
|
|
function()
|
|
--Very inefficient maybe fix later who cares
|
|
local scenarioType = select(10, C_Scenario.GetInfo())
|
|
if scenarioType == 1 then
|
|
local numCriteria = select(3, C_Scenario.GetStepInfo())
|
|
for i = 1, numCriteria do
|
|
local name = C_Scenario.GetCriteriaInfo(i)
|
|
if name == "Enemy Forces" then
|
|
aura_env.davystone.totalProgress = select(5, C_Scenario.GetCriteriaInfo(i))
|
|
aura_env.davystone.currentProgress = select(8, C_Scenario.GetCriteriaInfo(i))
|
|
aura_env.davystone.currentProgress = aura_env.davystone.currentProgress:gsub("%%", "")
|
|
aura_env.davystone.currentProgress = tonumber(aura_env.davystone.currentProgress)
|
|
aura_env.davystone.newProgress = select(8, C_Scenario.GetCriteriaInfo(i))
|
|
aura_env.davystone.newProgress = aura_env.davystone.newProgress:gsub("%%", "")
|
|
aura_env.davystone.newProgress = tonumber(aura_env.davystone.newProgress)
|
|
end
|
|
end
|
|
for i = 1, 40 do
|
|
local unit = "nameplate" .. i
|
|
if UnitAffectingCombat(unit) then
|
|
local GUID = UnitGUID(unit)
|
|
local ID = GUID:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)")
|
|
ID = tonumber(ID)
|
|
if aura_env.IDthing[ID] then
|
|
local progress = aura_env.IDthing[ID]
|
|
aura_env.davystone.newProgress = aura_env.davystone.newProgress + progress
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--DISPLAY
|
|
function()
|
|
if aura_env.davystone.currentProgress and aura_env.davystone.totalProgress and aura_env.davystone.newProgress then
|
|
return aura_env.round((aura_env.davystone.currentProgress / aura_env.davystone.totalProgress) * 100, 2) .. " " .. aura_env.round((aura_env.davystone.newProgress / aura_env.davystone.totalProgress) * 100, 2)
|
|
end
|
|
end
|
|
|
|
--INIT
|
|
local OnTooltipSetUnit = function()
|
|
print("yeet")
|
|
local name, unit = tooltip:GetUnit()
|
|
local guid = unit and UnitGUID(unit)
|
|
if guid then
|
|
local type, zero, server_id, instance_id, zone_uid, npc_id, spawn_uid = strsplit("-", guid)
|
|
npc_id = tonumber(npc_id)
|
|
print(npcID)
|
|
end
|
|
end
|
|
GameTooltip:HookScript("OnTooltipSetUnit", OnTooltipSetUnit)
|
|
aura_env.davystone = {}
|
|
aura_env.IDthing = {
|
|
[104277] = 4, [102253] = 4, [98954] = 4, [97185] = 10, [113537] = 10, [101839] = 4, [104246] = 4, [104278] = 10, [97170] = 4, [113506] = 4, [105617] = 4, [105633] = 4, [102095] = 4, [105952] = 6, [97043] = 4, [102430] = 1, [98366] = 4, [95832] = 2, [91784] = 1, [104295] = 1, [102781] = 4, [102287] = 10, [98733] = 4, [102351] = 1, [96247] = 1, [111563] = 4, [95769] = 4, [113699] = 8, [91785] = 2, [100216] = 4, [97172] = 1, [100248] = 4, [114289] = 4, [105651] = 4, [105699] = 3, [105715] = 4, [98368] = 4, [95834] = 2, [99675] = 4, [91786] = 4, [98177] = 12, [97173] = 4, [100249] = 1, [105636] = 4, [95771] = 4, [96584] = 4, [97365] = 4, [91006] = 4, [91787] = 2, [109908] = 10, [96664] = 2, [105876] = 1, [95947] = 4, [99804] = 2, [95772] = 4, [99358] = 4, [101414] = 2, [106785] = 1, [104251] = 4, [100713] = 4, [105845] = 1, [98243] = 4, [98275] = 4, [96028] = 4, [99359] = 3, [105766] = 1, [91008] = 4, [91789] = 4, [98435] = 7, [98706] = 6, [100539] = 4, [98770] = 4, [105703] = 1, [102404] = 4, [99360] = 9, [97097] = 4, [91790] = 4, [98691] = 4, [102277] = 4, [98293] = 1, [98813] = 4, [105720] = 4, [91001] = 4, [101074] = 1, [100532] = 1, [99678] = 4, [104270] = 8, [101991] = 4, [98732] = 1, [98963] = 1, [91792] = 10, [100526] = 4, [98246] = 4, [106546] = 4, [98533] = 10, [105705] = 4, [96015] = 4, [104300] = 4, [113536] = 10, [92610] = 4, [99649] = 12, [98900] = 4, [98406] = 4, [98677] = 1, [91808] = 1, [92350] = 4, [102295] = 10, [102566] = 12, [113998] = 4, [97163] = 3, [102104] = 4, [102375] = 3, [105706] = 8, [95861] = 4, [97068] = 5, [96574] = 5, [97171] = 10, [102094] = 4, [102232] = 4, [99188] = 4, [99307] = 12, [105682] = 8, [92538] = 1, [100527] = 3, [102583] = 4, [96587] = 4, [98280] = 4, [98370] = 4, [98538] = 10, [106786] = 1, [113111] = 1, [91783] = 4, [99956] = 4, [114712] = 3, [91332] = 4, [91794] = 1, [96657] = 12, [98426] = 4, [97197] = 2, [91796] = 10, [98759] = 4, [105915] = 4, [98919] = 4, [99908] = 1, [98362] = 10, [95779] = 10, [99365] = 4, [99891] = 5, [101437] = 1, [90998] = 4, [106059] = 4, [98425] = 4, [96640] = 2, [97182] = 6, [98728] = 7, [95939] = 10, [100529] = 1, [98776] = 4, [105422] = 1, [98792] = 4, [90997] = 4, [105629] = 1, [99366] = 4, [97087] = 2, [101438] = 4, [97119] = 1, [96608] = 2, [98681] = 6, [97677] = 1, [96480] = 1, [102584] = 4, [95842] = 2, [100364] = 4, [101072] = 1, [94968] = 5, [98973] = 1, [102788] = 4, [96934] = 2, [98756] = 4, [107288] = 1, [91793] = 1, [91000] = 8, [91781] = 4, [91782] = 10, [97678] = 8, [98926] = 4, [97200] = 4, [100531] = 8, [92387] = 4, [99033] = 4, [95920] = 2, [98810] = 6, [95766] = 4, [105921] = 4, [96677] = 2, [101679] = 4, [114288] = 4, [96611] = 2, [106787] = 1
|
|
}
|
|
aura_env.round = function(var, n)
|
|
if (n) then
|
|
var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n)
|
|
else
|
|
var = math.floor(var + 0.5)
|
|
end
|
|
return var
|
|
end
|
|
|
|
--PART OF DIFFERENT AURA
|
|
--UPDATE_MOUSEOVER_UNIT
|
|
function(e)
|
|
if not aura_env.time then
|
|
aura_env.time = debugprofilestop()
|
|
end
|
|
if not aura_env.mobs then
|
|
aura_env.mobs = {}
|
|
end
|
|
if not aura_env.mobC then
|
|
aura_env.mobC = 0
|
|
end
|
|
local u = "mouseover"
|
|
local guid = UnitGUID(u)
|
|
local npc_id = guid:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)")
|
|
npc_id = tonumber(npc_id)
|
|
aura_env.time = debugprofilestop()
|
|
--print("aura", guid, aura_env.mobs[guid])
|
|
if npc_id and aura_env.IDthing[npc_id] then
|
|
if guid and not aura_env.mouseoverPull[guid] then
|
|
aura_env.mouseoverPull[guid] = aura_env.IDthing[npc_id]
|
|
aura_env.mobC = aura_env.mobC + 1
|
|
end
|
|
end
|
|
--This works for now
|
|
end
|
|
|
|
--EVERY FRAME
|
|
function()
|
|
if aura_env.time and aura_env.time > 0 then
|
|
--print(aura_env.mobC)
|
|
--DevTools_Dump(aura_env.mobs)
|
|
local totalMouseoverPull = 0
|
|
for k, v in pairs(aura_env.mouseoverPull) do
|
|
totalMouseoverPull = totalMouseoverPull + v
|
|
print(totalMouseoverPull)
|
|
end
|
|
if debugprofilestop() - aura_env.time > 1500 then
|
|
aura_env.time = 0
|
|
aura_env.mouseoverPull = {}
|
|
aura_env.mobC = 0
|
|
print("RESET", aura_env.mobC)
|
|
DevTools_Dump(aura_env.mobs)
|
|
end
|
|
end
|
|
end
|
|
|
|
--INIT
|
|
aura_env.davystone = {}
|
|
aura_env.currentPull = {}
|
|
aura_env.mouseoverPull = {}
|
|
aura_env.IDthing = {
|
|
[104277] = 4,
|
|
[102253] = 4,
|
|
[98954] = 4,
|
|
[97185] = 10,
|
|
[113537] = 10,
|
|
[101839] = 4,
|
|
[104246] = 4,
|
|
[104278] = 10,
|
|
[97170] = 4,
|
|
[113506] = 4,
|
|
[105617] = 4,
|
|
[105633] = 4,
|
|
[102095] = 4,
|
|
[105952] = 6,
|
|
[97043] = 4,
|
|
[102430] = 1,
|
|
[98366] = 4,
|
|
[95832] = 2,
|
|
[91784] = 1,
|
|
[104295] = 1,
|
|
[102781] = 4,
|
|
[102287] = 10,
|
|
[98733] = 4,
|
|
[102351] = 1,
|
|
[96247] = 1,
|
|
[111563] = 4,
|
|
[95769] = 4,
|
|
[113699] = 8,
|
|
[91785] = 2,
|
|
[100216] = 4,
|
|
[97172] = 1,
|
|
[100248] = 4,
|
|
[114289] = 4,
|
|
[105651] = 4,
|
|
[105699] = 3,
|
|
[105715] = 4,
|
|
[98368] = 4,
|
|
[95834] = 2,
|
|
[99675] = 4,
|
|
[91786] = 4,
|
|
[98177] = 12,
|
|
[97173] = 4,
|
|
[100249] = 1,
|
|
[105636] = 4,
|
|
[95771] = 4,
|
|
[96584] = 4,
|
|
[97365] = 4,
|
|
[91006] = 4,
|
|
[91787] = 2,
|
|
[109908] = 10,
|
|
[96664] = 2,
|
|
[105876] = 1,
|
|
[95947] = 4,
|
|
[99804] = 2,
|
|
[95772] = 4,
|
|
[99358] = 4,
|
|
[101414] = 2,
|
|
[106785] = 1,
|
|
[104251] = 4,
|
|
[100713] = 4,
|
|
[105845] = 1,
|
|
[98243] = 4,
|
|
[98275] = 4,
|
|
[96028] = 4,
|
|
[99359] = 3,
|
|
[105766] = 1,
|
|
[91008] = 4,
|
|
[91789] = 4,
|
|
[98435] = 7,
|
|
[98706] = 6,
|
|
[100539] = 4,
|
|
[98770] = 4,
|
|
[105703] = 1,
|
|
[102404] = 4,
|
|
[99360] = 9,
|
|
[97097] = 4,
|
|
[91790] = 4,
|
|
[98691] = 4,
|
|
[102277] = 4,
|
|
[98293] = 1,
|
|
[98813] = 4,
|
|
[105720] = 4,
|
|
[91001] = 4,
|
|
[101074] = 1,
|
|
[100532] = 1,
|
|
[99678] = 4,
|
|
[104270] = 8,
|
|
[101991] = 4,
|
|
[98732] = 1,
|
|
[98963] = 1,
|
|
[91792] = 10,
|
|
[100526] = 4,
|
|
[98246] = 4,
|
|
[106546] = 4,
|
|
[98533] = 10,
|
|
[105705] = 4,
|
|
[96015] = 4,
|
|
[104300] = 4,
|
|
[113536] = 10,
|
|
[92610] = 4,
|
|
[99649] = 12,
|
|
[98900] = 4,
|
|
[98406] = 4,
|
|
[98677] = 1,
|
|
[91808] = 1,
|
|
[92350] = 4,
|
|
[102295] = 10,
|
|
[102566] = 12,
|
|
[113998] = 4,
|
|
[97163] = 3,
|
|
[102104] = 4,
|
|
[102375] = 3,
|
|
[105706] = 8,
|
|
[95861] = 4,
|
|
[97068] = 5,
|
|
[96574] = 5,
|
|
[97171] = 10,
|
|
[102094] = 4,
|
|
[102232] = 4,
|
|
[99188] = 4,
|
|
[99307] = 12,
|
|
[105682] = 8,
|
|
[92538] = 1,
|
|
[100527] = 3,
|
|
[102583] = 4,
|
|
[96587] = 4,
|
|
[98280] = 4,
|
|
[98370] = 4,
|
|
[98538] = 10,
|
|
[106786] = 1,
|
|
[113111] = 1,
|
|
[91783] = 4,
|
|
[99956] = 4,
|
|
[114712] = 3,
|
|
[91332] = 4,
|
|
[91794] = 1,
|
|
[96657] = 12,
|
|
[98426] = 4,
|
|
[97197] = 2,
|
|
[91796] = 10,
|
|
[98759] = 4,
|
|
[105915] = 4,
|
|
[98919] = 4,
|
|
[99908] = 1,
|
|
[98362] = 10,
|
|
[95779] = 10,
|
|
[99365] = 4,
|
|
[99891] = 5,
|
|
[101437] = 1,
|
|
[90998] = 4,
|
|
[106059] = 4,
|
|
[98425] = 4,
|
|
[96640] = 2,
|
|
[97182] = 6,
|
|
[98728] = 7,
|
|
[95939] = 10,
|
|
[100529] = 1,
|
|
[98776] = 4,
|
|
[105422] = 1,
|
|
[98792] = 4,
|
|
[90997] = 4,
|
|
[105629] = 1,
|
|
[99366] = 4,
|
|
[97087] = 2,
|
|
[101438] = 4,
|
|
[97119] = 1,
|
|
[96608] = 2,
|
|
[98681] = 6,
|
|
[97677] = 1,
|
|
[96480] = 1,
|
|
[102584] = 4,
|
|
[95842] = 2,
|
|
[100364] = 4,
|
|
[101072] = 1,
|
|
[94968] = 5,
|
|
[98973] = 1,
|
|
[102788] = 4,
|
|
[96934] = 2,
|
|
[98756] = 4,
|
|
[107288] = 1,
|
|
[91793] = 1,
|
|
[91000] = 8,
|
|
[91781] = 4,
|
|
[91782] = 10,
|
|
[97678] = 8,
|
|
[98926] = 4,
|
|
[97200] = 4,
|
|
[100531] = 8,
|
|
[92387] = 4,
|
|
[99033] = 4,
|
|
[95920] = 2,
|
|
[98810] = 6,
|
|
[95766] = 4,
|
|
[105921] = 4,
|
|
[96677] = 2,
|
|
[101679] = 4,
|
|
[114288] = 4,
|
|
[96611] = 2,
|
|
[106787] = 1
|
|
}
|