//fnc_recoil.sqf //#define DEBUG_MODE_FULL #include "script_component.hpp" private ["_recoilLength", "_charge", "_chargeFactor","_elvOff", "_defOff", "_azOff"]; PARAMS_1(_gun); _currentRound = _gun getVariable ["ace_sys_arty_currentRound",[]]; TRACE_1("",_currentRound); _charge = if (count _currentRound == 0) then { 1 } else { _currentRound select 3 }; _chargeFactor = _charge/4; _elvOff = (-1+(random 2))*_chargeFactor; _defOff = (-0.5+(random 1))*_chargeFactor; _azOff = (-0.25+(random 0.5))*_chargeFactor; _azimuthPhase = _gun animationPhase "MainTurret"; _elevationPhase = _gun animationPhase "MainGun"; _traversePhase = _gun animationPhase "MainTurretTraverse"; _elvOff = ((_elvOff+_elevationPhase) max 800) min 1511; TRACE_1("Elevation RECOIL",_elvOff); _azOff = _azOff + _azimuthPhase; TRACE_1("Azimuth RECOIL",_azOff); _defOff = ((_defOff+_traversePhase) max -200) min 200; TRACE_1("Deflection RECOIL",_defOff); _gun animate ["MainGun", _elvOff]; _gun animate ["MainTurret", _azOff]; _gun animate ["MainTurretTraverse", _defOff];