From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Guild/XGuildSmallMonsterDocument.cs | 250 +++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Guild/XGuildSmallMonsterDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/Guild/XGuildSmallMonsterDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/Guild/XGuildSmallMonsterDocument.cs b/Client/Assets/Scripts/XMainClient/Guild/XGuildSmallMonsterDocument.cs new file mode 100644 index 00000000..b5121302 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Guild/XGuildSmallMonsterDocument.cs @@ -0,0 +1,250 @@ +using System; +using System.Collections.Generic; +using KKSG; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XGuildSmallMonsterDocument : XDocComponent + { + public override uint ID + { + get + { + return XGuildSmallMonsterDocument.uuID; + } + } + + public int LeftEnterCount + { + get + { + return this._leftEnterCount; + } + } + + public int DayLimit + { + get + { + return XSingleton.singleton.GetInt("GuildCampDayCount"); + } + } + + public GuildCamp.RowData currCamp + { + get + { + for (int i = 0; i < XGuildSmallMonsterDocument._guildCampTable.Table.Length; i++) + { + bool flag = (long)XGuildSmallMonsterDocument._guildCampTable.Table[i].ID == (long)((ulong)this.DNExpId); + if (flag) + { + return XGuildSmallMonsterDocument._guildCampTable.Table[i]; + } + } + return null; + } + } + + public GuildCamp.RowData nextCamp + { + get + { + for (int i = 0; i < XGuildSmallMonsterDocument._guildCampTable.Table.Length; i++) + { + bool flag = (long)XGuildSmallMonsterDocument._guildCampTable.Table[i].ID == (long)((ulong)this.NextdayDneId); + if (flag) + { + return XGuildSmallMonsterDocument._guildCampTable.Table[i]; + } + } + return null; + } + } + + public uint Small_Monster_SceneID + { + get + { + XExpeditionDocument specificDocument = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + ExpeditionTable.RowData expeditionDataByID = specificDocument.GetExpeditionDataByID((int)this.DNExpId); + bool flag = expeditionDataByID != null; + if (flag) + { + List randomSceneList = specificDocument.GetRandomSceneList(expeditionDataByID.RandomSceneIDs[0]); + bool flag2 = randomSceneList.Count > 0; + if (flag2) + { + return randomSceneList[0]; + } + } + return 4500u; + } + } + + public List RankList + { + get + { + return this._rankList; + } + } + + public bool isKillType + { + get + { + bool flag = this.currCamp != null; + return flag && this.currCamp.Type == 2; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("GuildSmallMonsterDocument"); + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + public uint DNExpId = 11u; + + public uint NextdayDneId = 12u; + + private int _leftEnterCount = 0; + + private List _rankList = new List(); + + public static GuildCamp _guildCampTable = new GuildCamp(); + + public static GuildCampRank _guildRankTable = new GuildCampRank(); + + public static void Execute(OnLoadedCallback callback = null) + { + XGuildSmallMonsterDocument.AsyncLoader.AddTask("Table/GuildCamp", XGuildSmallMonsterDocument._guildCampTable, false); + XGuildSmallMonsterDocument.AsyncLoader.AddTask("Table/GuildCampRank", XGuildSmallMonsterDocument._guildRankTable, false); + XGuildSmallMonsterDocument.AsyncLoader.Execute(callback); + } + + protected override void EventSubscribe() + { + base.EventSubscribe(); + base.RegisterEvent(XEventDefine.XEvent_InGuildStateChanged, new XComponent.XEventHandler(this.GuildStateChanged)); + base.RegisterEvent(XEventDefine.XEvent_PlayerLevelChange, new XComponent.XEventHandler(this.OnPlayerLevelChange)); + } + + public bool IsOpen(ExpeditionTable.RowData rowData) + { + return (long)rowData.DNExpeditionID == (long)((ulong)this.DNExpId); + } + + public override void OnEnterSceneFinally() + { + base.OnEnterSceneFinally(); + bool flag = XSingleton.singleton.CurrentStage.Stage == EXStage.Hall; + if (flag) + { + this.SendQuerySmallMonterInfo(); + } + } + + public bool CheckEnterLevel() + { + XExpeditionDocument specificDocument = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + ExpeditionTable.RowData expeditionDataByID = specificDocument.GetExpeditionDataByID((int)this.DNExpId); + return specificDocument.TeamCategoryMgr.IsExpOpened(expeditionDataByID); + } + + public int GetEnterLevel() + { + XExpeditionDocument specificDocument = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + int expIDBySceneID = specificDocument.GetExpIDBySceneID(this.Small_Monster_SceneID); + ExpeditionTable.RowData expeditionDataByID = specificDocument.GetExpeditionDataByID(expIDBySceneID); + return (expeditionDataByID == null) ? 24 : expeditionDataByID.RequiredLevel; + } + + private bool GuildStateChanged(XEventArgs args) + { + XInGuildStateChangedEventArgs xinGuildStateChangedEventArgs = args as XInGuildStateChangedEventArgs; + bool bIsEnter = xinGuildStateChangedEventArgs.bIsEnter; + if (bIsEnter) + { + this.SendQuerySmallMonterInfo(); + } + else + { + this._leftEnterCount = 0; + } + return true; + } + + public void SendQuerySmallMonterInfo() + { + XGuildDocument specificDocument = XDocuments.GetSpecificDocument(XGuildDocument.uuID); + bool flag = !specificDocument.bInGuild; + if (!flag) + { + bool flag2 = !XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_GuildDungeon_SmallMonter); + if (!flag2) + { + RpcC2M_GuildCampInfo rpc = new RpcC2M_GuildCampInfo(); + XSingleton.singleton.Send(rpc); + } + } + } + + public void SetGuildSmallMonsterInfo(int leftEnterCount, int currID, int nextID, List rankList) + { + this._leftEnterCount = leftEnterCount; + this._rankList.Clear(); + DlgBase.singleton.RefreshRedp(); + bool flag = currID != 0 && nextID != 0; + if (flag) + { + this.DNExpId = (uint)currID; + this.NextdayDneId = (uint)nextID; + } + else + { + XSingleton.singleton.AddGreenLog("currID is 0", null, null, null, null, null); + } + for (int i = 0; i < rankList.Count; i++) + { + GuildCampRankInfo guildCampRankInfo = new GuildCampRankInfo(); + guildCampRankInfo.rankVar = rankList[i].rankVar; + guildCampRankInfo.rank = rankList[i].rank; + guildCampRankInfo.roles.Clear(); + for (int j = 0; j < rankList[i].roles.Count; j++) + { + guildCampRankInfo.roles.Add(rankList[i].roles[j]); + } + this._rankList.Add(guildCampRankInfo); + } + bool flag2 = !DlgBase.singleton.IsVisible(); + if (!flag2) + { + DlgBase.singleton.SetupDetailFrame(); + DlgBase.singleton.SetupRankFrame(); + } + } + + public void OpenTeamView() + { + XTeamDocument specificDocument = XDocuments.GetSpecificDocument(XTeamDocument.uuID); + specificDocument.SetAndMatch((int)this.DNExpId); + } + + private bool OnPlayerLevelChange(XEventArgs arg) + { + this.SendQuerySmallMonterInfo(); + return true; + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + bool flag = XSingleton.singleton.CurrentStage.Stage == EXStage.Hall; + if (flag) + { + this.SendQuerySmallMonterInfo(); + } + } + } +} -- cgit v1.1-26-g67d0