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

1187 lines
47 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
start()
{
iprintln( "Ascend" );
maps\black_ice_util::player_start( "player_start_ascend" );
maps\_utility::vision_set_fog_changes( "black_ice_catwalks", 0 );
if ( level._allies.size < 2 )
level maps\black_ice_util::spawn_allies();
common_scripts\utility::array_thread( level._allies, maps\_utility::set_ignoresuppression, 1 );
var_0 = getent( "vignette_alpha_team_rigascend", "script_noteworthy" );
if ( level._bravo.size < 2 )
level maps\black_ice_util::spawn_bravo();
var_1 = common_scripts\utility::getstruct( "vignette_beta_rig_ascend", "script_noteworthy" );
var_2 = getnode( "bc_node_ascend_ally1", "targetname" );
level._allies[0] forceteleport( var_2.origin, var_2.angles );
level._allies[0] thread maps\_utility::follow_path( var_2 );
var_2 = getnode( "bc_node_ascend_ally2", "targetname" );
level._allies[1] forceteleport( var_2.origin, var_2.angles );
level._allies[1] thread maps\_utility::follow_path( var_2 );
var_2 = getnode( "bc_node_ascend_bravo1", "targetname" );
level._bravo[1] forceteleport( var_2.origin, var_2.angles );
level._bravo[1] thread maps\_utility::follow_path( var_2 );
var_2 = getnode( "bc_node_ascend_bravo2", "targetname" );
level._bravo[0] forceteleport( var_2.origin, var_2.angles );
level._bravo[0] thread maps\_utility::follow_path( var_2 );
level.launchers_attached = 0;
level.ascend_waiting = 1;
common_scripts\utility::flag_set( "bc_flag_spots_close" );
thread maps\black_ice_camp::fake_spot( "cw_spotlight_2", "cw_spot_2_org" );
thread maps\black_ice_camp::fake_spot( "cw_spotlight_3", "cw_spot_3_org" );
thread maps\black_ice_camp::ascend_snow_fx();
thread hanging_cargo_motion();
thread maps\black_ice_audio::sfx_distant_oil_rig();
}
main()
{
level.ascend_launch_pos = common_scripts\utility::getstruct( "ascend_launch_pos", "script_noteworthy" );
if ( !isdefined( level.ascend_anim_node ) )
level.ascend_anim_node = getent( "vignette_alpha_team_rigascend", "script_noteworthy" );
level.bravo_ascend_anim_node = common_scripts\utility::getstruct( "vignette_beta_rig_ascend", "script_noteworthy" );
level.bravo_ascend_anim_node.origin = level.ascend_anim_node.origin;
level.bravo_ascend_anim_node.angles = level.ascend_anim_node.angles;
level.player_ascend_anim_node = getent( "vignette_alpha_player_rigascend", "script_noteworthy" );
level.sfx_ascend_check = "stop";
level.sfx_ascend_node = spawn( "script_origin", ( 1414, 3969, 4069 ) );
init_ascend_vars();
thread start_catwalk_snow();
thread ascend_dialog();
thread keegan_kill_dialog();
thread ascend_vision_sets();
thread ascend_logic();
}
ascend_vision_sets()
{
common_scripts\utility::flag_wait( "flag_ascend_start" );
maps\_utility::stop_exploder( "basecamp_lights" );
maps\_utility::vision_set_fog_changes( "black_ice_catwalks", 7 );
}
section_flag_inits()
{
common_scripts\utility::flag_init( "flag_ascend_triggered" );
common_scripts\utility::flag_init( "flag_ascend_start" );
common_scripts\utility::flag_init( "flag_ascend_bravo_go" );
common_scripts\utility::flag_init( "flag_player_ascending" );
common_scripts\utility::flag_init( "flag_bravo_ascend_complete" );
common_scripts\utility::flag_init( "flag_alpha_ascend_complete" );
common_scripts\utility::flag_init( "flag_ascend_end" );
common_scripts\utility::flag_init( "flag_player_line_launched" );
common_scripts\utility::flag_init( "flag_dialog_dontstop" );
common_scripts\utility::flag_init( "flag_dialog_weaponsfree" );
}
section_precache()
{
maps\_utility::add_hint_string( "hint_ascend_init", &"BLACK_ICE_ASCEND_INIT", ::hint_ascend_init_func );
maps\_utility::add_hint_string( "hint_ascend_launch", &"BLACK_ICE_ASCEND_LAUNCH", ::hint_ascend_func );
maps\_utility::add_hint_string( "hint_ascend", &"BLACK_ICE_ASCEND_ASCEND", ::hint_ascend_func );
precachemodel( "black_ice_rope_prop" );
precachemodel( "black_ice_rope_prop_obj" );
}
ally_setup()
{
}
player_setup( var_0, var_1, var_2 )
{
if ( !isdefined( var_0 ) )
var_0 = 60;
maps\black_ice_util::setup_player_for_animated_sequence( 1, var_0, var_1, var_2, 0, undefined );
}
play_falling_enemy()
{
var_0 = level.ascend_anim_node common_scripts\utility::spawn_tag_origin();
level.ascend_enemy = maps\_vignette_util::vignette_actor_spawn( "ascend_enemy", "opfor" );
level.ascend_enemy linkto( var_0, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_0 maps\_anim::anim_single_solo( level.ascend_enemy, "alpha_rig_ascend" );
var_0 maps\_anim::anim_last_frame_solo( level.ascend_enemy, "alpha_rig_ascend" );
common_scripts\utility::flag_wait( "flag_ascend_end" );
level.ascend_enemy unlink();
level.ascend_enemy maps\_utility::stop_magic_bullet_shield();
level.ascend_enemy kill();
var_0 delete();
}
props_setup()
{
level.ascend_launcher = maps\_utility::spawn_anim_model( "ascend_launcher" );
level.ascend_ascender = maps\_utility::spawn_anim_model( "ascend_ascender" );
level.ascend_hook = maps\_utility::spawn_anim_model( "ascend_hook" );
level.ascend_hook_ally1 = maps\_utility::spawn_anim_model( "ascend_hook_ally1" );
level.ascend_hook_ally2 = maps\_utility::spawn_anim_model( "ascend_hook_ally2" );
level.ascend_hook_ally3 = maps\_utility::spawn_anim_model( "ascend_hook_ally3" );
level.ascend_hook_ally4 = maps\_utility::spawn_anim_model( "ascend_hook_ally4" );
level.ascend_launcher hide();
level.ascend_ascender hide();
level.ascend_hook hide();
level.ascend_hook_ally1 hide();
level.ascend_hook_ally2 hide();
level.ascend_hook_ally3 hide();
level.ascend_hook_ally4 hide();
if ( !isdefined( level.ally1_ascend_launcher ) )
{
level.ally1_ascend_launcher = maps\_utility::spawn_anim_model( "ally1_ascend_launcher" );
level.ally2_ascend_launcher = maps\_utility::spawn_anim_model( "ally2_ascend_launcher" );
}
level.ally1_ascend_ascender = maps\_utility::spawn_anim_model( "ally1_ascend_ascender" );
level.ally2_ascend_ascender = maps\_utility::spawn_anim_model( "ally2_ascend_ascender" );
level.ally1_ascend_ascender hide();
level.ally2_ascend_ascender hide();
level.ascend_rope1 = maps\_utility::spawn_anim_model( "ascend_rope1" );
level.ascend_rope2 = maps\_utility::spawn_anim_model( "ascend_rope2" );
level.ascend_rope3 = maps\_utility::spawn_anim_model( "ascend_rope3" );
level.ascend_rope1 hide();
level.ascend_rope2 hide();
level.ascend_rope3 hide();
if ( !isdefined( level.bravo1_ascend_launcher ) )
{
level.bravo1_ascend_launcher = maps\_utility::spawn_anim_model( "bravo1_ascend_launcher" );
level.bravo2_ascend_launcher = maps\_utility::spawn_anim_model( "bravo2_ascend_launcher" );
}
if ( !isdefined( level.bravo1_ascend_ascender ) )
{
level.bravo1_ascend_ascender = maps\_utility::spawn_anim_model( "bravo1_ascend_ascender" );
level.bravo2_ascend_ascender = maps\_utility::spawn_anim_model( "bravo2_ascend_ascender" );
level.bravo1_ascend_ascender hide();
level.bravo2_ascend_ascender hide();
}
if ( !isdefined( level.bravo_ascend_rope1 ) )
{
level.bravo_ascend_rope1 = maps\_utility::spawn_anim_model( "bravo_ascend_rope1" );
level.bravo_ascend_rope2 = maps\_utility::spawn_anim_model( "bravo_ascend_rope2" );
level.bravo_ascend_rope1 hide();
level.bravo_ascend_rope2 hide();
}
}
init_ascend_vars()
{
level.ascend_anims_rate = 1.0;
level.allow_player_ascend_move = 0;
level.ascend_current_rate = 0.0;
level.bravo_curr_rate = level.ascend_anims_rate;
level.alpha_curr_rate = level.ascend_anims_rate;
}
start_catwalk_snow()
{
level waittill( "notify_start_catwalks_snow" );
maps\_utility::stop_exploder( "basecamp_lights" );
common_scripts\utility::exploder( "catwalks_snow" );
wait 1.0;
common_scripts\utility::exploder( "catwalks_lights" );
wait 15.0;
maps\_utility::stop_exploder( "ascend_snow_huge" );
}
ascend_dialog()
{
level waittill( "notify_ascend_linesout" );
thread dialog_linesout();
level waittill( "notify_ascend_dialog_splitoff" );
wait 1.0;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_rogersdiazyouarebravo" );
maps\_utility::smart_radio_dialogue( "blackice_diz_atthetop" );
level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_rookfuentesstickwithme" );
if ( !common_scripts\utility::flag( "flag_player_ascending" ) )
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_yourmarkrook" );
common_scripts\utility::flag_wait( "flag_player_ascending" );
wait 0.8;
level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_steponedisablethe" );
level._allies[0] maps\_utility::smart_dialogue( "black_ice_mrk_steptwooverloadthe" );
if ( !common_scripts\utility::flag( "flag_dialog_weaponsfree" ) )
{
if ( !common_scripts\utility::flag( "flag_dialog_dontstop" ) )
{
common_scripts\utility::flag_wait( "flag_dialog_dontstop" );
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_inrange" );
}
common_scripts\utility::flag_wait( "flag_dialog_weaponsfree" );
}
level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_getreadyweaponsfree" );
}
keegan_kill_dialog()
{
level waittill( "notify_ascend_dialog5" );
level._allies[1] thread maps\_utility::smart_dialogue( "blackice_fnt_aboveyou" );
level waittill( "notify_ascend_dialog6" );
thread maps\_utility::smart_radio_dialogue_overlap( "blackice_grn_grunt" );
level waittill( "notify_ascend_dialog7" );
thread maps\_utility::smart_radio_dialogue_interrupt( "blackice_grn_bravosup" );
}
dialog_linesout()
{
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_linesuphere" );
wait 0.8;
if ( !common_scripts\utility::flag( "flag_player_line_launched" ) )
maps\_utility::smart_radio_dialogue( "blackice_diz_lineout" );
wait 3.0;
if ( !common_scripts\utility::flag( "flag_player_line_launched" ) )
level._allies[0] maps\_utility::smart_dialogue( "blackice_bkr_ropeup" );
}
runin_to_ascend( var_0, var_1 )
{
level endon( "camp_end_runin_to_ascend" );
self.old_moveplaybackrate = self.moveplaybackrate;
thread maps\_utility::set_moveplaybackrate( randomfloatrange( 1.16, 1.2 ), 0.5 );
var_0 maps\_anim::anim_reach_solo( self, "ascend_runin" );
self detach( level.scr_model["ascend_launcher_non_anim"], "TAG_STOWED_BACK" );
self.launcher show();
var_2 = [];
var_2[0] = self;
var_2[1] = self.launcher;
var_0 maps\_anim::anim_single( var_2, "ascend_runin" );
level.ascend_anim_node thread maps\_anim::anim_loop( var_2, "ascend_waiting", "stop_loop" );
if ( isdefined( var_1 ) )
common_scripts\utility::flag_set( var_1 );
}
ascend_logic()
{
level.player endon( "death" );
ally_setup();
props_setup();
thread bravo_ascend();
var_0 = [];
var_0["ally1"] = level._allies[0];
var_0["ally2"] = level._allies[1];
var_0["ally1_ascend_launcher"] = level.ally1_ascend_launcher;
var_0["ally2_ascend_launcher"] = level.ally2_ascend_launcher;
if ( isdefined( level.launchers_attached ) && level.launchers_attached )
{
level._allies[0] detach( level.scr_model["ascend_launcher_non_anim"], "TAG_STOWED_BACK" );
level._allies[1] detach( level.scr_model["ascend_launcher_non_anim"], "TAG_STOWED_BACK" );
level.launchers_attached = 0;
}
if ( isdefined( level.ascend_waiting ) && level.ascend_waiting )
level.ascend_anim_node thread maps\_anim::anim_loop( var_0, "ascend_waiting", "stop_loop" );
maps\black_ice_util::waittill_trigger_activate_looking_at( level.ascend_launch_pos, "hint_ascend_init", 150, undefined, undefined, 5, "flag_ascend_ready" );
level.ascend_launch_pos = undefined;
common_scripts\utility::flag_set( "flag_ascend_triggered" );
level notify( "camp_end_runin_to_ascend" );
maps\black_ice_swim::destroy_persistent_ice_breach_props();
var_0["ascend_rope2"] = level.ascend_rope2;
var_0["ascend_rope3"] = level.ascend_rope3;
level.ascend_rope2 show();
level.ascend_rope3 show();
level.ascend_anim_node notify( "stop_loop" );
level.ascend_anim_node thread maps\_anim::anim_reach( level._allies, "alpha_rope_shoot" );
level.ascend_anim_node thread maps\_anim::anim_single( var_0, "alpha_rope_shoot" );
var_1 = 1.0;
maps\black_ice_util::player_animated_sequence_restrictions();
var_2 = maps\_utility::spawn_anim_model( "player_rig" );
var_2.origin = level.player.origin;
var_2.angles = level.player.angles;
var_2 hide();
level.player_ascend_anim_node thread maps\_anim::anim_single_solo( var_2, "alpha_rig_ascend_aim" );
level.player playerlinktoblend( var_2, "tag_player", var_1 );
var_2 thread wait_and_unhide_ascend_aim_assets( var_1 );
maps\_utility::delaythread( 2.0, common_scripts\utility::flag_set, "flag_bravo_ascend_ready" );
thread maps\black_ice_audio::sfx_blackice_rig_start_ss();
level.player_legs = maps\_utility::spawn_anim_model( "player_legs_ascend" );
var_3["player_legs"] = level.player_legs;
var_3["ascend_rope1"] = level.ascend_rope1;
var_3["ascend_ascender"] = level.ascend_ascender;
level.ascend_rope1 show();
level notify( "notify_ascend_linesout" );
level.ascend_launcher.origin = level.player.origin;
level.ascend_launcher.angles = level.player.angles;
level.player_ascend_anim_node maps\_anim::anim_single_solo( level.ascend_launcher, "alpha_rig_ascend_aim" );
level.player unlink();
player_setup( 0.01, var_2.origin, var_2.angles );
var_2 delete();
var_3["player_rig"] = level.player_rig;
var_4 = maps\_utility::spawn_anim_model( "ascend_launcher" );
var_4.origin = level.ascend_launcher.origin;
var_4.angles = level.ascend_launcher.angles;
level.ascend_launcher delete();
level.ascend_launcher = var_4;
level.player_rig setanim( level.scr_anim["player_rig"]["alpha_rig_ascend_aim_loop"][0], 1, 0, 1 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["alpha_rig_ascend_aim_loop"][0], 1, 0, 1 );
if ( !level.console && !level.player common_scripts\utility::is_player_gamepad_enabled() )
level.player enablemousesteer( 1 );
level.player_rig thread ascend_aim_logic();
maps\_anim::anim_set_rate( var_0, "alpha_rope_shoot", 0.0 );
maps\_utility::display_hint_timeout( "hint_ascend_launch" );
thread maps\black_ice::flarestack_swap();
var_5 = 2000;
var_6 = gettime();
while ( !level.player attackbuttonpressed() )
{
if ( !isdefined( level._allies[0].line_shot ) || !level._allies[0].line_shot )
{
if ( gettime() - var_6 > var_5 )
{
thread maps\black_ice_audio::sfx_blackice_rig_start3_ss();
maps\_anim::anim_set_rate( var_0, "alpha_rope_shoot", 1.0 );
level._allies[0].line_shot = 1;
}
}
else if ( !isdefined( level._allies[0].waiting ) || !level._allies[0].waiting )
{
if ( level._allies[0] maps\black_ice_util::check_anim_time( "ally1", "alpha_rope_shoot", 1.0 ) )
{
var_0["ally1_ascend_ascender"] = level.ally1_ascend_ascender;
var_0["ally2_ascend_ascender"] = level.ally2_ascend_ascender;
level.ally1_ascend_ascender show();
level.ally2_ascend_ascender show();
level.ascend_anim_node thread maps\_anim::anim_loop( var_0, "alpha_hand_rope", "stop_loop" );
level._allies[0].waiting = 1;
}
}
wait( level.timestep );
}
level notify( "ascend_rope_launched" );
common_scripts\utility::flag_set( "flag_player_line_launched" );
if ( !level.console && !level.player common_scripts\utility::is_player_gamepad_enabled() )
level.player enablemousesteer( 0 );
setthreatbias( "axis", "player", -256 );
if ( !isdefined( level._allies[0].line_shot ) || !level._allies[0].line_shot )
{
thread maps\black_ice_audio::sfx_blackice_rig_start3_ss();
maps\_anim::anim_set_rate( var_0, "alpha_rope_shoot", 1.0 );
}
level.ascend_ascender show();
level.player_ascend_anim_node notify( "stop_loop" );
level.player_rig setanim( level.scr_anim["player_rig"]["alpha_rig_ascend_aim_loop"][0], 0, 0, 1 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["alpha_rig_ascend_aim_loop"][0], 0, 0, 1 );
level.player_ascend_anim_node thread maps\_anim::anim_single( var_3, "alpha_rig_ascend_linkup" );
level.player_ascend_anim_node thread maps\_anim::anim_single_solo( level.ascend_launcher, "alpha_rig_ascend_linkup" );
level notify( "notify_ascend_dialog_splitoff" );
for (;;)
{
if ( !isdefined( level._allies[0].waiting ) || !level._allies[0].waiting )
{
if ( level._allies[0] maps\black_ice_util::check_anim_time( "ally1", "alpha_rope_shoot", 1.0 ) )
{
var_0["ally1_ascend_ascender"] = level.ally1_ascend_ascender;
var_0["ally2_ascend_ascender"] = level.ally2_ascend_ascender;
level.ally1_ascend_ascender show();
level.ally2_ascend_ascender show();
level.ascend_anim_node thread maps\_anim::anim_loop( var_0, "alpha_hand_rope", "stop_loop" );
level._allies[0].waiting = 1;
}
}
if ( !isdefined( level.player.waiting ) || !level.player.waiting )
{
if ( level.player_rig maps\black_ice_util::check_anim_time( "player_rig", "alpha_rig_ascend_linkup", 1.0 ) )
{
maps\_utility::delaythread( 5, common_scripts\utility::flag_set, "flag_ascend_start" );
level.player_ascend_anim_node thread maps\_anim::anim_loop( var_3, "alpha_rig_ascend_groundidle", "stop_loop" );
level.player.waiting = 1;
}
}
if ( isdefined( level._allies[0].waiting ) && level._allies[0].waiting && isdefined( level.player.waiting ) && level.player.waiting )
{
level.player.waiting = undefined;
break;
}
wait( level.timestep );
}
var_7 = 0.3;
level.player lerpviewangleclamp( var_7, 0, 0, 60, 60, 60, 60 );
calculate_bravo_rubberband_base();
maps\_utility::display_hint( "hint_ascend" );
while ( !level.player attackbuttonpressed() )
wait( level.timestep );
common_scripts\utility::flag_set( "flag_player_ascending" );
level.player_ascend_anim_node notify( "stop_loop" );
level.ascend_anim_node notify( "stop_loop" );
foreach ( var_9 in var_3 )
var_9 linkto( level.player_ascend_anim_node );
thread maps\black_ice_audio::sfx_rig_ascend_logic( "go" );
level.player lerpviewangleclamp( var_7, 0, 0, 0, 0, 0, 0 );
wait( var_7 );
level.player_ascend_anim_node thread maps\_anim::anim_single( var_3, "alpha_rig_ascend" );
var_11 = [];
var_11["ascend_hook_ally1"] = level.ascend_hook_ally1;
var_11["ascend_hook_ally2"] = level.ascend_hook_ally2;
var_11["ascend_hook_ally3"] = level.ascend_hook_ally3;
var_11["ascend_hook_ally4"] = level.ascend_hook_ally4;
level.player_ascend_anim_node thread maps\_anim::anim_single_solo( level.ascend_hook, "ascend_hook" );
level.ascend_anim_node thread maps\_anim::anim_single( var_11, "ascend_hook" );
level.ascend_hook show();
level.ascend_hook_ally1 show();
level.ascend_hook_ally2 show();
level.ascend_hook_ally3 show();
level.ascend_hook_ally4 show();
level.ascend_state = "ascend";
level.ascend_state_transition = 0;
level.start_ascend_time = gettime();
thread ascend_mechanics( var_3 );
level.player.ignoreme = 1;
thread alpha_ascend_rubberband( var_0 );
thread alpha_ascend_rubberband_cleanup( var_0 );
maps\_utility::delaythread( 0.05, ::post_ascend_cleanup );
var_12 = getent( "vignette_alpha_team_rigascend", "script_noteworthy" );
var_12 maps\_anim::anim_single( var_0, "alpha_rig_ascend" );
level notify( "notify_alpha_ascend_complete" );
common_scripts\utility::flag_set( "flag_alpha_ascend_complete" );
level._allies[0] stopanimscripted();
level._allies[1] stopanimscripted();
}
ascend_aim_logic()
{
level endon( "ascend_rope_launched" );
level.static_damping_factor = -7.2;
level.kinetic_damping_factor = -1.2;
level.accel_factor = 14.0;
level.max_velocity = 2.4;
self.up_velocity = 0.0;
self.down_velocity = 0.0;
self.left_velocity = 0.0;
self.right_velocity = 0.0;
self.up_weight = 0.0;
self.down_weight = 0.0;
self.left_weight = 0.0;
self.right_weight = 0.0;
self setanim( level.scr_anim["player_rig"]["rigascend_aim_left_parent"], 0, 0 );
self setanim( level.scr_anim["player_rig"]["rigascend_aim_right_parent"], 0, 0 );
self setanim( level.scr_anim["player_rig"]["rigascend_aim_up_parent"], 0, 0 );
self setanim( level.scr_anim["player_rig"]["rigascend_aim_down_parent"], 0, 0 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["ascender_aim_left_parent"], 0, 0 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["ascender_aim_right_parent"], 0, 0 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["ascender_aim_up_parent"], 0, 0 );
level.ascend_launcher setanim( level.scr_anim["ascend_launcher"]["ascender_aim_down_parent"], 0, 0 );
thread ascend_aim_logic_cleanup();
for (;;)
{
ascend_aim_lerp_anims();
wait( level.timestep );
}
}
ascend_aim_lerp_anims()
{
level endon( "ascend_rope_launched" );
var_0 = level.player getnormalizedcameramovement();
if ( !level.console && !level.player common_scripts\utility::is_player_gamepad_enabled() )
var_0 = ( var_0[0], var_0[1] * -1, var_0[2] );
var_1 = common_scripts\utility::ter_op( var_0[0] > 0.1, 1, 0 );
var_2 = common_scripts\utility::ter_op( var_0[0] < -0.1, 1, 0 );
var_3 = common_scripts\utility::ter_op( var_0[1] < -0.1, 1, 0 );
var_4 = common_scripts\utility::ter_op( var_0[1] > 0.1, 1, 0 );
var_5 = common_scripts\utility::ter_op( self.up_weight > 0.0, 1, 0 );
var_6 = common_scripts\utility::ter_op( self.down_weight > 0.0, 1, 0 );
var_7 = common_scripts\utility::ter_op( self.left_weight > 0.0, 1, 0 );
var_8 = common_scripts\utility::ter_op( self.right_weight > 0.0, 1, 0 );
var_9 = 0.0;
var_10 = 0.0;
var_11 = 0.0;
var_12 = 0.0;
if ( var_1 )
{
if ( !var_6 )
var_9 = var_0[0];
else
var_10 = -1.0 * var_0[0];
}
else if ( var_2 )
{
if ( !var_5 )
var_10 = -1.0 * var_0[0];
else
var_9 = var_0[0];
}
if ( var_3 )
{
if ( !var_8 )
var_11 = -1.0 * var_0[1];
else
var_12 = var_0[1];
}
else if ( var_4 )
{
if ( !var_7 )
var_12 = var_0[1];
else
var_11 = -1.0 * var_0[1];
}
self.up_velocity = self.up_velocity + var_9 * level.accel_factor * level.timestep;
self.down_velocity = self.down_velocity + var_10 * level.accel_factor * level.timestep;
self.left_velocity = self.left_velocity + var_11 * level.accel_factor * level.timestep;
self.right_velocity = self.right_velocity + var_12 * level.accel_factor * level.timestep;
self.up_velocity = common_scripts\utility::ter_op( self.up_velocity > level.max_velocity, level.max_velocity, self.up_velocity );
self.up_velocity = common_scripts\utility::ter_op( self.up_velocity < -1 * level.max_velocity, -1 * level.max_velocity, self.up_velocity );
self.down_velocity = common_scripts\utility::ter_op( self.down_velocity > level.max_velocity, level.max_velocity, self.down_velocity );
self.down_velocity = common_scripts\utility::ter_op( self.down_velocity < -1 * level.max_velocity, -1 * level.max_velocity, self.down_velocity );
self.left_velocity = common_scripts\utility::ter_op( self.left_velocity > level.max_velocity, level.max_velocity, self.left_velocity );
self.left_velocity = common_scripts\utility::ter_op( self.left_velocity < -1 * level.max_velocity, -1 * level.max_velocity, self.left_velocity );
self.right_velocity = common_scripts\utility::ter_op( self.right_velocity > level.max_velocity, level.max_velocity, self.right_velocity );
self.right_velocity = common_scripts\utility::ter_op( self.right_velocity < -1 * level.max_velocity, -1 * level.max_velocity, self.right_velocity );
if ( !( var_1 || var_2 || var_3 || var_4 ) )
var_13 = level.static_damping_factor;
else
var_13 = level.kinetic_damping_factor;
self.up_velocity = self.up_velocity + var_13 * self.up_velocity * level.timestep;
self.down_velocity = self.down_velocity + var_13 * self.down_velocity * level.timestep;
self.left_velocity = self.left_velocity + var_13 * self.left_velocity * level.timestep;
self.right_velocity = self.right_velocity + var_13 * self.right_velocity * level.timestep;
self.up_weight = self.up_weight + self.up_velocity * level.timestep;
self.down_weight = self.down_weight + self.down_velocity * level.timestep;
self.left_weight = self.left_weight + self.left_velocity * level.timestep;
self.right_weight = self.right_weight + self.right_velocity * level.timestep;
if ( self.up_weight < 0.0 )
{
self.down_weight = -1.0 * self.up_weight;
self.up_weight = 0.0;
self.down_velocity = -1.0 * self.up_velocity;
self.up_velocity = 0.0;
}
else if ( self.down_weight < 0.0 )
{
self.up_weight = -1.0 * self.down_weight;
self.down_weight = 0.0;
self.up_velocity = -1.0 * self.down_velocity;
self.down_velocity = 0.0;
}
if ( self.left_weight < 0.0 )
{
self.right_weight = -1.0 * self.left_weight;
self.left_weight = 0.0;
self.right_velocity = -1.0 * self.left_velocity;
self.left_velocity = 0.0;
}
else if ( self.right_weight < 0.0 )
{
self.left_weight = -1.0 * self.right_weight;
self.right_weight = 0.0;
self.left_velocity = -1.0 * self.right_velocity;
self.right_velocity = 0.0;
}
self.left_weight = common_scripts\utility::ter_op( self.left_weight > 1.0, 1.0, self.left_weight );
self.right_weight = common_scripts\utility::ter_op( self.right_weight > 1.0, 1.0, self.right_weight );
self.up_weight = common_scripts\utility::ter_op( self.up_weight > 1.0, 1.0, self.up_weight );
self.down_weight = common_scripts\utility::ter_op( self.down_weight > 1.0, 1.0, self.down_weight );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_left"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_right"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_up"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_down"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_left_parent"], self.left_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_right_parent"], self.right_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_up_parent"], self.up_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_down_parent"], self.down_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_left"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_right"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_up"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_down"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_left_parent"], self.left_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_right_parent"], self.right_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_up_parent"], self.up_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_down_parent"], self.down_weight, level.timestep );
}
ascend_aim_logic_cleanup()
{
level waittill( "ascend_rope_launched" );
thread maps\black_ice_audio::sfx_blackice_rig_start2_ss();
var_0 = 0.2;
var_1 = gettime();
level.player lerpviewangleclamp( var_0, 0, 0, 0, 0, 0, 0 );
var_2 = self.left_weight / ( var_0 / level.timestep );
var_3 = self.right_weight / ( var_0 / level.timestep );
var_4 = self.up_weight / ( var_0 / level.timestep );
var_5 = self.down_weight / ( var_0 / level.timestep );
while ( gettime() - var_1 < var_0 * 1000 )
{
self.left_weight = self.left_weight - var_2;
self.right_weight = self.right_weight - var_3;
self.up_weight = self.up_weight - var_4;
self.down_weight = self.down_weight - var_5;
self.left_weight = common_scripts\utility::ter_op( self.left_weight < 0.0, 0.0, self.left_weight );
self.right_weight = common_scripts\utility::ter_op( self.right_weight < 0.0, 0.0, self.right_weight );
self.up_weight = common_scripts\utility::ter_op( self.up_weight < 0.0, 0.0, self.up_weight );
self.down_weight = common_scripts\utility::ter_op( self.down_weight < 0.0, 0.0, self.down_weight );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_left"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_right"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_up"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_down"], 1, 0 );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_left_parent"], self.left_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_right_parent"], self.right_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_up_parent"], self.up_weight, level.timestep );
self setanimlimited( level.scr_anim["player_rig"]["rigascend_aim_down_parent"], self.down_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_left"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_right"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_up"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_down"], 1, 0 );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_left_parent"], self.left_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_right_parent"], self.right_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_up_parent"], self.up_weight, level.timestep );
level.ascend_launcher setanimlimited( level.scr_anim["ascend_launcher"]["ascender_aim_down_parent"], self.down_weight, level.timestep );
wait( level.timestep );
}
}
wait_and_unhide_ascend_aim_assets( var_0 )
{
wait( var_0 );
self show();
level.ascend_launcher show();
}
player_ramp_up_wind()
{
level endon( "notify_end_ascend_pendulum" );
var_0 = 0.0;
var_1 = 0.0;
var_2 = 0.0;
var_2 = level.player_rig getanimtime( level.scr_anim["player_rig"]["alpha_rig_ascend"] );
var_3 = 0.0;
var_4 = [];
var_4 = getnotetracktimes( level.scr_anim["player_rig"]["alpha_rig_ascend"], "max_wind" );
var_3 = var_4[0];
var_5 = 0.2;
var_6 = 1.0;
for (;;)
{
var_1 = level.player_rig getanimtime( level.scr_anim["player_rig"]["alpha_rig_ascend"] );
var_0 = maps\black_ice_util::normalize_value( var_2, var_3, var_1 );
var_0 = maps\black_ice_util::factor_value_min_max( var_5, var_6, var_0 );
level.player_rig setanimlimited( level.scr_anim["player_rig"]["rigascend_noise_parent"], var_0, 0.1 );
wait( level.timestep );
}
}
alpha_ascend_rubberband( var_0 )
{
level endon( "notify_ascend_rubberband_alpha_stop" );
level waittill( "notify_ascend_rubberband_alpha_start" );
var_1 = 0.1;
var_2 = level.ascend_anims_rate;
var_3 = 0.1;
for (;;)
{
var_4 = maps\black_ice_util::factor_value_min_max( var_1, var_2, level.ascend_current_rate );
level.alpha_curr_rate = level.alpha_curr_rate + ( var_4 - level.alpha_curr_rate ) * var_3;
maps\_anim::anim_set_rate( var_0, "alpha_rig_ascend", level.alpha_curr_rate );
wait( level.timestep );
}
}
alpha_ascend_rubberband_cleanup( var_0 )
{
level endon( "notify_alpha_ascend_complete" );
level waittill( "notify_ascend_rubberband_alpha_stop" );
var_1 = 0.1;
for (;;)
{
if ( level.alpha_curr_rate < level.ascend_anims_rate )
{
level.alpha_curr_rate = level.alpha_curr_rate + ( level.ascend_anims_rate - level.alpha_curr_rate ) * var_1;
maps\_anim::anim_set_rate( var_0, "alpha_rig_ascend", level.alpha_curr_rate );
}
wait( level.timestep );
}
}
bravo_ascend()
{
var_0 = [];
var_0["bravo1"] = level._bravo[0];
var_0["bravo2"] = level._bravo[1];
var_0["bravo1_ascend_launcher"] = level.bravo1_ascend_launcher;
var_0["bravo2_ascend_launcher"] = level.bravo2_ascend_launcher;
if ( isdefined( level.launchers_attached ) && level.launchers_attached )
{
level._bravo[0] detach( level.scr_model["ascend_launcher_non_anim"], "TAG_STOWED_BACK" );
level._bravo[1] detach( level.scr_model["ascend_launcher_non_anim"], "TAG_STOWED_BACK" );
level.launchers_attached = 0;
}
if ( isdefined( level.ascend_waiting ) && level.ascend_waiting )
level.bravo_ascend_anim_node thread maps\_anim::anim_loop( var_0, "ascend_waiting", "stop_loop" );
while ( !common_scripts\utility::flag( "flag_ascend_triggered" ) )
wait( level.timestep );
var_1 = gettime() / 1000.0;
if ( !common_scripts\utility::flag( "flag_ascend_ready_bravo_0" ) || !common_scripts\utility::flag( "flag_ascend_ready_bravo_1" ) )
common_scripts\utility::flag_wait( "flag_bravo_ascend_ready" );
var_1 = clamp( gettime() / 1000.0 - var_1, 0.0, 3.0 );
level.bravo_ascend_anim_node notify( "stop_loop" );
var_0["bravo_ascend_rope1"] = level.bravo_ascend_rope1;
var_0["bravo_ascend_rope2"] = level.bravo_ascend_rope2;
level.bravo_ascend_rope1 show();
level.bravo_ascend_rope2 show();
var_2 = getanimlength( var_0["bravo1"] maps\_utility::getanim( "bravo_rope_shoot" ) );
var_3 = var_2 - var_1;
foreach ( var_5 in var_0 )
{
level.bravo_ascend_anim_node thread maps\_anim::anim_single_solo( var_5, "bravo_rope_shoot" );
var_5 setanimtime( var_5 maps\_utility::getanim( "bravo_rope_shoot" ), var_1 / var_2 );
}
wait( var_3 );
level.bravo_ascend_anim_node thread maps\_anim::anim_loop( var_0, "bravo_rope_idle", "stop_loop" );
while ( !common_scripts\utility::flag( "flag_ascend_bravo_go" ) )
wait( level.timestep );
level.bravo_ascend_anim_node notify( "stop_loop" );
common_scripts\utility::array_thread( level._bravo, maps\_utility::set_ignoreme, 1 );
common_scripts\utility::array_thread( level._bravo, maps\_utility::disable_surprise );
thread play_falling_enemy();
var_0["bravo1_ascend_ascender"] = level.bravo1_ascend_ascender;
var_0["bravo2_ascend_ascender"] = level.bravo2_ascend_ascender;
level.bravo1_ascend_ascender show();
level.bravo2_ascend_ascender show();
thread bravo_ascend_rubberband( var_0 );
thread bravo_ascend_rubberband_cleanup( var_0 );
level.bravo_ascend_anim_node maps\_anim::anim_single( var_0, "bravo_rig_ascend" );
level notify( "notify_bravo_ascend_complete" );
common_scripts\utility::flag_set( "flag_bravo_ascend_complete" );
}
calculate_bravo_rubberband_base()
{
level.bravo_ascend_rubberband_base = level._bravo[1] getanimtime( level.scr_anim["bravo2"]["bravo_rig_ascend"] );
level notify( "notify_ascend_rubberband_bravo_start" );
}
bravo_ascend_rubberband( var_0 )
{
level endon( "notify_ascend_rubberband_bravo_stop" );
level waittill( "notify_ascend_rubberband_bravo_start" );
var_1 = 0.75;
var_2 = level.ascend_anims_rate;
var_3 = 0.0;
var_4 = 0.06;
var_5 = 0.1;
for (;;)
{
var_6 = level._bravo[1] getanimtime( level.scr_anim["bravo2"]["bravo_rig_ascend"] );
var_7 = 0;
if ( common_scripts\utility::flag( "flag_player_ascending" ) )
var_7 = level.player_rig getanimtime( level.scr_anim["player_rig"]["alpha_rig_ascend"] );
var_8 = var_6 - var_7 - level.bravo_ascend_rubberband_base;
var_9 = maps\black_ice_util::normalize_value( var_3, var_4, var_8 );
var_10 = maps\black_ice_util::factor_value_min_max( var_1, var_2, 1.0 - var_9 );
level.bravo_curr_rate = level.bravo_curr_rate + ( var_10 - level.bravo_curr_rate ) * var_5;
maps\_anim::anim_set_rate( var_0, "bravo_rig_ascend", level.bravo_curr_rate );
maps\_anim::anim_set_rate_single( level.ascend_enemy, "alpha_rig_ascend", level.bravo_curr_rate );
wait( level.timestep );
}
}
bravo_ascend_rubberband_cleanup( var_0 )
{
level endon( "notify_bravo_ascend_complete" );
level waittill( "notify_ascend_rubberband_bravo_stop" );
var_1 = 0.1;
for (;;)
{
level.bravo_curr_rate = level.bravo_curr_rate + ( level.ascend_anims_rate - level.bravo_curr_rate ) * var_1;
maps\_anim::anim_set_rate( var_0, "bravo_rig_ascend", level.bravo_curr_rate );
if ( isdefined( level.ascend_enemy ) )
maps\_anim::anim_set_rate_single( level.ascend_enemy, "alpha_rig_ascend", level.bravo_curr_rate );
wait( level.timestep );
}
}
ascend_mechanics( var_0 )
{
thread ascend_pendulum( level.player_ascend_anim_node, 1.25, 0.0, 1.5, undefined, "notify_end_ascend_pendulum" );
var_1 = 0.0;
var_2 = 0.1;
while ( !common_scripts\utility::flag( "flag_ascend_end" ) )
{
if ( level.allow_player_ascend_move == 0 )
{
maps\_anim::anim_set_rate( var_0, "alpha_rig_ascend", 1.0 );
level.ascend_current_rate = 1.0;
var_1 = 1.0;
wait( level.timestep );
continue;
}
switch ( level.ascend_state )
{
case "idle":
if ( level.ascend_state_transition )
ascend_idle_state_transition();
ascend_idle_state();
break;
case "ascend":
if ( level.ascend_state_transition )
ascend_ascend_state_transition();
ascend_ascend_state();
break;
case "stop":
if ( level.ascend_state_transition )
ascend_stop_state_transition();
ascend_stop_state();
break;
}
var_1 = var_1 + ( level.ascend_target_rate - var_1 ) * var_2;
maps\_anim::anim_set_rate( var_0, "alpha_rig_ascend", var_1 );
level.ascend_current_rate = var_1;
wait( level.timestep );
}
}
ascend_idle_state_transition()
{
level.ascend_state_transition = 0;
level.ascend_target_rate = 0.0;
}
ascend_idle_state()
{
if ( level.player attackbuttonpressed() )
{
level.ascend_state = "ascend";
level.ascend_state_transition = 1;
}
}
ascend_ascend_state_transition()
{
level.ascend_state_transition = 0;
level.start_ascend_time = gettime();
level.ascend_target_rate = level.ascend_anims_rate;
common_scripts\utility::flag_set( "flag_player_ascending" );
level.player_rig setanimrestart( level.scr_anim["player_rig"]["rig_ascend_start"] );
level.player_legs setanimrestart( level.scr_anim["player_legs_ascend"]["rig_ascend_start"] );
thread maps\black_ice_audio::sfx_rig_ascend_logic( "go" );
}
ascend_ascend_state()
{
var_0 = 500;
if ( gettime() - level.start_ascend_time > var_0 )
{
if ( !level.player attackbuttonpressed() )
{
level.ascend_state = "stop";
level.ascend_state_transition = 1;
}
}
if ( !common_scripts\utility::flag( "flag_bravo_ascend_complete" ) )
{
var_1 = 3.0;
level.ascend_target_rate = level.ascend_anims_rate + ( level.ascend_anims_rate - level.bravo_curr_rate ) / var_1;
}
else
level.ascend_target_rate = level.ascend_anims_rate;
}
ascend_stop_state_transition()
{
level.ascend_state_transition = 0;
level.stop_ascend_time = gettime();
level.ascend_target_rate = 0.0;
common_scripts\utility::flag_clear( "flag_player_ascending" );
level.player_rig setanimrestart( level.scr_anim["player_rig"]["rig_ascend_stop"] );
level.player_legs setanimrestart( level.scr_anim["player_legs_ascend"]["rig_ascend_stop"] );
thread maps\black_ice_audio::sfx_rig_ascend_logic( "stop" );
}
ascend_stop_state()
{
var_0 = 500;
if ( gettime() - level.stop_ascend_time > var_0 )
{
level.ascend_state = "idle";
level.ascend_state_transition = 1;
}
}
ascend_pendulum( var_0, var_1, var_2, var_3, var_4, var_5 )
{
if ( isdefined( var_5 ) )
level endon( var_5 );
var_6 = var_0.angles[0];
var_7 = var_0.angles[1];
var_8 = var_0.angles[2];
var_9 = 0.0;
var_10 = 0.0;
var_11 = 0.0;
var_12 = 0.015;
var_13 = 385.73;
var_14 = 1240.0;
var_15 = 300.0;
var_16 = 100.0;
var_17 = var_16 / 360.0;
var_18 = 0.0;
var_19 = var_15;
var_20 = 0.0;
var_21 = 0.0;
var_22 = 0.0;
if ( isdefined( var_4 ) && var_4 > 0.0 )
{
var_19 = var_4;
var_20 = sqrt( var_13 / var_19 );
var_21 = var_17 * var_20;
var_22 = 1.0 / var_21;
}
while ( !common_scripts\utility::flag_exist( "flag_common_breach" ) || !common_scripts\utility::flag( "flag_common_breach" ) )
{
if ( !isdefined( var_4 ) )
{
var_23 = level.player_rig getanimtime( level.scr_anim["player_rig"]["alpha_rig_ascend"] );
var_19 = ( 1.0 - var_23 ) * var_14;
if ( var_19 < var_15 )
var_19 = var_15;
var_20 = sqrt( var_13 / var_19 );
var_21 = var_17 * var_20;
var_22 = 1.0 / var_21;
}
if ( var_18 > var_22 )
var_18 = var_18 - var_22;
var_24 = var_20 * var_18 * var_16;
var_9 = var_9 + ( var_1 - var_9 ) * var_12;
var_25 = var_9 * sin( var_24 + 90 );
var_10 = var_10 + ( var_2 - var_10 ) * var_12;
var_26 = var_10 * sin( var_24 + 90 );
var_11 = var_11 + ( var_3 - var_11 ) * var_12;
var_27 = var_11 * sin( var_24 );
var_0.angles = ( var_6 + var_25, var_7 + var_26, var_8 + var_27 );
var_18 = var_18 + level.timestep;
wait( level.timestep );
}
var_0 notify( "notify_pendular_motion_complete" );
}
hanging_cargo_motion()
{
var_0 = 3;
thread maps\black_ice_audio::sfx_cargo_sway();
var_1 = spawn( "script_model", ( -1449, 3698, 1490 ) );
for ( var_2 = 0; var_2 < var_0; var_2++ )
{
var_3 = getent( "hanging_cargo_node_" + var_2, "script_noteworthy" );
var_4 = getentarray( "hanging_cargo_" + var_2, "targetname" );
var_5 = 0.0;
if ( var_4.size )
{
var_6 = 0.0;
for ( var_7 = 0; var_7 < var_4.size; var_7++ )
{
var_4[var_7] linkto( var_3 );
if ( isdefined( var_4[var_7].target ) )
{
var_8 = getent( var_4[var_7].target, "targetname" );
var_8 linkto( var_4[var_7] );
}
var_6 = var_6 + var_4[var_7].origin[2];
if ( var_2 == 2 )
var_4[var_7] retargetscriptmodellighting( var_1 );
}
var_6 = var_6 / var_4.size;
var_9 = ( var_4[0].origin[0], var_4[0].origin[1], var_6 );
var_5 = length( var_3.origin - var_9 );
}
thread ascend_pendulum( var_3, randomfloatrange( 0.975, 1.275 ), randomfloatrange( 4.0, 6.0 ), randomfloatrange( 0.3, 0.6 ), var_5 );
thread hanging_cargo_cleanup( var_3, var_4 );
if ( isdefined( var_3.targetname ) && var_3.targetname == "hanging_cargo_ascend" )
thread hanging_cargo_ascension( var_3 );
}
}
hanging_cargo_ascension( var_0 )
{
common_scripts\utility::flag_wait( "flag_mid_start" );
var_1 = var_0.origin + ( 0, 0, 1000 );
var_2 = 30.0;
var_0 moveto( var_1, var_2, 1.0, 0.0 );
thread maps\black_ice_audio::sfx_cargo_lift( var_0 );
wait( var_2 / 2.0 );
thread maps\black_ice_audio::sfx_cargo_hatch();
var_3 = 5.0;
var_4 = getent( "left_cargo_elevator_door_1", "targetname" );
var_5 = getent( "left_cargo_elevator_door_2", "targetname" );
var_4 moveto( var_4.origin + ( 0, 226, 0 ), var_3, 0.0, 0.0 );
var_5 moveto( var_5.origin + ( 0, -226, 0 ), var_3, 0.0, 0.0 );
}
hanging_cargo_cleanup( var_0, var_1 )
{
var_0 waittill( "notify_pendular_motion_complete" );
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
var_1[var_2] delete();
var_0 delete();
}
post_ascend_cleanup()
{
while ( !level.player_rig maps\black_ice_util::check_anim_time( "player_rig", "alpha_rig_ascend", 1.0 ) )
wait( level.timestep );
while ( !common_scripts\utility::flag( "flag_alpha_ascend_complete" ) || !common_scripts\utility::flag( "flag_bravo_ascend_complete" ) )
wait( level.timestep );
common_scripts\utility::flag_set( "sfx_ascend_done" );
common_scripts\utility::flag_set( "flag_ascend_end" );
maps\_utility::stop_exploder( "basecamp_snow" );
maps\black_ice_util::player_animated_sequence_cleanup();
level.ascend_anim_node = undefined;
level.bravo_ascend_anim_node = undefined;
level.player_ascend_anim_node = undefined;
level.player_legs delete();
level.player_legs = undefined;
level.allow_player_ascend_move = undefined;
level.ascend_current_rate = undefined;
level.bravo_curr_rate = undefined;
level.alpha_curr_rate = undefined;
}
hint_ascend_init_func()
{
return !common_scripts\utility::flag( "hint_ascend_init" );
}
hint_ascend_func()
{
return common_scripts\utility::ter_op( level.player attackbuttonpressed(), 1, 0 );
}
notetrack_fire_shake( var_0 )
{
earthquake( 0.4, 0.5, level.player.origin, 2048 );
level.player playrumbleonentity( "pistol_fire" );
}
notetrack_takeoff( var_0 )
{
earthquake( 0.3, 1.0, level.player.origin, 2048 );
level.player playrumbleonentity( "grenade_rumble" );
}
notetrack_shake_start( var_0 )
{
}
notetrack_shake_stop( var_0 )
{
}
ascend_mblur_changes()
{
common_scripts\utility::flag_wait( "flag_player_ascending" );
if ( maps\_utility::is_gen4() )
{
setsaveddvar( "r_mbEnable", 0 );
setsaveddvar( "r_mbCameraRotationInfluence", 0.07 );
setsaveddvar( "r_mbCameraTranslationInfluence", 0.15 );
setsaveddvar( "r_mbModelVelocityScalar", 0.09 );
setsaveddvar( "r_mbStaticVelocityScalar", 0.03 );
setsaveddvar( "r_mbViewModelEnable", 1 );
setsaveddvar( "r_mbViewModelVelocityScalar", 0.004 );
}
common_scripts\utility::flag_wait( "flag_ascend_end" );
if ( maps\_utility::is_gen4() )
maps\black_ice::set_default_mb_values();
}