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

---
 System/Skill/TalentModel.cs                                                            |   48 ++++++++++++++++++++++-
 Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs |    2 
 System/Skill/TalentWin.cs                                                              |   36 +++++++++++++++++
 3 files changed, 81 insertions(+), 5 deletions(-)

diff --git a/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs b/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
index 4ab3a4a..af0faa5 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
@@ -41,7 +41,7 @@
 
 
         model.UpdateTreasurePotentialInfo(vNetData.OldSkillID, vNetData.NewSkillID);
-
+        ModelCenter.Instance.GetModel<TalentModel>().UpdateTalentSkill(vNetData.OldSkillID, vNetData.NewSkillID);
         if (vNetData != null)
         {
             //  horsemodel.MountSkill0310(vNetData.NewSkillID);
diff --git a/System/Skill/TalentModel.cs b/System/Skill/TalentModel.cs
index bc2e15e..4044745 100644
--- a/System/Skill/TalentModel.cs
+++ b/System/Skill/TalentModel.cs
@@ -54,6 +54,8 @@
             }
         }
 
+        bool serverInited = false;
+
         public event Action selectTalentTypeEvnet;
         public event Action selectSeriesEvent;
         public event Action selectSkillEvent;
@@ -72,10 +74,12 @@
             {
                 talent.level = 0;
             }
+            serverInited = false;
         }
 
         public void OnPlayerLoginOk()
         {
+            serverInited = true;
         }
 
         public override void UnInit()
@@ -91,6 +95,8 @@
             }
         }
 
+        public int talentResetBook { get; private set; }
+        public int storeId { get; private set; }
         void ParseConfig()
         {
             var configs = Config.Instance.GetAllValues<TalentConfig>();
@@ -112,6 +118,20 @@
                         talentTreeDict.Add(skillConfig.UseType, talentTree);
                     }
                     talentTree.Add(configs[i], skillConfig.SkillTypeID);
+                }
+            }
+            var config = Config.Instance.Get<FuncConfigConfig>("");
+            if (config != null)
+            {
+                talentResetBook = int.Parse(config.Numerical1);
+            }
+            var storeConfigs = Config.Instance.GetAllValues<StoreConfig>();
+            for (int i = 0; i < storeConfigs.Count; i++)
+            {
+                if (storeConfigs[i].ItemID == talentResetBook)
+                {
+                    storeId = storeConfigs[i].ID;
+                    break;
                 }
             }
         }
@@ -187,7 +207,7 @@
                     var requireSeries = skillConfig.RequireSeries();
                     if (GetSeriesPoint(talentConfig.type, requireSeries) < requireSeriesPoint)
                     {
-                        error = 4;
+                        error = 3;
                         return false;
                     }
                 }
@@ -198,7 +218,7 @@
                     {
                         if (learnTalent.level < skillConfig.LearnSkillLV)
                         {
-                            error = 5;
+                            error = 4;
                             return false;
                         }
                     }
@@ -209,7 +229,15 @@
 
         public void ProcessLevelUpError(int error)
         {
-
+            switch (error)
+            {
+                case 2:
+                    break;
+                case 3:
+                    break;
+                case 4:
+                    break;
+            }
         }
 
         #region 鏈嶅姟绔暟鎹�
@@ -220,6 +248,20 @@
 
             UpdateRedpoint();
         }
+
+        public void UpdateTalentSkill(int _oldSkillId, int _newSkillId)
+        {
+            var config = Config.Instance.Get<SkillConfig>(_newSkillId);
+            if (talentSkills.ContainsKey(config.SkillTypeID))
+            {
+                var talentSkill = talentSkills[config.SkillTypeID];
+                talentSkill.level = config.SkillLV;
+                if (talentSkillUpdate != null)
+                {
+                    talentSkillUpdate(config.SkillTypeID);
+                }
+            }
+        }
         #endregion
 
         #region 绾㈢偣
diff --git a/System/Skill/TalentWin.cs b/System/Skill/TalentWin.cs
index 186864e..d1b82ea 100644
--- a/System/Skill/TalentWin.cs
+++ b/System/Skill/TalentWin.cs
@@ -51,6 +51,7 @@
 #endif
 
         TalentModel model { get { return ModelCenter.Instance.GetModel<TalentModel>(); } }
+        PlayerPackModel pack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
         #region Built-in
         protected override void BindController()
         {
@@ -130,6 +131,7 @@
             DisplayTalentType();
             DisplaySelectSkill();
             DisplayTalentPoint();
+            DisplayLevelUp();
         }
 
         void DisplaySkills()
@@ -197,7 +199,8 @@
                     if (requireSeriesPoint != 0 && index < m_SelectConditions.Length)
                     {
                         m_SelectConditions[index].gameObject.SetActive(true);
-                        m_SelectConditions[index].text = StringUtility.Contact(0, "/", requireSeriesPoint);
+                        m_SelectConditions[index].text = StringUtility.Contact(model.GetSeriesPoint(talentConfig.type,
+                            skillConfig.RequireSeries()), "/", requireSeriesPoint);
                         index++;
                     }
                 }
@@ -285,6 +288,7 @@
                 DisplaySkillInfo();
                 DisplayConditions();
                 DisplaySkillEffect();
+                DisplayLevelUp();
             }
         }
 
@@ -317,6 +321,15 @@
             model.selectTalentType = model.selectTalentType == 1 ? 2 : 1;
         }
 
+        private void DisplayLevelUp()
+        {
+            TalentSkill talent;
+            if (model.TryGetTalent(model.selectSkill, out talent))
+            {
+                m_AddPointBtnText.text = talent.level >= talent.maxLevel ? "宸叉弧绾�" : "鍔犵偣";
+            }
+        }
+
         private void AddPoint()
         {
             TalentSkill talent;
@@ -333,7 +346,28 @@
 
         private void ResetPoint()
         {
+            var count = pack.GetItemCountByID(PackType.rptItem, model.talentResetBook);
+            if (count > 0)
+            {
+                ConfirmCancel.ShowItemConfirm(Language.Get(""), model.talentResetBook, 1, () =>
+                   {
 
+                   });
+            }
+            else
+            {
+                if (model.storeId != 0)
+                {
+                    var storeConfig = Config.Instance.Get<StoreConfig>(model.storeId);
+                    ConfirmCancel.ShowPopConfirm(Language.Get(""), Language.Get("", storeConfig.MoneyNumber), (bool isOk) =>
+                       {
+                           if (isOk)
+                           {
+                               ModelCenter.Instance.GetModel<StoreModel>().SendBuyShopItem(storeConfig, 1);
+                           }
+                       });
+                }
+            }
         }
 
         void DisplayTalentLayout(TalentTreeScriptable config)

--
Gitblit v1.8.0