少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
using vnxbqy.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<Image> divideDogzIcons = new List<Image>();
        DogzModel m_Model;
        DogzModel model
        {
            get
            {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DogzModel>());
            }
        }
 
        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.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.SetActive(isAssist);
            m_EquipNum.SetActive(isShowEquipNum);
            m_DogzBtn.onClick.RemoveAllListeners();
            m_DogzBtn.onClick.AddListener(() =>
            {
                model.SetSelectDogz(_dogzCfg.ID);
            });
        }
    }
}