using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class OperationAccumulateRecharge : OperationBase { //ActNum活动编号,根据重置字段决定是否多日累充,区分 DaysAccumulateRecharge和 AccumulateRecharge public List rewards = new List(); public override bool SatisfyOpenCondition() { return PlayerDatas.Instance.baseData.LV >= limitLv; } public override string ToDisplayTime() { var textBuilder = OperationTimeHepler.textBuilder; textBuilder.Length = 0; textBuilder.Append(startDate.ToDisplay()); if (startDate != endDate) { textBuilder.Append("—"); textBuilder.Append(endDate.ToDisplay()); } return textBuilder.ToString(); } public override void Reset() { base.Reset(); rewards.Clear(); } public void ParseAccumulateRecharge(HAA1D_tagMCActTotalRechargeInfo package) { for (int i = 0; i < package.AwardDays; i++) { var _reward = package.AwardDayInfo[i]; Reward reward = new Reward(); for (int k = 0; k < _reward.AwardCount; k++) { Recharge recharge = new Recharge(); recharge.requireGold = (int)_reward.AwardInfo[k].NeedGold; recharge.index = _reward.AwardInfo[k].AwardIndex; for (int q = 0; q < _reward.AwardInfo[k].AwardItemCount; q++) { var _item = _reward.AwardInfo[k].AwardItem[q]; recharge.items.Add(new Item() { id = (int)_item.ItemID, count = _item.ItemCount, bind = _item.IsBind, }); } reward.recharges.Add(recharge); } rewards.Add(reward); } } public Reward GetReward(DateTime time) { if (rewards.Count == 0) { return null; } var index = Mathf.Min(rewards.Count - 1, IndexOfTime(time)); return rewards[index]; } public class Reward { public List recharges = new List(); } public class Recharge { public int index; public int requireGold; public List items = new List(); } public struct Item { public int id; public int bind; public int count; } } }