ACE3/docs/wiki/framework/vehicledamage-framework.md
Brandon Danyluk c4156a6888
Add Vehicle Damage (ACE2 port) & Enhance Cook-Off (#7565)
* Initital port of ACE2 Vehicle Damage

* Add fire damage and burning people

* Migrate vehicle damge stuff from cookoff. Change cookoff function to enhance effect.

* Minor tweaks

* Add incendiary values to all applicable ammunition. Add engine fire/smoke if hit enough

* Handle car damage more elegantly.

* Added ability to create fire sources arbitrarily

* tweaks

* Add chance to detonate after cookoff

* disable compile cache

* Move blown-off turret config to vehicle damage. Add settings inititalized EH for initializing off settings

* tabs->spaces

* Various code improvements

* Change to count loop for deleting effects

* update addon requirements

* remove vanilla config requirements

* Add RHS compatability

* RHS compat. Various QOL fixes/changes

* Various tweaks to compats and code.

* High-Explosive damage tweak

* Change how penetration is calculated for parts

* Fix RHS compat

* Create setting for flare effect

* increase burning scream sounds

* swap out file name for snake_case

* move incendiary values out of vehicle damage. remove medical dependency

* vehicle_dammage - update all refs to snake

* sqf fixes

* fix fire string package caps

* fix pboprefix

* Default setting to on

* Add variables to enable/disable ring fire to avoid goofy looking vehicles. Enhance how particles are cleaned up. Remove advanced penetration simulation. Change how fire intensity is calculated. Add setting to "disable" vehicle after cookoff

* Fix bug where event handler wasn't giving the damage last.

* change to snake

* fix build errors

* Fix UBC

* Fix Order of Operations

* avoid O^2 events

* Make sure that no damage processing happens on dead units

* Change some if statements

* Keep track of player's death to stop various things

* add quotes to right middle wheen

* Add VD documentation

* fire docs

* Code quality fixes

* Clarify documentation

* define IDD

* switch global -> server

* Add newline between header and first code statement

* stop the dead from suffering

Its hard to tell when a unit is dead or in spectator, so check the config of the unit to determine it.

* Add settings to disable cook-off effects

* Delete effects if vehicle is deleted before cookoff occurs. Don't cookoff player ammo. Throw weapon better

* Move fire into own PR

* fix tabs and macro

* Shuffle crew indices so that a random person is first on the list to be injured each time

* fix effects not clearing

Co-authored-by: PabstMirror <pabstmirror@gmail.com>
2021-10-14 10:49:27 -05:00

3.3 KiB

layout title description group order parent mod version
wiki Vehicle Damage Framework Explains how to configure vehicles to simulate vehicle damage. framework 5 wiki ace
major minor patch
3 14 0

1. CfgVehicles

1.1 Config Values

The only configuration needed for vehicles are their probabilities to cook-off/detonate upon being penetrated. These values are dice-rolls within system, tweak to get better feeling effects.

All values in range [0, 1] unless specified otherwise

1.1.1 ace_vehicle_damage_hullDetonationProb

The probability for the vehicle to detonate ammunition upon its hull being penetrated

Default: 0.2

1.1.2 ace_vehicle_damage_turretDetonationProb

The probability for the vehicle to detonate ammunition upon its turret being penetrated

Default: 0.2

1.1.3 ace_vehicle_damage_engineDetonationProb

The probability for the vehicle to detonate ammunition upon its turret being penetrated

Default: 0.2

1.1.4 ace_vehicle_damage_hullFireProb

The probability for the vehicle to catch on fire upon its hull being penetrated

Default: 0.5

1.1.5 ace_vehicle_damage_turretFireProb

The probabilitiy for the vehicle to catch on fire upon its turret being penetrated

Default: 0.2

1.1.6 ace_vehicle_damage_engineFireProb

The probability for the vehicle to catch on fire upon its engine being penetrated

Default: 0.5

1.1.7 ace_vehicle_damage_detonationDuringFireProb

The probabilitiy for the vehicle to detonate ammunition while its on fire

Default: 0.2

1.1.8 ace_vehicle_damage_canHaveFireRing

Whether or not this vehicle can spawn ring-of-fire effect (Boolean value: 0 or 1)

Default: 0

1.1.9 ace_vehicle_damage_slatHitpoints

An array of all hitpoints that are defined to be SLAT. String array

Default: {}

1.1.10 ace_vehicle_damage_eraHitpoints

An array of all hitpoints that are defined to be ERA. String array

Default: {}

1.1.11 ace_vehicle_damage_turret

String for turret classname to spawn when catastrophically destroyed. Turret will pop-off and this is the class spawned

Default: ""

1.2 Defined Hitpoints

1.2.1 Default assumed hitpoints

  • Engine: hitengine
  • Hull: hithull, hitbody, #structural
  • Tracks: hitltrack, hitrtrack
  • Wheels: hitlbwheel, hitlmwheel, hitlfwheel, hitlf2wheel, hitrbwheel, hitrmwheel, hitrlwheel, hitrfwheel, hitrf2wheel
  • Fuel: hitfuel

1.2.2 Turret, Gun, ERA, and SLAT hitpoints

On vehicle placement the system will iterate through all hitpoints define in class Turrets and find the relevant weapons and add their hitpoints. This occurs for ERA and SLAT as well

CfgAmmo

The only configuration needed on ammo is the warhead type (if applicable) and the incendiary value

1.1 ace_vehicle_damage_incendiary

Value in range [0, 1] for how incendiary the ammo is. This is used in calculations to ignite fires. Not based on any real-world value, tweak as feels right.

1.1.1 Default Values

  • Tandem/HEAT: 1
  • AP: 0.1
  • HE: 0.3
  • Incendiary Bullet: 0.7

1.2 warheadName

Default ARMA config value. We assume that the warheads are vanilla strings, so options are

  • HE
  • AP
  • HEAT
  • TandemHEAT

If no ace_vehicle_damage_incendiary defined, this value will be used to assume a default based on above table of common values (excluding Incendiary Bullet which is 0).