2015-09-05 09:51:46 +00:00
|
|
|
/*
|
|
|
|
* Author: Glowbal
|
|
|
|
* Handles the bandage of a patient.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: The patient <OBJECT>
|
|
|
|
* 1: Treatment classname <STRING>
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* Succesful treatment started <BOOL>
|
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "script_component.hpp"
|
|
|
|
#define BANDAGEHEAL 0.8
|
|
|
|
|
|
|
|
params ["_target", "_selectionName"];
|
|
|
|
|
2016-06-13 00:34:56 +00:00
|
|
|
private _damageBodyParts = _target getVariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]];
|
2015-09-05 09:51:46 +00:00
|
|
|
|
|
|
|
// Ensure it is a valid bodypart
|
2016-06-13 00:34:56 +00:00
|
|
|
private _part = [_selectionName] call FUNC(selectionNameToNumber);
|
2015-09-05 09:51:46 +00:00
|
|
|
if (_part < 0) exitwith {false};
|
|
|
|
|
|
|
|
if ((_damageBodyParts select _part) > 0) then {
|
2016-06-13 00:34:56 +00:00
|
|
|
private _damageOnPart = (_damageBodyParts select _part);
|
2015-09-14 19:14:56 +00:00
|
|
|
// Temp quick fix to change in behaviour of basic medical bandaging
|
|
|
|
if (_damageOnPart - BANDAGEHEAL > 0) then {
|
2015-09-14 21:18:20 +00:00
|
|
|
_damageOnPart = _damageOnPart - (_damageOnPart * BANDAGEHEAL);
|
2015-09-14 19:14:56 +00:00
|
|
|
} else {
|
|
|
|
_damageOnPart = _damageOnPart - BANDAGEHEAL;
|
|
|
|
};
|
|
|
|
_damageBodyParts set [_part, _damageOnPart max 0];
|
2015-11-30 16:53:57 +00:00
|
|
|
_target setVariable [QGVAR(bodyPartStatus), _damageBodyParts, true];
|
|
|
|
TRACE_2("ACE_DEBUG: Treatment BASIC Bandage Broadcast value here",_unit, _target getVariable QGVAR(bodyPartStatus));
|
2015-09-05 09:51:46 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
EXPLODE_6_PVT(_damageBodyParts,_headDamage,_torsoDamage,_handsDamageR,_handsDamageL,_legsDamageR,_legsDamageL);
|
|
|
|
_target setHitPointDamage ["hitHead", _headDamage min 0.95];
|
|
|
|
_target setHitPointDamage ["hitBody", _torsoDamage min 0.95];
|
|
|
|
_target setHitPointDamage ["hitHands", (_handsDamageR + _handsDamageL) min 0.95];
|
|
|
|
_target setHitPointDamage ["hitLegs", (_legsDamageR + _legsDamageL) min 0.95];
|
|
|
|
|
|
|
|
{
|
2015-11-21 17:11:13 +00:00
|
|
|
private _hitPointName = [_target, _x, true] call FUNC(translateSelections);
|
|
|
|
_target setHitPointDamage [_hitPointName, (_damageBodyParts select _foreachIndex) min 0.95];
|
|
|
|
}foreach GVAR(SELECTIONS);
|
2015-09-05 09:51:46 +00:00
|
|
|
|
|
|
|
true;
|