DESKTOP-BGJIU14\ck 2 дней назад
Родитель
Сommit
28cb1ddddd

+ 12 - 1
Assets/Editor/CombatEditor/HeroEntityCombatReport.cs

@@ -25,6 +25,7 @@ namespace xy002Editor.CombatEditor
         private ProgressBarShowModle zhiLiaoModle;
         private ProgressBarShowModle beiZhiLiaoModel;
         private ProgressBarShowModle shouDaoShangHangXingXi;
+        private ProgressBarShowModle gongFaBeiXueRuo;
         private CombatPeportMassgeModle combatPeportMassgeModle;
 
         public Foldout miaoShuFoldout;
@@ -122,6 +123,16 @@ namespace xy002Editor.CombatEditor
             foldout1.Add(progressVe);
             shouDaoShangHangXingXi = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
 
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "功法被削弱";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            gongFaBeiXueRuo = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+            
 
             miaoShuFoldout = combaReportEnditorManager.Copy<Foldout>("foldout_style");
             miaoShuFoldout.text = "战斗描述";
@@ -152,7 +163,7 @@ namespace xy002Editor.CombatEditor
                 combatReportEntityInfo.allHarm);
             DrwaBattleReportValueDataModule(combatReportEntityInfo.InjuredInfoModule, shouDaoShangHangXingXi,
                 combatReportEntityInfo.allChengShang);
-
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.gongFaBeiXueRuo, gongFaBeiXueRuo);
             if (miaoShuFoldout.value)
             {
                 combatPeportMassgeModle.OnGui();

+ 9 - 2
Assets/Scripts/Core/BattleReport/BattleReportValueDataModule.cs

@@ -12,7 +12,7 @@ namespace Core.BattleReport
         public Dictionary<string, ReportFightValueData<float>> fightValueData_long =
             new Dictionary<string, ReportFightValueData<float>>();
 
-        public void SetMax(string name, float value)
+        public void SetMax(string name, float value, bool isAdd = false)
         {
             if (!fightValueData_long.ContainsKey(name))
             {
@@ -25,7 +25,14 @@ namespace Core.BattleReport
             }
             else
             {
-                fightValueData_long[name].maxValue = value;
+                if (isAdd)
+                {
+                    fightValueData_long[name].maxValue += value;
+                }
+                else
+                {
+                    fightValueData_long[name].maxValue = value;
+                }
             }
         }
 

+ 5 - 1
Assets/Scripts/GameLogic/Combat/CombatEvent/CombatEventType.cs

@@ -110,6 +110,10 @@
         /// 功法碰撞完成
         /// </summary>
         GongFaPengZhuangFinish,
-     
+        /// <summary>
+        /// 功法碰撞完成2
+        /// </summary>
+        GongFaPengZhuangFinish2,
+
     }
 }

+ 4 - 1
Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs

@@ -371,6 +371,8 @@ namespace GameLogic.Combat.CombatTool
             int c = myRestrained - targetRestrained;
             long myHp = (long)(a.hp);
             long targetHp = (long)(b.hp);
+            a.pengZhuangHp=myHp;
+            b.pengZhuangHp=targetHp;
 
             float p2 = 100;
             if (c < 0) //a被压制
@@ -404,7 +406,8 @@ namespace GameLogic.Combat.CombatTool
             GongFaPengZhuangFinishEventData gongFaPengZhu = GongFaPengZhuangFinishEventData.Create();
             gongFaPengZhu.a = a;
             gongFaPengZhu.b = b;
-            CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish, gongFaPengZhu);
+            CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish, gongFaPengZhu,false);
+            CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish2, gongFaPengZhu);
         }
 
         /// <summary>

+ 66 - 19
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs

@@ -38,6 +38,11 @@ namespace GameLogic.Combat.CombatTool.CombatReport
         /// </summary>
         public BattleReportValueDataModule InjuredInfoModule = new BattleReportValueDataModule();
 
+        /// <summary>
+        /// 功法被削弱
+        /// </summary>
+        public BattleReportValueDataModule gongFaBeiXueRuo = new BattleReportValueDataModule();
+
         /// <summary>
         /// 战斗日子面板
         /// </summary>
@@ -64,26 +69,29 @@ namespace GameLogic.Combat.CombatTool.CombatReport
             HeroInfoModule.SetMax("水灵根", CombatHeroEntity.MaxCombatHeroInfo.Water);
             HeroInfoModule.SetMax("火灵根", CombatHeroEntity.MaxCombatHeroInfo.Fire);
             HeroInfoModule.SetMax("土灵根", CombatHeroEntity.MaxCombatHeroInfo.Earth);
