using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class OperationConsumeRebate : OperationBase { public List rebates = 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(); rebates.Clear(); } public void ParseRebate(HAA09_tagMCCostRebateInfo package) { for (int i = 0; i < package.AwardDays; i++) { var _rebate = package.AwardDayInfo[i]; Rebate rebate = new Rebate(); for (int k = 0; k < _rebate.AwardCount; k++) { RebateGrade rebateGrade = new RebateGrade(); rebateGrade.needGold = (int)_rebate.AwardInfo[k].NeedGold; rebateGrade.index = _rebate.AwardInfo[k].AwardIndex; for (int q = 0; q < _rebate.AwardInfo[k].AwardItemCount; q++) { var _item = _rebate.AwardInfo[k].AwardItem[q]; rebateGrade.items.Add(new Item() { itemId = (int)_item.ItemID, count = (int)_item.ItemCount, }); } rebate.rebateGrades.Add(rebateGrade); } rebates.Add(rebate); } } public Rebate GetRebate(DateTime time) { if (rebates.Count == 0) { return null; } var index = Mathf.Min(rebates.Count - 1, IndexOfTime(time)); return rebates[index]; } public class Rebate { public List rebateGrades = new List(); } public class RebateGrade { public int needGold; public int index;//奖励索引 public List items = new List(); } public struct Item { public int itemId; public int count; } } }