0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 09:50:43 -05:00

Start of adding missing stats

This commit is contained in:
Kaeno 2024-03-21 11:04:53 +00:00
parent 065c446e83
commit 37ae603982
2 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,39 @@
using Aki.Reflection.Patching;
using EFT.HealthSystem;
using EFT;
using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Reflection;
using EFT.InventoryLogic;
using Comfort.Common;
using EFT.UI;
using EFT.Ballistics;
using static EFT.Player.FirearmController;
namespace Aki.Debugging.Patches.Stats
{
public class AmmoUsedPatch : ModulePatch
{
private static Player player;
protected override MethodBase GetTargetMethod()
{
return AccessTools.Method(typeof(GameWorld), nameof(GameWorld.OnGameStarted));
}
[PatchPostfix]
private static void PatchPostfix()
{
player = Singleton<GameWorld>.Instance.MainPlayer;
var firearmsController = player.HandsController as Player.FirearmController;
firearmsController.OnShot += Hook;
}
private static void Hook()
{
player.Profile.EftStats.SessionCounters.AddLong(1L, GClass2200.AmmoUsed);
}
}
}

View File

@ -0,0 +1,34 @@
using Aki.Reflection.Patching;
using EFT;
using EFT.InventoryLogic;
using EFT.UI;
using HarmonyLib;
using Newtonsoft.Json;
using System;
using System.Reflection;
namespace Aki.Debugging.Patches.Stats
{
public class ArmorDamagePatch : ModulePatch
{
protected override MethodBase GetTargetMethod()
{
return AccessTools.Method(typeof(Player), nameof(Player.ApplyDamageInfo));
}
[PatchPostfix]
private static void PatchPostfix(DamageInfo damageInfo)
{
if (!damageInfo.Player.iPlayer.IsYourPlayer)
{
return;
}
if (damageInfo.Weapon is Weapon weapon && weapon.Chambers[0].ContainedItem is BulletClass bullet)
{
float newDamage = (float)Math.Round(bullet.Damage - damageInfo.Damage);
damageInfo.Player.iPlayer.Profile.EftStats.SessionCounters.AddFloat(newDamage, GClass2200.CauseArmorDamage);
}
}
}
}