using FGUI.ZM_Common_01; using UnityEngine; using FairyGUI; using FGUI.LG_Common; using DG.Tweening; using SGModule.NetKit; using System.Collections.Generic; using SGModule.Common.Extensions; namespace LoveLegend { public class UnlockLevelUI : BaseUI { private UnlockLevelUICtrl ctrl; private UnlockLevelModel model; private FGUI.LG_End.com_unlockLevel ui; public UnlockLevelUI(UnlockLevelUICtrl ctrl) : base(ctrl) { uiName = UIConst.UnlockLevelUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "LG_End"; uiInfo.assetName = "com_unlockLevel"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = true; } #region 生命周期 protected override void OnInit() { //model = ModuleManager.Instance.GetModel(ModelConst.UnlockLevelModel) as UnlockLevelModel; } protected override void OnClose() { for (int i = 0; i < loader_list.Count; i++) { if (loader_list[i] != null && !loader_list[i].isDisposed && loader_list[i].texture != null) { loader_list[i].texture.Dispose(); loader_list[i].texture = null; } } loader_list.Clear(); } protected override void OnBind() { ui = baseUI as FGUI.LG_End.com_unlockLevel; } private LevelUnlock levelUnlock_; private int level_; protected override void OnOpenBefore(object args) { level_ = (int)args; Debug.Log(level_); if (!loader_list.Contains(ui.com_loader.GetChild("loader") as GLoader)) { loader_list.Add(ui.com_loader.GetChild("loader") as GLoader); } levelUnlock_ = ConfigSystem.GetConfig()[level_]; TextureHelper.SetImgLoader(ui.com_loader.GetChild("loader") as GLoader, levelUnlock_.Name, (s) => { TextureHelper.SetImageBlur(ui.com_loader.GetChild("loader") as GLoader); }, "LevelAlbums/", FolderNames.AlbumName); InitView(); if (levelUnlock_.LeveType == 1) { TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.speciallevel); } else if (levelUnlock_.LeveType == 2) { TrackKit.SendEvent(ADEventTrack.VipLevel, ADEventTrack.Property.viplevel); } } private List loader_list = new List(); protected override void OnOpen(object args) { } protected override void OnHide() { } protected override void OnDisplay(object args) { } #endregion #region 消息 protected override void AddListener() { GameDispatcher.Instance.AddListener(GameMsg.BuyVip, refrsh); } protected override void RemoveListener() { GameDispatcher.Instance.RemoveListener(GameMsg.BuyVip, refrsh); } #endregion private void refrsh(object a = null) { DOVirtual.DelayedCall(0.5f, () => { InitView(); }); } //初始化页面逻辑 private void InitView() { if (GameHelper.GetVipPrivilege(Subscription.VipLevel.As())) { (ui.btn_vip as btn_claim_2).have_vip.selectedIndex = 1; } if (GameHelper.GetVipPrivilege(Subscription.SLVLevel.As())) { (ui.btn_watch as btn_claim_1).have_vip.selectedIndex = 1; } if (levelUnlock_.LeveType == 1) //特殊关 { ui.type.selectedIndex = 0; ui.btn_pay.title = levelUnlock_.GoldCoins.ToString(); ui.btn_pay.SetClick(() => { if (DataMgr.Coin.Value >= levelUnlock_.GoldCoins) { DataMgr.Coin.Value -= levelUnlock_.GoldCoins; GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh); DataMgr.LevelUnlockList.Value.Add(level_); GameHelper.ShowTips("unlocked", true); DataMgr.LevelUnlockList.Save(); GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess); CtrlCloseUI(); TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.speciallevelcoin); } else { GameHelper.ShowTips("no_enough_gold", true); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open); } }); ui.btn_watch.SetClick(() => //7天都不包含。30天包含特殊,365全部包含 { if (GameHelper.GetVipPrivilege(Subscription.SLVLevel.As())) { DataMgr.LevelUnlockList.Value.Add(level_); GameHelper.ShowTips("unlocked", true); DataMgr.LevelUnlockList.Save(); GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess); CtrlCloseUI(); } else { GameHelper.ShowVideoAd("UnlockSpecialLevel", isSuccess => { if (isSuccess) { DataMgr.LevelUnlockList.Value.Add(level_); GameHelper.ShowTips("unlocked", true); DataMgr.LevelUnlockList.Save(); GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess); CtrlCloseUI(); } TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.speciallevelvideo); }); } }); } else if (levelUnlock_.LeveType == 2)//vip关 { ui.type.selectedIndex = 1; ui.btn_pay.title = levelUnlock_.GoldCoins.ToString(); ui.btn_pay.SetClick(() => { if (DataMgr.Coin.Value >= levelUnlock_.GoldCoins) { DataMgr.Coin.Value -= levelUnlock_.GoldCoins; GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh); DataMgr.LevelUnlockList.Value.Add(level_); GameHelper.ShowTips("unlocked", true); DataMgr.LevelUnlockList.Save(); GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess); TrackKit.SendEvent(ADEventTrack.VipLevel, ADEventTrack.Property.viplevelcoin); CtrlCloseUI(); } else { GameHelper.ShowTips("no_enough_gold", true); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open); } }); ui.btn_vip.SetClick(() => { if (GameHelper.GetVipPrivilege(Subscription.VipLevel.As())) { DataMgr.LevelUnlockList.Value.Add(level_); GameHelper.ShowTips("unlocked", true); DataMgr.LevelUnlockList.Save(); GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess); CtrlCloseUI(); } else { uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open, 2); TrackKit.SendEvent(ADEventTrack.VipLevel, ADEventTrack.Property.viplevelsub); } }); } ui.btn_close.SetClick(() => { GameHelper.SetLevel(GameHelper.GetLevel() + 1); if (UIManager.Instance.IsExistUI(UIConst.NewEndUI)) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NewEndUI_Close); } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open); } CtrlCloseUI(); }); } } }