184 lines
5.2 KiB
C#
184 lines
5.2 KiB
C#
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();
|
||
}
|
||
}
|