mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Medical Status - Remove status effects upon death/featureCamera (#9301)
* Update fnc_handleKilled.sqf
* move to function
* Removed skipSetHidden
* Revert "Removed skipSetHidden"
This reverts commit 452c5216a7
.
* Update addons/medical_status/XEH_postInit.sqf
* add comment, force git to run actions
---------
Co-authored-by: LinkIsGrim <salluci.lovi@gmail.com>
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
This commit is contained in:
parent
55cc755542
commit
682ae05f59
@ -14,5 +14,6 @@ PREP(isBeingDragged);
|
||||
PREP(isInStableCondition);
|
||||
PREP(setCardiacArrestState);
|
||||
PREP(setDead);
|
||||
PREP(setStatusEffects);
|
||||
PREP(setUnconsciousState);
|
||||
PREP(updateWoundBloodLoss);
|
||||
|
@ -2,3 +2,18 @@
|
||||
|
||||
// Handle pain changes on injury
|
||||
[QEGVAR(medical,injured), LINKFUNC(adjustPainLevel)] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Handle comms status effects for spectator
|
||||
// Separate from medical_feedback as these affect unit behavior rather than what the player sees
|
||||
["featureCamera", {
|
||||
params ["_unit", "_newCamera"];
|
||||
|
||||
if (_unit isNotEqualTo ACE_player) exitWith {};
|
||||
|
||||
if (_newCamera == "") then { // switched back to player view
|
||||
private _status = IS_UNCONSCIOUS(_unit);
|
||||
[_unit, _status] call FUNC(setStatusEffects);
|
||||
} else {
|
||||
[_unit, false, true] call FUNC(setStatusEffects);
|
||||
};
|
||||
}] call CBA_fnc_addPlayerEventHandler;
|
||||
|
@ -53,4 +53,7 @@ if (_unit == player) then {
|
||||
["unconscious", false] call EFUNC(common,setDisableUserInputStatus);
|
||||
};
|
||||
|
||||
// Remove status effects before respawn, in case mission is using spectator
|
||||
[_unit, false] call FUNC(setStatusEffects);
|
||||
|
||||
["ace_killed", [_unit, _causeOfDeath, _killer, _instigator]] call CBA_fnc_globalEvent;
|
||||
|
30
addons/medical_status/functions/fnc_setStatusEffects.sqf
Normal file
30
addons/medical_status/functions/fnc_setStatusEffects.sqf
Normal file
@ -0,0 +1,30 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: LinkIsGrim
|
||||
* Sets status effects for a unit.
|
||||
* For Internal Use: Called by FUNC(setUnconsciousState), FUNC(handleKilled), and on featureCamera changes.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The unit <OBJECT>
|
||||
* 1: Status effects value <BOOL>
|
||||
* 2: Skip setHidden <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "_set", ["_skipSetHidden", false]];
|
||||
TRACE_3("setStatusEffect",_unit,_set,_skipSetHidden);
|
||||
|
||||
// Block radio on unconsciousness for compatibility with captive module
|
||||
[_unit, "blockRadio", "ace_unconscious", _set] call EFUNC(common,statusEffect_set);
|
||||
|
||||
// Block speaking on unconsciousness
|
||||
[_unit, "blockSpeaking", "ace_unconscious", _set] call EFUNC(common,statusEffect_set);
|
||||
|
||||
if (_skipSetHidden) exitWith {};
|
||||
|
||||
// Stop AI firing at unconscious units in most situations (global effect)
|
||||
[_unit, "setHidden", "ace_unconscious", _set] call EFUNC(common,statusEffect_set);
|
@ -28,14 +28,8 @@ _unit setVariable [VAR_UNCON, _active, true];
|
||||
// Toggle unit ragdoll state
|
||||
[_unit, _active] call EFUNC(medical_engine,setUnconsciousAnim);
|
||||
|
||||
// Stop AI firing at unconscious units in most situations (global effect)
|
||||
[_unit, "setHidden", "ace_unconscious", _active] call EFUNC(common,statusEffect_set);
|
||||
|
||||
// Block radio on unconsciousness for compatibility with captive module
|
||||
[_unit, "blockRadio", "ace_unconscious", _active] call EFUNC(common,statusEffect_set);
|
||||
|
||||
// Block speaking on unconsciousness
|
||||
[_unit, "blockSpeaking", "ace_unconscious", _active] call EFUNC(common,statusEffect_set);
|
||||
// Handle hiding from AI and talking blocks.
|
||||
[_unit, _active] call FUNC(setStatusEffects);
|
||||
|
||||
if (_active) then {
|
||||
// Don't bother setting this if not used
|
||||
|
Loading…
Reference in New Issue
Block a user