diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 9b8b75b32..2f2127713 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -200,6 +200,7 @@ class ACE_Medical_Treatment_Actions { }; class PhenylephrineAuto: Morphine { displayName = CSTRING(Take_Phenyl_Auto); + displayNameProgress = CSTRING(Using); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; items[] = {"kat_phenylephrineAuto"}; diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index c49d05f5b..cc84bb9fc 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -781,7 +781,7 @@ PREP_RECOMPILE_END; "SLIDER", [LLSTRING(SETTING_Coagulation_FactorCount), LLSTRING(SETTING_Coagulation_FactorCount_DESC)], [CBA_SETTINGS_CAT, LSTRING(SubCategory_Coagulation)], - [0, 100, 15, 0], + [0, 100, 30, 0], true ] call CBA_Settings_fnc_init; @@ -790,7 +790,7 @@ PREP_RECOMPILE_END; "SLIDER", [LLSTRING(SETTING_coagulation_Factor_Limit), LLSTRING(SETTING_coagulation_Factor_Limit_DESC)], [CBA_SETTINGS_CAT, LSTRING(SubCategory_Coagulation)], - [1, 200, 30, 0], + [1, 200, 60, 0], true ] call CBA_Settings_fnc_init; diff --git a/addons/pharma/functions/fnc_clotWound.sqf b/addons/pharma/functions/fnc_clotWound.sqf index d581d5f99..5c0dc53e9 100644 --- a/addons/pharma/functions/fnc_clotWound.sqf +++ b/addons/pharma/functions/fnc_clotWound.sqf @@ -47,14 +47,14 @@ private _fnc_clotWound = { case "Medium": { _woundClotTime = round ((random (_coagulation_time_medium / 2)) + _coagulation_time_medium / 2); _bandageToUse = "BloodClotMedium"; - _factorCountToRemove = 1.5; + _factorCountToRemove = 2; if !(missionNamespace getVariable [QGVAR(coagulation_allow_MediumWounds), true]) then { continue; }; }; default { _woundClotTime = round ((random (_coagulation_time_large / 2)) + _coagulation_time_large / 2); _bandageToUse = "BloodClotLarge"; - _factorCountToRemove = 2; + _factorCountToRemove = 4; if !(missionNamespace getVariable [QGVAR(coagulation_allow_LargeWounds), true]) then { continue; }; }; @@ -76,7 +76,7 @@ private _fnc_clotWound = { [{ params["_unit", "_bodyPart", "_selectionName", "_bandageToUse", "_logString", "_factorCountToRemove"]; - private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 15]; + private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; private _openWounds = GET_OPEN_WOUNDS(_unit); private _openWoundsOnPart = _openWounds getOrDefault [_bodyPart, []]; private _woundIndex = _openWoundsOnPart findIf {(_x select 1) > 0 && (_x select 2) > 0}; @@ -112,7 +112,7 @@ private _fnc_clotWound = { private _openWounds = _unit getVariable [VAR_OPEN_WOUNDS, createHashmap]; private _pulse = _unit getVariable [VAR_HEART_RATE, 80]; - private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 15]; + private _coagulationFactor = _unit getVariable [QGVAR(coagulationFactor), 30]; private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); private _hasWoundToBandageArray = []; diff --git a/addons/pharma/functions/fnc_coagRegen.sqf b/addons/pharma/functions/fnc_coagRegen.sqf index ee6f696b8..a64bf46cd 100644 --- a/addons/pharma/functions/fnc_coagRegen.sqf +++ b/addons/pharma/functions/fnc_coagRegen.sqf @@ -36,9 +36,9 @@ if !(GVAR(coagulation)) exitWith {}; if (_unit getVariable [QACEGVAR(medical,bloodVolume), 6.0] < GVAR(coagulation_requireBV)) exitWith {}; // Blood volume check if ((_pulse < 20) && GVAR(coagulation_requireHR)) exitWith {}; // Has pulse & require setting - private _currentCoagFactors = _unit getVariable [QGVAR(coagulationFactor), 15]; - private _savedCoagFactors = _unit getVariable [QGVAR(coagulationSavedFactors), (_unit getVariable [QGVAR(coagulationFactor), 15])]; - private _limitRegenCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 15]; + private _currentCoagFactors = _unit getVariable [QGVAR(coagulationFactor), 30]; + private _savedCoagFactors = _unit getVariable [QGVAR(coagulationSavedFactors), (_unit getVariable [QGVAR(coagulationFactor), 30])]; + private _limitRegenCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 30]; private _cooldownON = _unit getVariable [QGVAR(coagulationRegenCooldown), false]; private _countTXA = [_unit, "TXA"] call ACEFUNC(medical_status,getMedicationCount); private _countEACA = [_unit, "EACA"] call ACEFUNC(medical_status,getMedicationCount); @@ -47,7 +47,7 @@ if !(GVAR(coagulation)) exitWith {}; if (_currentCoagFactors < _savedCoagFactors) exitWith { [{ params["_unit"]; - _unit setVariable [QGVAR(coagulationSavedFactors), _unit getVariable [QGVAR(coagulationFactor), 15], true]; + _unit setVariable [QGVAR(coagulationSavedFactors), _unit getVariable [QGVAR(coagulationFactor), 30], true]; }, [_unit], ((missionNamespace getVariable [QGVAR(coagulation_factor_regenerate_time), 150]) / 2)] call CBA_fnc_waitAndExecute; // Block regen PFH instance from happening }; diff --git a/addons/pharma/functions/fnc_fluidLocal.sqf b/addons/pharma/functions/fnc_fluidLocal.sqf index 6e9c4a6d8..09151eaf4 100644 --- a/addons/pharma/functions/fnc_fluidLocal.sqf +++ b/addons/pharma/functions/fnc_fluidLocal.sqf @@ -24,7 +24,7 @@ private _final = (_current + _ph) max 0; _final min 1500; _patient setVariable [QGVAR(pH), (_final), true]; -private _coagFactorMax = missionNamespace getVariable [QGVAR(coagulation_factor_limit), 30]; -private _factor = _patient getVariable [QGVAR(coagulationFactor), 10]; +private _coagFactorMax = missionNamespace getVariable [QGVAR(coagulation_factor_limit), 60]; +private _factor = _patient getVariable [QGVAR(coagulationFactor), 30]; private _final2 = (_factor + _coagulation) min _coagFactorMax; _patient setVariable [QGVAR(coagulationFactor), (_final2), true]; diff --git a/addons/pharma/functions/fnc_fullHealLocal.sqf b/addons/pharma/functions/fnc_fullHealLocal.sqf index 388b62417..7e3af217b 100644 --- a/addons/pharma/functions/fnc_fullHealLocal.sqf +++ b/addons/pharma/functions/fnc_fullHealLocal.sqf @@ -36,7 +36,7 @@ _patient setVariable [QGVAR(pH), 1500, true]; _patient setVariable [QGVAR(kidneyFail), false, true]; _patient setVariable [QGVAR(kidneyArrest), false, true]; _patient setVariable [QGVAR(kidneyPressure), false, true]; -_patient setVariable [QGVAR(coagulationFactor), missionNamespace getVariable [QGVAR(coagulation_factor_count), 15], true]; +_patient setVariable [QGVAR(coagulationFactor), missionNamespace getVariable [QGVAR(coagulation_factor_count), 30], true]; /// Clear Stamina & weapon sway if (ACEGVAR(advanced_fatigue,enabled)) then { diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_CheckCoag.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_CheckCoag.sqf index d936cbdea..374effac4 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_CheckCoag.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_CheckCoag.sqf @@ -18,8 +18,8 @@ params ["_medic", "_patient"]; -private _coagFactors = _patient getVariable [QGVAR(coagulationFactor), 15]; -private _missionCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 15]; +private _coagFactors = _patient getVariable [QGVAR(coagulationFactor), 30]; +private _missionCoagFactors = missionNamespace getVariable [QGVAR(coagulation_factor_count), 30]; private _slowINR = (_missionCoagFactors / 100) * 75; private _shighINR = (_missionCoagFactors / 100) * 125; private _hlowINR = (_missionCoagFactors / 100) * 50; diff --git a/addons/surgery/ACE_Medical_Treatment.hpp b/addons/surgery/ACE_Medical_Treatment.hpp index d308a73de..5aeef4c7e 100644 --- a/addons/surgery/ACE_Medical_Treatment.hpp +++ b/addons/surgery/ACE_Medical_Treatment.hpp @@ -51,7 +51,7 @@ class ACE_Medical_Treatment { class BloodClotMinor: FieldDressing { class Abrasion { effectiveness = 0; - reopeningChance = 0.3; + reopeningChance = 0.6; reopeningMinDelay = 300; reopeningMaxDelay = 900; }; @@ -59,44 +59,56 @@ class ACE_Medical_Treatment { effectiveness = 1; }; class AbrasionMedium: Abrasion { - effectiveness = 0; }; class AbrasionLarge: Abrasion { - effectiveness = 0; }; class Avulsion: Abrasion {}; - class AvulsionMinor: AbrasionMinor {}; + class AvulsionMinor: AbrasionMinor { + effectiveness = 0.5; + }; class AvulsionMedium: Avulsion {}; class AvulsionLarge: Avulsion {}; class Contusion: Abrasion {}; - class ContusionMinor: AbrasionMinor {}; + class ContusionMinor: AbrasionMinor { + effectiveness = 1; + }; class ContusionMedium: Contusion {}; class ContusionLarge: Contusion {}; class Crush: Abrasion {}; - class CrushMinor: AbrasionMinor {}; + class CrushMinor: AbrasionMinor { + effectiveness = 1; + }; class CrushMedium: Crush {}; class CrushLarge: Crush {}; class Cut: Abrasion {}; - class CutMinor: AbrasionMinor {}; + class CutMinor: AbrasionMinor { + effectiveness = 0.5; + }; class CutMedium: Cut {}; class CutLarge: Cut {}; class Laceration: Abrasion {}; - class LacerationMinor: AbrasionMinor {}; + class LacerationMinor: AbrasionMinor { + effectiveness = 0.5; + }; class LacerationMedium: Laceration {}; class LacerationLarge: Laceration {}; class VelocityWound: Abrasion {}; - class VelocityWoundMinor: AbrasionMinor {}; + class VelocityWoundMinor: AbrasionMinor { + effectiveness = 0.5; + }; class VelocityWoundMedium: VelocityWound {}; class VelocityWoundLarge: VelocityWound {}; class PunctureWound: Abrasion {}; - class PunctureWoundMinor: AbrasionMinor {}; + class PunctureWoundMinor: AbrasionMinor { + effectiveness = 0.5; + }; class PunctureWoundMedium: PunctureWound {}; class PunctureWoundLarge: PunctureWound {}; }; @@ -108,63 +120,58 @@ class ACE_Medical_Treatment { reopeningMinDelay = 300; reopeningMaxDelay = 600; }; - class AbrasionMinor: Abrasion { - effectiveness = 0; - }; + class AbrasionMinor: Abrasion {}; class AbrasionMedium: Abrasion { effectiveness = 1; - reopeningChance = 0.6; - }; - class AbrasionLarge: Abrasion { - effectiveness = 0; }; + class AbrasionLarge: Abrasion {}; class Avulsion: Abrasion {}; class AvulsionMinor: Avulsion {}; class AvulsionMedium: AbrasionMedium { - reopeningChance = 0.4; + effectiveness = 1; }; class AvulsionLarge: Avulsion {}; class Contusion: Abrasion {}; class ContusionMinor: Contusion {}; class ContusionMedium: AbrasionMedium { - reopeningChance = 2; + effectiveness = 1; }; class ContusionLarge: Contusion {}; class Crush: Abrasion {}; class CrushMinor: Crush {}; class CrushMedium: AbrasionMedium { - reopeningChance = 0.5; + effectiveness = 1; }; class CrushLarge: Crush {}; class Cut: Abrasion {}; class CutMinor: Cut {}; class CutMedium: AbrasionMedium { - reopeningChance = 0.5; + effectiveness = 1; }; class CutLarge: Cut {}; class Laceration: Abrasion {}; class LacerationMinor: Laceration {}; class LacerationMedium: AbrasionMedium { - reopeningChance = 0.5; + effectiveness = 1; }; class LacerationLarge: Laceration {}; class VelocityWound: Abrasion {}; class VelocityWoundMinor: VelocityWound {}; class VelocityWoundMedium: AbrasionMedium { - reopeningChance = 0.5; + effectiveness = 1; }; class VelocityWoundLarge: VelocityWound {}; class PunctureWound: Abrasion {}; class PunctureWoundMinor: PunctureWound {}; class PunctureWoundMedium: AbrasionMedium { - reopeningChance = 0.5; + effectiveness = 1; }; class PunctureWoundLarge: PunctureWound {}; }; @@ -186,158 +193,273 @@ class ACE_Medical_Treatment { class AvulsionMinor: Avulsion {}; class AvulsionMedium: Avulsion {}; class AvulsionLarge: AbrasionLarge { - reopeningChance = 1; + effectiveness = 0.5; }; class Contusion: Abrasion {}; class ContusionMinor: Contusion {}; class ContusionMedium: Contusion {}; - class ContusionLarge: AbrasionLarge {}; + class ContusionLarge: AbrasionLarge { + effectiveness = 1; + }; class Crush: Abrasion {}; class CrushMinor: Crush {}; class CrushMedium: Crush {}; - class CrushLarge: AbrasionLarge {}; + class CrushLarge: AbrasionLarge { + effectiveness = 1; + }; class Cut: Abrasion {}; class CutMinor: Cut {}; class CutMedium: Cut {}; class CutLarge: AbrasionLarge { - reopeningChance = 0.7; + effectiveness = 0.5; }; class Laceration: Abrasion {}; class LacerationMinor: Laceration {}; class LacerationMedium: Laceration {}; class LacerationLarge: AbrasionLarge { - reopeningChance = 0.7; + effectiveness = 0.5; }; class VelocityWound: Abrasion {}; class VelocityWoundMinor: VelocityWound {}; class VelocityWoundMedium: VelocityWound {}; class VelocityWoundLarge: AbrasionLarge { - reopeningChance = 0.7; + effectiveness = 0.5; }; class PunctureWound: Abrasion {}; class PunctureWoundMinor: PunctureWound {}; class PunctureWoundMedium: PunctureWound {}; - class PunctureWoundLarge: AbrasionLarge {}; + class PunctureWoundLarge: AbrasionLarge { + effectiveness = 1; + }; }; class BloodClotMinorTXA: BloodClotMinor { class Abrasion { effectiveness = 0; - reopeningChance = 0; + reopeningChance = 0.3; reopeningMinDelay = 300; reopeningMaxDelay = 600; }; class AbrasionMinor: Abrasion { + effectiveness = 2; + reopeningChance = 0; + }; + class AvulsionMinor: AbrasionMinor { + effectiveness = 1; + }; + class ContusionMinor: AbrasionMinor { + effectiveness = 2; + }; + class CrushMinor: AbrasionMinor { + effectiveness = 1; + }; + class CutMinor: AbrasionMinor { + effectiveness = 1; + }; + class LacerationMinor: AbrasionMinor { + effectiveness = 1; + }; + class VelocityWoundMinor: AbrasionMinor { + effectiveness = 1; + }; + class PunctureWoundMinor: AbrasionMinor { effectiveness = 1; }; - class AvulsionMinor: AbrasionMinor {}; - class ContusionMinor: AbrasionMinor {}; - class CrushMinor: AbrasionMinor {}; - class CutMinor: AbrasionMinor {}; - class LacerationMinor: AbrasionMinor {}; - class VelocityWoundMinor: AbrasionMinor {}; - class PunctureWoundMinor: AbrasionMinor {}; }; class BloodClotMediumTXA: BloodClotMedium { class Abrasion { effectiveness = 0; - reopeningChance = 0; + reopeningChance = 0.3; reopeningMinDelay = 300; reopeningMaxDelay = 600; }; class AbrasionMedium: Abrasion { + effectiveness = 2; + }; + class AvulsionMedium: AbrasionMedium { + effectiveness = 0.5; + }; + class ContusionMedium: AbrasionMedium { effectiveness = 1; }; - class AvulsionMedium: AbrasionMedium {}; - class ContusionMedium: AbrasionMedium {}; - class CrushMedium: AbrasionMedium {}; - class CutMedium: AbrasionMedium {}; - class LacerationMedium: AbrasionMedium {}; - class VelocityWoundMedium: AbrasionMedium {}; - class PunctureWoundMedium: AbrasionMedium {}; + class CrushMedium: AbrasionMedium { + effectiveness = 1; + }; + class CutMedium: AbrasionMedium { + effectiveness = 0.5; + }; + class LacerationMedium: AbrasionMedium { + effectiveness = 0.5; + }; + class VelocityWoundMedium: AbrasionMedium { + effectiveness = 0.5; + }; + class PunctureWoundMedium: AbrasionMedium { + effectiveness = 0.5; + }; }; class BloodClotLargeTXA: BloodClotLarge { class Abrasion { effectiveness = 0; - reopeningChance = 0; + reopeningChance = 0.3; reopeningMinDelay = 300; reopeningMaxDelay = 600; }; class AbrasionLarge: Abrasion { + effectiveness = 2; + }; + class AvulsionLarge: AbrasionLarge { + effectiveness = 0.5; + }; + class ContusionLarge: AbrasionLarge { + effectiveness = 1; + }; + class CrushLarge: AbrasionLarge { effectiveness = 1; }; - class AvulsionLarge: AbrasionLarge {}; - class ContusionLarge: AbrasionLarge {}; - class CrushLarge: AbrasionLarge {}; - class CutLarge: AbrasionLarge {}; - class LacerationLarge: AbrasionLarge {}; - class VelocityWoundLarge: AbrasionLarge {}; - class PunctureWoundLarge: AbrasionLarge {}; + class CutLarge: AbrasionLarge { + effectiveness = 0.5; + }; + class LacerationLarge: AbrasionLarge { + effectiveness = 0.5; + }; + class VelocityWoundLarge: AbrasionLarge { + effectiveness = 0.5; + }; + class PunctureWoundLarge: AbrasionLarge { + effectiveness = 0.5; + }; }; class BloodClotMinorEACA: BloodClotMinor { class Abrasion { effectiveness = 0; - reopeningChance = 0; - reopeningMinDelay = 300; - reopeningMaxDelay = 600; + reopeningChance = 0.1; + reopeningMinDelay = 600; + reopeningMaxDelay = 1200; }; class AbrasionMinor: Abrasion { effectiveness = 2; + reopeningChance = 0; + }; + class AvulsionMinor: AbrasionMinor { + effectiveness = 1; + reopeningChance = 0.1; + }; + class ContusionMinor: AbrasionMinor { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CrushMinor: AbrasionMinor { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CutMinor: AbrasionMinor { + effectiveness = 1; + reopeningChance = 0.1; + }; + class LacerationMinor: AbrasionMinor { + effectiveness = 1; + reopeningChance = 0.1; + }; + class VelocityWoundMinor: AbrasionMinor { + effectiveness = 1; + reopeningChance = 0.1; + }; + class PunctureWoundMinor: AbrasionMinor { + effectiveness = 2; + reopeningChance = 0.1; }; - class AvulsionMinor: AbrasionMinor {}; - class ContusionMinor: AbrasionMinor {}; - class CrushMinor: AbrasionMinor {}; - class CutMinor: AbrasionMinor {}; - class LacerationMinor: AbrasionMinor {}; - class VelocityWoundMinor: AbrasionMinor {}; - class PunctureWoundMinor: AbrasionMinor {}; }; class BloodClotMediumEACA: BloodClotMedium { class Abrasion { effectiveness = 0; - reopeningChance = 0; - reopeningMinDelay = 300; - reopeningMaxDelay = 600; + reopeningChance = 0.1; + reopeningMinDelay = 600; + reopeningMaxDelay = 1200; }; class AbrasionMedium: Abrasion { effectiveness = 2; + reopeningChance = 0; + }; + class AvulsionMedium: AbrasionMedium { + effectiveness = 1; + reopeningChance = 0.1; + }; + class ContusionMedium: AbrasionMedium { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CrushMedium: AbrasionMedium { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CutMedium: AbrasionMedium { + effectiveness = 1; + reopeningChance = 0.1; + }; + class LacerationMedium: AbrasionMedium { + effectiveness = 1; + reopeningChance = 0.1; + }; + class VelocityWoundMedium: AbrasionMedium { + effectiveness = 1; + reopeningChance = 0.1; + }; + class PunctureWoundMedium: AbrasionMedium { + effectiveness = 2; + reopeningChance = 0.1; }; - class AvulsionMedium: AbrasionMedium {}; - class ContusionMedium: AbrasionMedium {}; - class CrushMedium: AbrasionMedium {}; - class CutMedium: AbrasionMedium {}; - class LacerationMedium: AbrasionMedium {}; - class VelocityWoundMedium: AbrasionMedium {}; - class PunctureWoundMedium: AbrasionMedium {}; }; class BloodClotLargeEACA: BloodClotLarge { class Abrasion { effectiveness = 0; - reopeningChance = 0; - reopeningMinDelay = 300; - reopeningMaxDelay = 600; + reopeningChance = 0.1; + reopeningMinDelay = 600; + reopeningMaxDelay = 1200; }; class AbrasionLarge: Abrasion { effectiveness = 2; + reopeningChance = 0; + }; + class AvulsionLarge: AbrasionLarge { + effectiveness = 1; + reopeningChance = 0.1; + }; + class ContusionLarge: AbrasionLarge { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CrushLarge: AbrasionLarge { + effectiveness = 2; + reopeningChance = 0.1; + }; + class CutLarge: AbrasionLarge { + effectiveness = 1; + reopeningChance = 0.1; + }; + class LacerationLarge: AbrasionLarge { + effectiveness = 1; + reopeningChance = 0.1; + }; + class VelocityWoundLarge: AbrasionLarge { + effectiveness = 1; + reopeningChance = 0.1; + }; + class PunctureWoundLarge: AbrasionLarge { + effectiveness = 2; + reopeningChance = 0.1; }; - class AvulsionLarge: AbrasionLarge {}; - class ContusionLarge: AbrasionLarge {}; - class CrushLarge: AbrasionLarge {}; - class CutLarge: AbrasionLarge {}; - class LacerationLarge: AbrasionLarge {}; - class VelocityWoundLarge: AbrasionLarge {}; - class PunctureWoundLarge: AbrasionLarge {}; }; }; };