Files
RedHotRoast-ios/Assets/Scripts/ModuleUI/UnlockLevelNew/UnlockLevelNewUI.cs
T

491 lines
19 KiB
C#
Raw Normal View History

using FGUI.ZM_Common_01;
using UnityEngine;
using FairyGUI;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Linq;
using SGModule.Common.Extensions;
using DG.Tweening;
using UnityEngine.UIElements;
using SGModule.NetKit;
namespace LoveLegend
{
public class UnlockLevelNewUI : BaseUI
{
private UnlockLevelNewUICtrl ctrl;
private UnlockLevelNewModel model;
private FGUI.LG_End.com_unlockLevelNew ui;
public UnlockLevelNewUI(UnlockLevelNewUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.UnlockLevelNewUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "LG_End";
uiInfo.assetName = "com_unlockLevelNew";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.UnlockLevelNewModel) as UnlockLevelNewModel;
}
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();
foreach (var loader in loader_list)
{
if (loader == null || loader.isDisposed) continue;
// 释放材质到材质池
if (loader.material != null)
{
TextureHelper.CancelImageBlur(loader); // 自动返回材质池
loader.material = null;
}
// 清理 NTexture
if (loader.texture != null)
{
loader.texture.Dispose(); // 销毁 NTexture 对象
loader.texture = null;
}
}
loader_list.Clear();
}
private List<GLoader> loader_list = new List<GLoader>();
protected override void OnBind()
{
ui = baseUI as FGUI.LG_End.com_unlockLevelNew;
}
private bool isHallEnter = false;
protected override void OnOpenBefore(object args)
{
if (args != null)
{
isHallEnter = (bool)args;
}
InitView();
ui.btn_close.SetClick(() =>
{
GameDispatcher.Instance.Dispatch(GameMsg.ExitGame);
uiCtrlDispatcher.Dispatch(UICtrlMsg.NewEndUI_Close);
CtrlCloseUI();
});
}
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, RefreshVip);
}
protected override void RemoveListener()
{
GameDispatcher.Instance.RemoveListener(GameMsg.BuyVip, RefreshVip);
}
#endregion
private void RefreshVip(object a = null)
{
bool have_special = GameHelper.GetVipPrivilege(Subscription.SLVLevel.As<int>());
SpecialImageLibrary special_ImageLibrary = ConfigSystem.GetConfig<SpecialImageLibrary>()[DataMgr.LevelUnlockSpecial.Value];
if (special_ImageLibrary.State == 1 && !have_special) TextureHelper.SetImageBlur(ui.item_2.com_pic.picture);
else TextureHelper.CancelImageBlur(ui.item_2.com_pic.picture);
if (have_special)
{
ui.item_2.btn_unlock.visible = false;
ui.item_2.type.selectedIndex = 0;
ui.item_2.btn_skip.SetClick(() =>
{
SelectLevel(2, DataMgr.LevelUnlockSpecial.Value);
});
}
else
{
ui.item_2.type.selectedIndex = 2;
ui.item_2.btn_unlock.visible = true;
ui.item_2.btn_skip.SetClick(() =>
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open);
});
if (special_ImageLibrary.GoldCoins > 0)
{
ui.item_2.btn_unlock.pay_type.selectedIndex = 1;
ui.item_2.btn_unlock.title = special_ImageLibrary.GoldCoins.ToString();
ui.item_2.btn_unlock.SetClick(() =>
{
if (DataMgr.Coin.Value >= special_ImageLibrary.GoldCoins)
{
GameHelper.AddGold(-special_ImageLibrary.GoldCoins);
SelectLevel(2, DataMgr.LevelUnlockSpecial.Value);
Debug.Log("///////金币解锁");
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
uiCtrlDispatcher.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
}
else
{
ui.item_2.btn_unlock.visible = false;
}
}
bool have_vip = GameHelper.GetVipPrivilege(Subscription.VipLevel.As<int>());
VIPImageLibrary vip_ImageLibrary = ConfigSystem.GetConfig<VIPImageLibrary>()[DataMgr.LevelUnlockVIP.Value];
if (vip_ImageLibrary.State == 1 && !have_vip) TextureHelper.SetImageBlur(ui.item_3.com_pic.picture);
else TextureHelper.CancelImageBlur(ui.item_3.com_pic.picture);
if (have_vip)
{
ui.item_3.btn_unlock.visible = false;
ui.item_3.type.selectedIndex = 0;
ui.item_3.btn_skip.SetClick(() =>
{
SelectLevel(3, DataMgr.LevelUnlockVIP.Value);
});
}
else
{
ui.item_3.type.selectedIndex = 3;
ui.item_3.btn_unlock.visible = true;
ui.item_3.btn_skip.SetClick(() =>
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open);
});
if (vip_ImageLibrary.GoldCoins > 0)
{
ui.item_3.btn_unlock.pay_type.selectedIndex = 1;
ui.item_3.btn_unlock.title = vip_ImageLibrary.GoldCoins.ToString();
ui.item_3.btn_unlock.SetClick(() =>
{
if (DataMgr.Coin.Value >= vip_ImageLibrary.GoldCoins)
{
GameHelper.AddGold(-vip_ImageLibrary.GoldCoins);
SelectLevel(3, DataMgr.LevelUnlockVIP.Value);
Debug.Log("///////金币解锁");
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
uiCtrlDispatcher.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
}
else
{
ui.item_3.btn_unlock.visible = false;
}
}
}
//初始化页面逻辑
private void InitView()
{
Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig<FreeImageLibrary>()) + "..................");
Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig<ADImageLibrary>()) + "..................");
Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig<SpecialImageLibrary>()) + "..................");
Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig<VIPImageLibrary>()) + "..................");
ConfigSystem.GetConfig<VIPImageLibrary>();
loader_list.Add(ui.item_0.com_pic.picture);
loader_list.Add(ui.item_1.com_pic.picture);
loader_list.Add(ui.item_2.com_pic.picture);
loader_list.Add(ui.item_3.com_pic.picture);
// List<int> free_level_list = new List<int>();
// List<int> ad_level_list = new List<int>();
// List<int> special_level_list = new List<int>();
// List<int> vip_level_list = new List<int>();
// for (int i = 0; i < DataMgr.LevelUnlockListNew.Value.Count; i++)
// {
// if (DataMgr.LevelUnlockListNew.Value[i].type == 0) free_level_list.Add(DataMgr.LevelUnlockListNew.Value[i].config_index);
// else if (DataMgr.LevelUnlockListNew.Value[i].type == 1) ad_level_list.Add(DataMgr.LevelUnlockListNew.Value[i].config_index);
// else if (DataMgr.LevelUnlockListNew.Value[i].type == 2) special_level_list.Add(DataMgr.LevelUnlockListNew.Value[i].config_index);
// else if (DataMgr.LevelUnlockListNew.Value[i].type == 3) vip_level_list.Add(DataMgr.LevelUnlockListNew.Value[i].config_index);
// }
int Free_Alubum_0 = PlayerPrefs.GetInt("Free_Alubum_0", -1);
int AD_Alubum = PlayerPrefs.GetInt("AD_Alubum", -1);
int Spec_Alubum = PlayerPrefs.GetInt("Spec_Alubum", -1);
int Vip_Alubum = PlayerPrefs.GetInt("Vip_Alubum", -1);
if (DataMgr.LevelUnlockFree.Value < 0)
{
DataMgr.LevelUnlockFree.Value = Free_Alubum_0;
}
if (DataMgr.LevelUnlockAD.Value < 0)
{
DataMgr.LevelUnlockAD.Value = AD_Alubum;
}
if (DataMgr.LevelUnlockSpecial.Value < 0)
{
DataMgr.LevelUnlockSpecial.Value = Spec_Alubum;
}
if (DataMgr.LevelUnlockVIP.Value < 0)
{
DataMgr.LevelUnlockVIP.Value = Vip_Alubum;
}
FreeImageLibrary free_ImageLibrary = ConfigSystem.GetConfig<FreeImageLibrary>()[DataMgr.LevelUnlockFree.Value];
ui.item_0.btn_unlock.pay_type.selectedIndex = 2;
ui.item_0_re.btn_unlock.visible = false;
TextureHelper.SetImgLoader(ui.item_0.com_pic.picture, free_ImageLibrary.Name, (s) =>
{
if (free_ImageLibrary.State == 1) TextureHelper.SetImageBlur(ui.item_0.com_pic.picture);
}, "LevelAlbums/", FolderNames.AlbumName);
int Free_Alubum_1 = PlayerPrefs.GetInt("Free_Alubum_1", -1);
FreeImageLibrary free_ImageLibrary_re = ConfigSystem.GetConfig<FreeImageLibrary>()[Free_Alubum_1];
TextureHelper.SetImgLoader(ui.item_0_re.com_pic.picture, free_ImageLibrary_re.Name, (s) =>
{
if (free_ImageLibrary_re.State == 1) TextureHelper.SetImageBlur(ui.item_0_re.com_pic.picture);
}, "LevelAlbums/", FolderNames.AlbumName);
ui.item_0.btn_unlock.SetClick(() =>
{
PlayerPrefs.SetInt("unlock_refresh", 0);
DataMgr.LevelUnlockFree.Value = Free_Alubum_1;
ui.item_0.visible = false;
ui.item_0_re.visible = true;
});
if (PlayerPrefs.GetInt("unlock_refresh", 1) == 1)
{
ui.item_0.visible = true;
ui.item_0_re.visible = false;
}
else
{
ui.item_0.visible = false;
ui.item_0_re.visible = true;
}
ui.item_0.btn_skip.SetClick(() =>
{
SelectLevel(0, DataMgr.LevelUnlockFree.Value);
});
ui.item_0_re.btn_skip.SetClick(() =>
{
SelectLevel(0, DataMgr.LevelUnlockFree.Value);
});
ADImageLibrary ad_ImageLibrary = ConfigSystem.GetConfig<ADImageLibrary>()[DataMgr.LevelUnlockAD.Value];
TextureHelper.SetImgLoader(ui.item_1.com_pic.picture, ad_ImageLibrary.Name, (s) =>
{
if (ad_ImageLibrary.State == 1) TextureHelper.SetImageBlur(ui.item_1.com_pic.picture);
}, "LevelAlbums/", FolderNames.AlbumName);
ui.item_1.btn_unlock.pay_type.selectedIndex = 3;
ui.item_1.btn_skip.SetClick(() =>
{
Debug.Log("///////播放广告解锁");
GameHelper.ShowVideoAd("UnlockLevel", isSuccess =>
{
if (isSuccess)
{
SelectLevel(1, DataMgr.LevelUnlockAD.Value);
}
});
});
bool have_special = GameHelper.GetVipPrivilege(Subscription.SLVLevel.As<int>());
SpecialImageLibrary special_ImageLibrary = ConfigSystem.GetConfig<SpecialImageLibrary>()[DataMgr.LevelUnlockSpecial.Value];
TextureHelper.SetImgLoader(ui.item_2.com_pic.picture, special_ImageLibrary.Name, (s) =>
{
if (special_ImageLibrary.State == 1 && !have_special) TextureHelper.SetImageBlur(ui.item_2.com_pic.picture);
}, "LevelAlbums/", FolderNames.AlbumName);
if (have_special)
{
ui.item_2.btn_unlock.visible = false;
ui.item_2.type.selectedIndex = 0;
ui.item_2.btn_skip.SetClick(() =>
{
SelectLevel(2, DataMgr.LevelUnlockSpecial.Value);
});
}
else
{
ui.item_2.type.selectedIndex = 2;
ui.item_2.btn_unlock.visible = true;
ui.item_2.btn_skip.SetClick(() =>
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open);
});
if (special_ImageLibrary.GoldCoins > 0)
{
ui.item_2.btn_unlock.pay_type.selectedIndex = 1;
ui.item_2.btn_unlock.title = special_ImageLibrary.GoldCoins.ToString();
ui.item_2.btn_unlock.SetClick(() =>
{
if (DataMgr.Coin.Value >= special_ImageLibrary.GoldCoins)
{
GameHelper.AddGold(-special_ImageLibrary.GoldCoins);
SelectLevel(2, DataMgr.LevelUnlockSpecial.Value);
TrackKit.SendEvent(ADEventTrack.Coinsbuy, ADEventTrack.Property.unlock_svip);
Debug.Log("///////金币解锁");
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
uiCtrlDispatcher.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
}
else
{
ui.item_2.btn_unlock.visible = false;
}
}
bool have_vip = GameHelper.GetVipPrivilege(Subscription.VipLevel.As<int>());
VIPImageLibrary vip_ImageLibrary = ConfigSystem.GetConfig<VIPImageLibrary>()[DataMgr.LevelUnlockVIP.Value];
TextureHelper.SetImgLoader(ui.item_3.com_pic.picture, vip_ImageLibrary.Name, (s) =>
{
if (vip_ImageLibrary.State == 1 && !have_vip) TextureHelper.SetImageBlur(ui.item_3.com_pic.picture);
}, "LevelAlbums/", FolderNames.AlbumName);
if (have_vip)
{
ui.item_3.btn_unlock.visible = false;
ui.item_3.type.selectedIndex = 0;
ui.item_3.btn_skip.SetClick(() =>
{
SelectLevel(3, DataMgr.LevelUnlockVIP.Value);
});
}
else
{
ui.item_3.type.selectedIndex = 3;
ui.item_3.btn_unlock.visible = true;
ui.item_3.btn_skip.SetClick(() =>
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open);
});
if (vip_ImageLibrary.GoldCoins > 0)
{
ui.item_3.btn_unlock.pay_type.selectedIndex = 1;
ui.item_3.btn_unlock.title = vip_ImageLibrary.GoldCoins.ToString();
ui.item_3.btn_unlock.SetClick(() =>
{
if (DataMgr.Coin.Value >= vip_ImageLibrary.GoldCoins)
{
GameHelper.AddGold(-vip_ImageLibrary.GoldCoins);
SelectLevel(3, DataMgr.LevelUnlockVIP.Value);
Debug.Log("///////金币解锁");
TrackKit.SendEvent(ADEventTrack.Coinsbuy, ADEventTrack.Property.unlock_vip);
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
uiCtrlDispatcher.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
}
else
{
ui.item_3.btn_unlock.visible = false;
}
}
}
public void SelectLevel(int type_, int id)
{
DataMgr.LevelUnlockListNew.Value.Add(new Levelunlock()
{
level_ = GameHelper.GetLevel(),
type = type_,
config_index = id
});
DataMgr.LevelUnlockListNew.Save();
DataMgr.LevelUnlockFree.Value = -1;
DataMgr.LevelUnlockAD.Value = -1;
DataMgr.LevelUnlockSpecial.Value = -1;
DataMgr.LevelUnlockVIP.Value = -1;
PlayerPrefs.SetInt("Free_Alubum_0", -1);
PlayerPrefs.SetInt("Free_Alubum_1", -1);
PlayerPrefs.SetInt("AD_Alubum", -1);
PlayerPrefs.SetInt("Spec_Alubum", -1);
PlayerPrefs.SetInt("Vip_Alubum", -1);
PlayerPrefs.SetInt("unlock_refresh", 1);
GameDispatcher.Instance.Dispatch(GameMsg.UnlockLevelsuccess);
CtrlCloseUI();
PreDownloadManager.StartDownloadAlbumsPicture();
if (isHallEnter)
{
GameHelper.gameType = 0;
GameDispatcher.Instance.Dispatch(GameMsg.OpenGame, false);
} else
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, true);
}
}
}
public class Levelunlock
{
public int level_;
public int type;
public int config_index;
}
}