#include "..\script_component.hpp" // Executed on all machines with an interface // This plays the effects of the EMP itself going off if (!hasInterface) exitWith {}; params [["_origin", [], [[]]]]; if (count _origin isEqualTo 0) exitWith {}; private _e_static3 = "#particlesource" createVehicleLocal (ASLToAGL _origin); _e_static3 setParticleCircle [0, [0, 0, 0]]; _e_static3 setParticleRandom [0.2, [0,0,0], [0.175, 0.175, 0.175], 0.25, 0.15, [0, 0, 0, 1], 1, 0]; _e_static3 setParticleParams [["\A3\data_f\blesk1", 1, 0, 1], "", "SpaceObject", 1, 0.75, [0, 0, 1], [0, 0, 0], 0, 10, 7.9,0, [0, 0.2], [[1, 1, 0.1, 1], [1, 1, 1, 1]], [0.01], 1, 0, "", "", objNull,0,false,-1,[[100,100,100,1],[1,1,1,1]]]; _e_static3 setDropInterval 0.15; private _ripple2 = "#particlesource" createVehicleLocal (ASLToAGL _origin); _ripple2 setParticleCircle [0,[0,0,0]]; _ripple2 setParticleRandom [0.1,[0,0,0],[0,0,0],25,1,[0,0,0,0.1],0,0]; _ripple2 setParticleParams [["\A3\data_f\ParticleEffects\Universal\Refract.p3d",1,0,1], "", "Billboard", 1, 1, [0, 0, 1], [0, 0, 0],0,10,7.9,0, [5,0], [[1, 1, 1, 1], [1, 1, 1, 1]], [0.05], 1, 0, "", "", objNull]; _ripple2 setDropInterval 0.05; private _light_emp = "#lightpoint" createVehiclelocal (ASLToAGL _origin); // _light_emp lightAttachObject [objNull, [0,0,0.5]]; _light_emp setLightAmbient [0.1,0.1,1]; _light_emp setLightColor [0.1,0.1,1]; _light_emp setLightBrightness 0; _light_emp setLightUseFlare true; _light_emp setLightFlareSize 1; _light_emp setLightFlareMaxDistance 2500; _light_emp setLightDayLight true; _light_emp setLightAttenuation [5,1,1,1,5,1000]; _brit = 0; // local only, last param playSound3D [QGVAR(sound_electric_explsion_impact_large), nil, false, _origin, 1, 1, 3500, 0, true]; [_light_emp, _brit, _ripple2] spawn { params ["_light_emp", "_brit", "_ripple2"]; while {_brit < 6.5} do { // takes ~1.73 seconds to reach full brightness _light_emp setLightBrightness _brit; _brit = _brit+0.02; //timing for next stage sleep 0.01; }; deleteVehicle _ripple2; }; [{ params ["_origin", "_light_emp"]; private _e_static2 = "#particlesource" createVehicleLocal (ASLToAGL _origin); _e_static2 setParticleCircle [0, [0, 0, 0]]; _e_static2 setParticleRandom [0.2, [0,0,0], [0, 0, 0], 0.25, 1.05, [0, 0, 0, 1], 1, 0]; _e_static2 setParticleParams [["\A3\data_f\blesk1", 1, 0, 1], "", "SpaceObject", 1, 0.75, [0, 0, 0], [0, 0, 1], 0, 10, 7.9,0, [0,0.5], [[1, 1, 0.1, 1], [1, 1, 1, 1]], [0.08], 1, 0, "", "", objNull,0,false,-1,[[100,100,100,1],[0,0,1,0.01]]]; _e_static2 setDropInterval 0.05; private _wave = "#particlesource" createVehicleLocal (ASLToAGL _origin); _wave setParticleCircle [0,[0,0,0]]; _wave setParticleRandom [0,[0,0,0],[0,0,0],10,0.25,[0,0,0,0.1],0,0]; _wave setParticleParams [["\A3\data_f\kouleSvetlo",1,0,1], "", "Billboard", 1, 3, [0, 0, 1], [0, 0, 0],0,10,7.9,0, [0,75], [[0,0,1,1],[0,0,0.25,0]], [0.01], 1, 0, "", "", objNull,0,false,-1,[[0,0,3,0.75],[0,0,1,0.01]]]; _wave setDropInterval 30; private _ripple = "#particlesource" createVehicleLocal (ASLToAGL _origin); _ripple setParticleCircle [0,[0,0,0]]; _ripple setParticleRandom [0,[0,0,0],[0,0,0],0,0.25,[0,0,0,0.1],0,0]; _ripple setParticleParams [["\A3\data_f\ParticleEffects\Universal\Refract.p3d",1,0,1], "", "Billboard", 1, 1.5, [0, 0, 1], [0, 0, 0],0,10,7.9,0, [0,500], [[1, 1, 1, 1], [1, 1, 1, 1]], [0.05], 1, 0, "", "", objNull]; _ripple setDropInterval 10; [{deleteVehicle _this}, _ripple, GVAR(maxBrightDelay) + 0.65] call CBA_fnc_waitAndExecute; [{ params [ ["_toDelete", [], [[]]], ["_toProcess", [], [[]]] ]; { deleteVehicle _x; } forEach _toDelete; _toProcess spawn { params ["_brit", "_light_emp", "_wave"]; while {_brit > 0} do { _light_emp setLightBrightness _brit; _brit = _brit-2; sleep 0.01; }; deleteVehicle _light_emp; deleteVehicle _wave; }; }, [[_e_static2, _e_static3], [6.5, _light_emp, _wave]], GVAR(maxBrightDelay) + 0.85] call CBA_fnc_waitAndExecute; }, [_origin, _light_emp], GVAR(maxBrightDelay)] call CBA_fnc_waitAndExecute; [{ params ["_origin"]; _echosound = selectRandom [QGVAR(sound_ecou),QGVAR(sound_echo3)]; // local only, last param playSound3d [_echosound, nil, false, _origin, 1, 1, 4000, 0, true]; }, [_origin], GVAR(maxBrightDelay) + 0.65 + 2] call CBA_fnc_waitAndExecute;