using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class OperationWishingWellInfo : OperationBase { public Dictionary> wellItemDict = new Dictionary>(); //key 组 public override void Reset() { base.Reset(); wellItemDict.Clear(); } 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 List GetWellItemsByGroupType(int groupType) { List items = null; wellItemDict.TryGetValue(groupType,out items); return items; } public int GetActivityDay() { int dayIndex = IndexOfDays(TimeUtility.ServerNow); if(resetType == 0) { return dayIndex + 1; } else if(resetType == 1) { if(IsLastDay) { return dayIndex; } else { return dayIndex + 1; } } return dayIndex + 1; } public int GetActivitySumDay() { if(resetType == 0) { return totalDays + 1; } else if(resetType == 1) { return totalDays; } return totalDays; } public void ParsePackage(HAA19_tagMCActWishingWellInfo package) { for (int i = 0; i < package.Count; i++) { var itemInfo = package.WellItemInfo[i]; var wellItem = new WishingWellItem((int)itemInfo.ItemID,itemInfo.ItemCnt,itemInfo.IsBind,(int)itemInfo.Mark,itemInfo.Rare); int group = GetGroupTypeByMark(wellItem.mark); if(!wellItemDict.ContainsKey(group)) { List list = new List(); list.Add(wellItem); wellItemDict.Add(group,list); } else { wellItemDict[group].Add(wellItem); } } foreach(var key in wellItemDict.Keys) { wellItemDict[key].Sort(CompareByMark); } } public int GetGroupTypeByMark(int mark) { return mark / 100; } public int GetGroupIndexByMark(int mark) { return mark % 100; } public int CompareByMark(WishingWellItem start,WishingWellItem end) { if(start.mark.CompareTo(end.mark) != 0) { return -start.mark.CompareTo(end.mark); } return 0; } public class WishingWellItem { public int itemId; public int itemCount; public int mark;// 排序标识 public int rare; //// 珍稀值 public WishingWellItem(int id, int count, int isBind,int mark,int rare) { this.itemId = id; this.itemCount = count; this.mark = mark; this.rare = rare; } } } }