// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool a10_precache() { precacherumble( "ac130_25mm_fire" ); level._effect["a10_muzzle_flash"] = loadfx( "fx/muzzleflashes/a10_muzzle_flash" ); level._effect["a10_shells"] = loadfx( "fx/shellejects/a10_shell" ); level._effect["a10_impact"] = loadfx( "fx/explosions/a10_explosion" ); } a10_spawn_funcs() { thread a10_gun_dives(); thread mig29_gun_dives(); } a10_gun_dives() { maps\_utility::array_spawn_function_noteworthy( "a10_gun", ::setup_a10_waits ); } mig29_gun_dives() { } a10_missile_dives() { maps\_utility::array_spawn_function_noteworthy( "a10_missile", ::setup_a10_waits ); } mig29_missile_dives() { maps\_utility::array_spawn_function_noteworthy( "mig29_missile", ::setup_mig29_waits ); } setup_a10_waits() { maps\_vehicle::godon(); self setcontents( 0 ); if ( isdefined( self.script_noteworthy ) ) { thread wait_kill_me(); if ( self.script_noteworthy == "a10_gun" ) { thread a10_wait_start_firing(); thread a10_wait_stop_firing(); } else if ( self.script_noteworthy == "a10_missile" ) thread a10_wait_fire_missile(); } } setup_mig29_waits() { maps\_vehicle::godon(); self setcontents( 0 ); if ( isdefined( self.script_noteworthy ) ) { thread wait_kill_me( "mig29" ); if ( self.script_noteworthy == "mig29_gun" ) { thread mig29_wait_start_firing(); thread mig29_wait_stop_firing(); } else if ( self.script_noteworthy == "mig29_missile" ) thread mig29_wait_fire_missile(); } } a10_wait_start_firing() { self endon( "death" ); maps\_utility::ent_flag_init( "start_firing" ); maps\_utility::ent_flag_wait( "start_firing" ); maps\_utility::ent_flag_clear( "start_firing" ); thread a10_30mm_fire(); if ( isdefined( self.script_parameters ) ) { switch ( self.script_parameters ) { case "bridge_enemy_a10_gun_dive_2": foreach ( var_1 in level.enemytanks ) { if ( isdefined( var_1.script_noteworthy ) && isalive( var_1 ) && var_1.script_noteworthy == "bridge_enemy_tank" ) var_1 thread maps\skyway_code::random_wait_and_kill( 1.0, 2.0 ); } } } } mig29_wait_start_firing() { self endon( "death" ); maps\_utility::ent_flag_init( "start_firing" ); maps\_utility::ent_flag_wait( "start_firing" ); maps\_utility::ent_flag_clear( "start_firing" ); thread mig29_fire(); } a10_wait_stop_firing() { self endon( "death" ); maps\_utility::ent_flag_init( "stop_firing" ); maps\_utility::ent_flag_wait( "stop_firing" ); maps\_utility::ent_flag_clear( "stop_firing" ); } mig29_wait_stop_firing() { self endon( "death" ); maps\_utility::ent_flag_init( "stop_firing" ); maps\_utility::ent_flag_wait( "stop_firing" ); maps\_utility::ent_flag_clear( "stop_firing" ); } a10_wait_fire_missile() { self endon( "death" ); maps\_utility::ent_flag_init( "fire_missile" ); maps\_utility::ent_flag_wait( "fire_missile" ); if ( isdefined( self.script_parameters ) ) { if ( self.script_parameters == "sat_array_a10_missile_dive_1" ) { foreach ( var_1 in level.enemytanks ) { if ( isdefined( var_1.script_noteworthy ) && !var_1 maps\_vehicle_code::is_corpse() && var_1.script_noteworthy == "sat_array_enemy_01" ) { thread a10_fire_missiles( var_1, 1 ); wait 0.2; } } } else if ( self.script_parameters == "crash_site_a10_missile_dive_1" ) { foreach ( var_1 in level.crash_site_background_enemies ) { if ( isdefined( var_1.script_noteworthy ) && !var_1 maps\_vehicle_code::is_corpse() && ( var_1.script_noteworthy == "crash_site_background_enemy_01" || var_1.script_noteworthy == "crash_site_background_enemy_02" ) ) { thread a10_fire_missiles( var_1, 1 ); wait 0.2; } } } } else thread a10_fire_missiles(); maps\_utility::ent_flag_clear( "fire_missile" ); } mig29_wait_fire_missile() { self endon( "death" ); maps\_utility::ent_flag_init( "fire_missile" ); maps\_utility::ent_flag_wait( "fire_missile" ); if ( isdefined( self.script_parameters ) ) { if ( self.script_parameters == "crash_site_mig29_gun_dive_1" ) { foreach ( var_1 in level.allytanks ) { if ( isdefined( var_1.script_friendname ) && !var_1 maps\_vehicle_code::is_corpse() && ( var_1.script_friendname == "Boa" || var_1.script_friendname == "Banshee" || var_1.script_friendname == "Bullfrog" ) ) { thread mig29_fire_missiles( var_1 ); wait 0.2; } } } else if ( self.script_parameters == "crash_site_mig29_gun_dive_2" ) { if ( isdefined( level.crash_site_a10_missile_dive_1 ) && !level.crash_site_a10_missile_dive_1 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.crash_site_a10_missile_dive_1, 1 ); } } else if ( self.script_parameters == "crash_site_mig29_gun_dive_3" ) { if ( isdefined( level.crash_site_a10_gun_dive_1 ) && !level.crash_site_a10_gun_dive_1 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.crash_site_a10_gun_dive_1, 1 ); } } else if ( self.script_parameters == "intro_mig29_missile_c17_01" ) { if ( isdefined( level.crashedc17_missile_org ) ) thread mig29_fire_missiles( level.crashedc17_missile_org, 1 ); } else if ( self.script_parameters == "intro_mig29_missile_c17_02" ) { foreach ( var_1 in level.intro_allies_killed_by_mig ) { thread mig29_fire_missiles( var_1 ); wait 0.2; } } else if ( self.script_parameters == "air_strip_ambient_mig29_missile_dive_1" ) { if ( isdefined( level.air_strip_ambient_a10_gun_dive_1 ) && !level.air_strip_ambient_a10_gun_dive_1 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.air_strip_ambient_a10_gun_dive_1, 1 ); } } else if ( self.script_parameters == "air_strip_ambient_mig29_missile_dive_2" ) { if ( isdefined( level.air_strip_ambient_a10_gun_dive_2 ) && !level.air_strip_ambient_a10_gun_dive_2 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.air_strip_ambient_a10_gun_dive_2, 1 ); } } else if ( self.script_parameters == "air_strip_ambient_mig29_missile_dive_3" ) { if ( isdefined( level.air_strip_ambient_a10_gun_dive_3 ) && !level.air_strip_ambient_a10_gun_dive_3 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.air_strip_ambient_a10_gun_dive_3, 1 ); } } else if ( self.script_parameters == "base_array_ambient_mig29_missile_dive_1" ) { if ( isdefined( level.base_array_ambient_a10_gun_dive_1 ) && !level.base_array_ambient_a10_gun_dive_1 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.base_array_ambient_a10_gun_dive_1, 1 ); } } else if ( self.script_parameters == "base_array_ambient_mig29_missile_dive_2" ) { if ( isdefined( level.base_array_ambient_a10_gun_dive_2 ) && !level.base_array_ambient_a10_gun_dive_2 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.base_array_ambient_a10_gun_dive_2, 1 ); } } else if ( self.script_parameters == "base_array_ambient_mig29_missile_dive_3" ) { if ( isdefined( level.base_array_ambient_a10_gun_dive_3 ) && !level.base_array_ambient_a10_gun_dive_3 maps\_vehicle_code::is_corpse() ) { self.kill_target = 1; thread mig29_fire_missiles( level.base_array_ambient_a10_gun_dive_3, 1 ); } } } else thread mig29_fire_missiles(); maps\_utility::ent_flag_clear( "fire_missile" ); } a10_missile_set_target( var_0 ) { var_0 endon( "death" ); wait 0.2; self missile_settargetent( var_0 ); if ( !var_0 maps\skyway_code::istank() && isdefined( var_0.godmode ) && var_0.godmode == 1 ) var_0 maps\_vehicle::godoff(); self waittill( "death" ); } mig29_missile_set_target( var_0 ) { var_0 endon( "death" ); wait 0.2; self missile_settargetent( var_0 ); if ( !var_0 maps\skyway_code::istank() && isdefined( var_0.godmode ) && var_0.godmode == 1 ) var_0 maps\_vehicle::godoff(); self waittill( "death" ); } a10_fire_missiles( var_0, var_1 ) { var_0 endon( "death" ); } mig29_fire_missiles( var_0, var_1 ) { var_0 endon( "death" ); } monitor_missile_distance( var_0, var_1, var_2 ) { var_1 endon( "death" ); while ( isdefined( self ) && isdefined( var_1 ) && distancesquared( self.origin, var_1.origin ) > var_0 ) wait 0.05; if ( !isdefined( var_1 ) ) return; if ( isdefined( self ) ) { playfx( level._effect["vfx_exp_sraam_no_missiles"], self.origin, anglestoforward( self.angles ) ); self delete(); wait 0.1; } if ( isdefined( var_2.kill_target ) && var_2.kill_target == 1 ) { if ( !isdefined( var_1 ) ) return; if ( var_1 maps\_vehicle::isvehicle() ) var_1 maps\_vehicle::godoff(); wait 0.25; if ( isdefined( var_1 ) ) var_1 delete(); } else { if ( !isdefined( var_1 ) ) return; if ( isdefined( level.crashedc17_missile_org ) && var_1 == level.crashedc17_missile_org ) return; return; } } a10_30mm_fire() { self endon( "death" ); self endon( "stop_firing" ); if ( isdefined( self.script_parameters ) && self.script_parameters == "no_magic_bullet" ) self.no_magic_bullet = 1; for (;;) { var_0 = anglestoforward( self.angles ); var_1 = self gettagorigin( "tag_gun" ); var_2 = var_1 + var_0 * 999999999; playfxontag( level._effect["a10_muzzle_flash"], self, "tag_gun" ); earthquake( 0.2, 0.05, self.origin, 1000 ); wait 0.1; } } mig29_fire() { self endon( "death" ); self endon( "stop_firing" ); if ( isdefined( self.script_parameters ) && self.script_parameters == "no_magic_bullet" ) self.no_magic_bullet = 1; for (;;) { var_0 = anglestoforward( self.angles ); var_1 = self gettagorigin( "tag_flash" ); var_2 = var_1 + var_0 * 999999999; playfxontag( level._effect["a10_muzzle_flash"], self, "tag_flash" ); earthquake( 0.2, 0.05, self.origin, 1000 ); wait 0.1; } } mig29_afterburners_node_wait() { self endon( "death" ); maps\_utility::ent_flag_init( "start_afterburners" ); maps\_utility::ent_flag_wait( "start_afterburners" ); thread vehicle_scripts\_mig29::playafterburner(); } wait_kill_me( var_0 ) { maps\_utility::ent_flag_init( "kill_me" ); maps\_utility::ent_flag_wait( "kill_me" ); if ( !isdefined( self ) ) return; if ( isdefined( var_0 ) && var_0 == "mig29" ) { stopfxontag( level._effect["contrail"], self, "tag_right_wingtip" ); stopfxontag( level._effect["contrail"], self, "tag_left_wingtip" ); } wait 0.1; if ( !isdefined( self ) ) return; if ( !isdefined( self ) ) return; if ( maps\_vehicle::isvehicle() ) { maps\_vehicle::godoff(); self kill(); } wait 0.25; if ( isdefined( self ) ) self delete(); }