using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class AccumulateRechargeBehaviour : MonoBehaviour
|
{
|
[SerializeField] RectTransform m_ContainerOpen;
|
[SerializeField] RectTransform m_ContainerClose;
|
[SerializeField] Text m_MoneyClose;
|
[SerializeField] Text m_MoneyOpen;
|
[SerializeField] Image m_OpenRedpoint;
|
[SerializeField] Image m_CloseRedpoint;
|
[SerializeField] Button m_Select;
|
|
AccumulateRechargeModel model
|
{
|
get { return ModelCenter.Instance.GetModel<AccumulateRechargeModel>(); }
|
}
|
|
int selectIndex = -1;
|
|
private void Awake()
|
{
|
m_Select.onClick.AddListener(Select);
|
}
|
|
private void OnEnable()
|
{
|
model.selectUpdate += SelectUpdate;
|
model.accumulateRechargeUpdate += AccumulateRechargeUpdate;
|
model.onStateUpdate += OnStateUpate;
|
}
|
|
private void OnDisable()
|
{
|
model.selectUpdate -= SelectUpdate;
|
model.accumulateRechargeUpdate -= AccumulateRechargeUpdate;
|
model.onStateUpdate -= OnStateUpate;
|
}
|
|
private void OnStateUpate(int obj)
|
{
|
DisplayRedpoint();
|
}
|
|
private void AccumulateRechargeUpdate()
|
{
|
DisplayRedpoint();
|
}
|
|
public void Display(int index)
|
{
|
selectIndex = index;
|
OperationBase operationBase;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.AccumulateRecharge, out operationBase))
|
{
|
OperationAccumulateRecharge operation = operationBase as OperationAccumulateRecharge;
|
var reward = operation.GetReward(TimeUtility.ServerNow);
|
if (reward != null)
|
{
|
if (index < reward.recharges.Count)
|
{
|
var recharge = reward.recharges[index];
|
var showNum = recharge.requireGold;
|
m_MoneyClose.text = UIHelper.GetMoneyFormat(showNum);
|
m_MoneyOpen.text = UIHelper.GetMoneyFormat(showNum);
|
DisplayRedpoint();
|
DisplaySelect();
|
}
|
}
|
}
|
}
|
|
void DisplaySelect()
|
{
|
m_ContainerOpen.SetActive(model.selectIndex == selectIndex);
|
m_ContainerClose.SetActive(model.selectIndex != selectIndex);
|
}
|
|
void DisplayRedpoint()
|
{
|
OperationBase operationBase;
|
bool satisfyGet = false;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.AccumulateRecharge, out operationBase))
|
{
|
OperationAccumulateRecharge operation = operationBase as OperationAccumulateRecharge;
|
var reward = operation.GetReward(TimeUtility.ServerNow);
|
if (reward != null)
|
{
|
if (selectIndex < reward.recharges.Count && selectIndex >= 0)
|
{
|
var recharge = reward.recharges[selectIndex];
|
satisfyGet = model.SatisfyGetReward(recharge) && model.IsOpen;
|
}
|
}
|
}
|
m_OpenRedpoint.SetActive(satisfyGet);
|
m_CloseRedpoint.SetActive(satisfyGet);
|
}
|
|
private void SelectUpdate(int index)
|
{
|
m_ContainerOpen.SetActive(index == selectIndex);
|
m_ContainerClose.SetActive(index != selectIndex);
|
}
|
|
private void Select()
|
{
|
if (model.selectIndex != selectIndex && selectIndex != -1)
|
{
|
model.selectIndex = selectIndex;
|
}
|
}
|
}
|
}
|
|