少年修仙传客户端代码仓库
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
using LitJson;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace vnxbqy.UI
{
 
    //本服和跨服活动的组合 
    //1. 参与时分由跨服活动决定
    //骑宠养成活动
    public class OperationPetHorseCross : OperationBase
    {
        public Dictionary<int, ActBillboardAwards> rankInfo = new Dictionary<int, ActBillboardAwards>(); //根据排名显示奖励 从1开始  跨服个人榜
 
        string m_ServerIDRangeInfo;    //开放该活动的服务器ID范围列表,json格式 [[IDA, IDB], ...], [] 为全服
        public string m_ServerListStr;
        public int m_GroupValue1;    // 活动榜单分组值1,用于查询对应榜单
        public int maxPersonalRank; //根据奖励显示最大排名
 
        public override void Reset()
        {
            base.Reset();
            rankInfo.Clear();
            m_ServerIDRangeInfo = "";
            m_ServerListStr = "";
            m_GroupValue1 = 0;
        }
 
        //显示参与时间
        public string ToDisplayJoinTime()
        {
            var textBuilder = OperationTimeHepler.textBuilder;
            textBuilder.Length = 0;
            textBuilder.Append(startDate.ToDisplay(false));
            textBuilder.Append(string.Format(" {0}:{1}", joinStartHour.ToString("D2"), joinStartMinute.ToString("D2")));
            if (startDate != endDate)
            {
                textBuilder.Append(" - ");
                textBuilder.Append(endDate.ToDisplay(false));
                textBuilder.Append(string.Format(" {0}:{1}", joinEndHour.ToString("D2"), joinEndMinute.ToString("D2")));
            }
            return textBuilder.ToString();
        }
 
        //结果展示时间 转为倒计时,以跨服时间为准
        public string ShowResultTime()
        {
            var endDataTime = TimeUtility.GetDayStartTime(ILTimeUtility.ServerCrossNow.Year, ILTimeUtility.ServerCrossNow.Month, ILTimeUtility.ServerCrossNow.Day).AddDays(1);
            return TimeUtility.SecondsToHMS((int)(endDataTime - ILTimeUtility.ServerCrossNow).TotalSeconds);
        }
 
        //是否展示结果时间, 以跨服时间为准(前提为以判断是活动中)
        public bool IsShowResultTime()
        {
            var endJoinDateTime = new DateTime(endDate.year, endDate.month, endDate.day, joinEndHour, joinEndMinute, 0);
            return ILTimeUtility.ServerCrossNow >= endJoinDateTime;
        }
 
 
        public void ParseCrossActHorsePetTrainInfo(HAA86_tagMCCrossActHorsePetTrainInfo package)
        {
            m_ServerIDRangeInfo = package.ServerIDRangeInfo;
            m_ServerListStr = UIHelper.GetServers(m_ServerIDRangeInfo);
            m_GroupValue1 = package.GroupValue1;
 
            rankInfo.Clear();
            maxPersonalRank = 0;
            for (int i = 0; i < package.PersonalBillboardInfoList.Length; i++)
            {
                List<Item> items = new List<Item>();
                for (int j = 0; j < package.PersonalBillboardInfoList[i].AwardItemList.Length; j++)
                {
                    items.Add(new Item((int)package.PersonalBillboardInfoList[i].AwardItemList[j].ItemID,
                                               package.PersonalBillboardInfoList[i].AwardItemList[j].ItemCount,
                                               package.PersonalBillboardInfoList[i].AwardItemList[j].IsBind));
                }
 
                //仅处理一档额外奖励
                List<Item> itemsEx = new List<Item>();
                var awardsEx = package.PersonalBillboardInfoList[i].AwardItemExList;
                int needScoreEx = 0;
                if (awardsEx.Length != 0)
                {
                    for (int j = 0; j < awardsEx[0].AwardItemList.Length; j++)
                    {
                        itemsEx.Add(new Item((int)awardsEx[0].AwardItemList[j].ItemID,
                                                awardsEx[0].AwardItemList[j].ItemCount,
                                                awardsEx[0].AwardItemList[j].IsBind));
                    }
                    needScoreEx = (int)awardsEx[0].NeedScore;
                }
 
                rankInfo[(int)package.PersonalBillboardInfoList[i].Rank] = new ActBillboardAwards()
                {
                    needScore = (int)package.PersonalBillboardInfoList[i].NeedScore,
                    awardItemList = items,
                    awardItemListEx = itemsEx,
                    needScoreEx = needScoreEx,
 
                };
                maxPersonalRank = Math.Max(maxPersonalRank, (int)package.PersonalBillboardInfoList[i].Rank);
            }
        }
 
 
    }
}