-- Bounded read-only entry-state inspection. No UI calls or gameplay writes. do if not _G.__gacCwEntryState2 then _G.__gacCwEntryState2=true local function log(v)CS.UnityEngine.Debug.Log('[GAC_CW_ENTRY_STATE] '..tostring(v))end local ok,err=pcall(function() local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60) local module=CS.RPG.Client.GlobalVars.s_ModuleManager.GridFightModule local t=module:GetType() for _,name in ipairs({'SeasonID','SubSeasonID','CurGame','PlayerProfile','TutorialStageConfigs'})do local good,value=pcall(function()return module[name]end) log('VALUE '..name..' '..tostring(good)..' '..tostring(value)) end local names={'CheckUnlock','ShouldStartCurrentSeasonTutorial','_ShouldStartFirstSeasonTutorial','IsFinishedTutorialThisSeason','_StartTutorialLevel','_GetTutorialProgressID','StartGame','_GetTutorialStageConfig'} for _,name in ipairs(names)do local m=t:GetMethod(name,flags) log('METHOD '..tostring(m)..' TOKEN '..tostring(m and m.MetadataToken)) end local route=typeof(CS.RPG.Client.GridFightStageRoute) local constructors=route:GetConstructors(flags) for i=0,constructors.Length-1 do log('ROUTE_CTOR '..tostring(constructors[i])..' TOKEN '..constructors[i].MetadataToken)end local methods=route:GetMethods(flags) for i=0,math.min(methods.Length-1,31)do local m=methods[i] if m.DeclaringType==route then log('ROUTE_METHOD '..tostring(m)..' TOKEN '..m.MetadataToken)end end end) if not ok then log('ERROR '..tostring(err))end end end