nx1-gsc-dump/maps/nx_rocket_section_base_echo.gsc

327 lines
9.8 KiB
Plaintext

//****************************************************************************
// **
// Confidential - (C) Activision Publishing, Inc. 2010 **
// **
//****************************************************************************
// **
// Module: NX_ROCKET_SECTION_ **
// **
// Created: 7/13/2011 - **
// **
//****************************************************************************
#include maps\_utility;
#include common_scripts\utility;
#include maps\_anim;
#include maps\_vehicle;
//*******************************************************************
// *
//*******************************************************************
start()
{
// Turn off AA turret section smoke
maps\nx_rocket_util::pre_turret_event();
teleport_info = [];
teleport_info[ "ALLY_BAKER" ] = "start_default_ally_00";
teleport_info[ "ALLY_JENKINS" ] = "start_base_echo_ally_01";
teleport_info[ "ALLY_WILLIAMS" ] = "start_base_echo_ally_02";
maps\nx_rocket_util::squad_teleport( teleport_info );
level._player maps\_nx_utility::move_player_to_start_point( "start_base_echo_player" );
}
main()
{
level thread objective_follow( true );
level thread section_dialogue();
// Ambient FX for Fallen Rocket
thread maps\nx_rocket_fx::fallenrocket_fx();
thread maps\nx_rocket_fx::fallenrocket_fx_cleanup();
thread maps\_utility::set_ambient( "nx_rocket_ext" );
thread ec_turret_sfx();
flag_set( "regrouped_with_squad" );
// level._player thread maps\nx_rocket_util::player_ledge_walk( GetEnt( "base_echo_ledge_trigger", "targetname" ) );
level._player thread player_ledge_walk();
// level thread chopper_crash();
level.squad[ "ALLY_WILLIAMS" ] enable_cqbwalk();
level.squad[ "ALLY_JENKINS" ] enable_cqbwalk();
issue_color_orders( "b0 p0", "allies" );
waittill_aigroupcleared( "enemy_base_echo_01" );
// SAVE POINT
level thread autosave_now();
issue_color_orders( "b2 p2", "allies" );
level.squad[ "ALLY_WILLIAMS" ] ally_wave_through_pass();
// ally_woods_traversal();
issue_color_orders( "b10 p10", "allies" );
waittill_aigroupcleared( "enemy_base_echo_02" );
// SAVE POINT
level thread autosave_now();
// ally_woods_mantle();
issue_color_orders( "b11 p11", "allies" );
flag_wait( "base_echo_team_ledge_walk" );
level.squad[ "ALLY_WILLIAMS" ] ally_woods_ledge( "p13" );
wait 2.0;
level.squad[ "ALLY_JENKINS" ] ally_woods_ledge( "b13" );
issue_color_orders( "b13 p13", "allies" );
// SAVE POINT
level thread autosave_now();
// ally_point_to_destroyed_rocket();
flag_wait( "base_echo_rocket_reveal" );
wait 5.0;
flag_wait( "base_echo_pipe_jump" );
// SPACING OUT THEIR ORDERS TO AVOID SYNCHRONIZATION.
issue_color_orders( "b14", "allies" );
wait 2.0;
issue_color_orders( "p14", "allies" );
flag_wait( "base_echo_pipe_start" );
issue_color_orders( "b30 p30", "allies" );
flag_wait( "base_echo_exit" );
level.squad[ "ALLY_WILLIAMS" ] disable_cqbwalk();
level.squad[ "ALLY_JENKINS" ] disable_cqbwalk();
level._player notify( "end_ledge" );
level thread objective_follow( false );
}
ally_woods_traversal()
{
maps\nx_rocket_anim::woods_traversal_01( level.squad[ "ALLY_WILLIAMS" ] );
maps\nx_rocket_anim::woods_traversal_02( level.squad[ "ALLY_WILLIAMS" ] );
maps\nx_rocket_util::squad_color_reset();
}
ally_woods_mantle()
{
maps\nx_rocket_anim::woods_mantle( level.squad[ "ALLY_WILLIAMS" ], level.squad[ "ALLY_JENKINS" ] );
maps\nx_rocket_util::squad_color_reset();
}
ally_woods_ledge( order_on_end )
{
maps\nx_rocket_anim::woods_ledge( self );
maps\nx_rocket_util::squad_color_reset();
issue_color_orders( order_on_end, "allies" );
}
ally_pipe_traversal()
{
maps\nx_rocket_anim::pipe_traversal_01( level.squad[ "ALLY_WILLIAMS" ] );
maps\nx_rocket_anim::pipe_traversal_02( level.squad[ "ALLY_WILLIAMS" ] );
maps\nx_rocket_util::squad_color_reset();
}
ally_wave_through_pass()
{
node = GetEnt( "anim_base_echo_direct", "targetname" );
node anim_reach_solo( self, "cqb_wave_on_me" );
flag_wait( "base_echo_wave_player" );
node anim_single_solo( self, "cqb_wave_on_me" );
maps\nx_rocket_util::squad_color_reset();
issue_color_orders( "b10 p10", "allies" );
}
ally_point_to_destroyed_rocket()
{
chopper = vehicle_spawn( GetEnt( "base_echo_chopper", "targetname" ) );
node = GetEnt( "anim_base_echo_rocket_reveal", "targetname" );
node anim_reach_solo( level.squad[ "ALLY_WILLIAMS" ], "rocket_reveal_point" );
flag_wait( "vignette_base_echo_rocket_reveal" );
chopper GoPath();
node anim_single_solo( level.squad[ "ALLY_WILLIAMS" ], "rocket_reveal_point" );
chopper Kill();
maps\nx_rocket_util::squad_color_reset();
}
chopper_crash()
{
flag_wait( "base_echo_chopper" );
chopper = vehicle_spawn( GetEnt( "base_echo_chopper", "targetname" ) );
chopper GodOn();
chopper GoPath();
chopper thread chopper_turret_fire();
// chopper waittill( "reached_dynamic_path_end" );
flag_wait( "base_echo_chopper_kill" );
chopper thread chopper_passengers_eject();
chopper GodOff();
chopper Kill();
}
chopper_turret_fire()
{
self endon( "death" );
turret_org = GetEnt( "base_echo_aa_turret", "targetname" );
fire_rate = 5; // SHOTS PER SECOND
hit_radius = 1000;
wait 5.0;
while( IsAlive( self ) )
{
hit_radius *= 0.99;
hit_offset = random_vector( hit_radius );
turret_org thread maps\nx_rocket_util::aa_turret_fire( self, hit_offset );
wait 1/(fire_rate);
}
}
chopper_passengers_eject()
{
while( self.riders.size > 1 )
{
rider = self.riders[ self.riders.size - 1 ];
rider Unlink();
rider StopAnimScripted();
rider Kill();
wait RandomFloatRange( 1.5, 3.0 );
}
}
player_ledge_walk()
{
self endon( "end_ledge" );
while( 1 )
{
flag_wait( "base_echo_ledge" );
self SetMoveSpeedScale( 0.3 );
self HideViewModel();
self DisableWeapons();
flag_waitopen( "base_echo_ledge" );
self SetMoveSpeedScale( 1.0 );
self ShowViewModel();
self Enableweapons();
wait 0.05;
}
}
//*******************************************************************
// *
// *
//*******************************************************************
section_dialogue()
{
wait 3.0;
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_hang_baker" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_hang_bettergetmoving" );
// flag_wait( "base_echo_wave_player" );
// level thread add_dialogue_line( "Williams", "They're gonna be looking for us. Stay sharp and keep quiet.", undefined, 3.0 );
flag_wait( "base_echo_rocket_reveal" );
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_wil_echo_objecho" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_jen_echo_flightdelayed" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_stfujenkins" );
// level thread add_dialogue_line( "Williams", "Woo! Well, look at that!", undefined, 3.0 );
// wait 2.0;
// level thread add_dialogue_line( "Jenkins", "Toasty!", undefined, 3.0 );
flag_wait( "base_echo_pipe_jump" );
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_echo_pipe" );
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_wil_echo_worthashot" );
// level thread add_dialogue_line( "Jenkins", "This pipe might lead us out of here.", undefined, 3.0 );
// wait 2.0;
// level thread add_dialogue_line( "Williams", "Hell, it's worth a shot.", undefined, 3.0 );
// wait 3.0;
// level thread maps\nx_rocket_util::dialogue_nag_temp( "Williams", "Lockwood! Down here!", 3.0, 2.0, 4.0, "base_echo_pipe_start" );
flag_wait( "base_echo_pipe_start" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_moveout" );
// wait 1.0;
// level thread add_dialogue_line( "Williams", "Alright, let's move out. Watch your step...", undefined, 2.0 );
flag_wait( "base_echo_chopper" );
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_echo_flagdownbird" );
// wait 1.0;
// level thread add_dialogue_line( "Jenkins", "Hey, that's one of our birds!", undefined, 3.0 );
// wait 1.0;
// level thread add_dialogue_line( "Williams", "Alright! Let's flag them down!", undefined, 3.0 );
flag_wait( "base_echo_chopper_kill" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_shit" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_cantdoanythingforthem" );
flag_wait( "base_echo_exit" );
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_trbase_structureahead" );
wait 4.0;
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_trbase_getdropontangos" );
// level thread add_dialogue_line( "Jenkins", "Holy shit...", undefined, 3.0 );
// wait 2.0;
// level thread add_dialogue_line( "Williams", "Let's keep moving. We can't help them...", undefined, 3.0 );
}
section_precache()
{
PreCacheItem( "nx_rocket_aa_turret" );
}
section_flag_inits()
{
flag_init( "regrouped_with_squad" );
flag_init( "base_echo_wave_player" );
flag_init( "vignette_base_echo_rocket_reveal" );
}
//ec_turret sfx
ec_turret_sfx()
{
soundorg = Spawn( "sound_emitter", ( 55996, 81590, 3106 ) );
level endon( "stop_turret_outdoor_sfx" );
while(1)
{
soundorg PlaySound( "emt_rocket_turret_outdoor" );
wait( RandomFloatRange( 2.0, 6.0 ));
}
}
objective_follow( enable )
{
wait 2.0;
if( enable )
{
Objective_State( obj( "OBJ_FIND_BAKER" ), "current" );
Objective_SetPointerTextOverride( obj( "OBJ_FIND_BAKER" ), &"NX_ROCKET_FOLLOW_MARKER" );
Objective_OnEntity( obj( "OBJ_FIND_BAKER" ), level.squad[ "ALLY_WILLIAMS" ], (0, 0, 90) );
}
else
{
Objective_State( obj( "OBJ_FIND_BAKER" ), "invisible" );
}
}