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);  
 | 
                });  
 | 
  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
}  
 | 
  
 |