using UnityEngine; using UnityEngine.UI; public class PhantasmPavilionChatBoxItem : MonoBehaviour { [SerializeField] ImageEx imgBg; [SerializeField] ImageEx imgFace; [SerializeField] UIFrame uiFrame; [SerializeField] UIEffectPlayer spine; [SerializeField] Button btnChoose; [SerializeField] ImageEx imgLimit; [SerializeField] ImageEx imgLock; [SerializeField] ImageEx imgChoose; [SerializeField] ImageEx imgCanUnlock; [SerializeField] Image imgUsing; [SerializeField] Image imgRed; readonly PhantasmPavilionType type = PhantasmPavilionType.ChatBox; int id; PhantasmPavilionManager manager { get { return PhantasmPavilionManager.Instance; } } public void Display(int id) { this.id = id; btnChoose.SetListener(() => { manager.selectId = id; }); PhantasmPavilionState state = manager.GetUnLockState(type, id); bool isLimitedTime = manager.IsLimitTime(type, id); bool isUsing = manager.IsUsing(type, id); imgChoose.SetActive(manager.selectId == id); imgBg.SetSprite(manager.selectId == id ? "ChatBoxSelect" : "ChatBoxUnSelect"); imgLimit.SetActive(state == PhantasmPavilionState.Activated && isLimitedTime); imgLock.SetActive(state != PhantasmPavilionState.Activated); imgCanUnlock.SetActive(state == PhantasmPavilionState.CanActivate); imgUsing.SetActive(state == PhantasmPavilionState.Activated && isUsing); int resourceType = manager.GetResourceType(type, id); string resourceValue = manager.GetResourceValue(type, id); manager.Show(imgFace, spine, uiFrame, resourceType, resourceValue); if (resourceType == 1) { imgFace.SetNativeSize(); } manager.UpdateItemRedPoint(imgRed, type, id); } }