From 3aa514a5e84fd7d4ea676e865a356bf074a74876 Mon Sep 17 00:00:00 2001 From: Kaeno Date: Fri, 22 Mar 2024 20:25:38 +0000 Subject: [PATCH] Reworked ArmorDamageCounterPatch --- .../Patches/MainMenu/ArmorDamageCounterPatch.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/project/Aki.SinglePlayer/Patches/MainMenu/ArmorDamageCounterPatch.cs b/project/Aki.SinglePlayer/Patches/MainMenu/ArmorDamageCounterPatch.cs index 56e912f..4fd7f61 100644 --- a/project/Aki.SinglePlayer/Patches/MainMenu/ArmorDamageCounterPatch.cs +++ b/project/Aki.SinglePlayer/Patches/MainMenu/ArmorDamageCounterPatch.cs @@ -1,4 +1,5 @@ using Aki.Reflection.Patching; +using Comfort.Common; using EFT; using EFT.InventoryLogic; using HarmonyLib; @@ -22,10 +23,15 @@ namespace Aki.SinglePlayer.Patches.MainMenu return; } - if (damageInfo.Weapon is Weapon weapon && weapon.Chambers[0].ContainedItem is BulletClass bullet) + if (damageInfo.Weapon is Weapon) { - float newDamage = (float)Math.Round(bullet.Damage - damageInfo.Damage); - damageInfo.Player.iPlayer.Profile.EftStats.SessionCounters.AddFloat(newDamage, SessionCounterTypesAbstractClass.CauseArmorDamage); + if (!Singleton.Instance.ItemTemplates.TryGetValue(damageInfo.SourceId, out var template)) + { + return; + } + + float absorbedDamage = (float)Math.Round((template as AmmoTemplate).Damage - damageInfo.Damage); + damageInfo.Player.iPlayer.Profile.EftStats.SessionCounters.AddFloat(absorbedDamage, SessionCounterTypesAbstractClass.CauseArmorDamage); } } }