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(); } } 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; } //> public Dictionary> joinFamilys = new Dictionary>(); // public Dictionary joinFamilyDict = new Dictionary(); //本服参与的仙盟列表 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(); } 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; } } } }