using System;
|
using System.Collections.Generic;
|
|
namespace vnxbqy.UI
|
{
|
public class OperationFairySiegeCross : OperationBase
|
{
|
public int zoneID; // 活动分区ID,公示期为0
|
public uint actID; // 活动ID,代表某一次活动的唯一ID,前端如果有活动相关的本地记录可以通过验证此ID变更进行重置
|
public byte JoinFamilyCnt; // 参与仙盟数
|
public ushort ActFlowID; // 活动流程ID,对应H.活动时间流程表中的编号,前端根据跨服时间自行计算当前所处流程状态
|
public ushort GuessTemplateID; // 竞猜奖励模版,对应H.活动竞猜表,前端自行读表展示
|
public ushort PersonalTemplateID; // 个人伤害排行奖励模版,对应H.活动榜单奖励模版表,前端自行读表展示
|
public ushort FamilyTemplateID; // 仙盟积分排行奖励模版,对应H.活动榜单奖励模版表,前端自行读表展示
|
public uint StateError; // 活动流程状态是否异常,如果不为0代表活动已异常,前端自行决定是不显示活动还是活动页面做提示
|
public HC024_tagGCFamilyGCZActInfo.tagGCFamilyGCZActFamily[] ActFamilyList; //本分区参与的仙盟名单
|
string m_ServerIDRangeInfo; //开放该活动的服务器ID范围列表,json格式 [[IDA, IDB], ...], [] 为全服
|
public string m_ServerListStr;
|
FairySiegeActModel model { get { return ModelCenter.Instance.GetModel<FairySiegeActModel>(); } }
|
|
public override void Reset()
|
{
|
base.Reset();
|
m_ServerIDRangeInfo = "";
|
m_ServerListStr = "";
|
}
|
|
public override bool SatisfyOpenCondition()
|
{
|
return PlayerDatas.Instance.baseData.LV >= limitLv;
|
}
|
|
//显示参与时间
|
public string ToDisplayJoinTime()
|
{
|
var textBuilder = OperationTimeHepler.textBuilder;
|
textBuilder.Length = 0;
|
textBuilder.Append(string.Format(" {0}:{1}", joinStartHour.ToString("D2"), joinStartMinute.ToString("D2")));
|
textBuilder.Append(" - ");
|
textBuilder.Append(string.Format(" {0}:{1}", joinEndHour.ToString("D2"), joinEndMinute.ToString("D2")));
|
return textBuilder.ToString();
|
}
|
|
public override string ToDisplayTime()
|
{
|
var textBuilder = OperationTimeHepler.textBuilder;
|
textBuilder.Length = 0;
|
textBuilder.Append(startDate.ToDisplay(false));
|
textBuilder.Append(string.Format(" {0}:{1}:{2}", 0.ToString("D2"), 0.ToString("D2"), 0.ToString("D2")));
|
//textBuilder.Append(string.Format("{0}:{1}", joinStartHour.ToString("D2"), joinStartMinute.ToString("D2")));
|
textBuilder.Append(" - ");
|
textBuilder.Append(endDate.ToDisplay(false));
|
textBuilder.Append(string.Format(" {0}:{1}:{2} ", 23.ToString("D2"), 59.ToString("D2"), 59.ToString("D2")));
|
//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;
|
}
|
|
//<ServerID,<FamilyID,FairySiegeFamilyInfo>>
|
public Dictionary<uint, Dictionary<uint, FairySiegeFamilyInfo>> joinFamilys = new Dictionary<uint, Dictionary<uint, FairySiegeFamilyInfo>>();
|
//<FamilyID,FairySiegeFamilyInfo>
|
public Dictionary<uint, FairySiegeFamilyInfo> joinFamilyDict = new Dictionary<uint, FairySiegeFamilyInfo>(); //本服参与的仙盟列表
|
|
public void ParseCrossFairySiegeInfo(HC024_tagGCFamilyGCZActInfo package)
|
{
|
m_ServerIDRangeInfo = package.ServerIDRangeInfo;
|
m_ServerIDRangeInfo = package.ServerIDRangeInfo;
|
m_ServerListStr = UIHelper.GetServers(m_ServerIDRangeInfo);
|
|
foreach (var pack in package.ActFamilyList)
|
{
|
if (!joinFamilys.ContainsKey(pack.ServerID))
|
{
|
joinFamilys[pack.ServerID] = new Dictionary<uint, FairySiegeFamilyInfo>();
|
}
|
if (!joinFamilys[pack.ServerID].ContainsKey(pack.FamilyID))
|
{
|
joinFamilys[pack.ServerID][pack.FamilyID] = new FairySiegeFamilyInfo();
|
}
|
joinFamilys[pack.ServerID][pack.FamilyID].FamilyID = pack.FamilyID;
|
joinFamilys[pack.ServerID][pack.FamilyID].Name = UIHelper.ServerStringTrim(pack.Name);
|
joinFamilys[pack.ServerID][pack.FamilyID].LV = pack.LV;
|
joinFamilys[pack.ServerID][pack.FamilyID].ServerID = pack.ServerID;
|
joinFamilys[pack.ServerID][pack.FamilyID].EmblemID = pack.EmblemID;
|
joinFamilys[pack.ServerID][pack.FamilyID].FightPower = (ulong)pack.FightPowerEx * 100000000 + pack.FightPower;
|
joinFamilys[pack.ServerID][pack.FamilyID].LeaderID = pack.LeaderID;
|
joinFamilys[pack.ServerID][pack.FamilyID].LeaderName = UIHelper.ServerStringTrim(pack.LeaderName);
|
joinFamilys[pack.ServerID][pack.FamilyID].LeaderFace = pack.LeaderFace;
|
joinFamilys[pack.ServerID][pack.FamilyID].LeaderFacePic = pack.LeaderFacePic;
|
|
if (!joinFamilyDict.ContainsKey(pack.FamilyID))
|
{
|
joinFamilyDict[pack.FamilyID] = new FairySiegeFamilyInfo();
|
}
|
joinFamilyDict[pack.FamilyID].FamilyID = pack.FamilyID;
|
joinFamilyDict[pack.FamilyID].Name = UIHelper.ServerStringTrim(pack.Name);
|
joinFamilyDict[pack.FamilyID].LV = pack.LV;
|
joinFamilyDict[pack.FamilyID].ServerID = pack.ServerID;
|
joinFamilyDict[pack.FamilyID].EmblemID = pack.EmblemID;
|
joinFamilyDict[pack.FamilyID].FightPower = (ulong)pack.FightPowerEx * 100000000 + pack.FightPower;
|
joinFamilyDict[pack.FamilyID].LeaderID = pack.LeaderID;
|
joinFamilyDict[pack.FamilyID].LeaderName = UIHelper.ServerStringTrim(pack.LeaderName);
|
joinFamilyDict[pack.FamilyID].LeaderFace = pack.LeaderFace;
|
joinFamilyDict[pack.FamilyID].LeaderFacePic = pack.LeaderFacePic;
|
}
|
}
|
}
|
}
|