using System;  
 | 
using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
    public class ExpertSkillConditionCell : MonoBehaviour  
 | 
    {  
 | 
        [SerializeField] Text m_Condition;  
 | 
        [SerializeField] Text m_Description;  
 | 
        [SerializeField] Image m_Line;  
 | 
        [SerializeField] UIEffect m_Effect;  
 | 
  
 | 
        int skillId = 0;  
 | 
        int level = 0;  
 | 
  
 | 
        TreasureSkillModel model { get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); } }  
 | 
  
 | 
        public void Display(int skillId,int level)  
 | 
        {  
 | 
            this.skillId = skillId;  
 | 
            this.level = level;  
 | 
  
 | 
            var activeLevel = 0;  
 | 
            model.TryGetExpertActiveLevel(skillId, out activeLevel);  
 | 
  
 | 
            var treasureSkillId = 0;  
 | 
            model.ContainsSkill(skillId, out treasureSkillId);  
 | 
  
 | 
            var treasureSkillActive = false;  
 | 
  
 | 
            TreasureSkill treasureSkill;  
 | 
            if (model.TryGetSkill(treasureSkillId, out treasureSkill))  
 | 
            {  
 | 
                treasureSkillActive = treasureSkill.level > 0;  
 | 
            }  
 | 
  
 | 
  
 | 
            var skillConfig = SkillConfig.Get(skillId + level - 1);  
 | 
            var property = skillConfig.RequireProperty();  
 | 
            var currentValue = UIHelper.GetPropertyValue((PropertyType)property);  
 | 
  
 | 
            var propertyConfig = PlayerPropertyConfig.Get(property);  
 | 
            var valueLabel = UIHelper.AppendColor(currentValue >= (ulong)skillConfig.RequirePropertyValue() && treasureSkillActive  
 | 
                ? TextColType.DarkGreen : TextColType.Red  
 | 
                , skillConfig.RequirePropertyValue().ToString());  
 | 
            m_Condition.text = string.Format("{0}  {1}{2}{3}",  
 | 
                Language.Get("ExpertSkillLV", Language.Get("Num_CHS_" + level)),  
 | 
                propertyConfig.Name, valueLabel, Language.Get("L1130"));  
 | 
            m_Description.text = skillConfig.Description;  
 | 
  
 | 
            m_Line.SetActive(level < skillConfig.SkillMaxLV);  
 | 
  
 | 
  
 | 
            if (activeLevel >= level)  
 | 
            {  
 | 
                if (WindowCenter.Instance.IsOpen<ExpertSkillSelectWin>())  
 | 
                {  
 | 
                    m_Description.color = UIHelper.s_LightYellow;  
 | 
                    m_Condition.color = UIHelper.s_Gold;  
 | 
                }  
 | 
                else  
 | 
                {  
 | 
                    m_Description.color = UIHelper.s_NavyBrown;  
 | 
                    m_Condition.color = UIHelper.s_BrightDanLV4;  
 | 
                }  
 | 
            }  
 | 
            else  
 | 
            {  
 | 
                m_Description.color = UIHelper.s_BrightWhiteColor;  
 | 
                m_Condition.color = UIHelper.s_BrightWhiteColor;  
 | 
                if (currentValue >= (ulong)skillConfig.RequirePropertyValue() && treasureSkillActive)  
 | 
                {  
 | 
                    m_Condition.text += UIHelper.AppendColor(TextColType.DarkGreen, Language.Get("SkillTip1"));  
 | 
                }  
 | 
            }  
 | 
  
 | 
            model.expertActiveRefresh -= ExpertActiveRefresh;  
 | 
            model.expertActiveRefresh += ExpertActiveRefresh;  
 | 
        }  
 | 
  
 | 
        public void Dispose()  
 | 
        {  
 | 
            model.expertActiveRefresh -= ExpertActiveRefresh;  
 | 
        }  
 | 
  
 | 
        private void ExpertActiveRefresh(int id)  
 | 
        {  
 | 
            if (skillId == id)  
 | 
            {  
 | 
                var activeLevel = 0;  
 | 
                model.TryGetExpertActiveLevel(id, out activeLevel);  
 | 
                if (activeLevel == level)  
 | 
                {  
 | 
                    m_Effect.Play();  
 | 
                }  
 | 
                Display(skillId, level);  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
}  
 | 
  
 |