-- Read only the established Orb consumer, eight members per heartbeat. Keep -- outside scripts/ until deliberately staged by the runtime investigator. do local function capture() local state=_G.__gacCwOrbRuntimeMetadata1 or {index=0,beats=0} _G.__gacCwOrbRuntimeMetadata1=state if state.done then return end state.beats=state.beats+1 local function log(s)CS.UnityEngine.Debug.Log('[GAC_CW_ORB_RUNTIME_META] '..tostring(s))end if state.beats>36 then state.done=true;state.members=nil;log('END beat budget');return end local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60) local manager=CS.RPG.Client.GlobalVars.s_GamePhaseManager local f=manager and manager:GetType():GetField('_CurrentPhase',flags) local phase=f and f:GetValue(manager) if not phase or typeof(CS.RPG.Client.BattleGamePhase):IsInstanceOfType(phase)then return end if not state.members then state.type=typeof(CS.RPG.Client.GridFightModule).Assembly:GetType('RPG.Client.GridFightOrbServerData') if not state.type then state.done=true;log('MISSING established Orb consumer');return end state.members=state.type:GetMembers(flags) if state.members.Length>192 then error('Orb member bound')end log('TYPE '..state.type.FullName..' members='..state.members.Length) end for _=1,8 do if state.index>=state.members.Length then state.done=true;state.members=nil;state.type=nil;log('END');return end local m=state.members[state.index];state.index=state.index+1 if m.DeclaringType==state.type then if m.MemberType==CS.System.Reflection.MemberTypes.Method then log('METHOD '..tostring(m)..' HANDLE '..tostring(m.MethodHandle.Value)) else log(tostring(m.MemberType)..' '..tostring(m))end end end end local ok,e=pcall(capture) if not ok then _G.__gacCwOrbRuntimeMetadata1={done=true};CS.UnityEngine.Debug.Log('[GAC_CW_ORB_RUNTIME_META] ERROR '..tostring(e))end end