101 lines
4.5 KiB
Plaintext
101 lines
4.5 KiB
Plaintext
#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;
|
|
|
|
|
|
private _explSoundData = GVAR(sound_electric_explsion_impact_large);
|
|
// local only, last param
|
|
playSound3D [_explSoundData get "filename", nil, false, _origin, _explSoundData get "volume", _explSoundData get "pitch", 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, 0.65] call CBA_fnc_waitAndExecute;
|
|
|
|
[{
|
|
params ["_e_static2", "_e_static3", "_brit", "_light_emp", "_wave"];
|
|
{
|
|
deleteVehicle _x;
|
|
} forEach [_e_static2, _e_static3];
|
|
|
|
[_light_emp, _brit, _wave] spawn {
|
|
params ["_light_emp", "_brit", "_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]], 0.85] call CBA_fnc_waitAndExecute;
|
|
}, [_origin, _light_emp], GVAR(maxBrightDelay)] call CBA_fnc_waitAndExecute;
|
|
|
|
|
|
|
|
|
|
[{
|
|
params ["_origin"];
|
|
private _echosound = selectRandom (keys GVAR(echoSounds));
|
|
private _echoSoundData = GVAR(echoSounds) get _echosound;
|
|
// local only, last param
|
|
playSound3D [_echoSoundData get "filename", nil, false, _origin, _echoSoundData get "volume", _echoSoundData get "pitch", 4000, 0, true];
|
|
}, [_origin], GVAR(maxBrightDelay) + 0.65 + 2] call CBA_fnc_waitAndExecute; |