diff options
author | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
commit | 6eb915c129fc90c6f4c82ae097dd6ffad5239efc (patch) | |
tree | 7dd2be50edf41f36b60fac84696e731c13afe617 /Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs |
+scripts
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs')
-rw-r--r-- | Client/Assets/Scripts/XMainClient/BattleFieldBattleHandler.cs | 227 |
1 files changed, 227 insertions, 0 deletions
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<BattleFieldPointReward.RowData> PointRewardList = new List<BattleFieldPointReward.RowData>();
+
+ 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<XGameUI>.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<XTimerMgr>.singleton.KillTimer(this._RefreshRankTimerID);
+ this.AutoRefresh(null);
+ this.InitShow();
+ }
+
+ public override void OnUpdate()
+ {
+ base.OnUpdate();
+ this._ReviveCounter.Update();
+ float leftTime = DlgBase<BattleMain, BattleMainBehaviour>.singleton.GetLeftTime();
+ this.EndTip((int)leftTime);
+ }
+
+ protected override void OnHide()
+ {
+ base.OnHide();
+ }
+
+ public override void OnUnload()
+ {
+ XSingleton<XTimerMgr>.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<XTimerMgr>.singleton.SetTimer(2f, new XTimerMgr.ElapsedEventHandler(this.AutoRefresh), null);
+ }
+ }
+
+ public void InitShow()
+ {
+ this.m_MyRank.SetText(XSingleton<XStringTable>.singleton.GetString("NoRank"));
+ this.m_MyName.SetText("");
+ this.m_MyValue.SetText("0");
+ this.PointStage = 0;
+ this.RefreshPointStage(0UL);
+ DlgBase<BattleMain, BattleMainBehaviour>.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<BattleFieldRank> data)
+ {
+ int num = -1;
+ for (int i = 0; i < data.Count; i++)
+ {
+ bool flag = data[i].roleid == XSingleton<XAttributeMgr>.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<UiUtility>.singleton.ShowSystemTip(XStringDefineProxy.GetString("BIG_MELEE_END_TIP"), "fece00");
+ }
+ else
+ {
+ XSingleton<UiUtility>.singleton.ShowSystemTip(time.ToString(), "fece00");
+ }
+ }
+ }
+ }
+ }
+}
|