using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GCGame.Table; // 0元购活动item public class FreeBuyItem : UIItemBase { public Image bg; public Sprite[] bgState; // 2个, 0已购买, 1未购买 public Text itemName; public Text returnDay; public UIImgText returnMoney; public Text btnReturnMoney; public Image moneyType; public Image btnMoneyType; public UICameraTexture model; public Image awardStateTips; public Sprite[] tipStates; // 2个,0已购买,1已领取 public Button buyBtn; // 购买按钮 public Button getAwardBtn; // 获得奖品按钮 public GameObject cantBuyBtn; // 已领取/不能领取 public Text cantBugBtnDes; // 不能购买时的按钮显示文字,若倒计时显示倒计时,如果没有则显示灰色购买 public GameObject combatValueGO; // 战斗力显示控制 public UIImgText combatValue; // 战斗力 private int actID; private int tagID; private void Awake() { if(buyBtn != null && getAwardBtn != null) { buyBtn.onClick.AddListener(OnBtnClick); getAwardBtn.onClick.AddListener(OnBtnClick); } } public override void Show(Hashtable hash) { MarketingActAwardTag info = hash["InitObj"] as MarketingActAwardTag; if(info != null) { actID = info.actID; tagID = info.tagID; ShowInfo(info); } } private void ShowInfo(MarketingActAwardTag info) { if(info.awardItems.Count > 0) { Tab_CommonItem tab = TableManager.GetCommonItemByID(info.awardItems[0].awardSubType, 0); if(tab != null) { itemName.text = tab.Name; itemName.gameObject.SetActive(true); } else { itemName.gameObject.SetActive(false); } } else { itemName.gameObject.SetActive(false); } SetMoneyType(info.iconPath[0]); ShowDesc(info.descs); ShowModel(info.modleID); SetBtnState(info.state); SetCombatValue(info.otherDescs); } private void SetCombatValue(List otherDescs) { if(otherDescs.Count > 0 && !string.IsNullOrEmpty(otherDescs[0])) { combatValueGO.SetActive(true); combatValue.text = otherDescs[0]; } else { combatValueGO.SetActive(false); } } // 设置购买 / 奖励金币类型 private void SetMoneyType(string moneyPath) { if(!string.IsNullOrEmpty(moneyPath)) { LoadAssetBundle.Instance.SetImageSprite(moneyType, moneyPath); LoadAssetBundle.Instance.SetImageSprite(btnMoneyType, moneyPath); moneyType.gameObject.SetActive(true); btnMoneyType.gameObject.SetActive(true); } else { moneyType.gameObject.SetActive(false); btnMoneyType.gameObject.SetActive(false); } } // 该活动需要显示的信息,必须超多4条,即使为空 private void ShowDesc(List descs) { cantBugBtnDes.text = StrDictionary.GetClientDictionaryString("#{6746}"); if (descs != null && descs.Count >= 3) { // 0 - 返还数目 if(!string.IsNullOrEmpty(descs[0])) { returnMoney.text = StrDictionary.GetServerDictionaryFormatString(descs[0]); btnReturnMoney.text = returnMoney.text; } // 1 - 返还天数 if (!string.IsNullOrEmpty(descs[1])) { returnDay.text = StrDictionary.GetServerDictionaryFormatString(descs[1]); } // 2 - 剩余返还天数 if (!string.IsNullOrEmpty(descs[2])) { cantBugBtnDes.text = StrDictionary.GetServerDictionaryFormatString(descs[2]); } } } private void ShowModel(int modelID) { if(modelID != 0) { Tab_CharModel tab = TableManager.GetCharModelByID(modelID, 0); if(tab != null) { model.gameObject.SetActive(true); model.InitModelPath(tab.ResPath, tab); } else { model.gameObject.SetActive(false); } } else { itemName.gameObject.SetActive(false); } } // 类型: 0.不可领取 1.可购买 2.已购买 3.可领取 4.已领取 private void SetBtnState(int state) { buyBtn.gameObject.SetActive(state == 1); cantBuyBtn.gameObject.SetActive(state == 0 || state == 2 || state == 4); getAwardBtn.gameObject.SetActive(state == 3); if(state == 0 || state == 1) { bg.overrideSprite = bgState[1]; } else { bg.overrideSprite = bgState[0]; } if(state == 2) { awardStateTips.overrideSprite = tipStates[0]; awardStateTips.gameObject.SetActive(true); } else if(state == 4) { awardStateTips.overrideSprite = tipStates[1]; awardStateTips.gameObject.SetActive(true); } else { awardStateTips.gameObject.SetActive(false); } } // 购买和领取走相同的请求协议 private void OnBtnClick() { MarketingActAwardPageGetAward req = new MarketingActAwardPageGetAward(); req.actID = actID; req.tagID = tagID; req.SendMsg(); } }