2275 lines
90 KiB
Plaintext
2275 lines
90 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
cornered_destruct_pre_load()
|
|
{
|
|
precacherumble( "artillery_rumble" );
|
|
precacherumble( "collapsing_building" );
|
|
precacherumble( "light_1s" );
|
|
precacherumble( "light_2s" );
|
|
precacherumble( "light_3s" );
|
|
precacherumble( "heavy_1s" );
|
|
precacherumble( "heavy_2s" );
|
|
precacherumble( "heavy_3s" );
|
|
precachemodel( "com_computer_keyboard" );
|
|
precachemodel( "com_computer_mouse" );
|
|
precachemodel( "hjk_tablet_01" );
|
|
precachemodel( "bowl_wood_modern_01" );
|
|
precachemodel( "viewhands_player_gs_stealth" );
|
|
precachemodel( "viewlegs_gs_stealth_tapered" );
|
|
precachemodel( "cnd_briefcase_01_animated" );
|
|
precachemodel( "cnd_briefcase_01_glow" );
|
|
precachemodel( "generic_prop_x30_raven" );
|
|
precachemodel( "cnd_parachute" );
|
|
precachemodel( "ctl_parachute_ripcord_prop" );
|
|
precachemodel( "ctl_parachute_player" );
|
|
precachemodel( "cnd_player_rubble" );
|
|
precachestring( &"CORNERED_HVT_KILLED_FAIL" );
|
|
precachestring( &"CORNERED_FAIL_HVT_INTERROGATE" );
|
|
precachestring( &"CORNERED_FAIL_EXPLOSION" );
|
|
precachestring( &"CORNERED_DEPLOY_CHUTE" );
|
|
precachestring( &"CORNERED_DEPLOY_CHUTE_CONSOLE" );
|
|
precachestring( &"CORNERED_PARACHUTE_FAIL" );
|
|
maps\_utility::add_hint_string( "chute_deploy", &"CORNERED_DEPLOY_CHUTE", ::parachute_break );
|
|
precacheshellshock( "cornered_stairwell" );
|
|
precacheshellshock( "cornered_horizontal_start" );
|
|
level.hvt_door_blocker = undefined;
|
|
common_scripts\utility::flag_init( "baker_breach_ready" );
|
|
common_scripts\utility::flag_init( "hvt_office_rorke_entry" );
|
|
common_scripts\utility::flag_init( "hvt_rorke_ready_door" );
|
|
common_scripts\utility::flag_init( "hvt_rorke_ready" );
|
|
common_scripts\utility::flag_init( "hvt_baker_ready" );
|
|
common_scripts\utility::flag_init( "hvt_office_explosion" );
|
|
common_scripts\utility::flag_init( "hvt_player_done" );
|
|
common_scripts\utility::flag_init( "hvt_office_statue" );
|
|
common_scripts\utility::flag_init( "rorke_ready_shake3" );
|
|
common_scripts\utility::flag_init( "open_stairwell_doors" );
|
|
common_scripts\utility::flag_init( "stairwell_shake_1" );
|
|
common_scripts\utility::flag_init( "stairwell_shake_2" );
|
|
common_scripts\utility::flag_init( "stairwell_shake_3" );
|
|
common_scripts\utility::flag_init( "office_ally_anims_starting" );
|
|
common_scripts\utility::flag_init( "office_explosion" );
|
|
common_scripts\utility::flag_init( "player_can_use_briefcase" );
|
|
common_scripts\utility::flag_init( "player_used_briefcase" );
|
|
common_scripts\utility::flag_init( "open_lobby_door" );
|
|
common_scripts\utility::flag_init( "baker_ready_for_office_shake" );
|
|
common_scripts\utility::flag_init( "rorke_ready_for_office_shake" );
|
|
common_scripts\utility::flag_init( "lobby_stairwell_shake" );
|
|
common_scripts\utility::flag_init( "lobby_rorke_ready" );
|
|
common_scripts\utility::flag_init( "fall_stagger_anim_done" );
|
|
common_scripts\utility::flag_init( "fall_down_shake" );
|
|
common_scripts\utility::flag_init( "go_sm_debris_a" );
|
|
common_scripts\utility::flag_init( "go_sm_debris_b" );
|
|
common_scripts\utility::flag_init( "player_is_slipping" );
|
|
common_scripts\utility::flag_init( "fall_rubble_shift" );
|
|
common_scripts\utility::flag_init( "fall_enemy_a" );
|
|
common_scripts\utility::flag_init( "fall_enemy_b" );
|
|
common_scripts\utility::flag_init( "fall_enemy_c" );
|
|
common_scripts\utility::flag_init( "fall_enemy_d" );
|
|
common_scripts\utility::flag_init( "fall_enemy_e" );
|
|
common_scripts\utility::flag_init( "fall_enemy_f" );
|
|
common_scripts\utility::flag_init( "go_building_fall" );
|
|
common_scripts\utility::flag_init( "atrium_pre_rail_hit" );
|
|
common_scripts\utility::flag_init( "fall_rail_hit" );
|
|
common_scripts\utility::flag_init( "atrium_pillar_break" );
|
|
common_scripts\utility::flag_init( "atrium_floor_break" );
|
|
common_scripts\utility::flag_init( "building_player_anim_begin" );
|
|
common_scripts\utility::flag_init( "pre_glass_impact" );
|
|
common_scripts\utility::flag_init( "parachute_exfil" );
|
|
common_scripts\utility::flag_init( "go_exfil_bldg" );
|
|
common_scripts\utility::flag_init( "show_ally_chute" );
|
|
common_scripts\utility::flag_init( "show_player_chute" );
|
|
common_scripts\utility::flag_init( "parachute_deployed" );
|
|
common_scripts\utility::flag_init( "exfil_slow_down" );
|
|
common_scripts\utility::flag_init( "exfil_speed_up" );
|
|
common_scripts\utility::flag_init( "rescue_finished" );
|
|
common_scripts\utility::flag_init( "stairwell_finished" );
|
|
common_scripts\utility::flag_init( "atrium_finished" );
|
|
common_scripts\utility::flag_init( "teleport" );
|
|
}
|
|
|
|
setup_capture()
|
|
{
|
|
if ( maps\cornered_code::is_e3() )
|
|
{
|
|
thread maps\cornered::e3_transition_start();
|
|
return;
|
|
}
|
|
|
|
level.rescue_checkpoint = 1;
|
|
maps\cornered_code::setup_player();
|
|
maps\cornered_code::spawn_allies();
|
|
thread maps\cornered_code::handle_intro_fx();
|
|
thread maps\cornered_audio::aud_check( "rescue" );
|
|
thread maps\cornered_code::cleanup_outside_ents_on_entry();
|
|
level.player switchtoweapon( "kriss+eotechsmg_sp+silencer_sp" );
|
|
maps\cornered_code::delete_building_glow();
|
|
}
|
|
|
|
setup_stairwell()
|
|
{
|
|
level.stairwell_checkpoint = 1;
|
|
level.rescue_anim_struct = common_scripts\utility::getstruct( "rescue_animnode", "targetname" );
|
|
level.fall_anim_struct = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
level.hvt_office_anim_struct = common_scripts\utility::getstruct( "hvt_office_animnode", "targetname" );
|
|
thread maps\cornered::obj_escape();
|
|
var_0 = getent( "hvt_exit_door_rt", "targetname" );
|
|
var_1 = getent( "hvt_exit_door_lf", "targetname" );
|
|
var_2 = getent( "stairwell_exit_door_clip", "targetname" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "stairwell_door", "cnd_stair_escape_prop_doors", "stairwell_exit_door_left", "stairwell_exit_door_right", 1, "open_stairwell_doors" );
|
|
var_0 rotateyaw( 100, 0.05 );
|
|
var_1 rotateyaw( -100, 0.05 );
|
|
var_2 notsolid();
|
|
var_2 connectpaths();
|
|
var_0 connectpaths();
|
|
var_1 connectpaths();
|
|
var_3 = getent( "hvt_office_door_clip", "targetname" );
|
|
var_3 delete();
|
|
maps\cornered_code::setup_player();
|
|
maps\cornered_code::spawn_allies();
|
|
thread stairwell_pipes();
|
|
thread maps\cornered_code::handle_intro_fx();
|
|
thread stairwell_cracks();
|
|
thread maps\cornered_audio::aud_check( "stairwell" );
|
|
thread maps\cornered_audio::aud_collapse( "pipes" );
|
|
thread vista_tilt();
|
|
level.player switchtoweapon( "kriss+eotechsmg_sp+silencer_sp" );
|
|
maps\cornered_code::delete_building_glow();
|
|
thread maps\cornered_code::cleanup_outside_ents_on_entry();
|
|
wait 0.05;
|
|
var_2 delete();
|
|
}
|
|
|
|
setup_atrium()
|
|
{
|
|
level.atrium_checkpoint = 1;
|
|
maps\cornered_code::setup_player();
|
|
maps\cornered_code::spawn_allies();
|
|
level.fall_anim_struct = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
thread vista_tilt();
|
|
thread fall_props();
|
|
thread fall_physics_debris_lobby();
|
|
thread maps\cornered_code::handle_intro_fx();
|
|
thread maps\cornered_audio::aud_check( "atrium" );
|
|
level.player switchtoweapon( "kriss+eotechsmg_sp+silencer_sp" );
|
|
maps\cornered_code::delete_building_glow();
|
|
thread maps\cornered_code::cleanup_outside_ents_on_entry();
|
|
}
|
|
|
|
begin_capture()
|
|
{
|
|
if ( maps\cornered_code::is_e3() )
|
|
return;
|
|
|
|
level thread hvt_office_handler();
|
|
common_scripts\utility::flag_wait( "rescue_finished" );
|
|
}
|
|
|
|
begin_stairwell()
|
|
{
|
|
level thread stairwell_handler();
|
|
level thread office_handler();
|
|
|
|
if ( maps\cornered_code::is_e3() )
|
|
level.player maps\_utility::vision_set_changes( "cornered_07", 0.5 );
|
|
|
|
common_scripts\utility::flag_wait( "stairwell_finished" );
|
|
}
|
|
|
|
begin_atrium()
|
|
{
|
|
level thread fall_handler();
|
|
common_scripts\utility::flag_wait( "atrium_finished" );
|
|
}
|
|
|
|
vista_tilt_setup()
|
|
{
|
|
level.vista = getentarray( "vista_buildings", "targetname" );
|
|
level.vista_pivot = getent( "air_vista_pivot", "targetname" );
|
|
thread fall_fx_crowd_setup();
|
|
thread fall_fx_billboard_setup();
|
|
|
|
foreach ( var_1 in level.vista )
|
|
{
|
|
var_1 notsolid();
|
|
var_1 linkto( level.vista_pivot );
|
|
}
|
|
}
|
|
|
|
vista_tilt()
|
|
{
|
|
level.player_ref_ent = getent( "player_ref_ent_1", "targetname" );
|
|
level.player playersetgroundreferenceent( level.player_ref_ent );
|
|
level.player.dof_ref_ent = level.player_ref_ent;
|
|
|
|
if ( !isdefined( level.stairwell_checkpoint ) && !isdefined( level.atrium_checkpoint ) )
|
|
{
|
|
common_scripts\utility::flag_wait( "hvt_office_explosion" );
|
|
level.player_ref_ent rotateto( ( -4, 0, -7 ), 5, 1.5 );
|
|
level.vista_pivot rotateto( ( -4, 0, -7 ), 5, 1.5 );
|
|
var_0 = 0;
|
|
var_1 = 0;
|
|
|
|
for ( var_2 = 0; var_2 < 20; var_2++ )
|
|
{
|
|
setphysicsgravitydir( ( var_0, var_1, -0.03 ) );
|
|
wait 0.25;
|
|
var_0 = var_0 + 0.001;
|
|
var_1 = var_1 + -0.0005;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.player_ref_ent rotateto( ( -4, 0, -7 ), 0.05 );
|
|
level.vista_pivot rotateto( ( -4, 0, -7 ), 0.05 );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
if ( !isdefined( level.atrium_checkpoint ) )
|
|
{
|
|
common_scripts\utility::flag_wait( "office_explosion" );
|
|
earthquake( 0.5, 4, level.player.origin, 2500 );
|
|
thread common_scripts\utility::play_sound_in_space( "scn_crnd_quake", level.player.origin );
|
|
level.player_ref_ent rotateto( ( 0, 0, -8 ), 5, 1.5 );
|
|
level.vista_pivot rotateto( ( 0, 0, -8 ), 5, 1.5 );
|
|
wait 4.0;
|
|
level thread random_building_shake_loop( 0.1, 3.0, 7.0, 1.0 );
|
|
}
|
|
else
|
|
{
|
|
level.player_ref_ent rotateto( ( 0, 0, -8 ), 0.05 );
|
|
level.vista_pivot rotateto( ( 0, 0, -8 ), 0.05 );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
level.player_ref_ent rotateto( ( 0, 0, -18 ), 9, 1, 2 );
|
|
level.vista_pivot rotateto( ( 0, 0, -18 ), 9, 1, 2 );
|
|
wait 9.0;
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
level.player_ref_ent rotateto( ( 0, 0, -20 ), 4, 3 );
|
|
level.vista_pivot rotateto( ( 0, 0, -20 ), 4, 3 );
|
|
lerpsunangles( ( -12, -10, 0 ), ( -16, -3, 0 ), 4, 3 );
|
|
wait 4.0;
|
|
level.vista_tilt_animnode = common_scripts\utility::getstruct( "bldg_tilt_struct", "targetname" );
|
|
level.vista_tilt_model = maps\_utility::spawn_anim_model( "bldg_tilt_cam", level.vista_pivot.origin );
|
|
level.vista_tilt_model.angles = ( 0, 0, 0 );
|
|
level.vista_tilt_animnode maps\_anim::anim_first_frame_solo( level.vista_tilt_model, "cornered_building_fall_building" );
|
|
level.player_ref_ent linkto( level.vista_tilt_model, "J_prop_1" );
|
|
level.vista_pivot linkto( level.vista_tilt_model, "J_prop_1" );
|
|
common_scripts\utility::waitframe();
|
|
common_scripts\utility::flag_wait( "go_building_fall" );
|
|
level.vista_tilt_animnode thread maps\_anim::anim_single_solo( level.vista_tilt_model, "cornered_building_fall_building" );
|
|
lerpsunangles( ( -16, 3, 0 ), ( -25, 21.9, 0 ), 10, 0, 3 );
|
|
level.vista_tilt_model waittillmatch( "single anim", "rubble_start" );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
level.player playersetgroundreferenceent( undefined );
|
|
level.player.dof_ref_ent = undefined;
|
|
level.vista_pivot unlink();
|
|
level.vista_pivot rotateto( ( 0, 0, 0 ), 0.05 );
|
|
setphysicsgravitydir( ( 0, 0, -1 ) );
|
|
resetsundirection();
|
|
var_3 = getentarray( "end_broken_bldg", "targetname" );
|
|
common_scripts\utility::array_thread( var_3, maps\_utility::show_entity );
|
|
var_4 = getentarray( "vista_building_tiran_dmg", "targetname" );
|
|
common_scripts\utility::array_thread( var_4, maps\_utility::show_entity );
|
|
wait 0.1;
|
|
|
|
foreach ( var_6 in level.vista )
|
|
{
|
|
if ( isdefined( var_6 ) )
|
|
var_6 unlink();
|
|
}
|
|
}
|
|
|
|
hvt_office_handler()
|
|
{
|
|
maps\_utility::music_stop( 5 );
|
|
level.rescue_anim_struct = common_scripts\utility::getstruct( "rescue_animnode", "targetname" );
|
|
level.fall_anim_struct = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
level.hvt_office_anim_struct = common_scripts\utility::getstruct( "hvt_office_animnode", "targetname" );
|
|
|
|
if ( isdefined( level.rescue_checkpoint ) )
|
|
{
|
|
common_scripts\utility::flag_set( "garden_finished" );
|
|
thread maps\cornered_garden::close_hvt_office_doors( 0.05 );
|
|
}
|
|
|
|
maps\_utility::battlechatter_off( "axis" );
|
|
maps\_utility::battlechatter_off( "allies" );
|
|
wait 0.25;
|
|
level.allies[level.const_rorke] thread hvt_office_keegan();
|
|
level.allies[level.const_baker] thread hvt_pre_office_hesh();
|
|
common_scripts\utility::flag_wait( "baker_breach_ready" );
|
|
thread hvt_office_props();
|
|
thread hvt_office_briefcase();
|
|
thread hvt_office_doors();
|
|
common_scripts\utility::flag_wait( "hvt_office_breach" );
|
|
|
|
if ( isdefined( level.hvt_door_blocker ) && level.hvt_door_blocker == 1 )
|
|
thread hvt_office_door_block_down();
|
|
|
|
common_scripts\utility::flag_set( "obj_capture_complete" );
|
|
thread hvt_office_fail();
|
|
thread hvt_office_hvt();
|
|
thread hvt_office_hesh();
|
|
thread hvt_office_safe_block();
|
|
thread vista_tilt();
|
|
common_scripts\utility::flag_wait( "hvt_office_explosion" );
|
|
thread maps\cornered_audio::aud_collapse( "building" );
|
|
thread hvt_office_environment();
|
|
thread maps\cornered_lighting::hvt_office_light();
|
|
thread stairwell_pipes();
|
|
wait 2.25;
|
|
thread maps\cornered::obj_escape();
|
|
}
|
|
|
|
hvt_office_fail()
|
|
{
|
|
level endon( "close_hvt_door" );
|
|
var_0 = getent( "fail_hvt_volume", "targetname" );
|
|
var_1 = getent( "fail_hvt_volume2", "targetname" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
|
|
while ( !common_scripts\utility::flag( "hvt_office_explosion" ) )
|
|
{
|
|
if ( level.player istouching( var_0 ) )
|
|
{
|
|
setdvar( "ui_deadquote", &"CORNERED_FAIL_HVT_INTERROGATE" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
for (;;)
|
|
{
|
|
if ( level.player istouching( var_0 ) || level.player istouching( var_1 ) )
|
|
{
|
|
setdvar( "ui_deadquote", &"CORNERED_FAIL_EXPLOSION" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
hvt_office_player()
|
|
{
|
|
var_0 = maps\_utility::spawn_anim_model( "player_office" );
|
|
var_0 hide();
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_0, "cornered_office_player" );
|
|
common_scripts\utility::flag_wait( "player_used_briefcase" );
|
|
level.player allowprone( 0 );
|
|
level.player allowcrouch( 0 );
|
|
level.player disableweapons();
|
|
level.player playerlinktoblend( var_0, "tag_player", 0.6 );
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( var_0, "cornered_office_player" );
|
|
wait 0.55;
|
|
var_0 show();
|
|
level.player playerlinktodelta( var_0, "tag_player", 0, 10, 10, 10, 10 );
|
|
var_0 waittillmatch( "single anim", "end" );
|
|
level.player allowprone( 1 );
|
|
level.player allowcrouch( 1 );
|
|
level.player enableweapons();
|
|
level.player unlink();
|
|
common_scripts\utility::flag_set( "hvt_player_done" );
|
|
common_scripts\utility::waitframe();
|
|
var_0 delete();
|
|
}
|
|
|
|
hvt_pre_office_hesh()
|
|
{
|
|
if ( !isdefined( level.rescue_checkpoint ) )
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "rorke_pre_hvt", "targetname" );
|
|
thread hesh_pre_office_vo();
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
return;
|
|
|
|
wait 2;
|
|
var_0 maps\_anim::anim_reach_solo( self, "breach_stackL_approach" );
|
|
|
|
if ( common_scripts\utility::flag( "hvt_office_breach" ) )
|
|
return;
|
|
|
|
var_0 maps\_anim::anim_single_solo( self, "breach_stackL_approach" );
|
|
|
|
if ( !common_scripts\utility::flag( "hvt_office_breach" ) )
|
|
var_0 thread maps\_anim::anim_loop_solo( self, "explosivebreach_v1_stackL_idle", "stop_loop" );
|
|
|
|
common_scripts\utility::flag_wait( "hvt_office_breach" );
|
|
var_0 notify( "stop_loop" );
|
|
}
|
|
}
|
|
|
|
hesh_pre_office_vo()
|
|
{
|
|
self endon( "done_with_hvt_nag" );
|
|
level endon( "hvt_office_breach" );
|
|
var_0 = getent( "hvt_close_to_hesh", "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( level.player istouching( var_0 ) )
|
|
{
|
|
maps\_utility::smart_dialogue( "cornered_hsh_gotakepointwith" );
|
|
self notify( "done_with_hvt_nag" );
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
hvt_office_keegan()
|
|
{
|
|
maps\_utility::enable_cqbwalk();
|
|
self.grenadeammo = 0;
|
|
maps\_utility::disable_ai_color();
|
|
self.ignoresuppression = 1;
|
|
self.baseaccuracy = 1;
|
|
maps\_utility::disable_bulletwhizbyreaction();
|
|
|
|
if ( !isdefined( level.rescue_checkpoint ) )
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "baker_hvt_door", "targetname" );
|
|
var_0 maps\_anim::anim_reach_solo( self, "breach_stackL_approach" );
|
|
var_0 maps\_anim::anim_single_solo( self, "breach_stackL_approach" );
|
|
common_scripts\utility::flag_set( "baker_breach_ready" );
|
|
|
|
if ( !common_scripts\utility::flag( "hvt_office_breach" ) )
|
|
var_0 thread maps\_anim::anim_loop_solo( self, "explosivebreach_v1_stackL_idle", "stop_loop" );
|
|
|
|
common_scripts\utility::flag_wait( "hvt_office_breach" );
|
|
var_0 notify( "stop_loop" );
|
|
waittillframeend;
|
|
}
|
|
else
|
|
{
|
|
common_scripts\utility::flag_set( "baker_breach_ready" );
|
|
common_scripts\utility::flag_wait( "hvt_office_breach" );
|
|
}
|
|
|
|
thread maps\_utility::autosave_tactical();
|
|
thread hvt_office_keegan_talking();
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_office_baker_enter" );
|
|
thread maps\cornered_audio::aud_hvt( "door" );
|
|
self waittillmatch( "single anim", "start_rorke_ramos_anims" );
|
|
common_scripts\utility::flag_set( "hvt_office_rorke_entry" );
|
|
self waittillmatch( "single anim", "vargas_anim_start" );
|
|
thread hvt_office_vargas();
|
|
self waittillmatch( "single anim", "bink_start" );
|
|
|
|
if ( !level.console )
|
|
wait 0.225;
|
|
|
|
if ( isdefined( level.ps3 ) && level.ps3 )
|
|
wait 0.225;
|
|
|
|
if ( isdefined( level.ps4 ) && level.ps4 )
|
|
wait 0.225;
|
|
|
|
setsaveddvar( "cg_cinematicFullScreen", "0" );
|
|
cinematicingame( "cornered_rorke_tv" );
|
|
self waittillmatch( "single anim", "explosion" );
|
|
thread stairwell_cracks();
|
|
common_scripts\utility::flag_set( "hvt_office_explosion" );
|
|
self waittillmatch( "single anim", "end" );
|
|
}
|
|
|
|
hvt_office_hvt_setup()
|
|
{
|
|
self.ignoreme = 1;
|
|
self.ignoreall = 1;
|
|
self.diequietly = 1;
|
|
self.team = "neutral";
|
|
self.animname = "hvt";
|
|
thread hvt_office_hvt_death();
|
|
maps\_utility::gun_remove();
|
|
self.health = 1000000;
|
|
}
|
|
|
|
hvt_office_hvt_death()
|
|
{
|
|
self endon( "hvt_dead" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "damage", var_0, var_1, var_2, var_3, var_4 );
|
|
|
|
if ( isdefined( var_1 ) && isplayer( var_1 ) && var_4 != "MOD_IMPACT" )
|
|
{
|
|
self kill();
|
|
setdvar( "ui_deadquote", &"CORNERED_HVT_KILLED_FAIL" );
|
|
maps\_utility::missionfailedwrapper();
|
|
self notify( "hvt_dead" );
|
|
}
|
|
}
|
|
}
|
|
|
|
hvt_office_hvt()
|
|
{
|
|
var_0 = getent( "office_hvt", "targetname" );
|
|
var_0 maps\_utility::add_spawn_function( ::hvt_office_hvt_setup );
|
|
var_1 = maps\_utility::spawn_targetname( "office_hvt", 1 );
|
|
level.office_hvt = var_1;
|
|
var_1 endon( "death" );
|
|
common_scripts\utility::waitframe();
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_1, "cornered_office_enter" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
thread maps\cornered_audio::aud_hvt( "part1", var_1 );
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( var_1, "cornered_office_enter" );
|
|
var_1 thread maps\_utility::smart_dialogue( "cornered_rms_paindoorshove" );
|
|
var_1 thread hvt_office_hvt_talking();
|
|
var_2 = getent( "hvt_office_door_clip", "targetname" );
|
|
var_2 delete();
|
|
thread maps\cornered_audio::aud_hvt( "part2", var_1 );
|
|
var_1 waittillmatch( "single anim", "killable" );
|
|
self.team = "axis";
|
|
var_1 notify( "hvt_dead" );
|
|
var_1.health = 100;
|
|
var_1.allowdeath = 1;
|
|
var_1 waittillmatch( "single anim", "end" );
|
|
|
|
if ( isalive( var_1 ) )
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_loop_solo( var_1, "cornered_office_loop", "stop_loop_hvt" );
|
|
}
|
|
|
|
hvt_office_hvt_talking()
|
|
{
|
|
self endon( "death" );
|
|
self waittillmatch( "single anim", "vo_cornered_rms_heavenlyfatherplease" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 5.8;
|
|
self notify( "stop_lip_flap" );
|
|
}
|
|
|
|
hvt_office_vargas()
|
|
{
|
|
var_0 = getent( "office_vargas", "targetname" );
|
|
var_1 = maps\_utility::spawn_targetname( "office_vargas", 1 );
|
|
var_1.ignoreme = 1;
|
|
var_1.ignoreall = 1;
|
|
var_1 maps\_utility::gun_remove();
|
|
var_1.health = 1000000;
|
|
var_1.animname = "vargas";
|
|
var_1 maps\_utility::magic_bullet_shield();
|
|
var_1 thread maps\cornered_audio::aud_hvt_boomtimer01();
|
|
level.hvt_office_anim_struct maps\_anim::anim_single_solo( var_1, "cornered_office_vargas_enter" );
|
|
var_1 maps\_utility::stop_magic_bullet_shield();
|
|
var_1 delete();
|
|
}
|
|
|
|
hvt_office_hesh()
|
|
{
|
|
var_0 = level.allies[level.const_baker];
|
|
var_0 maps\_utility::enable_cqbwalk();
|
|
var_0.grenadeammo = 0;
|
|
var_0 maps\_utility::disable_ai_color();
|
|
var_0.ignoresuppression = 1;
|
|
var_0.baseaccuracy = 1;
|
|
var_0 maps\_utility::disable_bulletwhizbyreaction();
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_0, "cornered_office_enter" );
|
|
var_1 = var_0 gettagorigin( "tag_weapon_left" );
|
|
var_2 = var_0 gettagangles( "tag_weapon_left" );
|
|
var_3 = spawn( "script_model", var_1 );
|
|
var_3.angles = var_2;
|
|
var_3 setmodel( "weapon_p226" );
|
|
var_3 linkto( var_0, "tag_weapon_left" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
var_0 pushplayer( 0 );
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( var_0, "cornered_office_enter" );
|
|
var_0 waittillmatch( "single anim", "statue_anim_start" );
|
|
common_scripts\utility::flag_set( "hvt_office_statue" );
|
|
var_0 waittillmatch( "single anim", "end" );
|
|
var_3 delete();
|
|
var_0 pushplayer( 1 );
|
|
common_scripts\utility::flag_set( "rescue_finished" );
|
|
common_scripts\utility::flag_wait( "post_office_save" );
|
|
thread maps\_utility::autosave_by_name( "post_explosion_intel" );
|
|
}
|
|
|
|
hvt_office_keegan_talking()
|
|
{
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_inposition" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 0.8;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_alrightletsmove" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 1.3;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_dammithesnothere" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 1.35;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_hesh_2" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 0.4;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_wheresrorkewhereis" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 2.0;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_hesh" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 0.4;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_youhavefiveseconds" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 3.55;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_threetwo" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 2.0;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_rorke" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 0.7;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_walker" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 0.5;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_whereareyourorke" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 1.1;
|
|
self notify( "stop_lip_flap" );
|
|
self waittillmatch( "single anim", "vo_cornered_mrk_itwasasetup" );
|
|
thread maps\_anim::anim_facialfiller( "stop_lip_flap" );
|
|
wait 1.75;
|
|
self notify( "stop_lip_flap" );
|
|
}
|
|
|
|
hvt_office_safe_block()
|
|
{
|
|
common_scripts\utility::flag_wait( "close_hvt_door" );
|
|
thread maps\cornered_garden::close_hvt_office_doors( 0.75 );
|
|
maps\_utility::stop_exploder( 1200 );
|
|
maps\_utility::stop_exploder( 20 );
|
|
}
|
|
|
|
hvt_office_door_block_up()
|
|
{
|
|
var_0 = getent( "hvt_office_player_block", "targetname" );
|
|
var_0 movez( 128, 0.05 );
|
|
level.hvt_door_blocker = 1;
|
|
}
|
|
|
|
hvt_office_door_block_down()
|
|
{
|
|
var_0 = getent( "hvt_office_player_block", "targetname" );
|
|
var_0 movez( -128, 0.05 );
|
|
level.hvt_door_blocker = undefined;
|
|
}
|
|
|
|
hvt_office_props()
|
|
{
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_prop_monitors", "hvt_office_monitor1", "hvt_office_monitor2", 1, "hvt_office_rorke_entry" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_prop_mouse_keyboard", "hvt_office_keyboard", "hvt_office_mouse", 1, "hvt_office_rorke_entry" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_debris_chair", "hvt_office_debris_chair", "hvt_office_debris_chair2", 1, "hvt_office_explosion", undefined, 3.6 );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_debris_plant", "hvt_debris_plant1", "hvt_debris_plant2", 1, "hvt_office_explosion" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_debris_couch", "hvt_office_debris_couch1", "hvt_office_debris_couch2", 1, "hvt_office_explosion" );
|
|
var_0 = getent( "hvt_office_debris_chair", "targetname" );
|
|
var_1 = getent( "hvt_office_debris_chair_clip", "targetname" );
|
|
var_1 linkto( var_0 );
|
|
var_2 = getent( "hvt_office_debris_chair2", "targetname" );
|
|
var_3 = getent( "hvt_office_debris_chair_clip2", "targetname" );
|
|
var_3 linkto( var_2 );
|
|
var_4 = getent( "hvt_office_debris_couch1", "targetname" );
|
|
var_5 = getent( "hvt_office_debris_couch1_clip", "targetname" );
|
|
var_5 linkto( var_4 );
|
|
var_6 = getentarray( "hvt_office_debris_couch1_cushions", "targetname" );
|
|
|
|
foreach ( var_8 in var_6 )
|
|
var_8 linkto( var_4 );
|
|
|
|
var_10 = getent( "hvt_office_debris_couch2", "targetname" );
|
|
var_11 = getent( "hvt_office_debris_couch2_clip", "targetname" );
|
|
var_11 linkto( var_10 );
|
|
var_12 = getentarray( "hvt_office_debris_couch2_cushions", "targetname" );
|
|
|
|
foreach ( var_8 in var_12 )
|
|
var_8 linkto( var_10 );
|
|
|
|
var_15 = getent( "hvt_debris_plant1", "targetname" );
|
|
var_16 = getent( "hvt_debris_plant2", "targetname" );
|
|
thread hvt_office_chair();
|
|
var_17 = maps\_utility::spawn_anim_model( "rescue_lights", level.hvt_office_anim_struct.origin );
|
|
var_18 = maps\_utility::spawn_anim_model( "rescue_lights", level.hvt_office_anim_struct.origin );
|
|
var_19 = maps\_utility::spawn_anim_model( "rescue_lights", level.hvt_office_anim_struct.origin );
|
|
var_20 = maps\_utility::spawn_anim_model( "rescue_lights", level.hvt_office_anim_struct.origin );
|
|
var_21 = maps\_utility::spawn_anim_model( "rescue_lights", level.hvt_office_anim_struct.origin );
|
|
var_17 thread office_light( "light1", "office", level.hvt_office_anim_struct, "hvt_office_explosion" );
|
|
var_18 thread office_light( "light2", "office", level.hvt_office_anim_struct, "hvt_office_explosion" );
|
|
var_19 thread office_light( "light3", "office", level.hvt_office_anim_struct, "hvt_office_explosion" );
|
|
var_20 thread office_light( "light4", "office", level.hvt_office_anim_struct, "hvt_office_explosion" );
|
|
var_21 thread office_light( "light5", "office", level.hvt_office_anim_struct, "hvt_office_explosion" );
|
|
var_22 = maps\_utility::spawn_anim_model( "office_briefcase", level.hvt_office_anim_struct.origin );
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_22, "cornered_office_prop_briefcase_enter" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
level.hvt_office_anim_struct maps\_anim::anim_single_solo( var_22, "cornered_office_prop_briefcase_enter" );
|
|
var_22 delete();
|
|
common_scripts\utility::flag_wait( "hvt_office_explosion" );
|
|
var_23 = getent( "hvt_debris_plant1_clip", "targetname" );
|
|
var_23 delete();
|
|
var_24 = getent( "hvt_debris_plant2_clip", "targetname" );
|
|
var_24 delete();
|
|
}
|
|
|
|
hvt_office_chair()
|
|
{
|
|
var_0 = getent( "hvt_office_chair", "targetname" );
|
|
var_1 = getent( "hvt_chair_clip", "targetname" );
|
|
var_2 = maps\_utility::spawn_anim_model( "office_props" );
|
|
var_1 linkto( var_0 );
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_2, "cornered_office_prop_chair_enter" );
|
|
var_3 = var_2 gettagorigin( "J_prop_1" );
|
|
var_4 = var_2 gettagangles( "J_prop_1" );
|
|
common_scripts\utility::waitframe();
|
|
var_0.origin = var_3;
|
|
var_0.angles = var_4;
|
|
common_scripts\utility::waitframe();
|
|
var_0 linkto( var_2, "J_prop_1" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
level.hvt_office_anim_struct maps\_anim::anim_single_solo( var_2, "cornered_office_prop_chair_enter" );
|
|
var_0 unlink();
|
|
common_scripts\utility::waitframe();
|
|
var_2 delete();
|
|
}
|
|
|
|
hvt_office_doors()
|
|
{
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_prop_door_a", "hvt_office_entry_door_left", undefined, 1, "hvt_office_breach" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "office_props", "cornered_office_prop_door_b", "hvt_exit_door_lf", "hvt_exit_door_rt", 1, "hvt_office_rorke_entry" );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.hvt_office_anim_struct, "stairwell_door", "cnd_stair_escape_prop_doors", "stairwell_exit_door_left", "stairwell_exit_door_right", 1, "open_stairwell_doors" );
|
|
var_0 = getent( "hvt_exit_door_rt", "targetname" );
|
|
var_1 = getent( "hvt_exit_door_lf", "targetname" );
|
|
common_scripts\utility::flag_wait( "hvt_office_rorke_entry" );
|
|
wait 1;
|
|
var_0 connectpaths();
|
|
var_1 connectpaths();
|
|
common_scripts\utility::flag_wait( "open_stairwell_doors" );
|
|
var_2 = getent( "stairwell_exit_door_clip", "targetname" );
|
|
thread maps\cornered_audio::aud_hvt( "exit" );
|
|
wait 0.3;
|
|
var_2 notsolid();
|
|
var_2 connectpaths();
|
|
wait 0.3;
|
|
var_2 delete();
|
|
}
|
|
|
|
hvt_office_environment()
|
|
{
|
|
common_scripts\utility::exploder( 7751 );
|
|
setsaveddvar( "phys_gravityChangeWakeupRadius", 4000 );
|
|
level.player playrumbleonentity( "heavy_3s" );
|
|
earthquake( 0.5, 4, level.player.origin, 2500 );
|
|
level thread lobby_and_stair_fx();
|
|
var_0 = common_scripts\utility::getstructarray( "hvt_office_phys", "targetname" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
physicsjitter( var_2.origin, 300, 200, 1.0, 1.0 );
|
|
|
|
var_4 = getentarray( "hvt_office_junk", "targetname" );
|
|
|
|
foreach ( var_2 in var_4 )
|
|
var_2 physicslaunchclient( var_2.origin + ( 0, 0, -4 ), ( 0, -15, 60 ) );
|
|
|
|
wait 2.0;
|
|
earthquake( 0.14, 8, level.player.origin, 2500 );
|
|
wait 8.0;
|
|
level thread random_building_shake_loop( 0.1, 3.0, 7.0, 1.0 );
|
|
}
|
|
|
|
hvt_office_briefcase()
|
|
{
|
|
var_0 = getent( "briefcase_trigger", "targetname" );
|
|
var_0 sethintstring( &"CORNERED_PICK_UP_BRIEFCASE_HINT" );
|
|
var_1 = common_scripts\utility::getstruct( "briefcase_look", "targetname" );
|
|
var_0 common_scripts\utility::trigger_off();
|
|
common_scripts\utility::flag_wait( "player_can_use_briefcase" );
|
|
var_0 common_scripts\utility::trigger_on();
|
|
maps\player_scripted_anim_util::waittill_trigger_activate_looking_at( var_0, var_1, cos( 40 ), 0, 1 );
|
|
common_scripts\utility::flag_set( "player_used_briefcase" );
|
|
}
|
|
|
|
stairwell_handler()
|
|
{
|
|
level.allies[level.const_rorke] thread stairwell_rorke();
|
|
level.allies[level.const_baker] thread stairwell_baker();
|
|
thread stairwell_office_vo();
|
|
thread office_enemy_setup();
|
|
thread maps\cornered_fx::fx_screen_water_sheeting( "stairwell_water_sheet", "lobby_shake" );
|
|
level.default_sprint = getdvar( "player_sprintSpeedScale" );
|
|
setsaveddvar( "player_sprintSpeedScale", 1.2 );
|
|
common_scripts\utility::flag_wait( "stairwell_shake_1" );
|
|
level notify( "done_random_shaking" );
|
|
level.player shellshock( "cornered_stairwell", 1.5 );
|
|
level.player pushplayervector( ( 0, -25, 0 ) );
|
|
level.player setmovespeedscale( 0.4 );
|
|
level.player viewkick( 64, level.player.origin );
|
|
common_scripts\utility::exploder( 7651 );
|
|
maps\cornered_audio::aud_hvt_destruct01();
|
|
thread maps\cornered_lighting::stairwell_light( 16 );
|
|
level.player playrumbleonentity( "heavy_2s" );
|
|
earthquake( 0.25, 2, level.player.origin, 2500 );
|
|
level thread lobby_and_stair_fx();
|
|
wait 0.25;
|
|
level.player pushplayervector( ( 0, 0, 0 ) );
|
|
wait 1.75;
|
|
level.player maps\_utility::blend_movespeedscale( 1.0, 2.5 );
|
|
thread maps\cornered_lighting::stairwell_light( 2 );
|
|
common_scripts\utility::flag_wait( "stairwell_shake_2" );
|
|
level notify( "done_random_shaking" );
|
|
maps\cornered_audio::aud_hvt_destruct02();
|
|
maps\cornered_audio::aud_collapse( "lobby" );
|
|
level.player shellshock( "cornered_stairwell", 1.0 );
|
|
level.player pushplayervector( ( 0, -25, 0 ) );
|
|
thread maps\cornered_lighting::stairwell_light( 18 );
|
|
level.player playrumbleonentity( "light_3s" );
|
|
earthquake( 0.15, 2, level.player.origin, 2500 );
|
|
level thread lobby_and_stair_fx();
|
|
wait 0.25;
|
|
level.player pushplayervector( ( 0, 0, 0 ) );
|
|
wait 1.75;
|
|
level thread random_building_shake_loop( 0.1, 3.0, 7.0, 1.0 );
|
|
thread maps\cornered_lighting::stairwell_light( 2 );
|
|
common_scripts\utility::flag_wait( "stairwell_shake_3" );
|
|
level notify( "done_random_shaking" );
|
|
thread maps\cornered_lighting::stairwell_light( 12 );
|
|
level.player playrumbleonentity( "heavy_3s" );
|
|
earthquake( 0.25, 3, level.player.origin, 2500 );
|
|
level thread lobby_and_stair_fx();
|
|
wait 3.0;
|
|
level thread random_building_shake_loop( 0.1, 3.0, 7.0, 1.0 );
|
|
thread maps\cornered_lighting::stairwell_light( 2 );
|
|
}
|
|
|
|
stairwell_cracks()
|
|
{
|
|
thread stairwell_crack_flat( "a" );
|
|
thread stairwell_crack_flat( "c", 0.3 );
|
|
}
|
|
|
|
stairwell_crack_flat( var_0, var_1 )
|
|
{
|
|
var_2 = getent( "stairwell_crack_decal_1" + var_0, "targetname" );
|
|
var_3 = getent( "stairwell_crack_decal_2" + var_0, "targetname" );
|
|
var_4 = getent( "stairwell_crack_decal_3" + var_0, "targetname" );
|
|
var_5 = getent( "stairwell_crack_decal_4" + var_0, "targetname" );
|
|
var_2 hide();
|
|
var_3 hide();
|
|
var_4 hide();
|
|
var_5 hide();
|
|
common_scripts\utility::flag_wait( "stairwell_shake_1" );
|
|
|
|
if ( isdefined( var_1 ) )
|
|
wait( var_1 );
|
|
|
|
var_2 show();
|
|
wait 0.15;
|
|
var_3 show();
|
|
wait 0.15;
|
|
var_4 show();
|
|
wait 0.15;
|
|
var_5 show();
|
|
common_scripts\utility::flag_wait( "found_hvt" );
|
|
var_2 delete();
|
|
var_3 delete();
|
|
var_4 delete();
|
|
var_5 delete();
|
|
}
|
|
|
|
stairwell_pipes()
|
|
{
|
|
var_0 = getent( "stair_pipe_left", "targetname" );
|
|
var_1 = getent( "stair_pipe_right1", "targetname" );
|
|
var_2 = getent( "stair_pipe_right2", "targetname" );
|
|
var_3 = getent( "stair_pipe_right3", "targetname" );
|
|
var_2 linkto( var_1 );
|
|
var_3 linkto( var_1 );
|
|
common_scripts\utility::waitframe();
|
|
var_4 = maps\_utility::spawn_anim_model( "stairwell_pipe" );
|
|
level.hvt_office_anim_struct maps\_anim::anim_first_frame_solo( var_4, "cnd_stair_escape_prop_pipe" );
|
|
var_5 = var_4 gettagorigin( "J_prop_1" );
|
|
var_6 = var_4 gettagangles( "J_prop_1" );
|
|
var_7 = var_4 gettagorigin( "J_prop_2" );
|
|
var_8 = var_4 gettagangles( "J_prop_2" );
|
|
var_1.origin = var_5;
|
|
var_1.angles = var_6;
|
|
var_0.origin = var_7;
|
|
var_0.angles = var_8;
|
|
var_0 linkto( var_4, "J_prop_2" );
|
|
var_1 linkto( var_4, "J_prop_1" );
|
|
common_scripts\utility::flag_wait( "stairwell_shake_1" );
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( var_4, "cnd_stair_escape_prop_pipe" );
|
|
common_scripts\utility::exploder( 8471 );
|
|
common_scripts\utility::flag_wait( "stairwell_pipe_2" );
|
|
wait( randomfloatrange( 0.5, 1.6 ) );
|
|
common_scripts\utility::exploder( 8472 );
|
|
common_scripts\utility::flag_wait( "allies_move_to_rescue" );
|
|
var_9 = getscriptablearray( "scriptable_electric_a", "targetname" );
|
|
var_10 = getscriptablearray( "scriptable_electric_b", "targetname" );
|
|
|
|
foreach ( var_12 in var_9 )
|
|
{
|
|
magicbullet( "kriss", var_12.origin + ( 8, 0, 15 ), var_12.origin, level.player );
|
|
magicbullet( "kriss", var_12.origin + ( 8, 0, 15 ), var_12.origin, level.player );
|
|
common_scripts\utility::waitframe();
|
|
magicbullet( "kriss", var_12.origin + ( 8, 0, 15 ), var_12.origin, level.player );
|
|
magicbullet( "kriss", var_12.origin + ( 8, 0, 15 ), var_12.origin, level.player );
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "trigger_stair_hall_vol_2" );
|
|
|
|
foreach ( var_12 in var_10 )
|
|
{
|
|
magicbullet( "kriss", var_12.origin + ( -8, 0, 15 ), var_12.origin, level.player );
|
|
magicbullet( "kriss", var_12.origin + ( -8, 0, 15 ), var_12.origin, level.player );
|
|
common_scripts\utility::waitframe();
|
|
magicbullet( "kriss", var_12.origin + ( -8, 0, 15 ), var_12.origin, level.player );
|
|
magicbullet( "kriss", var_12.origin + ( -8, 0, 15 ), var_12.origin, level.player );
|
|
}
|
|
}
|
|
|
|
stairwell_rorke()
|
|
{
|
|
level endon( "stop_stairwell_rorke" );
|
|
maps\_utility::disable_cqbwalk();
|
|
maps\_utility::disable_surprise();
|
|
self.ignoreall = 1;
|
|
self.baseaccuracy = 500000;
|
|
self.goalradius = 16;
|
|
self.alertlevel = "alert";
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_stairs" );
|
|
self waittillmatch( "single anim", "doors" );
|
|
common_scripts\utility::flag_set( "open_stairwell_doors" );
|
|
self waittillmatch( "single anim", "explosion" );
|
|
common_scripts\utility::flag_set( "stairwell_shake_1" );
|
|
self waittillmatch( "single anim", "end" );
|
|
maps\_utility::set_moveplaybackrate( 1.15 );
|
|
var_0 = getnode( "stairwell_teleport_rorke", "targetname" );
|
|
level.allies[level.const_rorke] setgoalnode( var_0 );
|
|
common_scripts\utility::flag_wait( "allies_move_to_rescue" );
|
|
common_scripts\utility::flag_set( "stairwell_shake_3" );
|
|
var_1 = getnode( "hall_post_stumble_rorke", "targetname" );
|
|
level.allies[level.const_rorke] setgoalnode( var_1 );
|
|
level.allies[level.const_rorke] waittill( "goal" );
|
|
maps\_utility::set_moveplaybackrate( 1.0 );
|
|
common_scripts\utility::flag_set( "rorke_ready_for_office_shake" );
|
|
}
|
|
|
|
stairwell_baker()
|
|
{
|
|
level endon( "stop_stairwell_baker" );
|
|
maps\_utility::disable_cqbwalk();
|
|
maps\_utility::disable_surprise();
|
|
self.disablearrivals = 1;
|
|
self.baseaccuracy = 500000;
|
|
self.goalradius = 16;
|
|
self.ignoreall = 1;
|
|
self.alertlevel = "alert";
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_stairs" );
|
|
wait 9.7;
|
|
self waittillmatch( "single anim", "end" );
|
|
var_0 = getent( "stair_baker_dont_stop", "targetname" );
|
|
|
|
if ( level.player istouching( var_0 ) )
|
|
level.hvt_office_anim_struct maps\_anim::anim_single_solo( self, "cornered_stairs_run" );
|
|
else
|
|
{
|
|
level.hvt_office_anim_struct maps\_anim::anim_single_solo( self, "cornered_stairs_wait" );
|
|
|
|
if ( !common_scripts\utility::flag( "allies_move_to_rescue" ) )
|
|
level.hvt_office_anim_struct thread maps\_anim::anim_loop_solo( self, "cornered_stairs_wait_loop", "stop_loop" );
|
|
|
|
common_scripts\utility::flag_wait( "allies_move_to_rescue" );
|
|
level.hvt_office_anim_struct notify( "stop_loop" );
|
|
self stopanimscripted();
|
|
}
|
|
|
|
if ( !common_scripts\utility::flag( "allies_move_to_rescue" ) )
|
|
{
|
|
var_1 = getnode( "hall_post_stumble_baker", "targetname" );
|
|
level.allies[level.const_baker] setgoalnode( var_1 );
|
|
}
|
|
|
|
level.rescue_anim_struct maps\_anim::anim_reach_solo( level.allies[level.const_baker], "cornered_office_shift" );
|
|
common_scripts\utility::flag_set( "baker_ready_for_office_shake" );
|
|
}
|
|
|
|
stairwell_office_vo()
|
|
{
|
|
wait 0.75;
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_oraclemissionis" );
|
|
maps\_utility::smart_radio_dialogue( "cornered_orc_copyblackknightprepping" );
|
|
common_scripts\utility::flag_wait( "trigger_stair_hall_vol_2" );
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_weneedtofind" );
|
|
}
|
|
|
|
office_enemy_setup()
|
|
{
|
|
common_scripts\utility::flag_wait( "stairwell_shake_1" );
|
|
maps\_utility::array_spawn_function_targetname( "fall_office_runners", ::office_enemy );
|
|
level.office_enemies = maps\_utility::array_spawn_targetname( "fall_office_runners", 1 );
|
|
}
|
|
|
|
office_enemy()
|
|
{
|
|
self endon( "death" );
|
|
maps\_utility::disable_surprise();
|
|
self.ignoreall = 1;
|
|
self.grenadeammo = 0;
|
|
self.health = 10;
|
|
self.movespeedscale = 0.8;
|
|
self.ignoreme = 1;
|
|
var_0 = common_scripts\utility::getstruct( self.script_noteworthy, "targetname" );
|
|
thread office_enemy_die();
|
|
common_scripts\utility::flag_wait( "found_hvt" );
|
|
self.ignoreme = 0;
|
|
maps\_utility::follow_path( var_0 );
|
|
self.goalradius = 16;
|
|
self.ignoreall = 0;
|
|
self.movespeedscale = 1.0;
|
|
var_1 = [ level.allies[level.const_baker], level.allies[level.const_rorke], level.player ];
|
|
self.favoriteenemy = var_1[randomint( var_1.size )];
|
|
}
|
|
|
|
office_enemy_die()
|
|
{
|
|
self endon( "death" );
|
|
common_scripts\utility::flag_wait( "rorke_ready_for_office_shake" );
|
|
wait 0.5;
|
|
|
|
if ( isalive( self ) )
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "office_bullet_1", "targetname" );
|
|
var_1 = var_0 common_scripts\utility::spawn_tag_origin();
|
|
var_2 = common_scripts\utility::getstruct( "office_bullet_2", "targetname" );
|
|
var_3 = var_2 common_scripts\utility::spawn_tag_origin();
|
|
|
|
if ( !level.player islookingat( var_1 ) )
|
|
{
|
|
magicbullet( "kriss", var_1.origin, self gettagorigin( "tag_eye" ) );
|
|
self kill();
|
|
}
|
|
else
|
|
{
|
|
magicbullet( "kriss", var_3.origin, self gettagorigin( "tag_eye" ) );
|
|
self kill();
|
|
}
|
|
|
|
var_1 delete();
|
|
var_3 delete();
|
|
}
|
|
}
|
|
|
|
office_handler()
|
|
{
|
|
thread office_props();
|
|
thread fall_props();
|
|
thread fall_physics_debris_lobby();
|
|
common_scripts\utility::flag_wait( "found_hvt" );
|
|
level.allies[level.const_baker] thread office_teleport_allies();
|
|
level.allies[level.const_rorke] thread office_teleport_allies();
|
|
thread maps\_utility::autosave_by_name( "post_explosion_office" );
|
|
maps\_utility::battlechatter_off( "axis" );
|
|
maps\_utility::battlechatter_off( "allies" );
|
|
common_scripts\utility::flag_wait_all( "rorke_ready_for_office_shake", "baker_ready_for_office_shake" );
|
|
common_scripts\utility::array_thread( level.allies, maps\_utility::set_baseaccuracy, 1 );
|
|
thread office_ally_anims();
|
|
thread office_vo();
|
|
common_scripts\utility::flag_set( "office_ally_anims_starting" );
|
|
common_scripts\utility::flag_wait( "office_explosion" );
|
|
common_scripts\utility::exploder( 7651 );
|
|
thread maps\cornered_audio::aud_collapse( "building" );
|
|
common_scripts\utility::exploder( 88 );
|
|
}
|
|
|
|
office_teleport_allies()
|
|
{
|
|
var_0 = getent( "stairwell_teleport_check", "targetname" );
|
|
var_1 = getnode( "stairwell_teleport_" + self.animname, "targetname" );
|
|
var_2 = getent( "player_look_at_office", "targetname" );
|
|
var_3 = vectornormalize( level.player.origin - self.origin );
|
|
var_4 = anglestoforward( self.angles );
|
|
|
|
if ( self istouching( var_0 ) && vectordot( var_3, var_4 ) <= -0.25 )
|
|
{
|
|
if ( self == level.allies[level.const_baker] )
|
|
{
|
|
var_5 = getnode( "hall_post_stumble_baker", "targetname" );
|
|
level notify( "stop_stairwell_baker" );
|
|
self stopanimscripted();
|
|
self clearenemy();
|
|
maps\_utility::teleport_ai( var_1 );
|
|
self.goalradius = 16;
|
|
self setgoalnode( var_5 );
|
|
self waittill( "goal" );
|
|
common_scripts\utility::flag_set( "baker_ready_for_office_shake" );
|
|
}
|
|
|
|
if ( self == level.allies[level.const_rorke] )
|
|
{
|
|
var_5 = getnode( "hall_post_stumble_rorke", "targetname" );
|
|
level notify( "stop_stairwell_rorke" );
|
|
self stopanimscripted();
|
|
self clearenemy();
|
|
maps\_utility::teleport_ai( var_1 );
|
|
self.goalradius = 16;
|
|
self setgoalnode( var_5 );
|
|
self waittill( "goal" );
|
|
common_scripts\utility::flag_set( "rorke_ready_for_office_shake" );
|
|
}
|
|
}
|
|
}
|
|
|
|
office_ally_anims()
|
|
{
|
|
var_0 = [];
|
|
var_0[0] = level.allies[level.const_baker];
|
|
var_0[1] = level.allies[level.const_rorke];
|
|
level.rescue_anim_struct thread maps\_anim::anim_single( var_0, "cornered_office_shift" );
|
|
wait 2.7;
|
|
common_scripts\utility::flag_set( "office_explosion" );
|
|
var_0[1] waittillmatch( "single anim", "end" );
|
|
common_scripts\utility::flag_set( "stairwell_finished" );
|
|
}
|
|
|
|
office_vo()
|
|
{
|
|
wait 3.75;
|
|
level.allies[level.const_baker] maps\_utility::smart_dialogue( "cornered_hsh_windowsahead" );
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_copywecanjump" );
|
|
}
|
|
|
|
office_props()
|
|
{
|
|
var_0 = getent( "office_shift_chair_clip", "targetname" );
|
|
var_1 = getent( "office_shift_chair", "targetname" );
|
|
var_0.origin = var_1.origin;
|
|
var_0.angles = var_1.angles;
|
|
var_0 linkto( var_1 );
|
|
thread maps\cornered_code::generic_prop_raven_anim( level.rescue_anim_struct, "office_shift_chair", "cornered_office_shift_chair", "office_shift_chair", undefined, 1, "office_ally_anims_starting" );
|
|
var_2 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_3 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_4 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_5 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_6 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_7 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_8 = maps\_utility::spawn_anim_model( "rescue_lights", level.rescue_anim_struct.origin );
|
|
var_2 thread office_light( "light1", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_3 thread office_light( "light2", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_4 thread office_light( "light3", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_5 thread office_light( "light4", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_6 thread office_light( "light5", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_7 thread office_light( "light6", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
var_8 thread office_light( "light7", "rescue", level.rescue_anim_struct, "office_explosion" );
|
|
common_scripts\utility::waitframe();
|
|
common_scripts\utility::flag_wait( "office_explosion" );
|
|
setphysicsgravitydir( ( 0, -0.02, -0.03 ) );
|
|
var_9 = getentarray( "office_debris", "targetname" );
|
|
var_10 = common_scripts\utility::getstructarray( "office_phys", "targetname" );
|
|
|
|
foreach ( var_12 in var_9 )
|
|
{
|
|
var_12 physicslaunchclient( var_12.origin + ( 0, 0, -6 ), ( 0, -0.05, 0.02 ) );
|
|
var_12 thread maps\cornered_code::debris_remove_after_time( 25.0 );
|
|
}
|
|
|
|
foreach ( var_12 in var_10 )
|
|
var_12 thread office_jitter();
|
|
}
|
|
|
|
office_jitter()
|
|
{
|
|
for ( var_0 = 0; var_0 < 20; var_0++ )
|
|
{
|
|
physicsjitter( self.origin, 400, 300, 2.0, 3.0 );
|
|
wait 0.2;
|
|
}
|
|
}
|
|
|
|
office_light( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = getent( var_0 + "_bar_" + var_1, "targetname" );
|
|
var_5 = getent( var_0 + "_shade_" + var_1, "targetname" );
|
|
var_6 = getent( var_0 + "_bulb_" + var_1, "targetname" );
|
|
var_2 maps\_anim::anim_first_frame_solo( self, "cornered_rescue_" + var_0 );
|
|
var_4 linkto( self, "J_prop_1" );
|
|
var_5 linkto( self, "J_prop_2" );
|
|
var_6 linkto( var_5 );
|
|
common_scripts\utility::flag_wait( var_3 );
|
|
var_2 maps\_anim::anim_single_solo( self, "cornered_rescue_" + var_0 );
|
|
var_2 thread maps\_anim::anim_loop_solo( self, "cornered_rescue_" + var_0 + "_loop", "stop_light_loop" );
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
var_2 notify( "stop_light_loop" );
|
|
common_scripts\utility::waitframe();
|
|
self delete();
|
|
var_4 delete();
|
|
var_5 delete();
|
|
var_6 delete();
|
|
}
|
|
|
|
office_door_to_lobby()
|
|
{
|
|
var_0 = getent( "door_to_lobby", "targetname" );
|
|
var_1 = getent( "lobby_door_player_clip", "targetname" );
|
|
var_2 = getentarray( "door_to_lobby_handles", "targetname" );
|
|
|
|
foreach ( var_4 in var_2 )
|
|
var_4 linkto( var_0 );
|
|
|
|
var_6 = maps\_utility::spawn_anim_model( "exfil_bldg" );
|
|
level.fall_anim_struct maps\_anim::anim_first_frame_solo( var_6, "cornered_building_fall_lobby_door" );
|
|
var_0 linkto( var_6, "j_prop_1" );
|
|
common_scripts\utility::flag_wait( "open_lobby_door" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_6, "cornered_building_fall_lobby_door" );
|
|
wait 1;
|
|
var_1 delete();
|
|
var_0 connectpaths();
|
|
var_6 waittillmatch( "single anim", "end" );
|
|
var_0 unlink();
|
|
var_6 delete();
|
|
}
|
|
|
|
fall_handler()
|
|
{
|
|
level.fall_anim_struct = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
level.allies[level.const_rorke] thread fall_allies_rorke();
|
|
level.allies[level.const_baker] thread fall_allies_baker();
|
|
thread fall_physics_debris_entry_stairs();
|
|
thread fall_prop_picture();
|
|
thread fall_prop_merrick_window();
|
|
thread office_door_to_lobby();
|
|
thread fall_environment();
|
|
thread fall_vo();
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
thread fall_player();
|
|
thread fall_enemies_start();
|
|
}
|
|
|
|
fall_environment()
|
|
{
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
level notify( "done_random_shaking" );
|
|
thread maps\cornered_audio::aud_collapse( "stumble" );
|
|
common_scripts\utility::exploder( 3023 );
|
|
maps\_utility::stop_exploder( 22 );
|
|
maps\_utility::stop_exploder( 8471 );
|
|
screenshake( level.player.origin, 0.5, 0.5, 0.25, 2.0, 0, 0.5, 500, 8, 8, 2 );
|
|
level.player playrumbleonentity( "light_2s" );
|
|
level.player maps\_utility::blend_movespeedscale( 0.5, 0.5 );
|
|
level.player shellshock( "cornered_horizontal_start", 2 );
|
|
level thread lobby_and_stair_fx();
|
|
wait 2.0;
|
|
level thread random_building_shake_loop( 0.1, 2.0, 7.0, 1.0 );
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
common_scripts\utility::exploder( 3122 );
|
|
common_scripts\utility::exploder( 3004 );
|
|
thread maps\cornered_audio::aud_collapse( "crack" );
|
|
maps\_utility::music_stop( 2 );
|
|
level notify( "done_random_shaking" );
|
|
common_scripts\utility::waitframe();
|
|
level.player shellshock( "cornered_horizontal_start", 1.5 );
|
|
level thread lobby_and_stair_fx();
|
|
common_scripts\utility::flag_wait( "fall_stagger_anim_done" );
|
|
screenshake( level.player.origin, 0.75, 0.5, 0.25, 3.0, 0, 0.5, 500, 8, 5, 2 );
|
|
wait 3.5;
|
|
common_scripts\utility::exploder( 8799 );
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
screenshake( level.player.origin, 0.5, 0.5, 0.25, 4.75, 0, 1.5, 500, 8, 8, 2 );
|
|
level thread lobby_and_stair_fx();
|
|
wait 5.75;
|
|
level thread random_building_shake_loop( 0.2, 0.5, 1.5, 0.0 );
|
|
common_scripts\utility::flag_wait( "fall_rubble_shift" );
|
|
level notify( "done_random_shaking" );
|
|
common_scripts\utility::waitframe();
|
|
screenshake( level.player.origin, 0.5, 0.5, 0.25, 1.0, 0, 0.25, 500, 8, 8, 2 );
|
|
common_scripts\utility::flag_wait( "go_building_fall" );
|
|
thread fall_fx_tile();
|
|
common_scripts\utility::exploder( 3001 );
|
|
common_scripts\utility::exploder( 3747 );
|
|
wait 0.2;
|
|
screenshake( level.player.origin, 0.35, 0.35, 0.15, 15.0, 0, 5.0, 500, 10, 10, 4 );
|
|
setphysicsgravitydir( ( 0, -0.075, -0.04 ) );
|
|
common_scripts\utility::flag_wait( "atrium_pillar_break" );
|
|
common_scripts\utility::exploder( 3005 );
|
|
thread maps\cornered_audio::aud_collapse( "pillar" );
|
|
wait 2.65;
|
|
screenshake( level.player.origin, 0.75, 0.75, 0.25, 1.0, 0, 0.25, 500, 12, 12, 6 );
|
|
wait 1.65;
|
|
screenshake( level.player.origin, 0.75, 0.75, 0.25, 1.0, 0, 0.25, 500, 12, 12, 6 );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
screenshake( level.player.origin, 1.5, 1.5, 0.25, 3.0, 0, 2.0, 500, 12, 12, 6 );
|
|
}
|
|
|
|
fall_fx_crowd_setup()
|
|
{
|
|
var_0 = maps\_utility::get_exploder_array( 3456 );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_3 = common_scripts\utility::spawn_tag_origin();
|
|
var_3.fxid = var_2.v["fxid"];
|
|
var_3.origin = var_2.v["origin"];
|
|
var_3.angles = var_2.v["angles"];
|
|
var_3 linkto( level.vista_pivot );
|
|
thread fall_fx_crowd_fx( var_3 );
|
|
}
|
|
}
|
|
|
|
fall_fx_crowd_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
playfxontag( level._effect[var_0.fxid], var_0, "tag_origin" );
|
|
}
|
|
|
|
fall_fx_billboard_setup()
|
|
{
|
|
var_0 = maps\_utility::get_exploder_array( 2727 );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_3 = common_scripts\utility::spawn_tag_origin();
|
|
var_3.fxid = var_2.v["fxid"];
|
|
var_3.origin = var_2.v["origin"];
|
|
var_3.angles = var_2.v["angles"];
|
|
var_3 linkto( level.vista_pivot );
|
|
thread fall_fx_billboard_fx( var_3 );
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
common_scripts\utility::exploder( 2727 );
|
|
}
|
|
|
|
fall_fx_billboard_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
playfxontag( level._effect[var_0.fxid], var_0, "tag_origin" );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
var_0 unlink();
|
|
var_0 movez( -1000000, 0.05 );
|
|
killfxontag( level._effect[var_0.fxid], var_0, "tag_origin" );
|
|
}
|
|
|
|
fall_fx_tile()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "test_tile1", "targetname" );
|
|
var_1 = common_scripts\utility::getstruct( "test_tile2", "targetname" );
|
|
var_2 = common_scripts\utility::getstruct( "test_tile3", "targetname" );
|
|
var_3 = common_scripts\utility::getstruct( "test_tile4", "targetname" );
|
|
wait 6.85;
|
|
playfx( level._effect["vfx_atrium_tile"], var_0.origin + ( 0, 0, 2 ), ( 0, 1, 0 ) );
|
|
wait 0.55;
|
|
playfx( level._effect["vfx_atrium_tile"], var_1.origin + ( 0, 0, 2 ), ( 0, 1, 0 ) );
|
|
wait 0.55;
|
|
playfx( level._effect["vfx_atrium_tile"], var_2.origin + ( 0, 0, 2 ), ( 0, 1, 0 ) );
|
|
wait 0.55;
|
|
playfx( level._effect["vfx_atrium_tile"], var_3.origin + ( 0, 0, 2 ), ( 0, 1, 0 ) );
|
|
}
|
|
|
|
fall_player()
|
|
{
|
|
level.player endon( "death" );
|
|
level.fall_arms_and_legs = [];
|
|
var_0 = maps\_utility::spawn_anim_model( "player_bldg_fall" );
|
|
var_1 = maps\_utility::spawn_anim_model( "player_bldg_fall_legs" );
|
|
var_0 hide();
|
|
var_1 hide();
|
|
level.fall_arms_and_legs[0] = var_0;
|
|
level.fall_arms_and_legs[1] = var_1;
|
|
level.player enableinvulnerability();
|
|
level.player playerlinktoblend( var_0, "tag_player", 0.6 );
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
clearallcorpses();
|
|
level.fall_anim_struct maps\_anim::anim_single_solo( level.fall_arms_and_legs[0], "lobby_tumble_player" );
|
|
common_scripts\utility::flag_set( "fall_stagger_anim_done" );
|
|
level.player unlink();
|
|
level.player setmovespeedscale( 0.4 );
|
|
level.player playrumbleonentity( "light_3s" );
|
|
wait 3.0;
|
|
common_scripts\utility::flag_set( "fall_down_shake" );
|
|
thread watch_for_player_death();
|
|
level.player playerlinktoblend( var_0, "tag_player", 0.5, 0.25 );
|
|
level.fall_anim_struct thread maps\_anim::anim_single( level.fall_arms_and_legs, "lobby_react_player" );
|
|
level.player playrumbleonentity( "heavy_2s" );
|
|
var_0 show();
|
|
var_1 show();
|
|
level.player setviewkickscale( 2.0 );
|
|
level.player allowcrouch( 0 );
|
|
level.player allowprone( 0 );
|
|
level.player allowjump( 0 );
|
|
level.player setmovespeedscale( 1 );
|
|
level.fall_arms_and_legs[0] waittillmatch( "single anim", "sm_debris_a" );
|
|
common_scripts\utility::flag_set( "go_sm_debris_a" );
|
|
wait 0.65;
|
|
level.player viewkick( 127, level.player.origin );
|
|
setsaveddvar( "hud_showStance", 0 );
|
|
common_scripts\utility::waitframe();
|
|
level.player setviewkickscale( 1 );
|
|
wait 0.85;
|
|
wait 0.95;
|
|
level.player playerlinktodelta( var_0, "tag_player", 0.5, 70, 70, 65, 40 );
|
|
level.fall_arms_and_legs[0] waittillmatch( "single anim", "kick_view" );
|
|
level.player setviewkickscale( 2.5 );
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
common_scripts\utility::waitframe();
|
|
var_2 = level.player getgunangles();
|
|
|
|
if ( var_2[0] < 10 )
|
|
level.player viewkick( 127, level.player.origin );
|
|
|
|
common_scripts\utility::waitframe();
|
|
level.player setviewkickscale( 1 );
|
|
var_0 waittillmatch( "single anim", "end" );
|
|
common_scripts\utility::flag_set( "player_is_slipping" );
|
|
level thread maps\cornered_code_slide::building_fall_anim_rig();
|
|
common_scripts\utility::flag_set( "fall_rubble_shift" );
|
|
level.player playrumbleonentity( "heavy_2s" );
|
|
level.fall_path_rig waittillmatch( "single anim", "original_start" );
|
|
common_scripts\utility::flag_set( "go_building_fall" );
|
|
level notify( "begin_atrium_fall" );
|
|
thread fall_enemies_slide();
|
|
level.player playrumbleonentity( "collapsing_building" );
|
|
level.player lerpviewangleclamp( 0.75, 0.5, 0, 55, 70, 50, 50 );
|
|
level.player disableinvulnerability();
|
|
level.fall_path_rig waittillmatch( "single anim", "sm_debris_b" );
|
|
thread corpse_clear();
|
|
thread maps\_utility::autosave_now_silent();
|
|
common_scripts\utility::flag_set( "go_sm_debris_b" );
|
|
level.fall_path_rig waittillmatch( "single anim", "pillar_break" );
|
|
common_scripts\utility::flag_set( "atrium_pillar_break" );
|
|
level.fall_path_rig waittillmatch( "single anim", "start_floor" );
|
|
common_scripts\utility::flag_set( "atrium_floor_break" );
|
|
level.fall_path_rig waittillmatch( "single anim", "camera_to_front" );
|
|
level notify( "fall_slide_ending" );
|
|
common_scripts\utility::flag_set( "atrium_pre_rail_hit" );
|
|
level.player lerpviewangleclamp( 1.8, 0, 0.5, 10, 10, 10, 10 );
|
|
thread fall_enemies_rail_hit();
|
|
level.player disableoffhandweapons();
|
|
wait 1.0;
|
|
level.player disableweapons();
|
|
setsaveddvar( "ammoCounterHide", "1" );
|
|
thread maps\cornered_audio::aud_collapse( "slow" );
|
|
level.fall_path_rig waittillmatch( "single anim", "slomo_on" );
|
|
common_scripts\utility::flag_set( "fall_rail_hit" );
|
|
thread fall_player_dof();
|
|
level.player lerpfov( 82, 1.5 );
|
|
thread fall_props_parachute();
|
|
thread fall_props_player_parachute();
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
level thread lobby_and_stair_fx();
|
|
level.player lerpviewangleclamp( 0.5, 0, 0, 80, 80, 120, 120 );
|
|
setphysicsgravitydir( ( 0, -0.7, -0.1 ) );
|
|
level.fall_path_rig waittillmatch( "single anim", "slomo_on" );
|
|
|
|
if ( maps\cornered_code::is_e3() )
|
|
thread maps\cornered_code::end_level();
|
|
|
|
level.fall_path_rig waittillmatch( "single anim", "slomo_off" );
|
|
common_scripts\utility::flag_set( "pre_glass_impact" );
|
|
level.player lerpviewangleclamp( 0.5, 0, 0, 0, 0, 0, 0 );
|
|
physicsexplosionsphere( level.player.origin, 100, 64, 1 );
|
|
level.fall_path_rig waittillmatch( "single anim", "spiderweb_glass" );
|
|
thread fall_glass_final_impact();
|
|
physicsexplosionsphere( level.player.origin, 100, 64, 1 );
|
|
level.player playrumbleonentity( "light_1s" );
|
|
level.fall_path_rig waittillmatch( "single anim", "teleport_player" );
|
|
|
|
if ( maps\cornered_code::is_e3() )
|
|
return;
|
|
|
|
maps\_hud_util::fade_out( 0.05, "white" );
|
|
common_scripts\utility::flag_set( "parachute_exfil" );
|
|
level.player lerpfov( 65, 0.05 );
|
|
level.player setblurforplayer( 5.0, 0.0 );
|
|
level.player playerlinktodelta( level.fall_arms_and_legs[0], "tag_player", 0.5, 0, 0, 0, 0 );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( level.fall_arms_and_legs[0], "cornered_exfil_player" );
|
|
|
|
if ( maps\cornered_code::is_e3() )
|
|
return;
|
|
|
|
common_scripts\utility::flag_set( "obj_escape_complete" );
|
|
wait 0.1;
|
|
level.player thread parachute_hint();
|
|
level.player thread parachute_input();
|
|
maps\_hud_util::fade_in( 0.25, "white" );
|
|
wait 0.4;
|
|
level.player setblurforplayer( 0.0, 0.5 );
|
|
level.fall_arms_and_legs[0] waittillmatch( "single anim", "slow_on" );
|
|
common_scripts\utility::flag_set( "exfil_slow_down" );
|
|
maps\_anim::anim_set_rate_single( level.fall_arms_and_legs[0], "cornered_exfil_player", 0.75 );
|
|
level.fall_arms_and_legs[0] waittillmatch( "single anim", "fail" );
|
|
|
|
if ( common_scripts\utility::flag( "parachute_deployed" ) )
|
|
{
|
|
level.fall_arms_and_legs[0] waittillmatch( "single anim", "slow_off" );
|
|
common_scripts\utility::flag_set( "exfil_speed_up" );
|
|
maps\_anim::anim_set_rate_single( level.fall_arms_and_legs[0], "cornered_exfil_player", 1.0 );
|
|
thread common_scripts\utility::play_sound_in_space( "crnd_parachute", level.player.origin );
|
|
wait 3.35;
|
|
level.player lerpviewangleclamp( 0.5, 0, 0, 25, 25, 40, 40 );
|
|
var_3 = getanimlength( level.fall_arms_and_legs[0] maps\_utility::getanim( "cornered_exfil_player" ) );
|
|
wait( var_3 - 8.5 );
|
|
maps\_hud_util::fade_out( 3.0 );
|
|
wait 4.0;
|
|
maps\_utility::nextmission();
|
|
}
|
|
else
|
|
{
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( level.fall_arms_and_legs[0], "cornered_exfil_fail_player" );
|
|
level.player lerpviewangleclamp( 0.5, 0, 0, 0, 0, 0, 0 );
|
|
var_3 = getanimlength( level.fall_arms_and_legs[0] maps\_utility::getanim( "cornered_exfil_fail_player" ) );
|
|
wait( var_3 - 2.0 );
|
|
setdvar( "ui_deadquote", &"CORNERED_PARACHUTE_FAIL" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
|
|
watch_for_player_death()
|
|
{
|
|
level endon( "atrium_pre_rail_hit" );
|
|
level.player waittill( "death" );
|
|
|
|
foreach ( var_1 in level.fall_arms_and_legs )
|
|
var_1 hide();
|
|
}
|
|
|
|
parachute_hint()
|
|
{
|
|
self endon( "parachute_deployed" );
|
|
maps\_utility::display_hint_timeout( "chute_deploy", 0.75 );
|
|
}
|
|
|
|
parachute_input()
|
|
{
|
|
self notifyonplayercommand( "deployed_chute", "+activate" );
|
|
self notifyonplayercommand( "deployed_chute", "+usereload" );
|
|
self waittill( "deployed_chute" );
|
|
common_scripts\utility::flag_set( "parachute_deployed" );
|
|
}
|
|
|
|
parachute_break()
|
|
{
|
|
return common_scripts\utility::flag( "parachute_deployed" );
|
|
}
|
|
|
|
fall_player_dof()
|
|
{
|
|
maps\_art::dof_enable_script( 1, 75, 4, 1000, 7000, 1.75, 0.1 );
|
|
common_scripts\utility::flag_wait( "pre_glass_impact" );
|
|
maps\_art::dof_enable_script( 1, 200, 5.5, 750, 7000, 0.06, 1 );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
maps\_art::dof_disable_script( 0.75 );
|
|
}
|
|
|
|
fall_allies_rorke()
|
|
{
|
|
maps\_utility::set_ignoreall( 1 );
|
|
maps\_utility::set_ignoreme( 1 );
|
|
maps\_utility::disable_arrivals();
|
|
maps\_utility::pathrandompercent_zero();
|
|
self pushplayer( 1 );
|
|
maps\_utility::disable_pain();
|
|
maps\_utility::disable_surprise();
|
|
self.grenadeawareness = 0;
|
|
self.ignoreexplosionevents = 1;
|
|
self.ignorerandombulletdamage = 1;
|
|
self.ignoresuppression = 1;
|
|
self.disablebulletwhizbyreaction = 1;
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "enter_lobby" );
|
|
wait 0.5;
|
|
maps\_anim::anim_set_rate_single( self, "enter_lobby", 1.2 );
|
|
self waittillmatch( "single anim", "end" );
|
|
common_scripts\utility::flag_set( "lobby_rorke_ready" );
|
|
|
|
if ( !common_scripts\utility::flag( "lobby_shake" ) )
|
|
level.fall_anim_struct thread maps\_anim::anim_loop_solo( self, "idle_lobby", "stop_lobby_idle" );
|
|
|
|
common_scripts\utility::flag_wait( "lobby_shake" );
|
|
level.fall_anim_struct notify( "stop_lobby_idle" );
|
|
waittillframeend;
|
|
level.fall_anim_struct maps\_anim::anim_single_solo( self, "cornered_building_fall_lobby_tumble_enter" );
|
|
level.fall_anim_struct thread maps\_anim::anim_loop_solo( self, "cornered_building_fall_lobby_tumble_idle", "stop_lobby_idle" );
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
level.fall_anim_struct notify( "stop_lobby_idle" );
|
|
waittillframeend;
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_building_fall_lobby_tumble_exit" );
|
|
common_scripts\utility::flag_wait( "player_is_slipping" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "allies_building_fall_slide" );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
maps\_utility::gun_remove();
|
|
common_scripts\utility::exploder( 4999 );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_exfil_ally1" );
|
|
common_scripts\utility::flag_wait( "exfil_slow_down" );
|
|
maps\_anim::anim_set_rate_single( self, "cornered_exfil_ally1", 0.75 );
|
|
common_scripts\utility::flag_wait( "exfil_speed_up" );
|
|
maps\_anim::anim_set_rate_single( self, "cornered_exfil_ally1", 1.0 );
|
|
self waittillmatch( "single anim", "end" );
|
|
maps\_utility::gun_recall();
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
}
|
|
|
|
fall_allies_baker()
|
|
{
|
|
maps\_utility::set_ignoreall( 1 );
|
|
maps\_utility::set_ignoreme( 1 );
|
|
maps\_utility::disable_arrivals();
|
|
maps\_utility::pathrandompercent_zero();
|
|
self pushplayer( 1 );
|
|
maps\_utility::disable_pain();
|
|
maps\_utility::disable_surprise();
|
|
self.grenadeawareness = 0;
|
|
self.ignoreexplosionevents = 1;
|
|
self.ignorerandombulletdamage = 1;
|
|
self.ignoresuppression = 1;
|
|
self.disablebulletwhizbyreaction = 1;
|
|
thread fall_allies_baker_fall_down();
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "enter_lobby" );
|
|
level endon( "lobby_shake" );
|
|
wait 0.5;
|
|
maps\_anim::anim_set_rate_single( self, "enter_lobby", 1.2 );
|
|
self waittillmatch( "single anim", "end" );
|
|
level.fall_anim_struct maps\_anim::anim_reach_solo( self, "lobby_window_enter" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "lobby_window_enter" );
|
|
self waittillmatch( "single anim", "end" );
|
|
level.fall_anim_struct thread maps\_anim::anim_loop_solo( self, "lobby_window_idle", "stop_lobby_idle" );
|
|
}
|
|
|
|
fall_allies_baker_fall_down()
|
|
{
|
|
common_scripts\utility::flag_wait( "lobby_shake" );
|
|
level.fall_anim_struct notify( "stop_lobby_idle" );
|
|
waittillframeend;
|
|
var_0 = common_scripts\utility::spawn_tag_origin();
|
|
var_0 maps\_anim::anim_single_solo( self, "cornered_building_fall_lobby_tumble_enter" );
|
|
var_0 thread maps\_anim::anim_loop_solo( self, "cornered_building_fall_lobby_tumble_idle", "stop_lobby_idle" );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
maps\_utility::gun_remove();
|
|
var_0 notify( "stop_lobby_idle" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( self, "cornered_exfil_ally2" );
|
|
common_scripts\utility::flag_wait( "exfil_slow_down" );
|
|
maps\_anim::anim_set_rate_single( self, "cornered_exfil_ally2", 0.75 );
|
|
common_scripts\utility::flag_wait( "exfil_speed_up" );
|
|
maps\_anim::anim_set_rate_single( self, "cornered_exfil_ally2", 1.0 );
|
|
self waittillmatch( "single anim", "end" );
|
|
maps\_utility::gun_recall();
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
}
|
|
|
|
fall_vo()
|
|
{
|
|
wait 0.5;
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_gettothewindow" );
|
|
wait 2.5;
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_prepyourchutes" );
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
wait 1.5;
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_itsgoingdown" );
|
|
wait 0.75;
|
|
level.allies[level.const_baker] maps\_utility::smart_dialogue( "cornered_hsh_grabontosomething" );
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
level.allies[level.const_baker] maps\_utility::smart_dialogue( "cornered_hsh_watchout" );
|
|
common_scripts\utility::flag_wait( "atrium_pre_rail_hit" );
|
|
level.allies[level.const_rorke] maps\_utility::smart_dialogue( "cornered_mrk_readyyourchutes" );
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
wait 7;
|
|
level.allies[level.const_rorke] maps\_utility::smart_radio_dialogue( "cornered_mrk_oracleblackknightis" );
|
|
wait 1.5;
|
|
level.allies[level.const_rorke] maps\_utility::smart_radio_dialogue( "cornered_kgn_goodworkyoutwo" );
|
|
}
|
|
|
|
fall_enemies_start()
|
|
{
|
|
var_0 = maps\_utility::array_spawn_function_targetname( "lobby_enemies_stumbler_start", ::fall_enemy_self_anim );
|
|
var_0 = maps\_utility::array_spawn_targetname( "lobby_enemies_stumbler_start", 1 );
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
thread fall_enemy_anim( "lobby_enemy_a", "fall_enemy_a" );
|
|
thread fall_enemy_anim( "lobby_enemy_b", "fall_enemy_b" );
|
|
thread fall_enemy_anim( "lobby_enemy_c", "fall_enemy_c" );
|
|
thread fall_enemy_anim( "lobby_enemy_d", "fall_enemy_d" );
|
|
thread fall_enemy_anim( "lobby_enemy_e", "fall_enemy_e" );
|
|
thread fall_enemy_anim( "lobby_enemy_f", "fall_enemy_f" );
|
|
var_1 = maps\_utility::array_spawn_function_targetname( "lobby_railing_enemy", ::fall_enemy_self_anim );
|
|
var_1 = maps\_utility::array_spawn_targetname( "lobby_railing_enemy", 1 );
|
|
}
|
|
|
|
fall_enemy_anim( var_0, var_1 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_1 );
|
|
maps\_utility::array_spawn_function_targetname( var_0, ::fall_enemy_node_anim, "fall_animnode" );
|
|
maps\_utility::array_spawn_targetname( var_0, 1 );
|
|
}
|
|
|
|
fall_enemies_slide()
|
|
{
|
|
var_0 = maps\_utility::array_spawn_function_targetname( "atrium_enemies_sliding_group", ::fall_enemy_node_anim, "fall_animnode" );
|
|
wait 1.25;
|
|
wait 2.55;
|
|
var_1 = maps\_utility::spawn_script_noteworthy( "slide_enemy_h", 1 );
|
|
wait 0.25;
|
|
var_2 = maps\_utility::spawn_script_noteworthy( "slide_enemy_g", 1 );
|
|
}
|
|
|
|
fall_enemies_rail_hit()
|
|
{
|
|
wait 2;
|
|
var_0 = maps\_utility::array_spawn_function_noteworthy( "atrium_enemies_slomo", ::fall_enemy_self_anim );
|
|
var_1 = maps\_utility::spawn_targetname( "atrium_enemies_slomo_1", 1 );
|
|
wait 0.2;
|
|
var_2 = maps\_utility::spawn_targetname( "atrium_enemies_slomo_2", 1 );
|
|
wait 0.1;
|
|
var_3 = maps\_utility::spawn_targetname( "atrium_enemies_slomo_3", 1 );
|
|
wait 0.1;
|
|
var_4 = maps\_utility::spawn_targetname( "atrium_enemies_slomo_4", 1 );
|
|
}
|
|
|
|
fall_props()
|
|
{
|
|
var_0 = getentarray( "fallbeams", "targetname" );
|
|
maps\_utility::array_delete( var_0 );
|
|
thread fall_props_lobby_furniture();
|
|
thread fall_props_debris_a();
|
|
thread fall_props_debris_b();
|
|
var_1 = getent( "bldg_tilt_tables", "targetname" );
|
|
var_1.animname = "bldg_tilt_tables";
|
|
var_1 maps\_anim::setanimtree();
|
|
var_2 = getent( "lobby_rubble", "targetname" );
|
|
var_2.animname = "bldg_shake_rubble";
|
|
var_2 maps\_anim::setanimtree();
|
|
var_3 = getent( "lobby_hanging_light_1", "targetname" );
|
|
var_3.animname = "lobby_lights";
|
|
var_3 maps\_anim::setanimtree();
|
|
var_4 = getent( "lobby_hanging_light_2", "targetname" );
|
|
var_4.animname = "lobby_lights";
|
|
var_4 maps\_anim::setanimtree();
|
|
var_5 = getent( "falling_pillar_1", "targetname" );
|
|
var_5.animname = "bldg_tilt_pillar";
|
|
var_5 maps\_anim::setanimtree();
|
|
var_6 = getent( "fall_floor_collapse", "targetname" );
|
|
var_6.animname = "bldg_tilt_floor";
|
|
var_6 maps\_anim::setanimtree();
|
|
var_7 = getentarray( "falling_lights", "targetname" );
|
|
common_scripts\utility::array_thread( var_7, ::fall_props_atrium_lights );
|
|
thread fall_prop_corner_collapse();
|
|
thread fall_props_ext_bldg();
|
|
thread fall_props_ext_sign();
|
|
wait 0.2;
|
|
level.fall_anim_struct thread maps\_anim::anim_first_frame_solo( var_2, "cornered_building_fall_lobby_celling_debris" );
|
|
level.fall_anim_struct thread maps\_anim::anim_first_frame_solo( var_5, "cornered_building_fall_pillar_break" );
|
|
level.fall_anim_struct thread maps\_anim::anim_first_frame_solo( var_6, "cornered_building_fall_floor_collapse" );
|
|
level.fall_anim_struct thread maps\_anim::anim_first_frame_solo( var_1, "cornered_building_fall_debris" );
|
|
level.fall_anim_struct thread maps\_anim::anim_loop_solo( var_3, "cornered_building_fall_lobby_hanging_light_a", "stop_light_loop" );
|
|
level.fall_anim_struct thread maps\_anim::anim_loop_solo( var_4, "cornered_building_fall_lobby_hanging_light_b", "stop_light_loop" );
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
level.fall_anim_struct notify( "stop_light_loop" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_3, "cornered_building_fall_lobby_hanging_light_exp_a" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_4, "cornered_building_fall_lobby_hanging_light_exp_b" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_1, "cornered_building_fall_debris" );
|
|
thread fall_break_glass();
|
|
common_scripts\utility::flag_wait( "fall_stagger_anim_done" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_2, "cornered_building_fall_lobby_celling_debris" );
|
|
common_scripts\utility::flag_wait( "player_is_slipping" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_2, "cornered_building_fall_release_rubble" );
|
|
common_scripts\utility::flag_wait( "atrium_pillar_break" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_5, "cornered_building_fall_pillar_break" );
|
|
thread fall_props_pillar_rumble();
|
|
common_scripts\utility::flag_wait( "atrium_floor_break" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_6, "cornered_building_fall_floor_collapse" );
|
|
}
|
|
|
|
fall_props_debris_a()
|
|
{
|
|
var_0 = getent( "bldg_tilt_debris_a", "targetname" );
|
|
var_0.animname = "bldg_tilt_debris_a";
|
|
var_0 maps\_anim::setanimtree();
|
|
var_1 = maps\_utility::spawn_anim_model( "lobby_objects" );
|
|
var_2 = getentarray( "slide_debris", "targetname" );
|
|
level.fall_anim_struct thread maps\_anim::anim_first_frame_solo( var_0, "cornered_building_fall_debris" );
|
|
level.fall_anim_struct maps\_anim::anim_first_frame_solo( var_1, "cornered_building_fall_debris_office_a" );
|
|
|
|
foreach ( var_4 in var_2 )
|
|
{
|
|
var_5 = var_1 gettagorigin( "J_prop_" + var_4.script_noteworthy );
|
|
var_6 = var_1 gettagangles( "J_prop_" + var_4.script_noteworthy );
|
|
var_4.origin = var_5;
|
|
var_4.angles = var_6;
|
|
var_4 linkto( var_1, "J_prop_" + var_4.script_noteworthy );
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "go_sm_debris_a" );
|
|
level.fall_anim_struct thread maps\_anim::anim_single_solo( var_0, "cornered_building_fall_debris" );
|
|
level.fall_anim_struct maps\_anim::anim_single_solo( var_1, "cornered_building_fall_debris_office_a" );
|
|
common_scripts\utility::waitframe();
|
|
var_1 delete();
|
|
maps\_utility::array_delete( var_2 );
|
|
}
|
|
|
|
fall_props_debris_b()
|
|
{
|
|
var_0 = getent( "bldg_tilt_debris_b", "targetname" );
|
|
var_0.animname = "bldg_tilt_debris_b";
|
|
var_0 maps\_anim::setanimtree();
|
|
wait 0.2;
|
|
level.fall_anim_struct maps\_anim::anim_first_frame_solo( var_0, "cornered_building_fall_debris" );
|
|
common_scripts\utility::flag_wait( "go_sm_debris_b" );
|
|
var_0 show();
|
|
level.fall_anim_struct maps\_anim::anim_single_solo( var_0, "cornered_building_fall_debris" );
|
|
}
|
|
|
|
fall_props_pillar_rumble()
|
|
{
|
|
wait 2.65;
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
wait 1.65;
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
level.player setblurforplayer( 3.0, 0.05 );
|
|
wait 0.35;
|
|
level.player setblurforplayer( 0.0, 0.5 );
|
|
}
|
|
|
|
fall_prop_picture()
|
|
{
|
|
var_0 = getent( "lobby_tilting_picture", "targetname" );
|
|
var_0 maps\_utility::add_target_pivot();
|
|
var_1 = var_0.pivot;
|
|
var_2 = 18;
|
|
var_3 = 18;
|
|
var_4 = 0.75;
|
|
var_5 = 0.75;
|
|
|
|
if ( isdefined( level.atrium_checkpoint ) )
|
|
var_1 rotateroll( 7, 0.05 );
|
|
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
|
|
for ( var_6 = 0; var_6 < 13; var_6++ )
|
|
{
|
|
var_1 rotateroll( var_3, var_5, var_5 * 0.333333, var_5 * 0.666667 );
|
|
wait( var_5 );
|
|
var_3 = -1 * var_2 + -1 * var_2 * var_4;
|
|
var_2 = -1 * var_2 * var_4;
|
|
var_5 = var_5 * 0.95;
|
|
}
|
|
}
|
|
|
|
fall_props_lobby_furniture()
|
|
{
|
|
var_0 = maps\_utility::spawn_anim_model( "lobby_objects" );
|
|
var_1 = getentarray( "lobby_furniture", "targetname" );
|
|
var_2 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
var_2 maps\_anim::anim_first_frame_solo( var_0, "cornered_building_fall_lobby_furniture_a" );
|
|
|
|
foreach ( var_4 in var_1 )
|
|
{
|
|
var_5 = var_0 gettagorigin( "J_prop_" + var_4.script_noteworthy );
|
|
var_6 = var_0 gettagangles( "J_prop_" + var_4.script_noteworthy );
|
|
var_4.origin = var_5;
|
|
var_4.angles = var_6;
|
|
var_4 linkto( var_0, "J_prop_" + var_4.script_noteworthy );
|
|
|
|
if ( var_4.script_noteworthy == "6" || var_4.script_noteworthy == "11" )
|
|
{
|
|
var_7 = getentarray( "pillows_" + var_4.script_noteworthy, "targetname" );
|
|
|
|
foreach ( var_9 in var_7 )
|
|
var_9 linkto( var_4 );
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
thread fall_physics_debris_furniture();
|
|
var_2 thread maps\_anim::anim_single_solo( var_0, "cornered_building_fall_lobby_furniture_a" );
|
|
var_0 waittillmatch( "single anim", "pause_a" );
|
|
maps\_anim::anim_set_rate_single( var_0, "cornered_building_fall_lobby_furniture_a", 0.0 );
|
|
common_scripts\utility::flag_wait_all( "lobby_shake", "lobby_rorke_ready" );
|
|
maps\_anim::anim_set_rate_single( var_0, "cornered_building_fall_lobby_furniture_a", 1.0 );
|
|
var_0 waittillmatch( "single anim", "pause_b" );
|
|
maps\_anim::anim_set_rate_single( var_0, "cornered_building_fall_lobby_furniture_a", 0.0 );
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
maps\_anim::anim_set_rate_single( var_0, "cornered_building_fall_lobby_furniture_a", 1.0 );
|
|
}
|
|
|
|
fall_prop_corner_collapse()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
var_1 = getentarray( "bldg_fall_corner_collapse", "targetname" );
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
var_3.animname = "bldg_tilt_corner";
|
|
var_3 maps\_anim::setanimtree();
|
|
}
|
|
|
|
var_5 = getentarray( "bldg_fall_corner_collapse_glass1", "targetname" );
|
|
var_6 = getentarray( "bldg_fall_corner_collapse_glass2", "targetname" );
|
|
var_0 thread maps\_anim::anim_first_frame( var_1, "cornered_building_fall_corner_collapse" );
|
|
common_scripts\utility::flag_wait( "go_building_fall" );
|
|
wait 0.75;
|
|
var_0 thread maps\_anim::anim_single( var_1, "cornered_building_fall_corner_collapse" );
|
|
var_1[0] waittillmatch( "single anim", "shatter_1" );
|
|
|
|
foreach ( var_3 in var_5 )
|
|
var_3 delete();
|
|
|
|
var_9 = getglassarray( "glass_level_1" );
|
|
|
|
foreach ( var_3 in var_9 )
|
|
destroyglass( var_3 );
|
|
|
|
var_12 = getent( "corner_beam", "targetname" );
|
|
var_12 delete();
|
|
wait 0.7;
|
|
|
|
foreach ( var_3 in var_9 )
|
|
deleteglass( var_3 );
|
|
|
|
var_1[0] waittillmatch( "single anim", "shatter_2" );
|
|
|
|
foreach ( var_3 in var_6 )
|
|
var_3 delete();
|
|
|
|
var_17 = getglassarray( "glass_level_2" );
|
|
|
|
foreach ( var_3 in var_17 )
|
|
destroyglass( var_3 );
|
|
|
|
wait 0.7;
|
|
|
|
foreach ( var_3 in var_17 )
|
|
deleteglass( var_3 );
|
|
}
|
|
|
|
fall_props_atrium_lights()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
self.animname = "bldg_tilt_light";
|
|
maps\_anim::setanimtree();
|
|
var_0 thread maps\_anim::anim_loop_solo( self, "cornered_building_fall_idle_hanging_light_" + self.script_noteworthy, "stop_swaying_loop" );
|
|
common_scripts\utility::flag_wait( "go_building_fall" );
|
|
var_0 notify( "stop_swaying_loop" );
|
|
waittillframeend;
|
|
var_0 thread maps\_anim::anim_single_solo( self, "cornered_building_fall_slide_hanging_light_" + self.script_noteworthy );
|
|
}
|
|
|
|
fall_prop_merrick_window()
|
|
{
|
|
var_0 = getent( "merrick_glass_pane", "targetname" );
|
|
var_1 = getent( "merrick_glass_pane_distress", "targetname" );
|
|
var_2 = getent( "merrick_glass_pane_broken", "targetname" );
|
|
var_1 hide();
|
|
var_2 hide();
|
|
common_scripts\utility::flag_wait( "player_is_slipping" );
|
|
wait 14.43;
|
|
var_0 delete();
|
|
var_1 show();
|
|
wait 0.2;
|
|
var_1 delete();
|
|
var_2 show();
|
|
}
|
|
|
|
fall_props_parachute()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
var_1 = [];
|
|
var_1[0] = maps\_utility::spawn_anim_model( "exfil_chute_1" );
|
|
var_1[1] = maps\_utility::spawn_anim_model( "exfil_chute_2" );
|
|
var_0 maps\_anim::anim_first_frame( var_1, "cornered_exfil" );
|
|
|
|
foreach ( var_3 in var_1 )
|
|
var_3 hide();
|
|
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
var_0 thread maps\_anim::anim_single( var_1, "cornered_exfil" );
|
|
var_1[1] show();
|
|
common_scripts\utility::flag_wait( "exfil_slow_down" );
|
|
maps\_anim::anim_set_rate( var_1, "cornered_exfil", 0.75 );
|
|
common_scripts\utility::flag_wait( "show_ally_chute" );
|
|
var_1[0] show();
|
|
common_scripts\utility::flag_wait( "exfil_speed_up" );
|
|
maps\_anim::anim_set_rate( var_1, "cornered_exfil", 1.0 );
|
|
}
|
|
|
|
fall_props_player_parachute()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
var_1 = [];
|
|
var_1[0] = maps\_utility::spawn_anim_model( "exfil_ripcord_player" );
|
|
var_1[1] = maps\_utility::spawn_anim_model( "exfil_chute_player" );
|
|
var_0 maps\_anim::anim_first_frame( var_1, "cornered_exfil" );
|
|
var_1[1] hide();
|
|
common_scripts\utility::flag_wait( "parachute_exfil" );
|
|
var_0 thread maps\_anim::anim_single( var_1, "cornered_exfil" );
|
|
common_scripts\utility::flag_wait( "exfil_slow_down" );
|
|
maps\_anim::anim_set_rate( var_1, "cornered_exfil", 0.75 );
|
|
common_scripts\utility::flag_wait( "exfil_speed_up" );
|
|
maps\_anim::anim_set_rate( var_1, "cornered_exfil", 1.0 );
|
|
common_scripts\utility::flag_wait( "show_player_chute" );
|
|
var_1[1] show();
|
|
}
|
|
|
|
fall_props_ext_bldg()
|
|
{
|
|
var_0 = getentarray( "end_broken_bldg", "targetname" );
|
|
var_0[0] thread fall_fx_end_bldg();
|
|
var_1 = maps\_utility::spawn_anim_model( "exfil_bldg" );
|
|
var_2 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
var_2 maps\_anim::anim_first_frame_solo( var_1, "cornered_exfil_building_and_sign" );
|
|
var_3 = var_1 gettagorigin( "J_prop_1" );
|
|
var_4 = var_1 gettagangles( "J_prop_1" );
|
|
common_scripts\utility::waitframe();
|
|
|
|
foreach ( var_6 in var_0 )
|
|
var_6 linkto( var_1, "J_prop_1" );
|
|
|
|
common_scripts\utility::flag_wait( "go_exfil_bldg" );
|
|
var_2 maps\_anim::anim_single_solo( var_1, "cornered_exfil_building_and_sign" );
|
|
}
|
|
|
|
fall_props_ext_sign()
|
|
{
|
|
var_0 = getent( "fall_tiran_sign", "script_noteworthy" );
|
|
var_0.animname = "exfil_sign";
|
|
var_0 maps\_anim::setanimtree();
|
|
var_1 = common_scripts\utility::getstruct( "fall_animnode", "targetname" );
|
|
common_scripts\utility::flag_wait( "go_exfil_bldg" );
|
|
var_1 maps\_anim::anim_single_solo( var_0, "cornered_exfil_sign" );
|
|
}
|
|
|
|
fall_fx_end_bldg()
|
|
{
|
|
var_0 = maps\_utility::get_exploder_array( 3999 );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
if ( issubstr( var_2.v["fxid"], "falling_debris_card" ) || issubstr( var_2.v["fxid"], "vfx_debris_fall_exfil_2" ) )
|
|
{
|
|
var_3 = common_scripts\utility::spawn_tag_origin();
|
|
var_3.fxid = var_2.v["fxid"];
|
|
var_3.origin = var_2.v["origin"];
|
|
var_3.angles = var_2.v["angles"];
|
|
var_3 linkto( self );
|
|
thread fall_fx_bldg_fx( var_3 );
|
|
}
|
|
}
|
|
}
|
|
|
|
fall_fx_bldg_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( "atrium_pre_rail_hit" );
|
|
playfxontag( level._effect[var_0.fxid], var_0, "tag_origin" );
|
|
}
|
|
|
|
fall_break_glass()
|
|
{
|
|
wait 1.25;
|
|
var_0 = getglassarray( "lobby_atrium_glass" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
thread fall_break_glass_with_delay( var_2, 0.05, 0.06, 0, 1, 0.1 );
|
|
|
|
var_4 = getglassarray( "lobby_atrium_glass_doors" );
|
|
var_5 = getentarray( "atrium_door_handles", "targetname" );
|
|
maps\_utility::array_delete( var_5 );
|
|
|
|
foreach ( var_2 in var_4 )
|
|
thread fall_break_glass_with_delay( var_2, 0.05, 0.06, 0, 1, 0 );
|
|
|
|
common_scripts\utility::flag_wait( "fall_down_shake" );
|
|
wait 1.6;
|
|
|
|
foreach ( var_2 in var_4 )
|
|
deleteglass( var_2 );
|
|
}
|
|
|
|
fall_break_glass_with_delay( var_0, var_1, var_2, var_3, var_4, var_5 )
|
|
{
|
|
wait( randomfloatrange( var_1, var_2 ) );
|
|
destroyglass( var_0, ( var_3, var_4, var_5 ) );
|
|
}
|
|
|
|
fall_glass_final_impact()
|
|
{
|
|
var_0 = getglass( "atrium_fall_glass" );
|
|
var_1 = getent( "atrium_fall_glass_clip", "targetname" );
|
|
destroyglass( var_0 );
|
|
var_1 delete();
|
|
}
|
|
|
|
fall_physics_debris_entry_stairs()
|
|
{
|
|
var_0 = getentarray( "pre_lobby_shelf_debris1", "targetname" );
|
|
var_1 = getentarray( "pre_lobby_shelf_debris2", "targetname" );
|
|
var_2 = getentarray( "pre_lobby_shelf_debris3", "targetname" );
|
|
common_scripts\utility::flag_wait( "lobby_stairwell_shake" );
|
|
thread maps\cornered_audio::aud_collapse( "shelf" );
|
|
setphysicsgravitydir( ( -0.02, 0, -0.03 ) );
|
|
|
|
foreach ( var_4 in var_0 )
|
|
{
|
|
var_4 physicslaunchclient( var_4.origin + ( -2, 2, 0 ), ( 0, -0.002, -1 ) );
|
|
var_4 thread maps\cornered_code::debris_remove_after_time( 15.0 );
|
|
}
|
|
|
|
wait 0.2;
|
|
|
|
foreach ( var_4 in var_1 )
|
|
{
|
|
var_4 physicslaunchclient( var_4.origin + ( -2, 2, 0 ), ( 0, -0.002, -1 ) );
|
|
var_4 thread maps\cornered_code::debris_remove_after_time( 15.0 );
|
|
}
|
|
|
|
wait 0.2;
|
|
|
|
foreach ( var_4 in var_2 )
|
|
{
|
|
var_4 physicslaunchclient( var_4.origin + ( -2, 2, 0 ), ( 0, -0.002, -1 ) );
|
|
var_4 thread maps\cornered_code::debris_remove_after_time( 15.0 );
|
|
}
|
|
|
|
setphysicsgravitydir( ( 0, -0.02, -0.03 ) );
|
|
}
|
|
|
|
fall_physics_debris_lobby()
|
|
{
|
|
if ( !isdefined( level.atrium_checkpoint ) )
|
|
common_scripts\utility::flag_wait( "office_explosion" );
|
|
|
|
var_0 = getentarray( "lobby_debris1", "targetname" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2 physicslaunchclient( var_2.origin + ( 0, 0, -6 ), ( 0, -1, 0 ) );
|
|
var_2 thread maps\cornered_code::debris_remove_after_time( 20.0 );
|
|
}
|
|
|
|
wait 2.8;
|
|
var_4 = getentarray( "lobby_debris2", "targetname" );
|
|
|
|
foreach ( var_2 in var_4 )
|
|
{
|
|
var_2 physicslaunchclient( var_2.origin + ( 0, 0, -6 ), ( 0, -1, 0 ) );
|
|
var_2 thread maps\cornered_code::debris_remove_after_time( 20.0 );
|
|
}
|
|
|
|
common_scripts\utility::flag_wait( "player_is_slipping" );
|
|
var_7 = getentarray( "lobby_debris3", "targetname" );
|
|
|
|
foreach ( var_2 in var_7 )
|
|
{
|
|
var_2 physicslaunchclient( var_2.origin + ( 0, 0, -6 ), ( 0, -1, 0 ) );
|
|
var_2 thread maps\cornered_code::debris_remove_after_time( 20.0 );
|
|
}
|
|
}
|
|
|
|
fall_physics_debris_furniture()
|
|
{
|
|
var_0 = getentarray( "lobby_furniture_junk", "targetname" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2 physicslaunchclient( var_2.origin + ( 0, 0, -8 ), ( 0, -125, 500 ) );
|
|
var_2 thread maps\cornered_code::debris_remove_after_time( 20.0 );
|
|
}
|
|
}
|
|
|
|
fall_physics_debris_slide()
|
|
{
|
|
var_0 = level.player common_scripts\utility::spawn_tag_origin();
|
|
var_0.origin = level.player.origin + ( 0, 16, 32 );
|
|
var_0 thread maps\cornered_code::debris_spawner( 0.1, 0.2, 600, ( 0, -1, -0.01 ), 1, 1 );
|
|
common_scripts\utility::flag_wait( "atrium_pillar_break" );
|
|
var_1 = level.player common_scripts\utility::spawn_tag_origin();
|
|
var_1.origin = level.player.origin + ( 24, 4, 12 );
|
|
var_1 linkto( level.fall_arms_and_legs[0] );
|
|
var_1 thread maps\cornered_code::debris_spawner( 0.1, 0.2, 1200, ( 0, -1, -0.01 ), 1, 1 );
|
|
var_2 = level.player common_scripts\utility::spawn_tag_origin();
|
|
var_2.origin = level.player.origin + ( -24, 4, 12 );
|
|
var_2 linkto( level.fall_arms_and_legs[0] );
|
|
var_2 thread maps\cornered_code::debris_spawner( 0.1, 0.2, 1200, ( 0, -1, -0.01 ), 1, 1 );
|
|
common_scripts\utility::flag_wait_any( "atrium_finished", "parachute_exfil" );
|
|
var_1 delete();
|
|
var_2 delete();
|
|
var_0 delete();
|
|
}
|
|
|
|
lobby_and_stair_fx()
|
|
{
|
|
common_scripts\utility::exploder( 7651 );
|
|
common_scripts\utility::exploder( 3088 );
|
|
}
|
|
|
|
random_building_shake_loop( var_0, var_1, var_2, var_3 )
|
|
{
|
|
level endon( "done_random_shaking" );
|
|
|
|
for (;;)
|
|
{
|
|
var_4 = randomfloatrange( var_1, var_2 );
|
|
|
|
if ( var_4 < 2 )
|
|
level.player playrumbleonentity( "light_1s" );
|
|
else if ( var_4 >= 2 && var_4 < 3 )
|
|
level.player playrumbleonentity( "light_2s" );
|
|
else
|
|
level.player playrumbleonentity( "light_3s" );
|
|
|
|
level thread lobby_and_stair_fx();
|
|
earthquake( var_0, var_4, level.player.origin, 2500 );
|
|
maps\cornered_audio::aud_collapse( "lobby" );
|
|
physicsjitter( level.player.origin, 3000, 2800, 1.0, 2.0 );
|
|
wait( var_4 + var_3 );
|
|
}
|
|
}
|
|
|
|
fall_enemy_self_anim()
|
|
{
|
|
self.animname = "generic";
|
|
self.allowdeath = 1;
|
|
self.deathanim = undefined;
|
|
self.deathfunction = maps\cornered_code::death_only_ragdoll;
|
|
common_scripts\utility::waitframe();
|
|
maps\_anim::anim_generic( self, self.animation );
|
|
|
|
if ( isalive( self ) && isdefined( self ) )
|
|
self kill();
|
|
}
|
|
|
|
fall_enemy_node_anim( var_0, var_1 )
|
|
{
|
|
var_2 = common_scripts\utility::getstruct( var_0, "targetname" );
|
|
self.animname = "generic";
|
|
self.allowdeath = 1;
|
|
self.deathanim = undefined;
|
|
self.deathfunction = maps\cornered_code::death_only_ragdoll;
|
|
var_2 maps\_anim::anim_generic( self, "cornered_building_fall_" + self.script_noteworthy );
|
|
|
|
if ( isalive( self ) && isdefined( self ) )
|
|
self kill();
|
|
}
|
|
|
|
corpse_clear()
|
|
{
|
|
level endon( "teleported" );
|
|
var_0 = getent( "corpse_cleaner", "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
var_1 = getcorpsearray();
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
if ( var_3 istouching( var_0 ) )
|
|
var_3 delete();
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|