-            
+
             HeroInfoModule.SetMax("金伤势", CombatHeroEntity.MaxCombatHeroInfo.Metal_Injury);
             HeroInfoModule.SetMax("木伤势", CombatHeroEntity.MaxCombatHeroInfo.Wood_Injury);
             HeroInfoModule.SetMax("水伤势", CombatHeroEntity.MaxCombatHeroInfo.Water_Injury);
             HeroInfoModule.SetMax("火伤势", CombatHeroEntity.MaxCombatHeroInfo.Fire_Injury);
             HeroInfoModule.SetMax("土伤势", CombatHeroEntity.MaxCombatHeroInfo.Earth_Injury);
-            
-            
+
+
             CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
             CombatEventManager.Instance.AddEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
             CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff);
             CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff, RemoveBuff);
             CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
             CombatEventManager.Instance.AddEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
+            CombatEventManager.Instance.AddEventListener(CombatEventType.GongFaPengZhuangFinish2,
+                GongFaPengZhuangFinish2);
         }
 
         public void Update()
         {
             UpdateHeroInfo();
         }
+
         private void UpdateHeroInfo()
         {
             HeroInfoModule.Add("计算K", CombatHeroEntity.CurrCombatHeroInfo.k);
@@ -99,14 +107,51 @@ namespace GameLogic.Combat.CombatTool.CombatReport
             HeroInfoModule.Add("水灵根", CombatHeroEntity.CurrCombatHeroInfo.Water);
             HeroInfoModule.Add("火灵根", CombatHeroEntity.CurrCombatHeroInfo.Fire);
             HeroInfoModule.Add("土灵根", CombatHeroEntity.CurrCombatHeroInfo.Earth);
-            
+
             HeroInfoModule.Add("金伤势", CombatHeroEntity.CurrCombatHeroInfo.Metal_Injury);
             HeroInfoModule.Add("木伤势", CombatHeroEntity.CurrCombatHeroInfo.Wood_Injury);
             HeroInfoModule.Add("水伤势", CombatHeroEntity.CurrCombatHeroInfo.Water_Injury);
             HeroInfoModule.Add("火伤势", CombatHeroEntity.CurrCombatHeroInfo.Fire_Injury);
             HeroInfoModule.Add("土伤势", CombatHeroEntity.CurrCombatHeroInfo.Earth_Injury);
-          
-        
+        }
+
+        private void GongFaPengZhuangFinish2(IEventData iEventData)
+        {
+            GongFaPengZhuangFinishEventData gongFaPengZhuangFinishEventData =iEventData as GongFaPengZhuangFinishEventData;
+            bool isOk = false;
+            string msgTou = "";
+            if (gongFaPengZhuangFinishEventData.a.SkillBasic.CombatHeroEntity == CombatHeroEntity)
+            {
+                isOk = true;
+                msgTou =
+                    $"我的功法{gongFaPengZhuangFinishEventData.a.SkillBasic.SelfSkillConfig.ID} 和敌人的 {gongFaPengZhuangFinishEventData.b.SkillBasic.SelfSkillConfig.ID} 功法碰撞" +
+                    $"剩余强度为{gongFaPengZhuangFinishEventData.a.hp} 敌人的剩余强度为{gongFaPengZhuangFinishEventData.b.hp}";
+                long c = gongFaPengZhuangFinishEventData.a.pengZhuangHp - gongFaPengZhuangFinishEventData.a.hp;
+                float bl = c * 100.0f / gongFaPengZhuangFinishEventData.a.maxHp;
+                string k = gongFaPengZhuangFinishEventData.a.SkillBasic.SelfSkillConfig.ID.ToString();
+                gongFaBeiXueRuo.SetMax(k, 1, true);
+                gongFaBeiXueRuo.Add(k, bl, true);
+            }
+            else if (gongFaPengZhuangFinishEventData.b.SkillBasic.CombatHeroEntity == CombatHeroEntity)
+            {
+                isOk = true;
+                msgTou =
+                    $"敌人的功法{gongFaPengZhuangFinishEventData.a.SkillBasic.SelfSkillConfig.ID} 和我的 {gongFaPengZhuangFinishEventData.b.SkillBasic.SelfSkillConfig.ID} 功法碰撞" +
+                    $"敌人的剩余强度为{gongFaPengZhuangFinishEventData.a.hp} 我的剩余强度为{gongFaPengZhuangFinishEventData.b.hp}";
+                
+                long c = gongFaPengZhuangFinishEventData.b.pengZhuangHp - gongFaPengZhuangFinishEventData.b.hp;
+                float bl = c * 100.0f / gongFaPengZhuangFinishEventData.b.maxHp;
+                string k = gongFaPengZhuangFinishEventData.b.SkillBasic.SelfSkillConfig.ID.ToString();
+                gongFaBeiXueRuo.SetMax(k, 1, true);
+                gongFaBeiXueRuo.Add(k, bl, true);
+                
+            }
+
+            float t = CombatController.currActiveCombat.combatTime;
+            if (isOk)
+            {
+                MsgModule.Add(t, msgTou);
+            }
         }
 
         private void UseMagicWeapon(IEventData iEventData)
