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

886 lines
28 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
vignette_precache();
vignettes_startup();
}
vignettes_startup()
{
thread boss_introduction();
}
test_calls()
{
}
vignette_precache()
{
precachemodel( "mp_body_us_rangers_assault_a_urban" );
precachemodel( "head_mp_head_a" );
precachemodel( "body_extinction_civ_female_a" );
precachemodel( "head_extinction_civ_female_a" );
}
cross_lab_scene()
{
delay_vo_until_all_clear( 20 );
var_0 = getent( "crossarcher_lab_doors", "targetname" );
thread lab_scene_marker();
var_1 = spawn( "script_model", ( -600, -1561, 720 ) );
var_1 setmodel( "body_cross_a" );
var_1.angles = ( 0, 0, 0 );
var_2 = spawn_model( "head_cross_a", var_1, "J_spine4", ( 0, 0, 0 ) );
wait 0.25;
var_3 = spawn( "script_model", var_1 gettagorigin( "tag_weapon_right" ) );
var_3.angles = var_1 gettagangles( "tag_weapon_right" );
var_3 setmodel( "weapon_mp443" );
var_3 linkto( var_1, "tag_weapon_right" );
thread lab_doors_open();
var_0 scriptmodelplayanim( "alien_armory_doors_roomvignette_init" );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 0.46 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 1.33 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 1.666 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 2.2 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 3.56 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 4.93 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 5.6 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 6.33 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 7.8 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 9.06 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 10 );
thread handle_vo_foley( var_1, "scn_female_glass_hit", 11.133 );
thread handle_vo_foley( var_1, "scn_female_foley_hand_slide", 2 );
var_1 scriptmodelplayanimdeltamotion( "alien_armory_cross_roomvignette_init" );
var_2 scriptmodelplayanim( "alien_armory_cross_roomvignette_init" );
thread maps\mp\mp_alien_armory_fx::fx_cross_lab_light_on();
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
var_4 = getent( "stop_cross_idle", "targetname" );
var_4 thread cross_nags( var_1 );
wait 12.33;
thread maps\mp\mp_alien_armory_fx::fx_cross_lab_light_flicker();
var_5 = spawn( "script_model", ( -425, -1860, 720 ) );
var_5 setmodel( "body_archer_a" );
var_5.angles = ( 0, 0, 0 );
var_6 = spawn_model( "head_archer_a", var_5, "J_spine4", ( 0, 0, 0 ) );
var_7 = spawn( "script_model", var_5 gettagorigin( "tag_weapon_right" ) );
var_7.angles = var_5 gettagangles( "tag_weapon_right" );
var_7 setmodel( "weapon_mp443" );
var_7 linkto( var_5, "tag_weapon_right" );
var_7 thread lab_gunfire();
thread lab_scene_vo( var_1, var_5 );
thread aliens_lab_scene();
thread lab_doors_sfx();
var_1 scriptmodelplayanimdeltamotion( "alien_armory_cross_roomvignette" );
var_2 scriptmodelplayanim( "alien_armory_cross_roomvignette" );
thread handle_vo_foley( var_1, "scn_female_foley_hand_slide", 1.5666 );
thread handle_vo_foley( var_1, "scn_female_foley_gun_pickup_raise", 8.2666 );
thread handle_vo_foley( var_1, "scn_female_foley_getting_shot", 16.833 );
thread handle_vo_foley( var_3, "scn_female_foley_gun_drop", 17.466 );
thread handle_vo_foley( var_1, "scn_female_foley_getting_pickedup", 20.166 );
thread handle_vo_foley( var_5, "scn_male_button_slam", 28.3 );
var_5 scriptmodelplayanimdeltamotion( "alien_armory_archer_roomvignette" );
var_6 scriptmodelplayanim( "alien_armory_archer_roomvignette" );
thread handle_vo_foley( var_5, "scn_male_enter", 13.73 );
thread handle_vo_foley( var_5, "scn_male_approach", 17.933 );
thread handle_vo_foley( var_5, "scn_male_exit", 27.95 );
thread handle_vo_foley( var_5, "scn_male_button_slam", 28.3 );
thread handle_vo_foley( var_5, "scn_male_door_open", 13.2 );
thread handle_vo_foley( var_5, "scn_male_post_lift", 24.06 );
thread handle_vo_foley( var_5, "scn_male_slap", 21.133 );
var_0 scriptmodelplayanim( "alien_armory_doors_roomvignette" );
wait 35;
var_3 delete();
var_7 delete();
var_1 delete();
var_2 delete();
var_5 delete();
var_6 delete();
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
lab_alarm1()
{
playsoundatpos( ( -291, -1665, 846 ), "scn_arm_mtl_roll_door_alarm" );
}
lab_doors_open()
{
playsoundatpos( ( -668, -1434, 816 ), "scn_arm_mtl_door_roll_open_l" );
playsoundatpos( ( -668, -1723, 816 ), "scn_arm_mtl_door_roll_open_r" );
}
lab_doors_sfx()
{
wait 28.6333;
playsoundatpos( ( -668, -1434, 816 ), "scn_arm_mtl_roll_door_l" );
playsoundatpos( ( -668, -1723, 816 ), "scn_arm_mtl_roll_door_r" );
}
lab_gunfire()
{
wait 17.33;
thread maps\mp\mp_alien_armory_fx::fx_archer_shoots();
self playsound( "scn_cross_gunshot" );
}
aliens_lab_scene()
{
var_0 = maps\mp\gametypes\aliens::addalienagent( "axis", ( -420, -1867, 594 ), ( 0, 0, 0 ), "wave brute", undefined );
var_0 maps\mp\alien\_utility::enable_alien_scripted();
var_0 scragentsetscripted( 1 );
var_0.no_outline_on_alien = 1;
var_0 scragentsetphysicsmode( "noclip" );
var_0 scragentsetorientmode( "face angle abs", var_0.angles );
var_0 thread animate_alien( 0 );
thread play_sound_alien( 33.3666, "scn_cross_left_alien_vocals", var_0.origin, var_0 );
thread play_sound_alien( 30.966, "scn_cross_left_alien_door_burst", ( -475, -1332, 780 ), undefined );
var_1 = maps\mp\gametypes\aliens::addalienagent( "axis", ( -464, -1270, 720 ), ( 0, 0, 0 ), "wave brute", undefined );
var_1 maps\mp\alien\_utility::enable_alien_scripted();
var_1 scragentsetscripted( 1 );
var_1.no_outline_on_alien = 1;
var_1 scragentsetphysicsmode( "noclip" );
var_1 scragentsetorientmode( "face angle abs", var_1.angles );
var_1 thread animate_alien( 1 );
thread play_sound_alien( 31.8333, "scn_cross_right_alien_door_burst", ( -428, -1806, 780 ), undefined );
thread play_sound_alien( 33.1666, "scn_cross_right_alien_vocals", var_1.origin, var_1 );
}
play_sound_alien( var_0, var_1, var_2, var_3 )
{
wait( var_0 );
if ( !isdefined( var_3 ) )
playsoundatpos( var_2, var_1 );
else
var_3 playsoundonmovingent( var_1 );
}
animate_alien( var_0 )
{
self scragentsetanimmode( "anim deltas" );
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "armory_vignettes", var_0, "armory_vignettes", "end" );
wait 5;
self hide();
self suicide();
}
cross_armory_exit()
{
var_0 = [];
var_1 = getent( "archer_escape", "targetname" );
var_1 waittill( "trigger" );
var_2 = maps\mp\agents\alien\_alien_human::alienhumanspawn( ( -2903.6, 1437, 663.2 ), ( 0, 107.554, 0 ), "body_cross_a", "head_cross_a" );
var_2 scragentsetscripted( 1 );
var_2 scragentsetphysicsmode( "noclip" );
var_2 scragentsetorientmode( "face angle abs", var_2.angles );
var_3 = maps\mp\agents\alien\_alien_human::alienhumanspawn( ( -2904.4, 1442.5, 663.2 ), ( 0, -12.343, 0 ), "body_archer_a", "head_archer_a" );
var_3 scragentsetscripted( 1 );
var_3 scragentsetphysicsmode( "noclip" );
var_3 scragentsetorientmode( "face angle abs", var_3.angles );
var_4 = spawn( "script_model", ( -2700.3, 1514.7, 663.5 ) );
var_4 setmodel( "vehicle_gaz71_iw6_dlc" );
var_4.angles = ( 0, 33.871, 0 );
thread final_hive_vo();
var_4 thread archer_exfil_sfx_spawn();
var_4 scriptmodelplayanimdeltamotion( "alien_armory_gaz71_exit_facility" );
thread gate_close();
var_2 thread animate_human( 2 );
var_3 animate_human( 3 );
var_4 delete();
}
archer_exfil_sfx_spawn()
{
wait 0.02;
self playsoundonmovingent( "scn_archer_exfil" );
}
gate_close()
{
wait 12;
var_0 = getent( "rolling_gate", "targetname" );
if ( isdefined( var_0 ) )
{
var_0 thread archer_exfil_gate_close_sfx_spawn();
var_0 moveto( ( -648, 1956, 592 ), 2, 0, 1 );
}
}
archer_exfil_gate_close_sfx_spawn()
{
wait 0.02;
self playsoundonmovingent( "scn_archer_exfil_gate_close" );
}
animate_human( var_0, var_1 )
{
self scragentsetanimmode( "anim deltas" );
maps\mp\agents\alien\_alien_human::playanimation( "idle", var_0 );
self hide();
if ( isdefined( var_1 ) && var_1 == 1 )
return;
self suicide();
return;
}
boss_introduction()
{
thread intro_music();
wait 2;
var_0 = getentarray( "intro_fence", "targetname" );
var_1 = getscriptablearray( "intro_fence_script", "targetname" );
intro_vo();
var_2 = spawn( "script_model", ( -2160, -7364.86, 607.431 ) );
var_2 setmodel( "mp_body_us_rangers_assault_a_urban" );
var_2.angles = ( 0, -90, 0 );
var_3 = spawn( "script_model", var_2 gettagorigin( "J_spine4" ) );
var_3.angles = var_2 gettagangles( "J_spine4" );
var_3 setmodel( "head_mp_head_a" );
var_3 linkto( var_2, "J_spine4" );
var_4 = spawn( "script_model", var_2 gettagorigin( "tag_weapon_right" ) );
var_4.angles = var_2 gettagangles( "tag_weapon_right" );
var_4 setmodel( "weapon_rm_22" );
var_4 hidepart( "tag_barrel_sniper", "weapon_rm_22" );
var_4 linkto( var_2, "tag_weapon_right" );
thread redshirt_vo();
thread spider_tunnel();
var_4 thread gunswap();
var_2 thread add_loot_drops_around_body();
var_2 scriptmodelplayanimdeltamotion( "alien_redshirt_intro_tunnel" );
var_3 scriptmodelplayanim( "alien_redshirt_intro_tunnel" );
var_1[0] setscriptablepartstate( 0, 2 );
level.gate_is_open = 1;
thread sfx_intro();
wait 15.8333;
thread knockback_players( var_2 );
foreach ( var_6 in var_0 )
{
if ( isdefined( var_6 ) )
var_6 delete();
}
wait 2.93;
thread pre_set_scriptables();
var_1[0] setscriptablepartstate( 0, 3 );
godfather_hive_explain_vo();
}
gunswap()
{
wait 15.866;
self unlink();
var_0 = common_scripts\utility::getstructarray( "item", "targetname" );
var_1 = undefined;
foreach ( var_3 in var_0 )
{
if ( var_3.script_noteworthy == "weapon_iw6_aliendlc15_mp" )
{
var_1 = var_3.use_ent;
break;
}
}
var_1.origin = self.origin + ( 0, 0, 5 );
var_1.angles = self.angles;
var_1 hidepart( "tag_barrel_sniper", "weapon_rm_22" );
self delete();
}
add_loot_drops_around_body()
{
wait 18;
var_0 = spawn( "script_origin", self.origin );
var_1 = -50;
var_2 = 50;
var_3 = var_0.origin;
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "clip", level.pillageinfo.clip_model, 1 );
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "clip", level.pillageinfo.clip_model, 1 );
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "explosive", "tag_origin", 1, "aliensemtex_mp", 2 );
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "explosive", "tag_origin", 1, "aliensemtex_mp", 2 );
}
spider_tunnel()
{
var_0 = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -2375, -7784.86, 977.432 ), ( 0, 0, 0 ) );
var_0 maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
var_0 maps\mp\alien\_utility::enable_alien_scripted();
var_0 scragentsetscripted( 1 );
var_0 scragentsetphysicsmode( "noclip" );
var_0 scragentsetorientmode( "face angle abs", var_0.angles );
var_0 scragentsetanimmode( "anim deltas" );
var_0 thread maps\mp\mp_alien_armory_fx::fx_intro_tunnel_stab();
var_0 maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "tunnel_intro", 0, "tunnel_intro", "end" );
var_0 maps\mp\alien\_utility::set_alien_emissive( 0.2, 0 );
var_0 hide();
var_0.vignette_death_skip = 1;
var_0 maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderkilled();
var_0 suicide();
}
sfx_intro()
{
wait 4;
level.sfx_intro_guard = spawn( "script_origin", ( -2290, -7778, 664 ) );
level.sfx_intro_guard playsound( "scn_intro_guard" );
wait 3.3;
foreach ( var_1 in level.players )
var_1 playsound( "scn_intro_spider" );
wait 15;
level.sfx_intro_guard delete();
}
first_spider_fence()
{
var_0 = getscriptablearray( "fence_blocker_01", "targetname" );
var_0[0] setscriptablepartstate( 0, 1 );
}
knockback_players( var_0 )
{
foreach ( var_2 in level.players )
{
if ( distance( var_2.origin, var_0.origin ) <= 128 )
{
var_2 setvelocity( vectornormalize( var_2.origin - var_0.origin ) * 800 );
var_2 dodamage( var_2.maxhealth / 3, var_0.origin );
}
}
}
spider_exit_a_props()
{
var_0 = getscriptablearray( "armory_alien_rail_a", "targetname" );
var_0[0] setscriptablepartstate( 0, 1 );
var_1 = getscriptablearray( "antenna_retreat_event_a", "targetname" );
var_1[0] setscriptablepartstate( 0, 1 );
}
spider_entrance_b()
{
wait 3;
level.spider = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -1138.05, -2542.5, 565.487 ), ( 0, 0, 0 ) );
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
level.spider maps\mp\alien\_utility::enable_alien_scripted();
level.spider scragentsetscripted( 1 );
level.spider scragentsetphysicsmode( "noclip" );
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
level thread maps\mp\mp_alien_armory_fx::fx_spider_entrance_b();
level.spider scragentsetanimmode( "anim deltas" );
var_0 = getscriptablearray( "antenna_event_02", "targetname" );
var_0[0] setscriptablepartstate( 0, 2 );
var_1 = getscriptablearray( "armory_alien_rail_b", "targetname" );
var_1[0] setscriptablepartstate( 0, 2 );
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 1, "retreat", "end" );
}
spider_posture_b()
{
}
spider_exit_b()
{
level.spider maps\mp\alien\_utility::enable_alien_scripted();
level.spider scragentsetscripted( 1 );
level.spider scragentsetphysicsmode( "noclip" );
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
var_0 = getscriptablearray( "antenna_event_02", "targetname" );
var_0[0] setscriptablepartstate( 0, 3 );
var_1 = getscriptablearray( "armory_alien_rail_b", "targetname" );
var_1[0] setscriptablepartstate( 0, 3 );
level thread maps\mp\mp_alien_armory_fx::fx_spider_exit_b();
level.spider scragentsetanimmode( "anim deltas" );
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 2, "retreat", "end" );
level.spider.vignette_death_skip = 1;
level.spider suicide();
}
spider_entrance_c()
{
if ( !isdefined( level.jumped_to_final_boss ) || level.jumped_to_final_boss == 0 )
{
thread cross_armory_exit();
common_scripts\utility::flag_wait( "start_spider_encounter" );
}
wait 10;
level.spider = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -300, 3140, 967 ), ( 0, 0, 0 ) );
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
level.spider maps\mp\alien\_utility::enable_alien_scripted();
level.spider scragentsetscripted( 1 );
level.spider scragentsetphysicsmode( "noclip" );
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
thread maps\mp\mp_alien_armory_fx::fx_spider_impact_big();
level.spider scragentsetanimmode( "anim deltas" );
wait 0.1;
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 3, "retreat", "end" );
level.spider maps\mp\alien\_utility::disable_alien_scripted();
level.spider scragentsetscripted( 0 );
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 0 );
}
intro_music()
{
for (;;)
{
level waittill( "connected", var_0 );
var_0 thread intro_music_play();
}
}
intro_music_play()
{
self waittill( "spawned_player" );
foreach ( var_1 in level.players )
{
if ( common_scripts\utility::flag( "alien_music_playing" ) )
{
var_1 stoplocalsound( "mp_suspense_01" );
var_1 stoplocalsound( "mp_suspense_02" );
var_1 stoplocalsound( "mp_suspense_03" );
var_1 stoplocalsound( "mp_suspense_04" );
var_1 stoplocalsound( "mp_suspense_05" );
var_1 stoplocalsound( "mp_suspense_06" );
var_1 stoplocalsound( "us_spawn_music" );
var_1 stoplocalsound( "mus_alien_newwave" );
common_scripts\utility::flag_clear( "alien_music_playing" );
}
if ( !common_scripts\utility::flag( "exfil_music_playing" ) )
wait 0.01;
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_armory_intro" );
wait 0.1;
}
}
intro_vo()
{
wait 4;
}
godfather_hive_explain_vo()
{
wait 2;
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_god_2_1_1" );
wait 12;
play_sound_on_player( "armory_god_2_1_2" );
wait 9;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
godfather_area_1_first()
{
delay_vo_until_all_clear();
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_god_2_2_1" );
wait 10;
play_sound_on_player( "armory_god_2_2_2" );
wait 4;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
thread security_room_vo();
}
godfather_area_1_midway()
{
}
area_1_final_hive()
{
var_0 = distance( level.drill.origin, ( -3653, -6322, 859 ) );
if ( var_0 >= 256 )
{
delay_vo_until_all_clear( 10 );
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_god_2_3_1" );
wait 7.75;
play_sound_on_player( "armory_god_2_3_2" );
wait 2.75;
play_sound_on_player( "armory_god_2_3_3" );
wait 5;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
}
post_first_boss_vo()
{
delay_vo_until_all_clear();
wait 5;
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_god_5_1" );
wait 11.25;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
pre_second_boss_vo()
{
delay_vo_until_all_clear();
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_cross_5_3" );
wait 6.8;
play_sound_on_player( "armory_cross_5_5" );
wait 2.5;
play_sound_on_player( "armory_cross_5_6" );
wait 5.2;
play_sound_on_player( "armory_cross_5_6_1" );
wait 2;
thread cross_office_vo();
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
cross_office_vo()
{
var_0 = getent( "cross_office_VO", "targetname" );
var_0 waittill( "trigger" );
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_cross_6_2" );
wait 5.5;
play_sound_on_player( "armory_cross_6_3" );
wait 2.25;
play_sound_on_player( "armory_cross_6_4" );
wait 2.5;
play_sound_on_player( "armory_cross_6_8" );
wait 3.5;
var_0 delete();
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
lab_scene_vo( var_0, var_1 )
{
wait 0.8;
var_0 playsound( "armory_cross_7_6" );
thread lab_scene_music();
wait 1.2;
var_0 playsound( "armory_cross_7_7" );
wait 6.46;
var_0 playsound( "armory_cross_7_8" );
wait 9.4;
var_0 playsound( "armory_cross_7_9" );
wait 3.3;
var_1 playsound( "armory_arc_7_10" );
wait 5;
}
lab_scene_music()
{
wait 1.2;
foreach ( var_1 in level.players )
{
if ( common_scripts\utility::flag( "alien_music_playing" ) )
{
var_1 stoplocalsound( "mp_suspense_01" );
var_1 stoplocalsound( "mp_suspense_02" );
var_1 stoplocalsound( "mp_suspense_03" );
var_1 stoplocalsound( "mp_suspense_04" );
var_1 stoplocalsound( "mp_suspense_05" );
var_1 stoplocalsound( "mp_suspense_06" );
var_1 stoplocalsound( "mus_alien_newwave" );
common_scripts\utility::flag_clear( "alien_music_playing" );
}
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_scn_cross" );
}
}
final_hive_vo()
{
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
play_sound_on_player( "armory_god_8_1" );
thread play_third_spider_music();
wait 4.75;
play_sound_on_player( "armory_god_8_2" );
wait 4;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
play_third_spider_music()
{
wait 3;
foreach ( var_1 in level.players )
{
if ( common_scripts\utility::flag( "alien_music_playing" ) )
{
var_1 stoplocalsound( "mp_suspense_01" );
var_1 stoplocalsound( "mp_suspense_02" );
var_1 stoplocalsound( "mp_suspense_03" );
var_1 stoplocalsound( "mp_suspense_04" );
var_1 stoplocalsound( "mp_suspense_05" );
var_1 stoplocalsound( "mp_suspense_06" );
var_1 stoplocalsound( "mus_alien_newwave" );
common_scripts\utility::flag_clear( "alien_music_playing" );
}
if ( !common_scripts\utility::flag( "exfil_music_playing" ) )
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_archer_exfil" );
}
}
redshirt_vo()
{
var_0 = spawn( "script_origin", ( -2304, -7666, 652 ) );
wait 3.9;
level notify( "spawn_intro_drill" );
var_0 playsound( "armory_grd_1_1" );
wait 2.63;
var_0 playsound( "armory_grd_1_2" );
wait 4.47;
var_0 playsound( "armory_grd_1_3" );
thread spider_intro_screen_shake( var_0 );
wait 2.56;
var_0 playsound( "armory_grd_1_4" );
common_scripts\utility::flag_set( "intro_sequence_complete" );
wait 4;
spider_intro_screen_shake_exit( var_0 );
var_0 delete();
}
spider_intro_screen_shake( var_0 )
{
var_1 = 0.1;
for ( var_2 = 0; var_2 < 6; var_2++ )
{
earthquake( var_1, 0.4, var_0.origin, 768 );
playrumbleonposition( "grenade_rumble", var_0.origin );
var_1 = var_1 + 0.05;
if ( var_2 > 1 )
common_scripts\utility::exploder( 120 );
wait 0.6;
}
}
spider_intro_screen_shake_exit( var_0 )
{
var_1 = 0.4;
for ( var_2 = 0; var_2 < 6; var_2++ )
{
earthquake( var_1, 0.4, var_0.origin, 768 );
playrumbleonposition( "grenade_rumble", var_0.origin );
var_1 = var_1 - 0.05;
if ( var_2 < 3 )
common_scripts\utility::exploder( 120 );
wait 0.6;
}
}
post_final_boss_vo()
{
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
wait 11.75;
play_sound_on_player( "armory_god_9_1" );
wait 5;
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
cross_nags( var_0 )
{
self endon( "stop_nags" );
wait 0.7;
var_0 playsound( "armory_cross_7_1" );
wait 3.26;
var_0 playsound( "armory_cross_7_2" );
wait 2;
var_0 playsound( "armory_cross_7_3" );
wait 1.57;
var_0 playsound( "armory_cross_7_4" );
wait 1.23;
var_0 playsound( "armory_cross_7_5" );
}
security_room_vo()
{
var_0 = getent( "security_room_vo_trigger", "targetname" );
var_0 waittill( "trigger" );
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
var_1 = spawn( "script_origin", ( -3354, -6616, 808 ) );
var_1 playsound( "armory_arc_3_1" );
wait 6.5;
var_1 playsound( "armory_god_3_2" );
wait 1.5;
var_1 playsound( "armory_arc_3_3" );
wait 4.5;
var_1 playsound( "armory_god_3_4" );
wait 4.5;
var_1 playsound( "armory_arc_3_5" );
wait 5;
level notify( "cinematic_end" );
var_1 delete();
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
}
delay_vo_until_all_clear( var_0 )
{
if ( !isdefined( var_0 ) )
var_0 = 30;
var_1 = gettime();
var_2 = var_1 - var_0 * 1000;
while ( var_2 <= var_1 )
{
var_2 = var_1 - var_0 * 1000;
var_3 = 0;
foreach ( var_5 in level.agentarray )
{
if ( isdefined( var_5 ) )
{
if ( isalive( var_5 ) )
{
if ( var_5.team == "axis" && isdefined( var_5.alien_type ) && var_5.alien_type != "spider" )
{
var_3 = 1;
break;
}
}
}
}
if ( var_3 == 0 )
return;
wait 0.5;
}
}
play_vignette_vo( var_0, var_1, var_2, var_3, var_4 )
{
if ( !isdefined( var_1 ) )
var_1 = "high";
if ( !isdefined( var_2 ) )
var_2 = 30;
if ( !isdefined( var_3 ) )
var_3 = 0;
if ( !isdefined( var_4 ) )
var_4 = 0.25;
foreach ( var_6 in level.players )
{
var_6 maps\mp\alien\_music_and_dialog::play_vo_on_player( var_0, var_1, var_2, var_3, var_4 );
break;
}
}
gate_check()
{
}
spawn_model( var_0, var_1, var_2, var_3 )
{
var_4 = spawn( "script_model", ( 0, 0, 0 ) );
var_4 setmodel( var_0 );
var_4.origin = var_1 gettagorigin( var_2 );
var_4.angles = var_1 gettagangles( var_2 ) + var_3;
var_4 linkto( var_1, var_2 );
return var_4;
}
lab_scene_marker()
{
var_0 = "waypoint_alien_blocker";
var_1 = 14;
var_2 = 14;
var_3 = 0.5;
var_4 = ( -906, -1570, 780 );
var_5 = 49;
var_6 = 256;
var_7 = 100;
var_8 = maps\mp\alien\_hud::make_waypoint( var_0, var_1, var_2, var_3, var_4 );
var_9 = spawn( "trigger_radius", var_4, 0, var_6, var_7 );
var_9 thread watch_trigger_by_player();
var_9 common_scripts\utility::waittill_any_timeout( var_5, "trigger_by_player" );
var_9 delete();
var_8 destroy();
}
watch_trigger_by_player()
{
self endon( "death" );
level endon( "game_ended" );
common_scripts\utility::waitframe();
for (;;)
{
self waittill( "trigger", var_0 );
if ( isplayer( var_0 ) )
break;
}
self notify( "trigger_by_player" );
}
handle_vo_foley( var_0, var_1, var_2 )
{
wait( var_2 );
var_0 playsound( var_1 );
}
pre_set_scriptables()
{
var_0 = getscriptablearray( "armory_alien_rail_a", "targetname" );
var_0[0] setscriptablepartstate( 0, 4 );
var_1 = getscriptablearray( "antenna_retreat_event_a", "targetname" );
var_1[0] setscriptablepartstate( 0, 4 );
}
queen_hole_marker()
{
var_0 = "waypoint_alien_blocker";
var_1 = 14;
var_2 = 14;
var_3 = 0.5;
var_4 = ( -3271, 135, 841 );
var_5 = 49;
var_6 = 256;
var_7 = 100;
var_8 = maps\mp\alien\_hud::make_waypoint( var_0, var_1, var_2, var_3, var_4 );
var_9 = spawn( "trigger_radius", var_4, 0, var_6, var_7 );
var_9 thread watch_trigger_by_player();
var_9 common_scripts\utility::waittill_any_timeout( var_5, "trigger_by_player" );
var_9 delete();
var_8 destroy();
}
play_sound_on_player( var_0 )
{
foreach ( var_2 in level.players )
{
if ( isdefined( var_2 ) )
{
var_2 playsound( var_0 );
break;
}
}
}