/* * Author: PabstMirror * Sends all status effects for an object (can be run on non-local objects) * * Arguments: * 0: Object * 1: Effect name (or "" to send all) * * Return Value: * Nothing * * Example: * [player, ""] call ace_common_fnc_statusEffect_sendEffects * * Public: No */ // #define DEBUG_MODE_FULL #include "script_component.hpp" params [["_object", objNull, [objNull]], ["_effectName", "", [""]]]; TRACE_2("params",_object,_effectName); if (isNull _object) exitWith {}; { if ((_effectName == "") || {_effectName == _x}) then { private _effectVarName = format [QGVAR(effect_%1), _x]; private _effectNumber = _object getVariable [_effectVarName, -1]; //We only do anything if the effect has been defined at some point in the game for this unit TRACE_2("checking if event is nil",_x,_effectNumber); if (_effectNumber != -1) then { private _eventName = format [QGVAR(%1), _x]; if (GVAR(statusEffect_isGlobal) select _forEachIndex) then { TRACE_2("Sending Global Event", _object, _effectNumber); [_eventName, [_object, _effectNumber]] call CBA_fnc_globalEvent; } else { TRACE_2("Sending Target Event", _object, _effectNumber); [_eventName, [_object, _effectNumber], _object] call CBA_fnc_targetEvent; }; }; }; } forEach GVAR(statusEffect_Names);