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 datas = new List(); 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(); } }