Medical - Combine advancedBandages and woundReopening settings (#7392)

* Medical - Combine advancedBandages and woundReopening settings

* Improve German translation

Co-Authored-By: Jo David <github@jonathandavid.de>

* restore strings lost in merge

Co-authored-by: Jo David <github@jonathandavid.de>
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
jonpas 2020-02-22 22:09:56 +01:00 committed by GitHub
commit f6dda745c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 64 additions and 106 deletions

View File

@ -104,45 +104,34 @@ if (_totalIvVolume >= 1) then {
// Add entries for open, bandaged, and stitched wounds // Add entries for open, bandaged, and stitched wounds
private _woundEntries = []; private _woundEntries = [];
private _fnc_getWoundDescription = { private _fnc_processWounds = {
private _classIndex = _woundClassID / 10; params ["_wounds", "_format", "_color"];
private _category = _woundClassID % 10;
private _className = EGVAR(medical_damage,woundsData) select _classIndex select 6; {
private _suffix = ["Minor", "Medium", "Large"] select _category; _x params ["_woundClassID", "_bodyPartN", "_amountOf"];
private _woundName = localize format [ELSTRING(medical_damage,%1_%2), _className, _suffix];
if (_amountOf >= 1) then { if (_selectionN == _bodyPartN && {_amountOf > 0}) then {
format ["%1x %2", ceil _amountOf, _woundName]; private _classIndex = _woundClassID / 10;
} else { private _category = _woundClassID % 10;
format [localize LSTRING(PartialX), _woundName];
}; private _className = EGVAR(medical_damage,woundsData) select _classIndex select 6;
private _suffix = ["Minor", "Medium", "Large"] select _category;
private _woundName = localize format [ELSTRING(medical_damage,%1_%2), _className, _suffix];
private _woundDescription = if (_amountOf >= 1) then {
format ["%1x %2", ceil _amountOf, _woundName]
} else {
format [localize LSTRING(PartialX), _woundName]
};
_woundEntries pushBack [format [_format, _woundDescription], _color];
};
} forEach _wounds;
}; };
{ [GET_OPEN_WOUNDS(_target), "%1", [1, 1, 1, 1]] call _fnc_processWounds;
_x params ["_woundClassID", "_bodyPartN", "_amountOf"]; [GET_BANDAGED_WOUNDS(_target), "[B] %1", [0.88, 0.7, 0.65, 1]] call _fnc_processWounds;
if (_selectionN == _bodyPartN) then { [GET_STITCHED_WOUNDS(_target), "[S] %1", [0.7, 0.7, 0.7, 1]] call _fnc_processWounds;
if (_amountOf > 0) then {
_woundEntries pushBack [call _fnc_getWoundDescription, [1, 1, 1, 1]];
} else {
if !(EGVAR(medical_treatment,advancedBandages) && {EGVAR(medical_treatment,woundReopening)}) then {
_woundEntries pushBack [format ["[B] %1", call _fnc_getWoundDescription], [0.7, 0.7, 0.7, 1]];
};
};
};
} forEach GET_OPEN_WOUNDS(_target);
{
_x params ["_woundClassID", "_bodyPartN", "_amountOf"];
if (_selectionN == _bodyPartN && {_amountOf > 0}) then {
_woundEntries pushBack [format ["[B] %1", call _fnc_getWoundDescription], [0.88, 0.7, 0.65, 1]];
};
} forEach GET_BANDAGED_WOUNDS(_target);
{
_x params ["_woundClassID", "_bodyPartN", "_amountOf"];
if (_selectionN == _bodyPartN && {_amountOf > 0}) then {
_woundEntries pushBack [format ["[S] %1", call _fnc_getWoundDescription], [0.7, 0.7, 0.7, 1]];
};
} forEach GET_STITCHED_WOUNDS(_target);
// Handle no wound entries // Handle no wound entries
if (_woundEntries isEqualTo []) then { if (_woundEntries isEqualTo []) then {

View File

@ -46,12 +46,12 @@ _patient setVariable [VAR_OPEN_WOUNDS, _openWounds, true];
[_patient] call EFUNC(medical_status,updateWoundBloodLoss); [_patient] call EFUNC(medical_status,updateWoundBloodLoss);
// Handle the reopening of bandaged wounds // Handle the reopening of bandaged wounds
if (_impact > 0 && {GVAR(advancedBandages) && {GVAR(woundReopening)}}) then { if (_impact > 0 && {GVAR(advancedBandages) == 2}) then {
[_patient, _impact, _partIndex, _woundIndex, _wound, _bandage] call FUNC(handleBandageOpening); [_patient, _impact, _partIndex, _woundIndex, _wound, _bandage] call FUNC(handleBandageOpening);
}; };
// Check if we fixed limping from this treatment // Check if we fixed limping from this treatment
if ((EGVAR(medical,limping) == 1) && {_partIndex > 3} && {_amountOf <= 0} && {_patient getVariable [QEGVAR(medical,isLimping), false]}) then { if (EGVAR(medical,limping) == 1 && {_partIndex > 3} && {_amountOf <= 0} && {_patient getVariable [QEGVAR(medical,isLimping), false]}) then {
[_patient] call EFUNC(medical_engine,updateDamageEffects); [_patient] call EFUNC(medical_engine,updateDamageEffects);
}; };

View File

@ -22,7 +22,7 @@
params ["_medic", "_patient", "_bodyPart", "_bandage"]; params ["_medic", "_patient", "_bodyPart", "_bandage"];
// Bandage type and bandage setting XNOR to show only active actions // Bandage type and bandage setting XNOR to show only active actions
if ((_bandage == "BasicBandage") isEqualTo GVAR(advancedBandages)) exitWith {false}; if ((_bandage == "BasicBandage") isEqualTo (GVAR(advancedBandages) != 0)) exitWith {false};
private _index = ALL_BODY_PARTS find toLower _bodyPart; private _index = ALL_BODY_PARTS find toLower _bodyPart;
private _canBandage = false; private _canBandage = false;

View File

@ -28,7 +28,7 @@ _targetWound params ["_wound", "_woundIndex", "_effectiveness"];
TRACE_3("findMostEffectiveWound",_wound,_woundIndex,_effectiveness); TRACE_3("findMostEffectiveWound",_wound,_woundIndex,_effectiveness);
// Everything is patched up on this body part already // Everything is patched up on this body part already
if (_wound isEqualTo EMPTY_WOUND) exitWith { 0 }; if (_wound isEqualTo EMPTY_WOUND) exitWith {0};
_wound params ["_classID", "", "_amountOf", "_bloodloss", "_damage"]; _wound params ["_classID", "", "_amountOf", "_bloodloss", "_damage"];
private _category = (_classID % 10); private _category = (_classID % 10);
@ -37,8 +37,9 @@ private _category = (_classID % 10);
private _bandageTime = [BANDAGE_TIME_S, BANDAGE_TIME_M, BANDAGE_TIME_L] select _category; 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) // 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 // Basic bandage treatment will have a very high effectiveness and can be ignored
_bandageTime = _bandageTime * (linearConversion [0, _effectiveness, _amountOf, 0.666, 1, true]); if (GVAR(advancedBandages) != 0) then {
_bandageTime = _bandageTime * linearConversion [0, _effectiveness, _amountOf, 0.666, 1, true];
}; };
// Medics are more practised at applying bandages // Medics are more practised at applying bandages

View File

@ -7,15 +7,6 @@
true true
] call CBA_settings_fnc_init; ] call CBA_settings_fnc_init;
[
QGVAR(advancedBandages),
"CHECKBOX",
[LSTRING(AdvancedBandages_DisplayName), LSTRING(AdvancedBandages_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
true,
true
] call CBA_settings_fnc_init;
[ [
QGVAR(advancedMedication), QGVAR(advancedMedication),
"CHECKBOX", "CHECKBOX",
@ -25,14 +16,12 @@
true true
] call CBA_settings_fnc_init; ] call CBA_settings_fnc_init;
// todo: verify that this setting does not require a restart
// todo: this setting requires advanced bandages to be enabled, they should be independent
[ [
QGVAR(woundReopening), QGVAR(advancedBandages),
"CHECKBOX", "LIST",
[LSTRING(WoundReopening_DisplayName), LSTRING(WoundReopening_Description)], [LSTRING(AdvancedBandages_DisplayName), LSTRING(AdvancedBandages_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)], [ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
false, [[0, 1, 2], [ELSTRING(common,Disabled), ELSTRING(common,Enabled), LSTRING(AdvancedBandages_EnabledCanReopen)], 1],
true true
] call CBA_settings_fnc_init; ] call CBA_settings_fnc_init;

View File

@ -49,41 +49,17 @@
<Polish>Włącza opcje sprawdzania Pulsu, Ciśnienia Tętniczego Krwi i Reakcje Na Ból, zamiast bardziej ogólnej akcji Diagnozuj.\n Po wyłączeniu tej opcji akcja RKO będzie wyświetlana tylko wtedy, gdy jej wykonanie będzie odpowiednie.\n Opcja, która włącza to ustawienie jest potrzebna do ustalenia, czy osoba jest nieprzytomna lub ma zatrzymanie krążenia.</Polish> <Polish>Włącza opcje sprawdzania Pulsu, Ciśnienia Tętniczego Krwi i Reakcje Na Ból, zamiast bardziej ogólnej akcji Diagnozuj.\n Po wyłączeniu tej opcji akcja RKO będzie wyświetlana tylko wtedy, gdy jej wykonanie będzie odpowiednie.\n Opcja, która włącza to ustawienie jest potrzebna do ustalenia, czy osoba jest nieprzytomna lub ma zatrzymanie krążenia.</Polish>
<German>Ermöglicht die 'Überprüfe Puls', 'Überprüfe Blutdruck' und 'Überprüfe Reaktionen' Behandlungsaktionen anstatt der einfachen 'Diagnose' Behandlungsaktion.\nWenn diese Einstellung nicht aktiviert ist, wird die "HLW"-Aktion nur angezeigt, wenn die Anwendung von HLW angemessen ist.\nDie Aktionen, die das Aktivieren dieser Einstellung ermöglicht, werden benötigt um zu bestimmen, ob eine Person bewusstlos ist oder einen Herzstillstand erleidet.</German> <German>Ermöglicht die 'Überprüfe Puls', 'Überprüfe Blutdruck' und 'Überprüfe Reaktionen' Behandlungsaktionen anstatt der einfachen 'Diagnose' Behandlungsaktion.\nWenn diese Einstellung nicht aktiviert ist, wird die "HLW"-Aktion nur angezeigt, wenn die Anwendung von HLW angemessen ist.\nDie Aktionen, die das Aktivieren dieser Einstellung ermöglicht, werden benötigt um zu bestimmen, ob eine Person bewusstlos ist oder einen Herzstillstand erleidet.</German>
</Key> </Key>
<Key ID="STR_ACE_Medical_Treatment_AdvancedBandages_DisplayName">
<English>Advanced Bandages</English>
<German>Erweiterte Bandagen</German>
<Japanese>アドバンスド包帯</Japanese>
<Russian>Расширенная Перевязка</Russian>
<French>Pansements avancés</French>
<Portuguese>Ataduras Avançadas</Portuguese>
<Chinese>進階包紮</Chinese>
<Italian>Bendaggi avanzati</Italian>
<Czech>Pokročilé obvazy</Czech>
<Polish>Zaawansowane Bandaże</Polish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AdvancedBandages_Description">
<English>Enables treatment actions for different bandage types instead of the generic Bandage action.</English>
<German>Ermöglicht Behandlungsaktionen für verschiedene Bandagentypen anstelle der gewöhnlichen Bandageaktionen.</German>
<Japanese>有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。</Japanese>
<French>Active différents types de bandages, à choisir judicieusement en fonction des plaies.</French>
<Russian>Включает действия для разных типов повязок, вместо общего действия «Перевязка».</Russian>
<Portuguese>Ativa o uso de tipos diferentes de ataduras ao invés de apenas a atadura básica.</Portuguese>
<Chinese>啟用不同繃帶的可用行為而非一般包紮動作。</Chinese>
<Italian>Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico.</Italian>
<Czech>Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu.</Czech>
<Polish>Umożliwia wybranie konkretnego rodzaju bandaża zamiast ogólnej akcji bandażowania.</Polish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AdvancedMedication_DisplayName"> <Key ID="STR_ACE_Medical_Treatment_AdvancedMedication_DisplayName">
<English>Advanced Medication</English> <English>Advanced Medication</English>
<German>Erweiterte Medikamente</German> <German>Erweiterte Medikation</German>
<Japanese>アドバンスド医薬品</Japanese> <Japanese>アドバンスド医薬品</Japanese>
<Russian>Расширенные Лекарства</Russian> <Russian>Расширенные Лекарства</Russian>
<French>Médication avancée</French> <French>Médication avancée</French>
<Portuguese>Medicação Avançada</Portuguese> <Portuguese>Medicação Avançada</Portuguese>
<Chinese>進階醫療用品</Chinese> <Chinese>進階醫療用品</Chinese>
<Czech>Pokročilé léky</Czech> <Czech>Pokročilé léky</Czech>
<Polish>Zaawansowane leki</Polish>
<Italian>Medicazione avanzata</Italian> <Italian>Medicazione avanzata</Italian>
<Polish>Zaawansowane leki</Polish>
</Key> </Key>
<Key ID="STR_ACE_Medical_Treatment_AdvancedMedication_Description"> <Key ID="STR_ACE_Medical_Treatment_AdvancedMedication_Description">
<English>Enables extended, more in-depth medication handling. Also, enables the use of Adenosine.</English> <English>Enables extended, more in-depth medication handling. Also, enables the use of Adenosine.</English>
@ -97,29 +73,32 @@
<German>Ermöglicht erweiterte, mehr tiefgründigere Anwendung von Medikationen. Ebenso ermöglicht es die Benutzung von Adenosin.</German> <German>Ermöglicht erweiterte, mehr tiefgründigere Anwendung von Medikationen. Ebenso ermöglicht es die Benutzung von Adenosin.</German>
<Polish>Pozwala na zaawansowane uzycie leków. Pozwala na używanie Adenozyny.</Polish> <Polish>Pozwala na zaawansowane uzycie leków. Pozwala na używanie Adenozyny.</Polish>
</Key> </Key>
<Key ID="STR_ACE_Medical_Treatment_WoundReopening_DisplayName"> <Key ID="STR_ACE_Medical_Treatment_AdvancedBandages_DisplayName">
<English>Wound Reopening</English> <English>Advanced Bandages</English>
<Japanese>創傷再開放</Japanese> <German>Erweiterte Bandagen</German>
<French>Réouverture des plaies</French> <Japanese>アドバンスド包帯</Japanese>
<Russian>Повторное открытие ран</Russian> <Russian>Расширенная Перевязка</Russian>
<Portuguese>Reabrir Feridas</Portuguese> <French>Pansements avancés</French>
<Chinese>傷口再度裂開</Chinese> <Portuguese>Ataduras Avançadas</Portuguese>
<Italian>Riapertura delle ferite</Italian> <Chinese>進階包紮</Chinese>
<Czech>Znovuotevření ran</Czech> <Italian>Bendaggi avanzati</Italian>
<Polish>Ponowne Otwarcie Ran</Polish> <Czech>Pokročilé obvazy</Czech>
<German>Wunden Wiederöffnung</German> <Polish>Zaawansowane Bandaże</Polish>
</Key> </Key>
<Key ID="STR_ACE_Medical_Treatment_WoundReopening_Description"> <Key ID="STR_ACE_Medical_Treatment_AdvancedBandages_Description">
<English>Enables the reopening of bandaged wounds. Requires Advanced Bandages to be enabled.</English> <English>Enables treatment actions for different bandage types instead of the generic Bandage action.\nAdditionally, the reopening of bandaged wounds can also be enabled.</English>
<Japanese>有効化すると治療をした創傷を再開放します。アドバンスド包帯を有効化している必要があります。</Japanese> <German>Ermöglicht Behandlungsaktionen für verschiedene Bandagentypen anstelle der gewöhnlichen Bandageaktionen.</German>
<French>Permet la réouverture des plaies pansées.\nNécessite que l'option "pansements avancés" soit activée.</French> <Japanese>有効化すると通常の包帯動作に代わり、様々な種類がある包帯で治療ができます。</Japanese>
<Russian>Разрешает повторное открытие перевязанных ран. Требуются опция «Расширенная Перевязка».</Russian> <French>Active différents types de bandages, à choisir judicieusement en fonction des plaies.</French>
<Portuguese>Permite que ferimentos atados possam reabrir. Requer Ataduras Avançadas para funcionar.</Portuguese> <Russian>Включает действия для разных типов повязок, вместо общего действия «Перевязка».</Russian>
<Chinese>啟用包紮過的傷口是否會再度裂開。需要啟用「進階包紮」之功能。</Chinese> <Portuguese>Ativa o uso de tipos diferentes de ataduras ao invés de apenas a atadura básica.</Portuguese>
<Czech>Povoluje znovuotevírání obvázaných zranění. Vyžaduje zapnuté Pokročilé obvazy.</Czech> <Chinese>啟用不同繃帶的可用行為而非一般包紮動作。</Chinese>
<Polish>Umożliwia ponowne otwarcie się zabandażowanych ran. Wymaga włączenia opcji Zaawansowane Bandaże.</Polish> <Italian>Permette azioni di trattamento per diversi tipi di bendaggio al posto del bendaggio generico.</Italian>
<Italian>Permette la riapertura delle ferite fasciate. Richiede l'abilitazione di Bende Avanzate.</Italian> <Czech>Povoluje specifické obvazy s různými vlastnostmi namísto jednoho univerzálního obvazu.</Czech>
<German>Ermöglicht das Wiederöffnen von bandagierten Wunden. Benötigt, dass 'Erweiterte Bandagen' aktiviert ist.</German> <Polish>Umożliwia wybranie konkretnego rodzaju bandaża zamiast ogólnej akcji bandażowania.</Polish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AdvancedBandages_EnabledCanReopen">
<English>Enabled &amp; Can Reopen</English>
</Key> </Key>
<Key ID="STR_ACE_Medical_Treatment_ClearTraumaAfterBandage_DisplayName"> <Key ID="STR_ACE_Medical_Treatment_ClearTraumaAfterBandage_DisplayName">
<English>Clear Trauma After Bandage</English> <English>Clear Trauma After Bandage</English>