using System; using System.Collections.Generic; using UILib; using UnityEngine; using XMainClient.UI; using XMainClient.UI.UICommon; using XUtliPoolLib; namespace XMainClient { internal class GameMallDlg : TabDlgBase { public XGameMallDocument doc { get { return XDocuments.GetSpecificDocument(XGameMallDocument.uuID); } } public override string fileName { get { return "GameSystem/GameMall"; } } public override bool pushstack { get { return true; } } public override int sysid { get { return XFastEnumIntEqualityComparer.ToInt(XSysDefine.XSys_GameMall); } } protected override bool bHorizontal { get { return false; } } public uint privilegeID = 93u; public GameBuyCardHander _gameBuyCardHander; public GameDescMallHander _gameDescMallHander; public GameItemsMallHander _gameItemsMallHander; public GamePayDiaMallHander _gamePayDiaMallHander; public GameMallTabsHandler _gameTabsHander; public GameMallShopHandler _gameShopHander; public GameObject _gameBuyCardPanel; public GameObject _gameDescMallPanel; public GameObject _gameItemsMallPanel; public GameObject _gamePayDiaMallPanel; public GameObject _gameTabsPanel; public GameObject _gameShopPanel; private Transform _tabPerent = null; private IXUILabel m_lblTitle; public ItemEnum item = ItemEnum.DIAMOND; public XSysDefine currSys = XSysDefine.XSys_GameMall_Diamond; public MallType mallType = MallType.WEEK; protected override void Init() { base.Init(); base.RegisterSubSysRedPointMgr(XSysDefine.XSys_GameMall); this.m_lblTitle = (base.uiBehaviour.transform.Find("Bg/T").GetComponent("XUILabel") as IXUILabel); } public override void OnUpdate() { base.OnUpdate(); } protected override void OnLoad() { base.OnLoad(); this._gameBuyCardPanel = base.uiBehaviour.transform.Find("Bg/BuycardFrame").gameObject; this._gameBuyCardPanel.SetActive(false); this._gameItemsMallPanel = base.uiBehaviour.transform.Find("Bg/ItemsFrame").gameObject; this._gameItemsMallPanel.SetActive(false); this._gameDescMallPanel = base.uiBehaviour.transform.Find("Bg/DescFrame").gameObject; this._gameDescMallPanel.SetActive(false); this._gamePayDiaMallPanel = base.uiBehaviour.transform.Find("Bg/DiamondFrame").gameObject; this._gamePayDiaMallPanel.SetActive(false); this._gameTabsPanel = base.uiBehaviour.transform.Find("Bg/TabsFrame").gameObject; this._gameTabsPanel.SetActive(false); this._gameShopPanel = base.uiBehaviour.transform.Find("Bg/ShopFrame").gameObject; this._gameShopPanel.SetActive(false); this._tabPerent = base.uiBehaviour.transform.Find("Bg"); } protected override void OnUnload() { DlgHandlerBase.EnsureUnload(ref this._gameBuyCardHander); DlgHandlerBase.EnsureUnload(ref this._gameDescMallHander); DlgHandlerBase.EnsureUnload(ref this._gameItemsMallHander); DlgHandlerBase.EnsureUnload(ref this._gamePayDiaMallHander); DlgHandlerBase.EnsureUnload(ref this._gameTabsHander); DlgHandlerBase.EnsureUnload(ref this._gameShopHander); base.OnUnload(); } protected override void OnShow() { base.OnShow(); this.RefreshShopRedPoint(); } protected override void OnHide() { this.doc.hotGoods.Clear(); this.doc.isNewWeekly = false; XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_GameMall, this.doc.shopRedPoint.Count != 0); XSingleton.singleton.RecalculateRedPointState(XSysDefine.XSys_GameMall, true); PtcC2G_RemoveIBShopIcon proto = new PtcC2G_RemoveIBShopIcon(); XSingleton.singleton.Send(proto); base.OnHide(); } public override void SetupHandlers(XSysDefine sys) { this.currSys = sys; this.m_lblTitle.SetText(XStringDefineProxy.GetString(sys.ToString())); XSysDefine xsysDefine = sys; if (xsysDefine != XSysDefine.XSys_Mall) { switch (xsysDefine) { case XSysDefine.XSys_GameMall_Diamond: this.item = ItemEnum.DIAMOND; base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameBuyCardHander, this._gameBuyCardPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameDescMallHander, this._gameDescMallPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameItemsMallHander, this._gameItemsMallPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameTabsHander, this._gameTabsPanel, this, true)); break; case XSysDefine.XSys_GameMall_Dragon: this.item = ItemEnum.DRAGON_COIN; base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameBuyCardHander, this._gameBuyCardPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameDescMallHander, this._gameDescMallPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameItemsMallHander, this._gameItemsMallPanel, this, true)); base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameTabsHander, this._gameTabsPanel, this, true)); break; case XSysDefine.XSys_GameMall_Pay: base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gamePayDiaMallHander, this._gamePayDiaMallPanel, this, true)); break; default: XSingleton.singleton.AddErrorLog("System has not finished:", sys.ToString(), null, null, null, null); break; } } else { base._AddActiveHandler(DlgHandlerBase.EnsureCreate(ref this._gameShopHander, this._gameShopPanel, this, true)); } } public void Refresh() { bool flag = this._gameTabsHander != null; if (flag) { this._gameTabsHander.Refresh(); } bool flag2 = this._gameBuyCardHander != null; if (flag2) { this._gameBuyCardHander.Refresh(); } bool flag3 = this._gameItemsMallHander != null; if (flag3) { this._gameItemsMallHander.Refresh(); } bool flag4 = this._gameDescMallHander != null; if (flag4) { this._gameDescMallHander.Refresh(); } bool flag5 = this._gameShopHander != null; if (flag5) { this._gameShopHander.Refresh(); } } public void Refresh(int itemid) { this.doc.currItemID = itemid; this._gameBuyCardHander.Refresh(); this._gameDescMallHander.Refresh(); } public void RefreshDiamondPay() { bool flag = this._gamePayDiaMallHander != null; if (flag) { this._gamePayDiaMallHander.RefreshDatas(); } } public void ShowMalltype(XSysDefine def, ulong xx) { XSingleton.singleton.AddGreenLog(string.Concat(new object[] { "def: ", def, " long is: ", xx }), null, null, null, null, null); } public void ShowMall(XSysDefine def, MallType type, ulong itemID) { uint level = XSingleton.singleton.XPlayerData.Level; List uintList = XSingleton.singleton.GetUIntList("MallTabLevel"); bool flag = level < uintList[type - MallType.WEEK]; if (flag) { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("TEAM_ERR_SCENE_LEVELREQ", new object[] { string.Empty }), "fece00"); } else { XGameMallDocument specificDocument = XDocuments.GetSpecificDocument(XGameMallDocument.uuID); specificDocument.currItemID = (int)itemID; this.mallType = type; base.ShowWorkGameSystem(def); } } public void ShowBuyItem(int itemid) { uint num; uint num2; this.doc.FindItem(itemid, out num, out num2); List uintList = XSingleton.singleton.GetUIntList("MallTabLevel"); uint level = XSingleton.singleton.XPlayerData.Level; bool flag = num <= 0u || num2 <= 0u; if (flag) { XSingleton.singleton.ShowSystemTip("not sail the item", "fece00"); } else { bool flag2 = level < uintList[(int)(num2 - 1u)]; if (flag2) { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("TEAM_ERR_SCENE_LEVELREQ", new object[] { string.Empty }), "fece00"); } else { XSysDefine def = (num == 9u) ? XSysDefine.XSys_GameMall_Diamond : XSysDefine.XSys_GameMall_Dragon; this.mallType = (MallType)num2; this.ShowMall(def, this.mallType, (ulong)((long)itemid)); } } } public void ShowPurchase(ItemEnum _item) { this.item = _item; bool flag = ItemEnum.DIAMOND == _item; if (flag) { bool flag2 = XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_GameMall_Pay); if (flag2) { base.ShowWorkGameSystem(XSysDefine.XSys_GameMall_Pay); } else { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("ERR_RECHARGE_NOT_OPEN"), "fece00"); } } else { DlgBase.singleton.ReqQuickCommonPurchase(_item); } } public void QueryItemsInfo() { this.doc.SendQueryItems(this.mallType); } public void RefreshShopRedPoint() { XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_GameMall, this.doc.shopRedPoint.Count != 0); XSingleton.singleton.RecalculateRedPointState(XSysDefine.XSys_GameMall, true); XSingleton.singleton.SetSysRedPointState(XSysDefine.XSys_Mall, this.doc.shopRedPoint.Count != 0); XSingleton.singleton.RecalculateRedPointState(XSysDefine.XSys_Mall, true); bool flag = this._gameShopHander != null && this._gameShopHander.IsVisible(); if (flag) { this._gameShopHander.RefreshRedPoint(); } } } }