少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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;
            }
        }
    }
}