29 lines
1.6 KiB
Lua
29 lines
1.6 KiB
Lua
-- Metadata only for four named battle data types. No loader/gameplay method
|
|||
|
|
-- is invoked. Inspect at most 32 methods per heartbeat, bounded to 256/type.
|
||
|
|
do local function capture()
|
||
|
|
local s=_G.__gacCwWaveConsumer3 or {type=1,method=0};_G.__gacCwWaveConsumer3=s
|
||
|
|
local names={'RPG.GameCore.GridFightManager','RPG.Client.BattleGamePhase'}
|
||
|
|
if s.type>#names then return end
|
||
|
|
local log=function(x)CS.UnityEngine.Debug.Log('[GAC_CW_WAVE_CONSUMER] '..tostring(x))end
|
||
|
|
local ok,err=pcall(function()
|
||
|
|
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||
|
|
local types={typeof(CS.RPG.GameCore.GridFightManager),typeof(CS.RPG.Client.BattleGamePhase)}
|
||
|
|
local t=types[s.type]
|
||
|
|
if not t then log('MISSING '..names[s.type]);s.type=s.type+1;s.method=0;return end
|
||
|
|
if s.method==0 then
|
||
|
|
log('TYPE '..t.FullName)
|
||
|
|
local fs=t:GetFields(flags);for i=0,math.min(fs.Length-1,47)do log('FIELD '..tostring(fs[i]))end
|
||
|
|
end
|
||
|
|
local ms=t:GetMethods(flags)
|
||
|
|
for i=s.method,math.min(s.method+31,ms.Length-1,255)do
|
||
|
|
local m=ms[i]
|
||
|
|
if m.DeclaringType==t and (m.Name:find('Wave')or m.Name:find('Elite')or m.Name:find('Formation')or m.Name:find('Scene')or m.Name:find('Init'))then
|
||
|
|
log('METHOD '..t.FullName..' '..tostring(m)..' HANDLE '..tostring(m.MethodHandle.Value))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
s.method=s.method+32
|
||
|
|
if s.method>=ms.Length or s.method>=256 then log('TYPE_END '..t.FullName..' inspected='..math.min(ms.Length,256)..' total='..ms.Length);s.type=s.type+1;s.method=0 end
|
||
|
|
end)
|
||
|
|
if not ok then log('ERROR '..tostring(err));s.type=#names+1 end
|
||
|
|
if s.type>#names then log('END')end
|
||
|
|
end;capture()end
|