diwako / armor_plates_system

Standalone Arma 3 Alternative Medical System
Other
7 stars 9 forks source link

Incorrect wounds for unprotected characters with ACE #120

Open STyx2909 opened 1 year ago

STyx2909 commented 1 year ago

Mods (complete and add to the following information):

All are stable versions.

Description:

AI characters without vests (survivor class - CSAT side for example), are not experiencing damages they should when APS is enabled. Velocity wounds are becoming bruises resulting from energy transfer of a vest with armor plate instead.

Steps to reproduce:

Place survivor character, shoot and check damages.

Expected behavior: Normal velocity wounds for characters not carrying an armor.

Where did the issue occur?

Editor (Singleplayer). But might occurs in MP too.

Additional context: None

Log Files: Arma3_x64_2023-09-03_11-39-21.zip

Screenshots:

Link to video: https://drive.google.com/open?id=11G5VCIz3PzbTVt8K-zquuFZjh_zBGWWk&usp=drive_fs

ACE without APS https://drive.google.com/open?id=11KHWIhEVvcwwulNkpwpD8W8Qle1F7tSr&usp=drive_fs

Disclaimer: many CSAT characters have been mistreated, ran over and shot at during this testing. Mature audience only. Stumbled upon while testing characters collision.

diwako commented 1 year ago

That is a bit strange. The settings you have shown should only affect the torso damage calculation. If it is not the torso region then the damage as such is being passed down the line to ACE's damage handling. Meaning limbs and head should be the same behavior as ACE.

The torso receiving less damage is also strange. If no plates are found the plate reduction returns the same damage as has happened prior. there is a bit of math involved, the incoming damage is being multiplied by the vanilla damage reduction of the uniform and vest for the hit point. then it is passed into the plate damage reduction function, which then returns an interpolated value of the actual damage. That value is the same mathematically of the original damage if there are no plates involved. Hence why that test result is strange.

As an example. Torso receives 5 damage. no vests thus no plates on the unit. Damage before uniform and vest damage reduction is as example 8. The calculation begins, the plate reduction functions is being fed the 8 damage, and it returns 8 damage as there are no plates. then the original damage is being interpolated with the pre damage reduction value of 8 and the plate damage reduction of 8

so: original_damage (plate_reduction_damage / pre_reduction_vanilla_damage) resulting in: 5 (8/8) = 5

It would be probably better to use the addWound function from ace as that should in theory also go down the whole handler routine as being shot. It might bring a lot clearer test results. Disabling AI medics also might be good idea else they keep healing themselves.

Alien314 commented 1 year ago

CSAT Uniforms have ballistic protection and their vests don't, which is part of the cause, and somehow collision damage is very reduced by that even without APS loaded. Seems like all wounds after death are getting reduced to bruises by APS somehow though, even for NATO units. Which is fine, just might be a little confusing. https://github.com/diwako/armor_plates_system/blob/e72ff7b6be94b24fba66b6ca32929d38639eb94a/addons/main/functions/fnc_receiveDamageACE.sqf#L3

STyx2909 commented 1 year ago

Disabling AI medics also might be good idea else they keep healing themselves.

https://github.com/acemod/ACE3/issues/3594#issuecomment-1704301206

STyx2909 commented 1 year ago

CSAT Uniforms have ballistic protection and their vests don't, which is part of the cause, and somehow collision damage is very reduced by that even without APS loaded. Seems like all wounds after death are getting reduced to bruises by APS somehow though, even for NATO units. Which is fine, just might be a little confusing.

https://github.com/diwako/armor_plates_system/blob/e72ff7b6be94b24fba66b6ca32929d38639eb94a/addons/main/functions/fnc_receiveDamageACE.sqf#L3

Seriously confusing, LOL. OK, fine by me.