From d52fedf39ff20bffeada28ffa04e59e4a032e5a2 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 16 Jun 2019 11:04:51 -0500 Subject: [PATCH] Medical Treatment - Scale bandage time based on amount of wound treated (#7049) * Medical Treatment - Scale bandage time based on amount of wound treated * ignore basic bandage? * add debug trace --- .../functions/fnc_getBandageTime.sqf | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/addons/medical_treatment/functions/fnc_getBandageTime.sqf b/addons/medical_treatment/functions/fnc_getBandageTime.sqf index e56727cfc7..d66a8515ae 100644 --- a/addons/medical_treatment/functions/fnc_getBandageTime.sqf +++ b/addons/medical_treatment/functions/fnc_getBandageTime.sqf @@ -21,7 +21,7 @@ params ["_medic", "_patient", "_bodypart", "_bandage"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; -if (_partIndex < 0) exitWith { 0 }; +if (_partIndex < 0) exitWith { ERROR_1("invalid partIndex - %1",_this); 0 }; private _targetWound = [_patient, _bandage, _partIndex] call FUNC(findMostEffectiveWound); _targetWound params ["_wound", "_woundIndex", "_effectiveness"]; @@ -34,11 +34,12 @@ _wound params ["_classID", "", "_amountOf", "_bloodloss", "_damage"]; private _category = (_classID % 10); // Base bandage time is based on wound size and remaining percentage -private _bandageTime = ([ - BANDAGE_TIME_S, - BANDAGE_TIME_M, - BANDAGE_TIME_L -] select _category) * _amountOf; +private _bandageTime = [BANDAGE_TIME_S, BANDAGE_TIME_M, BANDAGE_TIME_L] select _category; + +// Scale bandage time based on amount left and effectiveness (less time if only a little wound left) +if (GVAR(advancedBandages)) then { // basicBandage will have a very high effectiveness and can be ignored + _bandageTime = _bandageTime * (linearConversion [0, _effectiveness, _amountOf, 0.666, 1, true]); +}; // Medics are more practised at applying bandages if ([_medic] call FUNC(isMedic)) then { @@ -50,5 +51,6 @@ if (_medic == _patient) then { _bandageTime = _bandageTime + BANDAGE_TIME_MOD_SELF; }; +TRACE_1("",_bandageTime); // Nobody can bandage instantly -_bandageTime max 2 +_bandageTime max 2.25