ACE3/optionals/compat_rhs_gref3/CfgVehicles.hpp
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

233 lines
8.3 KiB
C++

class CfgVehicles {
class Rubber_duck_base_F;
class rhsgref_canoe_base: Rubber_duck_base_F {
// Canoes are propelled by paddlers
EGVAR(refuel,canReceive) = 0;
};
class Wheeled_APC_F;
class rhsgref_BRDM2: Wheeled_APC_F {
GVAR(hullDetonationProb) = 0.2;
GVAR(turretDetonationProb) = 0.2;
GVAR(engineDetonationProb) = 0;
GVAR(hullFireProb) = 0.7;
GVAR(turretFireProb) = 0.7;
GVAR(engineFireProb) = 0.7;
GVAR(detonationDuringFireProb) = 0.5;
};
class StaticMGWeapon;
class rhs_DSHKM_base: StaticMGWeapon {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW {
enabled = 1;
proxyWeapon = QGVAR(rhs_weap_DSHKM);
magazineLocation = "_target selectionPosition 'otocvez'";
disassembleWeapon = QGVAR(dshkm_carry);
disassembleTurret = QEGVAR(csw,kordTripod);
desiredAmmo = 50;
ammoLoadTime = 10;
ammoUnloadTime = 8;
};
};
class rhs_DSHkM_Mini_TriPod_base: rhs_DSHKM_base {
class ACE_CSW: ACE_CSW {
enabled = 1;
disassembleTurret = QEGVAR(csw,kordTripodLow);
};
};
// ACE Explosives
class Items_base_F;
class ACE_Explosives_Place: Items_base_F {
class ACE_Actions {
class ACE_MainActions;
};
};
class ACE_Explosives_Place_rhs_mine_a200_bz: ACE_Explosives_Place {
displayName = "Beh.Schu.Mi.A200 (B.Z.) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\A200\A200_BZ_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.095]";
};
};
};
class ACE_Explosives_Place_rhs_mine_a200_dz35: ACE_Explosives_Place_rhs_mine_a200_bz {
displayName = "Beh.Schu.Mi.A200 (D.Z.35) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\A200\A200_DZ35_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.125]";
};
};
};
class ACE_Explosives_Place_rhs_mine_glasmine43_hz: ACE_Explosives_Place {
displayName = "Gl.Mi.43 (H.Z.44) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Glasmine43\GLMI43_HZ_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.105]";
};
};
};
class ACE_Explosives_Place_rhs_mine_glasmine43_bz: ACE_Explosives_Place_rhs_mine_glasmine43_hz {
displayName = "Gl.Mi.43 (B.Z.) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Glasmine43\GLMI43_BZ_ITEM";
};
class ACE_Explosives_Place_rhs_mine_m2a3b_press: ACE_Explosives_Place {
displayName = "M2A3B APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M2A3B\M2A3_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.052, 0, 0.225]";
};
};
};
class ACE_Explosives_Place_rhs_mine_m2a3b_trip: ACE_Explosives_Place_rhs_mine_m2a3b_press {
displayName = "M2A3B (Tripwire) APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M2A3B\M2A3_HELPER_TRIPWIRE";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, -0.046, 0.06]";
};
};
};
class ACE_Explosives_Place_rhs_mine_m3_pressure: ACE_Explosives_Place {
displayName = "M3 AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M3\M3_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.23]";
};
};
};
class ACE_Explosives_Place_rhs_mine_M3_tripwire: ACE_Explosives_Place_rhs_mine_m3_pressure {
displayName = "M3 (Tripwire) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M3\M6M7FUZE_HELPER_TRIPWIRE";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.055]";
};
};
};
class ACE_Explosives_Place_rhs_mine_TM43: ACE_Explosives_Place {
displayName = "Tellermine 43";
model = "\rhsgref\addons\rhsgref_weapons2\mines\TM43\TM43";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.072]";
};
};
};
class ACE_Explosives_Place_rhs_mine_M7A2: ACE_Explosives_Place {
displayName = "M7A2 AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M7A2\M7A2_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.066]";
};
};
};
class ACE_Explosives_Place_rhs_mine_mk2_pressure: ACE_Explosives_Place {
displayName = "Mk 2 AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\MKII_BOOBYTRAP\MKII_TRAP_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.09, 0, 0.011]";
};
};
};
class ACE_Explosives_Place_rhs_mine_Mk2_tripwire: ACE_Explosives_Place {
displayName = "Mk 2 (Tripwire) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M3\M6M7FUZE_HELPER_TRIPWIRE";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.055]";
};
};
};
class ACE_Explosives_Place_rhs_mine_smine35_press: ACE_Explosives_Place {
displayName = "S.Mi.35 (S.Mi.Z.35) APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Smine35\SMI35_ITEM_PRESS";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.217]";
};
};
};
class ACE_Explosives_Place_rhs_mine_smine35_trip: ACE_Explosives_Place {
displayName = "S.Mi.35 (W) APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Smine35\SMI35_HELPER_TRIP";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.02]";
};
};
};
class ACE_Explosives_Place_rhs_mine_smine44_trip: ACE_Explosives_Place {
displayName = "S.Mi.44 (W) APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Smine44\SMI44_HELPER_TRIP";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0.03, 0, 0.015]";
};
};
};
class ACE_Explosives_Place_rhs_mine_smine44_press: ACE_Explosives_Place {
displayName = "S.Mi.44 (S.Mi.Z.44) APB Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Smine44\SMI44_ITEM_PRESS";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0.02, 0, 0.21]";
};
};
};
class ACE_Explosives_Place_rhs_mine_stockmine43_2m: ACE_Explosives_Place {
displayName = "St.Mi.43/I (2m) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Stockmine43\STMI43_HELPER_2M";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[1, 0, 0.25]";
};
};
};
class ACE_Explosives_Place_rhs_mine_stockmine43_4m: ACE_Explosives_Place {
displayName = "St.Mi.43/II (4m) AP Mine";
model = "\rhsgref\addons\rhsgref_weapons2\mines\Stockmine43\STMI43_HELPER_4M";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[2, 0, 0.25]";
};
};
};
class ACE_Explosives_Place_rhs_charge_M2tet_x2: ACE_Explosives_Place {
displayName = "Tetrytol Charge (2.5lb Placed)";
model = "\rhsgref\addons\rhsgref_weapons2\mines\M2_TETRYTOL_x2\M2TET_x2_ITEM";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.125, 0, 0.055]";
};
};
};
};