From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/Guild/XGuildMineBattleDocument.cs | 248 +++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Guild/XGuildMineBattleDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/Guild/XGuildMineBattleDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/Guild/XGuildMineBattleDocument.cs b/Client/Assets/Scripts/XMainClient/Guild/XGuildMineBattleDocument.cs new file mode 100644 index 00000000..3edaf267 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Guild/XGuildMineBattleDocument.cs @@ -0,0 +1,248 @@ +using System; +using System.Collections.Generic; +using KKSG; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XGuildMineBattleDocument : XDocComponent + { + public override uint ID + { + get + { + return XGuildMineBattleDocument.uuID; + } + } + + public XBetterDictionary UserIdToRole + { + get + { + return this._UserIdToRole; + } + } + + public uint MyTeam + { + get + { + return this._MyTeam; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("XGuildMineBattleDocument"); + + public GuildMinePVPBattleHandler BattleHandler = null; + + public GuildMinePVPInfoHandler InfoHandler = null; + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private XBetterDictionary _UserIdToRole = new XBetterDictionary(0); + + private static GuildMineralBattleReward _GuildMineralBattleRewardTable = new GuildMineralBattleReward(); + + private uint _MyTeam = 0u; + + private bool _CanPlayAnim = false; + + public struct RoleData + { + public ulong uid; + + public string name; + + public uint teamID; + + public uint lv; + + public uint job; + + public uint ppt; + + public ulong guildID; + + public string guildname; + } + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + } + + public static void Execute(OnLoadedCallback callback = null) + { + XGuildMineBattleDocument.AsyncLoader.AddTask("Table/GuildMineralBattleReward", XGuildMineBattleDocument._GuildMineralBattleRewardTable, false); + XGuildMineBattleDocument.AsyncLoader.Execute(callback); + } + + public static GuildMineralBattleReward.RowData GetReward(uint rankId) + { + GuildMineralBattleReward.RowData rowData = null; + for (int i = 0; i < XGuildMineBattleDocument._GuildMineralBattleRewardTable.Table.Length; i++) + { + bool flag = XGuildMineBattleDocument._GuildMineralBattleRewardTable.Table[i].LevelSeal <= XLevelSealDocument.Doc.SealType && XGuildMineBattleDocument._GuildMineralBattleRewardTable.Table[i].Rank == rankId; + if (flag) + { + rowData = XGuildMineBattleDocument._GuildMineralBattleRewardTable.Table[i]; + } + } + bool flag2 = rowData == null; + if (flag2) + { + XSingleton.singleton.AddErrorLog(string.Concat(new object[] + { + "_GuildMineralBattleRewardTable No Find\nSealType", + XLevelSealDocument.Doc.SealType, + " Rank:", + rankId + }), null, null, null, null, null); + } + return rowData; + } + + public override void OnEnterSceneFinally() + { + bool flag = XSingleton.singleton.SceneType == SceneType.SCENE_RESWAR_PVE; + if (flag) + { + this.ReqGuildMinePVEAllInfo(); + } + } + + protected override void EventSubscribe() + { + base.EventSubscribe(); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + bool flag = XSingleton.singleton.SceneType == SceneType.SCENE_RESWAR_PVP; + if (flag) + { + this.ReqGuildMinePVPAllInfo(); + } + bool flag2 = XSingleton.singleton.SceneType == SceneType.SCENE_RESWAR_PVE; + if (flag2) + { + this.ReqGuildMinePVEAllInfo(); + } + } + + private void PlayStartTween() + { + bool flag = XSingleton.singleton.SceneType == SceneType.SCENE_RESWAR_PVP; + if (flag) + { + bool flag2 = this.InfoHandler == null; + if (!flag2) + { + bool canPlayAnim = this._CanPlayAnim; + if (canPlayAnim) + { + this.InfoHandler.PlayStartTween(); + this._CanPlayAnim = false; + } + } + } + } + + public void ReqGuildMinePVPAllInfo() + { + RpcC2G_ResWarAllInfoReqOne rpc = new RpcC2G_ResWarAllInfoReqOne(); + XSingleton.singleton.Send(rpc); + } + + public void ReqGuildMinePVEAllInfo() + { + RpcC2G_ResWarBuff rpc = new RpcC2G_ResWarBuff(); + XSingleton.singleton.Send(rpc); + } + + public void SetBattleTeamInfo(PtcG2C_ResWarTeamResOne roPtc) + { + XSingleton.singleton.AddGreenLog("PlayVSTween", null, null, null, null, null); + bool flag = roPtc.Data == null; + if (!flag) + { + this.SetBattleTeamInfo(roPtc.Data); + this._CanPlayAnim = true; + this.PlayStartTween(); + } + } + + public void SetBattleTeamInfo(ResWarAllTeamBaseInfo data) + { + bool flag = data == null; + if (!flag) + { + this._UserIdToRole.Clear(); + for (int i = 0; i < data.info.Count; i++) + { + XGuildMineBattleDocument.RoleData roleData; + roleData.uid = data.info[i].uid; + roleData.name = data.info[i].name; + roleData.job = data.info[i].job; + roleData.lv = data.info[i].lv; + roleData.teamID = data.info[i].teamid; + roleData.ppt = data.info[i].ppt; + roleData.guildID = data.info[i].guildid; + roleData.guildname = data.info[i].guildname; + this._UserIdToRole.Add(roleData.uid, roleData); + bool flag2 = XSingleton.singleton.XPlayerData.RoleID == roleData.uid; + if (flag2) + { + this._MyTeam = roleData.teamID; + } + } + bool flag3 = this._MyTeam == 0u; + if (flag3) + { + XSingleton.singleton.AddErrorLog("No Find My Team", null, null, null, null, null); + } + } + } + + public void SetBattleInfo(PtcG2C_ResWarBattleDataNtf roPtc) + { + this.SetBattleInfo(roPtc.Data); + } + + public void SetBattleInfo(ResWarAllInfo data) + { + bool flag = data == null; + if (!flag) + { + bool flag2 = this.BattleHandler == null; + if (!flag2) + { + this.BattleHandler.RefreshStatusTime(data.lefttime); + XSingleton.singleton.AddGreenLog("lefttime" + data.lefttime, null, null, null, null, null); + List groupdata = data.groupdata; + for (int i = 0; i < groupdata.Count; i++) + { + this.BattleHandler.SetDamage((ulong)groupdata[i].totaldamage, groupdata[i].teamid == this._MyTeam); + this.BattleHandler.SetScore(groupdata[i].killcount, groupdata[i].teamid == this._MyTeam); + } + } + } + } + + public void SetBattleAllInfo(ResWarArg oArg, ResWarRes oRes) + { + this.SetBattleTeamInfo(oRes.baseinfo); + this.SetBattleInfo(oRes.allinfo); + } + + public void HideVSInfo() + { + bool flag = this.InfoHandler != null; + if (flag) + { + XSingleton.singleton.AddGreenLog("HideVSInfo", null, null, null, null, null); + this.InfoHandler.CloseTween(null); + } + } + } +} -- cgit v1.1-26-g67d0