using System; using UILib; using UnityEngine; using XMainClient.UI; using XMainClient.UI.UICommon; using XUtliPoolLib; namespace XMainClient { internal class CarnivalRwdHander : DlgHandlerBase { private IXUIButton m_rwdBtn; private IXUILabel m_rwdLbl; private IXUISlider m_slider; private IXUILabel m_lblProgress; private IXUISprite m_sprIntro; public IXUISprite m_sprRBg; private XDummy m_Dummy; private IUIDummy m_Snapshot; private uint present; protected override void Init() { base.Init(); this.m_Snapshot = (base.transform.Find("snapshot").GetComponent("UIDummy") as IUIDummy); this.m_rwdBtn = (base.transform.Find("btn").GetComponent("XUIButton") as IXUIButton); this.m_rwdLbl = (this.m_rwdBtn.gameObject.transform.Find("MoneyCost").GetComponent("XUILabel") as IXUILabel); this.m_sprIntro = (base.transform.Find("Help").GetComponent("XUISprite") as IXUISprite); this.m_slider = (base.transform.Find("slider").GetComponent("XUISlider") as IXUISlider); this.m_lblProgress = (base.transform.Find("slider/PLabel").GetComponent("XUILabel") as IXUILabel); this.m_sprRBg = (base.transform.Find("Bg").GetComponent("XUISprite") as IXUISprite); this.present = (uint)XSingleton.singleton.GetInt("CarnivalPresent"); } public override void RegisterEvent() { base.RegisterEvent(); this.m_rwdBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRwdbtnClick)); this.m_sprIntro.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnIntroClick)); this.m_sprRBg.RegisterSpriteDragEventHandler(new SpriteDragEventHandler(this.OnAvatarDrag)); } private void OnIntroClick(IXUISprite sp) { XSingleton.singleton.AddLog("intro click", null, null, null, null, null, XDebugColor.XDebug_None); } public void Refresh() { bool flag = this.m_Dummy == null; if (flag) { this.m_Dummy = XSingleton.singleton.CreateCommonEntityDummy(this.m_dummPool, this.present, this.m_Snapshot, this.m_Dummy, 1f); } bool flag2 = !XSingleton.singleton.XPlayerData.CarnivalClaimed; this.m_rwdBtn.SetEnable(flag2 && !DlgBase.singleton.doc.IsActivityClosed(), false); this.m_rwdLbl.SetText((!flag2) ? XStringDefineProxy.GetString("carnival_after") : XStringDefineProxy.GetString("carnival_befor")); uint needPoint = DlgBase.singleton.doc.needPoint; uint point = XSingleton.singleton.XPlayerData.point; this.m_slider.Value = Mathf.Min(needPoint, point) / needPoint; this.m_lblProgress.SetText(point + "/" + needPoint); } private bool OnRwdbtnClick(IXUIButton btn) { uint needPoint = DlgBase.singleton.doc.needPoint; uint point = XSingleton.singleton.XPlayerData.point; bool flag = DlgBase.singleton.doc.IsActivityClosed(); if (flag) { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("CarnivalLast"), "fece00"); } else { bool flag2 = point >= needPoint; if (flag2) { DlgBase.singleton.doc.ExchangePoint(); } else { bool flag3 = DlgBase.singleton.doc.IsActivityExpire(); if (flag3) { int num = Convert.ToInt32(Math.Round((double)((needPoint - point) * DlgBase.singleton.doc.rate))); DlgBase.singleton.SetVisible(true, true); DlgBase.singleton.SetSingleButtonMode(false); string @string = XStringDefineProxy.GetString("CarnivalPrice", new object[] { num, needPoint - point }); string string2 = XStringDefineProxy.GetString(XStringDefine.COMMON_OK); string string3 = XStringDefineProxy.GetString(XStringDefine.COMMON_CANCEL); DlgBase.singleton.SetLabelsWithSymbols(@string, string2, string3); DlgBase.singleton.SetModalCallback(new ButtonClickEventHandler(this.OnModalDlgOK), null); } else { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("CarnivalLess"), "fece00"); } } } return true; } private bool OnModalDlgOK(IXUIButton btn) { DlgBase.singleton.SetVisible(false, true); uint needPoint = DlgBase.singleton.doc.needPoint; int num = (int)XSingleton.singleton.Doc.XBagDoc.GetItemCount(7); uint point = XSingleton.singleton.XPlayerData.point; int num2 = Convert.ToInt32(Math.Round((double)((needPoint - point) * DlgBase.singleton.doc.rate))); bool flag = num > num2; if (flag) { DlgBase.singleton.doc.ExchangePoint(); } else { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("CarnivalPay"), "fece00"); } return true; } protected override void OnShow() { base.OnShow(); base.Alloc3DAvatarPool("CarnivalRwdHander", 1); this.m_Dummy = XSingleton.singleton.CreateCommonEntityDummy(this.m_dummPool, this.present, this.m_Snapshot, this.m_Dummy, 1f); uint needPoint = DlgBase.singleton.doc.needPoint; uint point = XSingleton.singleton.XPlayerData.point; this.m_slider.Value = Mathf.Min(needPoint, point) / needPoint; this.m_lblProgress.SetText(point + "/" + needPoint); } public override void StackRefresh() { base.StackRefresh(); base.Alloc3DAvatarPool("CarnivalRwdHander", 1); this.m_Dummy = XSingleton.singleton.CreateCommonEntityDummy(this.m_dummPool, this.present, this.m_Snapshot, this.m_Dummy, 1f); } public override void LeaveStackTop() { base.LeaveStackTop(); XSingleton.singleton.DestroyDummy(this.m_dummPool, this.m_Dummy); this.m_Dummy = null; } protected override void OnHide() { base.Return3DAvatarPool(); this.m_Dummy = null; base.OnHide(); } public override void OnUnload() { base.Return3DAvatarPool(); this.m_Dummy = null; base.OnUnload(); } protected bool OnAvatarDrag(Vector2 delta) { bool flag = this.m_Dummy != null; if (flag) { this.m_Dummy.EngineObject.Rotate(Vector3.up, -delta.x / 2f); } return true; } } }