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