using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
namespace vnxbqy.UI
|
{
|
public class OperationWishingWellInfo : OperationBase
|
{
|
public Dictionary<int, List<WishingWellItem>> wellItemDict = new Dictionary<int, List<WishingWellItem>>(); //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<WishingWellItem> GetWellItemsByGroupType(int groupType)
|
{
|
List<WishingWellItem> 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<WishingWellItem> list = new List<WishingWellItem>();
|
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;
|
}
|
}
|
}
|
}
|
|