少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-27 45c82c513c67130bb52cb5e7f2f10c957e463cf1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.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);
            return dayIndex + 1;
        }
 
        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);
                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 isBind;
            public int mark;// 排序标识
            public WishingWellItem(int id, int count, int isBind,int mark)
            {
                this.itemId = id;
                this.itemCount = count;
                this.isBind = isBind;
                this.mark = mark;
            }
        }
    }
}