1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- params["_shield"];
- if(_shield isEqualTo objNull) exitWith {
- diag_log format["[RD501][Shield] Specified shield is null while checking state '%1", _shield];
- };
- private _maxHealth = _shield getVariable ["rd501_shield_maxHealth", false];
- private _currentHealth = _shield getVariable ["rd501_shield_currentHealth", false];
- private _isLowHealth = _shield getVariable ["rd501_shield_isLowHealth", false];
- private _lowHealthPercentage = _shield getVariable ["rd501_shield_lowHealthPercentage", 20];
- private _threshold = _maxHealth * (_lowHealthPercentage/100);
- private _type = _shield getVariable ["rd501_shield_type", "REPUBLIC"];
- if(_isLowHealth) exitWith {
- if(_currentHealth >= _threshold) then {
- diag_log "[RD501][Shield] Shield is now normal health, updating texture on clients";
- _shield setVariable["rd501_shield_isLowHealth", false];
-
- private _jipId = _shield getVariable ["rd501_shield_stateJipId", false];
- if(_jipId isEqualTo false) then {
- _jipId = ["rd501_shield_normalHealth",[_shield, _type]] call CBA_fnc_globalEventJIP;
- _shield setVariable ["rd501_shield_stateJipId", _jipId, true];
- [_jipId, _shield] call CBA_fnc_removeGlobalEventJIP;
- }
- else
- {
- ["rd501_shield_normalHealth",[_shield, _type], _jipId] call CBA_fnc_globalEventJIP;
- [_jipId, _shield] call CBA_fnc_removeGlobalEventJIP;
- };
- };
- };
- if!(_isLowHealth) exitWith {
- if(_currentHealth < _threshold) then {
- diag_log "[RD501][Shield] Shield is now normal health, updating texture on clients";
- _shield setVariable["rd501_shield_isLowHealth", true];
- private _jipId = _shield getVariable ["rd501_shield_stateJipId", false];
- if(_jipId isEqualTo false) then {
- _jipId = ["rd501_shield_lowHealth",[_shield, _type]] call CBA_fnc_globalEventJIP;
- _shield setVariable ["rd501_shield_stateJipId", _jipId, true];
- [_jipId, _shield] call CBA_fnc_removeGlobalEventJIP;
- }
- else
- {
- ["rd501_shield_lowHealth",[_shield, _type], _jipId] call CBA_fnc_globalEventJIP;
- [_jipId, _shield] call CBA_fnc_removeGlobalEventJIP;
- };
- };
- };
|