iw6-scripts/maps/carrier_fx.gsc
2024-02-13 13:20:49 +01:00

685 lines
31 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
level._effect["vfx_carrier_rearwake"] = loadfx( "vfx/moments/carrier/vfx_carrier_rearwake" );
level._effect["vfx_ac130_25mm_tracer"] = loadfx( "vfx/moments/carrier/vfx_ac130_25mm_tracer" );
level._effect["vfx_ac130_25mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_25mm_impact" );
level._effect["vfx_ac130_40mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_40mm_impact" );
level._effect["vfx_intro_antenna_lights_close"] = loadfx( "vfx/moments/carrier/vfx_intro_antenna_lights_close" );
level._effect["vfx_intro_antenna_lights"] = loadfx( "vfx/moments/carrier/vfx_intro_antenna_lights" );
level._effect["vfx_ac130_105mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_105mm_impact" );
level._effect["fx/muzzleflashes/ak47_flash_wv"] = loadfx( "fx/muzzleflashes/ak47_flash_wv" );
level._effect["aircraft_light_cockpit_white_300"] = loadfx( "fx/misc/aircraft_light_cockpit_white_300" );
level._effect["vfx_sunflare_carrier"] = loadfx( "vfx/ambient/atmospheric/vfx_sunflare_carrier" );
level._effect["vfx_jetscrape_point_runner"] = loadfx( "vfx/moments/carrier/vfx_jetscrape_point_runner" );
level._effect["vfx_intro_chopper_cloudbank"] = loadfx( "vfx/moments/carrier/vfx_intro_chopper_cloudbank" );
level._effect["vfx_intro_elevator_light"] = loadfx( "vfx/moments/carrier/vfx_intro_elevator_light" );
level._effect["vfx_intro_runway_lights"] = loadfx( "vfx/moments/carrier/vfx_intro_runway_lights" );
level._effect["vfx_antenna_deck_impact"] = loadfx( "vfx/moments/carrier/vfx_antenna_deck_impact" );
level._effect["vfx_firerain_large"] = loadfx( "vfx/moments/carrier/vfx_firerain_large" );
level._effect["vfx_carrier_shock_particulates"] = loadfx( "vfx/moments/carrier/vfx_carrier_shock_particulates" );
level._effect["vfx_crackpoof"] = loadfx( "vfx/moments/carrier/vfx_crackpoof" );
level._effect["vfx_firerain"] = loadfx( "vfx/moments/carrier/vfx_firerain" );
level._effect["vfx_deck_damage_fire"] = loadfx( "vfx/moments/carrier/vfx_deck_damage_fire" );
level._effect["vfx_zodiac_water_splash"] = loadfx( "vfx/moments/carrier/vfx_zodiac_water_splash" );
level._effect["vfx_zodiac_propeller_fast"] = loadfx( "vfx/moments/carrier/vfx_zodiac_propeller_fast" );
level._effect["vfx_missile_death_deck"] = loadfx( "vfx/moments/carrier/vfx_missile_death_deck" );
level._effect["vfx_exp_silenthawk_deck_trail"] = loadfx( "vfx/moments/carrier/vfx_exp_silenthawk_deck_trail" );
level._effect["vfx_exp_silenthawk_deck"] = loadfx( "vfx/moments/carrier/vfx_exp_silenthawk_deck" );
level._effect["vfx_exp_silenthawk_end"] = loadfx( "vfx/gameplay/explosions/vfx_exp_silenthawk_end" );
level._effect["vfx_tower_glass_shatter"] = loadfx( "vfx/moments/carrier/vfx_tower_glass_shatter" );
level._effect["vfx_lrg_air_exp"] = loadfx( "vfx/moments/carrier/vfx_lrg_air_exp_low_tendrils" );
level._effect["vfx_missile_death_air"] = loadfx( "vfx/moments/carrier/vfx_missile_death_air" );
level._effect["vfx_perif_smk_war_vista_fog_dark"] = loadfx( "vfx/ambient/skybox/vfx_perif_smk_war_vista_fog_dark" );
level._effect["vfx_vehicle_explosion_mig29"] = loadfx( "vfx/gameplay/explosions/vfx_vehicle_explosion_mig29" );
level._effect["vfx_zodiac_splash_idle"] = loadfx( "vfx/gameplay/vehicles/zodiac/vfx_zodiac_splash_idle" );
level._effect["vfx_zodiac_splash_sink"] = loadfx( "vfx/gameplay/vehicles/zodiac/vfx_zodiac_splash_sink" );
level._effect["vfx_f18_engine_afterburner"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_engine_afterburner" );
level._effect["vfx_f18_engine"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_engine" );
level._effect["vfx_f18_idle"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_idle" );
level._effect["vfx_debris_fire_tiny"] = loadfx( "vfx/moments/mp_chasm/vfx_debris_fire_tiny" );
level._effect["vfx_plume_med_light"] = loadfx( "vfx/ambient/smoke/vfx_plume_med_light" );
level._effect["vfx_plume_med_dense"] = loadfx( "vfx/ambient/smoke/vfx_plume_med_dense" );
level._effect["vfx_blowing_sparks_small"] = loadfx( "vfx/moments/carrier/vfx_blowing_sparks_small" );
level._effect["vfx_debris_fire_nosmk"] = loadfx( "vfx/moments/carrier/vfx_debris_fire_nolight_nosmk" );
level._effect["vfx_fire_grounded_xtralarge_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_grounded_xtralarge_nxglight" );
level._effect["vfx_fire_grounded_large_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_grounded_large_nxglight" );
level._effect["vfx_fire_wall_lg"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_lg" );
level._effect["vfx_fire_wall_small"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_small" );
level._effect["vfx_fire_crawling"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_crawling" );
level._effect["vfx_fire_wall_medium"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_medium" );
level._effect["vfx_post_impact_debris"] = loadfx( "vfx/moments/carrier/vfx_post_impact_debris" );
level._effect["vfx_antiair_runner"] = loadfx( "vfx/ambient/atmospheric/vfx_antiair_runner" );
level._effect["vfx_fire_lrg_plume"] = loadfx( "vfx/ambient/fire/vfx_fire_lrg_plume" );
level._effect["vfx_jetscrape_runner"] = loadfx( "vfx/moments/carrier/vfx_jetscrape_runner" );
level._effect["vfx_destroyer_5in_muzzleflash"] = loadfx( "vfx/moments/carrier/vfx_destroyer_5in_muzzleflash" );
level._effect["vfx_destroyer_vert_missile_impact"] = loadfx( "vfx/moments/carrier/vfx_destroyer_vert_missile_impact" );
level._effect["vfx_destroyer_vert_missile_trail"] = loadfx( "vfx/moments/carrier/vfx_destroyer_vert_missile_trail" );
level._effect["electrical_sparks_runner"] = loadfx( "vfx/ambient/sparks/electrical_sparks_runner" );
level._effect["vfx_tower_blowingpaper"] = loadfx( "vfx/moments/carrier/vfx_tower_blowingpaper" );
level._effect["vfx_carrier_fuel_fire_nosmoke"] = loadfx( "vfx/moments/carrier/vfx_carrier_fuel_fire_nosmoke" );
level._effect["vfx_carrier_fuel_fire"] = loadfx( "vfx/moments/carrier/vfx_carrier_fuel_fire" );
level._effect["vfx_blowing_debris_small"] = loadfx( "vfx/moments/carrier/vfx_blowing_debris_small" );
level._effect["vfx_debris_fire"] = loadfx( "vfx/moments/carrier/vfx_debris_fire_nolight" );
level._effect["vfx_rog_trail"] = loadfx( "vfx/moments/carrier/vfx_rog_trail" );
level._effect["vfx_rog_water_impact_close"] = loadfx( "vfx/moments/carrier/vfx_rog_water_impact_close" );
level._effect["vfx_deck_impact"] = loadfx( "vfx/moments/carrier/vfx_deck_impact" );
level._effect["vfx_deck_heatdistortion_runner"] = loadfx( "vfx/moments/carrier/vfx_deck_heatdistortion_runner" );
level._effect["vfx_battlesmoke_large_directional"] = loadfx( "vfx/moments/carrier/vfx_battlesmoke_large_directional" );
level._effect["vfx_rog_tower_impact"] = loadfx( "vfx/moments/carrier/vfx_rog_tower_impact" );
level._effect["vfx_phalanx_missile_impact"] = loadfx( "vfx/moments/carrier/vfx_phalanx_missile_impact" );
level._effect["flesh_hit"] = loadfx( "fx/impacts/flesh_hit" );
level._effect["zodiac_wake_geotrail"] = loadfx( "vfx/moments/carrier/vfx_zodiac_wake_cheap" );
level._effect["body_splash"] = loadfx( "fx/water/body_splash" );
level._effect["blank"] = loadfx( "fx/misc/blank" );
level._effect["FX_mig29_on_fire"] = loadfx( "fx/fire/jet_on_fire" );
level._effect["aerial_explosion_hind_woodland"] = loadfx( "fx/explosions/aerial_explosion_hind_woodland" );
level._effect["battleship_flash_large_withmissile"] = loadfx( "fx/maps/ny_harbor/battleship_flash_large_withmissile" );
level._effect["vfx_f18_catapult_launch"] = loadfx( "vfx/moments/carrier/vfx_f18_catapult_launch" );
level._effect["vfx_exp_heli_primary"] = loadfx( "vfx/gameplay/explosions/vehicle/heli/vfx_exp_heli_primary" );
level._effect["vfx_x_mphnd_primary"] = loadfx( "vfx/gameplay/explosions/vehicle/hind_mp/vfx_x_mphnd_primary" );
level._effect["ac130_25mm_impact_water"] = loadfx( "fx/impacts/ac130_25mm_impact_water" );
level._effect["ac130_40mm_impact_water"] = loadfx( "fx/impacts/ac130_40mm_impact_water" );
level._effect["ac130_105mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_105mm_impact" );
level._effect["angel_flare_geotrail"] = loadfx( "fx/smoke/angel_flare_geotrail" );
level._effect["angel_flare_swirl"] = loadfx( "fx/smoke/angel_flare_swirl_runner" );
level._effect["chopper_flare_explosion"] = loadfx( "fx/_requests/apache/apache_trophy_explosion_ai" );
level._effect["ac130_105mm_muzzle"] = loadfx( "fx/muzzleflashes/ac130_105mm" );
level._effect["ac130_40mm_muzzle"] = loadfx( "fx/muzzleflashes/ac130_40mm" );
level._effect["vfx_ac130_engine_fire"] = loadfx( "vfx/moments/carrier/vfx_ac130_engine_fire" );
level._effect["rog_maintrail_01"] = loadfx( "vfx/moments/carrier/vfx_rog_carrier_bg_runner" );
level._effect["depth_charge_impact"] = loadfx( "fx/water/body_splash" );
level._effect["depth_charge_explosion"] = loadfx( "vfx/moments/carrier/vfx_depthcharge_explode" );
level._effect["sw_rog_strike_big_tail"] = loadfx( "vfx/moments/skyway/sw_rog_strike_big_tail" );
level._effect["vfx_heli_dust_default_cheap"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap" );
level._effect["vfx_heli_dust_default_cheap_bank"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap_bank" );
level._effect["vfx_heli_dust_default_cheap_bank_lg"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap_bank_lg" );
level._effect["fx_splash_carrier_side_xlg"] = loadfx( "fx/maps/carrier/fx_splash_carrier_side_xlg" );
level._effect["drone_tracer"] = loadfx( "fx/_requests/homecoming/drone_tracer" );
common_scripts\utility::flag_init( "exterior_effects_on" );
common_scripts\utility::flag_init( "exterior_effects_off" );
common_scripts\utility::flag_init( "vista_effects_on" );
if ( !getdvarint( "r_reflectionProbeGenerate" ) )
{
maps\createfx\carrier_fx::main();
maps\createfx\carrier_sound::main();
}
thread exterior_effects();
thread interior_effects();
thread ally_ships();
thread land_aa();
thread enemy_land_missile();
thread treadfx_override_aas();
thread treadfx_override_nh90();
thread treadfx_override_y_8_gunship();
thread treadfx_override_silenthawk();
}
treadfx_override_aas()
{
level._vehicle_effect["script_vehicle_aas72x"]["default"] = level._effect["vfx_heli_dust_default_cheap"];
level._vehicle_effect["script_vehicle_aas72x"]["default_bank"] = level._effect["vfx_heli_dust_default_cheap_bank"];
level._vehicle_effect["script_vehicle_aas72x"]["default_bank_lg"] = level._effect["vfx_heli_dust_default_cheap_bank_lg"];
}
treadfx_override_nh90()
{
var_0 = "fx/misc/blank";
maps\_treadfx::setallvehiclefx( "script_vehicle_nh90", var_0 );
}
treadfx_override_y_8_gunship()
{
var_0 = "fx/misc/blank";
maps\_treadfx::setallvehiclefx( "script_vehicle_y_8_gunship", var_0 );
}
treadfx_override_silenthawk()
{
level._vehicle_effect["script_vehicle_silenthawk"]["default"] = level._effect["vfx_heli_dust_default"];
level._vehicle_effect["script_vehicle_silenthawk"]["default_bank"] = level._effect["vfx_heli_dust_default_bank"];
level._vehicle_effect["script_vehicle_silenthawk"]["default_bank_lg"] = level._effect["vfx_heli_dust_default_bank_lg"];
}
fx_init()
{
setsaveddvar( "fx_alphathreshold", 9 );
thread defend_zodiac_fx();
thread defend_sparrow_fx();
}
exterior_effects()
{
for (;;)
{
common_scripts\utility::flag_wait( "exterior_effects_on" );
common_scripts\utility::exploder( 5501 );
common_scripts\utility::flag_clear( "exterior_effects_on" );
common_scripts\utility::flag_wait( "exterior_effects_off" );
maps\_utility::stop_exploder( 5501 );
common_scripts\utility::flag_clear( "exterior_effects_off" );
}
}
interior_effects()
{
for (;;)
{
common_scripts\utility::flag_wait( "exterior_effects_off" );
common_scripts\utility::exploder( 5502 );
common_scripts\utility::flag_clear( "exterior_effects_off" );
common_scripts\utility::flag_wait( "exterior_effects_on" );
maps\_utility::stop_exploder( 5502 );
common_scripts\utility::flag_clear( "exterior_effects_on" );
}
}
ally_ships()
{
common_scripts\utility::flag_wait( "vista_effects_on" );
level.vert_missile_wait_min = 6;
level.vert_missile_wait_max = 10;
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_01", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_02", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_03", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_04", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_05", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_01", "fx_ship_missile_vert_01_dest", "defend_sparrow_platform", 11000, 6 );
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_02", "fx_ship_missile_vert_02_dest", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_03", "fx_ship_missile_vert_03_dest", "defend_sparrow_platform" );
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_04", "fx_ship_missile_vert_04_dest", "defend_sparrow_platform" );
common_scripts\utility::flag_wait( "defend_zodiac" );
level.vert_missile_wait_min = 16;
level.vert_missile_wait_max = 24;
}
ship_shoot_loop( var_0, var_1 )
{
level endon( var_1 );
var_2 = common_scripts\utility::getstruct( var_0, "targetname" );
for (;;)
{
var_2 thread ship_shoot();
wait( randomfloatrange( 5, 15 ) );
}
}
ship_shoot()
{
var_0 = common_scripts\utility::spawn_tag_origin();
var_0.origin = self.origin;
var_0.angles = self.angles + ( 0, -90, 0 );
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), var_0, "tag_origin" );
wait 3;
maps\_utility::deleteent( var_0 );
}
cleanup_missile_fx( var_0 )
{
self endon( "death" );
level waittill( var_0 );
if ( isdefined( self ) )
{
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), self, "tag_origin" );
maps\_utility::deleteent( self );
}
}
ship_shoot_vert_missile_loop( var_0, var_1, var_2, var_3, var_4, var_5 )
{
level endon( var_2 );
if ( isdefined( var_5 ) )
level endon( var_5 );
var_6 = common_scripts\utility::getstruct( var_0, "targetname" );
for (;;)
{
if ( randomint( 100 ) > 75 )
{
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
wait 1;
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
}
else
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
wait( randomfloatrange( level.vert_missile_wait_min, level.vert_missile_wait_max ) );
}
}
ship_shoot_vert_missile( var_0, var_1, var_2, var_3 )
{
var_4 = common_scripts\utility::spawn_tag_origin();
var_4.origin = self.origin;
var_4.angles = self.angles;
var_5 = common_scripts\utility::getstructarray( var_0, "targetname" );
var_6 = var_5[randomint( var_5.size )];
var_7 = randomintrange( 15000, 18000 );
var_8 = randomintrange( 13, 15 );
if ( isdefined( var_2 ) )
var_7 = var_2;
if ( isdefined( var_3 ) )
var_8 = var_3;
if ( var_5.size == 0 )
return;
if ( isdefined( var_1 ) )
var_4 thread cleanup_vert_missile_fx( var_1 );
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
var_4 maps\carrier_code::move_arc( var_4.origin, var_6.origin, var_7, var_8, ( 180, 0, 0 ) );
if ( isdefined( var_4 ) )
{
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
var_4.angles = ( 0, 0, 0 );
playfx( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_impact" ), var_4.origin );
maps\_utility::deleteent( var_4 );
}
}
cleanup_vert_missile_fx( var_0 )
{
self endon( "death" );
level waittill( var_0 );
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), self, "tag_origin" );
if ( isdefined( self ) )
maps\_utility::deleteent( self );
}
land_aa()
{
common_scripts\utility::flag_wait( "vista_effects_on" );
thread playfx_targetname_endon( "fx_land_aa", "vfx_antiair_runner", "defend_zodiac_finished" );
}
enemy_land_missile()
{
common_scripts\utility::flag_wait( "vista_effects_on" );
level.land_vert_missile_wait_min = 30;
level.land_vert_missile_wait_max = 50;
if ( !isdefined( level.land_missiles ) )
level.land_missiles = [];
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_01", "fx_shore_missile_vert_01_dest", "defend_sparrow_platform", 11000 );
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_02", "fx_shore_missile_vert_02_dest", "defend_sparrow_platform", 11000 );
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_03", "fx_shore_missile_vert_03_dest", "defend_sparrow_platform", 11000 );
}
land_shoot_vert_missile_loop( var_0, var_1, var_2, var_3, var_4, var_5 )
{
level endon( var_2 );
if ( isdefined( var_5 ) )
level endon( var_5 );
var_6 = common_scripts\utility::getstruct( var_0, "targetname" );
for (;;)
{
if ( isdefined( level.player.using_depth_charge ) && level.player.using_depth_charge )
level.player waittill( "depth_charge_exit" );
if ( randomint( 100 ) > 75 )
{
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
wait 2;
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
}
else
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
wait( randomfloatrange( level.land_vert_missile_wait_min, level.land_vert_missile_wait_max ) );
}
}
land_shoot_vert_missile( var_0, var_1, var_2, var_3 )
{
var_4 = common_scripts\utility::spawn_tag_origin();
var_4.origin = self.origin;
var_4.angles = self.angles;
level.land_missiles[level.land_missiles.size] = var_4;
var_5 = common_scripts\utility::getstructarray( var_0, "targetname" );
var_6 = var_5[randomint( var_5.size )];
var_7 = randomintrange( 15000, 18000 );
var_8 = randomintrange( 13, 15 );
if ( isdefined( var_2 ) )
var_7 = var_2;
if ( isdefined( var_3 ) )
var_8 = var_3;
if ( var_5.size == 0 )
return;
if ( isdefined( var_1 ) )
var_4 thread cleanup_land_vert_missile_fx( var_1 );
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
var_4 maps\carrier_code::move_arc( var_4.origin, var_6.origin, var_7, var_8, ( 180, 0, 0 ) );
if ( isdefined( var_4 ) )
{
level.land_missiles = common_scripts\utility::array_remove( level.land_missiles, var_4 );
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
var_4.angles = ( 0, 0, 0 );
playfx( common_scripts\utility::getfx( "vfx_lrg_air_exp" ), var_4.origin );
maps\_utility::deleteent( var_4 );
}
}
cleanup_land_vert_missile_fx( var_0 )
{
self endon( "death" );
level waittill( var_0 );
level.land_missiles = common_scripts\utility::array_remove( level.land_missiles, self );
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), self, "tag_origin" );
if ( isdefined( self ) )
maps\_utility::deleteent( self );
}
defend_zodiac_fx()
{
thread dz_enemy_destroyer_mortars();
thread dz_osprey_missiles();
thread dz_osprey_fed_destroyer();
}
dz_enemy_destroyer_mortars()
{
common_scripts\utility::flag_wait( "defend_zodiac_wave_01" );
var_0 = "defend_zodiac_finished";
level endon( var_0 );
var_1 = [ "dz_enemy_mortar_01_dest_01", "dz_enemy_mortar_01_dest_02", "dz_enemy_mortar_01_dest_03", "dz_enemy_mortar_01_dest_04" ];
var_2 = common_scripts\utility::getstruct( "dz_enemy_mortar_01", "targetname" );
var_3 = common_scripts\utility::getstructarray( "dz_enemy_mortar_01_dest", "targetname" );
for (;;)
{
var_4 = var_1[randomint( var_1.size )];
var_5 = common_scripts\utility::getstruct( var_4, "targetname" );
screenshake( var_5.origin, 3.5, 2, 2.5, 2, 0, 2, 10000, 5, 2, 7, 2.6 );
level.player playrumbleonentity( "heavy_1s" );
thread common_scripts\utility::play_sound_in_space( "exp_armor_vehicle", var_5.origin );
wait( randomfloatrange( 8, 14 ) );
}
}
dz_osprey_missiles()
{
}
dz_osprey_fed_destroyer()
{
level.player waittill( "using_depth_charge" );
foreach ( var_1 in level.fed_destroyer_fx_guns )
var_1 thread fed_destroyer_gun();
}
fed_destroyer_gun()
{
level.player endon( "depth_charge_exit" );
level endon( "stop_fed_destroyer_guns" );
for (;;)
{
playfx( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), self.origin, anglestoforward( self.angles ) );
wait( randomfloatrange( 1, 3 ) );
}
}
defend_sparrow_fx()
{
thread defend_sparrow_ships();
}
defend_sparrow_ships()
{
level endon( "defend_sparrow_finished" );
common_scripts\utility::flag_wait( "defend_sparrow_start" );
for (;;)
{
var_0 = common_scripts\utility::getstructarray( "defend_sparrow_ship_missiles", "targetname" );
foreach ( var_2 in var_0 )
{
playfx( common_scripts\utility::getfx( "battleship_flash_large_withmissile" ), var_2.origin, anglestoforward( var_2.angles ) );
wait( randomfloatrange( 2, 4 ) );
}
}
}
playfx_targetname_endon( var_0, var_1, var_2, var_3 )
{
var_4 = common_scripts\utility::getstructarray( var_0, "targetname" );
foreach ( var_6 in var_4 )
{
var_7 = var_6.angles;
if ( isdefined( var_3 ) )
var_7 = var_3;
if ( !isdefined( var_7 ) )
var_7 = ( 0, 0, 0 );
thread playfx_endon( common_scripts\utility::getfx( var_1 ), var_6.origin, var_7, var_2 );
}
}
playfx_endon( var_0, var_1, var_2, var_3 )
{
var_4 = common_scripts\utility::spawn_tag_origin();
var_4.origin = var_1;
var_4.angles = var_2;
playfxontag( var_0, var_4, "tag_origin" );
common_scripts\utility::flag_wait( var_3 );
stopfxontag( var_0, var_4, "tag_origin" );
var_4 delete();
}
handle_jet1_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
self waittillmatch( "single anim", "fx_body_1_skid_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_wing_left_skid1_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_wing_tip_left_skid_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_body_2_skid_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_body_1_skid_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_body_3_skid_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
self waittillmatch( "single anim", "fx_wing_left_skid1_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_wing_left_skid2_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_wing_tip_left_skid_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_wing_left_skid2_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_body_2_skid_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_body_3_skid_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
}
handle_jet2_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
self waittillmatch( "single anim", "fx_body_1_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_wing_left_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_body_2_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_wing_tip_left_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_body_3_start" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
self waittillmatch( "single anim", "slow_down" );
self waittillmatch( "single anim", "fx_wing_tip_left_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_wing_left_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_body_1_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_body_2_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_body_3_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
}
handle_jet3_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
}
handle_jet11_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
self waittillmatch( "single anim", "fx_body_1_contact" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_body_2_contact" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_wing_tip_left_contact" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_body_2_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
self waittillmatch( "single anim", "fx_wing_tip_left_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
self waittillmatch( "single anim", "fx_wing_left_contact" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
self waittillmatch( "single anim", "fx_body_1_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_wing_left_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
}
handle_jet12_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
self waittillmatch( "single anim", "fx_body_1_contact" );
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
self waittillmatch( "single anim", "fx_body_1_stop" );
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
}
handle_jet20_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
}
handle_radar_dish_fx()
{
self waittillmatch( "single anim", "skid_start" );
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_3" );
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_2" );
self waittillmatch( "single anim", "skid_stop" );
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_3" );
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_2" );
}
handle_antenna_fx()
{
self waittillmatch( "single anim", "impact_deck2" );
common_scripts\utility::exploder( 8001 );
}
handle_exploding_heli_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
playfxontag( level._effect["vfx_exp_silenthawk_deck"], self, "tag_fx_body_1" );
playfxontag( level._effect["vfx_exp_silenthawk_deck_trail"], self, "tag_fx_nose_1" );
common_scripts\utility::exploder( 7001 );
}
handle_onplayer_debris()
{
var_0 = spawn( "script_model", self.origin );
var_0 setmodel( "tag_origin" );
var_0 linkto( self );
playfxontag( common_scripts\utility::getfx( "vfx_post_impact_debris" ), var_0, "tag_origin" );
level.antenna waittillmatch( "single anim", "impact_deck2" );
stopfxontag( common_scripts\utility::getfx( "vfx_post_impact_debris" ), var_0, "tag_origin" );
}
handle_jet_launch_fx()
{
self waittillmatch( "single anim", "engine_on" );
playfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_left" );
playfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_right" );
self waittillmatch( "single anim", "engine_launch" );
playfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_left" );
playfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_right" );
playfxontag( level._effect["vfx_f18_catapult_launch"], self, "tag_origin" );
self waittillmatch( "single anim", "engine_off" );
if ( isdefined( self ) )
{
stopfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_left" );
stopfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_right" );
stopfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_left" );
stopfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_right" );
}
}
handle_zodiac_propeller()
{
self endon( "death" );
self endon( "reached_dynamic_path_end" );
thread handle_zodiac_propeller_end();
playfxontag( level._effect["vfx_zodiac_propeller_fast"], self, "TAG_FX_LF" );
}
handle_zodiac_splash()
{
self endon( "death" );
self endon( "reached_dynamic_path_end" );
for (;;)
{
self waittill( "impact_front_both" );
playfxontag( level._effect["vfx_zodiac_water_splash"], self, "TAG_WHEEL_FRONT_RIGHT" );
playfxontag( level._effect["vfx_zodiac_water_splash"], self, "TAG_WHEEL_FRONT_LEFT" );
}
}
handle_zodiac_propeller_end()
{
common_scripts\utility::waittill_any( "death", "reached_dynamic_path_end" );
if ( isdefined( self ) )
stopfxontag( level._effect["vfx_zodiac_propeller_fast"], self, "TAG_FX_LF" );
}
handle_sliding_osprey_fx( var_0 )
{
common_scripts\utility::flag_wait( var_0 );
self waittillmatch( "single anim", "front_fx1_contact" );
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_front_fx1" );
self waittillmatch( "single anim", "front_fx1_stop" );
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_front_fx1" );
}