151 lines
4.6 KiB
C#
151 lines
4.6 KiB
C#
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();
|
||
}
|
||
} |