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

800 lines
29 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
air_strip_secured_init()
{
level.start_point = "air_strip_secured";
setdvar( "debug_sat_view_pip", "1" );
objective_add( maps\_utility::obj( "rendesvouz" ), "invisible", &"SATFARM_OBJ_RENDESVOUZ" );
objective_state_nomessage( maps\_utility::obj( "rendesvouz" ), "done" );
objective_add( maps\_utility::obj( "reach_air_strip" ), "invisible", &"SATFARM_OBJ_REACH_AIR_STRIP" );
objective_state_nomessage( maps\_utility::obj( "reach_air_strip" ), "done" );
objective_add( maps\_utility::obj( "air_strip_defenses" ), "invisible", &"SATFARM_OBJ_DESTROY_AIR_STRIP_DEFENSES" );
objective_state_nomessage( maps\_utility::obj( "air_strip_defenses" ), "done" );
maps\satfarm_code::kill_spawners_per_checkpoint( "air_strip_secured" );
}
air_strip_secured_main()
{
if ( level.start_point == "air_strip_secured" )
maps\satfarm_code::spawn_player_checkpoint( "air_strip_secured" );
maps\satfarm_code::kill_spawners_per_checkpoint( "air_strip_secured" );
level.start_point = "air_strip_secured";
maps\satfarm_code::spawn_allies();
if ( !isdefined( level.playertank ) )
{
}
else
{
}
thread air_strip_secured_begin();
common_scripts\utility::flag_wait( "air_strip_secured_end" );
}
air_strip_secured_begin()
{
var_0 = getaiarray( "axis" );
thread maps\_utility::ai_delete_when_out_of_sight( var_0, 2048 );
var_1 = maps\_utility::getvehiclearray();
foreach ( var_3 in var_1 )
{
if ( isdefined( var_3.script_team ) && var_3.script_team == "axis" )
var_3 thread maps\satfarm_code::enemytank_cleanup();
}
if ( isdefined( level.air_strip_m880s ) && level.air_strip_m880s.size > 0 )
{
foreach ( var_6 in level.air_strip_m880s )
{
if ( isdefined( var_6 ) )
var_6 delete();
}
}
if ( isdefined( level.air_strip_m880_corpses ) && level.air_strip_m880_corpses.size > 0 )
{
foreach ( var_9 in level.air_strip_m880_corpses )
{
if ( isdefined( var_9 ) )
var_9 delete();
}
}
var_11 = getent( "hangar_door_breakable", "targetname" );
if ( isdefined( var_11 ) )
var_11 delete();
thread air_strip_victory();
maps\_utility::autosave_by_name( "air_strip_secured" );
}
air_strip_victory()
{
var_0 = common_scripts\utility::getstructarray( "green_smoke_structs", "targetname" );
foreach ( var_2 in var_0 )
{
if ( level.start_point != "air_strip_secured" )
wait( randomfloatrange( 0.1, 2.0 ) );
playfx( level._effect["signal_smoke_green"], var_2.origin );
}
if ( level.start_point != "air_strip_secured" )
wait 1.0;
wait 1.0;
level.player thread air_strip_to_chopper();
}
victory_choppers_land( var_0 )
{
var_1 = maps\_vehicle::vehicle_get_riders_by_group( "passengers" );
self waittill( "unloaded" );
common_scripts\utility::array_thread( var_1, maps\satfarm_code::send_to_volume_and_delete, var_0 );
common_scripts\utility::flag_wait( "player_landed" );
foreach ( var_3 in var_1 )
{
if ( isdefined( var_3 ) )
var_3 delete();
}
if ( isdefined( self ) )
self delete();
}
ally_chopper_unload()
{
common_scripts\utility::flag_wait( "enable_ghost2_rappel" );
level.ally_littlebird_1 thread littlebird_hover();
common_scripts\utility::flag_wait( "enable_player_rappel" );
common_scripts\utility::flag_wait( "player_landed" );
wait 1;
common_scripts\utility::flag_set( "ghost2_landed" );
var_0 = getent( "control_room_balcony_clip", "targetname" );
var_0 notsolid();
var_0 connectpaths();
common_scripts\utility::flag_wait( "ghost2_littlebird_path_end" );
level.ally_littlebird_1 delete();
}
littlebird_hover()
{
self setgoalyaw( self.angles[1] );
self settargetyaw( self.angles[1] );
self sethoverparams( 0, 0, 0 );
self setmaxpitchroll( 0, 0 );
self setvehgoalpos( self.origin, 1 );
self vehicle_setspeedimmediate( 0 );
self vehicle_teleport( self.origin, self.angles );
}
air_strip_to_chopper()
{
common_scripts\utility::flag_set( "air_strip_secured_begin" );
if ( isdefined( level.hintelement ) )
level.hintelement maps\_hud_util::destroyelem();
setsaveddvar( "cg_cinematicFullScreen", "1" );
setsaveddvar( "cg_cinematicCanPause", "1" );
cinematicingame( "satfarm_transition_ghost" );
while ( cinematicgetframe() <= 1 )
common_scripts\utility::waitframe();
level.cinematic_started = 1;
if ( isdefined( level.playertank ) )
{
level.playertank maps\satfarm_code::dismount_tank( level.player, 0, undefined, undefined, 1 );
if ( isdefined( level.playertank ) )
{
level.playertank hide();
level.playertank setcontents( 0 );
}
}
level thread maps\satfarm_audio::overlord_trans1();
level.player freezecontrols( 1 );
level.player hideviewmodel();
level.player enableinvulnerability();
level.player disableweapons();
level.player disableoffhandweapons();
level.player setstance( "stand" );
level.player allowprone( 0 );
level.player allowcrouch( 0 );
level.player allowsprint( 0 );
level.player allowjump( 0 );
level.player.ignoreme = 1;
setsaveddvar( "ammoCounterHide", "1" );
setsaveddvar( "actionSlotsHide", "1" );
setsaveddvar( "compass", 0 );
setsaveddvar( "hud_showStance", 0 );
thread sat_view_ally_and_enemy_tanks();
thread sat_view_spawn_ally_choppers();
level.cinematic_over = undefined;
while ( iscinematicplaying() )
{
level.bink_current_time = cinematicgettimeinmsec();
level.bink_percentage = level.bink_current_time / 16000;
if ( level.bink_percentage >= 0.45 )
{
if ( !common_scripts\utility::flag( "spawn_sat_view_ally_choppers" ) )
common_scripts\utility::flag_set( "spawn_sat_view_ally_choppers" );
}
wait 0.05;
}
level.cinematic_over = 1;
level.player showviewmodel();
level.player.ignoreme = 0;
setsaveddvar( "cg_fov", 65 );
setsaveddvar( "cg_cinematicCanPause", "0" );
thread switch_to_ghost_intro_screen();
thread maps\_utility::autosave_by_name( "chopper_ride_in" );
common_scripts\utility::flag_set( "chopper_flyin_begin" );
level.player thread maps\_utility::vision_set_fog_changes( "satfarm_helicopter", 0.5 );
level.player_chopper_anim_struct = common_scripts\utility::getstruct( "player_chopper_anim_struct", "targetname" );
maps\_utility::array_spawn_function_targetname( "air_strip_secured_ambient_enemies_wave_1", ::air_strip_secured_ambient_enemies_setup );
level.air_strip_secured_ambient_enemies_wave_1 = maps\_utility::array_spawn_targetname( "air_strip_secured_ambient_enemies_wave_1", 1 );
var_0 = getent( "air_strip_secured_ac_unit_damage_brush", "targetname" );
var_0 setcandamage( 1 );
var_1 = common_scripts\utility::getstructarray( "air_strip_secured_ac_unit_damage_struct", "targetname" );
var_0 thread watch_damage_to_rooftop_destructibles( var_1, 250, "air_strip_secured_ambient_enemies_volume_3" );
var_2 = getent( "air_strip_secured_gas_tank_damage_brush", "targetname" );
var_2 setcandamage( 1 );
var_3 = common_scripts\utility::getstructarray( "air_strip_secured_gas_tank_damage_struct", "targetname" );
var_2 thread watch_damage_to_rooftop_destructibles( var_3, 300, "air_strip_secured_ambient_enemies_volume_1" );
thread chopper_drive_in_vo();
thread control_room_combat();
common_scripts\utility::flag_wait( "start_first_rpg" );
var_4 = common_scripts\utility::getstruct( "first_rpg_magicbullet_start", "targetname" );
var_5 = common_scripts\utility::getstruct( "first_rpg_magicbullet_end", "targetname" );
magicbullet( "rpg_straight", var_4.origin, var_5.origin );
common_scripts\utility::flag_wait( "start_rpg" );
var_4 = common_scripts\utility::getstruct( "rpg_magicbullet1_start", "targetname" );
var_5 = common_scripts\utility::getstruct( "rpg_magicbullet1_end", "targetname" );
magicbullet( "rpg_straight", var_4.origin, var_5.origin );
wait 0.5;
var_4 = common_scripts\utility::getstruct( "rpg_magicbullet2_start", "targetname" );
var_5 = common_scripts\utility::getstruct( "rpg_magicbullet2_end", "targetname" );
magicbullet( "rpg_straight", var_4.origin, var_5.origin );
common_scripts\utility::flag_wait( "enable_player_rappel" );
level.player_littlebird thread littlebird_hover();
wait 1.5;
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hsh_jumpadam" );
wait 0.5;
thread maps\_utility::display_hint( "HINT_JUMP" );
thread player_is_ignored();
thread player_jump_to_tower();
common_scripts\utility::flag_wait( "player_landed" );
if ( isdefined( level.player_littlebird ) )
level.player_littlebird delete();
thread allies_move_up_in_control_room();
common_scripts\utility::flag_wait( "control_room_enemies_dead" );
level.player disableinvulnerability();
common_scripts\utility::flag_set( "air_strip_secured_end" );
}
switch_to_ghost_intro_screen()
{
level.introscreen.lines = [];
level.introscreen.lines[0] = "";
level.introscreen.lines[1] = &"SATFARM_INTROSCREEN_GHOST_LINE_2";
level.introscreen.lines[2] = &"SATFARM_INTROSCREEN_GHOST_LINE_3";
level.introscreen.lines[3] = &"SATFARM_INTROSCREEN_GHOST_LINE_4";
maps\_introscreen::introscreen( 1 );
}
player_chopper_flyin_setup()
{
if ( isdefined( level.ps3 ) )
setsaveddvar( "r_znear", 10 );
level.player playerlinktodelta( level.player_littlebird, "tag_player1", 1, 80, 80, 7, 40, 1 );
var_0 = level.player_littlebird.mgturret[0];
level.player setplayerangles( ( 0, -90, 0 ) );
level.player_littlebird hidepart( "side_door_l_jnt" );
var_0 makeusable();
var_0 useby( level.player );
var_0 makeunusable();
level.player disableturretdismount();
thread maps\_minigun_viewmodel::player_viewhands_minigun( var_0, "viewhands_player_gs_stealth" );
var_0 thread maps\_minigun_viewmodel::show_hands( "viewhands_player_gs_stealth" );
level.friendlyfire_enable_attacker_owner_check = 1;
var_0.owner = level.player;
level.player freezecontrols( 1 );
while ( !isdefined( level.cinematic_over ) )
wait 0.05;
wait 1;
level.player freezecontrols( 0 );
}
watch_damage_to_rooftop_destructibles( var_0, var_1, var_2 )
{
self waittill( "damage" );
foreach ( var_4 in var_0 )
{
radiusdamage( var_4.origin, var_1, 500, 350 );
thread common_scripts\utility::play_sound_in_space( "satf_tank_death_player", self.origin );
}
foreach ( var_7 in level.air_strip_secured_ambient_enemies_wave_1 )
{
if ( isalive( var_7 ) )
{
if ( var_7.target == var_2 )
var_7 kill();
}
}
}
air_strip_secured_ambient_enemies_setup()
{
self endon( "death" );
self.base_accuracy = 0.01;
self.accuracy = 0.01;
self.health = 5;
self.favoriteenemy = level.player;
common_scripts\utility::flag_wait( "start_control_room_combat" );
self kill();
}
player_is_ignored()
{
wait 2;
if ( !common_scripts\utility::flag( "start_jump" ) )
level.player.ignoreme = 0;
}
player_jump_to_tower()
{
thread player_jump_check();
thread player_move_left_stick_check();
var_0 = maps\_utility::spawn_anim_model( "player_arms" );
var_0 hide();
level.player_chopper_anim_struct maps\_anim::anim_first_frame_solo( var_0, "satfarm_control_tower_player" );
var_1 = maps\_utility::spawn_anim_model( "chopper_turret" );
var_1 hide();
level.player_chopper_anim_struct maps\_anim::anim_first_frame_solo( var_1, "satfarm_control_tower_turret" );
common_scripts\utility::flag_wait( "start_jump" );
level thread maps\satfarm_audio::tower_jump();
level.player.ignoreme = 1;
level.player playerlinktoblend( var_0, "tag_player", 0.5 );
wait 0.5;
if ( isdefined( level.ps3 ) )
setsaveddvar( "r_znear", 4 );
level.player enableturretdismount();
level.player_littlebird.mgturret[0] maketurretinoperable();
level.player_littlebird.mgturret[0] setturretdismountorg( var_0 gettagorigin( "tag_player" ) );
level.player_littlebird.mgturret[0] useby( self );
level.player_littlebird.mgturret[0] turretfiredisable();
level.player_littlebird.mgturret[0] hide();
level.friendlyfire_enable_attacker_owner_check = undefined;
var_1 show();
level.player playerlinktoblend( var_0, "tag_player", 0.25 );
level.player playerlinktoabsolute( var_0, "tag_player" );
var_0 show();
level.player_chopper_anim_struct thread maps\_anim::anim_single_solo( var_1, "satfarm_control_tower_turret" );
level.player_chopper_anim_struct thread maps\_anim::anim_single_solo( var_0, "satfarm_control_tower_player" );
var_0 waittillmatch( "single anim", "glass_break" );
var_2 = getglass( "player_window" );
if ( !isglassdestroyed( var_2 ) )
destroyglass( var_2 );
wait 0.5;
level.player playrumbleonentity( "damage_light" );
wait 1.5;
level.player enableweapons();
level.player enableoffhandweapons();
var_0 waittillmatch( "single anim", "end" );
level.player allowprone( 1 );
level.player allowcrouch( 1 );
level.player allowsprint( 1 );
level.player allowjump( 1 );
level.player unlink();
var_0 delete();
var_1 delete();
setsaveddvar( "ammoCounterHide", "0" );
setsaveddvar( "actionSlotsHide", "0" );
setsaveddvar( "compass", 1 );
setsaveddvar( "hud_showStance", 1 );
common_scripts\utility::flag_set( "player_landed" );
maps\_utility::autosave_by_name( "jump_to_tower" );
level.player.ignoreme = 0;
thread maps\satfarm_tower::breach_setup();
wait 1;
level.player disableinvulnerability();
}
player_jump_check()
{
level endon( "start_jump" );
notifyoncommand( "playerjump", "+gostand" );
notifyoncommand( "playerjump", "+moveup" );
level.player waittill( "playerjump" );
common_scripts\utility::flag_set( "start_jump" );
}
player_move_left_stick_check()
{
level endon( "start_jump" );
for (;;)
{
var_0 = level.player getnormalizedmovement();
if ( var_0[0] > 0 )
{
common_scripts\utility::flag_set( "start_jump" );
break;
}
wait 0.05;
}
}
timer_on_player_jump()
{
level endon( "start_jump" );
wait 20;
common_scripts\utility::flag_set( "start_jump" );
}
allies_move_up_in_control_room()
{
common_scripts\utility::flag_wait_either( "player_has_left_control_room_balcony", "control_room_three_left" );
if ( common_scripts\utility::flag( "control_room_three_left" ) && !common_scripts\utility::flag( "player_landed" ) )
common_scripts\utility::flag_wait( "player_has_left_control_room_balcony" );
maps\_utility::activate_trigger_with_targetname( "move_allies_to_control_room_2" );
}
hint_jump_off()
{
return common_scripts\utility::flag( "start_jump" );
}
air_strip_secured_vo()
{
maps\satfarm_code::radio_dialog_add_and_go( "satfarm_bgr_overlordairstripissecure" );
wait 0.5;
maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_solidcopybadgeroneone" );
wait 0.5;
maps\satfarm_code::radio_dialog_add_and_go( "satfarm_cu3_supportontheway" );
wait 0.5;
maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_highvalueacquisition" );
}
chopper_drive_in_vo()
{
wait 1.5;
common_scripts\utility::flag_wait( "start_control_room_combat" );
maps\_utility::autosave_by_name( "chopper_ride_in_2" );
objective_add( maps\_utility::obj( "launch_missile" ), "current", &"SATFARM_OBJ_LAUNCH_MISSILE" );
wait 1;
common_scripts\utility::flag_set( "ghost1_start_firing" );
thread maps\_utility::set_team_bcvoice( "allies", "taskforce" );
maps\_utility::battlechatter_on( "allies" );
maps\_utility::flavorbursts_on( "allies" );
level.player thread maps\_utility::vision_set_fog_changes( "satfarm_helicopter_b", 1 );
}
control_room_combat()
{
wait 0.5;
maps\_utility::battlechatter_on( "axis" );
maps\_utility::array_spawn_function_targetname( "control_room_enemies", ::control_room_enemy_setup );
level.control_room_enemies = maps\_utility::array_spawn_targetname( "control_room_enemies", 1 );
wait 0.1;
thread control_room_threatbiasgroup( level.control_room_enemies );
thread maps\satfarm_code::ai_array_killcount_flag_set( level.control_room_enemies, 5, "spawn_control_room_enemies_wave_2" );
thread spawn_in_wave_2();
common_scripts\utility::flag_wait( "enable_player_rappel" );
maps\_utility::array_spawn_function_targetname( "control_room_enemies_upper", ::control_room_enemies_upper_setup );
var_0 = maps\_utility::array_spawn_targetname( "control_room_enemies_upper", 1 );
common_scripts\utility::flag_wait( "player_landed" );
thread maps\satfarm_tower::ambient_building_explosions( "breach_start" );
while ( level.control_room_enemies.size > 4 )
{
level.control_room_enemies = maps\_utility::array_removedead_or_dying( level.control_room_enemies );
wait 0.05;
}
var_1 = getent( "control_room_back_volume", "targetname" );
if ( !level.player istouching( var_1 ) )
{
var_2 = maps\_utility::array_spawn_targetname( "control_room_enemies_wave_3", 1 );
level.control_room_enemies = common_scripts\utility::array_combine( level.control_room_enemies, var_2 );
}
while ( level.control_room_enemies.size > 3 )
{
level.control_room_enemies = maps\_utility::array_removedead_or_dying( level.control_room_enemies );
wait 0.05;
}
common_scripts\utility::flag_set( "control_room_three_left" );
level.control_room_enemies = maps\_utility::array_removedead_or_dying( level.control_room_enemies );
var_1 = getent( "control_room_lower_volume", "targetname" );
foreach ( var_4 in level.control_room_enemies )
{
var_4 maps\_utility::set_fixednode_false();
var_4 cleargoalvolume();
var_4.health = 50;
var_4 setgoalvolumeauto( var_1 );
}
thread maps\satfarm_code::cleanup_enemies( "start_loading_bay_runners", level.control_room_enemies );
maps\_utility::waittill_dead_or_dying( level.control_room_enemies );
common_scripts\utility::flag_set( "control_room_enemies_dead" );
}
spawn_in_wave_2()
{
common_scripts\utility::flag_wait( "spawn_control_room_enemies_wave_2" );
maps\_utility::array_spawn_function_targetname( "control_room_enemies_wave_2", ::control_room_enemy_wave_2_setup );
var_0 = maps\_utility::array_spawn_targetname( "control_room_enemies_wave_2", 1 );
level.control_room_enemies = common_scripts\utility::array_combine( level.control_room_enemies, var_0 );
}
control_room_threatbiasgroup( var_0 )
{
createthreatbiasgroup( "ignore_group" );
createthreatbiasgroup( "control_room" );
level.player setthreatbiasgroup( "ignore_group" );
level.allies[0] setthreatbiasgroup( "ignore_group" );
foreach ( var_2 in var_0 )
{
if ( isdefined( var_2 ) && isalive( var_2 ) )
var_2 setthreatbiasgroup( "control_room" );
}
setignoremegroup( "ignore_group", "control_room" );
common_scripts\utility::flag_wait( "enable_player_rappel" );
level.player setthreatbiasgroup();
level.allies[0] setthreatbiasgroup();
createthreatbiasgroup( "new_group" );
level.player setthreatbiasgroup( "new_group" );
level.allies[0] setthreatbiasgroup( "new_group" );
setthreatbias( "new_group", "control_room", 200 );
}
control_room_enemy_setup()
{
self endon( "death" );
self.health = 50;
self.ignoreme = 1;
common_scripts\utility::flag_wait( "start_control_room_combat" );
wait 1;
self.ignoreme = 0;
if ( isdefined( self.script_noteworthy ) && self.script_noteworthy == "rooftop_rpgs" )
{
self.ignoreme = 1;
self.ignoreall = 1;
common_scripts\utility::flag_wait( "start_rpg" );
self.health = 5;
self.ignoreall = 0;
common_scripts\utility::flag_wait( "start_control_room_combat" );
wait( randomfloatrange( 0.3, 1.0 ) );
var_0 = common_scripts\utility::getstruct( "rooftop_rpg_magicbullet_start", "targetname" );
var_1 = self gettagorigin( "j_head" );
magicbullet( level.tower_redshirt.weapon, var_0.origin, var_1 );
wait 0.3;
magicbullet( level.tower_redshirt.weapon, var_0.origin, var_1 );
}
if ( isdefined( self.script_noteworthy ) && self.script_noteworthy == "control_room_runner_1" )
{
maps\_utility::magic_bullet_shield();
common_scripts\utility::flag_wait( "control_room_runner_1" );
maps\_utility::stop_magic_bullet_shield();
self.ignoreall = 1;
maps\_utility::set_fixednode_false();
var_2 = getent( "control_room_lower_volume", "targetname" );
self setgoalvolumeauto( var_2 );
self waittill( "goal" );
self.ignoreall = 0;
}
if ( isdefined( self.script_noteworthy ) && self.script_noteworthy == "control_room_runner_2" )
{
self.ignoreme = 1;
common_scripts\utility::flag_wait( "control_room_runner_2" );
self.ignoreme = 0;
self.ignoreall = 1;
maps\_utility::set_fixednode_false();
var_2 = getent( "control_room_lower_volume", "targetname" );
self setgoalvolumeauto( var_2 );
self waittill( "goal" );
self.ignoreall = 0;
}
if ( isdefined( self.script_noteworthy ) && self.script_noteworthy == "control_room_runner_3" )
{
maps\_utility::magic_bullet_shield();
common_scripts\utility::flag_wait( "control_room_runner_1" );
maps\_utility::stop_magic_bullet_shield();
common_scripts\utility::flag_wait( "control_room_runner_2" );
wait 1.25;
self.ignoreall = 1;
maps\_utility::set_fixednode_false();
var_2 = getent( "control_room_lower_volume", "targetname" );
self setgoalvolumeauto( var_2 );
self waittill( "goal" );
self.ignoreall = 0;
}
common_scripts\utility::flag_wait( "player_landed" );
var_2 = getent( "control_room_upper_volume", "targetname" );
if ( self istouching( var_2 ) )
{
wait( randomfloatrange( 0.3, 1.5 ) );
self kill();
}
}
control_room_enemy_wave_2_setup()
{
self endon( "death" );
if ( self.target == "control_room_lower_front_volume" )
maps\_utility::set_fixednode_false();
}
control_room_enemies_upper_setup()
{
self endon( "death" );
wait 0.5;
maps\_utility::magic_bullet_shield();
self.favoriteenemy = level.tower_redshirt;
common_scripts\utility::flag_wait( "player_landed" );
maps\_utility::stop_magic_bullet_shield();
wait 1;
self.favoriteenemy = undefined;
self clearenemy();
common_scripts\utility::flag_wait_any( "control_room_three_left", "player_leaving_control_room" );
self.ignoreall = 1;
wait( randomfloatrange( 0.3, 0.8 ) );
var_0 = getent( "upper_delete_volume", "targetname" );
self setgoalvolumeauto( var_0 );
for (;;)
{
if ( self istouching( var_0 ) )
break;
wait 0.05;
}
var_0 = getent( "upper_volume", "targetname" );
if ( level.player istouching( var_0 ) )
{
self.ignoreall = 0;
maps\_utility::player_seek_enable();
}
else
self delete();
}
remove_ally_tanks()
{
wait 2;
if ( isdefined( level.herotanks ) )
{
foreach ( var_1 in level.herotanks )
var_1 delete();
}
}
sat_view_ally_and_enemy_tanks()
{
thread remove_ally_tanks();
common_scripts\utility::flag_wait( "spawn_sat_view_ally_choppers" );
var_0 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "sat_view_ally_tanks" );
level.allytanks = common_scripts\utility::array_combine( level.allytanks, var_0 );
common_scripts\utility::array_thread( var_0, maps\satfarm_code::dumb_tank_shoot );
level.sat_view_enemy_tanks = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "sat_view_enemy_tanks" );
level.enemytanks = common_scripts\utility::array_combine( level.enemytanks, level.sat_view_enemy_tanks );
common_scripts\utility::array_thread( var_0, maps\satfarm_code::dumb_tank_shoot );
common_scripts\utility::flag_wait( "chopper_flyin_begin" );
wait 3;
var_1 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "victory_a10s" );
common_scripts\utility::flag_wait( "enable_player_rappel" );
var_2 = getentarray( "air_strip_secured_left_side_tanks", "script_noteworthy" );
foreach ( var_4 in var_2 )
{
if ( isdefined( var_4 ) )
var_4 delete();
}
common_scripts\utility::flag_wait( "player_landed" );
foreach ( var_4 in var_0 )
{
if ( isdefined( var_4 ) )
var_4 delete();
}
foreach ( var_4 in level.sat_view_enemy_tanks )
{
if ( isdefined( var_4 ) )
var_4 delete();
}
}
sat_view_spawn_ally_choppers()
{
common_scripts\utility::flag_wait( "spawn_sat_view_ally_choppers" );
level.player_littlebird = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "player_littlebird" );
level.allies[0] thread allies_ride_chopper( level.player_littlebird, "ghost1_start_firing" );
level.player_littlebird setmaxpitchroll( 5, 5 );
wait 0.05;
thread player_chopper_flyin_setup();
level.ally_littlebird_1 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "ally_littlebird_1" );
maps\_utility::array_spawn_function_targetname( "tower_redshirt", ::tower_redshirt_setup );
level.tower_redshirt = maps\_utility::spawn_targetname( "tower_redshirt", 1 );
level.tower_redshirt thread allies_ride_chopper( level.ally_littlebird_1, "ghost2_start_firing" );
level.ally_littlebird_1 thread ally_chopper_unload();
level.ally_littlebird_2 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "ally_littlebird_2" );
var_0 = getent( "air_strip_secured_delete_volume_1", "targetname" );
level.ally_littlebird_2 thread victory_choppers_land( var_0 );
level.ally_littlebird_3 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "ally_littlebird_3" );
var_0 = getent( "air_strip_secured_delete_volume_2", "targetname" );
level.ally_littlebird_3 thread victory_choppers_land( var_0 );
}
tower_redshirt_setup()
{
self endon( "death" );
self.animname = "merrick";
if ( !isdefined( self.magic_bullet_shield ) )
maps\_utility::magic_bullet_shield();
common_scripts\utility::flag_wait( "ghost2_littlebird_path_end" );
if ( isdefined( self.magic_bullet_shield ) )
maps\_utility::stop_magic_bullet_shield();
self delete();
}
allies_ride_chopper( var_0, var_1 )
{
if ( self.animname == "hesh" )
{
self linkto( var_0, "tag_detach_left", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_0 thread maps\_anim::anim_loop_solo( self, "little_bird_casual_idle_hesh", "stop_loop", "tag_detach_left" );
while ( !isdefined( level.cinematic_over ) )
wait 0.05;
var_0 notify( "stop_loop" );
var_0 maps\_anim::anim_single_solo( self, "satfarm_control_tower_intro_hesh_talk", "tag_detach_left" );
var_0 thread maps\_anim::anim_loop_solo( self, "little_bird_casual_idle_hesh", "stop_loop", "tag_detach_left" );
common_scripts\utility::flag_wait( var_1 );
var_0 notify( "stop_loop" );
var_0 maps\_anim::anim_single_solo( self, "satfarm_control_tower_transition_hesh", "tag_detach_left" );
var_0 thread maps\_anim::anim_loop_solo( self, "satfarm_control_tower_alert_hesh", "stop_loop", "tag_detach_left" );
common_scripts\utility::flag_wait( "start_jump" );
var_0 notify( "stop_loop" );
self unlink();
level.player_chopper_anim_struct thread maps\_anim::anim_single_solo( self, "satfarm_control_tower_hesh" );
self waittillmatch( "single anim", "glass_break" );
var_2 = getglass( "ghost1_window" );
if ( !isglassdestroyed( var_2 ) )
destroyglass( var_2 );
self waittillmatch( "single anim", "end" );
var_3 = getnode( "ghost1_control_room_node", "targetname" );
maps\_utility::set_goalradius( 16 );
self setgoalnode( var_3 );
maps\_utility::set_fixednode_true();
self waittill( "goal" );
maps\_utility::set_fixednode_false();
}
else
{
self linkto( var_0, "tag_detach_right", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_0 thread maps\_anim::anim_loop_solo( self, "little_bird_casual_idle_merrick", "stop_loop", "tag_detach_right" );
common_scripts\utility::flag_wait( var_1 );
var_0 notify( "stop_loop" );
var_0 maps\_anim::anim_single_solo( self, "satfarm_control_tower_transition_merrick", "tag_detach_right" );
var_0 thread maps\_anim::anim_loop_solo( self, "satfarm_control_tower_alert_merrick", "stop_loop", "tag_detach_right" );
}
}