@@ -121,6 +166,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 MsgModule.Add(t, msg);
             }
         }
+
         private void UseSkill(IEventData iEventData)
         {
             CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
@@ -133,6 +179,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 MsgModule.Add(t, msg);
             }
         }
+
         private void RemoveBuff(IEventData iEventData)
         {
             BuffEventData buffEventData = iEventData as BuffEventData;
@@ -194,7 +241,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 }
 
                 allZhiLiao += recoverUpdateEventData.HarmReturnInfo.att;
-                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att,true);
+                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att, true);
             }
             else if (recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
             {
@@ -218,7 +265,7 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 }
 
                 allBeiZhiLiao += recoverUpdateEventData.HarmReturnInfo.att;
-                beiZhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att,true);
+                beiZhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att, true);
             }
         }
 
@@ -227,13 +274,12 @@ namespace GameLogic.Combat.CombatTool.CombatReport
             HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
             if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
             {
-             
-
                 string harmKey = "无";
                 SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
                 if (skillBasic != null)
                 {
-                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name)+" id:"+skillBasic.SelfSkillConfig.ID;
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name) + " id:" +
+                              skillBasic.SelfSkillConfig.ID;
                 }
 
                 BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
@@ -241,24 +287,24 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 {
                     harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
                 }
+
                 string msg =
-                    $"我攻击了目标  {heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{  heroInjuredEventData.HarmReturnInfo.yuanShiAtt }" +
+                    $"我攻击了目标  {heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{heroInjuredEventData.HarmReturnInfo.yuanShiAtt}" +
                     $"  造成伤害  {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType} 强度{heroInjuredEventData.HarmReturnInfo.QiangDu}";
                 float t = CombatController.currActiveCombat.combatTime;
                 MsgModule.Add(t, msg);
-                
+
                 allHarm += heroInjuredEventData.HarmReturnInfo.att;
-                CombatInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att,true);
+                CombatInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att, true);
             }
             else if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
             {
-               
-
                 string harmKey = "其他";
                 SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
                 if (skillBasic != null)
                 {
-                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name)+" id:"+skillBasic.SelfSkillConfig.ID;
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name) + " id:" +
+                              skillBasic.SelfSkillConfig.ID;
                 }
 
                 BuffBasic buffBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as BuffBasic;
@@ -266,13 +312,14 @@ namespace GameLogic.Combat.CombatTool.CombatReport
                 {
                     harmKey = "B" + LanguageManager.Instance.Text(buffBasic.buffInf.BuffConfig.buffName);
                 }
+
                 string msg =
-                    $"被攻击  {heroInjuredEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{  heroInjuredEventData.HarmReturnInfo.yuanShiAtt }" +
+                    $"被攻击  {heroInjuredEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName} 来源{harmKey} 原始伤害{heroInjuredEventData.HarmReturnInfo.yuanShiAtt}" +
                     $"  受到伤害  {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType} 强度{heroInjuredEventData.HarmReturnInfo.QiangDu}";
                 float t = CombatController.currActiveCombat.combatTime;
                 MsgModule.Add(t, msg);
                 allChengShang += heroInjuredEventData.HarmReturnInfo.att;
-                InjuredInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att,true);
+                InjuredInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att, true);
             }
         }
 

+ 1 - 0
Assets/Scripts/GameLogic/Combat/Skill/SkillFeaturesData.cs

@@ -16,6 +16,7 @@ namespace GameLogic.Combat.Skill
         /// 最大时的Hp
         /// </summary>
         public long maxHp;
+        public long pengZhuangHp;
         
         public bool isEnemy;