Persist fatal encounters and audit resident readiness with party outcome metrics
Core tests / core (push) Successful in 42s

This commit is contained in:
Codex
2026-09-24 08:05:16 +12:00
parent 900b926b8e
commit d57d793a84
16 changed files with 254 additions and 15 deletions
+8 -1
View File
@@ -147,12 +147,19 @@ local function world_payload(player)
p.humanControlled=ai and ai:HasGameClientMaster() or false
p.quests={};if ai then for slot=0,24 do local q=player:GetQuestSlotQuestId(slot);if q and q>0 then p.quests[#p.quests+1]=q end end end
if ai then p.combatRole=player:IsHealer() and 'healer' or player:IsTank() and 'tank' or 'damage' end
if AzerothAISurvivalState then p.dangerAt,p.survivalAction,p.survivalAt=AzerothAISurvivalState(player) end
if AzerothAISurvivalState then p.dangerAt,p.survivalAction,p.survivalAt,p.survivalSince=AzerothAISurvivalState(player) end
local g=player:GetGroup()
p.groupId=g and tostring(g:GetGUID()) or ""
local members={}
if g then for _,m in pairs(g:GetMembers()) do members[#members+1]=m:GetName() end end
p.groupNames=table.concat(members,",")
p.isDead=player:IsDead();p.isGhost=player:HasAura(8326)
p.manaPct=player:GetPowerType()==0 and player:GetPowerPct(0) or nil
if p.manaPct and (p.manaPct~=p.manaPct or p.manaPct==math.huge) then p.manaPct=nil end
local leader=ai and ai:GetGroupLeader()
p.leaderName=leader and leader:GetName() or ''
if AzerothAIExperienceSnapshot then for k,v in pairs(AzerothAIExperienceSnapshot(player)) do p[k]=v end end
if AzerothAIReadinessSnapshot then for k,v in pairs(AzerothAIReadinessSnapshot(player)) do p[k]=v end end
p.nearbyBots=nearby_bot_names(player)
return p
end