Jelajahi Sumber

添加法宝功法解锁

lzx 1 hari lalu
induk
melakukan
c9e929cf7f

+ 78 - 13
Assets/Scripts/GameUI/UI/CombatPanel/SkillSelectPanel.cs

@@ -154,7 +154,10 @@ namespace Fort23.Mono
                 {
                     if (skills[i] == null)
                         continue;
-                    if(!IsMainGongFaChange(skills[i].skillConfig))
+                    if (!IsMainGongFaChange(skills[i].skillConfig))
+                        continue;
+
+                    if (!IsPassiveGongFaChange(skills[i].skillConfig))
                         continue;
                     allKongSkill[indexList[i]].SetSKill(skills[i]);
                     allUseSkill[indexList[i]] = skills[i];
@@ -508,13 +511,27 @@ namespace Fort23.Mono
             //直接上功法
             if (skillKongWidget.SkillInfo == null && dianjiSkillKongWidget == null && selectSkillConfig != null)
             {
-                if (!IsMainGongFaChange(selectSkillConfig.skillConfig))
+                if (selectSkillConfig.skillConfig.SkillType == 1)
                 {
-                    TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
-                    CloseSelect();
-                    return;
+                    if (!IsMainGongFaChange(selectSkillConfig.skillConfig))
+                    {
+                        TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
+                        CloseSelect();
+                        return;
+                    }
                 }
 
+                if (selectSkillConfig.skillConfig.SkillType == 2)
+                {
+                    if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig))
+                    {
+                        TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
+                        CloseSelect();
+                        return;
+                    }
+                }
+
+
                 isAlter = true;
 
                 skillKongWidget.SetSKill(selectSkillConfig);
@@ -524,12 +541,27 @@ namespace Fort23.Mono
             //替换功法
             else if (skillKongWidget.SkillInfo != null && dianjiSkillKongWidget == null && selectSkillConfig != null)
             {
-                if (!IsMainGongFaChange(selectSkillConfig.skillConfig) &&   allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 1)
+                if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 1)
                 {
-                    TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
-                    CloseSelect();
-                    return;
+                    if (!IsMainGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 1)
+                    {
+                        TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
+                        CloseSelect();
+                        return;
+                    }
+                }
+
+                if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 2)
+                {
+                    if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 2)
+                    {
+                        TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
+                        CloseSelect();
+                        return;
+                    }
                 }
+
+
                 isAlter = true;
                 allUseSkill[skillKongWidget.SkillInfo.index] = null;
                 skillKongWidget.SetSKill(selectSkillConfig);
@@ -669,7 +701,7 @@ namespace Fort23.Mono
             }
 
 
-            Text_GongFaCount.text = $"功法数量{GetMainGongFaCount()}/4";
+            Text_GongFaCount.text = $"功法数量{GetMainGongFaCount()}/{PlayerManager.Instance.myHero.powerUpConfig.MaxActiveGongfaNum}";
         }
 
         private async void OnClick(ItemWidgetBasic obj)
@@ -695,7 +727,7 @@ namespace Fort23.Mono
                 Btn_RemoveGongFa.gameObject.SetActive(false);
 
 
-                if (!IsMainGongFaChange(skillWidget.skillConfigId.skillConfig))
+                if (!IsMainGongFaChange(skillWidget.skillConfigId.skillConfig) || !IsPassiveGongFaChange(skillWidget.skillConfigId.skillConfig))
                 {
                     SelectSkill(skillWidget.skillConfigId, true);
                 }
@@ -706,6 +738,10 @@ namespace Fort23.Mono
             }
         }
 
+        /// <summary>
+        /// 获得主功法数量
+        /// </summary>
+        /// <returns></returns>
         private int GetMainGongFaCount()
         {
             int count = 0;
@@ -720,9 +756,39 @@ namespace Fort23.Mono
             return count;
         }
 
+        /// <summary>
+        /// 获得被动功法数量
+        /// </summary>
+        /// <returns></returns>
+        private int GetPassiveGongFaCount()
+        {
+            int count = 0;
+            for (var i = 0; i < allUseSkill.Length; i++)
+            {
+                if (allUseSkill[i] != null && allUseSkill[i].skillConfig.SkillType == 2)
+                {
+                    count++;
+                }
+            }
+
+            return count;
+        }
+
         private bool IsMainGongFaChange(SkillConfig s)
         {
-            if (GetMainGongFaCount() < 4 || s.SkillType != 1)
+            if (GetMainGongFaCount() < PlayerManager.Instance.myHero.powerUpConfig.MaxActiveGongfaNum || s.SkillType != 1)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        private bool IsPassiveGongFaChange(SkillConfig s)
+        {
+            if (GetPassiveGongFaCount() < PlayerManager.Instance.myHero.powerUpConfig.MaxPassiveGongfaNum || s.SkillType != 2)
             {
                 return true;
             }
@@ -730,7 +796,6 @@ namespace Fort23.Mono
             {
                 return false;
             }
-          
         }
 
         public void HindIScorllListWidget(IScorllListWidget widget)

+ 6 - 0
Assets/Scripts/GameUI/UI/MainHeroPnael/MainHeroPanel.cs

@@ -1,5 +1,6 @@
 using System.Collections.Generic;
 using Fort23.Core;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
 
 namespace Fort23.Mono
 {
@@ -52,6 +53,11 @@ namespace Fort23.Mono
         private async void OnClick(ItemWidgetBasic obj)
         {
             BtnFaBaoWidget btnFaBaoWidget = obj as BtnFaBaoWidget;
+            if (btnFaBaoWidget.index > PlayerManager.Instance.myHero.powerUpConfig.MaxFabaoNum - 1)
+            {
+                TipMessagePanel.OpenTipMessagePanel("当前位置未解锁");
+                return;
+            }
             SelectFaBaoPanel selectFaBaoPanel = await SelectFaBaoPanel.OpenPanel(btnFaBaoWidget.index);
             await selectFaBaoPanel.UIClosed();
             foreach (var b in btnFaBaoWidgets)