Files
JJBB/Assets/Project/Script/LuaScripts/UI/SuperBenefitFirstRechargeCS/SuperBenefitFirstRechargeRootCS.cs

184 lines
5.2 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GCGame.Table;
// 超值首冲活动
// 注意:本活动特殊,需要显示两个模型,所以将协议中的 “序列帧ID” 当做第二个模型ID
public class SuperBenefitFirstRechargeRootCS : MarketingUIBaseCS {
// item 的数据结构
public class SuperBenefitFirstRechargeData
{
public string desc;
public MarketingActAwardItem data;
}
public Button closeBtn; // 关闭按钮
public UICameraTexture weaponModel; // 武器模型
public UICameraTexture riderModel; // 坐骑模型
public UIContainerBase container; // 奖励Item容器
public Button getBtn; // 获取按钮
public Image btn_1;
public Image btn_2;
private int getBtnState; // 按钮状态保存
private int tagID; // 保存服务器返回的TagID用于请求礼包
private int beforeActId; // root和页面结合在一个页面显示
private void Awake()
{
closeBtn.onClick.AddListener(Close);
getBtn.onClick.AddListener(OnGetBtnClick);
}
private void OnEnable()
{
UIManager.CloseUI(UIInfo.SuperBenefitFirstRechargeTip);
getBtnState = -1;
AskForMenuID();
}
private void ShowInfo(MarketingActAwardTag info)
{
if(info == null)
{
return;
}
// 显示奖品
List<SuperBenefitFirstRechargeData> datas = new List<SuperBenefitFirstRechargeData>();
for(int i = 0; i < info.awardItems.Count; ++i)
{
SuperBenefitFirstRechargeData newData = new SuperBenefitFirstRechargeData();
newData.desc = StrDictionary.GetClientDictionaryString("#{" + (62850 + i).ToString() + "}");
newData.data = info.awardItems[i];
datas.Add(newData);
}
container.InitContentItem(datas);
// 更新按钮状态
getBtn.gameObject.SetActive(info.state == 0 || info.state == 1);
btn_1.gameObject.SetActive(info.state == 0);
btn_2.gameObject.SetActive(info.state == 1);
getBtnState = info.state;
tagID = info.tagID;
// 显示模型
Tab_CharModel tab_W = TableManager.GetCharModelByID(info.modleID, 0);
if (tab_W != null)
{
weaponModel.gameObject.SetActive(true);
weaponModel.InitModelPath(tab_W.ResPath, tab_W, LoadAssetBundle.BUNDLE_PATH_MODEL, true);
}
else
{
weaponModel.gameObject.SetActive(false);
}
Tab_CharModel tab_R = TableManager.GetCharModelByID(info.SequenceID, 0);
if (tab_R != null)
{
riderModel.gameObject.SetActive(true);
riderModel.InitModelPath(tab_R.ResPath, tab_R, LoadAssetBundle.BUNDLE_PATH_MODEL, true);
}
else
{
riderModel.gameObject.SetActive(false);
}
}
#region
// 菜单请求
private void AskForMenuID()
{
MarketingActsReq req = new MarketingActsReq();
req.actType = this._ActID;
req.SendMsg();
}
// root菜单接收
protected override void MarketingActRetInner(MarketingActsRet marketActsRet)
{
if (marketActsRet != null && marketActsRet.actIDState.Count > 0)
{
beforeActId = this._ActID;
MarketingActState tempActState = new MarketingActState();
tempActState.actID = marketActsRet.actIDState[0].actID;
Hashtable param = new Hashtable();
param.Add("ActState", tempActState);
if (MarketingActsRoot.Instance() != null)
{
MarketingActsRoot.Instance().LoadUICallBack(true, param, gameObject);
}
AskForInfo();
}
}
// 页面信息请求
private void AskForInfo()
{
MarketingActAwardPageReq req = new MarketingActAwardPageReq();
req.actID = this._ActID;
req.updateOrInit = 1;
req.SendMsg();
}
protected override void MarketingActPageAwardRetDelInner(object packet)
{
MarketingActAwardPageRet info = packet as MarketingActAwardPageRet;
if (info != null && info.awardTags.Count >= 1)
{
ShowInfo(info.awardTags[0]);
}
}
#endregion
private void Close()
{
this.gameObject.SetActive(false);
}
private void OnDisable()
{
if (MarketingActsRoot.Instance() != null)
{
MarketingActsRoot.Instance().ClearShowingWin(_ActID);
MarketingActsRoot.Instance().ClearShowingWin(beforeActId);
}
}
private void OnGetBtnClick()
{
if(getBtnState == -1)
{
return;
}
if(getBtnState == 0)
{
YuanBaoShopLogic.OpenChargePage();
}
else if(getBtnState == 1)
{
MarketingActAwardPageGetAward req = new MarketingActAwardPageGetAward();
req.actID = _ActID;
req.SendMsg();
}
Close();
}
}