using UnityEngine; using System.Collections; using UnityEngine.UI; using GCGame.Table; using System.Collections.Generic; using System; using Module.Log; // 开服累充 public class OpenServiceAccumulateRechargeCS : MarketingUIBaseCS { public Image banner; public List descs; public UIContainerBase awardContainer; public Button rechargeBtn; private void Awake() { rechargeBtn.onClick.AddListener( () => { YuanBaoShopLogic.OpenChargePage(); }); } protected virtual void OnEnable() { InitBG(); AskForInfo(); } // 设置Banner图片 protected virtual void InitBG() { Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(this._ActID, 0); if(tab != null && !string.IsNullOrEmpty(tab.Icon)) { LoadAssetBundle.Instance.SetImageSprite(banner, tab.Icon); } } // 显示文字 protected virtual void InitDesc(List datas) { for(int i = 0; i < descs.Count; i++) { if(i < datas.Count && !string.IsNullOrEmpty(datas[i])) { descs[i].text = StrDictionary.GetServerDictionaryFormatString(datas[i]); descs[i].gameObject.SetActive(true); } else { descs[i].gameObject.SetActive(false); } } } // 显示奖品 // 这个活动需要特殊处理,它定位具体某一档奖励的需求 protected virtual void InitAwardItem(List datas) { UIContainerSelect contaienr = awardContainer as UIContainerSelect; int tagIndex = OpenServiceRootCS.OpenWithTagIndex; // 用完重置 OpenServiceRootCS.OpenWithTagIndex = -1; if (tagIndex != -1 && tagIndex < datas.Count) { List select = new List(); select.Add(datas[tagIndex]); contaienr.InitSelectContent(datas, select); } else { contaienr.InitContentItem(datas); } } #region 请求与接收处理 //// old //// 请求 protected virtual void AskForInfo() { MarketingActAwardPageReq req = new MarketingActAwardPageReq(); req.actID = this._ActID; // 初始化?更新? req.updateOrInit = 1; req.SendMsg(); } //// 新的数据接收接口 protected override void MarketingActPageAwardRetDelInner(object packet) { MarketingActAwardPageRet p = packet as MarketingActAwardPageRet; if (p != null) { LogModule.DebugLog(this.gameObject.name + " : Recieve message."); InitDesc(p.descList); InitAwardItem(p.awardTags); } } protected override void MarketingActPageGetAwardRetInner(object packet) { MarketingActAwardPageGetAwardRet p = packet as MarketingActAwardPageGetAwardRet; if (p != null && p.btnState == 1) { awardContainer.ForeachActiveItem((awardItem) => { if (awardItem.TagInfo.tagID == p.tagID) { awardItem.RefreshTagState(p.btnState); } }); } } //////////// #endregion }