using UnityEngine; public class HeroDebutCheckInCell : MonoBehaviour { [SerializeField] ButtonEx clickButton; [SerializeField] ImageEx bgImage; [SerializeField] TextEx dayText; [SerializeField] TextEx itemNameText; [SerializeField] ItemCell itemCell; [SerializeField] UIEffectPlayer uiEffectPlayer; [SerializeField] Transform imgMask; HeroDebutManager manager => HeroDebutManager.Instance; private int currentItemId; private int currentState; public void Display(int templateID, int dayNum) { uiEffectPlayer.Stop(); var config = ActSignAwardConfig.GetConfig(templateID, dayNum); if (config == null) return; if (config.SignAwardItemList.IsNullOrEmpty()) return; currentItemId = config.SignAwardItemList[0][0]; int count = config.SignAwardItemList[0][1]; var itemConfig = ItemConfig.Get(currentItemId); if (itemConfig == null) return; currentState = manager.GetCheckInState(dayNum); imgMask.SetActive(currentState == 2); bgImage.SetSprite(currentState == 1 ? "HeroDebutCheckInDayBG1" : "HeroDebutCheckInDayBG2"); if (currentState == 1) { uiEffectPlayer.Play(); } dayText.text = Language.Get($"SignDay{dayNum}"); itemNameText.text = itemConfig.ItemName; itemCell.Init(new ItemCellModel(currentItemId, false, count)); itemCell.button.AddListener(OnItemClicked); clickButton.SetListener(() => manager.SendGetCheckInReward()); } private void OnItemClicked() { if (currentState == 1) { manager.SendGetCheckInReward(); } else { ItemTipUtility.Show(currentItemId); } } }