From e0ec52ef7cd8aaa9687b8f8b9b68aec1d372a2ca Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 08 五月 2019 10:56:33 +0800
Subject: [PATCH] 6680 子 【2.0】【开发】五行专精激活方式变更 / 【2.0】【前端】五行专精激活方式变更

---
 System/Skill/ExpertSkillConditionCell.cs |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 61 insertions(+), 4 deletions(-)

diff --git a/System/Skill/ExpertSkillConditionCell.cs b/System/Skill/ExpertSkillConditionCell.cs
index 10c1782..bbdccd8 100644
--- a/System/Skill/ExpertSkillConditionCell.cs
+++ b/System/Skill/ExpertSkillConditionCell.cs
@@ -1,20 +1,46 @@
-锘縰sing System.Collections;
+锘縰sing System;
+using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
 namespace Snxxz.UI
 {
-    public class ExpertSkillConditionCell : CellView
+    public class ExpertSkillConditionCell : ScrollItem
     {
+        [SerializeField] UIAlphaTween m_AlphaTween;
+        [SerializeField] UILinerMove m_LinerMove;
         [SerializeField] Text m_Condition;
         [SerializeField] Text m_Description;
         [SerializeField] Image m_Line;
+        [SerializeField] UIEffect m_Effect;
+
+        public UIAlphaTween alphaTween
+        {
+            get { return m_AlphaTween; }
+        }
+
+        public UILinerMove linerMove
+        {
+            get { return m_LinerMove; }
+        }
+
+        int skillId = 0;
+        int level = 0;
 
         TreasureSkillModel model { get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); } }
 
-        public void Display(int skillId, int level)
+        public override void Display(object _data)
         {
+            var data = (int)_data;
+            skillId = data / 100;
+            level = data % 100;
+
+            m_AlphaTween.SetStartState();
+
+            var activeLevel = 0;
+            model.TryGetExpertActiveLevel(skillId, out activeLevel);
+
             var skillConfig = SkillConfig.Get(skillId + level - 1);
             var property = skillConfig.RequireProperty();
             var propertyConfig = PlayerPropertyConfig.Get(property);
@@ -25,13 +51,44 @@
 
             var currentValue = UIHelper.GetPropertyValue((PropertyType)property);
 
-            if (currentValue >= skillConfig.RequirePropertyValue())
+            if (activeLevel >= level)
             {
                 m_Description.color = UIHelper.s_LightYellow;
+                m_Condition.color = UIHelper.s_Gold;
             }
             else
             {
                 m_Description.color = UIHelper.s_BrightWhiteColor;
+                m_Condition.color = UIHelper.s_BrightWhiteColor;
+                if (currentValue >= skillConfig.RequirePropertyValue())
+                {
+                    m_Condition.text += UIHelper.AppendColor(TextColType.Green, "锛堝彲婵�娲伙級");
+                }
+            }
+
+            model.expertActiveRefresh -= ExpertActiveRefresh;
+            model.expertActiveRefresh += ExpertActiveRefresh;
+        }
+
+        public override void Dispose()
+        {
+            base.Dispose();
+            m_AlphaTween.SetStartState();
+
+            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 * 100 + level);
             }
         }
     }

--
Gitblit v1.8.0