Files
BallCrushBest_GP/Assets/Scripts/ModuleUI/UnlockLevel/UnlockLevelUI.cs
T

248 lines
8.3 KiB
C#
Raw Normal View History

2026-04-20 12:06:34 +08:00
using System.Collections.Generic;
using FGUI.ZM_Common_01;
using UnityEngine;
using FairyGUI;
using FGUI.LG_Common;
using DG.Tweening;
using SGModule.NetKit;
namespace BallKingdomCrush
{
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 = null;
}
}
loader_list.Clear();
}
protected override void OnBind()
{
ui = baseUI as FGUI.LG_End.com_unlockLevel;
}
private LevelUnlock levelUnlock_;
private int level_;
private List<GLoader> loader_list = new List<GLoader>();
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<LevelUnlock>()[level_];
// TextureHelper.SetImgLoader(ui.com_loader.GetChild("loader") as GLoader, levelUnlock_.Name, (s) =>
// {
// TextureHelper.SetImageBlur(ui.com_loader.GetChild("loader") as GLoader);
// }, "LevelAlbums/");
InitView();
var names = ADEventTrack.Property.vip_show_levelpass + (level_ + 1);
TrackKit.SendEvent(ADEventTrack.Subscription, names);
var eventName = levelUnlock_.LeveType == 1 ? ADEventTrack.Property.special_level : ADEventTrack.Property.vip_level;
TrackKit.SendEvent(ADEventTrack.Special, eventName);
}
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.GetVipLevel() >= 3)
{
(ui.btn_vip as btn_claim_2).have_vip.selectedIndex = 1;
}
if (GameHelper.GetVipLevel() >= 2)
{
(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);
TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.special_level_coin);
CtrlCloseUI();
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open, true);
}
});
ui.btn_watch.SetClick(() => //7天都不包含。30天包含特殊,365全部包含
{
if (GameHelper.GetVipLevel() >= 2)
{
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)
{
TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.special_level_video);
DataMgr.LevelUnlockList.Value.Add(level_);
GameHelper.ShowTips("unlocked", true);
DataMgr.LevelUnlockList.Save();
GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess);
CtrlCloseUI();
}
});
}
});
}
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_);
DataMgr.LevelUnlockList.Save();
GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess);
CtrlCloseUI();
TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.vip_level_coin);
}
else
{
}
});
ui.btn_vip.SetClick(() =>
{
if (GameHelper.GetVipLevel() >= 3)
{
DataMgr.LevelUnlockList.Value.Add(level_);
DataMgr.LevelUnlockList.Save();
GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess);
CtrlCloseUI();
}
else
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open, 2);
}
TrackKit.SendEvent(ADEventTrack.Special, ADEventTrack.Property.vip_level_sub);
});
}
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();
});
}
}
}