Browse Source

修改bug

DESKTOP-FB72PO8\Administrator 4 days ago
parent
commit
034a089172
1 changed files with 93 additions and 1 deletions
  1. 93 1
      Assets/Scripts/GameLogic/Hero/HeroInfo.cs

+ 93 - 1
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using Common.Utility.CombatEvent;
+using Core.Utility;
 using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
@@ -204,7 +205,9 @@ namespace GameLogic.Hero
                 daolvSkill daolvSkill = ConfigComponent.Instance.Get<daolvSkill>(keyValuePair.Key);
                 ComputeHeroAttributeType(daolvSkill.AttrID, keyValuePair.Value);
             }
-
+            //心境带来的加成
+            AddSentimentData();
+           
             if (CombatController.currActiveCombat != null && CombatController.currActiveCombat.playerHeroEntity != null)
             {
                 CombatController.currActiveCombat.playerHeroEntity.CurrCombatHeroInfo = this.Copy();
@@ -212,6 +215,95 @@ namespace GameLogic.Hero
             }
         }
 
+        private void AddSentimentData()
+        {
+            SentimentEffectConfig[] allSentimentEffectConfigs =   ConfigComponent.Instance.GetAll<SentimentEffectConfig>();
+            List<AccountFileInfo.SentimentData> SentimentDatas =  AccountFileInfo.Instance.playerData.SentimentDatas;
+            for (int i = 0; i < SentimentDatas.Count; i++)
+            {
+                AccountFileInfo.SentimentData sentimentData=   SentimentDatas[i];
+                for (int j = 0; j < sentimentData.sentimentProperties.Count; j++)
+                {
+                    AddSentimentProperty( sentimentData.sentimentProperties[i],allSentimentEffectConfigs);
+                }
+              
+            }
+        }
+
+        private void AddSentimentProperty(AccountFileInfo.SentimentProperty sentimentProperty,SentimentEffectConfig[] allSentimentEffectConfigs)
+        {
+            SentimentEffectConfig currSentimentEffectConfig = default;
+            for (int i = 0; i < allSentimentEffectConfigs.Length; i++)
+            {
+                SentimentEffectConfig sentimentEffectConfig=   allSentimentEffectConfigs[i];
+                if(sentimentEffectConfig.groupId==sentimentProperty.groupId&& sentimentEffectConfig.level==sentimentProperty.level)
+                {
+                    currSentimentEffectConfig= sentimentEffectConfig;
+                }
+            }
+           
+            switch (currSentimentEffectConfig.effectType)
+            {
+                case 1:
+                    attack += (EncryptionLong)(attack.Value * currSentimentEffectConfig.effectVale[0] * 0.01f);
+                    break;
+                case 2:
+                    gongFaStrength += currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 3:
+                    hp += (EncryptionLong)(hp.Value * currSentimentEffectConfig.effectVale[0] * 0.01f);
+                    break;
+                case 4:
+                    defense += (EncryptionLong)(defense.Value * currSentimentEffectConfig.effectVale[0] * 0.01f);
+                    break;
+                case 5:
+                    int type = currSentimentEffectConfig.effectVale[0];
+                    switch ((HeroAttributeType)type)
+                    {
+                        case HeroAttributeType.Gold:
+                            Metal += currSentimentEffectConfig.effectVale[1];
+                            break;
+                        case HeroAttributeType.Wood:
+                            Wood += currSentimentEffectConfig.effectVale[1];
+                            break;
+                        case HeroAttributeType.Fire:
+                            Fire += currSentimentEffectConfig.effectVale[1];
+                            break;
+                        case HeroAttributeType.Water:
+                            Water += currSentimentEffectConfig.effectVale[1];
+                            break;
+                        case HeroAttributeType.Earth:
+                            Earth += currSentimentEffectConfig.effectVale[1];
+                            break;
+                    }
+                    break;
+                case 6: 
+                    finallyHarmReduce= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 7:
+                    abnormalHarmAdd= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 8:
+                    Fire_Proficient= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 9:
+                    Wood_Proficient= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 10:
+                    Metal_Proficient= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 11:
+                    Water_Proficient= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 12:
+                    Earth_Proficient= currSentimentEffectConfig.effectVale[0];
+                    break;
+                case 99:
+                    // Fire_HarmAdd= currSentimentEffectConfig.effectVale[0];
+                    break;
+                
+            }
+        }
 
         private void ComputeHeroAttributeType(int shuxingID, float value)
         {