using System; using System.Collections.Generic; using System.Game.Account; using System.Globalization; using System.OfflineSystem; using FJson; using Framework.Save; using Framework.Utils; using Game.Data; using Script.Core.Utils.Extend; using UnityEngine; public class AccountSystemData { public float BGMValue = 0.5f; public float BSEValue = 0.5f; public float SEValue = 0.8f; public PeriodicityNumber AdShowCount; //每日可看广告次数 public OfflineTimeHandler PowerAdTimeHandler; //体力广告恢复倒计时 public long CreateTime; public long CurrentTime => GameManager.Instance.CurrentTime; public List CompleteGuideTable; //已完成的引导table public bool HasCompleteInitStory; //是否已经完成了初始化的引导 public bool HasCompleteRename; //是否已经完成了改名引导 public List SystemMissionId; //系统任务id public float ShakeValue = 1f; //游戏震动强度 /// /// 账号创建截止当前时间 /// public TimeSpan CreateTotalTimeSpan => TimeSpan.FromMilliseconds (this.CurrentTime - this.CreateTime); public DateTime CurrentDateTime => this.CurrentTime.GetDateTime13 (); public static DateTime PointTime = new DateTime (2023, 1, 1, 0, 0, 0); public static DateTime StartTime = new DateTime (1970, 1, 1, 0, 0, 0); public void NullCheck () { if (this.AdShowCount == null) { this.AdShowCount = new PeriodicityNumber (GameGlobalConfig.Instance.EveryDayAdLimit); } if (CompleteGuideTable == null) { this.CompleteGuideTable = new List (); } if (SystemMissionId == null) { SystemMissionId = new List (); } } public bool IsNull () { return this.AdShowCount == null; } public void UpdateCurrentTime (long curTime = 0) { CheckCreateTime (curTime); this.AdShowCount.CheckTime (this.CurrentDateTime, GameGlobalConfig.Instance.EveryDayAdLimit); Account.Instance.Save (SaveData.System); } private void NewDay () { } public void CheckCreateTime (long curTime = 0) { if (this.CreateTime == 0) { this.CreateTime = curTime; } else { return; } DateTime temp = this.CreateTime.GetDateTime13 (); //只精确到天 this.CreateTime = new DateTime (temp.Year, temp.Month , temp.Day).ToTimeStamp13 (); Debug.Log ("User Create Time:" + temp.ToShortDateString ()); Account.Instance.Save (SaveData.System); } public void AddVideoAdCount () { this.AdShowCount.Write (this.AdShowCount.Read - 1); Account.Instance.Save (SaveData.System); } }