using System.Collections; using GCGame.Table; using Module.Log; using UnityEngine; using UnityEngine.UI; // 用于显示充值项 // 主要区分月卡和其他普通充值项 public class RechargeItem : UIItemSelect { public GameObject Recommend; // 推荐标志 通用 public GameObject festivalInfo; // 节日用 public Text festivalPrice; // 价格 普通 public Text festivalAward; // 首次充值奖励 public Text festivalYuanBaoNum; // 兑换灵玉数目 public GameObject normalInfo; // 普通的描述 public Text Price; // 价格 普通 public GameObject awardControl; // 控制award的整体显示 public GameObject firstAwardCtr; // 首次奖励控制 public GameObject secondAwardCtr; // 二次奖励控制 public Text firstAward; // 首次充值奖励 public Text secondAward; // 二次充值奖励 public Text YuanBaoNum; // 兑换灵玉数目 public Image Icon; // 商品图标 public GameObject monthCardInfo; // 月卡的描述 public Text yuanBaoNum_M; // 兑换灵玉数 public Text eachDayAward_M; // 月卡每日奖励元宝数 public Text continuedDay; // 持续时间 public Text monthPrice; // 价格 月卡 private bool hasRecPacket; private int state = 1; // 状态,仅针对非月卡的购买项。0-首次,1-二次,3-节日 private Tab_Recharge tab; // public int TabID { get { if (tab == null) return -1; return tab.Id; } } public override void Show(Hashtable hash) { var chargeId = (int) hash["InitObj"]; tab = TableManager.GetRechargeByID(chargeId); if (tab == null) return; base.Show(hash); ShowInfo(); } private void ShowInfo() { //Type: 0-正常 1-月卡 if (tab.Type == 1) { ShowMoneyCard(); } else { // 是否有节日活动 if (state == 0) ShowFestivalPrice(); else ShowNormal(); } } private void ShowFestivalPrice() { normalInfo.SetActive(false); festivalInfo.SetActive(true); monthCardInfo.SetActive(false); festivalPrice.text = tab.RmbNum + StrDictionary.GetClientDictionaryString("#{4467}"); festivalAward.text = tab.FestivalAward.ToString(); festivalYuanBaoNum.text = tab.MoneyNum.ToString(); } private void ShowNormal() { normalInfo.SetActive(true); festivalInfo.SetActive(false); monthCardInfo.SetActive(false); LoadAssetBundle.Instance.SetImageSprite(Icon, tab.ICON); Recommend.SetActive(tab.Recommend == 1); Price.text = tab.RmbNum + StrDictionary.GetClientDictionaryString("#{4467}"); // 当首冲奖励为 -1 时 尝试显示二次奖励,若也为 -1,则奖励部分全部不显示 if (state == 1) { if (tab.FirstAward > 0) { awardControl.SetActive(true); firstAwardCtr.gameObject.SetActive(hasRecPacket ? true : false); //初始化隐藏,收到协议的时候用协议数据刷新 secondAwardCtr.gameObject.SetActive(false); firstAward.text = tab.FirstAward.ToString(); } else { awardControl.SetActive(false); LogModule.ErrorLog("Try to show firstPrize, but not match config !!!"); } } else if (state == 2) { if (tab.OtherAward > 0) { awardControl.SetActive(true); firstAwardCtr.gameObject.SetActive(false); secondAwardCtr.gameObject.SetActive(true); secondAward.text = tab.OtherAward.ToString(); } else { awardControl.SetActive(false); //LogModule.ErrorLog("Try to show otherPrize, but not match config !!!"); } } YuanBaoNum.text = tab.MoneyNum.ToString(); } private void ShowMoneyCard() { normalInfo.SetActive(false); festivalInfo.SetActive(false); monthCardInfo.SetActive(true); monthPrice.text = tab.RmbNum + StrDictionary.GetClientDictionaryString("#{4467}"); yuanBaoNum_M.text = tab.MoneyNum.ToString(); eachDayAward_M.text = tab.DailyPrize.ToString(); continuedDay.text = StrDictionary.GetClientDictionaryString("#{86710}", tab.DaysCount); } public void Refresh(int state) { hasRecPacket = true; this.state = state; ShowInfo(); } }