using asap.core; using System.Linq; using System.Reflection; var p=GContext.container.Resolve(); var t=GContext.container.Resolve(); var guide=GContext.container.Resolve(); var sys=UnityEngine.Object.FindObjectOfType(); var d=sys==null?null:(FishingData)typeof(FishingUpdateSys).GetField("fishingData",BindingFlags.Instance|BindingFlags.Public|BindingFlags.NonPublic).GetValue(sys); var loop=typeof(GameCore.PlayerData).Assembly.GetType("game.PlayerDataStorage.PlayerKVGameplayLoop"); var a=loop.GetField("rewardAction",BindingFlags.Static|BindingFlags.NonPublic).GetValue(null); object Field(object o,string n)=>o?.GetType().GetField(n,BindingFlags.Instance|BindingFlags.Public|BindingFlags.NonPublic)?.GetValue(o); return new{utc=System.DateTime.UtcNow,server=ZZTimeHelper.UtcNow(),energy=(int)p.Energy,energyRM=p.GetEnergyRM(),gold=(ulong)p.gold,frequency=p._fishingFrequency,core=p.PlayerDataDic.GetValueOrDefault("newData"),map=(int)p.lastMapId,mag=p.GetMagnification(),guideNode=guide.curDefine?.panelName,guideGroup=guide.curGroupDefine?.groupName.ToString(),controller=sys!=null,fish=d?.curFishData?.ID,area=d?.curFishData?.AreaID,item=d?.fishItem?.ID,subtype=d?.fishItem?.SubType,draw=d?.IsDrawing,caught=d?.IsCaughtFish,result=d?.fishingResult.ToString(),random=d?.random,weight=d?.fishWeight,weightBonus=d?.WeightIncEvent,tension=Field(sys,"_linePower"),rewardConfirmed=Field(a,"Confirmed"),rewardPresented=Field(a,"Presented"),rewardCancelled=Field(a,"Cancelled"),state=KVGameplayLoopSetup.State()};