using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class PhantasmPavilionItem : MonoBehaviour { [SerializeField] TextEx txtFaceName; [SerializeField] ButtonEx btnChoose; [SerializeField] ImageEx imgChoose; [SerializeField] ImageEx imgState; [SerializeField] ImageEx imgFace; [SerializeField] ImageEx imgLimitTime;//ÏÞʱÎïÆ·±êʶ [SerializeField] TextEx txtState; [SerializeField] TextEx txtTime; [SerializeField] UIEffect uiEffect; [SerializeField] RedpointBehaviour redpointBehaviour; [SerializeField] GameObject StarGroup; [SerializeField] List starList = new List(); //ÐÇÐÇÏÔʾÒþ²Ø starListºÍstarShowListÊýÁ¿Ò»Ö [SerializeField] List starShowList = new List(); //ÐÇÐÇÊÇÁÁÊǰµ PhantasmPavilionModel model { get { return ModelCenter.Instance.GetModel(); } } private int id; public void Display(int id) { this.id = id; PhantasmPavilionTab tab = model.selectTab; redpointBehaviour.redpointId = (MainRedDot.PhantasmPavilionRepoint * 10 + (int)model.selectTab + 1) * 10000 + id; int unLockState = model.GetUnLockState(tab, id);// 0 - δ¼¤»î 1 - ¿É¼¤»î 2 - ÒѼ¤»î bool isLimitTime = model.IsLimitTime(tab, id); bool isUsing = model.IsUsing(tab, id); bool isInfo = model.TryGetInfo(tab, id, out var info); bool isUnlockDefault = model.GetUnlockDefault(tab, id) == 1; bool isMaxStarLV = model.TryGetMaxStarLV(tab, id, out int maxStar); imgChoose.SetActive(model.selectItemId == id); imgState.SetActive(unLockState == 0 || unLockState == 1 || isUsing); txtTime.SetActive(isLimitTime && (isInfo && unLockState == 2 || isUnlockDefault)); StarGroup.SetActive(isInfo && isMaxStarLV && unLockState == 2); imgLimitTime.SetActive(isLimitTime); txtState.text = isUsing ? Language.Get("TreasureSkillWin__20") : Language.Get("KnapS144"); txtState.colorType = isUsing ? TextColType.Green : TextColType.Red; txtFaceName.text = model.GetName(tab, id); model.ShowImage(tab, id, imgFace); uiEffect.Stop(); if (model.TryGetEffectID(tab, id, out int effectID)) { uiEffect.effect = effectID; uiEffect.Play(); } int subTime = 0; if (info != null) { subTime = (int)(info.EndTime - TimeUtility.AllSeconds); } txtTime.text = Language.Get("FairyEmblem03", !isLimitTime ? Language.Get("PhantasmPavilion03") : TimeUtility.SecondsToDHMSCHS(subTime)); int star = 0; if (info != null) star = info.Star; for (int i = 0; i < starList.Count; i++) { starList[i].SetActive(i < maxStar && i < starList.Count); starShowList[i].SetActive(i < star && i < starList.Count); } model.SetStarColor(star, starShowList); btnChoose.SetListener(OnClickChoose); } private void OnClickChoose() { if (model.selectItemId == id) return; model.selectItemId = id; } } }