Files
JJBB/Assets/Project/Script/LuaScripts/UI/SuperBenefitFirstRechargeCS/SuperBenefitFirstRechargeRootCS.cs
2024-08-23 15:49:34 +08:00

184 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}