using cfg; using Newtonsoft.Json; using System; using System.Linq; namespace Assets.Scripts.UI.AdWheel { public class AdWheelData { public AdWheelData(Tables tables = null) { if (tables != null) Tables = tables; } #region json ignore [JsonIgnore] public readonly Tables Tables; [JsonIgnore] public FishingEvent EventConfig => Tables.TbFishingEvent.GetOrDefault(EventID); [JsonIgnore] public TimeSpan RemainingTime => WeeklyEndEventTime - ZZTimeHelper.UtcNow().UtcNowOffset(); [JsonIgnore] public bool IsActive => EventID > 0 && WeeklyEndEventTime > ZZTimeHelper.UtcNow().UtcNowOffset(); [JsonIgnore] public DateTime WeeklyEndEventTime => DateTimeOffset.FromUnixTimeSeconds(EventRefreshTimeSeconds).DateTime; [JsonIgnore] public float Progerss => (float)Count / (EventConfig.RedirectID <= 0 ? 1 : AdWheelMain?.ProgressRewardADTimeList.LastOrDefault() ?? 1); [JsonIgnore] public EventAdWheelMain AdWheelMain=>Tables.TbEventAdWheelMain.GetOrDefault(EventConfig?.RedirectID??0); #endregion public int EventID; public long ActiveEventTime; /// /// AdWheelInit.ProgressRewardADTimeList /// public int Count; public int ProgressRewardADTime; public long lastViewAdTime; public long EventRefreshTimeSeconds; public void ClearProgress() { Count = 0; ProgressRewardADTime = 0; } public void SetData(AdWheelData data) { this.lastViewAdTime= data.lastViewAdTime; this.ActiveEventTime = data.ActiveEventTime; this.Count = data.Count; this.EventID = data.EventID; this.ProgressRewardADTime = data.ProgressRewardADTime; this.EventRefreshTimeSeconds=data.EventRefreshTimeSeconds; } } }