From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/BattleFieldBattleHandler.cs | 227 +++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs b/Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs new file mode 100644 index 00000000..e9d07868 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs @@ -0,0 +1,227 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class BattleFieldBattleHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "Battle/BattleField"; + } + } + + private uint _RefreshRankTimerID = 0u; + + private bool[] isEndTimeTip = new bool[6]; + + private List PointRewardList = new List(); + + private int PointStage; + + private XLeftTimeCounter _ReviveCounter; + + private IXUILabel m_MyRank; + + private IXUILabel m_MyName; + + private IXUILabel m_MyValue; + + private IXUIButton m_RankBtn; + + private IXUITweenTool m_Tween; + + private IXUILabel m_ReviveTime; + + private IXUILabel m_PointRewardTips; + + private XUIPool m_RankPool = new XUIPool(XSingleton.singleton.m_uiTool); + + protected override void Init() + { + base.Init(); + XBattleFieldBattleDocument.Doc.battleHandler = this; + this.m_ReviveTime = (base.transform.Find("ReviveTime").GetComponent("XUILabel") as IXUILabel); + this.m_PointRewardTips = (base.transform.Find("PointRewardTips").GetComponent("XUILabel") as IXUILabel); + Transform transform = base.transform.Find("RankPanel"); + this.m_MyRank = (transform.Find("MyInfo/Rank").GetComponent("XUILabel") as IXUILabel); + this.m_MyName = (transform.Find("MyInfo/Name").GetComponent("XUILabel") as IXUILabel); + this.m_MyValue = (transform.Find("MyInfo/Value").GetComponent("XUILabel") as IXUILabel); + this.m_RankBtn = (transform.Find("RankBtn").GetComponent("XUIButton") as IXUIButton); + this.m_Tween = (transform.gameObject.GetComponent("XUIPlayTween") as IXUITweenTool); + Transform transform2 = transform.Find("RankTpl"); + this.m_RankPool.SetupPool(null, transform2.gameObject, 5u, false); + this._ReviveCounter = new XLeftTimeCounter(this.m_ReviveTime, true); + this._ReviveCounter.SetTimeFormat(1, 3, 4, false); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_RankBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this._OnRankBtnClick)); + } + + protected override void OnShow() + { + base.OnShow(); + XSingleton.singleton.KillTimer(this._RefreshRankTimerID); + this.AutoRefresh(null); + this.InitShow(); + } + + public override void OnUpdate() + { + base.OnUpdate(); + this._ReviveCounter.Update(); + float leftTime = DlgBase.singleton.GetLeftTime(); + this.EndTip((int)leftTime); + } + + protected override void OnHide() + { + base.OnHide(); + } + + public override void OnUnload() + { + XSingleton.singleton.KillTimer(this._RefreshRankTimerID); + this._RefreshRankTimerID = 0u; + XBattleFieldBattleDocument.Doc.battleHandler = null; + base.OnUnload(); + } + + private void AutoRefresh(object param) + { + bool flag = base.IsVisible(); + if (flag) + { + XBattleFieldBattleDocument.Doc.ReqRankData(); + this._RefreshRankTimerID = XSingleton.singleton.SetTimer(2f, new XTimerMgr.ElapsedEventHandler(this.AutoRefresh), null); + } + } + + public void InitShow() + { + this.m_MyRank.SetText(XSingleton.singleton.GetString("NoRank")); + this.m_MyName.SetText(""); + this.m_MyValue.SetText("0"); + this.PointStage = 0; + this.RefreshPointStage(0UL); + DlgBase.singleton.HideLeftTime(); + this.m_RankPool.ReturnAll(false); + for (int i = 0; i < this.isEndTimeTip.Length; i++) + { + this.isEndTimeTip[i] = false; + } + this.PointRewardList = XBattleFieldEntranceDocument.Doc.GetPointRewardList(); + for (int j = this.PointRewardList.Count - 1; j >= 0; j--) + { + BattleFieldPointReward.RowData curPointRewardList = XBattleFieldEntranceDocument.Doc.GetCurPointRewardList(this.PointRewardList[j].id); + uint pointRewardGetCount = XBattleFieldEntranceDocument.Doc.GetPointRewardGetCount(this.PointRewardList[j].id); + bool flag = pointRewardGetCount == curPointRewardList.count; + if (flag) + { + this.PointRewardList.RemoveAt(j); + } + } + } + + public void RefreshRank(List data) + { + int num = -1; + for (int i = 0; i < data.Count; i++) + { + bool flag = data[i].roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag) + { + num = i; + break; + } + } + bool flag2 = num != -1; + if (flag2) + { + BattleFieldRank battleFieldRank = data[num]; + this.m_MyRank.SetText((num + 1).ToString()); + this.m_MyName.SetText(battleFieldRank.name); + this.m_MyValue.SetText(battleFieldRank.point.ToString()); + this.RefreshPointStage((ulong)battleFieldRank.point); + } + this.m_RankPool.FakeReturnAll(); + int num2 = 0; + while (num2 < data.Count && num2 < XBigMeleeBattleDocument.BATTLE_SHOW_RANK) + { + GameObject gameObject = this.m_RankPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(0f, (float)(-(float)num2 * this.m_RankPool.TplHeight), 0f) + this.m_RankPool.TplPos; + IXUILabel ixuilabel = gameObject.transform.Find("Rank").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = gameObject.transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel3 = gameObject.transform.Find("Value").GetComponent("XUILabel") as IXUILabel; + BattleFieldRank battleFieldRank2 = data[num2]; + ixuilabel.SetText((num2 + 1).ToString()); + ixuilabel2.SetText(battleFieldRank2.name); + ixuilabel3.SetText(battleFieldRank2.point.ToString()); + num2++; + } + this.m_RankPool.ActualReturnAll(false); + } + + private void RefreshPointStage(ulong value) + { + while (this.PointStage < this.PointRewardList.Count && value >= (ulong)((long)this.PointRewardList[this.PointStage].point)) + { + this.PointStage++; + } + bool flag = this.PointStage < this.PointRewardList.Count; + if (flag) + { + this.m_PointRewardTips.SetText(string.Format(XStringDefineProxy.GetString("BIG_MELEE_POINT_STAGE"), this.PointRewardList[this.PointStage].point.ToString())); + } + else + { + this.m_PointRewardTips.SetText(XStringDefineProxy.GetString("BIG_MELEE_MAX_POINT_STAGE")); + } + } + + public void SetReviveTime(uint time) + { + this._ReviveCounter.SetLeftTime(time + 0.5f, -1); + } + + private bool _OnRankBtnClick(IXUIButton btn) + { + this.m_Tween.PlayTween(true, -1f); + return true; + } + + public void EndTip(int time) + { + bool flag = time >= 7 || time <= 0; + if (!flag) + { + int num = time - 1; + bool flag2 = this.isEndTimeTip[num]; + if (!flag2) + { + this.isEndTimeTip[num] = true; + bool flag3 = time == 6; + if (flag3) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("BIG_MELEE_END_TIP"), "fece00"); + } + else + { + XSingleton.singleton.ShowSystemTip(time.ToString(), "fece00"); + } + } + } + } + } +} -- cgit v1.1-26-g67d0