mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Basic bandaging now works with new damage system
This commit is contained in:
parent
cd9e5df782
commit
4514812523
@ -84,6 +84,7 @@ PREP(treatmentAdvanced_medication);
|
||||
PREP(treatmentAdvanced_medicationLocal);
|
||||
PREP(treatmentAdvanced_surgicalKit_onProgress);
|
||||
PREP(treatmentBasic_bandage);
|
||||
PREP(treatmentBasic_bandageLocal);
|
||||
PREP(treatmentBasic_bloodbag);
|
||||
PREP(treatmentBasic_bloodbagLocal);
|
||||
PREP(treatmentBasic_epipen);
|
||||
|
@ -20,13 +20,4 @@
|
||||
private ["_hitSelections", "_hitPoints", "_point", "_damage"];
|
||||
params ["_caller", "_target", "_selection", "_className"];
|
||||
|
||||
if (_selection == "all") then {
|
||||
_target setDamage ((damage _target - BANDAGEHEAL) max 0);
|
||||
} else {
|
||||
_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"];
|
||||
_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];
|
||||
_point = _hitPoints select (_hitSelections find _selection);
|
||||
|
||||
_damage = ((_target getHitPointDamage _point) - BANDAGEHEAL) max 0;
|
||||
[_target, _point, _damage] call FUNC(setHitPointDamage);
|
||||
};
|
||||
[[_target, _selection], QUOTE(DFUNC(treatmentBasic_bandageLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */
|
||||
|
44
addons/medical/functions/fnc_treatmentBasic_bandageLocal.sqf
Normal file
44
addons/medical/functions/fnc_treatmentBasic_bandageLocal.sqf
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* 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"];
|
||||
|
||||
_damageBodyParts = _target getvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]];
|
||||
|
||||
// Ensure it is a valid bodypart
|
||||
_part = [_selectionName] call FUNC(selectionNameToNumber);
|
||||
if (_part < 0) exitwith {false};
|
||||
|
||||
if ((_damageBodyParts select _part) > 0) then {
|
||||
_damageBodyParts set [_part, ((_damageBodyParts select _part) - BANDAGEHEAL) max 0];
|
||||
_target setvariable [QGVAR(bodyPartStatus), _damageBodyParts, true];
|
||||
TRACE_2("ACE_DEBUG: Treatment BASIC Bandage Broadcast value here",_unit, _target getvariable QGVAR(bodyPartStatus));
|
||||
};
|
||||
systemChat format["BANDAGE LOCAL RAN: %1", _this];
|
||||
|
||||
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];
|
||||
|
||||
{
|
||||
_target setHitPointDamage [_x, (_damageBodyParts select _foreachIndex) min 0.95];
|
||||
}foreach GVAR(HITPOINTS);
|
||||
|
||||
true;
|
Loading…
Reference in New Issue
Block a user