#include "..\script_component.hpp" /* * Author: johnb43 * Applies medical damage to a unit. * * Arguments: * 0: Target * 1: Source * 2: Instigator * 3: Guarantee death? (default: false) * * Return Value: * None * * Example: * [cursorObject, player, player] call ace_vehicle_damage_fnc_medicalDamage; * * Public: No */ params ["_unit", "_source", "_instigator", ["_guaranteeDeath", false]]; // Check if unit is invulnerable if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {}; if (GETEGVAR(medical,enabled,false)) then { for "_i" from 0 to floor (4 + random 3) do { [_unit, random [0, 0.66, 1], selectRandom ["Head", "Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"], selectRandom ["bullet", "shell", "explosive"], _instigator] call EFUNC(medical,addDamageToUnit); }; } else { { _unit setHitPointDamage [_x, (_unit getHitPointDamage _x) + random [0, 0.66, 1], true, _source, _instigator]; } forEach ["HitFace", "HitNeck", "HitHead", "HitPelvis", "HitAbdomen", "HitDiaphragm", "HitChest", "HitBody", "HitArms", "HitHands", "HitLegs"]; }; // If guaranteed death is wished if (_guaranteeDeath && {alive _unit}) then { [_unit, QGVAR(medicalDamage), _source, _instigator] call EFUNC(common,setDead); };