From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/XOnlineRewardView.cs | 169 +++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XOnlineRewardView.cs (limited to 'Client/Assets/Scripts/XMainClient/XOnlineRewardView.cs') diff --git a/Client/Assets/Scripts/XMainClient/XOnlineRewardView.cs b/Client/Assets/Scripts/XMainClient/XOnlineRewardView.cs new file mode 100644 index 00000000..15aa8c96 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XOnlineRewardView.cs @@ -0,0 +1,169 @@ +using System; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XOnlineRewardView : DlgBase + { + public override string fileName + { + get + { + return "GameSystem/OnlineReward"; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + public override bool pushstack + { + get + { + return true; + } + } + + private XOnlineRewardDocument _doc = null; + + private uint _timeToken; + + public override void RegisterEvent() + { + base.RegisterEvent(); + base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseClick)); + base.uiBehaviour.m_GetReward.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnGetRewardClick)); + } + + private bool OnCloseClick(IXUIButton button) + { + base.uiBehaviour.m_BgTween.PlayTween(false, -1f); + base.uiBehaviour.m_BgTween.RegisterOnFinishEventHandler(new OnTweenFinishEventHandler(this.OnPlayTweenFinish)); + return true; + } + + private bool OnGetRewardClick(IXUIButton button) + { + this._doc.SendGetReward(this._doc.CurrentID); + return true; + } + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XOnlineRewardDocument.uuID); + } + + protected override void OnShow() + { + base.OnShow(); + base.uiBehaviour.m_ItemPool.FakeReturnAll(); + this._doc.QueryStatus(); + this.RefreshItemList(); + bool flag = this._doc.Status.Count > this._doc.CurrentID; + if (flag) + { + this.SetGetRewardLabel(this._doc.Status[this._doc.CurrentID]); + } + else + { + this.SetGetRewardLabel(1); + } + base.uiBehaviour.m_BgTween.PlayTween(true, -1f); + base.uiBehaviour.m_BgTween.RegisterOnFinishEventHandler(null); + } + + protected override void OnUnload() + { + XSingleton.singleton.KillTimer(this._timeToken); + base.OnUnload(); + } + + public void RefreshItemList() + { + base.uiBehaviour.m_ItemPool.FakeReturnAll(); + float num = base.uiBehaviour.m_ItemPool.TplPos.x - (float)(XOnlineRewardDocument.RewardTable.Table[this._doc.CurrentID].reward.Count - 1) / 2f * (float)base.uiBehaviour.m_ItemPool.TplWidth; + for (int i = 0; i < XOnlineRewardDocument.RewardTable.Table[this._doc.CurrentID].reward.Count; i++) + { + uint num2 = XOnlineRewardDocument.RewardTable.Table[this._doc.CurrentID].reward[i, 0]; + uint itemCount = XOnlineRewardDocument.RewardTable.Table[this._doc.CurrentID].reward[i, 1]; + GameObject gameObject = base.uiBehaviour.m_ItemPool.FetchGameObject(false); + IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)num2; + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, (int)num2, (int)itemCount, false); + gameObject.transform.localPosition = new Vector3(num + (float)(i * base.uiBehaviour.m_ItemPool.TplWidth), base.uiBehaviour.m_ItemPool.TplPos.y); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); + } + base.uiBehaviour.m_ItemPool.ActualReturnAll(false); + } + + public void SetGetRewardLabel(int status) + { + bool flag = status == 0; + if (flag) + { + base.uiBehaviour.m_GetReward.SetEnable(false, false); + base.uiBehaviour.m_GetRewardLabel.SetText(XStringDefineProxy.GetString("SRS_FETCH")); + } + else + { + bool flag2 = status == 1; + if (flag2) + { + base.uiBehaviour.m_GetReward.SetEnable(true, false); + base.uiBehaviour.m_GetRewardLabel.SetText(XStringDefineProxy.GetString("SRS_FETCH")); + } + else + { + bool flag3 = status == 2; + if (flag3) + { + base.uiBehaviour.m_GetReward.SetEnable(false, false); + base.uiBehaviour.m_GetRewardLabel.SetText(XStringDefineProxy.GetString("SRS_FETCHED")); + } + } + } + this.SetLeftTime(null); + base.uiBehaviour.m_TimeTip.SetText(XOnlineRewardDocument.RewardTable.Table[this._doc.CurrentID].RewardTip); + } + + public void OnPlayTweenFinish(IXUITweenTool tween) + { + this.SetVisible(false, true); + } + + public void SetLeftTime(object o = null) + { + bool flag = !base.IsVisible(); + if (!flag) + { + bool flag2 = this._doc.Status.Count > this._doc.CurrentID && this._doc.Status[this._doc.CurrentID] != 2 && XSingleton.singleton.OnlineRewardRemainTime > 0f; + if (flag2) + { + base.uiBehaviour.m_LeftTime.SetVisible(true); + base.uiBehaviour.m_LeftTime.SetText(string.Format("{0} {1}", XSingleton.singleton.TimeFormatString((int)XSingleton.singleton.OnlineRewardRemainTime, 2, 3, 4, false, true), XStringDefineProxy.GetString("AFTER_TIME_REWARD"))); + XSingleton.singleton.KillTimer(this._timeToken); + this._timeToken = XSingleton.singleton.SetTimer(1f, new XTimerMgr.ElapsedEventHandler(this.SetLeftTime), null); + } + else + { + bool flag3 = base.uiBehaviour.m_LeftTime.IsVisible(); + if (flag3) + { + this._doc.QueryStatus(); + } + base.uiBehaviour.m_LeftTime.SetVisible(false); + } + } + } + } +} -- cgit v1.1-26-g67d0