Files
JJBB/Assets/Project/Script/GUI/Shop/RechargeItem.cs
2024-08-23 15:49:34 +08:00

151 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}