// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool start_outside() { iprintln( "Command_Outside" ); common_scripts\utility::flag_set( "flag_fire_damage_on" ); common_scripts\utility::flag_set( "flag_fx_screen_bokehdots_rain" ); maps\black_ice_fx::fx_command_interior_on(); maps\black_ice_util::player_start( "player_start_command_outside" ); thread maps\black_ice_refinery::util_show_destroyed_derrick(); var_0 = [ "struct_ally_start_command_outside_01", "struct_ally_start_command_outside_02" ]; level._allies maps\black_ice_util::teleport_allies( var_0 ); maps\_utility::activate_trigger_with_targetname( "trig_derrick_ally_7" ); var_1 = getglassarray( "glass_command_center" ); foreach ( var_3 in var_1 ) destroyglass( var_3 ); thread maps\black_ice_refinery::util_refinery_stack_cleanup(); thread command_godrays(); thread shrink_pdeck_lights(); maps\black_ice_fx::pipe_deck_water_suppression_fx(); maps\black_ice_pipe_deck::fx_command_snow(); maps\black_ice_fx::fx_command_interior_on(); } start_inside() { iprintln( "Command_Inside" ); maps\black_ice_util::player_start( "player_start_command" ); thread maps\black_ice_refinery::util_show_destroyed_derrick(); maps\black_ice_fx::fx_command_interior_on(); var_0 = [ "struct_ally_start_command_01", "struct_ally_start_command_02" ]; level._allies maps\black_ice_util::teleport_allies( var_0 ); var_1 = getglassarray( "glass_command_center" ); foreach ( var_3 in var_1 ) destroyglass( var_3 ); thread maps\black_ice_refinery::util_refinery_stack_cleanup(); thread command_godrays(); thread shrink_pdeck_lights(); maps\black_ice_fx::pipe_deck_water_suppression_fx(); maps\black_ice_pipe_deck::fx_command_snow(); } main() { maps\_utility::battlechatter_off( "allies" ); maps\_utility::battlechatter_off( "axis" ); common_scripts\utility::exploder( "command_console_baker" ); enemy_init(); var_0 = level._command.door_out; thread command_geyser_light(); thread allies(); thread player_disable_suppression_sequence(); thread dialog_baker_start(); thread command_light_change(); thread set_command_dof(); thread door_close(); thread maps\black_ice_audio::sfx_blackice_cmd_fire(); var_1 = getent( "trig_flag_command_done", "targetname" ); var_1 common_scripts\utility::trigger_off(); common_scripts\utility::exploder( "command_center_flashing_button" ); maps\black_ice_util::waittill_trigger_activate_looking_at( level._command.player_enemy, "hint_command_button_press" ); disable_player(); thread maps\black_ice_audio::sfx_plr_cmd_console(); maps\_utility::stop_exploder( "command_center_flashing_button" ); common_scripts\utility::flag_clear( "flag_fire_damage_on" ); common_scripts\utility::flag_set( "flag_player_start_sequence" ); thread enable_audio_feedback(); level waittill( "flag_start_lights" ); var_0 thread maps\black_ice_util::open_door( 90, 1 ); wait 1; common_scripts\utility::flag_wait( "flag_command_done" ); } section_flag_inits() { common_scripts\utility::flag_init( "flag_control_sequence_over" ); common_scripts\utility::flag_init( "flag_command_start" ); common_scripts\utility::flag_init( "flag_objective_fire_supression" ); common_scripts\utility::flag_init( "flag_player_start_sequence" ); common_scripts\utility::flag_init( "flag_command_fail_late" ); common_scripts\utility::flag_init( "flag_command_done" ); common_scripts\utility::flag_init( "flag_command_baker_console_anim" ); common_scripts\utility::flag_init( "flag_player_started_input" ); common_scripts\utility::flag_init( "flag_player_out_of_red" ); common_scripts\utility::flag_init( "flag_player_held_green" ); common_scripts\utility::flag_init( "flag_start_control_monitor_fx" ); common_scripts\utility::flag_init( "flag_player_failed_control" ); common_scripts\utility::flag_init( "flag_player_control_success" ); common_scripts\utility::flag_init( "flag_baker_instructing" ); common_scripts\utility::flag_init( "flag_start_lights" ); common_scripts\utility::flag_init( "flag_blowup_pipes" ); common_scripts\utility::flag_init( "flag_audio_feedback" ); } section_precache() { maps\_utility::add_hint_string( "pull_lever", &"BLACK_ICE_COMMAND_PULL_LEVER", ::hint_pull_lever ); maps\_utility::add_hint_string( "pull_lever_reverse", &"BLACK_ICE_COMMAND_PULL_LEVER_REVERSE", ::hint_pull_lever ); maps\_utility::add_hint_string( "pull_lever_no_glyph", &"BLACK_ICE_COMMAND_PULL_LEVER_NO_GLYPH", ::hint_pull_lever ); maps\_utility::add_hint_string( "pull_lever_no_glyph_reverse", &"BLACK_ICE_COMMAND_PULL_LEVER_NO_GLYPH_REVERSE", ::hint_pull_lever ); maps\_utility::add_hint_string( "pull_lever_pc", &"BLACK_ICE_COMMAND_PULL_LEVER_PC", ::hint_pull_lever ); maps\_utility::add_hint_string( "hint_command_button_press", &"BLACK_ICE_COMMAND_USE_CONSOLE", ::hint_button_press ); precachestring( &"BLACK_ICE_COMMAND_USE_CONSOLE" ); precachestring( &"BLACK_ICE_COMMAND_FAIL_EARLY" ); precachestring( &"BLACK_ICE_COMMAND_FAIL_LATE" ); precacherumble( "steady_rumble" ); precachemodel( "head_merrick_udt_head_c" ); } hint_pull_lever() { return 0 || common_scripts\utility::flag( "flag_player_started_input" ) || common_scripts\utility::flag( "flag_player_out_of_red" ) || common_scripts\utility::flag( "flag_player_dying_on_rig" ); } hint_button_press() { return !common_scripts\utility::flag( "hint_command_button_press" ); } section_post_inits() { level._command = spawnstruct(); level.player_lever_control_sensitivity = 0.033; level.bar_drift_rate = 0.0; level.player_lever_input = -0.0036; level.water_supression_level = 1; level.color_status = 0; level._command.player_struct = common_scripts\utility::getstruct( "struct_command_player", "targetname" ); level._command.baker_struct = common_scripts\utility::getstruct( "struct_command_baker", "targetname" ); if ( isdefined( level._command.player_struct ) ) { level._command.baker_enter_struct = common_scripts\utility::getstruct( "vignette_controlroom_enter", "script_noteworthy" ); level._command.door_in = maps\black_ice_util::setup_door( "model_command_door_in", "blackice_door_refinery" ); level._command.door_out = maps\black_ice_util::setup_door( "model_command_door_out", "blackice_door_refinery" ); level._command.baker_enter_struct maps\_anim::anim_first_frame_solo( level._command.door_in, "command_enter" ); } else iprintln( "black_ice_command.gsc: Warning - Command player struct missing (compiled out?)" ); } enable_audio_feedback() { wait 5; common_scripts\utility::flag_set( "flag_audio_feedback" ); } dialog_baker_start() { level endon( "flag_player_start_sequence" ); level endon( "flag_command_fail_late" ); wait 0.5; level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_keeganwereaboutto" ); wait 1.2; level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_ineedyouto" ); common_scripts\utility::flag_wait( "flag_command_start" ); level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_takeoverthatconsole" ); common_scripts\utility::flag_set( "flag_objective_fire_supression" ); wait 4.0; level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_rookgetthatguy" ); wait 5.0; level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_nowrookgetto" ); var_0 = 0; var_1 = 6; var_2 = [ "black_ice_bkr_nowrookgetto", "black_ice_bkr_takeoverthatconsole", "black_ice_bkr_rookgetthatguy" ]; for (;;) { wait( var_1 ); level._allies[0] maps\_utility::smart_dialogue( var_2[var_0] ); if ( var_1 < 30 ) var_1 = var_1 + 3; var_0 = var_0 + 1; if ( var_0 == var_2.size ) var_0 = 0; } } dialog_baker_success() { level endon( "flag_command_fail_late" ); level waittill( "notify_dialog_command_end" ); thread maps\black_ice_audio::blackice_exfil_music(); } door_close() { var_0 = level._command.door_in; if ( level.start_point != "command_inside" ) maps\black_ice_util::waittill_trigger_ent_targetname( "trig_command_ally", level._allies ); common_scripts\utility::flag_wait( "flag_command_start" ); common_scripts\utility::flag_wait( "flag_player_start_sequence" ); if ( level.start_point != "command_inside" ) var_0 maps\black_ice_util::close_door( undefined, 0.6 ); maps\_utility::activate_trigger_with_targetname( "trig_command_ally2_position" ); cleanup_pipedeck(); maps\black_ice_refinery::util_debris_remove(); thread event_pipe_explosions(); } cleanup_pipedeck() { level notify( "notify_stop_pipedeckfx" ); } allies() { level._allies[0] = level._allies[0]; var_0 = level._command.baker_enter_struct; var_1 = level._command.baker_struct; var_2 = level._command.door_in; common_scripts\utility::array_call( level._allies, ::pushplayer, 1 ); if ( level.start_point != "command_inside" ) { var_0 maps\_anim::anim_reach_solo( level._allies[0], "command_enter_approach" ); var_0 maps\_anim::anim_single_solo( level._allies[0], "command_enter_approach" ); level._allies[0] maps\black_ice_util::cover_left_idle(); while ( !level.player maps\_utility::player_looking_at( level._allies[0].origin, 0.5 ) ) wait 0.05; level._allies[0] notify( "stop_loop" ); level._allies[0] thread maps\black_ice_audio::sfx_command_center_door_open(); var_2.col_brush connectpaths(); var_0 maps\_anim::anim_single( [ level._allies[0], var_2 ], "command_enter" ); } maps\_utility::activate_trigger_with_targetname( "trig_command_ally_enter" ); var_1 maps\_anim::anim_reach_solo( level._allies[0], "command_init" ); var_1 thread maps\black_ice_vignette::vignette_single_solo( level._allies[0], "command_init", "command_loop" ); level waittill( "notify_baker_push_opfor" ); thread enemies_scene( var_1 ); level waittill( "notify_player_end_sequence" ); level._allies[0] maps\black_ice_util::unignore_everything(); level._allies[0] maps\_utility::set_run_anim( "DRS_sprint" ); level._allies[0] maps\_utility::enable_ai_color(); } enemy_init() { var_0 = level._command.baker_struct; var_1 = level._command.player_struct; var_2 = build_human_model( "command_enemy_1", "head_oil_worker_a" ); var_3 = build_human_model( "command_enemy_2", "head_oil_worker_c" ); var_4 = maps\_utility::spawn_anim_model( "command_opfor1_chair", level._command.baker_struct.origin ); level._command.baker_enemy = var_2; level._command.player_enemy = var_3; level._command.enemy_chair = var_4; var_0 maps\_anim::anim_first_frame_solo( var_2, "command_start" ); var_1 maps\_anim::anim_first_frame_solo( var_3, "command_start" ); var_0 maps\_anim::anim_first_frame_solo( var_4, "command_start" ); } build_human_model( var_0, var_1 ) { var_2 = maps\_utility::spawn_anim_model( var_0 ); var_2 attach( var_1 ); return var_2; } enemies_scene( var_0 ) { var_1 = level._command.baker_enemy; var_0 thread maps\_anim::anim_single_solo( var_1, "command_start" ); var_2 = level._command.enemy_chair; var_0 thread maps\_anim::anim_single_solo( var_2, "command_start" ); thread maps\black_ice_audio::sfx_baker_move_body_chair( var_2 ); } command_fail_late_death() { level waittill( "notify_blast_kill_player" ); common_scripts\utility::flag_set( "flag_player_dying_on_rig" ); maps\_utility::vision_set_fog_changes( "black_ice_exfil_explosive_death", 0.5 ); earthquake( 0.5, 0.5, level.player.origin, 2048 ); level.player playrumbleonentity( "damage_heavy" ); common_scripts\utility::exploder( "exfil_pull_early_explosion" ); thread maps\black_ice_audio::sfx_blackice_tanks_dist_explo(); level.player thread maps\_gameskill::blood_splat_on_screen( "left" ); level.player thread maps\_gameskill::blood_splat_on_screen( "right" ); level.player thread maps\_gameskill::blood_splat_on_screen( "bottom" ); setdvar( "ui_deadquote", &"BLACK_ICE_COMMAND_FAIL_LATE" ); wait 1.0; maps\_utility::missionfailedwrapper(); wait 10; } player_disable_suppression_sequence() { var_0 = level._command.player_struct; var_1 = level._command.baker_struct; var_2 = maps\_utility::spawn_anim_model( "player_rig", level.player.origin ); var_0 maps\_anim::anim_first_frame_solo( var_2, "command_start" ); var_2 hide(); var_3 = getentarray( "command_shutoff_button", "targetname" ); var_4 = getentarray( "command_lever_baker", "targetname" ); var_5 = getentarray( "command_monitor_baker", "targetname" ); var_6 = getentarray( "command_lever_player", "targetname" ); var_7 = var_6[0]; var_8 = getentarray( "command_monitor_player", "targetname" ); foreach ( var_10 in var_3 ) { var_10 maps\_utility::assign_animtree( "command_shutoff_button" ); var_10 maps\_anim::anim_first_frame_solo( var_10, "command_shutoff_button" ); } foreach ( var_13 in var_4 ) { var_13 maps\_utility::assign_animtree( "command_lever" ); var_13 maps\_anim::anim_first_frame_solo( var_13, "command_baker_end" ); } var_7 maps\_utility::assign_animtree( "command_lever" ); var_7 thread maps\_anim::anim_single_solo( var_7, "command_player_control" ); maps\_anim::anim_set_rate_single( var_7, "command_player_control", 0.0 ); var_7 setanimtime( level.scr_anim["command_lever"]["command_player_control"], 0.5 ); foreach ( var_16 in var_5 ) { var_16 maps\_utility::assign_animtree( "command_monitor" ); var_16 maps\_anim::anim_first_frame_solo( var_16, "command_monitor_baker" ); } foreach ( var_16 in var_8 ) { var_16 maps\_utility::assign_animtree( "command_monitor" ); var_16 maps\_anim::anim_first_frame_solo( var_16, "command_monitor_player" ); } level waittill( "flag_player_start_sequence" ); thread smooth_player_link( var_2, 0.5 ); var_20 = level._command.player_enemy; var_0 thread maps\_anim::anim_single_solo( var_20, "command_start" ); thread allies_baker_console_anims( var_1, var_2 ); thread player_input_console_animate( var_0, var_2, var_7 ); foreach ( var_10 in var_3 ) var_10 thread maps\_anim::anim_single_solo( var_10, "command_shutoff_button" ); foreach ( var_16 in var_5 ) var_16 thread maps\_anim::anim_single_solo( var_16, "command_monitor_baker" ); var_25 = 0; foreach ( var_16 in var_8 ) { if ( var_25 == 0 ) { var_16 thread maps\_anim::anim_single_solo( var_16, "command_monitor_player" ); thread monitor_controls_and_fx( var_16 ); } var_25 = var_25 + 1; } thread player_view_manager(); thread water_shutdown_exploder_manager(); thread dim_overhead_light(); player_control_sequence(); if ( common_scripts\utility::flag( "flag_command_fail_late" ) ) { common_scripts\utility::flag_set( "flag_start_lights" ); thread maps\black_ice_audio::sfx_blackice_console_fail_explo(); var_1 thread maps\_anim::anim_single_solo( level._allies[0], "command_late" ); foreach ( var_13 in var_4 ) var_13 thread maps\_anim::anim_single_solo( var_13, "command_baker_late" ); level.player lerpviewangleclamp( 2.0, 0, 0, 0, 0, 0, 0 ); wait 2; common_scripts\utility::flag_set( "flag_control_sequence_over" ); var_0 thread maps\_anim::anim_single_solo( var_2, "command_late" ); var_7 thread maps\_anim::anim_single_solo( var_7, "command_player_late" ); var_30 = var_2 maps\_utility::getanim( "command_late" ); var_31 = var_7 maps\_utility::getanim( "command_player_late" ); var_32 = level._allies[0] getanimtime( level.scr_anim["ally1"]["command_late"] ); var_2 setanimtime( var_30, var_32 ); var_7 setanimtime( var_31, var_32 ); command_fail_late_death(); } else { var_33 = 2.8; level.water_supression_level = 0; thread dialog_baker_success(); thread explosions_success( var_33 ); thread sucess_swelling_rumble( var_33, 0.4, 0.3 ); level._allies[0] thread allies_baker_command_end_anim( var_1 ); if ( maps\_utility::is_gen4() && !level.ps4 ) setsaveddvar( "r_mbEnable", 2 ); common_scripts\utility::flag_set( "flag_start_lights" ); foreach ( var_16 in var_5 ) var_16 thread maps\_anim::anim_single_solo( var_16, "command_monitor_baker_end" ); foreach ( var_16 in var_8 ) var_16 thread maps\_anim::anim_single_solo( var_16, "command_monitor_player_end" ); foreach ( var_13 in var_4 ) var_13 thread maps\_anim::anim_single_solo( var_13, "command_baker_end" ); common_scripts\utility::flag_set( "flag_control_sequence_over" ); thread maps\black_ice_audio::sfx_cmd_seq_end(); if ( getdvarint( "bi_command_pressure_trial", 0 ) <= 1 ) level.player maps\_utility::player_giveachievement_wrapper( "LEVEL_11A" ); level._command.enemy_chair delete(); level.player springcamdisabled( 0.5 ); var_7 thread maps\_anim::anim_single_solo( var_7, "command_player_end" ); var_0 maps\_anim::anim_single_solo( var_2, "command_end" ); setsaveddvar( "g_speed", 100 ); } level.player unlink(); level.player enableweapons(); level.player enableoffhandweapons(); level.player enableweaponswitch(); level.player allowcrouch( 1 ); level.player allowprone( 1 ); level.player allowmelee( 1 ); var_2 delete(); level notify( "notify_player_end_sequence" ); common_scripts\utility::flag_set( "flag_command_done" ); } disable_player() { level.player disableweapons(); level.player disableoffhandweapons(); level.player disableweaponswitch(); level.player allowcrouch( 0 ); level.player allowprone( 0 ); level.player allowmelee( 0 ); if ( issubstr( level.player getcurrentweapon(), "panzerfaust" ) ) wait 0.75; } player_control_sequence() { level endon( "flag_player_failed_control" ); level waittill( "notify_start_player_control" ); var_0 = getdvarint( "bi_command_pressure_trial", 0 ); setdvar( "bi_command_pressure_trial", var_0 + 1 ); thread display_lever_hint(); thread player_control_baker_nag_and_fail(); level notify( "notify_player_start_input_test" ); while ( !common_scripts\utility::flag( "flag_player_started_input" ) ) wait( level.timestep ); check_hold_bar_in_green(); common_scripts\utility::flag_set( "flag_player_held_green" ); while ( common_scripts\utility::flag( "flag_baker_instructing" ) ) wait( level.timestep ); level notify( "notify_start_control_minigame" ); thread explosion_progression_control_sequence(); thread check_hold_bar_in_green_or_die(); thread player_control_increase_difficulty(); wait 12.9; } check_hold_bar_in_green() { common_scripts\utility::flag_clear( "flag_player_started_input" ); var_0 = 2.0; var_1 = var_0; var_2 = 0; var_3 = 1; var_4 = var_3; for (;;) { if ( level.color_status == 0 ) { var_1 = var_1 - level.timestep; if ( var_1 < 0.0 ) break; } else var_1 = var_0; if ( level.color_status == 2 ) { var_4 = var_4 - level.timestep; if ( var_2 == 0 && var_4 < 0.0 ) { common_scripts\utility::flag_clear( "flag_player_out_of_red" ); thread display_lever_hint(); var_2 = 1; } } else { var_4 = var_3; var_2 = 0; common_scripts\utility::flag_set( "flag_player_out_of_red" ); } wait( level.timestep ); } } display_lever_hint() { maps\_utility::set_console_status(); var_0 = getsticksconfig(); if ( isdefined( level.ps3 ) && level.ps3 || isdefined( level.ps4 ) && level.ps4 ) { if ( var_0 == "thumbstick_southpaw" || var_0 == "thumbstick_legacysouthpaw" ) maps\_utility::display_hint( "pull_lever_no_glyph_reverse" ); else maps\_utility::display_hint( "pull_lever_no_glyph" ); } else if ( level.console || level.player usinggamepad() ) { if ( var_0 == "thumbstick_southpaw" || var_0 == "thumbstick_legacysouthpaw" ) maps\_utility::display_hint( "pull_lever_reverse" ); else maps\_utility::display_hint( "pull_lever" ); } else maps\_utility::display_hint( "pull_lever_pc" ); } check_hold_bar_in_green_or_die() { level endon( "flag_start_lights" ); var_0 = 0; var_1 = 0.55; var_2 = var_1; for (;;) { if ( level.color_status == 2 ) { var_2 = var_2 - level.timestep; if ( var_2 < 0.0 ) break; } else var_2 = var_1; wait( level.timestep ); } common_scripts\utility::flag_set( "flag_player_failed_control" ); common_scripts\utility::flag_set( "flag_command_fail_late" ); } player_control_increase_difficulty() { var_0 = 10; var_1 = var_0; var_2 = 0.0045; var_3 = 0.025; while ( var_1 > 0.0 ) { var_4 = maps\black_ice_util::normalize_value( 0, var_0, var_1 ); var_5 = maps\black_ice_util::factor_value_min_max( var_3, var_2, var_4 ); level.bar_drift_rate = var_5; var_1 = var_1 - level.timestep; wait( level.timestep ); } } dialog_baker_player_control() { level endon( "flag_command_fail_late" ); level._allies[0] thread maps\_utility::smart_radio_dialogue( "black_ice_bkr_rookthefiresression" ); wait 5.95; level._allies[0] thread maps\_utility::smart_radio_dialogue( "black_ice_bkr_supressionsdownlets" ); wait 4.2; level._allies[0] thread maps\_utility::smart_radio_dialogue( "black_ice_bkr_ready321now" ); wait 2.0; level._allies[0] thread maps\_utility::smart_radio_dialogue( "black_ice_bkr_rookpullthelever" ); wait 2.2; } player_control_baker_nag_and_fail() { level endon( "notify_start_control_minigame" ); level waittill( "ps_black_ice_mrk_keepusoutof" ); wait 0.1; wait_while_color_status_in_green(); common_scripts\utility::flag_set( "flag_player_failed_control" ); common_scripts\utility::flag_set( "flag_command_fail_late" ); } wait_while_color_status_in_green() { while ( level.color_status == 0 ) wait( level.timestep ); } dialog_line_with_flag( var_0, var_1, var_2 ) { common_scripts\utility::flag_set( "flag_baker_instructing" ); thread maps\black_ice_util::temp_dialogue_line( var_0, var_1, var_2 ); wait( var_2 ); common_scripts\utility::flag_clear( "flag_baker_instructing" ); } allies_baker_command_end_anim( var_0 ) { var_0 maps\_anim::anim_single_solo( self, "command_end", undefined, 0.6 ); self notify( "notify_command_end_done" ); } player_input_console_animate( var_0, var_1, var_2 ) { var_3 = 0.085; var_4 = 0.26; var_5 = 0.072; var_6 = 0.6; var_7 = 0.5; var_8 = 1; var_9 = 0.6; var_10 = 0.5; var_11 = []; level endon( "flag_control_sequence_over" ); var_0 maps\_anim::anim_single_solo( var_1, "command_start" ); level notify( "notify_start_player_control" ); var_0 thread maps\_anim::anim_single_solo( var_1, "command_control" ); maps\_anim::anim_set_rate_single( var_1, "command_control", 0.0 ); var_1 setanimtime( level.scr_anim["player_rig"]["command_control"], 0.5 ); level waittill( "notify_player_start_input_test" ); for (;;) { var_11 = level.player getnormalizedmovement(); var_12 = var_11[0] * var_5; if ( var_8 == 1 ) { if ( abs( var_11[0] ) > 0.2 ) { var_8 = 0; common_scripts\utility::flag_set( "flag_player_started_input" ); } } else { var_10 = maps\black_ice_util::normalize_value( -1, 1, var_11[0] ); var_9 = var_10; } var_7 = lerp_value( var_7, var_10, var_4 ); var_6 = lerp_value( var_6, var_9, var_3 ); var_1 setanimtime( level.scr_anim["player_rig"]["command_control"], 1 - var_7 ); var_2 setanimtime( level.scr_anim["command_lever"]["command_player_control"], 1 - var_7 ); broadcast_player_input( 1 - var_6 ); wait( level.timestep ); } } dialog_baker_init_control() { wait 5; level._allies[0] maps\_utility::smart_radio_dialogue( "black_ice_bkr_shutdownthefire" ); } freeze_input_until_player_pulls() { for (;;) { var_0 = level.player getnormalizedmovement(); if ( var_0[0] < -0.2 ) break; wait( level.timestep ); } common_scripts\utility::flag_set( "flag_player_started_input" ); } broadcast_player_input( var_0 ) { if ( var_0 > 0.5 ) { var_1 = maps\black_ice_util::normalize_value( 0.5, 1.0, var_0 ); var_2 = maps\black_ice_util::factor_value_min_max( 0, level.player_lever_control_sensitivity, var_1 ); } else { var_1 = maps\black_ice_util::normalize_value( 0.0, 0.5, var_0 ); var_2 = maps\black_ice_util::factor_value_min_max( level.player_lever_control_sensitivity, 0, var_1 ); var_2 = 0 - var_2; } level.player_lever_input = var_2; } monitor_controls_and_fx( var_0 ) { playfxontag( common_scripts\utility::getfx( "console_command_start" ), var_0, "tag_fx_screen" ); thread start_timed_monitor_fx( var_0 ); var_1 = 0.031; var_2 = 0; var_3 = 0; var_4 = 0; var_5 = 0; var_6 = [ 0.0, 0.0, 0.0 ]; var_7 = [ 0.0, 0.0, 0.0 ]; var_8 = [ 0.0, 0.0, 0.0 ]; var_9 = [ 0.0, 0, 0.0 ]; var_10 = 0.65; var_11 = maps\_utility::spawn_anim_model( "command_monitor_fx_green", var_0 gettagorigin( "j_monitor" ) ); var_12 = maps\_utility::spawn_anim_model( "command_monitor_fx_yellow", var_0 gettagorigin( "j_monitor" ) ); var_13 = maps\_utility::spawn_anim_model( "command_monitor_fx_red", var_0 gettagorigin( "j_monitor" ) ); var_12 hide(); var_13 hide(); level.monitor_fx = [ var_11, var_12, var_13 ]; foreach ( var_15 in level.monitor_fx ) { var_15 linkto( var_0, "j_monitor" ); var_15 setanim( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_1"], 1, 0.0, 0.0 ); var_15 setanim( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_2"], 1, 0.0, 0.0 ); var_15 setanim( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_3"], 1, 0.0, 0.0 ); } while ( !common_scripts\utility::flag( "flag_control_sequence_over" ) ) { var_9 = monitor_bar_drift( var_9 ); var_6 = monitor_bar_noise( var_6, var_1 ); var_7 = monitor_bar_noise( var_7, var_1 ); var_8 = monitor_bar_noise( var_8, var_1 ); var_10 = var_10 + level.player_lever_input; var_10 = var_10 + var_9[0]; var_10 = cap_range( var_10, var_1, 1 - var_1 ); foreach ( var_15 in level.monitor_fx ) { var_15 setanimtime( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_1"], var_10 + var_6[2] ); var_15 setanimtime( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_2"], var_10 + var_7[2] ); var_15 setanimtime( level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_3"], var_10 + var_8[2] ); } var_3 = monitor_color_status( var_3, var_10 ); if ( var_10 < 0.5 ) var_19 = 1; else var_19 = 0; if ( common_scripts\utility::flag( "flag_player_failed_control" ) ) { if ( !var_5 ) { if ( var_19 ) { killfxontag( common_scripts\utility::getfx( "console_command_green_d" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_red_u" ), var_0, "tag_fx_screen" ); } else { killfxontag( common_scripts\utility::getfx( "console_command_green_u" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_red_d" ), var_0, "tag_fx_screen" ); } wait( level.timestep ); killfxontag( common_scripts\utility::getfx( "console_command_start" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_timer" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_fail" ), var_0, "tag_fx_screen" ); var_11 hide(); var_12 hide(); var_13 show(); var_5 = 1; } } else if ( !( var_3 == var_4 ) ) { switch ( var_3 ) { case 0: var_11 show(); var_12 hide(); var_13 hide(); if ( common_scripts\utility::flag( "flag_start_control_monitor_fx" ) ) { if ( var_19 ) { playfxontag( common_scripts\utility::getfx( "console_command_green_u" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_yellow_u" ), var_0, "tag_fx_screen" ); } else { playfxontag( common_scripts\utility::getfx( "console_command_green_d" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_yellow_d" ), var_0, "tag_fx_screen" ); } } var_2 = 0; level.color_status = 0; break; case 1: var_11 hide(); var_12 show(); var_13 hide(); if ( common_scripts\utility::flag( "flag_start_control_monitor_fx" ) ) { if ( var_19 ) { playfxontag( common_scripts\utility::getfx( "console_command_yellow_u" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_red_u" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_green_u" ), var_0, "tag_fx_screen" ); } else { playfxontag( common_scripts\utility::getfx( "console_command_yellow_d" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_red_d" ), var_0, "tag_fx_screen" ); stopfxontag( common_scripts\utility::getfx( "console_command_green_d" ), var_0, "tag_fx_screen" ); } } var_2 = 1; level.color_status = 1; break; case 2: var_11 hide(); var_12 hide(); var_13 show(); if ( common_scripts\utility::flag( "flag_start_control_monitor_fx" ) ) { if ( var_19 ) { stopfxontag( common_scripts\utility::getfx( "console_command_yellow_u" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_red_u" ), var_0, "tag_fx_screen" ); } else { stopfxontag( common_scripts\utility::getfx( "console_command_yellow_d" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_red_d" ), var_0, "tag_fx_screen" ); } } var_2 = 2; level.color_status = 2; break; } var_4 = var_3; } if ( common_scripts\utility::flag( "flag_audio_feedback" ) ) thread maps\black_ice_audio::sfx_lever_logic( var_2 ); if ( common_scripts\utility::flag( "flag_start_control_monitor_fx" ) ) { switch ( var_2 ) { case 0: break; case 1: level.player playrumbleonentity( "lever_feedback_light" ); break; case 2: level.player playrumbleonentity( "lever_feedback_heavy" ); break; } } fire_supression_status( var_10 ); wait( level.timestep ); } wait 0.25; var_11 hide(); var_12 hide(); var_13 hide(); killfxontag( common_scripts\utility::getfx( "console_command_red_u" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_red_d" ), var_0, "tag_fx_screen" ); wait( level.timestep ); killfxontag( common_scripts\utility::getfx( "console_command_yellow_u" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_yellow_d" ), var_0, "tag_fx_screen" ); wait( level.timestep ); killfxontag( common_scripts\utility::getfx( "console_command_green_u" ), var_0, "tag_fx_screen" ); killfxontag( common_scripts\utility::getfx( "console_command_green_d" ), var_0, "tag_fx_screen" ); wait( level.timestep ); killfxontag( common_scripts\utility::getfx( "console_command_timer" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_end" ), var_0, "tag_fx_screen" ); } start_timed_monitor_fx( var_0 ) { level waittill( "notify_start_control_minigame" ); wait 1.5; thread maps\black_ice_audio::sfx_cmd_console_acknowledge(); common_scripts\utility::flag_set( "flag_start_control_monitor_fx" ); playfxontag( common_scripts\utility::getfx( "console_command_green_u" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_green_d" ), var_0, "tag_fx_screen" ); wait( level.timestep ); killfxontag( common_scripts\utility::getfx( "console_command_start" ), var_0, "tag_fx_screen" ); playfxontag( common_scripts\utility::getfx( "console_command_timer" ), var_0, "tag_fx_screen" ); } fire_supression_status( var_0 ) { if ( var_0 > 0.5 ) { var_1 = maps\black_ice_util::normalize_value( 0.53, 0.86, var_0 ); var_2 = maps\black_ice_util::factor_value_min_max( 6.99, 1, var_1 ); } else { var_1 = maps\black_ice_util::normalize_value( 0.16, 0.47, var_0 ); var_2 = maps\black_ice_util::factor_value_min_max( 1, 6.99, var_1 ); } level.water_supression_level = int( var_2 ); } monitor_color_status( var_0, var_1 ) { var_2 = [ 0.32, 0.63 ]; var_3 = [ 0.14, 0.8 ]; if ( var_1 < var_2[0] ) { if ( var_1 < var_3[0] ) var_0 = 2; else var_0 = 1; } else if ( var_1 > var_2[1] ) { if ( var_1 > var_3[1] ) var_0 = 2; else var_0 = 1; } else var_0 = 0; return var_0; } monitor_bar_noise( var_0, var_1 ) { var_2 = 0.0022; if ( abs( var_0[0] - var_0[1] ) < var_2 ) { var_0[0] = var_0[1]; var_0[1] = randomfloatrange( 0 - var_1, var_1 ); } else if ( var_0[0] > var_0[1] ) var_0[0] = var_0[0] - var_2; else var_0[0] = var_0[0] + var_2; var_0[2] = lerp_value( var_0[2], var_0[0], 0.13 ); return var_0; } monitor_bar_drift( var_0 ) { var_1 = 0.025; var_2 = 3.8; var_3 = 3.5; if ( var_0[2] < 0.0 ) { if ( var_0[1] == 0 ) var_0[1] = 1; else var_0[1] = 0; var_0[2] = randomfloatrange( var_3, var_2 ); } if ( var_0[1] == 0 ) var_0[0] = lerp_value( var_0[0], level.bar_drift_rate, var_1 ); else var_0[0] = lerp_value( var_0[0], 0 - level.bar_drift_rate, var_1 ); var_0[2] = var_0[2] - level.timestep; return var_0; } explosion_progression_control_sequence() { thread explode_wait_quake( 5.5, "command_control_1", 0.2, 0.26, 0.75 ); thread explode_wait_quake( 8.25, "command_control_2", 0.18, 0.35, 0.85 ); thread explode_wait_quake( 9.75, "command_control_3", 0.15, 0.41, 1 ); } explosions_success( var_0 ) { explode_wait_quake( var_0, "command_control_4", 0.4, 0.55, 1.3 ); common_scripts\utility::flag_set( "flag_blowup_pipes" ); wait 2.0; earthquake( 0.35, 1, level.player.origin, 3000 ); level.player playrumbleonentity( "grenade_rumble" ); wait 1; earthquake( 0.4, 0.8, level.player.origin, 3000 ); level.player playrumbleonentity( "grenade_rumble" ); wait 1.6; earthquake( 0.4, 1.3, level.player.origin, 3000 ); level.player playrumbleonentity( "grenade_rumble" ); } explode_wait_quake( var_0, var_1, var_2, var_3, var_4 ) { wait( var_0 ); common_scripts\utility::exploder( var_1 ); thread maps\black_ice_audio::sfx_controlroom_explosions( var_1 ); wait( var_2 ); earthquake( var_3, var_4, level.player.origin, 3000 ); } sucess_swelling_rumble( var_0, var_1, var_2 ) { wait( var_1 ); var_0 = var_0 - ( var_1 + var_2 ); var_3 = maps\_utility::get_rumble_ent(); var_3.intensity = 0.0; var_3 thread maps\_utility::rumble_ramp_to( 0.4, var_0 ); thread maps\black_ice_util::player_view_shake_blender( var_0, 0.001, 0.21 ); wait( var_0 ); var_3 thread maps\_utility::rumble_ramp_to( 0.05, var_2 ); thread maps\black_ice_util::player_view_shake_blender( var_2, 0.21, 0.05 ); wait( var_2 + 0.15 ); var_3 thread maps\_utility::rumble_ramp_to( 1.3, 0.2 ); wait 0.2; var_3 thread maps\_utility::rumble_ramp_to( 0.0, 0.8 ); wait 1.3; var_3 delete(); } command_light_change() { level endon( "flag_ladder_jumpcheck" ); var_0 = getent( "comms_overhead_1", "targetname" ); var_1 = getent( "comms_overhead_2", "targetname" ); var_2 = [ var_0, var_1 ]; var_3 = getentarray( "emergency_red_exfil_light", "targetname" ); foreach ( var_5 in var_2 ) var_5 setlightintensity( 2 ); var_7 = getentarray( "command_light_siren", "targetname" ); var_8 = getentarray( "command_light_siren_nolight", "targetname" ); var_9 = getentarray( "command_light_siren_off", "targetname" ); var_10 = getentarray( "command_light_siren_nolight_off", "targetname" ); var_11 = []; var_12 = 0; foreach ( var_14 in var_7 ) { var_11[var_12] = common_scripts\utility::spawn_tag_origin(); var_11[var_12].origin = var_14 gettagorigin( "TAG_fx_main" ); var_11[var_12].angles = var_14 gettagangles( "TAG_fx_main" ); var_11[var_12] linkto( var_14, "TAG_fx_main" ); var_12 = var_12 + 1; } var_16 = []; var_12 = 0; foreach ( var_14 in var_8 ) { var_16[var_12] = common_scripts\utility::spawn_tag_origin(); var_16[var_12].origin = var_14 gettagorigin( "TAG_fx_main" ); var_16[var_12].angles = var_14 gettagangles( "TAG_fx_main" ); var_16[var_12] linkto( var_14, "TAG_fx_main" ); var_12 = var_12 + 1; } foreach ( var_14 in var_7 ) var_14 hide(); foreach ( var_14 in var_8 ) var_14 hide(); if ( level.start_point != "exfil" ) level waittill( "flag_start_lights" ); wait 0.55; foreach ( var_5 in var_2 ) { var_5 notify( "notify_stop_flicker" ); var_5 setlightintensity( 0.0001 ); var_5 setlightradius( 12 ); } var_25 = 0.6; for (;;) { maps\_utility::stop_exploder( "exfil_wall_alarm_yellow" ); wait( level.timestep ); if ( !common_scripts\utility::flag( "flag_vision_exfil_deck" ) && !common_scripts\utility::flag( "flag_player_dying_on_rig" ) ) maps\_utility::vision_set_fog_changes( "black_ice_command_red", 0 ); foreach ( var_27 in var_11 ) playfxontag( level._effect["command_siren_red"], var_27, "tag_origin" ); foreach ( var_27 in var_16 ) playfxontag( level._effect["command_siren_red_low"], var_27, "tag_origin" ); foreach ( var_5 in var_3 ) var_5 setlightintensity( 1.2 ); foreach ( var_14 in var_7 ) var_14 show(); foreach ( var_14 in var_8 ) var_14 show(); foreach ( var_14 in var_9 ) var_14 hide(); foreach ( var_14 in var_10 ) var_14 hide(); wait( var_25 ); if ( !common_scripts\utility::flag( "flag_vision_exfil_deck" ) && !common_scripts\utility::flag( "flag_player_dying_on_rig" ) ) maps\_utility::vision_set_fog_changes( "black_ice_command_yellow", 0 ); foreach ( var_27 in var_11 ) stopfxontag( level._effect["command_siren_red"], var_27, "tag_origin" ); foreach ( var_27 in var_16 ) stopfxontag( level._effect["command_siren_red_low"], var_27, "tag_origin" ); foreach ( var_5 in var_3 ) var_5 setlightintensity( 0.0001 ); foreach ( var_14 in var_7 ) var_14 hide(); foreach ( var_14 in var_8 ) var_14 hide(); foreach ( var_14 in var_9 ) var_14 show(); foreach ( var_14 in var_10 ) var_14 show(); wait( level.timestep ); common_scripts\utility::exploder( "exfil_wall_alarm_yellow" ); wait( var_25 ); } } allies_baker_console_anims( var_0, var_1 ) { var_2 = getent( "ally_01_command", "targetname" ); var_2.script_friendname = "Merrick"; var_2 maps\_utility::add_spawn_function( maps\black_ice_util::spawnfunc_ally ); var_3 = var_2 maps\_utility::spawn_ai(); var_3 hide(); var_3.animname = "ally1"; var_3.v.invincible = 1; var_3 maps\black_ice_util::ignore_everything(); wait 1.5; var_3 show(); level._allies[0] maps\black_ice_vignette::vignette_end(); level._allies[0] maps\_utility::stop_magic_bullet_shield(); level._allies[0] delete(); level._allies[0] = var_3; level waittill( "flag_command_baker_console_anim" ); var_0 thread maps\_anim::anim_single_solo( level._allies[0], "command_start" ); var_4 = level._allies[0] maps\_utility::getanim( "command_start" ); wait( level.timestep ); var_5 = var_1 getanimtime( level.scr_anim["player_rig"]["command_start"] ); level._allies[0] setanimtime( var_4, var_5 ); level waittill( "notify_start_control_minigame" ); var_0 thread maps\_anim::anim_single_solo( level._allies[0], "command_control" ); } player_view_manager() { level.player endon( "death" ); level waittill( "notify_control_room_allow_free_look" ); level.player lerpviewangleclamp( 1.0, 0, 0, 20, 20, 20, 15 ); level waittill( "notify_focus_monitor" ); level.player springcamenabled( 0.4, 3.2, 1.6 ); wait 1.5; level.player springcamenabled( 0.4, 3.2, 0.4 ); } smooth_player_link( var_0, var_1 ) { level.player playerlinktoblend( var_0, "tag_player", var_1 ); wait( var_1 ); level.player playerlinktodelta( var_0, "tag_player", 1, 0, 0, 0, 0, 1 ); var_0 show(); } player_anim_countdown() { wait( getanimlength( level.scr_anim["player_rig"]["command_start"] ) ); level notify( "notify_player_command_start_anim_done" ); } water_shutdown_exploder_manager() { level waittill( "notify_control_room_allow_free_look" ); thread supression_shutdown_sequencer( "water_supression_on_1", "water_supression_off_a_1", "water_supression_off_b_1", "water_supression_off_c_1", "water_supression_off_d_1", "water_supression_off_e_1", "water_supression_off_f_1" ); wait 0.5; thread supression_shutdown_sequencer( "water_supression_on_3", "water_supression_off_a_3", "water_supression_off_b_3", "water_supression_off_c_3", "water_supression_off_d_3", "water_supression_off_e_3", "water_supression_off_f_3" ); } supression_shutdown_sequencer( var_0, var_1, var_2, var_3, var_4, var_5, var_6 ) { var_7 = [ var_6, var_5, var_4, var_3, var_2, var_1, var_0 ]; var_8 = 6; for (;;) { if ( var_8 > level.water_supression_level ) { blend_to_exploder( var_7[var_8], var_7[var_8 - 1] ); var_8 = var_8 - 1; } else if ( var_8 < level.water_supression_level ) { blend_to_exploder( var_7[var_8], var_7[var_8 + 1] ); var_8 = var_8 + 1; } if ( var_8 == 0 ) { blend_to_exploder( var_6 ); break; } wait( level.timestep ); } } blend_to_exploder( var_0, var_1 ) { var_2 = 3; for ( var_3 = 0.1; var_2 > 0; var_2 = var_2 - 1 ) { maps\_utility::stop_exploder( var_0 ); if ( isdefined( var_1 ) ) common_scripts\utility::exploder( var_1 ); wait( var_3 / var_2 ); common_scripts\utility::exploder( var_0 ); if ( isdefined( var_1 ) ) maps\_utility::stop_exploder( var_1 ); wait( var_3 - var_3 / var_2 ); } maps\_utility::stop_exploder( var_0 ); if ( isdefined( var_1 ) ) common_scripts\utility::exploder( var_1 ); } event_pipe_explosions() { common_scripts\utility::flag_wait( "flag_command_start" ); var_0 = getentarray( "model_pipedeck_explosion3_old", "targetname" ); foreach ( var_2 in var_0 ) var_2 delete(); var_4 = maps\black_ice_util::setup_tag_anim_rig( "pipe_explosion2", "pipedeck_explosion2_rig" ); var_5 = maps\black_ice_util::setup_tag_anim_rig( "pipe_explosion3", "pipedeck_explosion3_rig" ); var_4 thread maps\black_ice_util::tag_anim_rig_init_and_flag_wait( "flag_command_pipes_2", "pipes_explode" ); var_5 thread maps\black_ice_util::tag_anim_rig_init_and_flag_wait( "flag_command_pipes_3", "pipes_explode" ); common_scripts\utility::flag_wait( "flag_blowup_pipes" ); wait 0.3; common_scripts\utility::flag_set( "flag_command_pipes_2" ); common_scripts\utility::flag_set( "flag_command_pipes_3" ); } dim_overhead_light() { wait 3.5; var_0 = getent( "comms_overhead_1", "targetname" ); var_1 = var_0 getlightintensity(); var_2 = ( 0.89, 0.75, 0.57 ); var_3 = 1.4; var_4 = 0.05; thread transitionlightcolor( var_0, var_2 ); while ( var_1 > var_3 ) { var_1 = var_1 - var_4; var_0 setlightintensity( var_1 ); common_scripts\utility::waitframe(); } light_pulse( var_0, 1.0 ); } set_command_dof() { maps\_art::dof_enable_script( 0, 7, 4, 121, 545, 0.3, 2.0 ); level waittill( "flag_start_lights" ); maps\_art::dof_disable_script( 1.25 ); } light_pulse( var_0, var_1 ) { level endon( "flag_start_lights" ); self.light = var_0; self.min_intensity = var_1; var_2 = var_0 getlightintensity(); var_3 = self.light getlightintensity(); for (;;) { while ( var_3 > var_1 ) { var_3 = var_3 - 0.01; self.light setlightintensity( var_3 ); common_scripts\utility::waitframe(); } while ( var_3 < var_2 ) { var_3 = var_3 + 0.02; self.light setlightintensity( var_3 ); common_scripts\utility::waitframe(); } common_scripts\utility::waitframe(); } } transitionlightcolor( var_0, var_1 ) { self.new_color = var_1; var_2 = var_0; var_3 = var_2 getlightcolor(); while ( var_3[0] > self.new_color[0] ) { var_3 = var_3 - ( 0.01, 0.01, 0.01 ); var_2 setlightcolor( var_3 ); common_scripts\utility::waitframe(); } while ( var_3[1] > self.new_color[1] ) { var_3 = var_3 - ( 0, 0.01, 0.01 ); var_2 setlightcolor( var_3 ); common_scripts\utility::waitframe(); } while ( var_3[2] > self.new_color[2] ) { var_3 = var_3 - ( 0, 0, 0.01 ); var_2 setlightcolor( var_3 ); common_scripts\utility::waitframe(); } } notetrack_blast_shake_early( var_0 ) { level notify( "notify_blast_kill_player" ); } notetrack_blast_shake_late( var_0 ) { level notify( "notify_blast_kill_player" ); } command_godrays() { var_0 = getent( "cc_gr_origin", "targetname" ); if ( maps\_utility::is_gen4() ) maps\black_ice_util::god_rays_from_world_location( var_0.origin, "flag_command_start", "flag_teleport_rig", undefined, undefined ); } command_geyser_light() { var_0 = getentarray( "command_geyser", "targetname" ); maps\_utility::trigger_wait_targetname( "trig_lights_pipedeck_a" ); foreach ( var_2 in var_0 ) { var_2 setlightintensity( 2.0 ); var_2 thread maps\black_ice_util::flicker( 0.15, 1.0, "notify_stop_flicker" ); } } shrink_pdeck_lights() { var_0 = getentarray( "lights_pipedeck_a", "targetname" ); var_1 = getentarray( "lights_pipedeck_b", "targetname" ); var_2 = getentarray( "lights_pipedeck_c", "targetname" ); var_3 = [ getent( "escape_emergency_1", "targetname" ) ]; foreach ( var_5 in var_0 ) var_5 setlightradius( 12 ); foreach ( var_5 in var_1 ) var_5 setlightradius( 12 ); foreach ( var_5 in var_2 ) var_5 setlightradius( 12 ); foreach ( var_5 in var_3 ) var_5 setlightradius( 12 ); level waittill( "flag_start_lights" ); foreach ( var_5 in var_3 ) var_5 setlightradius( 350 ); } copy_node( var_0 ) { var_1 = common_scripts\utility::spawn_tag_origin(); var_1.origin = var_0.origin; var_1.angles = var_0.angles; return var_1; } lerp_value( var_0, var_1, var_2 ) { var_3 = ( var_1 - var_0 ) * var_2; var_0 = var_0 + var_3; return var_0; } cap_range( var_0, var_1, var_2 ) { if ( var_0 > var_2 ) var_0 = var_2; else if ( var_0 < var_1 ) var_0 = var_1; return var_0; }