diff --git a/addons/medical_gui/functions/fnc_updateBodyImage.sqf b/addons/medical_gui/functions/fnc_updateBodyImage.sqf index 51a15945d3..7d3b6f03c5 100644 --- a/addons/medical_gui/functions/fnc_updateBodyImage.sqf +++ b/addons/medical_gui/functions/fnc_updateBodyImage.sqf @@ -22,6 +22,7 @@ params ["_ctrlGroup", "_target"]; private _tourniquets = GET_TOURNIQUETS(_target); private _fractures = GET_FRACTURES(_target); private _bodyPartDamage = _target getVariable [QEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]; +private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0]; { @@ -70,6 +71,21 @@ private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0]; [_bloodLoss] call FUNC(bloodLossToRGBA); } else { private _damage = _bodyPartDamage select _forEachIndex; + switch (true) do { // torso damage threshold doesn't need scaling + case (_forEachIndex > 3): { // legs: index 4 & 5 + _damageThreshold = LIMPING_DAMAGE_THRESHOLD * 4; + }; + case (_forEachIndex > 1): { // arms: index 2 & 3 + _damageThreshold = FRACTURE_DAMAGE_THRESHOLD * 4; + }; + case (_forEachIndex == 0): { // head: index 0 + _damageThreshold = _damageThreshold * 1.25; + }; + default { // torso: index 1 + _damageThreshold = _damageThreshold * 1.5 + }; + }; + _damage = (_damage / _damageThreshold) min 1; [_damage] call FUNC(damageToRGBA); }; diff --git a/addons/medical_gui/functions/fnc_updateInjuryList.sqf b/addons/medical_gui/functions/fnc_updateInjuryList.sqf index b0bf76fe45..d6f650f8a8 100644 --- a/addons/medical_gui/functions/fnc_updateInjuryList.sqf +++ b/addons/medical_gui/functions/fnc_updateInjuryList.sqf @@ -33,6 +33,43 @@ private _bodyPartName = [ _entries pushBack [localize _bodyPartName, [1, 1, 1, 1]]; +// Damage taken tooltip +if (GVAR(showDamageEntry)) then { + private _bodyPartDamage = (_target getVariable [QEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]) select _selectionN; + if (_bodyPartDamage > 0) then { + private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); + switch (true) do { + case (_selectionN > 3): { // legs: index 4 & 5 + _damageThreshold = LIMPING_DAMAGE_THRESHOLD * 4; + }; + case (_selectionN > 1): { // arms: index 2 & 3 + _damageThreshold = FRACTURE_DAMAGE_THRESHOLD * 4; + }; + case (_selectionN == 0): { // head: index 0 + _damageThreshold = _damageThreshold * 1.25; + }; + default { // torso: index 1 + _damageThreshold = _damageThreshold * 1.5; + }; + }; + _bodyPartDamage = (_bodyPartDamage / _damageThreshold) min 1; + switch (true) do { + case (_bodyPartDamage isEqualTo 1): { + _entries pushBack [localize LSTRING(traumaSustained4), [_bodyPartDamage] call FUNC(damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.75): { + _entries pushBack [localize LSTRING(traumaSustained3), [_bodyPartDamage] call FUNC(damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.5): { + _entries pushBack [localize LSTRING(traumaSustained2), [_bodyPartDamage] call FUNC(damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.25): { + _entries pushBack [localize LSTRING(traumaSustained1), [_bodyPartDamage] call FUNC(damageToRGBA)]; + }; + }; + }; +}; + // Indicate if unit is bleeding at all if (IS_BLEEDING(_target)) then { _entries pushBack [localize LSTRING(Status_Bleeding), [1, 0, 0, 1]]; @@ -78,10 +115,10 @@ if (_target call EFUNC(common,isAwake)) then { private _pain = GET_PAIN_PERCEIVED(_target); if (_pain > 0) then { private _painText = switch (true) do { - case (_pain > 0.5): { + case (_pain > PAIN_UNCONSCIOUS): { ELSTRING(medical_treatment,Status_SeverePain); }; - case (_pain > 0.1): { + case (_pain > (PAIN_UNCONSCIOUS / 5)): { ELSTRING(medical_treatment,Status_Pain); }; default { diff --git a/addons/medical_gui/initSettings.sqf b/addons/medical_gui/initSettings.sqf index eb6a36bac6..c1d02d7131 100644 --- a/addons/medical_gui/initSettings.sqf +++ b/addons/medical_gui/initSettings.sqf @@ -109,6 +109,15 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI ] call CBA_fnc_addSetting; } forEach _damageColors; +[ + QGVAR(showDamageEntry), + "CHECKBOX", + [LSTRING(showDamageEntry_DisplayName), LSTRING(showDamageEntry_Description)], + [ELSTRING(medical,Category), LSTRING(SubCategory)], + false, + true +] call CBA_fnc_addSetting; + [ QGVAR(showBloodlossEntry), "CHECKBOX", diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index e7cda25af9..afcd58b6e4 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -1250,5 +1250,29 @@ Показывать тяжесть кровопотери в списке ранений. Mostrar la pérdida de sangre cualitativa en la lista de heridas. + + Show Trauma Sustained + Mostrar Traumatismo Sofrido + + + Show trauma sustained in the injury list. + Mostrar traumatismo sofrido na lista de feridas. + + + Minor Trauma + Traumatismo Leve + + + Major Trauma + Traumatismo Significante + + + Severe Trauma + Traumatismo Severo + + + Chronic Trauma + Traumatismo Crônico +