#include "script_component.hpp" /* * Author: BaerMitUmlaut * Manually triggers punji trap damage. * * Arguments: * 0: Punji trap * 1: Affected units * * Return Value: * None * * Example: * [trap] call ace_compat_sog_fnc_handlePunjiTrapDamage * * Public: No */ params ["_trap", "_affectedUnits"]; (getShotParents _trap) params ["", "_instigator"]; private _bodyParts = []; private _stabCount = 0; switch (typeOf _trap select [0, 16]) do { // Large trap case "vn_mine_punji_01": { _bodyParts = ["LeftLeg", "RightLeg", "Body"]; _stabCount = random [7, 10, 13]; }; // Small trap case "vn_mine_punji_02": { _bodyParts = ["LeftLeg", "RightLeg"]; _stabCount = random [3, 5, 7]; }; // Whip trap case "vn_mine_punji_03": { _bodyParts = ["LeftLeg", "RightLeg", "Body"]; _stabCount = random [3, 5, 7]; }; // Door way trap case "vn_mine_punji_04": { _bodyParts = ["Head", "Body"]; _stabCount = random [3, 5, 7]; }; // Side whip trap case "vn_mine_punji_05": { _bodyParts = ["LeftLeg", "RightLeg"]; _stabCount = random [3, 5, 7]; }; }; { for "_i" from 0 to _stabCount do { [_x, random [1, 2, 3], selectRandom _bodyParts, "stab", _instigator] call EFUNC(medical,addDamageToUnit); }; } forEach (_affectedUnits select {isDamageAllowed _x}); // isDamageAllowed already does local check