From 0ced6b94425308d2a672fb93e9d245906d1d4879 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 26 九月 2018 13:46:46 +0800
Subject: [PATCH] 3687 天赋功能

---
 System/Skill/TalentModel.cs |   46 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/System/Skill/TalentModel.cs b/System/Skill/TalentModel.cs
index 98b552e..e2f68b3 100644
--- a/System/Skill/TalentModel.cs
+++ b/System/Skill/TalentModel.cs
@@ -62,7 +62,7 @@
 
         public override void Init()
         {
-            //ParseConfig();
+            ParseConfig();
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
         }
 
@@ -134,12 +134,22 @@
             return talentSkills.TryGetValue(talentId, out talent);
         }
 
-        public int GetTalentTypeTotalPoint(int series, int talentType)
+        public int GetTalentTypePoint(int talentType)
+        {
+            var point = 0;
+            for (int i = 1; i <= 3; i++)
+            {
+                point += GetSeriesPoint(talentType, i);
+            }
+            return point;
+        }
+
+        public int GetSeriesPoint(int talentType,int talentSeries)
         {
             var job = (int)Math.Pow(PlayerDatas.Instance.baseData.Job, 2);
             List<int> list;
             var point = 0;
-            if (TryGetTalents(job, series, talentType, out list))
+            if (TryGetTalents(job, talentType, talentSeries, out list))
             {
                 for (int i = 0; i < list.Count; i++)
                 {
@@ -169,16 +179,16 @@
                     error = 2;
                     return false;
                 }
-                var talentConfig = Config.Instance.Get<TalentConfig>(talent.skillId + talent.level);
+                var talentConfig = talent.GetTalentConfig(talent.level + 1);
                 if (talentConfig.requireSeriesPoint != 0)
                 {
-                    if (GetTalentTypeTotalPoint(talentConfig.requireSeries, talentConfig.type) < talentConfig.requireSeriesPoint)
+                    if (GetSeriesPoint(talentConfig.type, talentConfig.requireSeries) < talentConfig.requireSeriesPoint)
                     {
                         error = 4;
                         return false;
                     }
                 }
-                var skillConfig = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level);
+                var skillConfig = talent.GetSkillConfig(talent.level + 1);
                 if (skillConfig.LearnSkillReq != 0)
                 {
                     TalentSkill learnTalent;
@@ -238,6 +248,30 @@
             this.skillId = skillId;
             this.maxLevel = maxLevel;
         }
+
+        public SkillConfig GetSkillConfig(int level = 0)
+        {
+            if (level > 0)
+            {
+                return Config.Instance.Get<SkillConfig>(skillId + level - 1);
+            }
+            else
+            {
+                return Config.Instance.Get<SkillConfig>(skillId + level);
+            }
+        }
+
+        public TalentConfig GetTalentConfig(int level = 0)
+        {
+            if (level > 0)
+            {
+                return Config.Instance.Get<TalentConfig>(skillId + level - 1);
+            }
+            else
+            {
+                return Config.Instance.Get<TalentConfig>(skillId + level);
+            }
+        }
     }
 
     public class TalentSeries

--
Gitblit v1.8.0