nx1-gsc-dump/maps/nx_lunar_anim.gsc

3437 lines
136 KiB
Plaintext

//****************************************************************************
// **
// Confidential - (C) Activision Publishing, Inc. 2010 **
// **
//****************************************************************************
// **
// Module: Anim Support **
// **
// Created: DATE - CREATOR **
// **
//****************************************************************************
#include maps\_anim;
#include maps\_utility;
#include common_scripts\utility;
#include maps\_hud_util;
#include maps\_nx_vignette_util;
main()
{
generic_human();
script_models();
dialog();
lsp_door_anims();
player_anims();
charlie_anims();
vehicle_anims();
// Anim Vignettes
level thread vignettes();
}
//*******************************************************************
// *
// *
//*******************************************************************
// Vignettes is threaded at the start of the mission, each anim dept
// implemented vignette should be threaded here a block until triggered
vignettes()
{
switch ( level._start_point )
{
case "default":
case "no_game_moon":
case "intro":
case "rover_chase":
case "get_to_the_armory":
// tagTC<note> - INTEGRATED, nx_lunar.gsc in breach_group_01_thread
// Vehicle bay rover hatch breach: 2 opfor, 2 civ
// level thread vignette_register( ::vignette_vehiclebay_breach_spawn, "vignette_vh_bay_breach" );
// Vehicle bay player stumbles through airlock: player_rig
level thread vignette_register( ::vignette_vehiclebay_breach_player_enters_airlock, "vignette_vh_bay_breach" );
// topfloor_ breach vignette
level thread vignette_register( ::top_floor_breach_spawn, "sfx_ext_surface_engsuit_semipress" );
// Scientist run through the first hub lower floor: civ
//level thread vignette_register( ::vignette_scientist_run_01_spawn, "scientist_run" );
// New Taser Scene
// KenM - Calling this from GTTA script for AI victim
// level thread vignette_register( ::taser_spawn, "vignette_taser" );
// Falcon gives you a Taser
level thread vignette_register( ::vignette_falcon_taser_handoff, "falcon_taser_handoff" );
// Falcon tazes an enemy who falls over the railing: ally, civ
// level thread vignette_register( ::vignette_falcon_taser_spawn, "falcon_taser_vignette" );
// Falcon waits outside the airlock and loops.
// level thread vignette_register( ::armory_entrance_falcon_spawn, "vignette_armory_entrance" );
// Spider waits outside the airlock and walks backwards to the door.
level thread vignette_register( ::armory_entrance_spider_spawn, "vignette_armory_entrance_spider" );
// Player enters the armory and Eagle hands you a helmet.
level thread vignette_register( ::armory_entrance_player_spawn, "vignette_armory_enter" );
case "armory_module":
// Armory Breach - Spider Dies
// tagTC<note> - INTEGRATED in nx_lunar_escape_interior.gsc in ally_armory_breach_vignette
// level thread vignette_register( ::armory_breach_spawn, "vignette_armory_breach" );
case "life_support_module":
case "living_module":
// Scientist dead in the living hallway
// tagTC<note> - INTEGRATED in nx_lunar_escape_interior.gsc
// level thread vignette_register( ::scientist_dead1_spawn, "vignette_scientist_dead1" );
case "exterior_vista":
case "airlock_exterior":
case "mining_valley":
case "rough_terrain":
case "rover_battle":
// Falcon death scene
level thread vignette_register( ::falcon_death_spawn, "vignette_falcon_death" );
case "into_shadows":
case "vehicle_bay_return":
case "take_back_control":
// tagTC<note> - INTEGRATED, nx_lunar_take_back_control.gsc, in take_back_control_greeting_vignette
// vignette_register( ::end_greet_spawn, "vignette_end_greet" );
// tagTC<note> - INTEGRATED, nx_lunar_take_back_control.gsc
// End controls scene
// level thread vignette_register( ::end_controls_spawn, "vignette_end_controls" );
case "take_back_control_ending":
}
}
//*******************************************************************
// *
// *
//*******************************************************************
#using_animtree("generic_human");
generic_human()
{
// wakeup in vehicle bay
level._scr_anim[ "ally_01" ][ "vehiclebay_wakeup" ] = %nx_tp_lunar_vehiclebay_wakeup_ally_01;
level._scr_anim[ "ally_02" ][ "vehiclebay_wakeup" ] = %nx_tp_lunar_vehiclebay_wakeup_ally_02;
addNotetrack_customFunction( "ally_02", "rover_fire_bullet", ::wakeup_ally_shot );
// addNotetrack_customFunction( "ally_01", "ally_hit_ground", maps\nx_lunar_get_to_the_armory::fx_lunar_vehiclebay_wakeup_ally_01_hit_ground );
addNotetrack_customFunction( "ally_02", "ally_shot", maps\nx_lunar_get_to_the_armory::fx_lunar_vehiclebay_wakeup_ally_02_shot );
// addNotetrack_customFunction( "ally_02", "ally_hit_ground", maps\nx_lunar_get_to_the_armory::fx_lunar_vehiclebay_wakeup_ally_02_hit_ground );
// Hall Explosion
level._scr_anim[ "opfor" ][ "hall_explosion" ] = %nx_tp_lunar_hall_explode_opfor;
// Worker at airlock door
level._scr_anim[ "worker" ][ "airlock_door_death" ] = %nx_tp_lunar_airlockdeath_ally_01;
level._scr_sound[ "worker" ][ "airlock_door_death" ] = "scn_lunar_engineer_killed";
// generic ally door open/breach
level._scr_anim[ "eagle" ][ "ally_door_breach" ] = %nx_tp_lunar_ally_breach_ally_01;
level._scr_anim[ "hawk" ][ "ally_door_breach" ] = %nx_tp_lunar_ally_breach_ally_01;
level._scr_anim[ "falcon" ][ "ally_door_breach" ] = %nx_tp_lunar_ally_breach_ally_02;
addNotetrack_customFunction( "eagle", "door_open", ::ally_door_keypad_cycle );
addNotetrack_customFunction( "hawk", "door_open", ::ally_door_keypad_cycle );
level._scr_anim[ "eagle" ][ "ally_door_breach_idle" ] = [ %tp_moon_coverR_stand_alert_idle ];
level._scr_anim[ "hawk" ][ "ally_door_breach_idle" ] = [ %tp_moon_coverR_stand_alert_idle ];
level._scr_anim[ "falcon" ][ "ally_door_breach_idle" ] = [ %tp_moon_coverL_stand_alert_idle ];
// Armory Enter - Falcon and Spider wait outside
// KenM note: Falcon and Spider have been swapped for naiming consistency
level._scr_anim[ "spider" ][ "armory_entrance_spider" ][ 0 ] = %nx_tp_lunar_armory_entrance_falcon;
level._scr_anim[ "falcon" ][ "armory_entrance_falcon" ] = %nx_tp_lunar_armory_entrance_spider;
// Armory Enter - Eagle hands you helmet.
level._scr_anim[ "eagle" ][ "armory_entrance_player" ] = %nx_tp_lunar_armory_entrance_eagle;
// Armory Breach - Looping Anims
level._scr_anim[ "eagle" ][ "armory_breach_loop" ][ 0 ] = %nx_tp_lunar_armory_breach_eagle_loop;
level._scr_anim[ "spider" ][ "armory_breach_loop" ][ 0 ] = %nx_tp_lunar_armory_breach_spider_loop;
level._scr_anim[ "falcon" ][ "armory_breach_loop" ][ 0 ] = %nx_tp_lunar_armory_breach_falcon_loop;
// Armory Breach - Spider Dies
level._scr_anim[ "eagle" ][ "armory_breach_explosion" ] = %nx_tp_lunar_armory_breach_eagle;
level._scr_anim[ "falcon" ][ "armory_breach_explosion" ] = %nx_tp_lunar_armory_breach_falcon;
level._scr_anim[ "spider" ][ "armory_breach_explosion" ] = %nx_tp_lunar_armory_breach_spider;
// opfor door breach
level._scr_anim[ "opfor_01" ][ "opfor_door_breach" ] = %nx_tp_lunar_opfor_door_breach_opfor_01_breach;
// level._scr_sound[ "opfor_01" ][ "opfor_door_breach" ] = "scn_lunar_door_breach2";
level._scr_anim[ "opfor_02" ][ "opfor_door_breach" ] = %nx_tp_lunar_opfor_door_breach_opfor_02_breach;
level._scr_anim[ "opfor_01" ][ "opfor_door_breach_loop" ][ 0 ] = %nx_tp_lunar_opfor_door_breach_opfor_01_loop;
level._scr_anim[ "opfor_02" ][ "opfor_door_breach_loop" ][ 0 ] = %nx_tp_lunar_opfor_door_breach_opfor_02_loop;
level._scr_anim[ "opfor_01" ][ "opfor_door_breach_detonate" ] = %nx_tp_lunar_opfor_door_breach_opfor_01_detonate;
level._scr_anim[ "opfor_02" ][ "opfor_door_breach_detonate" ] = %nx_tp_lunar_opfor_door_breach_opfor_02_detonate;
// hawk intro anims
level._scr_anim[ "hawk_food" ][ "hawk_intro" ] = %nx_tp_lunar_hawkentrance_opfor_01;
level._scr_anim[ "hawk" ][ "hawk_intro" ] = %nx_tp_lunar_hawkentrance_hawk_01;
level._scr_sound[ "hawk" ][ "hawk_intro" ] = "scn_vandenberg_meet";
// vehicle bay airlock breach anims
level._scr_anim[ "civ_01" ][ "vehiclebay_breach_loop" ][ 0 ] = %nx_tp_lunar_vehiclebay_breach_loop_civ_01;
level._scr_anim[ "civ_02" ][ "vehiclebay_breach_loop" ][ 0 ] = %nx_tp_lunar_vehiclebay_breach_loop_civ_02;
level._scr_anim[ "civ_01" ][ "vehiclebay_breach" ] = %nx_tp_lunar_vehiclebay_breach_civ_01;
level._scr_anim[ "civ_02" ][ "vehiclebay_breach" ] = %nx_tp_lunar_vehiclebay_breach_civ_02;
level._scr_anim[ "opfor_01" ][ "vehiclebay_breach" ] = %nx_tp_lunar_vehiclebay_breach_opfor_01;
// level._scr_sound[ "opfor_01" ][ "vehiclebay_breach" ] = "scn_lunar_door_breach1";
level._scr_anim[ "opfor_02" ][ "vehiclebay_breach" ] = %nx_tp_lunar_vehiclebay_breach_opfor_02;
addNotetrack_customFunction( "opfor_01", "breach_charge", ::breach_charge );
addNotetrack_customFunction( "opfor_01", "breach_detonate", ::breach_detonate );
// Vignette civilians as script_models
level._scr_model[ "model_civ_01" ] = "nx_civ_astronaut_body_complete_a";
level._scr_model[ "model_civ_02" ] = "nx_civ_astronaut_body_complete_b";
level._scr_model[ "model_civ_03" ] = "nx_civ_astronaut_body_complete_c";
level._scr_model[ "model_civ_04" ] = "nx_civ_astronaut_body_complete_d";
level._scr_model[ "model_civ_05" ] = "nx_civ_astronaut_body_complete_e";
level._scr_model[ "model_civ_06" ] = "nx_civ_astronaut_body_complete_c";
level._scr_model[ "model_civ_07" ] = "nx_civ_astronaut_body_complete_b";
level._scr_animtree[ "model_civ_01" ] = #animtree;
level._scr_animtree[ "model_civ_02" ] = #animtree;
level._scr_animtree[ "model_civ_03" ] = #animtree;
level._scr_animtree[ "model_civ_04" ] = #animtree;
level._scr_animtree[ "model_civ_05" ] = #animtree;
level._scr_animtree[ "model_civ_06" ] = #animtree;
level._scr_animtree[ "model_civ_07" ] = #animtree;
// Vehicle bay civilians run up stairs
level._scr_anim[ "model_civ_03" ][ "civ_up_stairs" ] = %tp_moon_civ_stair_up;
level._scr_anim[ "model_civ_04" ][ "civ_up_stairs" ] = %tp_moon_civ_stair_turn_up;
// Hub room civilians run away
level._scr_anim[ "model_civ_01" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_a;
level._scr_anim[ "model_civ_02" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_b;
level._scr_anim[ "model_civ_03" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_c;
level._scr_anim[ "model_civ_04" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_d;
level._scr_anim[ "model_civ_05" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_e;
level._scr_anim[ "model_civ_06" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_f;
level._scr_anim[ "model_civ_07" ][ "civ_hub_room" ] = %tp_moon_civ_run_away_door_g;
addNotetrack_customFunction( "model_civ_02", "door_close", ::close_hub_door );
addNotetrack_customFunction( "model_civ_04", "explosion", ::hub_room_explosion );
// Command center civilians get shot
level._scr_anim[ "model_civ_01" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_a;
level._scr_anim[ "model_civ_02" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_b;
level._scr_anim[ "model_civ_03" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_c;
level._scr_anim[ "model_civ_04" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_d;
level._scr_anim[ "model_civ_05" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_e;
level._scr_anim[ "model_civ_06" ][ "cnc_civ_shot" ] = %tp_moon_civ_run_control_center_f;
addNotetrack_customFunction( "model_civ_01", "bullet_hit", ::cnc_enemy_shoots_civ_01 );
addNotetrack_customFunction( "model_civ_02", "bullet_hit", ::cnc_enemy_shoots_civ_02 );
addNotetrack_customFunction( "model_civ_03", "bullet_hit", ::cnc_enemy_shoots_civ_03 );
addNotetrack_customFunction( "model_civ_04", "bullet_hit", ::cnc_enemy_shoots_civ_04 );
addNotetrack_customFunction( "model_civ_05", "bullet_hit", ::cnc_enemy_shoots_civ_05 );
addNotetrack_customFunction( "model_civ_06", "bullet_hit", ::cnc_enemy_shoots_civ_06 );
// topfloor breach
level._scr_anim[ "model_civ_01" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally1;
level._scr_anim[ "model_civ_02" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally2;
level._scr_anim[ "model_civ_03" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally3;
level._scr_anim[ "model_civ_04" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally4;
level._scr_anim[ "vignette_playerlegs" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_playerlegs;
level._scr_anim[ "model_civ_05" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally5;
level._scr_anim[ "model_civ_06" ][ "top_floor_breach" ] = %nx_tp_lunar_topfloorbreach_ally6;
// new taser scene
level._scr_anim[ "falcon" ][ "taser" ] = %nx_tp_lunar_taser_ally;
level._scr_anim[ "opfor" ][ "taser" ] = %nx_tp_lunar_taser_opfor;
addNotetrack_customFunction( "opfor", "taser_fx", ::falcon_shoots_taser );
level._scr_anim[ "falcon" ][ "taser_loop" ][0] = %nx_tp_lunar_taser_ally_loop;
level._scr_anim[ "falcon" ][ "taser_handoff" ] = %nx_tp_lunar_taser_ally_taser_hand_off;
// scientist running
level._scr_anim[ "civ01" ][ "scientist_run_01" ] = %nx_tp_lunar_scientistrun_ally1;
level._scr_anim[ "civ02" ][ "scientist_run_02" ] = %nx_tp_lunar_scientistrun_ally2;
// falcon taser
level._scr_anim[ "falcon" ][ "falcon_taser_handoff" ] = %nx_tp_lunar_taser_handoff;
addNotetrack_customFunction( "falcon", "taser_release", ::taser_release );
level._scr_anim[ "falcon" ][ "falcon_taser" ] = %nx_tp_lunar_taserkill_ally_01;
level._scr_anim[ "opfor" ][ "falcon_taser" ] = %nx_tp_lunar_taserkill_opfor_01;
//scientist hallway dead scene
level._scr_anim[ "vignette_scientist_dead1" ][ "scientist_dead1" ] = %nx_tp_lunar_lostcause_scientist;
level._scr_anim[ "eagle" ][ "scientist_dead1" ] = %nx_tp_lunar_lostcause_ally;
// falcon death
level._scr_anim[ "falcon" ][ "falcon_death" ] = %nx_tp_lunar_falcon_death_falcon;
addNotetrack_customFunction( "falcon", "injured_swap", ::falcon_injured );
level._scr_anim[ "eagle" ][ "falcon_death" ] = %nx_tp_lunar_falcon_death_eagle;
level._scr_anim[ "vignette_falcondeath_opfor1" ][ "falcon_death" ] = %nx_tp_lunar_falcon_death_opfor;
// end greet
level._scr_anim[ "end_greet_body" ][ "end_greet" ] = %nx_tp_lunar_endgreet_body;
addNotetrack_customFunction( "end_greet_body", "vignette_remove_gun", ::vignette_remove_gun );
level._scr_anim[ "hawk" ][ "end_greet" ] = %nx_tp_lunar_endgreet_hawk;
addNotetrack_customFunction( "hawk", "vignette_stow_gun", ::vignette_stow_gun );
addNotetrack_customFunction( "hawk", "vignette_use_breacher", ::vignette_use_breacher );
level._scr_anim[ "pigeon" ][ "end_greet" ] = %nx_tp_lunar_endgreet_ally1;
level._scr_sound[ "hawk" ][ "end_greet" ] = "scn_vandenberg_meet";
//end_controls
//enemy dies
level._scr_anim[ "enemy_body" ][ "end_controls_enemy_die" ] = %nx_tp_lunar_endcontrols_enemy_die;
//hawk and crow enter their loops
level._scr_anim[ "hawk" ][ "end_controls_enter" ] = %nx_tp_lunar_endcontrols_hawk_enter;
level._scr_anim[ "crow" ][ "end_controls_enter" ] = %nx_tp_lunar_endcontrols_crow_enter;
//hawk and crow lot
level._scr_anim[ "hawk" ][ "end_controls_loop" ][0] = %nx_tp_lunar_endcontrols_hawk_loop;
level._scr_anim[ "crow" ][ "end_controls_loop" ][0] = %nx_tp_lunar_endcontrols_crow_loop;
//vignette
level._scr_anim[ "enemy_body" ][ "end_controls" ] = %nx_tp_lunar_endcontrols_enemy_dead_remove;
level._scr_anim[ "hawk" ][ "end_controls" ] = %nx_tp_lunar_endcontrols_hawk_exit;
level._scr_anim[ "crow" ][ "end_controls" ] = %nx_tp_lunar_endcontrols_crow_exit;
}
#using_animtree("script_model");
script_models()
{
//Charlie Intro
level._scr_animtree[ "helmet_charlie" ] = #animtree;
level._scr_anim[ "helmet_charlie" ][ "rover_intro_drive" ] = %nx_pr_lunar_rover_intro_drive_helmet_charlie;
level._scr_anim[ "helmet_charlie" ][ "rover_intro_idle" ] = %nx_pr_lunar_rover_intro_idle_helmet_charlie;
level._scr_anim[ "helmet_charlie" ][ "rover_intro_jump" ] = %nx_pr_lunar_rover_intro_jump_helmet_charlie;
level._scr_model[ "helmet_charlie" ] = "nx_pr_lunar_helm_scripted";
level._scr_animtree[ "helmet_player" ] = #animtree;
level._scr_anim[ "helmet_player" ][ "rover_intro_drive" ] = %nx_pr_lunar_rover_intro_drive_helmet_player;
level._scr_model[ "helmet_player" ] = "nx_pr_lunar_helm_scripted";
// Tower Collapse
level._scr_animtree[ "twr_bottom" ] = #animtree;
level._scr_anim[ "twr_bottom" ][ "tower_fall" ] = %nx_pr_lunar_tower_collapse_twr_bottom;
level._scr_model[ "twr_bottom" ] = "nx_pr_lunar_tower_bottom";
level._scr_animtree[ "twr_top" ] = #animtree;
level._scr_anim[ "twr_top" ][ "tower_fall" ] = %nx_pr_lunar_tower_collapse_twr_top;
level._scr_model[ "twr_top" ] = "nx_pr_lunar_tower_top";
// tagTC<note> - removing rover crash tent anims for now (was causing errors when attempting to exclude ken's geo)
// Rover Crash
// level._scr_animtree[ "tent" ] = #animtree;
// level._scr_anim[ "tent" ][ "rover_crash" ] = %nx_pr_lunar_rovercrash_tent_anim;
// level._scr_model[ "tent" ] = "nx_pr_lunar_rovercrash_tent";
// Vehicle Bay Breach
level._scr_animtree[ "helmet_player" ] = #animtree;
level._scr_anim[ "helmet_player" ][ "vehiclebay_breach_player" ] = %nx_pr_lunar_vehiclebay_breach_helmet;
level._scr_model[ "helmet_player" ] = "nx_pr_lunar_helm_scripted";
addNotetrack_customFunction( "helmet_player", "spawn_helmet", ::spawn_helmet );
addNotetrack_customFunction( "helmet_player", "helmet_hits_ground", ::helmet_hits_ground );
// Hall Explosion Debris
level._scr_animtree[ "debris_01" ] = #animtree;
level._scr_anim[ "debris_01" ][ "hall_explosion" ] = %nx_pr_lunar_hall_explode_debris_01;
level._scr_sound[ "debris_01" ][ "hall_explosion" ] = "nx_lunar_hallway_explode";
level._scr_model[ "debris_01" ] = "nx_pr_lunar_halldebris0";
level._scr_animtree[ "debris_02" ] = #animtree;
level._scr_anim[ "debris_02" ][ "hall_explosion" ] = %nx_pr_lunar_hall_explode_debris_02;
level._scr_model[ "debris_02" ] = "nx_pr_lunar_halldebris1";
// Taser Handoff
level._scr_animtree[ "taser" ] = #animtree;
level._scr_anim[ "taser" ][ "taser" ] = %nx_pr_lunar_taser;
level._scr_model[ "taser" ] = "weapon_taser";
level._scr_animtree[ "taser" ] = #animtree;
level._scr_anim[ "taser" ][ "taser_loop" ][0] = %nx_pr_lunar_taser_loop;
level._scr_model[ "taser" ] = "weapon_taser";
level._scr_animtree[ "taser" ] = #animtree;
level._scr_anim[ "taser" ][ "taser_handoff" ] = %nx_pr_lunar_taser_hand_off;
level._scr_model[ "taser" ] = "weapon_taser";
addNotetrack_customFunction( "taser", "prop_delete", ::taser_catch );
// CNC civilian slaughter chairs
level._scr_animtree[ "chair_01" ] = #animtree;
level._scr_anim[ "chair_01" ][ "cnc_civ_shot" ] = %nx_pr_lunar_swivel_chair_e;
level._scr_model[ "chair_01" ] = "com_office_chair_black";
level._scr_animtree[ "chair_02" ] = #animtree;
level._scr_anim[ "chair_02" ][ "cnc_civ_shot" ] = %nx_pr_lunar_swivel_chair_f;
level._scr_model[ "chair_02" ] = "com_office_chair_black";
// Armory Entrance - Player enters airlock and grabs helmet.
level._scr_animtree[ "cabinet_door" ] = #animtree;
level._scr_anim[ "cabinet_door" ][ "armory_entrance_player" ] = %nx_pr_lunar_armory_entrance_cabinet_door;
level._scr_model[ "cabinet_door" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "helmet" ] = #animtree;
level._scr_anim[ "helmet" ][ "armory_entrance_player" ] = %nx_pr_lunar_armory_entrance_helmet;
level._scr_model[ "helmet" ] = "nx_pr_lunar_helm_scripted";
addNotetrack_customFunction( "helmet", "hide_helmet", ::hide_helmet );
// Armory Breach Explosion - Props on shelves.
level._scr_animtree[ "falcon_crate" ] = #animtree;
level._scr_anim[ "falcon_crate" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_falcon_crate_02;
level._scr_model[ "falcon_crate" ] = "nx_moonbase_crate_01";
level._scr_animtree[ "spider_crate" ] = #animtree;
level._scr_anim[ "spider_crate" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_spider_crate_01;
level._scr_model[ "spider_crate" ] = "nx_container_02";
addNotetrack_customFunction( "spider_crate", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_01" ] = #animtree;
level._scr_anim[ "crate_01" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_01;
level._scr_model[ "crate_01" ] = "nx_ammobox_02_open";
level._scr_animtree[ "crate_02" ] = #animtree;
level._scr_anim[ "crate_02" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_02;
level._scr_model[ "crate_02" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_03" ] = #animtree;
level._scr_anim[ "crate_03" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_03;
level._scr_model[ "crate_03" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_04" ] = #animtree;
level._scr_anim[ "crate_04" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_04;
level._scr_model[ "crate_04" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_05" ] = #animtree;
level._scr_anim[ "crate_05" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_05;
level._scr_model[ "crate_05" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_06" ] = #animtree;
level._scr_anim[ "crate_06" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_06;
level._scr_model[ "crate_06" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_07" ] = #animtree;
level._scr_anim[ "crate_07" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_07;
level._scr_model[ "crate_07" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_08" ] = #animtree;
level._scr_anim[ "crate_08" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_08;
level._scr_model[ "crate_08" ] = "nx_ammobox_02";
level._scr_animtree[ "crate_09" ] = #animtree;
level._scr_anim[ "crate_09" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_09;
level._scr_model[ "crate_09" ] = "nx_ammobox_03_open";
level._scr_animtree[ "crate_10" ] = #animtree;
level._scr_anim[ "crate_10" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_10;
level._scr_model[ "crate_10" ] = "nx_ammobox_03_open";
level._scr_animtree[ "crate_11" ] = #animtree;
level._scr_anim[ "crate_11" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_11;
level._scr_model[ "crate_11" ] = "nx_ammobox_03_open";
level._scr_animtree[ "crate_12" ] = #animtree;
level._scr_anim[ "crate_12" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_12;
level._scr_model[ "crate_12" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_13" ] = #animtree;
level._scr_anim[ "crate_13" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_13;
level._scr_model[ "crate_13" ] = "nx_ammobox_03";
addNotetrack_customFunction( "crate_13", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_14" ] = #animtree;
level._scr_anim[ "crate_14" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_14;
level._scr_model[ "crate_14" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_15" ] = #animtree;
level._scr_anim[ "crate_15" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_15;
level._scr_model[ "crate_15" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_16" ] = #animtree;
level._scr_anim[ "crate_16" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_16;
level._scr_model[ "crate_16" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_17" ] = #animtree;
level._scr_anim[ "crate_17" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_17;
level._scr_model[ "crate_17" ] = "nx_ammobox_03";
addNotetrack_customFunction( "crate_17", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_18" ] = #animtree;
level._scr_anim[ "crate_18" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_18;
level._scr_model[ "crate_18" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_19" ] = #animtree;
level._scr_anim[ "crate_19" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_19;
level._scr_model[ "crate_19" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_20" ] = #animtree;
level._scr_anim[ "crate_20" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_20;
level._scr_model[ "crate_20" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_21" ] = #animtree;
level._scr_anim[ "crate_21" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_21;
level._scr_model[ "crate_21" ] = "nx_ammobox_03";
addNotetrack_customFunction( "crate_21", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_22" ] = #animtree;
level._scr_anim[ "crate_22" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_22;
level._scr_model[ "crate_22" ] = "nx_ammobox_03";
level._scr_animtree[ "crate_23" ] = #animtree;
level._scr_anim[ "crate_23" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_23;
level._scr_model[ "crate_23" ] = "nx_ammobox_01";
level._scr_animtree[ "crate_24" ] = #animtree;
level._scr_anim[ "crate_24" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_24;
level._scr_model[ "crate_24" ] = "nx_ammobox_01";
level._scr_animtree[ "crate_25" ] = #animtree;
level._scr_anim[ "crate_25" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_25;
level._scr_model[ "crate_25" ] = "nx_ammobox_01";
level._scr_animtree[ "crate_26" ] = #animtree;
level._scr_anim[ "crate_26" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_26;
level._scr_model[ "crate_26" ] = "nx_ammobox_01";
addNotetrack_customFunction( "crate_26", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_27" ] = #animtree;
level._scr_anim[ "crate_27" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_27;
level._scr_model[ "crate_27" ] = "nx_ammobox_01";
addNotetrack_customFunction( "crate_27", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_28" ] = #animtree;
level._scr_anim[ "crate_28" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_28;
level._scr_model[ "crate_28" ] = "nx_ammobox_01";
addNotetrack_customFunction( "crate_28", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_29" ] = #animtree;
level._scr_anim[ "crate_29" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_29;
level._scr_model[ "crate_29" ] = "nx_ammobox_01";
addNotetrack_customFunction( "crate_29", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_30" ] = #animtree;
level._scr_anim[ "crate_30" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_30;
level._scr_model[ "crate_30" ] = "nx_ammobox_01";
addNotetrack_customFunction( "crate_30", "prop_delete", ::prop_delete );
level._scr_animtree[ "crate_31" ] = #animtree;
level._scr_anim[ "crate_31" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_31;
level._scr_model[ "crate_31" ] = "nx_moonbase_plastic_crate_02";
level._scr_animtree[ "crate_32" ] = #animtree;
level._scr_anim[ "crate_32" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_32;
level._scr_model[ "crate_32" ] = "nx_moonbase_plastic_crate_02";
level._scr_animtree[ "crate_33" ] = #animtree;
level._scr_anim[ "crate_33" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_33;
level._scr_model[ "crate_33" ] = "nx_moonbase_plastic_crate_04";
level._scr_animtree[ "crate_34" ] = #animtree;
level._scr_anim[ "crate_34" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_34;
level._scr_model[ "crate_34" ] = "nx_moonbase_plastic_crate_04";
level._scr_animtree[ "crate_35" ] = #animtree;
level._scr_anim[ "crate_35" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_35;
level._scr_model[ "crate_35" ] = "nx_moonbase_plastic_crate_04";
level._scr_animtree[ "crate_36" ] = #animtree;
level._scr_anim[ "crate_36" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_36;
level._scr_model[ "crate_36" ] = "nx_moonbase_plastic_crate_01";
level._scr_animtree[ "crate_37" ] = #animtree;
level._scr_anim[ "crate_37" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_37;
level._scr_model[ "crate_37" ] = "nx_moonbase_plastic_crate_01";
level._scr_animtree[ "crate_38" ] = #animtree;
level._scr_anim[ "crate_38" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_ammo_crate_38;
level._scr_model[ "crate_38" ] = "nx_moonbase_plastic_crate_03";
level._scr_animtree[ "cabinet_01" ] = #animtree;
level._scr_anim[ "cabinet_01" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_01;
level._scr_model[ "cabinet_01" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "cabinet_02" ] = #animtree;
level._scr_anim[ "cabinet_02" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_02;
level._scr_model[ "cabinet_02" ] = "nx_pr_lunar_armory_cabinet_door";
addNotetrack_customFunction( "cabinet_02", "prop_delete", ::prop_delete );
level._scr_animtree[ "cabinet_03" ] = #animtree;
level._scr_anim[ "cabinet_03" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_03;
level._scr_model[ "cabinet_03" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "cabinet_04" ] = #animtree;
level._scr_anim[ "cabinet_04" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_04;
level._scr_model[ "cabinet_04" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "cabinet_05" ] = #animtree;
level._scr_anim[ "cabinet_05" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_05;
level._scr_model[ "cabinet_05" ] = "nx_pr_lunar_armory_cabinet_door";
addNotetrack_customFunction( "cabinet_05", "prop_delete", ::prop_delete );
level._scr_animtree[ "cabinet_06" ] = #animtree;
level._scr_anim[ "cabinet_06" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_06;
level._scr_model[ "cabinet_06" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "cabinet_07" ] = #animtree;
level._scr_anim[ "cabinet_07" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_07;
level._scr_model[ "cabinet_07" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "cabinet_08" ] = #animtree;
level._scr_anim[ "cabinet_08" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_cabinet_08;
level._scr_model[ "cabinet_08" ] = "nx_pr_lunar_armory_cabinet_door";
level._scr_animtree[ "helmet_01" ] = #animtree;
level._scr_anim[ "helmet_01" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_helmet_01;
level._scr_model[ "helmet_01" ] = "nx_pr_lunar_helm_scripted";
addNotetrack_customFunction( "helmet_01", "prop_delete", ::prop_delete );
level._scr_animtree[ "helmet_02" ] = #animtree;
level._scr_anim[ "helmet_02" ][ "armory_breach_explosion" ] = %nx_pr_lunar_armory_breach_helmet_02;
level._scr_model[ "helmet_02" ] = "nx_pr_lunar_helm_scripted";
addNotetrack_customFunction( "helmet_02", "prop_delete", ::prop_delete );
//falcon death blood spurt origin
level._scr_animtree[ "blood_origin" ] = #animtree;
level._scr_anim[ "blood_origin" ][ "falcon_death" ] = %nx_vh_lunar_falcon_bloodspurt_origin;
level._scr_model[ "blood_origin" ] = "nx_pr_lunar_falcondeath_bloodorigin";
//top floor breach
level._scr_animtree[ "model6" ] = #animtree;
level._scr_anim[ "model6" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_metalshutter_anim;
level._scr_anim[ "model6" ][ "into_shadows_shutter_open" ] = %nx_pr_lunar_metalshutter_open_anim; // Re-open Anim
level._scr_model[ "model6" ] = "nx_pr_lunar_topfloorbreach_metalshutter";
level._scr_animtree[ "model8" ] = #animtree;
level._scr_anim[ "model8" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_crate_01;
level._scr_model[ "model8" ] = "nx_moonbase_crate_01";
level._scr_animtree[ "ammo_box_1" ] = #animtree;
level._scr_anim[ "ammo_box_1" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_AmmoBox_01;
level._scr_model[ "ammo_box_1" ] = "nx_ammobox_01";
level._scr_animtree[ "ammo_box_2" ] = #animtree;
level._scr_anim[ "ammo_box_2" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_Ammo_02;
level._scr_model[ "ammo_box_2" ] = "nx_ammobox_02";
level._scr_animtree[ "ammo_box_2_open" ] = #animtree;
level._scr_anim[ "ammo_box_2_open" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_ammobox_02_open;
level._scr_model[ "ammo_box_2_open" ] = "nx_ammobox_02_open";
level._scr_animtree[ "ammo_box_3" ] = #animtree;
level._scr_anim[ "ammo_box_3" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_Ammo_03;
level._scr_model[ "ammo_box_3" ] = "nx_ammobox_03";
level._scr_animtree[ "ammo_box_3_open" ] = #animtree;
level._scr_anim[ "ammo_box_3_open" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_Ammo_03_Open;
level._scr_model[ "ammo_box_3_open" ] = "nx_ammobox_03_open";
level._scr_animtree[ "crate2" ] = #animtree;
level._scr_anim[ "crate2" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_crate_02;
level._scr_model[ "crate2" ] = "nx_moonbase_crate_01";
level._scr_animtree[ "monitor" ] = #animtree;
level._scr_anim[ "monitor" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_monitor1;
level._scr_model[ "monitor" ] = "nx_moonbase_monitor";
level._scr_animtree[ "temp_handles" ] = #animtree;
level._scr_anim[ "temp_handles" ][ "top_floor_breach" ] = %nx_pr_lunar_topfloorbreach_temphandles;
level._scr_model[ "temp_handles" ] = "nx_pr_lunar_topfloorbreach_temphandles";
//end greet
level._scr_animtree[ "end_greet_detonator" ] = #animtree;
level._scr_anim[ "end_greet_detonator" ][ "end_greet" ] = %nx_pr_lunar_endgreet_detonator;
level._scr_model[ "end_greet_detonator" ] = "nx_pr_lunar_breach_detonator";
//end controls
level._scr_animtree[ "end_controls_panel" ] = #animtree;
level._scr_anim[ "end_controls_panel" ][ "end_controls" ] = %nx_pr_lunar_endcontrols_controls;
level._scr_anim[ "end_controls_panel" ][ "end_controls_idle" ][0] = %nx_pr_lunar_endcontrols_controls_idle;
level._scr_model[ "end_controls_panel" ] = "nx_pr_lunar_controls_panel";
}
#using_animtree( "generic_human" );
lsp_door_anims()
{
// Enemy lsp door
level._scr_anim[ "enemy_lsp_1" ][ "lsp_door" ] = %nx_tp_lunar_chin_hack_01;
level._scr_anim[ "enemy_lsp_2" ][ "lsp_door" ] = %nx_tp_lunar_chin_hack_02;
level._scr_anim[ "enemy_lsp_3" ][ "lsp_door" ] = %nx_tp_lunar_chin_hack_03;
// Life support
level._scr_anim[ "enemy_life_support" ][ "typing" ] = %nx_tp_lunar_typing;
// Ally lsp door
level._scr_anim[ "eagle" ][ "lsp_door" ] = %nx_tp_lunar_hack_door_01;
// Door open
level._scr_anim[ "eagle" ][ "typing" ] = %nx_tp_lunar_typing;
level._scr_anim[ "falcon" ][ "typing" ] = %nx_tp_lunar_typing;
// Dead crew
level._scr_anim[ "generic" ][ "dying_back_death_v2" ] = %dying_back_death_v2;
level._scr_anim[ "generic" ][ "covercrouch_death_3" ] = %covercrouch_death_3;
level._scr_anim[ "generic" ][ "civilian_leaning_death_shot" ] = %civilian_leaning_death_shot;
level._scr_anim[ "generic" ][ "nx_tp_lunar_execution_scientist " ] = %nx_tp_lunar_execution_scientist ;
level._scr_anim[ "generic" ][ "tp_moon_death_cover_crouch_01" ] = %tp_moon_death_cover_crouch_01 ;
level._scr_anim[ "generic" ][ "tp_moon_death_stand_exposed_01" ] = %tp_moon_death_stand_exposed_01 ;
level._scr_anim[ "generic" ][ "crawl_death_front" ] = %crawl_death_front ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_desk_scientist_01" ] = %nx_tp_lunar_dead_desk_scientist_01 ;
level._scr_anim[ "generic" ][ "tp_moon_death_running_forward_01" ] = %tp_moon_death_running_forward_01 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_desk_scientist_03" ] = %nx_tp_lunar_dead_desk_scientist_03 ;
level._scr_anim[ "generic" ][ "civilian_leaning_death" ] = %civilian_leaning_death ;
level._scr_anim[ "generic" ][ "civilian_leaning_death" ] = %civilian_leaning_death ;
level._scr_anim[ "generic" ][ "exposed_death_neckgrab" ] = %exposed_death_neckgrab ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_desk_scientist_02" ] = %nx_tp_lunar_dead_desk_scientist_02 ;
level._scr_anim[ "generic" ][ "nx_tp_wounded_cot_thrashing" ] = %nx_tp_wounded_cot_thrashing ;
level._scr_anim[ "generic" ][ "tp_moon_death_stand_upper_torso_extended_01" ] = %tp_moon_death_stand_upper_torso_extended_01 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_edge_1" ] = %nx_tp_lunar_dead_scientist_edge_1 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_chairdown1" ] = %nx_tp_lunar_dead_scientist_chairdown1 ;
level._scr_anim[ "generic" ][ "run_death_flop" ] = %run_death_flop ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_bed1" ] = %nx_tp_lunar_dead_scientist_bed1 ;
level._scr_anim[ "generic" ][ "death_stand_sniper_leg" ] = %death_stand_sniper_leg ;
level._scr_anim[ "generic" ][ "pistol_death_2" ] = %pistol_death_2 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_chair1" ] = %nx_tp_lunar_dead_scientist_chair1 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_chair2" ] = %nx_tp_lunar_dead_scientist_chair2 ;
level._scr_anim[ "generic" ][ "nx_tp_lunar_dead_scientist_chair3" ] = %nx_tp_lunar_dead_scientist_chair3 ;
}
#using_animtree( "player" );
player_anims()
{
level._scr_animtree[ "player_rig" ] = #animtree;
level._scr_model[ "player_rig" ] = "viewhands_us_lunar_scripted";
// tagTC<note> - wakeup anim from AF_CHASE
level._scr_anim[ "player_rig" ][ "wakeup" ] = %player_afchase_ending_wakeup;
level._scr_anim[ "player_rig" ][ "vehiclebay_wakeup" ] = %nx_fp_lunar_vehiclebay_wakeup_player;
//Rover Intro Drive
level._scr_anim[ "player_rig" ][ "rover_intro_drive" ] = %nx_fp_lunar_rover_intro_drive_player;
level._scr_anim[ "player_rig" ][ "rover_intro_jump" ] = %nx_fp_lunar_rover_intro_jump_player;
addNotetrack_customFunction( "player_rig", "helmet_overlay", ::helmet_overlay );
//Door
level._scr_anim[ "player_rig" ][ "lsp_door" ] = %nx_fp_lunar_hack_door_player;
// Tower Collapse
level._scr_anim[ "player_rig" ][ "tower_fall" ] = %nx_fp_lunar_tower_collapse_player;
// Get Back to Rover
level._scr_anim[ "player_rig" ][ "back_to_rover" ] = %nx_fp_lunar_back_to_rover_player;
// Rover Crash
level._scr_anim[ "player_rig" ][ "rover_crash" ] = %nx_fp_lunar_rovercrash_player;
addNotetrack_customFunction( "player_rig", "visor_crack", ::break_visor );
//top floor breach
level._scr_anim[ "player_rig" ][ "top_floor_breach" ] = %nx_fp_lunar_topfloorbreach_player;
addNotetrack_customFunction( "player_rig", "rover_fires", ::top_floor_breach_rover_fires );
// new taser scene
level._scr_anim[ "player_rig" ][ "taser" ] = %nx_tp_lunar_taser_player;
// Vehicle Bay Breach
level._scr_anim[ "player_rig" ][ "vehiclebay_breach_player" ] = %nx_fp_lunar_vehiclebay_breach_player;
addNotetrack_customFunction( "player_rig", "unhide_arms", ::unhide_arms );
addNotetrack_customFunction( "player_rig", "helmet_overlay_taking_off", ::helmet_overlay_taking_off );
addNotetrack_customFunction( "player_rig", "start_vh_bay_breach", ::start_vh_bay_breach );
addNotetrack_customFunction( "player_rig", "close_airlock_door", ::close_airlock_door );
// Armory Enter And Grab Helmet
level._scr_anim[ "player_rig" ][ "armory_entrance_player" ] = %nx_fp_lunar_armory_entrance_player;
//Armory Enter Grab Rifle
level._scr_anim[ "player_rig" ][ "armory_entrance_grabrifle" ] = %nx_fp_lunar_armory_grabrifle_player;
//falcon death
level._scr_anim[ "player_rig" ][ "falcon_death" ] = %nx_fp_lunar_falcon_death_player;
//addNotetrack_customFunction( "player_rig", "shellshock_start", ::shellshock_start );
//slow motion
addNotetrack_customFunction( "player_rig", "slowmotion_start", ::slowmotion_start );
addNotetrack_customFunction( "player_rig", "slowmotion_stop", ::slowmotion_stop );
//end controls
level._scr_anim[ "player_rig" ][ "end_controls" ] = %nx_fp_lunar_endcontrols_player;
addNotetrack_customFunction( "player_rig", "end_controls_fade_out", ::end_controls_fade_out );
}
dialog()
{
level._scr_radio[ "moon_bc_toarm_fallback" ] = "moon_bc_toarm_fallback";
level._scr_radio[ "moon_bc_toarm_securelsp" ] = "moon_bc_toarm_securelsp";
level._scr_radio[ "moon_eag_ext_afterlsp" ] = "moon_eag_ext_afterlsp";
level._scr_radio[ "moon_eag_ext_approachingsix" ] = "moon_eag_ext_approachingsix";
level._scr_radio[ "moon_eag_ext_cantlose" ] = "moon_eag_ext_cantlose";
level._scr_radio[ "moon_eag_ext_getouthere" ] = "moon_eag_ext_getouthere";
level._scr_radio[ "moon_eag_ext_givesupport" ] = "moon_eag_ext_givesupport";
level._scr_radio[ "moon_eag_ext_hopeothers" ] = "moon_eag_ext_hopeothers";
level._scr_radio[ "moon_eag_ext_needwayout" ] = "moon_eag_ext_needwayout";
level._scr_radio[ "moon_eag_ext_notonlyattack" ] = "moon_eag_ext_notonlyattack";
level._scr_radio[ "moon_eag_ext_onetransmitter" ] = "moon_eag_ext_onetransmitter";
level._scr_radio[ "moon_eag_ext_securelsp" ] = "moon_eag_ext_securelsp";
level._scr_radio[ "moon_eag_ext_useterrain" ] = "moon_eag_ext_useterrain";
level._scr_radio[ "moon_eag_int_findwayaround" ] = "moon_eag_int_findwayaround";
level._scr_radio[ "moon_eag_int_getready" ] = "moon_eag_int_getready";
level._scr_radio[ "moon_eag_int_gladuralive" ] = "moon_eag_int_gladuralive";
level._scr_radio[ "moon_eag_int_halfdestroyed" ] = "moon_eag_int_halfdestroyed";
level._scr_radio[ "moon_eag_int_hangon" ] = "moon_eag_int_hangon";
level._scr_radio[ "moon_eag_int_putthison" ] = "moon_eag_int_putthison";
level._scr_radio[ "moon_eag_int_sittingducks" ] = "moon_eag_int_sittingducks";
level._scr_radio[ "moon_eag_int_soundbad" ] = "moon_eag_int_soundbad";
level._scr_radio[ "moon_eag_int_stayawaydoor" ] = "moon_eag_int_stayawaydoor";
level._scr_radio[ "moon_fal_ext_camefrom" ] = "moon_fal_ext_camefrom";
level._scr_radio[ "moon_fal_ext_friendlies" ] = "moon_fal_ext_friendlies";
level._scr_radio[ "moon_fal_ext_getinside" ] = "moon_fal_ext_getinside";
level._scr_radio[ "moon_fal_ext_incrater" ] = "moon_fal_ext_incrater";
level._scr_radio[ "moon_fal_ext_notime" ] = "moon_fal_ext_notime";
level._scr_radio[ "moon_fal_ext_othersmade" ] = "moon_fal_ext_othersmade";
level._scr_radio[ "moon_fal_ext_theresmore" ] = "moon_fal_ext_theresmore";
level._scr_radio[ "moon_fal_ext_wayblocked" ] = "moon_fal_ext_wayblocked";
level._scr_radio[ "moon_fal_ext_whynow" ] = "moon_fal_ext_whynow";
level._scr_radio[ "moon_fal_toarm_gearup" ] = "moon_fal_toarm_gearup";
level._scr_radio[ "moon_fal_toarm_gotthese" ] = "moon_fal_toarm_gotthese";
level._scr_radio[ "moon_fal_toarm_takethis" ] = "moon_fal_toarm_takethis";
level._scr_radio[ "moon_red1_toarm_getinside" ] = "moon_red1_toarm_getinside";
level._scr_radio[ "moon_red1_toarm_getup" ] = "moon_red1_toarm_getup";
level._scr_radio[ "moon_red1_toarm_nochance" ] = "moon_red1_toarm_nochance";
level._scr_radio[ "moon_red1_toarm_slaughter" ] = "moon_red1_toarm_slaughter";
level._scr_radio[ "moon_ally_breach_01" ] = "moon_ally_breach_01";
level._scr_radio[ "moon_ally_breach_02" ] = "moon_ally_breach_02";
level._scr_radio[ "moon_bc_arm_01" ] = "moon_bc_arm_01";
level._scr_radio[ "moon_bc_arm_02" ] = "moon_bc_arm_02";
level._scr_radio[ "moon_bc_intro_01" ] = "moon_bc_intro_01";
level._scr_radio[ "moon_bc_intro_02" ] = "moon_bc_intro_02";
level._scr_radio[ "moon_bc_intro_03" ] = "moon_bc_intro_03";
level._scr_radio[ "moon_bc_intro_04" ] = "moon_bc_intro_04";
level._scr_radio[ "moon_bc_intro_05" ] = "moon_bc_intro_05";
level._scr_radio[ "moon_bc_intro_06" ] = "moon_bc_intro_06";
level._scr_radio[ "moon_bc_intro_07" ] = "moon_bc_intro_07";
level._scr_radio[ "moon_bc_intro_08" ] = "moon_bc_intro_08";
level._scr_radio[ "moon_bc_intro_09" ] = "moon_bc_intro_09";
level._scr_radio[ "moon_bc_intro_10" ] = "moon_bc_intro_10";
level._scr_radio[ "moon_bc_intro_11" ] = "moon_bc_intro_11";
level._scr_radio[ "moon_bc_intro_12" ] = "moon_bc_intro_12";
level._scr_radio[ "moon_bc_intro_13" ] = "moon_bc_intro_13";
level._scr_radio[ "moon_bc_intro_14" ] = "moon_bc_intro_14";
level._scr_radio[ "moon_bc_intro_15" ] = "moon_bc_intro_15";
level._scr_radio[ "moon_bc_intro_16" ] = "moon_bc_intro_16";
level._scr_radio[ "moon_bc_intro_17" ] = "moon_bc_intro_17";
level._scr_radio[ "moon_bc_intro_18" ] = "moon_bc_intro_18";
level._scr_radio[ "moon_bc_rov_01" ] = "moon_bc_rov_01";
level._scr_radio[ "moon_bc_rov_02" ] = "moon_bc_rov_02";
level._scr_radio[ "moon_bc_rov_03" ] = "moon_bc_rov_03";
level._scr_radio[ "moon_bc_rov_04" ] = "moon_bc_rov_04";
level._scr_radio[ "moon_bc_rov_05" ] = "moon_bc_rov_05";
level._scr_radio[ "moon_bc_rov_06" ] = "moon_bc_rov_06";
level._scr_radio[ "moon_bc_rov_07" ] = "moon_bc_rov_07";
level._scr_radio[ "moon_bc_rov_08" ] = "moon_bc_rov_08";
level._scr_radio[ "moon_bc_rov_09" ] = "moon_bc_rov_09";
level._scr_radio[ "moon_bc_rov_10" ] = "moon_bc_rov_10";
level._scr_radio[ "moon_bc_rov_11" ] = "moon_bc_rov_11";
level._scr_radio[ "moon_bc_rov_12" ] = "moon_bc_rov_12";
level._scr_radio[ "moon_char_intro_01" ] = "moon_char_intro_01";
level._scr_radio[ "moon_char_intro_02" ] = "moon_char_intro_02";
level._scr_radio[ "moon_char_intro_03" ] = "moon_char_intro_03";
level._scr_radio[ "moon_char_intro_04" ] = "moon_char_intro_04";
level._scr_radio[ "moon_char_intro_05" ] = "moon_char_intro_05";
level._scr_radio[ "moon_char_intro_06" ] = "moon_char_intro_06";
level._scr_radio[ "moon_char_intro_07" ] = "moon_char_intro_07";
level._scr_radio[ "moon_char_intro_08" ] = "moon_char_intro_08";
level._scr_radio[ "moon_char_intro_09" ] = "moon_char_intro_09";
level._scr_radio[ "moon_char_intro_10" ] = "moon_char_intro_10";
level._scr_radio[ "moon_char_intro_11" ] = "moon_char_intro_11";
level._scr_radio[ "moon_char_intro_12" ] = "moon_char_intro_12";
level._scr_radio[ "moon_char_intro_13" ] = "moon_char_intro_13";
level._scr_radio[ "moon_char_intro_14" ] = "moon_char_intro_14";
level._scr_radio[ "moon_char_intro_15" ] = "moon_char_intro_15";
level._scr_radio[ "moon_char_intro_16" ] = "moon_char_intro_16";
level._scr_radio[ "moon_char_intro_17" ] = "moon_char_intro_17";
level._scr_radio[ "moon_char_intro_18" ] = "moon_char_intro_18";
level._scr_radio[ "moon_char_intro_19" ] = "moon_char_intro_19";
level._scr_radio[ "moon_char_intro_20" ] = "moon_char_intro_20";
level._scr_radio[ "moon_char_intro_21" ] = "moon_char_intro_21";
level._scr_radio[ "moon_char_intro_22" ] = "moon_char_intro_22";
level._scr_radio[ "moon_char_intro_23" ] = "moon_char_intro_23";
level._scr_radio[ "moon_char_intro_24" ] = "moon_char_intro_24";
level._scr_radio[ "moon_char_intro_25" ] = "moon_char_intro_25";
level._scr_radio[ "moon_char_intro_26" ] = "moon_char_intro_26";
level._scr_radio[ "moon_char_intro_27" ] = "moon_char_intro_27";
level._scr_radio[ "moon_char_intro_28" ] = "moon_char_intro_28";
level._scr_radio[ "moon_char_intro_29" ] = "moon_char_intro_29";
level._scr_radio[ "moon_char_intro_30" ] = "moon_char_intro_30";
level._scr_radio[ "moon_char_intro_31" ] = "moon_char_intro_31";
level._scr_radio[ "moon_char_intro_32" ] = "moon_char_intro_32";
level._scr_radio[ "moon_char_intro_33" ] = "moon_char_intro_33";
level._scr_radio[ "moon_char_intro_34" ] = "moon_char_intro_34";
level._scr_radio[ "moon_char_intro_35" ] = "moon_char_intro_35";
level._scr_radio[ "moon_char_intro_36" ] = "moon_char_intro_36";
level._scr_radio[ "moon_char_intro_37" ] = "moon_char_intro_37";
level._scr_radio[ "moon_char_intro_38" ] = "moon_char_intro_38";
level._scr_radio[ "moon_char_intro_39" ] = "moon_char_intro_39";
level._scr_radio[ "moon_char_intro_40" ] = "moon_char_intro_40";
level._scr_radio[ "moon_char_intro_41" ] = "moon_char_intro_41";
level._scr_radio[ "moon_char_intro_42" ] = "moon_char_intro_42";
level._scr_radio[ "moon_char_intro_43" ] = "moon_char_intro_43";
level._scr_radio[ "moon_char_intro_44" ] = "moon_char_intro_44";
level._scr_radio[ "moon_char_intro_45" ] = "moon_char_intro_45";
level._scr_radio[ "moon_char_intro_46" ] = "moon_char_intro_46";
level._scr_radio[ "moon_char_intro_47" ] = "moon_char_intro_47";
level._scr_radio[ "moon_char_intro_48" ] = "moon_char_intro_48";
level._scr_radio[ "moon_char_intro_49" ] = "moon_char_intro_49";
level._scr_radio[ "moon_char_intro_50" ] = "moon_char_intro_50";
level._scr_radio[ "moon_char_intro_51" ] = "moon_char_intro_51";
level._scr_radio[ "moon_char_intro_52" ] = "moon_char_intro_52";
level._scr_radio[ "moon_char_intro_53" ] = "moon_char_intro_53";
level._scr_radio[ "moon_char_intro_54" ] = "moon_char_intro_54";
level._scr_radio[ "moon_char_intro_55" ] = "moon_char_intro_55";
level._scr_radio[ "moon_char_intro_56" ] = "moon_char_intro_56";
level._scr_radio[ "moon_char_intro_57" ] = "moon_char_intro_57";
level._scr_radio[ "moon_char_intro_58" ] = "moon_char_intro_58";
level._scr_radio[ "moon_char_intro_59" ] = "moon_char_intro_59";
level._scr_radio[ "moon_char_intro_60" ] = "moon_char_intro_60";
level._scr_radio[ "moon_char_intro_61" ] = "moon_char_intro_61";
level._scr_radio[ "moon_char_intro_62" ] = "moon_char_intro_62";
level._scr_radio[ "moon_char_intro_63" ] = "moon_char_intro_63";
level._scr_radio[ "moon_char_intro_64" ] = "moon_char_intro_64";
level._scr_radio[ "moon_char_intro_65" ] = "moon_char_intro_65";
level._scr_radio[ "moon_char_intro_66" ] = "moon_char_intro_66";
level._scr_radio[ "moon_char_intro_67" ] = "moon_char_intro_67";
level._scr_radio[ "moon_char_intro_68" ] = "moon_char_intro_68";
level._scr_radio[ "moon_eag_arm_01" ] = "moon_eag_arm_01";
level._scr_radio[ "moon_eag_arm_02" ] = "moon_eag_arm_02";
level._scr_radio[ "moon_eag_arm_03" ] = "moon_eag_arm_03";
level._scr_radio[ "moon_eag_cc_01" ] = "moon_eag_cc_01";
level._scr_radio[ "moon_eag_esc_01" ] = "moon_eag_esc_01";
level._scr_radio[ "moon_eag_esc_02" ] = "moon_eag_esc_02";
level._scr_radio[ "moon_eag_esc_03" ] = "moon_eag_esc_03";
level._scr_radio[ "moon_eag_esc_04" ] = "moon_eag_esc_04";
level._scr_radio[ "moon_eag_esc_05" ] = "moon_eag_esc_05";
level._scr_radio[ "moon_eag_esc_06" ] = "moon_eag_esc_06";
level._scr_radio[ "moon_eag_ext_01" ] = "moon_eag_ext_01";
level._scr_radio[ "moon_eag_ext_02" ] = "moon_eag_ext_02";
level._scr_radio[ "moon_eag_ext_03" ] = "moon_eag_ext_03";
level._scr_radio[ "moon_eag_ext_04" ] = "moon_eag_ext_04";
level._scr_radio[ "moon_eag_ext_05" ] = "moon_eag_ext_05";
level._scr_radio[ "moon_eag_ext_06" ] = "moon_eag_ext_06";
level._scr_radio[ "moon_eag_ext_07" ] = "moon_eag_ext_07";
level._scr_radio[ "moon_eag_ext_08" ] = "moon_eag_ext_08";
level._scr_radio[ "moon_eag_ext_09" ] = "moon_eag_ext_09";
level._scr_radio[ "moon_eag_ext_09a" ] = "moon_eag_ext_09a";
level._scr_radio[ "moon_eag_ext_10" ] = "moon_eag_ext_10";
level._scr_radio[ "moon_eag_ext_11" ] = "moon_eag_ext_11";
level._scr_radio[ "moon_eag_ext_12" ] = "moon_eag_ext_12";
level._scr_radio[ "moon_eag_ext_13" ] = "moon_eag_ext_13";
level._scr_radio[ "moon_eag_ext_14" ] = "moon_eag_ext_14";
level._scr_radio[ "moon_eag_ext_15" ] = "moon_eag_ext_15";
level._scr_radio[ "moon_eag_ext_16" ] = "moon_eag_ext_16";
level._scr_radio[ "moon_eag_ext_17" ] = "moon_eag_ext_17";
level._scr_radio[ "moon_eag_ext_18" ] = "moon_eag_ext_18";
level._scr_radio[ "moon_eag_ext_19" ] = "moon_eag_ext_19";
level._scr_radio[ "moon_eag_ext_20" ] = "moon_eag_ext_20";
level._scr_radio[ "moon_eag_ext_21" ] = "moon_eag_ext_21";
level._scr_radio[ "moon_eag_ext_22" ] = "moon_eag_ext_22";
level._scr_radio[ "moon_eag_ext_23" ] = "moon_eag_ext_23";
level._scr_radio[ "moon_eag_ext_24" ] = "moon_eag_ext_24";
level._scr_radio[ "moon_eag_ext_25" ] = "moon_eag_ext_25";
level._scr_radio[ "moon_eag_ext_26" ] = "moon_eag_ext_26";
level._scr_radio[ "moon_eag_ext_27" ] = "moon_eag_ext_27";
level._scr_radio[ "moon_eag_ext_28" ] = "moon_eag_ext_28";
level._scr_radio[ "moon_eag_ext_29" ] = "moon_eag_ext_29";
level._scr_radio[ "moon_eag_ext_30" ] = "moon_eag_ext_30";
level._scr_radio[ "moon_eag_ext_31" ] = "moon_eag_ext_31";
level._scr_radio[ "moon_eag_ext_32" ] = "moon_eag_ext_32";
level._scr_radio[ "moon_eag_ext_33" ] = "moon_eag_ext_33";
level._scr_radio[ "moon_eag_ext_34" ] = "moon_eag_ext_34";
level._scr_radio[ "moon_eag_ext_35" ] = "moon_eag_ext_35";
level._scr_radio[ "moon_eag_ext_36" ] = "moon_eag_ext_36";
level._scr_radio[ "moon_eag_ext_37" ] = "moon_eag_ext_37";
level._scr_radio[ "moon_eag_ext_38" ] = "moon_eag_ext_38";
level._scr_radio[ "moon_eag_ext_39" ] = "moon_eag_ext_39";
level._scr_radio[ "moon_eag_ext_40" ] = "moon_eag_ext_40";
level._scr_radio[ "moon_eag_ext_41" ] = "moon_eag_ext_41";
level._scr_radio[ "moon_eag_ext_43" ] = "moon_eag_ext_43";
level._scr_radio[ "moon_eag_ext_44" ] = "moon_eag_ext_44";
level._scr_radio[ "moon_eag_ext_45" ] = "moon_eag_ext_45";
level._scr_radio[ "moon_eag_ext_46" ] = "moon_eag_ext_46";
level._scr_radio[ "moon_eag_ext_47" ] = "moon_eag_ext_47";
level._scr_radio[ "moon_eag_ext_48" ] = "moon_eag_ext_48";
level._scr_radio[ "moon_eag_ext_49" ] = "moon_eag_ext_49";
level._scr_radio[ "moon_eag_ext_alright" ] = "moon_eag_ext_alright";
level._scr_radio[ "moon_eag_ext_anothertrans" ] = "moon_eag_ext_anothertrans";
level._scr_radio[ "moon_eag_ext_capacity" ] = "moon_eag_ext_capacity";
level._scr_radio[ "moon_eag_ext_clearout" ] = "moon_eag_ext_clearout";
level._scr_radio[ "moon_eag_ext_comeon" ] = "moon_eag_ext_comeon";
level._scr_radio[ "moon_eag_ext_comingaround" ] = "moon_eag_ext_comingaround";
level._scr_radio[ "moon_eag_ext_getbehind" ] = "moon_eag_ext_getbehind";
level._scr_radio[ "moon_eag_ext_getonturret" ] = "moon_eag_ext_getonturret";
level._scr_radio[ "moon_eag_ext_getturret" ] = "moon_eag_ext_getturret";
level._scr_radio[ "moon_eag_ext_gunnersdown" ] = "moon_eag_ext_gunnersdown";
level._scr_radio[ "moon_eag_ext_headourway" ] = "moon_eag_ext_headourway";
level._scr_radio[ "moon_eag_ext_keepout" ] = "moon_eag_ext_keepout";
level._scr_radio[ "moon_eag_ext_letsmove" ] = "moon_eag_ext_letsmove";
level._scr_radio[ "moon_eag_ext_letsmove2" ] = "moon_eag_ext_letsmove2";
level._scr_radio[ "moon_eag_ext_newgun01" ] = "moon_eag_ext_newgun01";
level._scr_radio[ "moon_eag_ext_newgun02" ] = "moon_eag_ext_newgun02";
level._scr_radio[ "moon_eag_ext_newgun03" ] = "moon_eag_ext_newgun03";
level._scr_radio[ "moon_eag_ext_newgun04" ] = "moon_eag_ext_newgun04";
level._scr_radio[ "moon_eag_ext_onlyway" ] = "moon_eag_ext_onlyway";
level._scr_radio[ "moon_eag_ext_patch" ] = "moon_eag_ext_patch";
level._scr_radio[ "moon_eag_ext_ready" ] = "moon_eag_ext_ready";
level._scr_radio[ "moon_eag_ext_reinheaded" ] = "moon_eag_ext_reinheaded";
level._scr_radio[ "moon_eag_ext_rightside" ] = "moon_eag_ext_rightside";
level._scr_radio[ "moon_eag_ext_spotted" ] = "moon_eag_ext_spotted";
level._scr_radio[ "moon_eag_ext_takebase" ] = "moon_eag_ext_takebase";
level._scr_radio[ "moon_eag_ext_takegunner" ] = "moon_eag_ext_takegunner";
level._scr_radio[ "moon_eag_ext_takeout" ] = "moon_eag_ext_takeout";
level._scr_radio[ "moon_eag_ext_takerest" ] = "moon_eag_ext_takerest";
level._scr_radio[ "moon_eag_ext_taketheseturrets" ] = "moon_eag_ext_taketheseturrets";
level._scr_radio[ "moon_eag_ext_taketurret" ] = "moon_eag_ext_taketurret";
level._scr_radio[ "moon_eag_ext_thatcame" ] = "moon_eag_ext_thatcame";
level._scr_radio[ "moon_eag_ext_thruhere" ] = "moon_eag_ext_thruhere";
level._scr_radio[ "moon_eag_ext_uphere" ] = "moon_eag_ext_uphere";
level._scr_radio[ "moon_eag_ext_vanready" ] = "moon_eag_ext_vanready";
level._scr_radio[ "moon_eag_ext_vanstat" ] = "moon_eag_ext_vanstat";
level._scr_radio[ "moon_eag_ext_watch" ] = "moon_eag_ext_watch";
level._scr_radio[ "moon_eag_ext_watchhigh" ] = "moon_eag_ext_watchhigh";
level._scr_radio[ "moon_eag_ext_what" ] = "moon_eag_ext_what";
level._scr_radio[ "moon_eag_ext_workaround" ] = "moon_eag_ext_workaround";
level._scr_radio[ "moon_eag_gettocnc" ] = "moon_eag_gettocnc";
level._scr_radio[ "moon_eag_hearthem" ] = "moon_eag_hearthem";
level._scr_radio[ "moon_eag_hub_01" ] = "moon_eag_hub_01";
level._scr_radio[ "moon_eag_hub_02" ] = "moon_eag_hub_02";
level._scr_radio[ "moon_eag_hub_03" ] = "moon_eag_hub_03";
level._scr_radio[ "moon_eag_hub_04" ] = "moon_eag_hub_04";
level._scr_radio[ "moon_eag_hub_05" ] = "moon_eag_hub_05";
level._scr_radio[ "moon_eag_hub_06" ] = "moon_eag_hub_06";
level._scr_radio[ "moon_eag_int_01" ] = "moon_eag_int_01";
level._scr_radio[ "moon_eag_int_02" ] = "moon_eag_int_02";
level._scr_radio[ "moon_eag_int_03" ] = "moon_eag_int_03";
level._scr_radio[ "moon_eag_int_04" ] = "moon_eag_int_04";
level._scr_radio[ "moon_eag_int_05" ] = "moon_eag_int_05";
level._scr_radio[ "moon_eag_int_06" ] = "moon_eag_int_06";
level._scr_radio[ "moon_eag_int_07" ] = "moon_eag_int_07";
level._scr_radio[ "moon_eag_int_08" ] = "moon_eag_int_08";
level._scr_radio[ "moon_eag_int_09" ] = "moon_eag_int_09";
level._scr_radio[ "moon_eag_int_10" ] = "moon_eag_int_10";
level._scr_radio[ "moon_eag_int_11" ] = "moon_eag_int_11";
level._scr_radio[ "moon_eag_int_12" ] = "moon_eag_int_12";
level._scr_radio[ "moon_eag_int_13" ] = "moon_eag_int_13";
level._scr_radio[ "moon_eag_int_14" ] = "moon_eag_int_14";
level._scr_radio[ "moon_eag_int_15" ] = "moon_eag_int_15";
level._scr_radio[ "moon_eag_int_16" ] = "moon_eag_int_16";
level._scr_radio[ "moon_eag_int_17" ] = "moon_eag_int_17";
level._scr_radio[ "moon_eag_int_18" ] = "moon_eag_int_18";
level._scr_radio[ "moon_eag_int_19" ] = "moon_eag_int_19";
level._scr_radio[ "moon_eag_int_20" ] = "moon_eag_int_20";
level._scr_radio[ "moon_eag_int_21" ] = "moon_eag_int_21";
level._scr_radio[ "moon_eag_int_22" ] = "moon_eag_int_22";
level._scr_radio[ "moon_eag_int_23" ] = "moon_eag_int_23";
level._scr_radio[ "moon_eag_int_24" ] = "moon_eag_int_24";
level._scr_radio[ "moon_eag_int_25" ] = "moon_eag_int_25";
level._scr_radio[ "moon_eag_int_26" ] = "moon_eag_int_26";
level._scr_radio[ "moon_eag_int_27" ] = "moon_eag_int_27";
level._scr_radio[ "moon_eag_int_28" ] = "moon_eag_int_28";
level._scr_radio[ "moon_eag_int_29" ] = "moon_eag_int_29";
level._scr_radio[ "moon_eag_int_30" ] = "moon_eag_int_30";
level._scr_radio[ "moon_eag_int_31" ] = "moon_eag_int_31";
level._scr_radio[ "moon_eag_kill_low_01" ] = "moon_eag_kill_low_01";
level._scr_radio[ "moon_eag_kill_low_02" ] = "moon_eag_kill_low_02";
level._scr_radio[ "moon_eag_kill_low_03" ] = "moon_eag_kill_low_03";
level._scr_radio[ "moon_eag_kill_low_04" ] = "moon_eag_kill_low_04";
level._scr_radio[ "moon_eag_kill_low_05" ] = "moon_eag_kill_low_05";
level._scr_radio[ "moon_eag_kill_low_06" ] = "moon_eag_kill_low_06";
level._scr_radio[ "moon_eag_kill_yell_01" ] = "moon_eag_kill_yell_01";
level._scr_radio[ "moon_eag_kill_yell_02" ] = "moon_eag_kill_yell_02";
level._scr_radio[ "moon_eag_kill_yell_03" ] = "moon_eag_kill_yell_03";
level._scr_radio[ "moon_eag_kill_yell_04" ] = "moon_eag_kill_yell_04";
level._scr_radio[ "moon_eag_kill_yell_05" ] = "moon_eag_kill_yell_05";
level._scr_radio[ "moon_eag_kill_yell_06" ] = "moon_eag_kill_yell_06";
level._scr_radio[ "moon_eag_livhal_01" ] = "moon_eag_livhal_01";
level._scr_radio[ "moon_eag_livhal_02" ] = "moon_eag_livhal_02";
level._scr_radio[ "moon_eag_livhal_03" ] = "moon_eag_livhal_03";
level._scr_radio[ "moon_eag_move_01" ] = "moon_eag_move_01";
level._scr_radio[ "moon_eag_move_02" ] = "moon_eag_move_02";
level._scr_radio[ "moon_eag_move_03" ] = "moon_eag_move_03";
level._scr_radio[ "moon_eag_move_04" ] = "moon_eag_move_04";
level._scr_radio[ "moon_eag_move_05" ] = "moon_eag_move_05";
level._scr_radio[ "moon_eag_move_06" ] = "moon_eag_move_06";
level._scr_radio[ "moon_eag_move_07" ] = "moon_eag_move_07";
level._scr_radio[ "moon_eag_move_08" ] = "moon_eag_move_08";
level._scr_radio[ "moon_eag_move_09" ] = "moon_eag_move_09";
level._scr_radio[ "moon_eag_patch_01" ] = "moon_eag_patch_01";
level._scr_radio[ "moon_eag_patch_02" ] = "moon_eag_patch_02";
level._scr_radio[ "moon_eag_patch_03" ] = "moon_eag_patch_03";
level._scr_radio[ "moon_eag_vanrv_01" ] = "moon_eag_vanrv_01";
level._scr_radio[ "moon_eng_ext_01" ] = "moon_eng_ext_01";
level._scr_radio[ "moon_fal_esc_01" ] = "moon_fal_esc_01";
level._scr_radio[ "moon_fal_esc_02" ] = "moon_fal_esc_02";
level._scr_radio[ "moon_fal_esc_03" ] = "moon_fal_esc_03";
level._scr_radio[ "moon_fal_esc_04" ] = "moon_fal_esc_04";
level._scr_radio[ "moon_fal_esc_05" ] = "moon_fal_esc_05";
level._scr_radio[ "moon_fal_esc_06" ] = "moon_fal_esc_06";
level._scr_radio[ "moon_fal_ext_01" ] = "moon_fal_ext_01";
level._scr_radio[ "moon_fal_ext_02" ] = "moon_fal_ext_02";
level._scr_radio[ "moon_fal_ext_03" ] = "moon_fal_ext_03";
level._scr_radio[ "moon_fal_ext_04" ] = "moon_fal_ext_04";
level._scr_radio[ "moon_fal_ext_05" ] = "moon_fal_ext_05";
level._scr_radio[ "moon_fal_ext_05_var1" ] = "moon_fal_ext_05_var1";
level._scr_radio[ "moon_fal_ext_05_var2" ] = "moon_fal_ext_05_var2";
level._scr_radio[ "moon_fal_ext_05_var3" ] = "moon_fal_ext_05_var3";
level._scr_radio[ "moon_fal_ext_05_var4" ] = "moon_fal_ext_05_var4";
level._scr_radio[ "moon_fal_ext_06" ] = "moon_fal_ext_06";
level._scr_radio[ "moon_fal_int_01" ] = "moon_fal_int_01";
level._scr_radio[ "moon_fal_int_02" ] = "moon_fal_int_02";
level._scr_radio[ "moon_fal_int_03" ] = "moon_fal_int_03";
level._scr_radio[ "moon_fal_int_04" ] = "moon_fal_int_04";
level._scr_radio[ "moon_fal_int_05" ] = "moon_fal_int_05";
level._scr_radio[ "moon_fal_int_06" ] = "moon_fal_int_06";
level._scr_radio[ "moon_fal_int_07" ] = "moon_fal_int_07";
level._scr_radio[ "moon_fal_int_08" ] = "moon_fal_int_08";
level._scr_radio[ "moon_fal_int_09" ] = "moon_fal_int_09";
level._scr_radio[ "moon_fal_int_breaching" ] = "moon_fal_int_breaching";
level._scr_radio[ "moon_fal_int_hear" ] = "moon_fal_int_hear";
level._scr_radio[ "moon_fal_livhal_01" ] = "moon_fal_livhal_01";
level._scr_radio[ "moon_fal_toarm_01" ] = "moon_fal_toarm_01";
level._scr_radio[ "moon_fal_toarm_02" ] = "moon_fal_toarm_02";
level._scr_radio[ "moon_fal_toarm_03" ] = "moon_fal_toarm_03";
level._scr_radio[ "moon_fal_toarm_04" ] = "moon_fal_toarm_04";
level._scr_radio[ "moon_fal_toarm_05" ] = "moon_fal_toarm_05";
level._scr_radio[ "moon_fal_toarm_06" ] = "moon_fal_toarm_06";
level._scr_radio[ "moon_fal_toarm_07" ] = "moon_fal_toarm_07";
level._scr_radio[ "moon_fal_toarm_08" ] = "moon_fal_toarm_08";
level._scr_radio[ "moon_fal_toarm_09" ] = "moon_fal_toarm_09";
level._scr_radio[ "moon_fal_toarm_gettoarm" ] = "moon_fal_toarm_gettoarm";
level._scr_radio[ "moon_fal_toarm_storeroom" ] = "moon_fal_toarm_storeroom";
level._scr_radio[ "moon_fal_toarm_tangodoor" ] = "moon_fal_toarm_tangodoor";
level._scr_radio[ "moon_fal_toarm_taser" ] = "moon_fal_toarm_taser";
level._scr_radio[ "moon_hawk_breach_01" ] = "moon_hawk_breach_01";
level._scr_radio[ "moon_hawk_breach_02" ] = "moon_hawk_breach_02";
level._scr_radio[ "moon_hawk_breach_03" ] = "moon_hawk_breach_03";
level._scr_radio[ "moon_hawk_cc_01" ] = "moon_hawk_cc_01";
level._scr_radio[ "moon_hawk_cc_02" ] = "moon_hawk_cc_02";
level._scr_radio[ "moon_hawk_cc_03" ] = "moon_hawk_cc_03";
level._scr_radio[ "moon_hawk_cc_04" ] = "moon_hawk_cc_04";
level._scr_radio[ "moon_hawk_ext_01" ] = "moon_hawk_ext_01";
level._scr_radio[ "moon_hawk_ext_02" ] = "moon_hawk_ext_02";
level._scr_radio[ "moon_hawk_ext_03" ] = "moon_hawk_ext_03";
level._scr_radio[ "moon_hawk_ext_04" ] = "moon_hawk_ext_04";
level._scr_radio[ "moon_hawk_ext_05" ] = "moon_hawk_ext_05";
level._scr_radio[ "moon_hawk_ext_06" ] = "moon_hawk_ext_06";
level._scr_radio[ "moon_hawk_ext_07" ] = "moon_hawk_ext_07";
level._scr_radio[ "moon_hawk_ext_08" ] = "moon_hawk_ext_08";
level._scr_radio[ "moon_hawk_ext_09" ] = "moon_hawk_ext_09";
level._scr_radio[ "moon_hawk_ext_10" ] = "moon_hawk_ext_10";
level._scr_radio[ "moon_hawk_ext_11" ] = "moon_hawk_ext_11";
level._scr_radio[ "moon_hawk_ext_blind" ] = "moon_hawk_ext_blind";
level._scr_radio[ "moon_hawk_ext_breaching" ] = "moon_hawk_ext_breaching";
level._scr_radio[ "moon_hawk_ext_charge1" ] = "moon_hawk_ext_charge1";
level._scr_radio[ "moon_hawk_ext_charge2" ] = "moon_hawk_ext_charge2";
level._scr_radio[ "moon_hawk_ext_cncclear" ] = "moon_hawk_ext_cncclear";
level._scr_radio[ "moon_hawk_ext_cooling" ] = "moon_hawk_ext_cooling";
level._scr_radio[ "moon_hawk_ext_decompression" ] = "moon_hawk_ext_decompression";
level._scr_radio[ "moon_hawk_ext_downthere" ] = "moon_hawk_ext_downthere";
level._scr_radio[ "moon_hawk_ext_glad" ] = "moon_hawk_ext_glad";
level._scr_radio[ "moon_hawk_ext_headedup" ] = "moon_hawk_ext_headedup";
level._scr_radio[ "moon_hawk_ext_letsmove" ] = "moon_hawk_ext_letsmove";
level._scr_radio[ "moon_hawk_ext_notenough" ] = "moon_hawk_ext_notenough";
level._scr_radio[ "moon_hawk_ext_override" ] = "moon_hawk_ext_override";
level._scr_radio[ "moon_hawk_ext_payback" ] = "moon_hawk_ext_payback";
level._scr_radio[ "moon_hawk_ext_ready" ] = "moon_hawk_ext_ready";
level._scr_radio[ "moon_hawk_ext_readytobreach" ] = "moon_hawk_ext_readytobreach";
level._scr_radio[ "moon_hawk_ext_roger" ] = "moon_hawk_ext_roger";
level._scr_radio[ "moon_hawk_ext_secondlvl" ] = "moon_hawk_ext_secondlvl";
level._scr_radio[ "moon_hawk_ext_targethelmet" ] = "moon_hawk_ext_targethelmet";
level._scr_radio[ "moon_hawk_ext_transblow" ] = "moon_hawk_ext_transblow";
level._scr_radio[ "moon_hawk_ext_wonthold" ] = "moon_hawk_ext_wonthold";
level._scr_radio[ "moon_hawk_int_01" ] = "moon_hawk_int_01";
level._scr_radio[ "moon_hawk_int_02" ] = "moon_hawk_int_02";
level._scr_radio[ "moon_hawk_int_03" ] = "moon_hawk_int_03";
level._scr_radio[ "moon_hawk_int_04" ] = "moon_hawk_int_04";
level._scr_radio[ "moon_hawk_int_05" ] = "moon_hawk_int_05";
level._scr_radio[ "moon_hawk_int_06" ] = "moon_hawk_int_06";
level._scr_radio[ "moon_hawk_int_07" ] = "moon_hawk_int_07";
level._scr_radio[ "moon_hawk_kill_low_01" ] = "moon_hawk_kill_low_01";
level._scr_radio[ "moon_hawk_kill_low_02" ] = "moon_hawk_kill_low_02";
level._scr_radio[ "moon_hawk_kill_low_03" ] = "moon_hawk_kill_low_03";
level._scr_radio[ "moon_hawk_kill_low_04" ] = "moon_hawk_kill_low_04";
level._scr_radio[ "moon_hawk_kill_low_05" ] = "moon_hawk_kill_low_05";
level._scr_radio[ "moon_hawk_kill_low_06" ] = "moon_hawk_kill_low_06";
level._scr_radio[ "moon_hawk_kill_yell_01" ] = "moon_hawk_kill_yell_01";
level._scr_radio[ "moon_hawk_kill_yell_02" ] = "moon_hawk_kill_yell_02";
level._scr_radio[ "moon_hawk_kill_yell_03" ] = "moon_hawk_kill_yell_03";
level._scr_radio[ "moon_hawk_kill_yell_04" ] = "moon_hawk_kill_yell_04";
level._scr_radio[ "moon_hawk_kill_yell_05" ] = "moon_hawk_kill_yell_05";
level._scr_radio[ "moon_hawk_kill_yell_06" ] = "moon_hawk_kill_yell_06";
level._scr_radio[ "moon_hawk_move_01" ] = "moon_hawk_move_01";
level._scr_radio[ "moon_hawk_move_02" ] = "moon_hawk_move_02";
level._scr_radio[ "moon_hawk_move_03" ] = "moon_hawk_move_03";
level._scr_radio[ "moon_hawk_move_04" ] = "moon_hawk_move_04";
level._scr_radio[ "moon_hawk_move_05" ] = "moon_hawk_move_05";
level._scr_radio[ "moon_hawk_move_06" ] = "moon_hawk_move_06";
level._scr_radio[ "moon_hawk_move_07" ] = "moon_hawk_move_07";
level._scr_radio[ "moon_hawk_move_08" ] = "moon_hawk_move_08";
level._scr_radio[ "moon_hawk_move_09" ] = "moon_hawk_move_09";
level._scr_radio[ "moon_hawk_patch_01" ] = "moon_hawk_patch_01";
level._scr_radio[ "moon_hawk_patch_02" ] = "moon_hawk_patch_02";
level._scr_radio[ "moon_hawk_patch_03" ] = "moon_hawk_patch_03";
level._scr_radio[ "moon_hawk_rochase_01" ] = "moon_hawk_rochase_01";
level._scr_radio[ "moon_hawk_rochase_02" ] = "moon_hawk_rochase_02";
level._scr_radio[ "moon_hawk_rochase_03" ] = "moon_hawk_rochase_03";
level._scr_radio[ "moon_hawk_rochase_04" ] = "moon_hawk_rochase_04";
level._scr_radio[ "moon_hawk_toarm_01" ] = "moon_hawk_toarm_01";
level._scr_radio[ "moon_hawk_toarm_02" ] = "moon_hawk_toarm_02";
level._scr_radio[ "moon_hawk_vanrv_01" ] = "moon_hawk_vanrv_01";
level._scr_radio[ "moon_hawk_vanrv_02" ] = "moon_hawk_vanrv_02";
level._scr_radio[ "moon_hawk_vanrv_03" ] = "moon_hawk_vanrv_03";
level._scr_radio[ "moon_hawk_vanrv_04" ] = "moon_hawk_vanrv_04";
level._scr_radio[ "moon_hawk_vanrv_05" ] = "moon_hawk_vanrv_05";
level._scr_radio[ "moon_hawk_vanrv_06" ] = "moon_hawk_vanrv_06";
level._scr_radio[ "moon_hawk_vanrv_07" ] = "moon_hawk_vanrv_07";
level._scr_radio[ "moon_hawk_vanrv_08" ] = "moon_hawk_vanrv_08";
level._scr_radio[ "moon_rad_intro_01" ] = "moon_rad_intro_01";
level._scr_radio[ "moon_rad_intro_01m" ] = "moon_rad_intro_01m";
level._scr_radio[ "moon_spid_int_downhere" ] = "moon_spid_int_downhere";
level._scr_radio[ "moon_spid_int_welcome" ] = "moon_spid_int_welcome";
level._scr_radio[ "moon_rand2_run_01" ] = "moon_rand2_run_01";
level._scr_radio[ "moon_rand1_run_02" ] = "moon_rand1_run_02";
level._scr_radio[ "moon_bc_arm_02" ] = "moon_bc_arm_02";
level._scr_radio[ "moon_rand2_run_03" ] = "moon_rand2_run_03";
level._scr_radio[ "moon_rand1_run_04" ] = "moon_rand1_run_04";
level._scr_radio[ "moon_rand1_run_05" ] = "moon_rand1_run_05";
level._scr_radio[ "moon_rand1_run_06" ] = "moon_rand1_run_06";
level._scr_radio[ "moon_rand1_run_07" ] = "moon_rand1_run_07";
level._scr_radio[ "moon_rand1_run_08" ] = "moon_rand1_run_08";
level._scr_radio[ "moon_rand2_run_01" ] = "moon_rand2_run_01";
level._scr_radio[ "moon_rand2_run_02" ] = "moon_rand2_run_02";
level._scr_radio[ "moon_rand2_run_03" ] = "moon_rand2_run_03";
level._scr_radio[ "moon_rand2_run_04" ] = "moon_rand2_run_04";
level._scr_radio[ "moon_rand2_run_05" ] = "moon_rand2_run_05";
level._scr_radio[ "moon_rand2_run_06" ] = "moon_rand2_run_06";
level._scr_radio[ "moon_rand2_run_07" ] = "moon_rand2_run_07";
level._scr_radio[ "moon_rand2_run_08" ] = "moon_rand2_run_08";
level._scr_radio[ "moon_spid_int_downhere" ] = "moon_spid_int_downhere";
level._scr_radio[ "moon_spid_int_welcome" ] = "moon_spid_int_welcome";
level._scr_radio[ "moon_eag_int_emergencydoor" ] = "moon_eag_int_emergencydoor";
level._scr_radio[ "moon_eag_int_override" ] = "moon_eag_int_override";
level._scr_radio[ "moon_eag_int_okwere" ] = "moon_eag_int_okwere";
level._scr_radio[ "moon_eag_int_shitnothing" ] = "moon_eag_int_shitnothing";
level._scr_radio[ "moon_eag_int_crewcommons" ] = "moon_eag_int_crewcommons";
level._scr_radio[ "moon_eag_int_cycling" ] = "moon_eag_int_cycling";
level._scr_radio[ "moon_eag_int_walkerget" ] = "moon_eag_int_walkerget";
level._scr_radio[ "moon_eag_int_onmy" ] = "moon_eag_int_onmy";
level._scr_radio[ "moon_fal_toarm_wherehelmet" ] = "moon_fal_toarm_wherehelmet";
level._scr_radio[ "moon_fal_toarm_poproom" ] = "moon_fal_toarm_poproom";
level._scr_radio[ "moon_fal_toarm_breachmove" ] = "moon_fal_toarm_breachmove";
level._scr_radio[ "moon_fal_toarm_moveit" ] = "moon_fal_toarm_moveit";
level._scr_radio[ "moon_fal_toarm_thisway" ] = "moon_fal_toarm_thisway";
level._scr_radio[ "moon_fal_toarm_wheregoing" ] = "moon_fal_toarm_wheregoing";
level._scr_radio[ "moon_fal_toarm_movedamn" ] = "moon_fal_toarm_movedamn";
level._scr_radio[ "moon_fal_toarm_tangosahead" ] = "moon_fal_toarm_tangosahead";
level._scr_radio[ "moon_fal_toarm_twomore" ] = "moon_fal_toarm_twomore";
// Scripted Battle Chatter
level._scr_radio[ "jswc_eag_co_lm_crt_stk" ] = "jswc_eag_co_lm_crt_stk";
level._scr_radio[ "jswc_eag_co_lm_oxtnks" ] = "jswc_eag_co_lm_oxtnks";
level._scr_radio[ "jswc_eag_order_move_noncombat" ] = "jswc_eag_order_move_noncombat";
level._scr_radio[ "jswc_fal_resp_ack_co_gnrc_affirm" ] = "jswc_fal_resp_ack_co_gnrc_affirm";
level._scr_radio[ "jswc_fal_resp_ack_co_gnrc_neg" ] = "jswc_fal_resp_ack_co_gnrc_neg";
}
//*******************************************************************
// *
// *
//*******************************************************************
#using_animtree( "generic_human" );
dead_crew()
{
dead_crew_members = GetEntArray( "dead_crew", "targetname" );
// For the first checkpoints hide all the dead crew and wait for the player to get the rifle in the armory
if ( level._start_point == "get_to_the_armory" || level._start_point == "rover_chase" || level._start_point == "intro" || level._start_point == "default")
{
foreach( dead_crew_member in dead_crew_members )
dead_crew_member hide();
flag_wait ("player_has_weapon");
}
// Show and pose all the dead crew
foreach( dead_crew_member in dead_crew_members )
{
dead_crew_member show();
dead_crew_member UseAnimTree( #animtree );
dead_crew_member thread anim_generic( dead_crew_member, dead_crew_member.script_animation );
dead_crew_member SetAnimTime( getanim_generic( dead_crew_member.script_animation ), 1 );
}
}
dead_crew_wakeup()
{
dead_crew_members = GetEntArray( "dead_crew_wakeup", "targetname" );
// Show and pose all the dead crew
foreach( dead_crew_member in dead_crew_members )
{
dead_crew_member UseAnimTree( #animtree );
dead_crew_member thread anim_generic( dead_crew_member, dead_crew_member.script_animation );
dead_crew_member SetAnimTime( getanim_generic( dead_crew_member.script_animation ), 1 );
}
flag_wait ("top_floor_breach");
// Delete them after they're no longer visible for greenlight
foreach( dead_crew_member in dead_crew_members )
{
dead_crew_member delete();
}
}
//*******************************************************************
// *
// *
//*******************************************************************
back_to_rover(rover)
{
node = getstruct("vignette_back_to_rover", "script_noteworthy");
level._player allowprone( false );
level._player allowcrouch( false );
level._player disableweapons();
level._player takeallweapons();
player_rig = spawn_anim_model( "player_rig" );
guys = [];
guys["player_rig"] = player_rig;
arc = 15;
player_rig LinkTo( rover, "TAG_DRIVER", (0,0,0), (0,0,0) );
level._player PlayerLinkToDelta( player_rig, "tag_player", 1, arc, arc, arc, arc, 1, true);
node anim_single(guys, "back_to_rover");
level._player Unlink();
player_rig Delete();
//these will unlink the player and unfreeze the controls when you need to.
/*
level._player FreezeControls( false );
level._player unlink();
level._player allowprone( true );
level._player allowcrouch( true );
*/
}
//*******************************************************************
// *
// *
//*******************************************************************
// self - node origin for vignette
ally_door_breach_reach( hawk )
{
opener = level.eagle;
if( hawk )
{
opener = level.hawk;
}
if( IsAlive( opener ) )
{
opener ent_flag_init_or_clear( "at_breach_door" );
self thread ally_door_breach_reach_individual( opener, "Cover Right" );
}
// if( IsAlive( level.falcon ) )
// {
// level.falcon ent_flag_init_or_clear( "at_breach_door" );
// self thread ally_door_breach_reach_individual( level.falcon, "Cover Left" );
// }
if( IsAlive( opener ) )
{
opener ent_flag_wait( "at_breach_door" );
}
// if( IsAlive( level.falcon ) )
// {
// level.falcon ent_flag_wait( "at_breach_door" );
// }
}
ally_door_breach_play( hawk )
{
opener = level.eagle;
if( hawk )
{
opener = level.hawk;
}
guys = [];
if( IsAlive( opener ) )
{
guys[ opener.animname ] = opener;
}
// if( IsAlive( level.falcon ) )
// {
// guys["falcon"] = level.falcon;
// }
self anim_single(guys, "ally_door_breach");
if( IsAlive( opener ) )
{
opener enable_ai_color();
}
// if( IsAlive( level.falcon ) )
// {
// level.falcon enable_ai_color();
// }
}
ally_door_breach_reach_individual( opener, breach_approach )
{
opener endon ( "death" );
my_anim_node = self create_my_anim_node();
my_anim_node anim_reach_and_approach_and_idle_solo( opener, "ally_door_breach", breach_approach, "ally_door_breach_idle", "stop_ally_door_breach_idle", undefined );
opener ent_flag_set( "at_breach_door" );
my_anim_node Delete();
}
//*******************************************************************
// *
// *
//*******************************************************************
opfor_door_breach( node, opfor_01, opfor_02, breach_name )
{
if( IsDefined( opfor_01 ) )
{
opfor_01.animname = "opfor_01";
opfor_01 ent_flag_init_or_clear( "at_breach_door" );
opfor_01 ent_flag_init_or_clear( "door_breached" );
node thread opfor_door_breach_opfor_01( opfor_01, opfor_02, breach_name );
}
if( IsDefined( opfor_02 ) )
{
opfor_02.animname = "opfor_02";
opfor_02 ent_flag_init_or_clear( "at_breach_door" );
opfor_02 ent_flag_init_or_clear( "door_breached" );
node thread opfor_door_breach_opfor_02( opfor_01, opfor_02, breach_name );
}
}
opfor_door_breach_opfor_01( opfor_01, opfor_02, breach_name )
{
opfor_01 endon ( "death" );
opfor_01 endon ( "stop_breach");
thread breach_charge_fx( opfor_01 );
my_anim_node = self create_my_anim_node();
if( IsDefined( opfor_01.curr_breach_door ) )
{
// If it's the inner lower vehicle bay breach
if (opfor_01.curr_breach_door == "vehicle_door_02")
{
opfor_01 StopAnimScripted();
my_anim_node anim_teleport_solo ( opfor_01, "opfor_door_breach");
my_anim_node anim_first_frame_solo (opfor_01, "opfor_door_breach");
flag_wait ("vehicle_bay_breach_skip_to_charge");
}
// If it's the first hub room breach
if (opfor_01.curr_breach_door == "hub_01_door_01")
{
opfor_01 StopAnimScripted();
my_anim_node anim_teleport_solo ( opfor_01, "opfor_door_breach");
flag_wait ("hub_room_breach_start");
}
else
{
my_anim_node anim_reach_and_approach_solo( opfor_01, breach_name, undefined, "Cover Right" );
}
}
else
{
my_anim_node anim_reach_and_approach_solo( opfor_01, breach_name, undefined, "Cover Right" );
}
// Wait for partner
opfor_01 ent_flag_set( "at_breach_door" );
if( IsDefined( opfor_02 ) )
{
opfor_02 ent_flag_wait( "at_breach_door" );
}
// Currently means "if this is any breach other than the vehicle bay breach"
if ( breach_name == "opfor_door_breach" )
{
// KenM - Making sure the breacher has his gun out, sometimes he does not.
opfor_01 forceUseWeapon( "breacher", "primary" );
my_anim_node thread anim_single_solo( opfor_01, "opfor_door_breach" );
// If it's the inner lower vehicle bay breach
if( IsDefined( opfor_01.curr_breach_door ) )
{
if ( opfor_01.curr_breach_door == "vehicle_door_02" || opfor_01.curr_breach_door == "hub_01_door_01" )
{
// Have to wait a bit or else this doesn't work for some reason.
wait 0.05;
animation = opfor_01 getanim( "opfor_door_breach" );
opfor_01 SetAnimTime ( animation, 0.2);
}
}
while ( opfor_01 GetAnimTime( level._scr_anim[ "opfor_01" ][ "opfor_door_breach" ] ) < 1)
{
wait .1;
}
my_anim_node thread anim_loop_solo( opfor_01, "opfor_door_breach_loop", "stop_loop" );
opfor_01 notify("charged");
print ( "charged");
opfor_01 waittill("detonate");
opfor_01 ent_flag_set( "door_breached" );
my_anim_node notify("stop_loop");
my_anim_node anim_single_solo( opfor_01, "opfor_door_breach_detonate" );
}
// Otherwise, it is the vehicle bay breach
else
{
my_anim_node anim_single_solo( opfor_01, "vehiclebay_breach" );
opfor_01 ent_flag_set( "door_breached" );
}
// Delete own node
my_anim_node Delete();
}
opfor_door_breach_opfor_02( opfor_01, opfor_02, breach_name )
{
opfor_02 endon ( "death" );
opfor_01 endon ( "stop_breach" );
// Create actor's own node
my_anim_node = self create_my_anim_node();
if( IsDefined( opfor_01.curr_breach_door ) )
{
// If it's the inner lower vehicle bay breach
if (opfor_01.curr_breach_door == "vehicle_door_02" )
{
opfor_02 StopAnimScripted();
my_anim_node anim_teleport_solo ( opfor_02, "opfor_door_breach");
my_anim_node anim_first_frame_solo (opfor_02, "opfor_door_breach");
flag_wait ("vehicle_bay_breach_skip_to_charge");
}
// If it's the first hub room breach
if (opfor_01.curr_breach_door == "hub_01_door_01")
{
opfor_02 StopAnimScripted();
my_anim_node anim_teleport_solo ( opfor_02, "opfor_door_breach");
flag_wait ("hub_room_breach_start");
}
else
{
my_anim_node anim_reach_and_approach_solo( opfor_02, breach_name, undefined, "Cover Left" );
}
}
else
{
my_anim_node anim_reach_and_approach_solo( opfor_02, breach_name, undefined, "Cover Left" );
}
// Wait for partner
opfor_02 ent_flag_set( "at_breach_door" );
if( IsDefined( opfor_01 ) )
{
opfor_01 ent_flag_wait( "at_breach_door" );
}
// If it's the generic breach animation
if ( breach_name == "opfor_door_breach" )
{
my_anim_node thread anim_single_solo( opfor_02, "opfor_door_breach" );
// If it's the inner lower vehicle bay breach
if( IsDefined( opfor_01.curr_breach_door ) )
{
if (opfor_01.curr_breach_door == "vehicle_door_02" || opfor_01.curr_breach_door == "hub_01_door_01")
{
// Have to wait a bit or else this doesn't work for some reason.
wait 0.05;
animation = opfor_02 getanim( "opfor_door_breach" );
opfor_02 SetAnimTime ( animation, 0.2);
}
}
while ( opfor_01 GetAnimTime( %nx_tp_lunar_opfor_door_breach_opfor_01_breach ) < 1)
{
wait .1;
}
my_anim_node thread anim_loop_solo( opfor_02, "opfor_door_breach_loop", "stop_loop" );
// wait for the breacher guy to get the go ahead
opfor_01 waittill( "detonate" );
my_anim_node notify( "stop_loop" );
my_anim_node anim_single_solo( opfor_02, "opfor_door_breach_detonate" );
}
// Otherwise, it is the vehicle bay breach
else
{
my_anim_node anim_single_solo( opfor_02, "vehiclebay_breach" );
}
opfor_02 ent_flag_set( "door_breached" );
// Delete own node
my_anim_node Delete();
}
create_my_anim_node()
{
my_anim_node = Spawn( "script_origin", self.origin );
my_anim_node.angles = self.angles;
return my_anim_node;
}
ent_flag_init_or_clear( ent_flag )
{
if ( !ent_flag_exist ( ent_flag ) )
{
self ent_flag_init( ent_flag );
}
else
{
self ent_flag_clear( ent_flag );
}
}
// notetrack functions for door vehicle bay door breach
breach_charge( opfor_01 )
{
start_org = opfor_01 GetTagOrigin( "tag_flash" );
// when "shots" are fired into the door
opfor_01 notify ("charge_inserted");
// PlayFX( level._effect[ "breach_charge" ], start_org , ( 1, 0, 0 ) );
// The door they're breaching detects a pressure change
if( IsDefined( opfor_01.curr_breach_door ) )
{
level thread maps\nx_lunar_util::lunar_door_status( opfor_01.curr_breach_door, "status_yellow" );
print ( opfor_01.curr_breach_door );
}
// Sound effect
mynodeEntity = spawn( "sound_emitter", start_org );
if (isdefined (opfor_01.curr_breach_room))
{
room = opfor_01.curr_breach_room;
if (flag ( room ))
{
// The player is in the room being breached
mynodeEntity PlaySound("scn_lunar_breach_charge", "scn_lunar_breach_charge");
mynodeEntity thread breach_sound_silencer();
thread createwarningvo();
}
else
{
// The player is not in the room being breached
mynodeEntity PlaySound("scn_lunar_breach_charge", "scn_lunar_breach_charge");
}
}
else
{
// No room is defined. This should only occur on the vehicle bay breach vignette
mynodeEntity PlaySound("scn_lunar_breach_charge", "scn_lunar_breach_charge");
}
if ( Distance( level._player.origin, mynodeEntity.origin ) < 600 )
{
level._player PlaySound( "scn_lunar_breach_mtlshake" );
}
mynodeEntity waittill( "scn_lunar_breach_charge" );
mynodeEntity delete();
}
breach_charge_fx (opfor_01)
{
opfor_01 endon ( "death" );
opfor_01 endon ( "stop_breach");
start_org = opfor_01 GetTagOrigin( "tag_flash" );
if( IsDefined( opfor_01.curr_breach_door ) )
{
door_name = opfor_01.curr_breach_door;
// Get parts array
lunar_door_parts = GetEntArray( door_name, "script_noteworthy" );
// Get the fx origins
breach_charge_fx_01 = undefined;
breach_charge_fx_02 = undefined;
foreach ( door_part in lunar_door_parts )
{
if( door_part.code_classname == "script_origin" )
{
if( door_part.targetname == "breach_fx_01" )
{
breach_charge_fx_01 = door_part;
}
if( door_part.targetname == "breach_fx_02" )
{
breach_charge_fx_02 = door_part;
}
}
}
// First Charge
opfor_01 waittill ("charge_inserted");
// Spark FX.
PlayFX( level._effect[ "breach_charge" ], breach_charge_fx_01.origin , breach_charge_fx_02.angles + ( 90, 0, 0 ) );
//spawn a model for the breacher wedge
breach_wedge_1 = spawn_anim_model("breacher_wedge", breach_charge_fx_01.origin );
breach_wedge_1.angles = ( breach_charge_fx_01.angles + (-180, 0, 0));
playFXOnTag( level._effect[ "nx_lunar_breach_charge_insert_back_air" ], breach_wedge_1, "tag_fx" );
print ("charge one");
// Second Charge
opfor_01 waittill ("charge_inserted");
// Spark FX.
PlayFX( level._effect[ "breach_charge" ], breach_charge_fx_02.origin , breach_charge_fx_02.angles + ( 90, 0, 0 ) );
//spawn a model for the breacher wedge
breach_wedge_2 = spawn_anim_model("breacher_wedge", breach_charge_fx_02.origin );
breach_wedge_2.angles = ( breach_charge_fx_01.angles + (-180, 0, 0));
playFXOnTag( level._effect[ "nx_lunar_breach_charge_insert_back_air" ], breach_wedge_2, "tag_fx" );
print ("charge two");
// Detonation
opfor_01 waittill ("detonate");
wait .3;
// Cleanup
stopFXOnTag( level._effect[ "nx_lunar_breach_charge_insert_back_air" ], breach_wedge_1, "tag_fx" );
stopFXOnTag( level._effect[ "nx_lunar_breach_charge_insert_back_air" ], breach_wedge_2, "tag_fx" );
breach_wedge_1 delete ();
breach_wedge_2 delete ();
}
}
createwarningvo()
{
//warningvospawn = spawn( "script_origin", ( 4385, -283, -1566 ) );
//warningvospawn MoveTo( level._player.origin + ( randomintrange( -1200, 1200 ), randomintrange( -1200, 1200 ), 0 ), 0.01 );
//warningvospawn PlaySound( "emt_lunar_breach_vo", "emt_lunar_breach_vo", true );
//warningvospawn waittill( "emt_lunar_breach_vo" );
//warningvospawn delete();
level._player playsound( "emt_lunar_breach_vo" );
}
breach_sound_silencer()
{
// Player was in a breached room, but the door closed behind them.
// self endon ("scn_lunar_breach_charge");
// level waittill ("player_escaped_breached_room");
// self Stopsounds ();
}
breach_detonate( opfor_01 )
{
// Destroy the door
if( IsDefined( opfor_01.curr_breach_door ) )
{
level thread maps\nx_lunar_util::open_lunar_door( opfor_01.curr_breach_door, 0.1, true );
level thread maps\nx_lunar_util::lunar_door_breach_fx( opfor_01.curr_breach_door );
// If it's the armory breach
if (opfor_01.curr_breach_door == "armory_door_breach")
{
// instantly trigger the breach vignette
flag_set ("vignette_armory_breach");
return;
}
// If it's the vehicle bay breach
if (opfor_01.curr_breach_door == "vehicle_hatch_breach")
{
// trigger some extra effects
Earthquake( 0.3, 0.5, level._player.origin, 100 );
level._player PlayRumbleOnEntity( "damage_light" );
opfor_01 notify ("detonate");
}
}
// Depressurize room
if( IsDefined( opfor_01.curr_breach_room ) )
{
level thread maps\nx_lunar_get_to_the_armory::room_status_depressurize( opfor_01.curr_breach_room );
}
if( IsDefined( opfor_01.curr_breach_door ) )
{
wait .3;
level thread maps\nx_lunar_util::lunar_door_status( opfor_01.curr_breach_door, "status_green" );
level thread maps\nx_lunar_util::lunar_door_keypad_error ( opfor_01.curr_breach_door );
}
opfor_01.curr_breach_door = undefined;
opfor_01.curr_breach_room = undefined;
opfor_01 notify ("breach_done");
}
//*******************************************************************
// *
// *
//*******************************************************************
vignette_vehiclebay_breach_player_enters_airlock()
{
level notify ("player_in_vehicle_airlock_notify");
node = getent("vignette_vh_bay_breach_player", "script_noteworthy");
helmet_player = spawn_anim_model("helmet_player");
player_rig = spawn_anim_model( "player_rig" );
player_rig Hide();
helmet_player Hide();
player = [];
player["player_rig"] = player_rig;
player ["helmet_player"] = helmet_player;
level._player playerLinkToBlend( player_rig, "tag_player", 0.75 );
player_rig thread vignette_vehiclebay_breach_player_look();
node anim_single(player, "vehiclebay_breach_player");
// ---might need to use this to link player to view entire breach sequence.
// ---will possibly have to use a custom note track to unlink him in the next vignette.
// flag_wait ("vehicle_airlock_open");
// Stop the player stumble walk. Doing this here to prevent player from crouching until the anim is done.
level thread maps\nx_lunar_get_to_the_armory::stop_stumble_walk( 0.05 );
flag_set ("airlock_animation_done");
level._player unlink();
player_rig delete();
}
unhide_arms( player_rig )
{
player_rig Show();
}
vignette_vehiclebay_breach_player_look()
{
// Wait until the PC collapses against the window
wait 16;
Harc = 45;
Varc = 15;
level._player PlayerLinkToDelta( self, "tag_player", 1, Harc, Harc, Varc, Varc, 1);
}
// note track that will unhide script model for player helmet
spawn_helmet( helmet_player )
{
helmet_player Show();
target = GetEnt ("helmet_breach_target", "targetname");
// trigger security alert VO
flag_set ("vo_base_compromise_bc");
// Wait until the airlock is breached
room_status_vehicle_airlock = GetEnt ( "room_status_vehicle_airlock", "targetname");
room_status_vehicle_airlock ent_flag_wait( "depressurize" );
// Blow the helmet out the airlock
helmet_player MoveTo( target.origin, .8, .2, 0 );
helmet_player RotateTo( target.angles, .8, .2, 0 );
helmet_player waittill ("movedone");
wait 10;
helmet_player delete();
}
helmet_hits_ground(helmet_player)
{
// play glass breaking effect on the player's helmet when he drops it inside the airlock.
playfx( level._effect[ "nx_lunar_intro_glass_helmet_drop" ], helmet_player.origin );
}
//*******************************************************************
// *
// *
//*******************************************************************
vignette_vehiclebay_breach_spawn()
{
opfor_01 = vignette_actor_spawn("vehiclebay_breach_opfor01", "opfor_01");
opfor_02 = vignette_actor_spawn("vehiclebay_breach_opfor02", "opfor_02");
civ_01 = vignette_actor_spawn("vehiclebay_breach_civ01", "civ_01");
civ_02 = vignette_actor_spawn("vehiclebay_breach_civ02", "civ_02");
vignette_vehiclebay_breach(civ_01, civ_02, opfor_01, opfor_02);
opfor_01 vignette_actor_delete();
opfor_02 vignette_actor_delete();
civ_01 vignette_actor_delete();
civ_02 vignette_actor_delete();
}
vignette_vehiclebay_breach(civ_01, civ_02, opfor_01, opfor_02)
{
node = getent("vignette_vh_bay_breach", "script_noteworthy");
opfor = [];
opfor["opfor_01"] = opfor_01;
opfor["opfor_02"] = opfor_02;
civs["civ_01"] = civ_01;
civs["civ_02"] = civ_02;
//temp commented out loop anim for later integration.
/*
node thread anim_loop(civs, "vehiclebay_breach_loop");
wait 5;
foreach (civ in civs)
{
civ StopAnimScripted();
}
*/
opfor = array_combine( opfor, civs );
node anim_first_frame( civs, "vehiclebay_breach" );
// tagTC<note> - added generic breach logic scripts here to call reach
// and anim play on the opfor actors
level thread opfor_door_breach( node, opfor_01, opfor_02, "vehiclebay_breach" );
opfor_01.curr_breach_door = "vehicle_hatch_breach";
opfor_01 ent_flag_wait( "at_breach_door" );
opfor_02 ent_flag_wait( "at_breach_door" );
node anim_single( civs, "vehiclebay_breach" );
// Kill the civilians
civ_01 vignette_actor_kill();
civ_02 vignette_actor_kill();
}
//*******************************************************************
// *
// *
//*******************************************************************
top_floor_breach_spawn()
{
/*
vignettescientist1 = vignette_actor_spawn("vignettescientist1", "vignettescientist1"); //"value" (kvp), "anim_name"
vignettescientist2 = vignette_actor_spawn("vignettescientist2", "vignettescientist2"); //"value" (kvp), "anim_name"
vignettescientist3 = vignette_actor_spawn("vignettescientist3", "vignettescientist3"); //"value" (kvp), "anim_name"
vignettescientist4 = vignette_actor_spawn("vignettescientist4", "vignettescientist4"); //"value" (kvp), "anim_name"
vignette_playerlegs = vignette_actor_spawn("vignette_playerlegs", "vignette_playerlegs"); //"value" (kvp), "anim_name"
vignettescientist5 = vignette_actor_spawn("vignettescientist5", "vignettescientist5"); //"value" (kvp), "anim_name"
vignettescientist6 = vignette_actor_spawn("vignettescientist6", "vignettescientist6"); //"value" (kvp), "anim_name"
*/
vignettescientist1 = spawn_anim_model("model_civ_01");
vignettescientist2 = spawn_anim_model("model_civ_02");
vignettescientist3 = spawn_anim_model("model_civ_03");
vignettescientist4 = spawn_anim_model("model_civ_04");
vignette_playerlegs = vignette_actor_spawn("vignette_playerlegs", "vignette_playerlegs"); //"value" (kvp), "anim_name"
vignettescientist5 = spawn_anim_model("model_civ_05");
vignettescientist6 = spawn_anim_model("model_civ_06");
level.model6 = spawn_anim_model("model6");
vignette_playerlegs hide();
node = getstruct("vignette_topfloorbreach", "script_noteworthy");
guys = [];
guys["vignettescientist1"] = vignettescientist1;
guys["vignettescientist2"] = vignettescientist2;
guys["vignettescientist3"] = vignettescientist3;
guys["vignettescientist4"] = vignettescientist4;
guys["vignette_playerlegs"] = vignette_playerlegs;
guys["vignettescientist5"] = vignettescientist5;
guys["vignettescientist6"] = vignettescientist6;
guys["model6"] = level.model6;
node anim_first_frame( guys, "top_floor_breach" );
flag_wait ("top_floor_breach");
vignette_playerlegs show();
top_floor_breach(vignettescientist1, vignettescientist2, vignettescientist3, vignettescientist4, vignette_playerlegs, vignettescientist5, vignettescientist6, level.model6);
vignettescientist1 vignette_actor_delete();
vignettescientist2 vignette_actor_kill();
vignettescientist3 vignette_actor_delete();
vignettescientist4 vignette_actor_delete();
vignette_playerlegs vignette_actor_delete();
vignettescientist5 vignette_actor_delete();
vignettescientist6 vignette_actor_delete();
}
top_floor_breach(vignettescientist1, vignettescientist2, vignettescientist3, vignettescientist4, vignette_playerlegs, vignettescientist5, vignettescientist6, model6)
{
// Camera is in the wrong place if player is crouched or prone
level._player setstance( "stand" );
node = getstruct("vignette_topfloorbreach", "script_noteworthy");
// model6 = model6;
model8 = spawn_anim_model("model8");
ammo_box_1 = spawn_anim_model("ammo_box_1");
ammo_box_2 = spawn_anim_model("ammo_box_2");
ammo_box_2_open = spawn_anim_model("ammo_box_2_open");
ammo_box_3 = spawn_anim_model("ammo_box_3");
ammo_box_3_open = spawn_anim_model("ammo_box_3_open");
crate2 = spawn_anim_model("crate2");
monitor = spawn_anim_model("monitor");
temp_handles = spawn_anim_model("temp_handles");
level._player FreezeControls( true );
level._player allowprone( false );
level._player allowcrouch( false );
player_rig = spawn_anim_model( "player_rig" );
guys = [];
guys["vignettescientist1"] = vignettescientist1;
guys["vignettescientist2"] = vignettescientist2;
guys["vignettescientist3"] = vignettescientist3;
guys["vignettescientist4"] = vignettescientist4;
guys["vignette_playerlegs"] = vignette_playerlegs;
guys["player_rig"] = player_rig;
guys["model6"] = model6;
guys["vignettescientist5"] = vignettescientist5;
guys["model8"] = model8;
guys["ammo_box_1"] = ammo_box_1;
guys["ammo_box_2"] = ammo_box_2;
guys["ammo_box_2_open"] = ammo_box_2_open;
guys["ammo_box_3"] = ammo_box_3;
guys["ammo_box_3_open"] = ammo_box_3_open;
guys["crate2"] = crate2;
guys["vignettescientist6"] = vignettescientist6;
guys["monitor"] = monitor;
guys["temp_handles"] = temp_handles;
Harc = 15;
Varc = 15;
level._player playerLinkToBlend( player_rig, "tag_player", 1.75 );
// level._player PlayerLinkToDelta( player_rig, "tag_player", 1, Harc, Harc, Varc, Varc, 1);
// vision set sequencing
thread maps\nx_lunar_fx::fx_control_room_vision_sequence();
thread top_floor_breach_fx();
node anim_single(guys, "top_floor_breach");
level._player unlink();
player_rig delete();
// Clean up trash. Note; Model8 remains in the room. Model6 is the shutter
ammo_box_1 delete();
ammo_box_2 delete();
ammo_box_2_open delete();
ammo_box_3 delete();
ammo_box_3_open delete();
crate2 delete();
monitor delete();
level._player FreezeControls( false );
level._player allowprone( true );
level._player allowcrouch( true );
level notify ("top_floor_breach_done");
level._player blend_movespeedscale( 0.5, 0.1 );
level._player delayThread( 1, ::blend_movespeedscale, 1, 5 );
level._ground_ref_ent = spawn( "script_model", ( 0, 0, 0 ) );
level._player playerSetGroundReferenceEnt( level._ground_ref_ent );
// Stumble walk after breach
level._player AllowSprint( false );
level thread maps\nx_lunar_get_to_the_armory::stumble_walk( 0, 20.0, false , true, 0.0, false );
wait 5;
level._player AllowSprint( true );
level thread maps\nx_lunar_get_to_the_armory::stop_stumble_walk( 0.5 );
}
top_floor_breach_rover_fires( player_rig )
{
level notify ("rover_fires_notify");
}
top_floor_breach_fx()
{
level thread glass_destroyed_sfx();
wait 0.1;
magicBullet( "nx_chinese_lgv_turret_magicbullet_metal", ( 4113, -187, -1591), ( 4688, -650, -1560) );
level._player PlayRumbleOnEntity( "damage_heavy" );
wait 0.3;
magicBullet( "nx_chinese_lgv_turret_magicbullet_metal", ( 4113, -187, -1591), ( 4688, -600, -1540) );
wait 0.1;
exploder( "fx_top_floor_breach" );
wait 0.2;
magicBullet( "nx_chinese_lgv_turret_magicbullet_metal", ( 4113, -187, -1591), ( 4688, -500, -1530) );
wait 0.2;
exploder( "fx_top_floor_sparks" );
wait 3.3;
exploder( "fx_top_floor_rip_sparks" );
exploder( "fx_top_floor_rip_explosion" );
wait 0.5;
stop_exploder( "fx_top_floor_rip_explosion" );
exploder( "fx_top_floor_monitor_sparks" );
wait 1.9;
stop_exploder( "fx_top_floor_breach" );
stop_exploder( "fx_top_floor_sparks" );
stop_exploder( "fx_top_floor_rip_sparks" );
stop_exploder( "fx_top_floor_monitor_sparks" );
exploder( "fx_top_floor_linger" );
}
glass_destroyed_sfx()
{
flag_set( "music_2nd_floor_breach_starts" );
//level._player setchannelvolumes( "snd_channelvolprio_level", "nx_lunar_2nd_floor_first_stop", 0.1 );
wait 0.1;
level._player setchannelvolumes( "snd_channelvolprio_pain", "nx_lunar_2nd_floor_glass", 0.4 );
wait 0.2;
level._player playsound( "scn_2nd_floor_glass_break" );
thread audio_play_localized_vo();
wait 7.7;
flag_set( "music_2nd_floor_breach_ends" );
level._player deactivatechannelvolumes( "snd_channelvolprio_pain", 1 );
}
audio_play_localized_vo()
{
localizedvo = spawn( "sound_emitter", ( 4516, -164, -1556 ) );
localizedvo PlaySound( "scn_2nd_floor_glass_break_vo", "scn_2nd_floor_glass_break_vo", true );
localizedvo waittill( "scn_2nd_floor_glass_break_vo" );
localizedvo delete();
}
//*******************************************************************
// *
// *
//*******************************************************************
top_floor_reopen()
{
if( IsDefined( level.model6 ) )
{
level.model6 delete();
}
model6 = spawn_anim_model( "model6" );
node = getstruct( "vignette_topfloorbreach", "script_noteworthy" );
node anim_single_solo( model6, "top_floor_breach" );
level waittill( "start_shadows_shutter_open" );
node anim_single_solo( model6, "into_shadows_shutter_open" );
}
//*******************************************************************
// *
// *
//*******************************************************************
taser_spawn()
{
//falcon = vignette_actor_spawn("falcon_taser", "falcon"); //"value" (kvp), "anim_name"
// opfor = vignette_actor_spawn("opfor_taser", "opfor"); //"value" (kvp), "anim_name"
waittillframeend;
thread meet_falcon_falcon( level.falcon_taser );
// thread meet_falcon_enemy( opfor );
// taser(level.falcon_taser, opfor);
// falcon vignette_actor_delete();
// opfor vignette_actor_kill();
}
meet_falcon_falcon( falcon )
{
node = getstruct("vignette_falcon_taser_handoff", "script_noteworthy");
taser = spawn_anim_model("taser");
guys = [];
guys["falcon"] = falcon;
guys["taser"] = taser;
node anim_single( guys, "taser" );
node thread anim_loop( guys, "taser_loop", "stop_loop");
// play looping Falcon
flag_wait( "falcon_taser_handoff" );
node notify ("stop_loop");
//falcon hands you the taser
node anim_single(guys, "taser_handoff");
}
meet_falcon_enemy( opfor )
{
node = getstruct("vignette_taser", "script_noteworthy");
opfor SetLookAtEntity( level._player );
node anim_single_solo( opfor , "taser");
opfor StopLookAt( );
opfor vignette_actor_kill();
}
falcon_shoots_taser( opfor )
{
MagicBullet( "lunarrifle", level.falcon_taser gettagorigin( "tag_flash"), (opfor.origin + (0,0,32)) );
}
taser_catch( taser )
{
level notify ("taser_catch");
taser delete();
}
//*******************************************************************
// *
// *
//*******************************************************************
vignette_scientist_run_01_spawn()
{
civ01 = vignette_actor_spawn("scientist_run_civ01", "civ01");
civ02 = vignette_actor_spawn("scientist_run_civ02", "civ02");
vignette_scientist_run_01(civ01, civ02);
civ01 vignette_actor_delete();
civ02 vignette_actor_delete();
}
vignette_scientist_run_01(civ01, civ02)
{
// there are two nodes in this case because they are considered two different vignettes
// that must play at the same time yet can't overlap.
node_01 = getstruct("vignette_scientist_run_01", "script_noteworthy");
node_02 = getstruct("vignette_scientist_run_02", "script_noteworthy");
/*
guys = [];
guys["civ01"] = civ01;
guys["civ02"] = civ02;
*/
node_01 thread anim_first_frame_solo(civ01, "scientist_run_01");
node_02 thread anim_first_frame_solo(civ02, "scientist_run_02");
node_01 thread anim_single_solo(civ01, "scientist_run_01");
node_02 anim_single_solo(civ02, "scientist_run_02");
}
//*******************************************************************
// *
// *
//*******************************************************************
close_hub_door( civ_07 )
{
thread maps\nx_lunar_util::close_lunar_door( "control_door_1");
thread maps\nx_lunar_util::close_lunar_door( "control_door_2");
}
hub_room_explosion ( civ_07 )
{
node = GetEnt ("hub_room_explosion_source", "targetname");
node playsound("lunar_explosions_scientist_explo");
playFX( level._effect[ "hub_room_explosion" ], node.origin, ( 0, -1, 0 ) );
Earthquake( 1.0, 1.5, level._player.origin, 100 );
level._player PlayRumbleOnEntity( "damage_light" );
}
cnc_enemy_shoots_civ_01 ( civ_01 )
{
level notify ("first_shot");
// iprintln ("first_shot");
}
cnc_enemy_shoots_civ_02 ( civ_02 )
{
level notify ("second_shot");
// iprintln ("second_shot");
}
cnc_enemy_shoots_civ_03 ( civ_03 )
{
level notify ("sixth_shot");
// iprintln ("sixth_shot");
}
cnc_enemy_shoots_civ_04 ( civ_04 )
{
level notify ("fifth_shot");
// iprintln ("fifth_shot");
}
cnc_enemy_shoots_civ_05 ( civ_05 )
{
level notify ("third_shot");
// iprintln ("third_shot");
}
cnc_enemy_shoots_civ_06 ( civ_06 )
{
level notify ("fourth_shot");
// iprintln ("fourth_shot");
}
//*******************************************************************
// *
// *
//*******************************************************************
vignette_falcon_taser_handoff( falcon )
{
node = getstruct("vignette_falcon_taser_handoff", "script_noteworthy");
node anim_reach_and_approach_solo( falcon, "falcon_taser_handoff");
node thread anim_first_frame_solo( falcon, "falcon_taser_handoff");
}
taser_release ( falcon )
{
level notify ("taser_release");
}
/* Removed, replaced with two AI guys.
//*******************************************************************
// *
// *
//*******************************************************************
vignette_falcon_taser_spawn()
{
// falcon = vignette_actor_spawn("falcon_taser_falcon", "falcon");
// opfor = vignette_actor_spawn("falcon_taser_opfor", "opfor");
vignette_falcon_taser(level.falcon_taser, level.taser_enemy);
// falcon vignette_actor_delete();
// opfor vignette_actor_delete();
}
vignette_falcon_taser(falcon, opfor)
{
node = getstruct("vignette_falcon_taser", "script_noteworthy");
guys = [];
// guys["falcon"] = falcon;
guys["opfor"] = opfor;
// node thread anim_single(guys, "falcon_taser", undefined);
// Time = GetAnimLength( level._scr_anim[ "falcon" ][ "falcon_taser" ] );
// wait (Time -5);
// falcon StopAnimScripted();
// issue_color_orders( "b2", "allies" );
// Remove the clip brush from the end of the hallway
blocker = GetEnt ("taser_hallway_end_player_blocker", "targetname");
blocker delete();
wait 5;
// opfor vignette_actor_kill();
}
*/
//*******************************************************************
// *
// *
//*******************************************************************
scientist_dead1_spawn()
{
vignette_scientist_dead1 = vignette_actor_spawn( "vignette_scientist_dead1", "vignette_scientist_dead1" ); //"value" (kvp), "anim_name"
level.scientist_dead = vignette_scientist_dead1;
scientist_dead1( vignette_scientist_dead1 );
vignette_scientist_dead1 vignette_actor_kill();
}
scientist_dead1(vignette_scientist_dead1)
{
node = getstruct("vignette_scientist_dead1", "script_noteworthy");
// Scientist can be killed by player
vignette_scientist_dead1 stop_magic_bullet_shield();
vignette_scientist_dead1.allowdeath = true;
vignette_scientist_dead1.heath = 1;
vignette_scientist_dead1 OverrideMoonFx( 1 );
guys = [];
guys["vignette_scientist_dead1"] = vignette_scientist_dead1;
node anim_single(guys, "scientist_dead1");
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_entrance_falcon_spawn()
{
//falcon = vignette_actor_spawn("armory_breach_falcon", "falcon"); //"value" (kvp), "anim_name"
armory_entrance_falcon( level.falcon_taser );
//falcon vignette_actor_delete();
}
armory_entrance_falcon( falcon )
{
level endon ("player_in_armory");
if ( isdefined ( falcon ))
{
node = getent("vignette_armory_breach_entrance", "script_noteworthy");
falcon disable_ai_color();
node anim_reach_and_approach_solo( falcon, "armory_entrance_falcon");
node anim_single_solo ( falcon, "armory_entrance_falcon");
falcon enable_ai_color();
}
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_entrance_spider_spawn()
{
//spider = vignette_actor_spawn("armory_breach_spider", "spider"); //"value" (kvp), "anim_name"
armory_entrance_spider( level.spider );
//spider vignette_actor_delete();
}
armory_entrance_spider( spider )
{
node = getent("vignette_armory_breach_entrance", "script_noteworthy");
// guys = [];
// guys["spider"] = spider;
node thread anim_loop_solo (spider, "armory_entrance_spider", "stop_idle");
// Spider should have his loop stopped by a notify when he's set to loop at the beginning of the breach sequence as well. This is here for safety.
flag_wait( "vignette_armory_entrance_player" );
if ( isAlive (level.spider))
{
node notify ("stop_idle");
}
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_entrance_player_spawn()
{
// eagle = vignette_actor_spawn("armory_breach_eagle", "eagle"); //"value" (kvp), "anim_name"
armory_entrance_player( level.eagle);
// eagle vignette_actor_delete();
}
armory_entrance_player(eagle)
{
// Stop Eagle from looking at the player
level.eagle StopLookAt( 20 );
// Spawn the props and set them to first frame before the player arrives
node = getent("vignette_armory_breach", "script_noteworthy");
node anim_teleport_solo( level.eagle, "armory_entrance_player");
node anim_first_frame_solo( level.eagle, "armory_entrance_player");
cabinet_door = spawn_anim_model("cabinet_door");
helmet = spawn_anim_model("helmet");
node thread anim_first_frame_solo(cabinet_door, "armory_entrance_player");
node thread anim_first_frame_solo(helmet, "armory_entrance_player");
// Wait for the player to trigger the scene
flag_wait ("vignette_armory_entrance_player");
level notify ("player_in_armory");
level._player allowprone( false );
level._player allowcrouch( false );
level._player disableweapons();
player_rig = spawn_anim_model( "player_rig" );
guys = [];
guys["cabinet_door"] = cabinet_door;
guys["helmet"] = helmet;
guys["eagle"] = eagle;
guys["player_rig"] = player_rig;
level._player playerLinkToBlend( player_rig, "tag_player", 0.75 );
node anim_single(guys, "armory_entrance_player");
level._player unlink();
player_rig delete();
level._player FreezeControls( false );
level._player allowprone( true );
level._player allowcrouch( true );
level._player enableweapons();
// cabinet_door delete();
}
hide_helmet( helmet )
{
helmet delete();
level notify ("armory_helmet_on");
// transition to a different vision set for the helmet being on.
thread maps\nx_lunar_fx::fx_armory_entry_helmet_on_vision_change();
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_entrance_grabrifle( rifle )
{
//level._player allowprone( false );
//level._player allowcrouch( false );
//level._player disableweapons();
node_grabrifle = getent( "vignette_armory_grabrifle", "script_noteworthy" );
player_rig = spawn_anim_model( "player_rig" );
node_grabrifle anim_first_frame_solo( player_rig, "armory_entrance_grabrifle" );
//Lock the player to the tag_player node of the anim
//arc = 0;
//level._player PlayerLinkToDelta( player_rig, "tag_player", 1, arc, arc, arc, arc, true );
level._player PlayerLinkToBlend( player_rig, "tag_player", .5, .25, .25 );
rifle LinkTo( player_rig, "tag_weapon", (0,0,0), (0,0,0) );
//rifle LinkTo( player_rig, "j_gun", (0,0,0), (0,0,0) );
node_grabrifle anim_single_solo( player_rig, "armory_entrance_grabrifle" );
level._player unlink();
//level._player allowprone( true );
//level._player allowcrouch( true );
rifle delete();
player_rig delete();
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_breach_loop_spawn()
{
eagle = vignette_actor_spawn("armory_breach_eagle", "eagle"); //"value" (kvp), "anim_name"
spider = vignette_actor_spawn("armory_breach_spider", "spider"); //"value" (kvp), "anim_name"
falcon = vignette_actor_spawn("armory_breach_falcon", "falcon"); //"value" (kvp), "anim_name"
armory_breach_loop( eagle, spider, falcon );
eagle vignette_actor_delete();
spider vignette_actor_delete();
falcon vignette_actor_delete();
}
armory_breach_loop( eagle, spider, falcon )
{
node = getstruct("vignette_armory_breach", "script_noteworthy");
guys = [];
guys["eagle"] = eagle;
guys["spider"] = spider;
guys["falcon"] = falcon;
node anim_loop(guys, "armory_breach_loop");
}
//*******************************************************************
// *
// *
//*******************************************************************
armory_breach_spawn()
{
eagle = vignette_actor_spawn("armory_breach_eagle", "eagle"); //"value" (kvp), "anim_name"
falcon = vignette_actor_spawn("armory_breach_falcon", "falcon"); //"value" (kvp), "anim_name"
spider = vignette_actor_spawn("armory_breach_spider", "spider"); //"value" (kvp), "anim_name"
armory_breach( eagle, falcon, spider );
eagle vignette_actor_delete();
falcon vignette_actor_delete();
spider vignette_actor_delete();
}
armory_breach_create_props()
{
node = getent("vignette_armory_breach", "script_noteworthy");
// spawn all the anim models for the shelves and actor cover
falcon_crate = spawn_anim_model("falcon_crate");
spider_crate = spawn_anim_model("spider_crate");
crate_01 = spawn_anim_model("crate_01");
crate_02 = spawn_anim_model("crate_02");
crate_03 = spawn_anim_model("crate_03");
crate_04 = spawn_anim_model("crate_04");
crate_05 = spawn_anim_model("crate_05");
crate_06 = spawn_anim_model("crate_06");
crate_07 = spawn_anim_model("crate_07");
crate_08 = spawn_anim_model("crate_08");
crate_09 = spawn_anim_model("crate_09");
crate_10 = spawn_anim_model("crate_10");
crate_11 = spawn_anim_model("crate_11");
crate_12 = spawn_anim_model("crate_12");
crate_13 = spawn_anim_model("crate_13");
crate_14 = spawn_anim_model("crate_14");
crate_15 = spawn_anim_model("crate_15");
crate_16 = spawn_anim_model("crate_16");
crate_17 = spawn_anim_model("crate_17");
crate_18 = spawn_anim_model("crate_18");
crate_19 = spawn_anim_model("crate_19");
crate_20 = spawn_anim_model("crate_20");
crate_21 = spawn_anim_model("crate_21");
crate_22 = spawn_anim_model("crate_22");
crate_23 = spawn_anim_model("crate_23");
crate_24 = spawn_anim_model("crate_24");
crate_25 = spawn_anim_model("crate_25");
crate_26 = spawn_anim_model("crate_26");
crate_27 = spawn_anim_model("crate_27");
crate_28 = spawn_anim_model("crate_28");
crate_29 = spawn_anim_model("crate_29");
crate_30 = spawn_anim_model("crate_30");
crate_31 = spawn_anim_model("crate_31");
crate_32 = spawn_anim_model("crate_32");
crate_33 = spawn_anim_model("crate_33");
crate_34 = spawn_anim_model("crate_34");
crate_35 = spawn_anim_model("crate_35");
crate_36 = spawn_anim_model("crate_36");
crate_37 = spawn_anim_model("crate_37");
crate_38 = spawn_anim_model("crate_38");
cabinet_01 = spawn_anim_model("cabinet_01");
cabinet_02 = spawn_anim_model("cabinet_02");
cabinet_03 = spawn_anim_model("cabinet_03");
cabinet_04 = spawn_anim_model("cabinet_04");
cabinet_05 = spawn_anim_model("cabinet_05");
cabinet_06 = spawn_anim_model("cabinet_06");
cabinet_07 = spawn_anim_model("cabinet_07");
cabinet_08 = spawn_anim_model("cabinet_08");
helmet_01 = spawn_anim_model("helmet_01");
helmet_02 = spawn_anim_model("helmet_02");
props = [];
props["falcon_crate"] = falcon_crate;
props["spider_crate"] = spider_crate;
props["crate_01"] = crate_01;
props["crate_02"] = crate_02;
props["crate_03"] = crate_03;
props["crate_04"] = crate_04;
props["crate_05"] = crate_05;
props["crate_06"] = crate_06;
props["crate_07"] = crate_07;
props["crate_08"] = crate_08;
props["crate_09"] = crate_09;
props["crate_10"] = crate_10;
props["crate_11"] = crate_11;
props["crate_12"] = crate_12;
props["crate_13"] = crate_13;
props["crate_14"] = crate_14;
props["crate_15"] = crate_15;
props["crate_16"] = crate_16;
props["crate_17"] = crate_17;
props["crate_18"] = crate_18;
props["crate_19"] = crate_19;
props["crate_20"] = crate_20;
props["crate_21"] = crate_21;
props["crate_22"] = crate_22;
props["crate_23"] = crate_23;
props["crate_24"] = crate_24;
props["crate_25"] = crate_25;
props["crate_26"] = crate_26;
props["crate_27"] = crate_27;
props["crate_28"] = crate_28;
props["crate_29"] = crate_29;
props["crate_30"] = crate_30;
props["crate_31"] = crate_31;
props["crate_32"] = crate_32;
props["crate_33"] = crate_33;
props["crate_34"] = crate_34;
props["crate_35"] = crate_35;
props["crate_36"] = crate_36;
props["crate_37"] = crate_37;
props["crate_38"] = crate_38;
props["cabinet_01"] = cabinet_01;
props["cabinet_02"] = cabinet_02;
props["cabinet_03"] = cabinet_03;
props["cabinet_04"] = cabinet_04;
props["cabinet_05"] = cabinet_05;
props["cabinet_06"] = cabinet_06;
props["cabinet_07"] = cabinet_07;
props["cabinet_08"] = cabinet_08;
props["helmet_01"] = helmet_01;
props["helmet_02"] = helmet_02;
// Save the props array
level.props = props;
node anim_first_frame( props, "armory_breach_explosion" );
}
armory_breach( eagle, falcon, spider )
{
// Stop Spider's idle loop
node = getent("vignette_armory_breach_entrance", "script_noteworthy");
node notify ("stop_idle");
node = getent("vignette_armory_breach", "script_noteworthy");
if( !IsDefined( level.props ) )
{
armory_breach_create_props();
}
guys = [];
guys["eagle"] = eagle;
guys["falcon"] = falcon;
guys["spider"] = spider;
node thread anim_single( level.props, "armory_breach_explosion" );
thread maps\nx_lunar_fx::fx_armory_breach_vision_change(); // cue the vision set change.
node anim_single( guys, "armory_breach_explosion" );
}
// deletes props flying out of airlock.
prop_delete( prop )
{
prop delete();
}
//*******************************************************************
// *
// *
//*******************************************************************
falcon_death_spawn()
{
// vignette_falcon = vignette_actor_spawn( "vignette_falcon", "vignette_falcon" ); //"value" (kvp), "anim_name"
// vignette_eagle = vignette_actor_spawn( "vignette_eagle", "vignette_eagle" ); //"value" (kvp), "anim_name"
// tagDK<note>Clean up all enemies in prep for this vignette
maps\nx_lunar_util::clean_all_enemies();
wait( 0.05 );
level.battle_rover = vignette_vehicle_spawn( "battle_rover", "rover" ); //"value" (kvp), "anim_name"
vignette_falcondeath_opfor1 = vignette_actor_spawn("vignette_falcondeath_opfor1", "vignette_falcondeath_opfor1"); //"value" (kvp), "anim_name"
level.battle_rover.main_turret = level.battle_rover.mgturret[0];
level.battle_rover.main_turret TurretFireDisable();
level.battle_rover maps\_vehicle::vehicle_lights_on( "running" );
blood_origin = spawn_anim_model("blood_origin");
falcon_death( level.battle_rover, level.falcon, level.eagle, blood_origin, vignette_falcondeath_opfor1 );
// rover vignette_vehicle_delete();
// vignette_falcon vignette_actor_delete();
// vignette_eagle vignette_actor_delete();
}
falcon_death( rover, vignette_falcon, vignette_eagle, blood_origin, vignette_falcondeath_opfor1 )
{
node = getstruct( "vignette_falcon_death", "script_noteworthy" );
level._player allowprone( false );
level._player allowcrouch( false );
level._player EnableInvulnerability();
player_rig = spawn_anim_model( "player_rig" );
thread falcon_death_fx( rover, vignette_falcon, blood_origin, vignette_eagle, player_rig );
wait 0.58;
guys = [];
guys["rover"] = rover;
guys["falcon"] = vignette_falcon;
guys["eagle"] = vignette_eagle;
guys["vignette_falcondeath_opfor1"] = vignette_falcondeath_opfor1;
guys["player_rig"] = player_rig;
guys["blood_origin"] = blood_origin;
arc = 15;
level._player PlayerLinkToBlend( player_rig, "tag_player", 0.25 );
level.battle_rover maps\_vehicle::suspend_drive_anims_for_vignette();
node anim_single( guys, "falcon_death" );
level.falcon stop_magic_bullet_shield();
vignette_falcondeath_opfor1 stop_magic_bullet_shield();
// Kill for clean up
level.falcon kill();
vignette_falcondeath_opfor1 kill();
level._player unlink();
player_rig delete();
level._player FreezeControls( false );
level._player allowprone( true );
level._player allowcrouch( true );
level._player enableweapons();
level._player DisableInvulnerability();
level.battle_rover DisconnectPaths();
flag_set( "rover_battle_start" );
}
falcon_injured( falcon )
{
falcon_injured = GetEnt( "falcon_injured_spawner", "targetname" ) spawn_ai();
if( IsDefined( falcon_injured ) )
{
falcon SetModel( falcon_injured.model );
falcon Detach( falcon.headmodel );
falcon.headmodel = falcon_injured.headmodel;
falcon Attach( falcon.headmodel );
}
falcon_injured Delete();
}
falcon_death_fx( rover, falcon, falcon_blood, eagle, player, vignette_falcondeath_opfor1 )
{
// Pre Shoot setup
muzzlePos = GetEnt( "rover_pre_battle_shot", "targetname" );
targetPos = ( 2695, -3000, -1290 );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt_linger", muzzlePos.origin + 0.1*( targetPos - muzzlePos.origin ), targetPos );
wait 0.53;
level._player disableweapons();
Earthquake( 1.0, 1.5, level._player.origin, 100 );
level._player PlayRumbleOnEntity( "damage_light" );
// Shoot the cliff.
wait 4.2;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
targetPos = ( 2695, -3000, -1290 );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos + 0.1*(targetPos - muzzlePos), targetPos );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 0.55;
level._player PlayRumbleOnEntity( "damage_light" );
wait 1.0;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, ( 2650, -3100, -1290 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 0.5;
level._player PlayRumbleOnEntity( "damage_light" );
wait 0.5;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, ( 2700, -3100, -1290 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 0.5;
level._player PlayRumbleOnEntity( "heavy_3s" );
wait 1.8;
level._player PlayRumbleOnEntity( "damage_light" );
// Player hand dust.
wait 0.3;
dustPos = player getTagOrigin( "J_Wrist_RI" );
playFX( level._effect[ "nx_lunar_falcon_death_dust_small" ], dustPos );
// Stray shot.
wait 0.9;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
falconPos = falcon getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, falconPos + ( 24, 24, 24 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
// Player hand dust.
dustPos = player getTagOrigin( "J_Wrist_LE" );
playFX( level._effect[ "nx_lunar_falcon_death_dust_small" ], dustPos + ( 24, 0, -24 ) );
// Falcon land.
wait 0.8;
dustPos = falcon getTagOrigin( "J_Ball_LE" );
playFX( level._effect[ "nx_lunar_falcon_death_dust_small" ], dustPos );
wait 0.2;
dustPos = falcon getTagOrigin( "J_Ball_RI" );
playFX( level._effect[ "nx_lunar_falcon_death_dust_small" ], dustPos );
// Hit (near) solar panel.
wait 0.4;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, ( 3250, -2800, -1520 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
// Stray shots.
wait 0.5;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
falconPos = falcon getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, falconPos + ( 24, 12, 32 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 1.0;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
falconPos = falcon getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, falconPos + ( -64, 12, 48 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
// Hit Falcon.
wait 1.0;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
bloodPos = falcon_blood getTagOrigin( "tag_origin" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_flesh", muzzlePos, bloodPos );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 0.3;
playFXOnTag( level._effect[ "nx_lunar_falcon_death_blood_exit" ], falcon_blood, "tag_origin" );
playFXOnTag( level._effect[ "nx_lunar_falcon_death_glass_hit" ], falcon, "tag_eye" );
wait 0.2;
playFXOnTag( level._effect[ "nx_lunar_falcon_death_blood_squirt" ], falcon_blood, "tag_origin" );
// Eagle to the rescue.
// Stray shot.
wait 0.3;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
eaglePos = eagle getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, eaglePos + ( -24, -24, 16 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
// Cliff shots.
wait 0.25;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_big_dirt", muzzlePos, ( 2770, -2876, -1334 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 0.45;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_big_dirt", muzzlePos, ( 2773, -3023, -1320 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 1.0;
dustPos = eagle getTagOrigin( "J_Ball_LE" );
playFX( level._effect[ "nx_lunar_falcon_death_dust" ], dustPos );
dustPos = eagle getTagOrigin( "J_Ball_RI" );
playFX( level._effect[ "nx_lunar_falcon_death_dust" ], dustPos );
stopFXOnTag( level._effect[ "nx_lunar_falcon_death_blood_squirt"], falcon_blood, "tag_origin" );
// Stray shots.
wait 0.3;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
eaglePos = eagle getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, eaglePos + ( -24, -24, 16 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
wait 3.5;
muzzlePos = rover.main_turret getTagOrigin( "tag_flash" );
eaglePos = eagle getTagOrigin( "J_Spine4" );
magicBullet( "nx_chinese_lgv_turret_magicbullet_dirt", muzzlePos, eaglePos + ( -128, -48, 64 ) );
playFXOnTag( level._effect[ "nx_chinese_lgv_turret_wv" ], rover.main_turret, "tag_flash" );
}
shellshock_start( player_rig )
{
level._player shellshock( "lunar_rover_battle", 5 );
}
//*******************************************************************
// *
// *
//*******************************************************************
end_greet_spawn()
{
end_greet_body = vignette_actor_spawn("end_greet_body", "end_greet_body"); //"value" (kvp), "anim_name"
end_greet_hawk = vignette_actor_spawn("end_greet_hawk", "end_greet_hawk"); //"value" (kvp), "anim_name"
end_greet_ally1 = vignette_actor_spawn("end_greet_ally1", "end_greet_ally1"); //"value" (kvp), "anim_name"
end_greet(end_greet_body, end_greet_hawk, end_greet_ally1);
end_greet_body vignette_actor_delete();
end_greet_hawk vignette_actor_delete();
end_greet_ally1 vignette_actor_delete();
}
end_greet( end_greet_body, end_greet_hawk, end_greet_ally1 )
{
node = getstruct("vignette_lunar_end_greet", "script_noteworthy");
end_greet_detonator = spawn_anim_model("end_greet_detonator");
guys = [];
guys[ end_greet_body.animname ] = end_greet_body;
guys[ end_greet_hawk.animname ] = end_greet_hawk;
guys[ end_greet_ally1.animname ] = end_greet_ally1;
guys[ "end_greet_detonator" ] = end_greet_detonator;
node thread anim_first_frame_solo( end_greet_body, "end_greet" );
node thread anim_first_frame_solo( end_greet_detonator, "end_greet" );
flag_wait( "vignette_end_greet" );
node anim_single(guys, "end_greet");
end_greet_detonator delete();
}
vignette_remove_gun( guy )
{
guy gun_remove();
}
vignette_stow_gun( guy )
{
guy gun_remove();
guy place_weapon_on( "lunarrifle", "back" );
}
vignette_use_breacher( guy )
{
guy forceUseWeapon( "breacher", "primary" );
}
//*******************************************************************
// *
// *
//*******************************************************************
end_controls_spawn()
{
enemy_body = vignette_actor_spawn("end_controls_enemy_body", "enemy_body"); //"value" (kvp), "anim_name"
hawk = vignette_actor_spawn("end_controls_hawk", "hawk"); //"value" (kvp), "anim_name"
crow = vignette_actor_spawn("end_controls_crow", "crow"); //"value" (kvp), "anim_name"
end_controls(enemy_body, hawk, crow);
enemy_body vignette_actor_delete();
hawk vignette_actor_delete();
crow vignette_actor_delete();
}
end_controls_enemy_first_frame( enemy_body )
{
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
node thread anim_first_frame_solo( enemy_body, "end_controls" );
}
end_controls_enemy_kill( enemy_body )
{
node = getstruct( "vignette_lunar_end_controls", "script_noteworthy" );
node thread anim_first_frame_solo( enemy_body, "end_controls_enemy_die" );
flag_wait( "c_and_c_doors_open" );
// Kill enemy
node anim_single_solo( enemy_body, "end_controls_enemy_die" );
node thread anim_first_frame_solo( enemy_body, "end_controls" );
}
// tagJEG<note> - It works better to run hawk and crow on separate threads so that one doesn't wait for the other animreach
/*
end_controls_enter( hawk, crow )
{
// tagTC<hack> - temp animname set till we clear up animname descripencies
hawk.animname = "hawk";
crow.animname = "crow";
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
guys = [];
guys["hawk"] = hawk;
guys["crow"] = crow;
node anim_reach( guys, "end_controls_enter" );
node anim_single( guys, "end_controls_enter" );
// Start their idle
end_controls_idle( hawk, crow );
}
end_controls_idle( hawk, crow )
{
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
guys = [];
guys["hawk"] = hawk;
guys["crow"] = crow;
node thread anim_loop( guys, "end_controls_loop", "stop_idle");
flag_wait( "control_lsp_activated" );
node notify ("stop_idle");
}
*/
end_controls_enter( hawk, crow )
{
thread end_controls_enter_h( hawk );
end_controls_enter_c( crow );
}
end_controls_enter_h( hawk )
{
// tagTC<hack> - temp animname set till we clear up animname descripencies
hawk.animname = "hawk";
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
node anim_reach_solo( hawk, "end_controls_enter" );
node anim_single_solo( hawk, "end_controls_enter" );
node thread anim_loop_solo( hawk, "end_controls_loop", "stop_idle");
flag_wait( "control_lsp_activated" );
node notify ("stop_idle");
}
end_controls_enter_c( crow )
{
// tagTC<hack> - temp animname set till we clear up animname descripencies
crow.animname = "crow";
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
node anim_reach_solo( crow, "end_controls_enter" );
node anim_single_solo( crow, "end_controls_enter" );
node thread anim_loop_solo( crow, "end_controls_loop", "stop_idle");
flag_wait( "control_lsp_activated" );
node notify ("stop_idle");
}
end_controls( enemy_body, hawk, crow, end_controls_panel )
{
// tagTC<hack> - temp animname set till we clear up animname descripencies
hawk.animname = "hawk";
crow.animname = "crow";
node = getstruct("vignette_lunar_end_controls", "script_noteworthy");
level._player allowprone( false );
level._player allowcrouch( false );
level._player disableweapons();
level._player takeallweapons();
player_rig = spawn_anim_model( "player_rig" );
//end_controls_panel = spawn_anim_model("end_controls_panel");
guys = [];
guys["enemy_body"] = enemy_body;
guys["player_rig"] = player_rig;
guys["hawk"] = hawk;
guys["crow"] = crow;
guys["end_controls_panel"] = end_controls_panel;
//arc = 15;
//level._player PlayerLinkToDelta( player_rig, "tag_player", 1, arc, arc, arc, arc, 1);
level._player playerLinkToBlend( player_rig, "tag_player", 0.75 );
node anim_single(guys, "end_controls");
//level._player unlink();
//player_rig delete();
//level._player FreezeControls( false );
//level._player allowprone( true );
//level._player allowcrouch( true );
}
end_controls_fade_out( guy )
{
black_overlay = create_client_overlay( "black", 0, level._player );
black_overlay FadeOverTime( 1.75 );
black_overlay.alpha = 1;
}
//*******************************************************************
// *
// *
//*******************************************************************
#using_animtree( "generic_human" );
charlie_anims()
{
//rover intro - charlie
level._scr_anim[ "charlie" ][ "rover_intro_drive" ] = %nx_tp_lunar_rover_intro_drive_charlie;
level._scr_anim[ "charlie" ][ "rover_intro_idle" ] = %nx_tp_lunar_rover_intro_idle_charlie;
level._scr_anim[ "charlie" ][ "rover_intro_jump" ] = %nx_tp_lunar_rover_intro_jump_charlie;
// death - charlie
level._scr_anim[ "charlie" ][ "nx_tp_lunar_charlie_death" ] = %nx_tp_lunar_charlie_death;
addNotetrack_customFunction( "charlie", "bullet_hit", ::charlie_death );
addNotetrack_customFunction( "charlie", "rover_jolt", ::rover_jolt );
}
#using_animtree( "vehicles" );
vehicle_anims()
{
level._scr_anim[ "rover" ][ "rover_crash" ] = %nx_vh_lunar_rovercrash_player;
level._scr_anim[ "rover" ][ "rover_intro_drive" ] = %nx_vh_lunar_rover_intro_drive_rover;
level._scr_anim[ "rover" ][ "rover_intro_jump" ] = %nx_vh_lunar_rover_intro_jump_rover;
level._scr_anim[ "rover" ][ "falcon_death" ] = %nx_vh_lunar_falcon_death_rover;
level._scr_animtree[ "rover" ] = #animtree;
}
charlie_death( charlie )
{
level notify("charlie_hit");
}
rover_jolt( charlie )
{
rover_charlie = get_vehicle("rover_charlie_spawner", "targetname");
rover_charlie JoltBody( (rover_charlie.origin + (0,0,-64)), 10 );
}
//Using animknobs we can add animations without affecting the vehicle on the path.
#using_animtree( "vehicles" );
rover_intro_drive_anim()
{
self useanimtree( #animtree );
self setanimKnob( %nx_vh_lunar_rover_intro_drive_rover, 1, 0, 1 );
}
#using_animtree( "vehicles" );
rover_intro_jump_anim()
{
self useanimtree( #animtree );
self setanimKnob( %nx_vh_lunar_rover_intro_jump_rover, 1, 0, 1 );
}
helmet_overlay( player_rig )
{
// Dan: Switching this function to use code-side helmet on/off system.
level._player maps\_moon::set_suit_hud_type("military");
level._player PutOnHelmet();
//black_overlay = create_client_overlay( "black", 0, level._player );
//black_overlay FadeOverTime( .1 );
//black_overlay.alpha = 1;
//wait ( .5 );
//level._player maps\_moon::set_suit_hud_type("civilian");
//black_overlay FadeOverTime( .1 );
//black_overlay.alpha = 0;
}
helmet_overlay_taking_off( player_rig )
{
// Dan: Switching this function to use code-side helmet on/off system.
level._player TakeOffHelmet();
//black_overlay = create_client_overlay( "black", 0, level._player );
//black_overlay FadeOverTime( .1 );
//black_overlay.alpha = 1;
//wait ( .5 );
////level._player maps\_moon::set_suit_hud_type("military");
//black_overlay FadeOverTime( .1 );
//black_overlay.alpha = 0;
}
start_vh_bay_breach( player_rig )
{
level notify ("start_vh_bay_breach");
}
close_airlock_door( player_rig )
{
level notify ("keypad_cycle");
wait 1;
level thread maps\nx_lunar_util::close_lunar_door( "vehicle_airlock_breach_01", 1.0 );
level thread maps\nx_lunar_util::lunar_door_status( "vehicle_airlock_breach_01", "status_yellow" );
level thread maps\nx_lunar_util::lunar_door_status( "vehicle_airlock_door_02", "status_yellow" );
level notify ("stop_player_visor_glass_cracking");
}
break_visor( player_rig )
{
level notify("break_visor");
}
slowmotion_start( player_rig )
{
target_speed = 0.25;
lerp_time = 0.05;
slowmo_start();
slowmo_setspeed_slow( target_speed );
slowmo_setlerptime_in( lerp_time );
slowmo_lerp_in();
}
slowmotion_stop( player_rig )
{
lerp_time = 0.75;
slowmo_setlerptime_out( lerp_time );
slowmo_lerp_out();
slowmo_end();
}
ally_door_keypad_cycle ( eagle )
{
level notify ("keypad_cycle");
// iprintln ("Cycling!");
}
wakeup_ally_shot ( ally_02 )
{
level notify ("wakeup_ally_shot");
}