using UnityEngine;
|
|
public class FestivalActivityCheckInCell : MonoBehaviour
|
{
|
[SerializeField] ButtonEx clickButton;
|
[SerializeField] ImageEx darkImage;
|
[SerializeField] ImageEx lightImage;
|
[SerializeField] TextEx dayText;
|
[SerializeField] ItemCell[] itemCells;
|
[SerializeField] UIEffectPlayer[] uiEffectPlayers;
|
[SerializeField] UIEffectPlayer bgUIEffectPlayer;
|
[SerializeField] ImageEx[] haveImages;
|
[SerializeField] Transform imgMask;
|
|
FestivalActivityCheckInManager manager => FestivalActivityCheckInManager.Instance;
|
|
private int currentState;
|
|
public void Display(int templateID, int dayNum)
|
{
|
bgUIEffectPlayer.Stop();
|
for (int i = 0; i < uiEffectPlayers.Length; i++)
|
{
|
uiEffectPlayers[i].Stop();
|
}
|
for (int i = 0; i < haveImages.Length; i++)
|
{
|
haveImages[i].SetActive(false);
|
}
|
|
var config = ActSignAwardConfig.GetConfig(templateID, dayNum);
|
if (config == null) return;
|
if (config.SignAwardItemList.IsNullOrEmpty()) return;
|
|
currentState = manager.GetCheckInState(dayNum);
|
imgMask.SetActive(currentState == 2);
|
darkImage.SetActive(currentState != 1);
|
lightImage.SetActive(currentState == 1);
|
|
if (currentState == 1)
|
{
|
bgUIEffectPlayer.Play();
|
for (int i = 0; i < uiEffectPlayers.Length; i++)
|
{
|
if (i < config.SignAwardItemList.Length)
|
{
|
uiEffectPlayers[i].Play();
|
}
|
}
|
}
|
|
if (currentState == 2)
|
{
|
for (int i = 0; i < haveImages.Length; i++)
|
{
|
if (i < config.SignAwardItemList.Length)
|
{
|
haveImages[i].SetActive(true);
|
}
|
}
|
}
|
|
dayText.text = Language.Get($"SignDay{dayNum}");
|
|
for (int i = 0; i < itemCells.Length; i++)
|
{
|
int index = i;
|
if (i < config.SignAwardItemList.Length)
|
{
|
itemCells[i].SetActive(true);
|
itemCells[i].Init(new ItemCellModel(config.SignAwardItemList[i][0], false, config.SignAwardItemList[i][1]));
|
itemCells[i].button.AddListener(() =>
|
{
|
if (currentState == 1)
|
{
|
manager.SendGetCheckInReward();
|
}
|
else
|
{
|
ItemTipUtility.Show(config.SignAwardItemList[index][0]);
|
}
|
});
|
}
|
else
|
{
|
itemCells[i].SetActive(false);
|
}
|
}
|
clickButton.SetListener(() => manager.SendGetCheckInReward());
|
}
|
|
}
|