using Snxxz.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace EnhancedUI.EnhancedScroller { public class DogzCell : ScrollerUI { [SerializeField] Image m_DogzIcon; [SerializeField] RectTransform m_DogzIconRect; [SerializeField] Image m_DogzAssist; [SerializeField] Text m_DogzName; [SerializeField] Text m_EquipNum; [SerializeField] Text m_DogzGrade; [SerializeField] Button m_DogzBtn; [SerializeField] RedpointBehaviour redpointBehav; [SerializeField] GameObject containDivideObj; [SerializeField] List divideDogzIcons = new List(); DogzModel m_Model; DogzModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } public override void Refresh(CellView cell) { var _dogzCfg = DogzConfig.Get(cell.index); m_DogzIcon.SetSprite(_dogzCfg.HeadIcon); m_DogzIcon.SetNativeSize(); m_DogzIconRect.sizeDelta = new Vector2(m_DogzIconRect.sizeDelta.x/2,m_DogzIconRect.sizeDelta.y/2); var _dogzEquips = model.GetDogzEquips(_dogzCfg.ID); bool isActive = (_dogzEquips == null || _dogzEquips.Count < 5) ? false : true; m_DogzName.text = _dogzCfg.Name; m_DogzGrade.text = Language.Get("DogzFunc106", model.GetDogzScoreById(cell.index)); redpointBehav.redpointId = model.GetSingleDogzRedpointById(_dogzCfg.ID).id; if (isActive) { containDivideObj.SetActive(false); m_DogzIcon.material = MaterialUtility.GetUIDefaultGraphicMaterial(); m_DogzName.color = UIHelper.s_NavyBrown; m_DogzGrade.color = UIHelper.s_BrightOrangeColor; } else { containDivideObj.SetActive(true); m_DogzIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); m_DogzName.color = UIHelper.s_BrightWhiteColor; m_DogzGrade.color = UIHelper.s_BrightWhiteColor; for(int i = 0; i < 5; i++) { var divideImg = divideDogzIcons[i]; divideImg.SetSprite(_dogzCfg.HeadIcon); divideImg.SetNativeSize(); divideImg.rectTransform.sizeDelta = new Vector2(divideImg.rectTransform.sizeDelta.x / 2, divideImg.rectTransform.sizeDelta.y / 2); ItemModel _equipData = null; bool isEquip = model.TryGetDogzEquip(cell.index,i+101,out _equipData); divideImg.gameObject.SetActive(isEquip); } } m_DogzBtn.image.SetSprite(model.presentSelectDogz == _dogzCfg.ID ? "Title_RightWindow" : "Title_PopupWindow"); bool isAssist = model.TryGetAssistDogzState(_dogzCfg.ID); bool isShowEquipNum = isAssist || _dogzEquips == null || _dogzEquips.Count < 1 ? false : true; if(isShowEquipNum) { m_EquipNum.text = Language.Get("DogzDressed", _dogzEquips.Count); } m_DogzAssist.gameObject.SetActive(isAssist); m_EquipNum.gameObject.SetActive(isShowEquipNum); m_DogzBtn.onClick.RemoveAllListeners(); m_DogzBtn.onClick.AddListener(() => { model.SetSelectDogz(_dogzCfg.ID); }); } } }