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