using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class DayPackageItemBehaviour : 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;
|
[SerializeField] Image m_OpenFree;
|
[SerializeField] Image m_CloseFree;
|
|
DayPackageItemClassModel model
|
{
|
get { return ModelCenter.Instance.GetModel<DayPackageItemClassModel>(); }
|
}
|
|
int selectIndex = -1;
|
|
private void Awake()
|
{
|
m_Select.onClick.AddListener(Select);
|
}
|
|
private void OnEnable()
|
{
|
model.selectUpdate += SelectUpdate;
|
model.onStateUpdate += OnStateUpate;
|
}
|
|
private void OnDisable()
|
{
|
model.selectUpdate -= SelectUpdate;
|
model.onStateUpdate -= OnStateUpate;
|
}
|
|
private void OnStateUpate(int obj)
|
{
|
DisplayRedpoint(obj);
|
}
|
|
|
|
public void Display(int index)
|
{
|
selectIndex = index;
|
|
if (index < model.recordIDs.Count)
|
{
|
if (model.GetDayGift(index).money != 0)
|
{
|
m_OpenFree.SetActive(false);
|
m_CloseFree.SetActive(false);
|
m_MoneyClose.SetActive(true);
|
m_MoneyOpen.SetActive(true);
|
}
|
else
|
{
|
m_MoneyClose.SetActive(false);
|
m_MoneyOpen.SetActive(false);
|
m_OpenFree.SetActive(true);
|
m_CloseFree.SetActive(true);
|
}
|
m_MoneyClose.text = model.GetDayGift(index).money.ToString();
|
m_MoneyOpen.text = model.GetDayGift(index).money.ToString();
|
|
DisplayRedpoint(index);
|
DisplaySelect();
|
}
|
|
}
|
|
void DisplaySelect()
|
{
|
m_ContainerOpen.SetActive(model.selectIndex == selectIndex);
|
m_ContainerClose.SetActive(model.selectIndex != selectIndex);
|
}
|
|
void DisplayRedpoint(int index)
|
{
|
|
m_OpenRedpoint.SetActive(false);
|
m_CloseRedpoint.SetActive(false);
|
if (index == 0 && model.GetDayGift(index).getCount <= 0)
|
{
|
m_OpenRedpoint.SetActive(true);
|
m_CloseRedpoint.SetActive(true);
|
}
|
}
|
|
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;
|
}
|
}
|
}
|
}
|