space-commits / SPT-Realism-Mod-Client

Client-side BepInEx patches for SPTRM: https://hub.sp-tarkov.com/files/file/606-spt-realism-mod/#versions
Other
52 stars 13 forks source link

After-pen armor damage reduction #66

Closed Faupi closed 6 months ago

Faupi commented 6 months ago

After-pen damage calculations take into consideration the class the ammunition is rated for after possible previous penetrations, while providing enough damage reduction on barely-penetrating rounds as to not feel so binary.

The aim of this change is to make the player consider rounds that specifically aim for overpenetration to deal the full damage, rather than just barely-penetrating rounds that will lose most of their momentum by penetrating the armor plate and getting stopped by the soft backing. This in turn makes high class plates rewarding to run, as they can actually stop a fair bit of damage while with the plate hitboxes it's still possible to deal a lot of damage through the soft armor alone or even around it.

I've provided a spreadsheet and comments in the code as a reference to what to expect from the current (default) values: https://docs.google.com/spreadsheets/d/1dWDbSsyMoRGRf7d012f3TVzRVyNbT4mTWk-Mkam75vs/edit?usp=sharing

Me and my boyfriend with almost 2 years of military experience (and studying things around ballistics in depth) have tested these changes throughout a few dozen raids, so with that here are the Testing notes:

  1. Damage reduction felt pretty much on point to what we would expect from higher class armors
  2. Tied to this change, it's recommended to also turn down the overdamage modifiers to reasonable values, as shot-out limbs should not spread that much damage, let alone triple the initial amount, we've settled on values: legs 1; arms 0.8; stomach 1.5
  3. Ammunition might need a few tweaks, as with the new changes dealt damage will be a lot more fluid. We have found that generally ammunition rated for the next immediate higher class has ~50% kinetic energy loss, in this case it's more towards 40%.
  4. Hit zones were not tested with these changes (yet), I would highly recommend putting some sort of a penetration and/or damage breakpoint on the heart hitbox though, as setting it flat-out could result in getting oneshot by a single point of damage from wherever.

Disclaimer: The damage once the round penetrates is obviously not fully realistically portrayed, but we think it's as close as it can get without major changes to the existing mechanics and without turning the game into a hospital stay simulator.

Faupi commented 6 months ago

I set the base branch as main, but I suppose dev would fit better. Do let me know if this is the case 🙂

space-commits commented 6 months ago

I'm not sure what the purpose of the changes are. Is it to reduce penetration of a round after penetrating a plate more significantly?

Faupi commented 6 months ago

Yes, exactly that, it changes the existing calculation for projectile damage and penetration values after successful penetration of body armor to better reflect what we'd expect from various rounds against armor classes to somewhat simulate partial penetrations (as the vanilla system is very binary - either pen with all damage or basically zero). In this specific case of Realism, if a round that's rated lower than the armor it manages to penetrate, its damage and penetration will be lowered by 70% compared to the default Realism ~12.5%, which is barely noticeable. We felt that in no circumstance should an under-rated projectile penetrate higher class armor in perfect condition with practically all kinetic energy (AKA basically just damage) still carried through. Please refer to the linked spreadsheet - we've tried to keep a balance between the calculations being as basic as possible while generally matching what would be expected going by the armor testing reports we could find.

space-commits commented 6 months ago

Right, the issue is that EFT's current implementation of plates is buggy when it comes to penetration. I can't just accept PRs regarding ballistics as it's something prone to bugs and requires very careful implementation. General feedback would have been a better approach. Unfortunately I will not be accepting this PR at this time