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

1276 lines
48 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
section_flag_inits()
{
common_scripts\utility::flag_init( "flag_cw_bravo_breach_1" );
common_scripts\utility::flag_init( "flag_cw_bravo_breach_2" );
common_scripts\utility::flag_init( "flag_cw_bravo_breach" );
common_scripts\utility::flag_init( "flag_start_retreat" );
common_scripts\utility::flag_init( "flag_low_retreat" );
common_scripts\utility::flag_init( "flag_low_runaway" );
common_scripts\utility::flag_init( "flag_stairs_kill" );
common_scripts\utility::flag_init( "flag_mid_start" );
common_scripts\utility::flag_init( "flag_low_runaway_again" );
common_scripts\utility::flag_init( "flag_mid_retreat" );
common_scripts\utility::flag_init( "flag_high_retreat" );
common_scripts\utility::flag_init( "flag_high_dead" );
common_scripts\utility::flag_init( "flag_no_catwalk_kill" );
common_scripts\utility::flag_init( "flag_vig_catwalk_kill" );
common_scripts\utility::flag_init( "flag_tape_breach_ally1" );
common_scripts\utility::flag_init( "flag_tape_breach_ally2" );
common_scripts\utility::flag_init( "flag_cw_breach_vo_ready" );
common_scripts\utility::flag_init( "flag_catwalks_end" );
common_scripts\utility::flag_init( "flag_barracks_go_fast" );
common_scripts\utility::flag_init( "flag_barracks_ally1_ready" );
common_scripts\utility::flag_init( "flag_barracks_ally2_ready" );
common_scripts\utility::flag_init( "flag_barracks_sweep_start" );
common_scripts\utility::flag_init( "flag_player_in_barracks_room1" );
common_scripts\utility::flag_init( "flag_player_in_barracks_room2" );
common_scripts\utility::flag_init( "flag_barracks_opfor_attack" );
common_scripts\utility::flag_init( "flag_barracks_cleared" );
common_scripts\utility::flag_init( "flag_common_player_ready" );
common_scripts\utility::flag_init( "flag_common_ai_ready" );
common_scripts\utility::flag_init( "flag_common_breach" );
common_scripts\utility::flag_init( "flag_common_breach_ally_start" );
common_scripts\utility::flag_init( "flag_common_breach_done" );
common_scripts\utility::flag_init( "flag_common_player_inside" );
common_scripts\utility::flag_init( "flag_common_reinforce" );
common_scripts\utility::flag_init( "flag_common_retreat" );
common_scripts\utility::flag_init( "flag_common_end" );
common_scripts\utility::flag_init( "flag_common_cleanup" );
common_scripts\utility::flag_init( "flag_common_cleared" );
common_scripts\utility::flag_init( "cw_gps_tape_breach" );
common_scripts\utility::flag_init( "cw_gps_common_door" );
}
section_post_inits()
{
getent( "cw_gold_common_room_breach", "targetname" ) hide();
}
section_precache()
{
}
start_catwalks()
{
iprintln( "Catwalks" );
maps\black_ice_util::player_start( "player_start_catwalks" );
var_0 = common_scripts\utility::getstruct( "cw_start_ally1", "targetname" );
level._allies[0] forceteleport( var_0.origin, var_0.angles );
var_0 = common_scripts\utility::getstruct( "cw_start_ally2", "targetname" );
level._allies[1] forceteleport( var_0.origin, var_0.angles );
common_scripts\utility::flag_set( "bc_flag_spots_off" );
var_1 = getent( "cw_trig_start_spawn", "script_noteworthy" );
var_1 maps\_utility::notify_delay( "trigger", 0.1 );
common_scripts\utility::exploder( "catwalks_snow" );
common_scripts\utility::exploder( "catwalks_lights" );
thread catwalk_godrays();
thread maps\black_ice_ascend::hanging_cargo_motion();
thread maps\_utility::notify_delay( "notify_ascend_rubberband_alpha_stop", 1.1 );
maps\_utility::delaythread( 1.1, common_scripts\utility::flag_set, "flag_ascend_end" );
}
start_catwalks_end()
{
iprintln( "Catwalks End" );
maps\black_ice_util::player_start( "player_start_catwalks_end" );
var_0 = common_scripts\utility::getstruct( "cwe_start_ally1", "targetname" );
level._allies[0] forceteleport( var_0.origin, var_0.angles );
var_0 = common_scripts\utility::getstruct( "cwe_start_ally2", "targetname" );
level._allies[1] forceteleport( var_0.origin, var_0.angles );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_grenadeammo, 0 );
setup_spawners();
var_1 = getentarray( "cw_trig_enable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_enable_cqb );
var_1 = getentarray( "cw_trig_disable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_disable_cqb );
var_0 = getent( "cw_vig_tape_breach", "targetname" );
level.tape_breach_door = maps\_utility::spawn_anim_model( "tape_breach_door" );
var_0 maps\_anim::anim_first_frame_solo( level.tape_breach_door, "cw_tape_breach" );
thread maps\black_ice_ascend::hanging_cargo_motion();
var_2 = getent( "cw_color_exit_door", "targetname" );
var_2 notify( "trigger" );
common_scripts\utility::flag_set( "flag_vig_catwalk_kill" );
level.tele_catwalks_end = 1;
}
start_barracks()
{
iprintln( "Barracks" );
maps\black_ice_util::player_start( "player_start_barracks" );
var_0 = common_scripts\utility::getstruct( "cwb_start_ally1", "targetname" );
level._allies[0] forceteleport( var_0.origin, var_0.angles );
var_0 = common_scripts\utility::getstruct( "cwb_start_ally2", "targetname" );
level._allies[1] forceteleport( var_0.origin, var_0.angles );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_grenadeammo, 0 );
setup_spawners();
var_1 = getentarray( "cw_trig_enable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_enable_cqb );
var_1 = getentarray( "cw_trig_disable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_disable_cqb );
common_scripts\utility::array_call( getentarray( "cw_clip_tape_breach_door", "targetname" ), ::delete );
common_scripts\utility::array_call( getentarray( "cw_clip_tape_breach", "targetname" ), ::delete );
wait 0.05;
common_scripts\utility::array_thread( level._allies, maps\_utility::set_force_cover, 0 );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_ai_color );
var_0 = getnode( "cwb_node_start_ally1", "targetname" );
level._allies[0] thread maps\_utility::follow_path( var_0 );
var_0 = getnode( "cwb_node_start_ally2", "targetname" );
level._allies[1] thread maps\_utility::follow_path( var_0 );
common_scripts\utility::exploder( "barracks_ambfx" );
}
start_common()
{
iprintln( "Common Room" );
maps\black_ice_util::player_start( "player_start_common" );
var_0 = common_scripts\utility::getstruct( "cwc_start_ally1", "targetname" );
level._allies[0] forceteleport( var_0.origin, var_0.angles );
var_0 = common_scripts\utility::getstruct( "cwc_start_ally2", "targetname" );
level._allies[1] forceteleport( var_0.origin, var_0.angles );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_grenadeammo, 0 );
foreach ( var_2 in level._allies )
var_2.old_react_dist = var_2.newenemyreactiondistsq;
setup_spawners();
wait 0.05;
var_4 = getnode( "cwc_node_door_ally1", "targetname" );
level._allies[0] thread maps\_utility::follow_path( var_4 );
var_5 = getnode( "cwc_node_door_ally2", "targetname" );
level._allies[1] thread maps\_utility::follow_path( var_5 );
common_scripts\utility::exploder( "barracks_ambfx" );
maps\_utility::vision_set_fog_changes( "black_ice_commonroom", 0 );
}
main_catwalks()
{
thread catwalks_setup();
thread catwalk_godrays();
wait 1;
thread cw_bravo_breach();
level waittill( "notify_ascend_rubberband_alpha_stop" );
foreach ( var_1 in level._allies )
{
if ( isdefined( var_1.old_moveplaybackrate ) )
var_1 thread maps\_utility::set_moveplaybackrate( var_1.old_moveplaybackrate );
}
common_scripts\utility::array_thread( level._allies, maps\_utility::set_grenadeammo, 0 );
level._allies[0] maps\_utility::set_force_color( "r" );
level._allies[1] maps\_utility::set_force_color( "y" );
common_scripts\utility::flag_wait( "flag_ascend_end" );
thread maps\black_ice::trains_periph_logic( 0.0, 0 );
maps\_utility::vision_set_fog_changes( "black_ice_catwalks", 0 );
setsaveddvar( "r_snowAmbientColor", ( 0.02, 0.02, 0.03 ) );
thread maps\black_ice_util::rotatelights( "light_spinner_h", "light_spin_h", "yaw" );
thread maps\black_ice_util::rotatelights( "light_spinner_v", "light_spin_v", "pitch" );
thread maps\black_ice_util::rotatelights( "light_spinner_v2", "light_spin_v2", "pitch" );
level cw_start();
level cw_low();
level cw_mid();
}
catwalks_setup()
{
var_0 = getent( "cw_vig_tape_breach", "targetname" );
level.tape_breach_door = maps\_utility::spawn_anim_model( "tape_breach_door" );
var_0 maps\_anim::anim_first_frame_solo( level.tape_breach_door, "cw_tape_breach" );
var_1 = getentarray( "cw_trig_enable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_enable_cqb );
var_1 = getentarray( "cw_trig_disable_cqb", "script_noteworthy" );
common_scripts\utility::array_thread( var_1, ::trig_disable_cqb );
setup_spawners();
if ( level._bravo.size < 2 )
{
level maps\black_ice_util::spawn_bravo();
var_0 = common_scripts\utility::getstruct( "cw_start_bravo1", "targetname" );
level._bravo[0] forceteleport( var_0.origin, var_0.angles );
var_0 = common_scripts\utility::getstruct( "cw_start_bravo2", "targetname" );
level._bravo[1] forceteleport( var_0.origin, var_0.angles );
}
common_scripts\utility::array_thread( level._bravo, maps\_utility::set_ignoreall, 1 );
}
catwalks_end()
{
thread catwalks_end_fic();
common_scripts\utility::array_thread( level._allies, maps\black_ice_util::set_forcesuppression, 1 );
high_catwalk_kill();
common_scripts\utility::flag_wait( "flag_catwalks_end" );
cw_tape_breach();
common_scripts\utility::array_thread( level._allies, maps\black_ice_util::set_forcesuppression, 0 );
}
main_barracks()
{
maps\_utility::autosave_by_name( "barracks_start" );
level cw_barracks();
}
main_common()
{
maps\_utility::autosave_by_name( "common_start" );
level cw_common();
}
cw_start()
{
level.player.ignoreme = 0;
wait 1;
var_0 = maps\_utility::array_spawn_targetname( "cw_opfor_start_door", 1 );
var_1 = maps\black_ice_util::setup_door( "cw_low_door" );
var_1 thread maps\black_ice_util::open_door( [ 126, -10 ], 1 );
thread maps\black_ice_audio::sfx_cw_door_open( var_1 );
wait 1;
setthreatbias( "axis", "player", 0 );
common_scripts\utility::array_thread( var_0, maps\_utility::set_ignoreall, 0 );
maps\black_ice_util::delay_retreat( "cw_opfor", 60, 3, "flag_start_retreat", "cw_color_low" );
}
cw_low()
{
thread cw_low_fic();
maps\_utility::array_spawn_targetname( "cw_opfor_low_balcony", undefined, 1 );
maps\_utility::flood_spawn( getentarray( "cw_opfor_low", "targetname" ) );
wait 2;
maps\_utility::flagwaitthread( "flag_low_runaway", common_scripts\utility::flag_set, "flag_low_retreat" );
maps\black_ice_util::delay_retreat( "cw_opfor", 90, 4, "flag_low_retreat", [ "cw_color_low_retreat", "cw_color_low" ], 1 );
wait 0.05;
maps\black_ice_util::delay_retreat( "cw_opfor", 60, 2, "flag_low_runaway", "cw_color_low_runaway", 1, "cw_to_mid_vo_nag" );
thread cw_low_cleanup();
level.fixednodesaferadius_default = 100;
}
cw_low_cleanup()
{
var_0 = maps\_utility::get_ai_group_ai( "bc_opfor" );
if ( var_0.size > 0 )
common_scripts\utility::array_thread( var_0, maps\_utility::set_ignoreall, 1 );
else
return;
wait 3;
var_0 = maps\_utility::array_removedead( var_0 );
if ( var_0.size > 0 )
common_scripts\utility::array_thread( var_0, maps\_utility::set_ignoreall, 0 );
}
cw_mid()
{
common_scripts\utility::flag_wait( "flag_mid_start" );
thread cw_mid_fic();
thread fx_snow_windtunnel();
wait 0.05;
maps\black_ice_util::delay_retreat( "cw_opfor", 90, 2, "flag_high_retreat", [ "cw_color_exit_door", "cw_color_to_high" ], 1 );
if ( !common_scripts\utility::flag( "flag_mid_retreat" ) )
common_scripts\utility::flag_set( "flag_mid_retreat" );
thread maps\_spawner::killspawner( 129 );
thread maps\_utility::kill_deathflag( "flag_opfor_high_clear", 1.0 );
thread maps\black_ice_util::delay_retreat( "cw_opfor", 90, 0, "flag_high_dead" );
level.fixednodesaferadius_default = undefined;
wait 1;
level._allies[0] thread goto_door_breach( "cw_node_tape_breach_ally1", 1.18, "flag_tape_breach_ally1" );
level._allies[1] thread goto_door_breach( "cw_node_tape_breach_ally2", 1.16, "flag_tape_breach_ally2" );
}
cw_low_fic()
{
level endon( "stop_low_fic" );
level waittill( "cw_to_mid_vo_nag" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_moveupalpha" );
}
cw_mid_fic()
{
level notify( "stop_low_fic" );
level endon( "stop_mid_fic" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_cutthroughmetal" );
wait 10;
if ( !common_scripts\utility::flag( "flag_opfor_high_clear" ) )
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_coversuseless" );
}
catwalks_end_fic()
{
level notify( "stop_mid_fic" );
if ( !isdefined( level.tele_catwalks_end ) )
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_fallingbackmoveup" );
thread catwalks_end_cleanup_fic();
common_scripts\utility::flag_wait_all( "flag_tape_breach_ally1", "flag_catwalks_end" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_shapecharges" );
common_scripts\utility::flag_set( "flag_cw_breach_vo_ready" );
level waittill( "cw_tape_breach_start" );
level._allies[1] thread maps\_utility::smart_dialogue( "blackice_fnt_settingcharges" );
level waittill( "cw_tape_breach_cover" );
level._allies[1] maps\_utility::smart_dialogue( "blackice_fnt_standclear" );
}
catwalks_end_cleanup_fic()
{
level endon( "flag_tape_breach_ally1" );
common_scripts\utility::flag_wait( "flag_high_dead" );
wait 0.25;
if ( !common_scripts\utility::flag( "flag_catwalks_end" ) )
level._allies[1] maps\_utility::smart_dialogue( "black_ice_hsh_wereclear" );
level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_movintodeckto" );
}
cw_barracks()
{
thread cw_stairs_fic();
thread tv_watcher();
var_0 = getent( "cw_vig_hallway_sweep", "targetname" );
var_1 = maps\_utility::spawn_anim_model( "hallway_door" );
var_0 maps\_anim::anim_first_frame_solo( var_1, "cw_hallsweep" );
var_2 = getent( "cw_door_hallway_sweep", "targetname" );
var_2 linkto( var_1, "j_hinge" );
common_scripts\utility::flag_wait( "flag_barracks_sweep_start" );
level._allies[0] thread breach_wait_move( "cw_gps_hall_sweep", "cwb_node_start_ally1", "cwb_node_start_ally1_detour", [ "blackice_bkr_muchtime" ], "flag_barracks_go_fast" );
common_scripts\utility::array_call( level._allies, ::pushplayer, 0 );
var_3 = getent( "cw_trig_common_ambush", "targetname" );
if ( isdefined( var_3 ) )
{
thread cw_barracks_fast_trig_proc( var_3 );
thread cw_barracks_fast_shoot_proc();
}
else
common_scripts\utility::flag_set( "flag_barracks_go_fast" );
thread maps\_utility::flagwaitthread( "flag_player_in_barracks_room1", maps\_anim::removenotetrack, "ally2", "fuentes_va_clear_1", "cw_hallsweep", "dialog" );
thread maps\_utility::flagwaitthread( "flag_player_in_barracks_room2", maps\_anim::removenotetrack, "ally1", "baker_vo_clear_1", "cw_hallsweep", "dialog" );
level.op_barracks = maps\_utility::spawn_targetname( "cw_barracks_opfor" );
cw_barracks_setup();
cw_barracks_slow( var_0, var_1 );
cw_barracks_fast( var_1 );
}
cw_barracks_setup()
{
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_cqbwalk );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_ignoreall, 1 );
foreach ( var_1 in level._allies )
{
if ( isdefined( var_1.old_moveplaybackrate ) )
var_1 maps\_utility::set_moveplaybackrate( var_1.old_moveplaybackrate );
var_1.old_react_dist = var_1.newenemyreactiondistsq;
var_1.newenemyreactiondistsq = 0;
}
}
cw_barracks_slow( var_0, var_1 )
{
level endon( "flag_barracks_go_fast" );
if ( common_scripts\utility::flag( "flag_barracks_go_fast" ) )
return;
common_scripts\utility::flag_wait_all( "flag_barracks_ally1_ready", "flag_barracks_ally2_ready" );
var_2 = getnode( "cwc_node_door_ally1", "targetname" );
var_3 = getnode( "cwc_node_door_ally2", "targetname" );
foreach ( var_5 in level._allies )
{
if ( var_5.origin != var_5.goalpos )
wait 0.05;
}
thread maps\black_ice_audio::hall_search_music();
wait 0.5;
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_move" );
level._allies[0] maps\_utility::delaythread( 1, maps\_utility::smart_dialogue, "black_ice_bkr_rookcheckyourcorners" );
var_0 thread maps\_anim::anim_generic( level.op_barracks, "cw_hallsweep" );
var_0 thread maps\_anim::anim_single_solo( var_1, "cw_hallsweep" );
var_0 thread anim_reach_play( level._allies[1], "cw_hallsweep", undefined, 0.1, undefined, var_3, 1 );
var_0 anim_reach_play( level._allies[0], "cw_hallsweep", undefined, 0.1, undefined, var_2, 1 );
}
cw_barracks_fast( var_0 )
{
if ( !common_scripts\utility::flag( "flag_barracks_go_fast" ) )
return;
if ( var_0 getanimtime( var_0 maps\_utility::getanim( "cw_hallsweep" ) ) > 0.16 )
var_1 = [ level._allies[0], level._allies[1], level.op_barracks ];
else
var_1 = [ level._allies[0], level._allies[1], level.op_barracks, var_0 ];
maps\_utility::array_notify( var_1, "anim_reach_play" );
maps\_utility::array_notify( var_1, "new_anim_reach" );
common_scripts\utility::array_thread( var_1, maps\_utility::anim_stopanimscripted );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_cqbwalk );
common_scripts\utility::array_thread( level._allies, maps\_utility::enable_careful );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_ignoreall, 0 );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_baseaccuracy, 0.25 );
level._allies[0] thread maps\_utility::set_force_color( "r" );
level._allies[1] thread maps\_utility::set_force_color( "y" );
var_2 = getent( "cw_color_barracks_fast", "targetname" );
var_2 notify( "trigger" );
var_2 common_scripts\utility::trigger_off();
thread cw_barracks_fast_fic();
common_scripts\utility::flag_wait( "flag_barracks_cleared" );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_baseaccuracy, 1 );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_careful );
var_3 = getnode( "cwc_node_door_ally1", "targetname" );
var_4 = getnode( "cwc_node_door_ally2", "targetname" );
level._allies[0] thread maps\_utility::follow_path( var_3 );
level._allies[1] thread maps\_utility::follow_path( var_4 );
}
cw_stairs_fic()
{
level endon( "flag_barracks_sweep_start" );
wait 0.5;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_dealertwothisis" );
maps\_utility::smart_radio_dialogue( "black_ice_oby_copyone" );
wait 1;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_pressureregulatorsareup" );
wait 1.0;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_keepalertfuenteson" );
}
cw_barracks_fast_fic()
{
maps\_anim::removenotetrack( "ally1", "baker_vo_clear_1", "cw_hallsweep", "dialog" );
maps\_anim::removenotetrack( "ally1", "baker_vo_clear_2", "cw_hallsweep", "dialog" );
maps\_anim::removenotetrack( "ally2", "fuentes_va_clear_1", "cw_hallsweep", "dialog" );
common_scripts\utility::flag_wait_any( "flag_barracks_opfor_attack", "flag_barracks_cleared" );
if ( !common_scripts\utility::flag( "flag_barracks_cleared" ) )
level._allies[1] maps\_utility::smart_dialogue( "black_ice_fnt_tangowatchout" );
common_scripts\utility::flag_wait( "flag_barracks_cleared" );
wait 1.0;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_hallwayclearletsmove" );
}
cw_common()
{
common_scripts\utility::array_call( level._allies, ::pushplayer, 1 );
common_scripts\utility::flag_wait_all( "flag_common_player_ready", "flag_common_ai_ready" );
thread cw_common_fic();
common_scripts\utility::array_thread( level._allies, maps\_utility::set_ignoreall, 0 );
foreach ( var_1 in level._allies )
var_1.newenemyreactiondistsq = var_1.old_react_dist;
var_3 = getent( "cw_vig_common_room_breach", "targetname" );
var_3 thread maps\_anim::anim_single_solo( level._allies[0], "rec_breach_check" );
wait 0.05;
common_scripts\utility::array_thread( level._allies, maps\_utility::enable_cqbwalk );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_ai_color );
common_scripts\utility::flag_wait( "flag_common_breach" );
level cw_common_breach();
common_scripts\utility::array_call( level._allies, ::pushplayer, 0 );
level._allies[0] thread maps\_utility::set_ignoresuppression( 1 );
level._allies[0] maps\_utility::delaythread( 2.5, maps\_utility::set_ignoresuppression, 0 );
level._allies[0] thread maps\_utility::set_force_color( "r" );
level._allies[1] maps\_utility::delaythread( 1.5, maps\_utility::set_force_color, "y" );
var_4 = getent( "cw_color_common_start", "targetname" );
var_4 notify( "trigger" );
var_4 common_scripts\utility::trigger_off();
common_scripts\utility::array_thread( level._allies, maps\_utility::set_force_cover, 0 );
maps\black_ice_util::delay_retreat( "com_opfor", 30, 5, "flag_common_reinforce" );
maps\_utility::array_spawn_targetname( "cw_opfor_common_runner" );
wait 1;
maps\black_ice_util::delay_retreat( "com_opfor", 90, 4, "flag_common_retreat", "cw_trig_common_retreat", 1 );
wait 1;
maps\black_ice_util::delay_retreat( "com_opfor", 60, 2, "flag_common_end" );
common_scripts\utility::array_thread( maps\_utility::get_ai_group_ai( "com_opfor" ), maps\_utility::player_seek_enable );
maps\black_ice_util::delay_retreat( "com_opfor", 60, 1, "flag_common_cleanup" );
maps\_utility::kill_deathflag( "flag_common_cleared", 2 );
common_scripts\utility::flag_wait( "flag_common_cleared" );
level.player thread maps\_utility::notify_delay( "common_encounter_done", 1.0 );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_cqbwalk );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_grenadeammo, 3 );
var_5 = getentarray( "cw_color_common", "script_noteworthy" );
common_scripts\utility::array_thread( var_5, common_scripts\utility::trigger_off );
var_4 = getent( "cwc_color_leave", "targetname" );
var_4 notify( "trigger" );
}
cw_common_fic()
{
wait 0.5;
maps\_utility::delaythread( 1.0, common_scripts\utility::flag_set, "flag_common_breach" );
level waittill( "flag_common_breach_ally_start" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_ambush" );
level waittill( "cw_common_throw_flash" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_doorsdown" );
common_scripts\utility::flag_wait( "flag_common_cleared" );
wait 1;
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_roomsclearmove" );
level._allies[1] maps\_utility::smart_dialogue( "black_ice_hsh_closecalltherebro" );
}
cw_bravo_breach()
{
common_scripts\utility::array_thread( level._bravo, maps\_utility::set_ignoreme, 1 );
level._bravo[0] thread maps\_utility::follow_path( getnode( "cw_leave_bravo1", "targetname" ) );
level._bravo[1] thread maps\_utility::follow_path( getnode( "cw_leave_bravo2", "targetname" ) );
common_scripts\utility::flag_wait_all( "flag_cw_bravo_breach_1", "flag_cw_bravo_breach_2" );
common_scripts\utility::flag_clear( "flag_cw_bravo_breach_1" );
common_scripts\utility::flag_clear( "flag_cw_bravo_breach_2" );
wait 1;
common_scripts\utility::flag_set( "flag_cw_bravo_breach" );
common_scripts\utility::flag_wait_all( "flag_cw_bravo_breach_1", "flag_cw_bravo_breach_2" );
common_scripts\utility::array_thread( level._bravo, maps\_utility::stop_magic_bullet_shield );
wait 0.1;
common_scripts\utility::array_call( level._bravo, ::delete );
}
fx_snow_windtunnel()
{
level endon( "notify_stop_flare_stack" );
var_0 = 0;
for (;;)
{
if ( common_scripts\utility::flag( "flag_catwalks_windtunnel_fx" ) )
{
if ( var_0 == 0 )
{
common_scripts\utility::exploder( "catwalks_snow_windtunnel" );
var_0 = 1;
}
}
else if ( var_0 == 1 )
{
maps\_utility::stop_exploder( "catwalks_snow_windtunnel" );
maps\_utility::stop_exploder( "catwalks_lights" );
maps\_utility::stop_exploder( "catwalks_snow" );
common_scripts\utility::exploder( "barracks_ambfx" );
var_0 = 0;
}
wait( level.timestep );
}
}
goto_door_breach( var_0, var_1, var_2 )
{
self endon( "death" );
var_3 = self.newenemyreactiondistsq;
var_4 = self.moveplaybackrate;
thread maps\_utility::set_moveplaybackrate( var_1, 0.25 );
self.disablebulletwhizbyreaction = 1;
self.disablefriendlyfirereaction = 1;
self.dodangerreact = 0;
self.dontavoidplayer = 1;
self.disableplayeradsloscheck = 1;
self.ignorerandombulletdamage = 1;
self.ignoresuppression = 1;
self.newenemyreactiondistsq = 0;
thread maps\_utility::follow_path( getnode( var_0, "targetname" ) );
level waittill( var_2 );
self.disablebulletwhizbyreaction = undefined;
self.disablefriendlyfirereaction = undefined;
self.dodangerreact = 1;
self.dontavoidplayer = 0;
self.disableplayeradsloscheck = 0;
self.ignorerandombulletdamage = 0;
self.ignoresuppression = 0;
self.newenemyreactiondistsq = var_3;
maps\_utility::set_moveplaybackrate( var_4 );
}
goto_door_breach_catchup( var_0, var_1 )
{
self endon( "death" );
level endon( "cw_tape_breach_start" );
if ( isstring( var_0 ) )
var_0 = common_scripts\utility::getstruct( var_0, "targetname" );
if ( isdefined( var_1 ) && isstring( var_1 ) )
var_1 = getnode( var_1, "targetname" );
if ( distancesquared( level.player.origin, var_0.origin ) + 90000 < distancesquared( level.player.origin, self.origin ) )
{
while ( maps\_utility::player_can_see_ai( self ) )
wait 0.1;
if ( distancesquared( level.player.origin, var_0.origin ) + 90000 < distancesquared( level.player.origin, self.origin ) )
self teleport( var_0.origin, var_0.angles );
}
if ( isdefined( var_1 ) )
thread maps\_utility::follow_path( var_1 );
}
high_catwalk_kill()
{
common_scripts\utility::flag_wait( "flag_vig_catwalk_kill" );
var_0 = getent( "cw_vignette_catwalk_kill", "targetname" );
var_1 = maps\_utility::spawn_targetname( "cw_opfor_catwalk_kill" );
var_2 = common_scripts\utility::getclosest( var_0.origin, level._allies, 256 );
if ( !isdefined( var_1 ) )
return;
else if ( !isdefined( var_2 ) || common_scripts\utility::flag( "flag_no_catwalk_kill" ) )
{
var_1 delete();
return;
}
var_1.animname = "generic";
var_3 = [ var_2, var_1 ];
var_2 notify( "stop_going_to_node" );
var_2 thread maps\_utility::disable_ai_color();
var_0 maps\_anim::anim_reach_together( var_3, "catwalk_kill" );
var_2 thread maps\black_ice_audio::sfx_catwalk_guy_over_railing();
var_0 maps\_anim::anim_single( var_3, "catwalk_kill" );
if ( !common_scripts\utility::flag( "flag_catwalks_end" ) )
var_2 maps\_utility::enable_ai_color();
var_1 kill();
}
cw_tape_breach()
{
var_0 = getent( "cw_vig_tape_breach", "targetname" );
var_1 = maps\_utility::spawn_anim_model( "tape_breach_tape" );
var_2 = maps\_utility::spawn_anim_model( "tape_breach_door_dam" );
var_0 maps\_anim::anim_first_frame_solo( var_2, "cw_tape_breach" );
var_2 hide();
var_3 = [ level._allies[0], level._allies[1], level.tape_breach_door, var_2, var_1 ];
thread cw_tape_explode( var_1, var_2 );
var_4 = getentarray( "cw_clip_tape_breach_door", "targetname" );
common_scripts\utility::array_call( var_4, ::linkto, var_2, "jnt_door" );
var_0 thread maps\_anim::anim_first_frame_solo( var_1, "cw_tape_breach" );
common_scripts\utility::array_call( level._allies, ::pushplayer, 1 );
level._allies[0] thread goto_door_breach_catchup( "cw_org_tape_breach_ally1", "cw_node_tape_breach_ally1" );
level._allies[1] thread goto_door_breach_catchup( "cw_org_tape_breach_ally2", "cw_node_tape_breach_ally2" );
level._allies[0] thread breach_wait_move( "cw_gps_tape_breach", "cw_node_tape_breach_ally1", "cw_node_tape_breach_ally1_detour" );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_force_cover, 1 );
common_scripts\utility::flag_wait_all( "flag_cw_breach_vo_ready", "flag_tape_breach_ally2" );
var_5 = getent( "cw_gps_tape_breach", "targetname" );
var_6 = getent( "cw_clip_tape_breach", "targetname" );
if ( level.player istouching( var_5 ) )
{
while ( level.player istouching( var_5 ) )
wait 0.05;
var_6 movey( -30, 0.05 );
}
else
var_6 movey( -30, 0.05 );
foreach ( var_8 in level._allies )
{
if ( var_8.origin != var_8.goalpos )
wait 0.05;
}
level notify( "cw_tape_breach_start" );
level thread maps\_utility::notify_delay( "cw_tape_breach_cover", 4 );
thread maps\black_ice_audio::sfx_tape_breach( var_0 );
var_0 maps\_anim::anim_single( var_3, "cw_tape_breach", undefined, 0.1 );
common_scripts\utility::array_call( var_4, ::delete );
var_6 delete();
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_cqbwalk );
common_scripts\utility::array_thread( level._allies, maps\_utility::set_force_cover, 0 );
common_scripts\utility::array_thread( level._allies, maps\_utility::disable_ai_color );
level._allies[0].old_moveplaybackrate = level._allies[0].moveplaybackrate;
level._allies[1].old_moveplaybackrate = level._allies[1].moveplaybackrate;
level._allies[0] thread maps\_utility::follow_path( getnode( "cwb_node_start_ally1", "targetname" ) );
level._allies[0] thread maps\_utility::set_moveplaybackrate( 1.18, 0.6 );
level._allies[1] thread maps\_utility::follow_path( getnode( "cwb_node_start_ally2", "targetname" ) );
level._allies[1] thread maps\_utility::set_moveplaybackrate( 1.16, 0.6 );
wait 1;
}
breach_wait_move( var_0, var_1, var_2, var_3, var_4 )
{
if ( isdefined( var_4 ) )
level endon( var_4 );
if ( isstring( var_0 ) )
var_0 = getent( var_0, "targetname" );
if ( isstring( var_1 ) )
var_1 = getnode( var_1, "targetname" );
if ( isstring( var_2 ) )
var_2 = getnode( var_2, "targetname" );
while ( !common_scripts\utility::flag( var_1.script_flag_set ) )
{
if ( level.player istouching( var_0 ) )
{
maps\_utility::follow_path( var_2 );
thread breach_wait_nag_proc( var_0, var_3 );
while ( level.player istouching( var_0 ) )
wait 0.1;
var_0 notify( "breach_end_detour" );
self setlookatentity();
thread maps\_utility::follow_path( var_1 );
}
wait 0.05;
}
}
breach_wait_nag_proc( var_0, var_1 )
{
var_0 endon( "breach_end_detour" );
if ( !isdefined( var_1 ) )
var_1 = [ "blackice_bkr_muchtime", "blackice_bkr_move" ];
else if ( !isarray( var_1 ) )
var_1 = [ var_1 ];
wait 1.5;
for ( var_2 = 5; level.player istouching( var_0 ); var_2 = var_2 + 2 )
{
self setlookatentity( level.player );
common_scripts\utility::delaycall( 2, ::setlookatentity );
maps\_utility::smart_dialogue( var_1[randomint( var_1.size )] );
wait( var_2 );
}
}
cw_tape_explode( var_0, var_1 )
{
level waittill( "notify_cw_tape_explode" );
cw_tape_explode_player_effect();
var_1 show();
common_scripts\utility::exploder( "catwalk_det_tape" );
common_scripts\utility::exploder( "catwalk_snow_suck" );
wait 0.1;
level.tape_breach_door delete();
var_0 delete();
}
cw_tape_explode_player_effect()
{
var_0 = 14000;
var_1 = distancesquared( level.player.origin, level.tape_breach_door.origin );
if ( var_1 > var_0 )
{
level.player playrumbleonentity( "damage_light" );
earthquake( 0.38, 0.6, level.player.origin, 3000 );
}
else
{
level.player playrumbleonentity( "grenade_rumble" );
earthquake( 0.48, 1.2, level.player.origin, 3000 );
level.player shellshock( "default_nosound", 2 );
level.player viewkick( 10, level.tape_breach_door.origin );
var_2 = 70;
var_3 = 5;
var_4 = maps\black_ice_util::normalize_value( 0, var_0, var_1 );
var_5 = maps\black_ice_util::factor_value_min_max( var_2, var_3, var_4 );
var_6 = vectornormalize( level.player.origin - level.tape_breach_door.origin );
thread maps\black_ice_util::push_player_impulse( var_6, var_5, 0.5 );
}
}
cw_common_breach()
{
level endon( "cw_common_flashed" );
var_0 = getent( "cw_common_door", "targetname" );
var_1 = getent( var_0.target, "targetname" );
var_2 = getent( "cw_use_common_room_breach", "targetname" );
var_2 sethintstring( &"BLACK_ICE_COMMON_BREACH" );
var_2 thread cw_common_breach_trig_proc();
level._allies[1] thread cw_common_breach_nag( var_2 );
for (;;)
{
var_2 waittill( "trigger" );
if ( !level.player isthrowinggrenade() )
{
var_2 notify( "breach_triggered" );
var_2 thread common_scripts\utility::trigger_off();
break;
}
wait 0.05;
}
getent( "cw_gold_common_room_breach", "targetname" ) delete();
thread maps\black_ice_audio::sfx_barracks_breach( var_0 );
thread maps\black_ice_anim::cw_common_breach_player( var_0 );
level waittill( "notify_start_red_light" );
playfxontag( level._effect["breacher_light_red"], level.breach_charge, "tag_red_light" );
level waittill( "notify_start_green_light" );
stopfxontag( level._effect["breacher_light_red"], level.breach_charge, "tag_red_light" );
playfxontag( level._effect["breacher_light_green"], level.breach_charge, "tag_green_light" );
common_scripts\utility::flag_wait( "flag_common_breach_ally_start" );
thread cw_breach_bullets();
wait 0.1;
var_3 = getent( "cw_vig_common_room_breach", "targetname" );
thread maps\black_ice_anim::cw_common_breach_allies();
level waittill( "notify_damage_breacher" );
playfxontag( level._effect["common_breach_damaged_breacher"], level.breach_charge, "tag_damage_fx" );
killfxontag( level._effect["breacher_light_green"], level.breach_charge, "tag_green_light" );
level waittill( "cw_common_door_down" );
common_scripts\utility::exploder( "common_breach_charge" );
common_scripts\utility::exploder( "common_room_ambfx" );
killfxontag( level._effect["common_breach_damaged_breacher"], level.breach_charge, "tag_damage_fx" );
wait 0.15;
maps\_utility::delaythread( 0.0, ::cw_breach_player_effects );
level.breach_charge delete();
var_4 = maps\_utility::spawn_anim_model( "common_door_dam", var_0.origin );
var_3 thread maps\_anim::anim_single_solo( var_4, "explode" );
var_0 delete();
var_1 thread delete_path_clip();
level.player thread common_gps_autokill();
thread cw_breach_flash_protect();
maps\black_ice_util::delay_retreat( "com_opfor", 6, 4, "flag_common_breach_done" );
}
cw_common_breach_trig_proc()
{
self endon( "breach_triggered" );
var_0 = getent( "cw_common_breach_blast_source", "targetname" );
for (;;)
{
if ( !isdefined( self.trigger_off ) && ( level.player isthrowinggrenade() || !level.player maps\_utility::player_looking_at( var_0.origin, 0.9, 1 ) ) )
common_scripts\utility::trigger_off();
else if ( isdefined( self.trigger_off ) && !level.player isthrowinggrenade() && level.player maps\_utility::player_looking_at( var_0.origin, 0.9, 1 ) )
common_scripts\utility::trigger_on();
wait 0.05;
}
}
cw_common_breach_nag( var_0 )
{
var_0 endon( "breach_triggered" );
wait 3;
getent( "cw_gold_common_room_breach", "targetname" ) show();
var_1 = [ "blackice_bkr_illflash", "black_ice_hsh_adamwegottamove" ];
var_2 = 5;
for (;;)
{
maps\_utility::smart_dialogue( var_1[randomint( var_1.size )] );
wait( var_2 );
var_2 = var_2 + 2;
}
}
cw_breach_player_effects()
{
var_0 = getent( "cw_common_breach_blast_source", "targetname" );
var_1 = level.player.origin - var_0.origin;
thread maps\black_ice_util::push_player_impulse( var_1, 0.12, 0.7 );
earthquake( 0.5, 0.75, level.player.origin, 2000 );
level.player shellshock( "blackice_nosound", 1.0 );
level.player playrumbleonentity( "grenade_rumble" );
level.player viewkick( 20, var_0.origin );
}
cw_breach_bullets()
{
level endon( "flag_common_breach_done" );
level waittill( "notify_start_bullets" );
var_0 = getentarray( "cw_bullet_common_ambush", "targetname" );
var_1 = undefined;
var_2 = getentarray( "cw_target_common_ambush", "targetname" );
var_3 = undefined;
var_4 = [ "ak12" ];
for (;;)
{
var_1 = randomint( var_0.size );
var_3 = randomint( var_2.size );
if ( common_scripts\utility::flag( "cw_gps_common_door" ) && randomint( 5 ) == 0 )
magicbullet( var_4[randomint( var_4.size )], var_0[var_1].origin, level.player geteye() );
else
{
if ( !bullettracepassed( var_0[var_1].origin, var_2[var_3].origin, 1, undefined ) )
continue;
magicbullet( var_4[randomint( var_4.size )], var_0[var_1].origin, var_2[var_3].origin );
}
wait( 0.05 * randomintrange( 1, 4 ) );
}
}
cw_breach_flash_protect()
{
level endon( "cw_common_flashed" );
level.player endon( "death" );
var_0 = undefined;
level.player waittill( "grenade_fire", var_0 );
wait 0.5;
var_1 = getent( "cw_vol_common", "targetname" );
if ( isdefined( var_0 ) && var_0 istouching( var_1 ) )
{
common_scripts\utility::array_thread( level._allies, maps\_utility::setflashbangimmunity, 1 );
maps\_utility::delaythread( 1, common_scripts\utility::array_thread, level._allies, maps\_utility::setflashbangimmunity, 0 );
}
}
cw_common_perfect_breach_proc()
{
if ( maps\_utility::get_player_gameskill() < 3 )
return;
common_scripts\utility::waittill_any( "damage", "common_encounter_done" );
if ( common_scripts\utility::flag( "flag_common_cleared" ) )
maps\_utility::player_giveachievement_wrapper( "LEVEL_11B" );
}
common_gps_autokill()
{
level endon( "flag_common_end" );
var_0 = 0;
var_1 = getent( "cw_vol_common", "targetname" );
var_2 = getent( "cw_vol_common_near", "targetname" );
var_3 = getent( "cw_gps_tape_breach", "targetname" );
common_scripts\utility::flag_wait( "flag_common_breach_done" );
for (;;)
{
while ( var_0 < 30 )
{
if ( self istouching( var_1 ) )
var_0 = 0;
else if ( self istouching( var_3 ) )
var_0 = 30;
else if ( !self istouching( var_2 ) )
var_0 = var_0 + 0.05;
wait 0.05;
}
level._allies[0] thread shot_tracker( &"BLACK_ICE_MERRICK_KILLED" );
level._allies[1] thread shot_tracker( &"BLACK_ICE_HESH_KILLED" );
level._allies[randomint( level._allies.size )] thread maps\_utility::notify_delay( "fake_damage", randomfloat( 10 ) );
while ( var_0 > 0 )
{
if ( self istouching( var_2 ) || self istouching( var_1 ) )
{
level notify( "player_inside_common_room" );
var_0 = 0;
}
wait 0.05;
}
}
}
shot_tracker( var_0 )
{
level endon( "flag_common_end" );
level endon( "player_inside_common_room" );
common_scripts\utility::waittill_any( "damage", "fake_damage" );
setdvar( "ui_deadquote", var_0 );
maps\_utility::missionfailedwrapper();
}
setup_spawners()
{
var_0 = getentarray( "cw_vol_falling_area", "targetname" );
level.cw_fall_chance = 1;
maps\_utility::array_spawn_function_noteworthy( "cw_opfor_starting_runners", ::opfor_starting_runners );
maps\_utility::array_spawn_function_noteworthy( "cw_opfor_death_runners", ::opfor_death_runners );
maps\_utility::array_spawn_function_noteworthy( "cw_opfor_low", ::opfor_catwalk_low );
maps\_utility::array_spawn_function_targetname( "cw_opfor_low_balcony", ::opfor_low_balcony );
maps\_utility::array_spawn_function_noteworthy( "cw_opfor_falling", ::opfor_catwalk_falling_death, var_0 );
maps\_utility::array_spawn_function_targetname( "cw_barracks_opfor", ::opfor_barracks );
maps\_utility::array_spawn_function_targetname( "cw_opfor_common_ambush", ::opfor_common_ambush );
setthreatbias( "allies", "cw_low_balcony", 256 );
}
ascend_ignoreme_loop()
{
level endon( "flag_ascend_end" );
for (;;)
{
maps\_utility::set_ignoreme( 0 );
while ( self.health == self.maxhealth )
wait 0.05;
maps\_utility::set_ignoreme( 1 );
while ( self.health < self.maxhealth )
wait 0.1;
}
}
opfor_starting_runners()
{
self endon( "death" );
maps\_utility::set_ignoreall( 1 );
self waittill( "goal" );
maps\_utility::set_ignoreall( 0 );
}
opfor_death_runners()
{
self endon( "death" );
maps\_utility::set_ignoreall( 1 );
self waittill( "goal" );
self delete();
}
opfor_catwalk_low()
{
self endon( "death" );
common_scripts\utility::flag_wait( "flag_low_retreat" );
if ( !common_scripts\utility::flag( "flag_low_runaway" ) )
thread maps\_utility::follow_path( getnode( "cw_node_low_cover_retreat", "targetname" ) );
common_scripts\utility::flag_wait( "flag_low_runaway" );
maps\_utility::set_ignoresuppression( 1 );
thread maps\_utility::follow_path( getnode( "cw_node_low_cover_runaway", "targetname" ) );
maps\_utility::delaythread( 5, maps\_utility::set_ignoresuppression, 0 );
}
opfor_low_balcony()
{
self endon( "death" );
maps\_utility::set_ignoreall( 1 );
self waittill( "goal" );
maps\_utility::set_ignoreall( 0 );
common_scripts\utility::flag_wait( "flag_low_runaway" );
maps\_utility::follow_path( getnode( "cw_node_mid_runners_end", "targetname" ) );
self delete();
}
opfor_catwalk_falling_death( var_0 )
{
self waittill( "death" );
var_1 = 1;
if ( self.movemode != "stop" || !isdefined( self.a.covermode ) || self.a.covermode != "stand" )
return;
foreach ( var_3 in var_0 )
{
if ( self istouching( var_3 ) )
{
var_1 = 0;
break;
}
}
if ( var_1 )
return;
if ( randomint( level.cw_fall_chance ) == 0 )
{
var_5 = randomint( level.scr_anim["generic"]["cw_falling_death"].size );
self.deathanim = level.scr_anim["generic"]["cw_falling_death"][var_5];
level.cw_fall_chance = level.cw_fall_chance + 4;
}
}
opfor_barracks()
{
self endon( "death" );
level maps\_utility::waittillthread( "cw_hallsweep_ally2_attack", maps\_utility::magic_bullet_shield, 1 );
common_scripts\utility::flag_wait( "flag_barracks_go_fast" );
self.newenemyreactiondistsq = 0;
maps\_utility::set_fixednode_false();
self.goalradius = 150;
wait 1;
self setgoalentity( level.player );
}
opfor_common_ambush()
{
self endon( "death" );
maps\_utility::set_ignoreall( 1 );
maps\_utility::set_ignoreme( 1 );
level waittill( "notify_start_bullets" );
thread common_flash_check();
thread random_flash();
maps\_utility::set_ignoreall( 0 );
maps\_utility::set_ignoresuppression( 1 );
var_0 = getentarray( "cw_target_common_ambush", "targetname" );
self setentitytarget( var_0[randomint( var_0.size )] );
while ( !common_scripts\utility::flag( "flag_common_breach_done" ) )
{
self setentitytarget( var_0[randomint( var_0.size )] );
wait 0.3;
}
maps\_utility::set_ignoreme( 0 );
wait( randomfloat( 0.5 ) );
self clearentitytarget();
wait 1.5;
maps\_utility::set_ignoresuppression( 0 );
}
common_flash_check()
{
self endon( "death" );
level endon( "cw_common_flashed" );
for (;;)
{
if ( common_scripts\utility::isflashed() )
{
common_scripts\utility::flag_set( "flag_common_breach_done" );
level notify( "cw_common_flashed" );
}
wait 0.05;
}
}
random_flash()
{
self endon( "death" );
level waittill( "cw_common_flashed" );
if ( isdefined( self.script_parameters ) )
{
self allowedstances( "stand" );
maps\_utility::set_allowdeath( 1 );
maps\_anim::anim_generic( self, self.script_parameters );
self allowedstances( "stand", "crouch" );
}
else if ( randomint( 2 ) == 0 )
maps\_utility::flashbangstart( randomfloatrange( 4.0, 5.0 ) );
}
catwalk_godrays()
{
var_0 = getent( "origin_flarestack_fx", "targetname" );
if ( maps\_utility::is_gen4() )
maps\black_ice_util::god_rays_from_world_location( var_0.origin, "flag_cw_bravo_breach_1", "flag_catwalks_end", undefined, undefined );
}
cw_barracks_fast_trig_proc( var_0 )
{
level endon( "cw_hallsweep_ally2_attack" );
level endon( "flag_barracks_go_fast" );
var_0 endon( "trigger" );
var_1 = getent( "cw_barracks_dist_org", "targetname" );
var_1 = var_1.origin;
var_2 = [ level.player, level._allies[0], level._allies[1] ];
for (;;)
{
var_3 = common_scripts\utility::getclosest( var_1, var_2, 384 );
if ( isdefined( var_3 ) && isplayer( var_3 ) )
{
common_scripts\utility::flag_set( "flag_barracks_go_fast" );
return;
}
wait 0.1;
}
}
cw_barracks_fast_shoot_proc()
{
level endon( "cw_hallsweep_ally2_attack" );
level endon( "flag_barracks_go_fast" );
level.player common_scripts\utility::waittill_any( "weapon_fired", "grenade_fire" );
common_scripts\utility::flag_set( "flag_barracks_go_fast" );
}
delete_path_clip()
{
self movez( -10000, 0.05 );
wait 0.05;
self connectpaths();
self delete();
}
anim_reach_play( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
{
if ( !isarray( var_0 ) )
var_0 = [ var_0 ];
var_0[0] notify( "anim_reach_play" );
var_0[0] endon( "anim_reach_play" );
if ( isdefined( var_5 ) && !isdefined( var_3 ) )
var_3 = 0.1;
maps\_utility::anim_stopanimscripted();
if ( !isdefined( var_6 ) || !var_6 )
maps\_anim::anim_reach( var_0, var_1, var_2, var_4 );
maps\_anim::anim_single( var_0, var_1, var_2, var_3, var_4 );
if ( isdefined( var_5 ) )
var_0[0] maps\_utility::follow_path( var_5 );
}
trig_enable_cqb()
{
level endon( "turn_off_cw_cqb_trigs" );
for (;;)
{
self waittill( "trigger", var_0 );
var_0 thread maps\_utility::enable_cqbwalk();
}
}
trig_disable_cqb()
{
level endon( "turn_off_cw_cqb_trigs" );
for (;;)
{
self waittill( "trigger", var_0 );
var_0 thread maps\_utility::disable_cqbwalk();
}
}
tv_watcher()
{
var_0 = getentarray( "blackice_tv", "script_noteworthy" );
var_1 = getent( "light_barracks_tv", "script_noteworthy" );
foreach ( var_3 in var_0 )
{
if ( var_3.origin == ( -1605, 5480, 1885.5 ) )
{
var_3 waittill( "destroyed" );
var_1 setlightcolor( ( 0.01, 0.01, 0.01 ) );
var_1 setlightradius( 12 );
continue;
}
}
}