From 3016d74e293b0ed97c32dc0775a70bab82678ccd Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 25 九月 2018 19:34:04 +0800
Subject: [PATCH] 3687 天赋功能

---
 System/Skill/TalentWin.cs |   54 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/System/Skill/TalentWin.cs b/System/Skill/TalentWin.cs
index 40c66b2..4e1972a 100644
--- a/System/Skill/TalentWin.cs
+++ b/System/Skill/TalentWin.cs
@@ -20,6 +20,7 @@
         [SerializeField] Button m_TalentTypeSelect;
         [SerializeField] Text m_TalentType;
 
+        [SerializeField] ScrollRect m_Scroller;
         [SerializeField] TalentSkillBehaviour[] m_TalentSkills;
         [SerializeField] Image[] m_Arrows;
 
@@ -38,6 +39,10 @@
         [SerializeField] Button m_AddPoint;
         [SerializeField] Text m_AddPointBtnText;
         [SerializeField] Text m_SurplusPoint;
+
+#if UNITY_EDITOR
+        [SerializeField] TalentTreeScriptable m_EditorScriptable;
+#endif
 
         TalentModel model { get { return ModelCenter.Instance.GetModel<TalentModel>(); } }
         #region Built-in
@@ -79,12 +84,30 @@
             {
                 m_TalentSeries[i].Dispose();
             }
+
+#if UNITY_EDITOR
+            if (m_EditorScriptable != null)
+            {
+                m_EditorScriptable = null;
+            }
+#endif
         }
 
         protected override void OnAfterClose()
         {
         }
         #endregion
+
+        protected override void LateUpdate()
+        {
+            base.LateUpdate();
+#if UNITY_EDITOR
+            if (m_EditorScriptable != null)
+            {
+                DisplayTalentLayout(m_EditorScriptable);
+            }
+#endif
+        }
 
         void Display()
         {
@@ -132,21 +155,10 @@
                 var skillConfig = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level);
                 if (talentConfig != null)
                 {
-                    if (talentConfig.property != 0 && index < m_SelectConditions.Length)
-                    {
-                        var propertyConfig = Config.Instance.Get<PlayerPropertyConfig>(talentConfig.property);
-                        m_SelectConditions[index].gameObject.SetActive(true);
-                        m_SelectConditions[index].text = StringUtility.Contact(
-                            string.Format("闇�瑕亄0}鐐癸細", propertyConfig.Name),
-                            UIHelper.GetPropertyMapPlayerData((AttrEnum)talentConfig.property),
-                            "/", talentConfig.propertyValue
-                            );
-                        index++;
-                    }
-                    if (talentConfig.seriesCondition != 0 && index < m_SelectConditions.Length)
+                    if (talentConfig.requireSeriesPoint != 0 && index < m_SelectConditions.Length)
                     {
                         m_SelectConditions[index].gameObject.SetActive(true);
-                        m_SelectConditions[index].text = StringUtility.Contact(0, "/", talentConfig.point);
+                        m_SelectConditions[index].text = StringUtility.Contact(0, "/", talentConfig.requireSeriesPoint);
                         index++;
                     }
                 }
@@ -180,7 +192,7 @@
                 m_ContainerSelectSkill.gameObject.SetActive(true);
                 var config = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level);
                 m_SelectSkillIcon.SetSprite(config.IconName);
-                m_SelectSkillLevel.text = StringUtility.Contact(talent.level, "/", talent.max);
+                m_SelectSkillLevel.text = StringUtility.Contact(talent.level, "/", talent.maxLevel);
                 m_SelectSkillName.text = config.SkillName;
             }
         }
@@ -192,8 +204,8 @@
             {
                 var config = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level);
                 m_SelectSkillEffect.text = config.Description;
-                m_ContainerNextEffect.gameObject.SetActive(talent.level < talent.max);
-                if (talent.level < talent.max)
+                m_ContainerNextEffect.gameObject.SetActive(talent.level < talent.maxLevel);
+                if (talent.level < talent.maxLevel)
                 {
                     var nextConfig = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level + 1);
                     m_SelectNextEffect.text = nextConfig.Description;
@@ -274,6 +286,16 @@
         {
 
         }
+
+        void DisplayTalentLayout(TalentTreeScriptable config)
+        {
+            m_Scroller.content.sizeDelta = config.contentSizeDelta;
+            for (int i = 0; i < m_TalentSkills.Length; i++)
+            {
+                var element = config.GetTalentElement(i);
+                m_TalentSkills[i].transform.localPosition = element.position;
+            }
+        }
     }
 }
 

--
Gitblit v1.8.0