|  | @@ -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)
 |