少年修仙传客户端代码仓库
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using vnxbqy.UI;
using UnityEngine.UI;
 
namespace EnhancedUI.EnhancedScroller
{
    public class RoleStrongerCell : ScrollerUI
    {
        RolePromoteModel m_Model;
        RolePromoteModel model
        {
            get { return ModelCenter.Instance.GetModel<RolePromoteModel>(); }
        }
 
        RoleParticularModel m_RoleParticularModel;
        RoleParticularModel roleParticularModel
        {
            get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); }
        }
 
        [SerializeField] Image m_FuncIcon;
        [SerializeField] Text m_FightPower;
        [SerializeField] Text m_FuncName;
        [SerializeField] Image m_State;
        [SerializeField] Slider m_Slider;
        [SerializeField] Text m_Progress;
        [SerializeField] Button m_Goto;
 
        public override void Refresh(CellView cell)
        {
            int funcType = cell.index;
            var config = model.GetPresentRoleStronger(funcType);
            m_Goto.onClick.RemoveAllListeners();
            if (config != null)
            {
                m_FuncIcon.SetSprite(config.Icon);
                m_FuncName.text = config.Name;
                ulong fightPower = roleParticularModel.GetFuncFightPower(funcType);
                var highestStage = fightPower >= (ulong)config.recommendFightPower;
                m_FightPower.text = Language.Get("RolePromoteNowFight", fightPower);
 
                var progress = Mathf.Clamp01((float)fightPower / config.recommendFightPower);
                var percent = (int)(progress * 100);
 
                m_Slider.value = progress;
                m_Progress.text = StringUtility.Contact(percent, "%");
 
                var state = model.GetPromoteState(percent);
                switch (state)
                {
                    case 0:
                        m_State.SetSprite("XT_WYBQ_3");
                        break;
                    case 1:
                        m_State.SetSprite("XT_WYBQ_2");
                        break;
                    case 2:
                        m_State.SetSprite("XT_WYBQ_1");
                        break;
                }
                m_State.SetNativeSize();
 
                m_Goto.onClick.AddListener(() =>
                {
                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.OpenUI);
                });
 
            }
        }
    }
}