diff --git a/addons/chemical/functions/fnc_applyMustardDamage.sqf b/addons/chemical/functions/fnc_applyMustardDamage.sqf index 11db61ea2..a6cfb63d5 100644 --- a/addons/chemical/functions/fnc_applyMustardDamage.sqf +++ b/addons/chemical/functions/fnc_applyMustardDamage.sqf @@ -24,8 +24,8 @@ params ["_unit"]; if (!alive _unit) exitWith {}; -// Lung damage: chemical pneumonitis from inhaled mustard. High chance value -// pushes toward tension hemopneumothorax (the lethal variant). +// Lung damage: chemical pneumonitis from inhaled mustard. Forces a +// hemopneumothorax (bleeding variant) _unit setVariable [QEGVAR(breathing,pneumothorax), 1, true]; _unit setVariable [QEGVAR(breathing,deepPenetratingInjury), true, true]; _unit setVariable [QEGVAR(breathing,activeChestSeal), false, true]; @@ -34,7 +34,10 @@ _unit setVariable [QEGVAR(breathing,activeChestSeal), false, true]; [_unit] call EFUNC(breathing,handlePneumothoraxDeterioration); if (EGVAR(breathing,advPtxEnable)) then { - [_unit, 30, true] call EFUNC(breathing,inflictAdvancedPneumothorax); + [_unit, 0.7] call ACEFUNC(medical_status,adjustPainLevel); + _unit setVariable [QEGVAR(breathing,hemopneumothorax), true, true]; + _unit setVariable [QEGVAR(breathing,pneumothorax), 4, true]; + [_unit] call EFUNC(circulation,updateInternalBleeding); }; // Pain spike — pushes past unconscious threshold quickly. diff --git a/addons/chemical/functions/fnc_effect_mustard.sqf b/addons/chemical/functions/fnc_effect_mustard.sqf index af2014bf8..d9f797b6a 100644 --- a/addons/chemical/functions/fnc_effect_mustard.sqf +++ b/addons/chemical/functions/fnc_effect_mustard.sqf @@ -36,7 +36,9 @@ private _eyeMax = missionNamespace getVariable [QGVAR(mustard_eyeOnsetMax), 600] private _burnMin = missionNamespace getVariable [QGVAR(mustard_burnOnsetMin), 600]; private _burnMax = missionNamespace getVariable [QGVAR(mustard_burnOnsetMax), 1200]; -_unit setVariable [QGVAR(mustardDeadline_eye), CBA_missionTime + _eyeMin + random (_eyeMax - _eyeMin), true]; +if (EGVAR(ophthalmology,enable)) then { + _unit setVariable [QGVAR(mustardDeadline_eye), CBA_missionTime + _eyeMin + random (_eyeMax - _eyeMin), true]; +}; _unit setVariable [QGVAR(mustardDeadline_burn), CBA_missionTime + _burnMin + random (_burnMax - _burnMin), true]; [_unit] call FUNC(addToExposureWatcher); diff --git a/addons/surgery/ACE_Medical_Treatment.hpp b/addons/surgery/ACE_Medical_Treatment.hpp index 0f789e710..247b3594a 100644 --- a/addons/surgery/ACE_Medical_Treatment.hpp +++ b/addons/surgery/ACE_Medical_Treatment.hpp @@ -111,6 +111,11 @@ class ACE_Medical_Treatment { }; class PunctureWoundMedium: PunctureWound {}; class PunctureWoundLarge: PunctureWound {}; + + class KAT_ChemicalBurn: Abrasion {}; + class KAT_ChemicalBurnMinor: AbrasionMinor {}; + class KAT_ChemicalBurnMedium: Abrasion {}; + class KAT_ChemicalBurnLarge: Abrasion {}; }; class BloodClotMedium: FieldDressing { @@ -174,6 +179,11 @@ class ACE_Medical_Treatment { effectiveness = 1; }; class PunctureWoundLarge: PunctureWound {}; + + class KAT_ChemicalBurn: Abrasion {}; + class KAT_ChemicalBurnMinor: Abrasion {}; + class KAT_ChemicalBurnMedium: AbrasionMedium {}; + class KAT_ChemicalBurnLarge: Abrasion {}; }; class BloodClotLarge: FieldDressing { @@ -237,6 +247,11 @@ class ACE_Medical_Treatment { class PunctureWoundLarge: AbrasionLarge { effectiveness = 1; }; + + class KAT_ChemicalBurn: Abrasion {}; + class KAT_ChemicalBurnMinor: Abrasion {}; + class KAT_ChemicalBurnMedium: Abrasion {}; + class KAT_ChemicalBurnLarge: AbrasionLarge {}; }; class BloodClotMinorTXA: BloodClotMinor {