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);
|
}
|
}
|
|
|
}
|
}
|
|