using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
public class RechargeBehaviour : MonoBehaviour
|
{
|
[SerializeField] Button m_ChargeButton;
|
[SerializeField] Image m_ChargeIcon;
|
[SerializeField] Text m_PriceValue;
|
[SerializeField] Text m_GetGoldValue;
|
[SerializeField] RectTransform m_ContainerAdded;
|
[SerializeField] Text m_AddedValue;
|
[SerializeField] Image m_BuyLimitIcon;
|
[SerializeField] Image m_BuyComplete;
|
[SerializeField] Image m_FirstBuy;
|
[SerializeField] Image m_FisrtRechargeSign;
|
[SerializeField] TextEx orgPrice;
|
|
VipModel m_Model;
|
VipModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<VipModel>());
|
}
|
}
|
MultiRechargeModel multiRechargeModel
|
{
|
get { return ModelCenter.Instance.GetModel<MultiRechargeModel>(); }
|
}
|
|
|
public int chargeId { get; private set; }
|
private int multi = 1; //首充几倍
|
|
private void Awake()
|
{
|
m_ChargeButton.onClick.AddListener(OnChargeClick);
|
}
|
|
public void Display(int _id)
|
{
|
var config = CTGConfig.Get(_id);
|
if (config == null)
|
{
|
return;
|
}
|
chargeId = _id;
|
m_ChargeIcon.SetSprite(config.Icon);
|
m_PriceValue.text = Language.Get("PayMoneyNumEx", UIHelper.GetMoneyFormat((int)model.GetPayRmb(config.RecordID)));
|
orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat((int)model.GetOrgPayRmb(config.RecordID)));
|
if (m_GetGoldValue != null)
|
{
|
m_GetGoldValue.SetActive(config.GainGold > 0);
|
if (config.GainGold > 0)
|
{
|
m_GetGoldValue.text = "x" + config.GainGold;
|
}
|
}
|
|
VipModel.RechargeCount _rechargeCount;
|
bool _firstRecharge = false;
|
int multiGold = 0; //首充多倍金额
|
multi = 1;
|
|
//活动和充值表的赠送货币累加计算倍数
|
//充值 TotalPayCount 就会计算
|
if (multiRechargeModel.IsOpen)
|
{
|
if (multiRechargeModel.isFirstRechageActiveByCTGID(_id))
|
{
|
_firstRecharge = true;
|
multiGold += multiRechargeModel.GetFirstRechageNumByCTGID(_id);
|
}
|
}
|
if (model.TryGetRechargeCount(_id, out _rechargeCount))
|
{
|
if (_rechargeCount.totalCount == 0)
|
{
|
_firstRecharge = true;
|
multiGold += config.FirstGoldPaperPrize;
|
}
|
|
}
|
|
if (model.TryGetRechargeCount(_id, out _rechargeCount))
|
{
|
if (m_BuyComplete != null)
|
{
|
m_BuyComplete.SetActive(config.DailyBuyCount > 0 &&
|
config.DailyBuyCount <= _rechargeCount.todayCount);
|
}
|
}
|
|
m_ContainerAdded.SetActive((_firstRecharge && multiGold > 0)
|
|| config.GainGoldPaper > 0);
|
if (config.PayType == 2)
|
{
|
m_FisrtRechargeSign.SetActive(false);
|
}
|
if (_firstRecharge && multiGold > 0)
|
{
|
m_AddedValue.text = multiGold.ToString();
|
m_FisrtRechargeSign.SetActive(true);
|
|
multi = (int)Math.Floor((double)multiGold/config.GainGold) + 1;
|
if (model.MultiRechageImageDict.ContainsKey(multi))
|
{
|
m_FisrtRechargeSign.SetActive(true);
|
m_FisrtRechargeSign.SetSprite(model.MultiRechageImageDict[multi]);
|
}
|
else
|
{
|
m_FisrtRechargeSign.SetActive(false);
|
}
|
}
|
else if (config.GainGoldPaper > 0)
|
{
|
m_AddedValue.text = config.GainGoldPaper.ToString();
|
}
|
|
if (m_BuyLimitIcon != null)
|
{
|
m_BuyLimitIcon.SetActive(config.PayType == 1 && config.DailyBuyCount > 0 && !_firstRecharge);
|
}
|
if (m_FirstBuy != null)
|
{
|
m_FirstBuy.SetActive(config.PayType == 1 && _firstRecharge);
|
}
|
}
|
|
|
private void OnChargeClick()
|
{
|
var _ctgConfig = CTGConfig.Get(chargeId);
|
if (_ctgConfig != null)
|
{
|
if (model.m_RechargeGainItemDict.ContainsKey(chargeId))
|
{
|
model.ShowRechargeBox(chargeId);
|
return;
|
}
|
model.CTG(chargeId);
|
}
|
}
|
}
|
}
|
|