mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-22 17:15:48 +00:00
1128 lines
39 KiB
Plaintext
1128 lines
39 KiB
Plaintext
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2010 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: NX_LUNAR Base Mission Script **
|
|
// **
|
|
// Created: 10/14/2010 - Travis Chen **
|
|
// **
|
|
//****************************************************************************
|
|
|
|
#include maps\_utility;
|
|
#include maps\_utility_code;
|
|
#include maps\_nx_objective_util;
|
|
#include common_scripts\utility;
|
|
#include maps\_anim;
|
|
#include maps\_vehicle;
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
main()
|
|
{
|
|
// Add starts
|
|
default_start( ::intro_start );
|
|
set_default_start( "get_to_the_armory" );
|
|
|
|
add_start( "intro", ::intro_start, "Intro", ::intro );
|
|
add_start( "rover_chase", ::rover_chase_start, "Rover Chase", ::rover_chase );
|
|
add_start( "get_to_the_armory", ::get_to_the_armory_start, "Get to the Armory", ::get_to_the_armory );
|
|
add_start( "armory_module", ::armory_module_start, "Armory Module", ::armory_module );
|
|
add_start( "life_support_module", ::life_support_module_start, "Life Support Module", ::life_support_module );
|
|
add_start( "living_module", ::living_module_start, "Living Module", ::living_module );
|
|
|
|
// tagTC<note> - vista to exterior
|
|
add_start( "exterior_vista", ::exterior_vista_start, "Exterior Vista", ::exterior_vista );
|
|
|
|
// tagTC<note> - crew hub removed for the greenlight :(
|
|
// add_start( "crew_module", ::crew_module_start, "Crew Module", ::crew_module );
|
|
|
|
add_start( "airlock_exterior", ::airlock_exterior_start, "Airlock To Exterior", ::airlock_exterior );
|
|
add_start( "mining_valley", ::mining_valley_start, "Mining Valley", ::mining_valley );
|
|
add_start( "rough_terrain", ::rough_terrain_start, "Undiscovered Country", ::rough_terrain );
|
|
add_start( "rover_battle", ::rover_battle_start, "Rover Battle", ::rover_battle );
|
|
add_start( "into_shadows", ::into_shadows_start, "Into the Shadows", ::into_shadows );
|
|
add_start( "vehicle_bay_return", ::vehicle_bay_return_start, "Return to the Vehicle Bay", ::vehicle_bay_return );
|
|
add_start( "take_back_control", ::take_back_control_start, "Take Back Control", ::take_back_control );
|
|
add_start( "take_back_control_ending", ::take_back_control_ending_start, "Take Back Control Ending", ::take_back_control_ending );
|
|
|
|
add_start( "no_game_moon", ::intro_start, "no_game: moon physics", ::no_game_moon );
|
|
|
|
maps\nx_lunar_precache::main();
|
|
maps\nx_lunar_fx::main();
|
|
maps\_moon_actor::main();
|
|
// tagDK<note> - removing for milestone, not enough time
|
|
// maps\_stealth::main();
|
|
huds = [];
|
|
huds[huds.size] = "hud_lunar";
|
|
maps\_load::main( huds );
|
|
maps\_moon::main();
|
|
maps\nx_lunar_escape_exterior::main();
|
|
maps\_drone_civilian_lunar::init();
|
|
|
|
// tagTC<note> - Don't call breach if breach triggers don't exist
|
|
// This is to account for compiling out the breach for quick compiles
|
|
breach_lookat_triggers = GetEntArray( "trigger_multiple_breachIcon", "classname" );
|
|
if( breach_lookat_triggers.size > 0 )
|
|
{
|
|
maps\nx_lunar_control_room_breach::main();
|
|
}
|
|
maps\nx_lunar_escape_interior::main();
|
|
|
|
// Internal Initialization
|
|
mission_flag_inits();
|
|
mission_precache();
|
|
maps\nx_lunar_anim::main();
|
|
|
|
// Mission objectives
|
|
level thread mission_objective_logic();
|
|
|
|
// Init doorway status lighting
|
|
level thread nx_lunar_door_status_init();
|
|
|
|
// Mission threads
|
|
level thread maps\nx_lunar_audio::mission_music();
|
|
//set the music flags for whichever part of the mission we're debugging to
|
|
level thread mission_music_debug_to_checkpoint_set_flags();
|
|
//call the script to handle sfx helmet and sound states
|
|
level thread mission_sfx_helmet_states();
|
|
|
|
// Turn off specified triggers
|
|
maps\nx_lunar_util::all_triggers_off( "armory_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "life_support_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "medical_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "medical_to_living_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "living_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "exterior_vista_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "crew_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "crew_airlock_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "exterior_airlock_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "into_shadows_triggers" );
|
|
maps\nx_lunar_util::all_triggers_off( "vehicle_bay_return_left_route" );
|
|
maps\nx_lunar_util::all_triggers_off( "vehicle_bay_return_right_route" );
|
|
|
|
// Turn off specified mantles
|
|
maps\nx_lunar_util::all_mantles_off( "into_shadows_mantles" );
|
|
|
|
// Hide Dynamic Geo
|
|
maps\nx_lunar_util::hide_scriptmodels_by_targetname( "into_shadows_supplies" );
|
|
maps\nx_lunar_util::hide_scriptmodels_by_targetname( "valley_traversal_blocker" );
|
|
maps\nx_lunar_util::hide_scriptmodels_by_targetname( "valley_traversal_blocker_ally" );
|
|
|
|
// Compass
|
|
maps\_compass::setupMiniMap( "compass_map_nx_lunar" );
|
|
|
|
// Life pass
|
|
level thread maps\nx_lunar_util::flickering_lights();
|
|
|
|
// Hints
|
|
level._player thread maps\nx_lunar_util::suit_patch_hint();
|
|
|
|
// Lunar taser main
|
|
maps\nx_taser::main();
|
|
|
|
level thread maps\_suitshield::init_suit_shield();
|
|
|
|
// NX_LUNAR Vision set
|
|
VisionSetNaked( "nx_lunar" );
|
|
|
|
// Lunar helmet
|
|
//lunar_player_helmet();
|
|
|
|
// Viewmodel
|
|
level._player setViewmodel( "viewhands_us_lunar" );
|
|
|
|
// Dead crew member logic
|
|
thread maps\nx_lunar_anim::dead_crew();
|
|
|
|
// Damage that spraying pipes deal
|
|
level._pipesDamage = 10;
|
|
|
|
// Start the ambience track
|
|
thread maps\nx_lunar_amb::main();
|
|
|
|
// Setup mission threats
|
|
level thread mission_threat_setup();
|
|
|
|
//turn off battlechatter
|
|
battlechatter_off( "axis" );
|
|
battlechatter_off( "allies" );
|
|
|
|
//dont want all sounds affected by timescale
|
|
SoundSetTimeScaleFactor( "Music", 0 );
|
|
SoundSetTimeScaleFactor( "Menu", 0 );
|
|
SoundSetTimeScaleFactor( "Voice", 0 );
|
|
SoundSetTimeScaleFactor( "Announcer", 0 );
|
|
SoundSetTimeScaleFactor( "effects1", 0 );
|
|
SoundSetTimeScaleFactor( "Vignette3d", 0 );
|
|
SoundSetTimeScaleFactor( "Vignette2d", 0 );
|
|
SoundSetTimeScaleFactor( "nx_localverb", 0 );
|
|
SoundSetTimeScaleFactor( "ambient", 0 );
|
|
SoundSetTimeScaleFactor( "local", 0 );
|
|
SoundSetTimeScaleFactor( "auto2d", 0 );
|
|
|
|
thread playnodesound1();
|
|
|
|
}
|
|
|
|
playnodesound1()
|
|
{
|
|
//mynodeEntity = getent( "lunarchaos1", "targetname" );
|
|
mynodeEntity6 = spawn("sound_emitter", (6656, 432, -1744));
|
|
mynodeEntity6 PlayLoopSound( "emt_lunar_computer_room" );
|
|
flag_wait( "life_support_door_open" );
|
|
mynodeEntity6 delete();
|
|
|
|
}
|
|
|
|
// All mission specific PreCache calls
|
|
mission_precache()
|
|
{
|
|
maps\nx_lunar_get_to_the_armory::mission_precache();
|
|
|
|
// PreCacheModel( "viewmodel_as_mk27" );
|
|
PreCacheModel( "viewmodel_lunar_helm_int" );
|
|
PreCacheModel( "viewhands_us_lunar_scripted" );
|
|
PreCacheModel( "nx_pr_lunar_helm_scripted" );
|
|
PrecacheModel( "nx_lunar_hatch_keypad_anim" );
|
|
PrecacheModel( "nx_lunar_hatch_keypad_green" );
|
|
PrecacheModel( "nx_lunar_door_alertsign_orange" );
|
|
PreCacheModel( "nx_vehicle_ec_lgv_main_turret_obj" );
|
|
|
|
// Doors
|
|
PreCacheModel( "nx_lunar_doors_solid01_breached" );
|
|
PreCacheModel( "nx_lunar_doors_window01_breached" );
|
|
|
|
PrecacheItem( "freerunner_lunar");
|
|
PrecacheItem( "lunarrifle_silent" );
|
|
PrecacheItem( "lunarrifle_altsound" );
|
|
PrecacheItem( "nx_suitshield" );
|
|
|
|
// Shaders
|
|
// PreCacheShader( "dpad_killstreak_hellfire_missile_inactive" );
|
|
PreCacheShader( "ac130_overlay_grain" );
|
|
PrecacheShader( "nx_lunar_helm_crack_001" );
|
|
PrecacheShader( "nx_lunar_helm_crack_002" );
|
|
PrecacheShader( "nx_lunar_helm_crack_003" );
|
|
PrecacheShader( "nx_lunar_helm_crack_004" );
|
|
PrecacheShader( "nx_lunar_helm_crack_005" );
|
|
PrecacheShader( "lunar_crack_lights_l" );
|
|
PrecacheShader( "lunar_crack_lights_m" );
|
|
PrecacheShader( "lunar_crack_lights_r" );
|
|
PrecacheShader( "waypoint_patchkit" );
|
|
|
|
PreCacheShellShock( "nx_lunar_drive_in" );
|
|
|
|
// Objectives
|
|
PreCacheString( &"NX_LUNAR_SUIT_PATCH_HINT" );
|
|
add_hint_string( "hint_rover_drive", &"NX_LUNAR_HINT_ROVER_DRIVE", ::mission_hint_instructions );
|
|
add_hint_string( "hint_rover_brake", &"NX_LUNAR_HINT_ROVER_BRAKE", ::mission_hint_instructions );
|
|
|
|
// Misc
|
|
PreCacheModel( "nx_pr_lunar_halldebris0" );
|
|
PreCacheModel( "nx_pr_lunar_halldebris1" );
|
|
PreCacheShellShock( "estate_bouncingbetty" );
|
|
PreCacheShellShock( "lunar_rover_battle" );
|
|
PreCacheShellShock( "flashbang" );
|
|
precachestring( &"NX_LUNAR_INTROSCREEN_1" );
|
|
precachestring( &"NX_LUNAR_INTROSCREEN_2" );
|
|
precachestring( &"NX_LUNAR_INTROSCREEN_3" );
|
|
precachestring( &"NX_LUNAR_INTROSCREEN_4" );
|
|
precachestring( &"NX_LUNAR_INTROSCREEN_5" );
|
|
|
|
// Rumbles
|
|
PreCacheRumble( "heavy_3s" );
|
|
precacherumble( "tank_rumble" );
|
|
precacherumble( "steady_rumble" );
|
|
}
|
|
|
|
mission_hint_instructions()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// All mission specific flag_init() calls
|
|
mission_flag_inits()
|
|
{
|
|
maps\nx_lunar_intro::mission_flag_inits();
|
|
maps\nx_lunar_get_to_the_armory::mission_flag_inits();
|
|
maps\nx_lunar_escape_interior::mission_flag_inits();
|
|
maps\nx_lunar_escape_exterior::mission_flag_inits();
|
|
maps\nx_lunar_take_back_control::mission_flag_inits();
|
|
|
|
// Determines if we're in the middle of a vignette.
|
|
flag_init ("vignette_playing");
|
|
|
|
maps\nx_lunar_audio::flag_inits();
|
|
|
|
//DR: needed for sfx helmet sound states to fucntion properly
|
|
flag_init( "sfx_int_rover_engsuit_nohelmet_press" ); //(in rover in engineering suit)
|
|
flag_init( "sfx_int_rover_engsuit_helmet_press" ); //(in rover after helmet on)
|
|
flag_init( "sfx_int_rover_engsuit_helmet_depress" ); //(in rover after helmet on and airlock depressurized)
|
|
flag_init( "sfx_ext_surface_engsuit_depress" ); //(on moon surface in engineering suit)
|
|
flag_init( "sfx_int_rover_engsuit_helmet_depress2" ); //(driving back in rover - not sure if decided rover is press or depress at this point)
|
|
flag_init( "sfx_ext_surface_engsuit_semipress" ); //(walking from rover to airlock in a semi-busted engineering suit)
|
|
flag_init( "sfx_int_base_engsuit_helmet_press" ); //(repressurized in the airlock with engineering suit - helmet visor still down)
|
|
flag_init( "sfx_int_base_engsuit_nohelmet_press" ); //(running with helmet up from airlock to armory through pressurized base)
|
|
flag_init( "sfx_int_base_milsuit_press" ); //(after putting on military suit)
|
|
flag_init( "sfx_int_base_milsuit_depress" ); //(after rapid depressurization of armoy breach)
|
|
flag_init( "sfx_int_base_milsuit_press2" ); //(after going through airlock to repressurize)
|
|
flag_init( "sfx_ext_surface_milsuit_depress" ); //(after going through airloack to depresurize)
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
// Objective logic flow
|
|
mission_objective_logic()
|
|
{
|
|
// Wait for friendlies to spawn
|
|
waittillframeend;
|
|
|
|
// README: wait_for_objective
|
|
// maps\_nx_objective_util::wait_for_objective( objective_num, objective_text, curr_trigger, next_trigger );
|
|
// curr_trigger - the start point trigger of the objective
|
|
// next_trigger - the end point trigger of the objective
|
|
// Uses script_origin nodes for pathing ( be sure to have a radius on the nodes )
|
|
|
|
level.eagle_support_objective_added = false;
|
|
level.eagle_follow_objective_added = false;
|
|
switch ( level._start_point )
|
|
{
|
|
case "default":
|
|
case "intro":
|
|
flag_wait( "tower_fall" );
|
|
case "rover_chase":
|
|
flag_wait( "rover_crashed" );
|
|
case "get_to_the_armory":
|
|
|
|
// Wait for the player to be mobile before giving objective
|
|
flag_wait( "start_stumble_walk" );
|
|
wait_for_objective( 6, &"NX_LUNAR_OBJECTIVE_REACH_AIRLOCK", "objective_reach_airlock", "objective_in_vehicle_airlock" );
|
|
flag_wait ( "player_in_vehicle_airlock" );
|
|
objective_complete( 6 );
|
|
flag_wait( "vehicle_airlock_open" );
|
|
thread wait_for_objective( 7, &"NX_LUNAR_OBJECTIVE_GET_TO_THE_ARMORY", "objective_get_to_armory", "objective_at_the_armory" );
|
|
|
|
// Hide objective during breach vignette
|
|
flag_wait ("top_floor_breach");
|
|
Objective_State( 7, "invisible" );
|
|
level waittill ("top_floor_breach_done");
|
|
Objective_State( 7, "current" );
|
|
|
|
/*wait_for_objective( 7, &"NX_LUNAR_OBJECTIVE_GET_TO_THE_ARMORY", "player_in_vehicle_airlock", "room_status_storage" );
|
|
flag_wait( "falcon_taser_handoff" );
|
|
objective_onentity ( 7, level.falcon_taser, (0, 0, 90));
|
|
Objective_SetPointerTextOverride( 7, &"NX_LUNAR_OBJECTIVE_FOLLOW_MARKER" );
|
|
flag_wait( "vignette_armory_entrance_setup" );
|
|
objective_onentity ( 7, level.eagle, (0, 0, 90));
|
|
*/
|
|
|
|
flag_wait( "vignette_armory_entrance_player" );
|
|
objective_complete( 7 );
|
|
|
|
flag_wait ( "player_has_helmet" );
|
|
|
|
wait_for_objective( 8, &"NX_LUNAR_OBJECTIVE_GET_WEAPON", "objective_at_the_armory", "objective_get_weapon" );
|
|
flag_wait( "player_has_weapon" );
|
|
objective_complete( 8 );
|
|
|
|
case "armory_module":
|
|
case "life_support_module":
|
|
|
|
// Wait for moving up ramp
|
|
flag_wait( "vo_keep_pushing_cnc" );
|
|
waypoint = getEnt( "objective_no_go_way_point", "targetname" );
|
|
objective_add( 9, "current", &"NX_LUNAR_OBJECTIVE_NO_GO", waypoint.origin );
|
|
objective_current( 9 );
|
|
|
|
// Wait for allies to move to the breach
|
|
flag_wait( "life_support_breach_reach" );
|
|
|
|
wait( 3.0 );
|
|
|
|
objective_delete( 9 );
|
|
objective_add( 10, "current", &"NX_LUNAR_OBJECTIVE_ESCAPE_INTERIOR" );
|
|
|
|
// Wait for allies to move to the breach
|
|
flag_wait( "life_support_breach_near" );
|
|
|
|
waypoint = getEnt( "objective_life_support_door_waypoint", "targetname" );
|
|
objective_add( 11, "current", &"NX_LUNAR_OBJECTIVE_LIFE_SUPPORT_DOOR", waypoint.origin );
|
|
objective_current( 11 );
|
|
|
|
// Life support open
|
|
flag_wait( "life_support_door_open" );
|
|
objective_complete( 11 );
|
|
objective_current( 10 );
|
|
|
|
case "living_module":
|
|
|
|
// Wait for living module door open ready
|
|
flag_wait( "living_module" );
|
|
|
|
waypoint = getEnt( "objective_living_door_waypoint", "targetname" );
|
|
objective_add( 12, "current", &"NX_LUNAR_OBJECTIVE_LIVING_DOOR", waypoint.origin );
|
|
objective_current( 12 );
|
|
|
|
// Living door open
|
|
flag_wait( "living_door_open" );
|
|
objective_complete( 12 );
|
|
objective_current( 10 );
|
|
|
|
case "exterior_vista":
|
|
|
|
flag_wait( "exterior_vista" );
|
|
|
|
// Second waypoint
|
|
waypoint_1 = getEnt( "objective_exterior_vista_waypoint_1", "targetname" );
|
|
waypoint_2 = getEnt( "objective_exterior_vista_waypoint_2", "targetname" );
|
|
objective_position( 10, waypoint_1.origin );
|
|
wait_for_player_near_waypoint( waypoint_1 );
|
|
objective_position( 10, waypoint_2.origin );
|
|
wait_for_player_near_waypoint( waypoint_2 );
|
|
objective_complete( 10 );
|
|
|
|
/*
|
|
case "crew_module":
|
|
|
|
// Wait for crew module airlock ready
|
|
flag_wait( "crew_module" );
|
|
|
|
waypoint = getEnt( "objective_crew_airlock_waypoint", "targetname" );
|
|
objective_add( 13, "current", &"NX_LUNAR_OBJECTIVE_CREW_AIRLOCK", waypoint.origin );
|
|
objective_current( 13 );
|
|
|
|
// Crew airlock open
|
|
flag_wait( "in_crew_airlock" );
|
|
objective_complete( 13 );
|
|
objective_current( 10 );
|
|
|
|
// Wait for exterior airlock ready
|
|
flag_wait( "move_allies_to_exterior_airlock" );
|
|
|
|
// Two waypoint chain to exterior airlock
|
|
waypoint_1 = getEnt( "objective_exterior_airlock_waypoint_1", "targetname" );
|
|
objective_add( 14, "current", &"NX_LUNAR_OBJECTIVE_EXTERIOR_AIRLOCK", waypoint_1.origin );
|
|
objective_current( 14 );
|
|
|
|
// Second waypoint
|
|
waypoint_2 = getEnt( "objective_exterior_airlock_waypoint_2", "targetname" );
|
|
wait_for_player_near_waypoint( waypoint_1 );
|
|
objective_position( 14, waypoint_2.origin );
|
|
|
|
flag_wait( "in_exterior_airlock" );
|
|
objective_complete( 14 );
|
|
objective_current( 10 );
|
|
|
|
// Exterior airlock open
|
|
flag_wait( "exterior_airlock_open" );
|
|
|
|
// Clear the get to exterior objective
|
|
objective_complete( 10 );
|
|
*/
|
|
|
|
case "airlock_exterior":
|
|
|
|
self thread eagle_support_objective();
|
|
|
|
case "mining_valley":
|
|
|
|
self thread eagle_support_objective();
|
|
|
|
case "rough_terrain":
|
|
|
|
self thread eagle_support_objective();
|
|
|
|
case "rover_battle":
|
|
|
|
flag_wait( "vignette_falcon_death" );
|
|
|
|
// Delete support objective
|
|
objective_delete( 18 );
|
|
|
|
flag_wait( "rover_battle_start" );
|
|
objective_add( 20, "current", &"NX_LUNAR_OBJECTIVE_ROVER_TROOPS" );
|
|
level waittill( "rover_battle_threat_removed" );
|
|
objective_complete( 20 );
|
|
|
|
// Add follow objective back to eagle
|
|
self thread eagle_follow_objective();
|
|
|
|
case "into_shadows":
|
|
|
|
// Eagle turns and heads to shadows
|
|
level waittill( "eagle_heading_to_shadows" );
|
|
|
|
if ( !flag( "vehicle_bay_shadow_enemies_aware" ) )
|
|
{
|
|
// Wait for player to move into the trigger
|
|
wait_for_objective( 22, &"NX_LUNAR_OBJECTIVE_SHADOWS", "objective_at_shadows", "objective_in_shadows" );
|
|
objective_complete( 22 );
|
|
}
|
|
|
|
flag_wait( "player_in_kill_position_rover" );
|
|
|
|
// Delete follow objective
|
|
objective_delete( 21 );
|
|
level.eagle_follow_objective_added = false;
|
|
|
|
flag_wait( "vehicle_bay_return" );
|
|
|
|
// Add follow objective back to eagle
|
|
self thread eagle_follow_objective();
|
|
|
|
case "vehicle_bay_return":
|
|
|
|
// Add follow objective back to eagle
|
|
self thread eagle_follow_objective();
|
|
|
|
// Wait for player in vehicle bay
|
|
flag_wait( "objective_hawk_rendezvous" );
|
|
objective_complete( 21 );
|
|
|
|
// Add rendezvous objective
|
|
objective_add( 23, "current", &"NX_LUNAR_OBJECTIVE_RENDEZVOUS" );
|
|
|
|
case "take_back_control":
|
|
|
|
// Clear meetup objective
|
|
flag_wait( "control_objective_hawk_meetup" );
|
|
objective_complete( 23 );
|
|
|
|
// Add breach objective
|
|
flag_wait( "control_objective_breach" );
|
|
waypoint = getEnt( "objective_breach_waypoint", "targetname" );
|
|
objective_add( 24, "current", &"NX_LUNAR_OBJECTIVE_BREACH", waypoint.origin );
|
|
|
|
// Clear breach objective
|
|
level waittill("breaching");
|
|
objective_complete( 24 );
|
|
|
|
// Support eagle and hawk in C&C
|
|
level waittill( "slomo_breach_over" );
|
|
self thread eagle_and_hawk_support_objective();
|
|
|
|
case "take_back_control_ending":
|
|
|
|
// Engage override
|
|
flag_wait( "close_c_and_c_doors" );
|
|
objective_complete( 25 );
|
|
waypoint = getEnt( "objective_lsp_waitpoint", "targetname" );
|
|
waypoint_door = getEnt( "objective_lsp_waitpoint_door", "targetname" );
|
|
objective_add( 26, "current", &"NX_LUNAR_OBJECTIVE_LSP_OVERRIDE", waypoint_door.origin );
|
|
|
|
flag_wait( "c_and_c_doors_open" );
|
|
Objective_Position( 26, waypoint.origin );
|
|
|
|
// End of level
|
|
flag_wait( "control_lsp_activated" );
|
|
objective_complete( 26 );
|
|
|
|
case "no_game_moon":
|
|
break;
|
|
default:
|
|
AssertMsg( "No objectives set for this start point" );
|
|
}
|
|
}
|
|
|
|
eagle_support_objective()
|
|
{
|
|
// Support objective attached to Eagle
|
|
if( IsDefined( level.eagle ) && !level.eagle_support_objective_added )
|
|
{
|
|
objective_add( 18, "current", &"NX_LUNAR_OBJECTIVE_SUPPORT_EAGLE" );
|
|
Objective_OnEntity( 18, level.eagle, (0, 0, 90) );
|
|
Objective_SetPointerTextOverride( 18, &"NX_LUNAR_OBJECTIVE_SUPPORT_MARKER" );
|
|
level.eagle_support_objective_added = true;
|
|
}
|
|
}
|
|
|
|
eagle_follow_objective()
|
|
{
|
|
if( IsDefined( level.eagle ) && !level.eagle_follow_objective_added )
|
|
{
|
|
objective_add( 21, "current", &"NX_LUNAR_OBJECTIVE_SUPPORT_EAGLE" );
|
|
Objective_OnEntity( 21, level.eagle, (0, 0, 90) );
|
|
Objective_SetPointerTextOverride( 21, &"NX_LUNAR_OBJECTIVE_FOLLOW_MARKER" );
|
|
level.eagle_follow_objective_added = true;
|
|
}
|
|
}
|
|
|
|
eagle_and_hawk_support_objective()
|
|
{
|
|
// Support objective attached to Eagle
|
|
if( IsDefined( level.eagle ) && IsDefined( level.hawk ) )
|
|
{
|
|
objective_add( 25, "current", &"NX_LUNAR_OBJECTIVE_SUPPORT_EAGLE_AND_HAWK" );
|
|
Objective_OnEntity( 25, level.eagle, (0, 0, 90) );
|
|
Objective_OnAdditionalEntity( 25, 1, level.hawk, (0, 0, 90) );
|
|
Objective_SetPointerTextOverride( 25, &"NX_LUNAR_OBJECTIVE_SUPPORT_MARKER" );
|
|
}
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
nx_lunar_door_status_init()
|
|
{
|
|
// Init doors for get to the armory
|
|
maps\nx_lunar_get_to_the_armory::get_to_the_armory_door_status_init();
|
|
maps\nx_lunar_escape_interior::escape_interior_door_status_init();
|
|
|
|
level thread maps\nx_lunar_util::lunar_door_status( "vehicle_bay_hub_entrance", "status_red" );
|
|
level thread maps\nx_lunar_util::lunar_door_status( "command_center_entrance", "status_red" );
|
|
level thread maps\nx_lunar_util::lunar_door_status( "command_center_exit", "status_red" );
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
|
|
mission_music_debug_to_checkpoint_set_flags ()
|
|
{
|
|
//this script will set the necessary flags needed for the music script to work when jumping to
|
|
//a new checkpoint in the debug menu.
|
|
|
|
waittillframeend;
|
|
|
|
//iprintln ( "MUSIC LEVEL STARTING FLAGS AT " + level._start_point);
|
|
|
|
switch ( level._start_point )
|
|
{
|
|
case "default":
|
|
//iprintln ("not setting any music flags for default");
|
|
break;
|
|
|
|
case "intro":
|
|
//iprintln ("setting music flags for intro");
|
|
//iprintln ("not setting any music flags for intro");
|
|
break;
|
|
|
|
case "rover_chase":
|
|
//iprintln ("setting music flags for rover chase");
|
|
|
|
//setting sfx helmet sound state flags
|
|
flag_set( "sfx_int_rover_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress" );
|
|
flag_set( "sfx_ext_surface_engsuit_depress" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress2" );
|
|
break;
|
|
|
|
case "get_to_the_armory":
|
|
//iprintln ("setting music flags for get to the armory");
|
|
|
|
//setting sfx helmet sound state flags
|
|
flag_set( "sfx_int_rover_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress" );
|
|
flag_set( "sfx_ext_surface_engsuit_depress" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress2" );
|
|
flag_set( "sfx_ext_surface_engsuit_semipress" );
|
|
break;
|
|
|
|
case "armory_module":
|
|
case "life_support_module":
|
|
case "living_module":
|
|
//iprintln ("setting music flags for modules");
|
|
|
|
//setting sfx helmet sound state flags
|
|
flag_set( "sfx_int_rover_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress" );
|
|
flag_set( "sfx_ext_surface_engsuit_depress" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress2" );
|
|
flag_set( "sfx_ext_surface_engsuit_semipress" );
|
|
flag_set( "sfx_int_base_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_base_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_base_milsuit_press" );
|
|
flag_set( "sfx_int_base_milsuit_depress" );
|
|
break;
|
|
|
|
case "exterior_vista":
|
|
//iprintln ("setting music flags for modules");
|
|
|
|
//setting sfx helmet sound state flags
|
|
flag_set( "sfx_int_rover_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress" );
|
|
flag_set( "sfx_ext_surface_engsuit_depress" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress2" );
|
|
flag_set( "sfx_ext_surface_engsuit_semipress" );
|
|
flag_set( "sfx_int_base_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_base_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_base_milsuit_press" );
|
|
flag_set( "sfx_int_base_milsuit_depress" );
|
|
break;
|
|
|
|
|
|
case "airlock_exterior":
|
|
case "mining_valley":
|
|
case "rough_terrain":
|
|
//iprintln ("setting music and sfx flags for airlock to exterior");
|
|
break;
|
|
|
|
case "rover_battle":
|
|
//iprintln ("setting music and sfx flags for rover battle starting");
|
|
//flag_set( "music_rover_battle_starts" );
|
|
break;
|
|
|
|
case "into_shadows":
|
|
//iprintln ("setting music and sfx flags for sneaking up behind rover");
|
|
break;
|
|
|
|
case "vehicle_bay_return":
|
|
case "take_back_control":
|
|
case "take_back_control_ending":
|
|
case "no_game_moon":
|
|
//iprintln ("setting music and sfx flags for rover battle starting");
|
|
|
|
//setting sfx helmet sound state flags
|
|
flag_set( "sfx_int_rover_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress" );
|
|
flag_set( "sfx_ext_surface_engsuit_depress" );
|
|
flag_set( "sfx_int_rover_engsuit_helmet_depress2" );
|
|
flag_set( "sfx_ext_surface_engsuit_semipress" );
|
|
flag_set( "sfx_int_base_engsuit_helmet_press" );
|
|
flag_set( "sfx_int_base_engsuit_nohelmet_press" );
|
|
flag_set( "sfx_int_base_milsuit_press" );
|
|
flag_set( "sfx_int_base_milsuit_depress" );
|
|
flag_set( "sfx_int_base_milsuit_press2" );
|
|
flag_set( "sfx_ext_surface_milsuit_depress" );
|
|
break;
|
|
|
|
default:
|
|
AssertMsg( "No music flag set defined for this start point" );
|
|
}
|
|
|
|
}
|
|
|
|
mission_sfx_helmet_states()
|
|
{
|
|
//DR: this script will wait for a flag to be set, and then set the EQ
|
|
//and volume for the correct suit/helemt state in that part of the mission.
|
|
//It should also function correctly when you jump to checkpoint because
|
|
//now we are using flags, and single linear script. the flags for jumping
|
|
//to checkpoint get set in the script above, mission_music_debug_to_checkpoint_set_flags
|
|
|
|
/*
|
|
//DR: commenting out flags from first part of mission, FOR NOW, since they may have unintended consequences,
|
|
//like the music flags did (triggering events during the black screen intro
|
|
|
|
|
|
flag_wait( "sfx_int_rover_engsuit_nohelmet_press" ); //(in rover in engineering suit)
|
|
if( !flag( "sfx_int_rover_engsuit_helmet_press" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( undefined, "moon_engsuit_pres_helmet_off", "null" );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_int_rover_engsuit_helmet_press" ); //(in rover after helmet on)
|
|
if( !flag( "sfx_int_rover_engsuit_helmet_depress" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( undefined, "moon_engsuit_pres_helmet_on", "amb_space_suit_amb", 1.5 );
|
|
}
|
|
|
|
|
|
flag_wait( "sfx_int_rover_engsuit_helmet_depress" ); //(in rover after helmet on and airlock depressurized)
|
|
//set eq and volume here
|
|
//currently no change since there aren't any sounds that continue past the parking of the rover
|
|
//however, if we had some hydraulics, and the music still going, then we could have those fade out
|
|
//during the depressurization of the airlock
|
|
if( !flag( "sfx_ext_surface_engsuit_depress" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( undefined, "moon_engsuit_depres_helmet_on", "amb_space_suit_amb", 1.5 );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_ext_surface_engsuit_depress" ); //(on moon surface in engineering suit)
|
|
//set eq and volume here
|
|
//currently no change since there aren't any sounds that continue past the parking of the rover
|
|
//this is most likely the same as the previous state, depressurized in the rover
|
|
if( !flag( "sfx_int_rover_engsuit_helmet_depress2" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( undefined, "moon_engsuit_depres_helmet_on", "amb_space_suit_amb", 0.0 );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_int_rover_engsuit_helmet_depress2" ); //(driving back in rover - not sure if decided rover is press or depress at this point)
|
|
if( !flag( "sfx_ext_surface_engsuit_semipress" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( undefined, "moon_engsuit_depres_helmet_on", "amb_space_suit_amb" );
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
flag_wait( "sfx_ext_surface_engsuit_semipress" ); //(walking from rover to airlock in a semi-busted engineering suit)
|
|
//iprintlnbold("sfx_ext_surface_engsuit_semipress");
|
|
if( !flag( "sfx_int_base_engsuit_helmet_press" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon", "moon_engsuit_depres_helmet_on", "amb_space_suit_amb" );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_int_base_engsuit_helmet_press" ); //(repressurized in the airlock with engineering suit - helmet visor still down).
|
|
//iprintlnbold("sfx_int_base_engsuit_helmet_press");
|
|
if( !flag( "sfx_int_base_engsuit_nohelmet_press" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon_pres", "moon_engsuit_pres_helmet_on", "amb_space_suit_amb", 1.5 );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_int_base_engsuit_nohelmet_press" ); //(running with helmet up from airlock to armory through pressurized base)
|
|
//iprintlnbold("sfx_int_base_engsuit_nohelmet_press");
|
|
if( !flag( "sfx_int_base_milsuit_press" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "", "moon_engsuit_pres_helmet_off", "null", 1.5 );
|
|
}
|
|
|
|
|
|
flag_wait( "sfx_int_base_milsuit_press" ); //(after putting on military suit - this one has the laser mic)
|
|
//iprintlnbold("sfx_int_base_milsuit_press");
|
|
if( !flag( "sfx_int_base_milsuit_depress" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon_pres", "moon_milsuit_pres_helmet_on", "null", 1.5 );
|
|
}
|
|
|
|
|
|
|
|
flag_wait( "sfx_int_base_milsuit_depress" ); //(after rapid depressurization of armoy breach - this one has the laser mic)
|
|
//iprintlnbold("sfx_int_base_milsuit_depress");
|
|
if( !flag( "sfx_int_base_milsuit_press2" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon", "moon_milsuit_depres_helmet_on", "null", 1.5 );
|
|
|
|
//set ambience
|
|
//thread maps\_ambient::play_ambience( "nx_lunar_armory_depress" );
|
|
//thread maps\_ambient::start_ambient_event( "nx_lunar_armory_depress" );
|
|
wait 2.0;
|
|
thread maps\_utility::set_ambient( "nx_lunar_armory_depress" );
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JL: This sequence has been removed for the GL
|
|
flag_wait( "sfx_int_base_milsuit_press2" ); //(after going through airlock to repressurize)
|
|
//iprintlnbold("sfx_int_base_milsuit_press2");
|
|
if( !flag( "sfx_ext_surface_milsuit_depress" ) )
|
|
{
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon_pres", "moon_milsuit_pres_helmet_on", "amb_space_suit_amb", 2.1 );
|
|
}
|
|
*/
|
|
|
|
|
|
flag_wait( "sfx_ext_surface_milsuit_depress" ); //(after going through airloack to depresurize)
|
|
//iprintlnbold("sfx_ext_surface_milsuit_depress");
|
|
level._player thread maps\nx_lunar_util::lunar_suit_state_settings( "moon", "moon_milsuit_depres_helmet_on", "amb_space_suit_amb", 2.1 );
|
|
|
|
thread maps\_utility::set_ambient( "nx_lunar_exterior_depress" );
|
|
//thread maps\_ambient::play_ambience( "nx_lunar_exterior_depress" );
|
|
//thread maps\_ambient::start_ambient_event( "nx_lunar_exterior_depress" );
|
|
|
|
}
|
|
|
|
mission_threat_setup()
|
|
{
|
|
CreateThreatBiasGroup( "enemy_troops" );
|
|
CreateThreatBiasGroup( "enemy_in_shadows" );
|
|
CreateThreatBiasGroup( "enemy_rover_backup" );
|
|
CreateThreatBiasGroup( "road_runners" );
|
|
CreateThreatBiasGroup( "player_squad" );
|
|
CreateThreatBiasGroup( "player" );
|
|
|
|
level._player SetThreatBiasGroup( "player" );
|
|
|
|
IgnoreEachOther( "player_squad", "enemy_in_shadows" );
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Intro Checkpoint - KenM *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
intro()
|
|
{
|
|
maps\nx_lunar_intro::intro();
|
|
}
|
|
|
|
intro_start()
|
|
{
|
|
maps\nx_lunar_intro::intro_start();
|
|
}
|
|
|
|
|
|
//*******************************************************************
|
|
// Rover Chase Checkpoint - KenM *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
rover_chase()
|
|
{
|
|
maps\nx_lunar_intro::rover_chase();
|
|
}
|
|
|
|
rover_chase_start()
|
|
{
|
|
maps\nx_lunar_intro::rover_chase_start();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Get to the Armory - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
get_to_the_armory_start()
|
|
{
|
|
// tagTC<note>: moved to external nx_lunar_get_to_the_armory.gsc
|
|
maps\nx_lunar_get_to_the_armory::get_to_the_armory_start();
|
|
}
|
|
|
|
get_to_the_armory()
|
|
{
|
|
// tagTC<note>: moved to external nx_lunar_get_to_the_armory.gsc
|
|
maps\nx_lunar_get_to_the_armory::get_to_the_armory();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
armory_module_start()
|
|
{
|
|
maps\nx_lunar_escape_interior::armory_module_start();
|
|
}
|
|
|
|
armory_module()
|
|
{
|
|
maps\nx_lunar_escape_interior::armory_module();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
life_support_module_start()
|
|
{
|
|
maps\nx_lunar_escape_interior::life_support_module_start();
|
|
}
|
|
|
|
life_support_module()
|
|
{
|
|
maps\nx_lunar_escape_interior::life_support_module();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
living_module_start()
|
|
{
|
|
maps\nx_lunar_escape_interior::living_module_start();
|
|
}
|
|
|
|
living_module()
|
|
{
|
|
maps\nx_lunar_escape_interior::living_module();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
exterior_vista_start()
|
|
{
|
|
maps\nx_lunar_escape_interior::exterior_vista_start();
|
|
}
|
|
|
|
exterior_vista()
|
|
{
|
|
maps\nx_lunar_escape_interior::exterior_vista();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
/*
|
|
crew_module_start()
|
|
{
|
|
maps\nx_lunar_escape_interior::crew_module_start();
|
|
}
|
|
|
|
crew_module()
|
|
{
|
|
maps\nx_lunar_escape_interior::crew_module();
|
|
}
|
|
*/
|
|
|
|
//*******************************************************************
|
|
// Escape Interior - Travis Chen *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
airlock_exterior_start()
|
|
{
|
|
maps\nx_lunar_escape_exterior::airlock_exterior_start();
|
|
}
|
|
|
|
airlock_exterior()
|
|
{
|
|
maps\nx_lunar_escape_exterior::airlock_exterior();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
mining_valley_start()
|
|
{
|
|
maps\nx_lunar_escape_exterior::mining_valley_start();
|
|
}
|
|
|
|
mining_valley()
|
|
{
|
|
maps\nx_lunar_escape_exterior::mining_valley();
|
|
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
rough_terrain_start()
|
|
{
|
|
maps\nx_lunar_escape_exterior::rough_terrain_start();
|
|
}
|
|
|
|
rough_terrain()
|
|
{
|
|
maps\nx_lunar_escape_exterior::rough_terrain();
|
|
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
rover_battle_start()
|
|
{
|
|
maps\nx_lunar_escape_exterior::rover_battle_start();
|
|
}
|
|
|
|
rover_battle()
|
|
{
|
|
maps\nx_lunar_escape_exterior::rover_battle();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
into_shadows_start()
|
|
{
|
|
maps\nx_lunar_escape_exterior::into_shadows_start();
|
|
}
|
|
|
|
into_shadows()
|
|
{
|
|
maps\nx_lunar_escape_exterior::into_shadows();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
vehicle_bay_return_start()
|
|
{
|
|
maps\nx_lunar_take_back_control::vehicle_bay_return_start();
|
|
}
|
|
|
|
vehicle_bay_return()
|
|
{
|
|
maps\nx_lunar_take_back_control::vehicle_bay_return();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
take_back_control_start()
|
|
{
|
|
maps\nx_lunar_take_back_control::take_back_control_start();
|
|
}
|
|
|
|
take_back_control()
|
|
{
|
|
maps\nx_lunar_take_back_control::take_back_control();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
take_back_control_ending_start()
|
|
{
|
|
maps\nx_lunar_take_back_control::take_back_control_ending_start();
|
|
}
|
|
|
|
take_back_control_ending()
|
|
{
|
|
maps\nx_lunar_take_back_control::take_back_control_ending();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
// Empty logic for debug no_game point
|
|
no_game_moon()
|
|
{
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|