using LitJson; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { //本服和跨服活动的组合 //1. 参与时分由跨服活动决定 //古宝养成活动 public class OperationTreasurePavilionActCross : OperationBase { public Dictionary rankInfo = new Dictionary(); //根据排名显示奖励 从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 ParseCrossActGubaoInfo(HAA83_tagMCCrossActGubaoInfo 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 items = new List(); 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 itemsEx = new List(); 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); } } } }