0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 09:50:43 -05:00
modules/project/SPT.SinglePlayer/Patches/MainMenu/ArmorDamageCounterPatch.cs

42 lines
1.3 KiB
C#
Raw Normal View History

2024-05-21 19:10:17 +01:00
using SPT.Reflection.Patching;
2024-03-22 20:25:38 +00:00
using Comfort.Common;
2024-03-21 11:04:53 +00:00
using EFT;
using EFT.InventoryLogic;
using HarmonyLib;
using System;
using System.Reflection;
2024-05-21 19:10:17 +01:00
namespace SPT.SinglePlayer.Patches.MainMenu
2024-03-21 11:04:53 +00:00
{
public class ArmorDamageCounterPatch : ModulePatch
2024-03-21 11:04:53 +00:00
{
protected override MethodBase GetTargetMethod()
{
return AccessTools.Method(typeof(Player), nameof(Player.ApplyDamageInfo));
}
[PatchPostfix]
2024-11-02 13:40:25 +00:00
public static void PatchPostfix(DamageInfoStruct damageInfo)
2024-03-21 11:04:53 +00:00
{
if (damageInfo.Player == null || damageInfo.Player.iPlayer == null || !damageInfo.Player.iPlayer.IsYourPlayer)
2024-03-21 11:04:53 +00:00
{
return;
}
2024-03-22 20:25:38 +00:00
if (damageInfo.Weapon is Weapon)
2024-03-21 11:04:53 +00:00
{
2024-08-20 20:25:53 +01:00
if (!Singleton<ItemFactoryClass>.Instance.ItemTemplates.TryGetValue(damageInfo.SourceId, out var template))
2024-03-22 20:25:38 +00:00
{
return;
}
if (template is AmmoTemplate bulletTemplate)
2024-03-23 11:29:42 +00:00
{
float absorbedDamage = (float)Math.Round(bulletTemplate.Damage - damageInfo.Damage);
damageInfo.Player.iPlayer.Profile.EftStats.SessionCounters.AddFloat(absorbedDamage, SessionCounterTypesAbstractClass.CauseArmorDamage);
}
2024-03-21 11:04:53 +00:00
}
}
}
}