1099 lines
37 KiB
Plaintext
1099 lines
37 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
section_flag_inits()
|
|
{
|
|
common_scripts\utility::flag_init( "flag_end_wreck_start" );
|
|
common_scripts\utility::flag_init( "flag_end_wreck_end" );
|
|
common_scripts\utility::flag_init( "hint_displayed" );
|
|
common_scripts\utility::flag_init( "gun_loaded" );
|
|
common_scripts\utility::flag_init( "dry_fire" );
|
|
common_scripts\utility::flag_init( "shot_successful" );
|
|
common_scripts\utility::flag_init( "qte_prompt_solid" );
|
|
common_scripts\utility::flag_init( "player_got_gun" );
|
|
common_scripts\utility::flag_init( "look_down_forced" );
|
|
common_scripts\utility::flag_init( "flag_qte_fail" );
|
|
common_scripts\utility::flag_init( "flag_qte_end" );
|
|
common_scripts\utility::flag_init( "knife_attached" );
|
|
}
|
|
|
|
section_precache()
|
|
{
|
|
precacheitem( "coltanaconda_skyway" );
|
|
precachemodel( "viewmodel_magum_iw6" );
|
|
precachemodel( "weapon_magnum_iw6" );
|
|
precachemodel( "sw_traincar_loco_ending" );
|
|
precachemodel( "sw_speedloader" );
|
|
precachemodel( "weapon_bullet_iw5" );
|
|
precacheshader( "hud_icon_colt_anaconda" );
|
|
}
|
|
|
|
section_post_inits()
|
|
{
|
|
level._end_wreck = spawnstruct();
|
|
level._end_wreck.ally_start = getent( "ally1_start_end_swim", "targetname" );
|
|
level._end_wreck.player_start = getent( "player_start_end_swim", "targetname" );
|
|
}
|
|
|
|
start()
|
|
{
|
|
iprintln( "end wreck" );
|
|
var_0 = getentarray( "bridge_end_1", "script_noteworthy" );
|
|
var_1 = getentarray( "bridge_end_2", "script_noteworthy" );
|
|
|
|
foreach ( var_3 in var_0 )
|
|
var_3 hide();
|
|
|
|
foreach ( var_3 in var_1 )
|
|
var_3 hide();
|
|
|
|
common_scripts\utility::flag_set( "flag_end_wreck_start" );
|
|
maps\_utility::vision_set_fog_changes( "skyway_endwreck", 0.1 );
|
|
|
|
if ( maps\_utility::is_gen4() )
|
|
{
|
|
setsaveddvar( "r_mbEnable", "2" );
|
|
thread maps\skyway_util::set_motionblur_values( 0.06, 1, 0.3, 0.59, 0.1 );
|
|
}
|
|
|
|
maps\skyway_util::player_start( level._end_wreck.player_start );
|
|
level._allies[0] forceteleport( level._end_wreck.ally_start.origin, level._end_wreck.ally_start.angles );
|
|
level._allies[0] maps\_utility::set_force_color( "r" );
|
|
var_7 = maps\_hud_util::create_client_overlay( "black", 0, level.player );
|
|
var_7.alpha = 1;
|
|
var_7.foreground = 0;
|
|
level.black_overlay = var_7;
|
|
maps\_utility::delaythread( 0.05, maps\_utility::remove_extra_autosave_check, "fallen_cant_get_up" );
|
|
}
|
|
|
|
main()
|
|
{
|
|
var_0 = getent( "enemy_target", "targetname" );
|
|
var_0 hide();
|
|
level.player allowstand( 1 );
|
|
level.player allowcrouch( 1 );
|
|
level.player allowmelee( 0 );
|
|
thread maps\skyway_fx::fx_underwater_amb_01();
|
|
wait 1;
|
|
common_scripts\utility::flag_set( "flag_end_wreck_start" );
|
|
thread fade_in_from_black();
|
|
level.player playersetgroundreferenceent( undefined );
|
|
maps\_utility::vision_set_fog_changes( "skyway_endwreck", 0.1 );
|
|
part_2_setup();
|
|
common_scripts\utility::flag_wait( "flag_end_wreck_end" );
|
|
setblur( 0, 0.1 );
|
|
level.player painvisionoff();
|
|
level.player allowstand( 1 );
|
|
thread cleanup_delayed();
|
|
level._boss maps\_utility::gun_recall();
|
|
setsaveddvar( "player_view_pitch_down", 85 );
|
|
level.player playersetgroundreferenceent( undefined );
|
|
}
|
|
|
|
part_2_setup()
|
|
{
|
|
maps\skyway_util::skyway_hide_hud();
|
|
thread maps\skyway_audio::sfx_water_amb();
|
|
level.end_wreck_node = getent( "end_wreck_origin", "targetname" );
|
|
var_0 = level._ally;
|
|
var_0 maps\_utility::gun_remove();
|
|
thread part_2_dialog( var_0 );
|
|
|
|
if ( !isdefined( level._boss ) )
|
|
maps\skyway_util::spawn_boss();
|
|
|
|
var_1 = level._boss;
|
|
var_1 maps\_utility::gun_remove();
|
|
setsaveddvar( "aim_aimAssistRangeScale", "0" );
|
|
setsaveddvar( "aim_autoAimRangeScale", "0" );
|
|
level.player_rig = maps\_utility::spawn_anim_model( "player_rig" );
|
|
var_2 = maps\_utility::spawn_anim_model( "pt2_gun" );
|
|
var_3 = maps\_utility::spawn_anim_model( "pt2_extinguisher" );
|
|
thread part_2_animated_seafloor();
|
|
part_2_crash( var_0, var_1, level.player_rig, var_2, var_3 );
|
|
common_scripts\utility::flag_wait( "player_got_gun" );
|
|
level.player showviewmodel();
|
|
level.player enableweapons();
|
|
level.player giveweapon( "coltanaconda_skyway" );
|
|
level.player switchtoweapon( "coltanaconda_skyway" );
|
|
level.player setweaponammoclip( "coltanaconda_skyway", 0 );
|
|
level.player setweaponammostock( "coltanaconda_skyway", 0 );
|
|
level.playerviewmodel = maps\_utility::spawn_anim_model( "player_rig_magnum", level.player.origin );
|
|
level.playerviewmodel linktoplayerview( level.player, "tag_player", ( 0, 0, 0 ), ( 0, 0, 0 ), 1 );
|
|
var_4 = level.player common_scripts\utility::spawn_tag_origin();
|
|
level.player playerlinkto( var_4, "tag_origin", 0, 90, 90, 40, 40 );
|
|
level.player playsound( "scn_sw_uw_pickup_gun_plr" );
|
|
level.player maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_draw" );
|
|
level.player unlink();
|
|
level.player thread maps\_anim::anim_loop_solo( level.playerviewmodel, "pt2_aim_loop", "stop_loop" );
|
|
thread part_2_gun_fire( var_2 );
|
|
}
|
|
|
|
part_2_dialog( var_0 )
|
|
{
|
|
level waittill( "hesch_kick_vo" );
|
|
level endon( "player_missed" );
|
|
level endon( "shot_successful" );
|
|
|
|
if ( !common_scripts\utility::flag( "player_got_gun" ) )
|
|
var_0 thread maps\_utility::smart_dialogue( "skyway_hsh_getthegun" );
|
|
|
|
common_scripts\utility::flag_wait( "player_got_gun" );
|
|
wait 3;
|
|
|
|
if ( !common_scripts\utility::flag( "dry_fire" ) )
|
|
var_0 thread maps\_utility::smart_dialogue( "skyway_hsh_shoothim" );
|
|
|
|
level waittill( "hesch_speedloader_vo" );
|
|
var_0 thread maps\_utility::smart_dialogue( "skyway_hsh_here" );
|
|
common_scripts\utility::flag_wait( "gun_loaded" );
|
|
wait 0.25;
|
|
var_0 thread maps\_utility::smart_dialogue( "skyway_hsh_logandoitnow" );
|
|
wait 1.75;
|
|
var_0 thread maps\_utility::smart_dialogue( "skyway_hsh_doit" );
|
|
}
|
|
|
|
part_2_animated_seafloor( var_0 )
|
|
{
|
|
var_0 = getent( "sea_floor_animated", "targetname" );
|
|
var_1 = getent( "light_target_seafloor", "targetname" );
|
|
var_0 retargetscriptmodellighting( var_1 );
|
|
var_0.animname = "seafloor";
|
|
var_0 maps\_anim::setanimtree();
|
|
level.end_wreck_node thread maps\_anim::anim_single_solo( var_0, "pt2_crash" );
|
|
var_2 = common_scripts\utility::spawn_tag_origin();
|
|
var_2 linkto( var_0, "tag_fx_impact_dust_cloud", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
var_3 = common_scripts\utility::spawn_tag_origin();
|
|
var_3 linkto( var_0, "tag_fx_impact_dust_cloud_2", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
var_4 = common_scripts\utility::spawn_tag_origin();
|
|
var_4 linkto( var_0, "tag_fx_impact_dust_cloud_3", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
var_5 = common_scripts\utility::spawn_tag_origin();
|
|
var_5 linkto( var_0, "tag_fx_impact_dust_cloud_4", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
level waittill( "notify_hit_floor_1" );
|
|
thread maps\skyway_util::player_rumble_bump( level.player_rumble_ent, 0.8, 0.0, 0.2, 0.0, 0.8 );
|
|
earthquake( 0.35, 0.7, level.player.origin, 3000 );
|
|
level.player thread maps\_utility::play_sound_on_entity( "sw_Train_hit_seafloor_big" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "sw_train_hit_seafloor_1" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "emt_skyway_mtl_crgtd_hit" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "emt_skyway_mtl_stress_big" );
|
|
wait 0.15;
|
|
common_scripts\utility::exploder( "underwater_loco_headlight_dust" );
|
|
playfxontag( common_scripts\utility::getfx( "underwater_particulate_cloud_spot" ), var_2, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "underwater_particulate_cloud_03" ), var_2, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "underwater_particulate_cloud_03" ), var_3, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "underwater_particulate_cloud_03" ), var_4, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "underwater_particulate_cloud_03" ), var_5, "tag_origin" );
|
|
wait 1.5;
|
|
maps\_utility::stop_exploder( "underwater_loco_headlight" );
|
|
level waittill( "notify_hit_floor_2" );
|
|
level.player playrumbleonentity( "damage_heavy" );
|
|
earthquake( 0.3, 0.4, level.player.origin, 3000 );
|
|
level.player thread maps\_utility::play_sound_on_entity( "sw_train_hit_seafloor_2" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "emt_skyway_mtl_crgtd_hit" );
|
|
level waittill( "notify_hit_floor_3" );
|
|
level.player playrumbleonentity( "damage_light" );
|
|
earthquake( 0.15, 0.3, level.player.origin, 3000 );
|
|
level.player thread maps\_utility::play_sound_on_entity( "sw_train_hit_seafloor_3" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "emt_skyway_mtl_stress_big" );
|
|
level waittill( "notify_hit_floor_4" );
|
|
level.player playrumbleonentity( "damage_heavy" );
|
|
earthquake( 0.3, 0.4, level.player.origin, 3000 );
|
|
level.player thread maps\_utility::play_sound_on_entity( "sw_train_hit_seafloor_2" );
|
|
level.player thread maps\_utility::play_sound_on_entity( "emt_skyway_mtl_crgtd_hit" );
|
|
level waittill( "flag_end_swim_start" );
|
|
var_2 delete();
|
|
var_3 delete();
|
|
var_4 delete();
|
|
var_5 delete();
|
|
}
|
|
|
|
part_2_crash( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
thread player_hurt_effects();
|
|
thread glass_crack_effects();
|
|
var_5 = [];
|
|
var_5["ally1"] = var_0;
|
|
var_5["enemy"] = var_1;
|
|
var_5["extinguisher"] = var_4;
|
|
var_5["gun"] = var_3;
|
|
var_5["player_rig"] = var_2;
|
|
var_6 = [];
|
|
var_7 = maps\_utility::spawn_anim_model( "debris" );
|
|
wreck_enemy_setup();
|
|
var_6["debris"] = var_7;
|
|
var_6["dead_guy_1"] = level.end_enemies[0];
|
|
var_6["dead_guy_2"] = level.end_enemies[1];
|
|
level.player disableweapons();
|
|
level.player disableoffhandweapons();
|
|
level.player hideviewmodel();
|
|
level.player freezecontrols( 1 );
|
|
level.player allowprone( 1 );
|
|
level.player allowstand( 0 );
|
|
level.player allowcrouch( 0 );
|
|
level.player setstance( "prone" );
|
|
var_8 = 0;
|
|
level.player playerlinktodelta( var_2, "tag_player", 0, var_8, var_8, var_8, var_8, 1 );
|
|
thread maps\skyway_audio::sfx_wreck_01();
|
|
thread part_2_ambient_animations( var_6 );
|
|
level.end_wreck_node maps\_anim::anim_single( var_5, "pt2_crash" );
|
|
thread part_2_crawl( var_0, var_1, var_2, var_3, var_4 );
|
|
part_2_crawl_player( var_0, var_1, var_2, var_3 );
|
|
}
|
|
|
|
wreck_enemy_setup()
|
|
{
|
|
var_0 = getentarray( "loco_breach_enemy", "targetname" );
|
|
|
|
if ( !isdefined( level.end_enemies ) )
|
|
level.end_enemies = [];
|
|
else
|
|
{
|
|
foreach ( var_2 in level.end_enemies )
|
|
{
|
|
if ( isalive( var_2 ) )
|
|
{
|
|
if ( isdefined( var_2.magic_bullet_shield ) )
|
|
var_2 thread maps\_utility::stop_magic_bullet_shield();
|
|
|
|
var_2 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
for ( var_4 = 0; var_4 < 2; var_4++ )
|
|
{
|
|
if ( !isdefined( level.end_enemies[var_4] ) || !isalive( level.end_enemies[var_4] ) )
|
|
{
|
|
var_0[var_4].count = 2;
|
|
var_5 = var_0[var_4] maps\_utility::spawn_ai( 1 );
|
|
var_5 prepare_enemy_for_wreck();
|
|
var_5.animname = "opfor" + ( var_4 + 1 );
|
|
level.end_enemies[var_4] = var_5;
|
|
}
|
|
}
|
|
}
|
|
|
|
prepare_enemy_for_wreck()
|
|
{
|
|
maps\_utility::set_battlechatter( 0 );
|
|
self.combatmode = "no_cover";
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
self.newenemyreactiondistsq_old = self.newenemyreactiondistsq;
|
|
self.newenemyreactiondistsq = 0;
|
|
self.grenadeammo = 0;
|
|
maps\_utility::gun_remove();
|
|
}
|
|
|
|
part_2_ambient_animations( var_0 )
|
|
{
|
|
var_0 thread ambient_guys_anims();
|
|
common_scripts\utility::flag_wait( "flag_end_wreck_end" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
if ( isdefined( var_2.magic_bullet_shield ) )
|
|
var_2 thread maps\_utility::stop_magic_bullet_shield();
|
|
|
|
var_2 delete();
|
|
}
|
|
|
|
level notify( "notify_amb_guys_deleted" );
|
|
level.end_enemies = undefined;
|
|
}
|
|
|
|
ambient_guys_anims()
|
|
{
|
|
level endon( "notify_amb_guys_deleted" );
|
|
level.end_wreck_node maps\_anim::anim_single( self, "pt2_crash" );
|
|
level.end_wreck_node thread maps\_anim::anim_loop( self, "pt2_crash_loop", "stop_loop" );
|
|
}
|
|
|
|
player_hurt_effects()
|
|
{
|
|
level.player.health = 100;
|
|
level waittill( "notify_player_hurt" );
|
|
level.player dodamage( level.player.health - 1, level.player.origin );
|
|
var_0 = anglestoforward( level.player.angles );
|
|
playfx( level._effect["deathfx_bloodpool_generic"], level.player.origin + var_0 * 24 );
|
|
}
|
|
|
|
glass_crack_effects()
|
|
{
|
|
var_0 = getent( "wreck_glass_crack_01", "targetname" );
|
|
var_0 hide();
|
|
var_1 = getent( "wreck_glass_crack_02", "targetname" );
|
|
var_1 hide();
|
|
var_2 = getent( "wreck_glass_crack_player", "targetname" );
|
|
var_2 hide();
|
|
level waittill( "glass_crack_01" );
|
|
var_0 show();
|
|
thread player_glass_crack( var_2 );
|
|
level waittill( "glass_crack_02" );
|
|
var_1 show();
|
|
}
|
|
|
|
player_glass_crack( var_0 )
|
|
{
|
|
var_1 = getent( "get_speedloader_trigger", "targetname" );
|
|
|
|
while ( !level.player istouching( var_1 ) )
|
|
wait 0.01;
|
|
|
|
var_0 show();
|
|
level.player playsound( "scn_sw_uw_plyr_glass" );
|
|
}
|
|
|
|
part_2_crawl_player( var_0, var_1, var_2, var_3 )
|
|
{
|
|
maps\_utility::remove_extra_autosave_check( "fallen_cant_get_up" );
|
|
level.dopickyautosavechecks = 0;
|
|
thread maps\_utility::autosave_by_name_silent( "end_wreck" );
|
|
setsaveddvar( "player_view_pitch_down", 10 );
|
|
level.player unlink();
|
|
var_2 delete();
|
|
level.ground_ref = getent( "pt2_ground_ref", "targetname" );
|
|
level.player playersetgroundreferenceent( level.ground_ref );
|
|
level.ground_ref thread part_2_aim_waver();
|
|
level.player enableslowaim( 0.2, 0.2 );
|
|
level.player freezecontrols( 0 );
|
|
level.player allowprone( 1 );
|
|
level.player allowstand( 0 );
|
|
level.player allowcrouch( 0 );
|
|
level.player allowsprint( 0 );
|
|
level.player disableweapons( 1 );
|
|
level.player setstance( "prone" );
|
|
thread part_2_dynamic_crawl();
|
|
level.player takeallweapons();
|
|
setsaveddvar( "g_friendlyfireDist", 0 );
|
|
thread part_2_draw_player( var_0, var_1, var_2, var_3 );
|
|
}
|
|
|
|
part_2_dynamic_crawl()
|
|
{
|
|
level endon( "flag_end_wreck_end" );
|
|
|
|
while ( !common_scripts\utility::flag( "shot_successful" ) )
|
|
{
|
|
thread update_crawl_speed( 1 );
|
|
wait 2;
|
|
thread update_crawl_speed( 3 );
|
|
wait 0.5;
|
|
}
|
|
|
|
for (;;)
|
|
{
|
|
level.player maps\_utility::player_speed_percent( 25, 1 );
|
|
wait 2;
|
|
level.player maps\_utility::player_speed_percent( 50, 0.25 );
|
|
wait 0.5;
|
|
}
|
|
}
|
|
|
|
update_crawl_speed( var_0 )
|
|
{
|
|
level notify( "set_crawl_speed" );
|
|
level endon( "set_crawl_speed" );
|
|
var_1 = getent( "pt2_ground_ref", "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
var_2 = distance( level.player.origin, var_1.origin );
|
|
var_3 = var_2 / 7;
|
|
level.player maps\_utility::player_speed_percent( var_3 * var_0, 1 );
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
part_2_crawl( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
var_5 = [];
|
|
var_5["ally1"] = var_0;
|
|
var_5["gun"] = var_3;
|
|
var_5["enemy"] = var_1;
|
|
var_5["extinguisher"] = var_4;
|
|
thread enemy_fires_gun( var_3 );
|
|
thread part_2_knife_logic( var_1 );
|
|
level.end_wreck_node maps\_anim::anim_single( var_5, "pt2_crawl" );
|
|
part_2_fight( var_0, var_1 );
|
|
}
|
|
|
|
enemy_fires_gun( var_0 )
|
|
{
|
|
level waittill( "enemy_gun_fire" );
|
|
playfxontag( level._effect["magnum_flash"], var_0, "TAG_flash" );
|
|
var_1 = anglestoforward( var_0 gettagangles( "TAG_flash" ) );
|
|
var_2 = vectornormalize( var_1 );
|
|
var_3 = var_0 gettagorigin( "TAG_Flash" ) + 1000 * var_2;
|
|
magicbullet( "coltanaconda_skyway", var_0 gettagorigin( "TAG_Flash" ), var_3, level.player );
|
|
level.player playsound( "sw_wreck_close_shot_1" );
|
|
level.player playsound( "sw_wreck_close_shot_2" );
|
|
level notify( "gun_available" );
|
|
wait 0.1;
|
|
common_scripts\utility::exploder( "sw_ricochet_1" );
|
|
wait 0.2;
|
|
common_scripts\utility::exploder( "sw_ricochet_2" );
|
|
}
|
|
|
|
part_2_draw_player( var_0, var_1, var_2, var_3 )
|
|
{
|
|
level waittill( "gun_available" );
|
|
var_4 = getent( "get_gun_trigger", "targetname" );
|
|
create_qte_prompt( &"SKYWAY_HINT_PICK_UP_GUN", "hud_icon_colt_anaconda", 1.5 );
|
|
thread trigger_qte_prompt_check( var_4 );
|
|
|
|
for (;;)
|
|
{
|
|
if ( level.player usebuttonpressed() && level.player istouching( var_4 ) )
|
|
break;
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
var_4 common_scripts\utility::trigger_off();
|
|
destroy_qte_prompt();
|
|
var_3 delete();
|
|
common_scripts\utility::flag_set( "player_got_gun" );
|
|
}
|
|
|
|
part_2_knife_logic( var_0 )
|
|
{
|
|
level waittill( "spawn_knife" );
|
|
var_0 attach( "weapon_parabolic_knife", "tag_inhand" );
|
|
common_scripts\utility::flag_set( "knife_attached" );
|
|
level waittill( "flag_end_wreck_end" );
|
|
|
|
if ( common_scripts\utility::flag( "knife_attached" ) )
|
|
var_0 detach( "weapon_parabolic_knife", "tag_inhand" );
|
|
}
|
|
|
|
detach_knife( var_0 )
|
|
{
|
|
var_0 detach( "weapon_parabolic_knife", "tag_inhand" );
|
|
common_scripts\utility::flag_clear( "knife_attached" );
|
|
level.knife = spawn( "script_model", var_0 gettagorigin( "tag_inhand" ) );
|
|
level.knife setmodel( "weapon_parabolic_knife" );
|
|
level.knife.angles = var_0 gettagangles( "tag_inhand" );
|
|
}
|
|
|
|
attach_knife( var_0 )
|
|
{
|
|
var_0 attach( "weapon_parabolic_knife", "tag_inhand" );
|
|
common_scripts\utility::flag_set( "knife_attached" );
|
|
level.knife delete();
|
|
}
|
|
|
|
part_2_fight( var_0, var_1 )
|
|
{
|
|
var_2 = [];
|
|
var_2["ally1"] = var_0;
|
|
var_2["enemy"] = var_1;
|
|
level.end_wreck_node thread maps\_anim::anim_single( var_2, "pt2_fight" );
|
|
thread part_2_fight_timeout( 9 );
|
|
common_scripts\utility::flag_wait( "dry_fire" );
|
|
thread maps\skyway_audio::sfx_wreck_02();
|
|
part_2_speedloader( var_0, var_1 );
|
|
}
|
|
|
|
part_2_fight_timeout( var_0 )
|
|
{
|
|
level endon( "dry_fire" );
|
|
level endon( "wet_fire" );
|
|
level endon( "hesch_speedloader_vo" );
|
|
wait( var_0 );
|
|
level notify( "failure" );
|
|
level._ally playsound( "scn_sw_hesh_stabbed" );
|
|
wait 1;
|
|
setdvar( "ui_deadquote", &"SKYWAY_FAIL_ALLY_STABBED" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
part_2_speedloader( var_0, var_1 )
|
|
{
|
|
level.speedloader = maps\_utility::spawn_anim_model( "pt2_speedloader" );
|
|
level.player_rig_grab = maps\_utility::spawn_anim_model( "player_rig" );
|
|
level.player_rig_grab hide();
|
|
level.bullet_start = maps\_utility::spawn_anim_model( "pt2_bullet_start" );
|
|
level.bullet_end = maps\_utility::spawn_anim_model( "pt2_bullet_end" );
|
|
level.end_wreck_player_node = common_scripts\utility::spawn_tag_origin();
|
|
level.end_wreck_player_node.angles = level.end_wreck_node.angles;
|
|
level.end_wreck_player_node.origin = level.player.origin;
|
|
level.player_rig_grab linkto( level.end_wreck_player_node );
|
|
level.bullet_end linkto( level.end_wreck_player_node );
|
|
level.bullet_blender = common_scripts\utility::spawn_tag_origin();
|
|
level.bullet_blender linkto( level.bullet_start, "tag_helo", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
level.bullet_tumble = maps\_utility::spawn_anim_model( "pt2_bullet_tumble" );
|
|
level.bullet_tumble linkto( level.bullet_blender, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
level.bullet_catch = maps\_utility::spawn_anim_model( "pt2_bullet" );
|
|
level.bullet_catch linkto( level.bullet_tumble, "tag_helo", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
level.bullet_catch hide();
|
|
thread qte_bullet_blender();
|
|
thread qte_bullet_shine();
|
|
var_2 = [];
|
|
var_2["ally1"] = var_0;
|
|
var_2["enemy"] = var_1;
|
|
var_2["speedloader"] = level.speedloader;
|
|
var_2["pt2_bullet_start"] = level.bullet_start;
|
|
var_3 = getent( "enemy_target", "targetname" );
|
|
var_3 linkto( var_1, "J_SpineUpper" );
|
|
thread part_2_shoot_chance( var_0, var_1 );
|
|
level.bullet_tumble setanim( level.scr_anim["pt2_bullet_tumble"]["pt2_speedloader"] );
|
|
level.end_wreck_player_node thread maps\_anim::anim_single_solo( level.bullet_end, "pt2_speedloader" );
|
|
level.end_wreck_player_node thread maps\_anim::anim_single_solo( level.player_rig_grab, "pt2_speedloader" );
|
|
level.end_wreck_node maps\_anim::anim_single( var_2, "pt2_speedloader" );
|
|
level.end_wreck_node thread maps\_anim::anim_single_solo( level.speedloader, "pt2_load_gun" );
|
|
}
|
|
|
|
part_2_shoot_chance( var_0, var_1 )
|
|
{
|
|
var_2 = [];
|
|
var_2["ally1"] = var_0;
|
|
var_2["enemy"] = var_1;
|
|
thread part_2_shoot_chance_timeout( var_2 );
|
|
level waittill( "wet_fire" );
|
|
|
|
if ( common_scripts\utility::flag( "shot_successful" ) )
|
|
{
|
|
var_3 = common_scripts\utility::spawn_tag_origin();
|
|
setslowmotion( 1.0, 0.1, 0.25 );
|
|
level.end_wreck_node maps\_anim::anim_first_frame( var_2, "pt2_fire_win" );
|
|
var_3 = getent( "rorke_blood_fx_source", "targetname" );
|
|
playfx( common_scripts\utility::getfx( "blood_rorke" ), var_3.origin, anglestoforward( var_3.angles ) );
|
|
level.end_wreck_node thread maps\_anim::anim_single( var_2, "pt2_fire_win" );
|
|
thread maps\skyway_fx::fx_glass_cracks_01();
|
|
thread part_2_help_ally( var_0, var_1 );
|
|
var_3 common_scripts\utility::delaycall( 10, ::delete );
|
|
}
|
|
else
|
|
{
|
|
level waittill( "gun_down" );
|
|
thread maps\skyway_fx::fx_hesh_neck_cut();
|
|
|
|
if ( !common_scripts\utility::flag( "gun_loaded" ) )
|
|
level notify( "stop_reload" );
|
|
|
|
level.player thread maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_fire_win" );
|
|
wait 3.2;
|
|
level.playerviewmodel delete();
|
|
setdvar( "ui_deadquote", &"SKYWAY_FAIL_NO_SHOOT" );
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
|
|
part_2_shoot_chance_timeout( var_0 )
|
|
{
|
|
level endon( "shot_successful" );
|
|
level common_scripts\utility::waittill_notify_or_timeout( "wet_fire", 15 );
|
|
level.end_wreck_node thread maps\_anim::anim_single( var_0, "pt2_fire_fail" );
|
|
level waittill( "too_late_now" );
|
|
level notify( "wet_fire" );
|
|
common_scripts\utility::waitframe();
|
|
level notify( "gun_down" );
|
|
}
|
|
|
|
part_2_aim_waver()
|
|
{
|
|
level endon( "stop_waver" );
|
|
level endon( "flag_end_wreck_end" );
|
|
self rotatepitch( -5, 1, 0.5, 0.5 );
|
|
wait 1;
|
|
|
|
for (;;)
|
|
{
|
|
var_0 = randomfloatrange( 1, 3 );
|
|
self rotatepitch( 10, var_0, 0.5, 0.5 );
|
|
wait( var_0 );
|
|
var_0 = randomfloatrange( 1, 3 );
|
|
self rotatepitch( -10, var_0, 0.5, 0.5 );
|
|
wait( var_0 );
|
|
}
|
|
}
|
|
|
|
part_2_help_ally( var_0, var_1 )
|
|
{
|
|
wait 0.5;
|
|
setslowmotion( 0.1, 1, 1.5 );
|
|
thread maps\skyway_fx::fx_player_submerge_01();
|
|
level waittill( "player_swept" );
|
|
var_2 = maps\_utility::spawn_anim_model( "player_rig", level.player.origin );
|
|
level.player playerlinktodelta( var_2, "tag_player", 0, 15, 15, 15, 15, 1 );
|
|
level.end_wreck_node maps\_anim::anim_single_solo( var_2, "pt2_help" );
|
|
var_2 delete();
|
|
common_scripts\utility::flag_set( "flag_end_wreck_end" );
|
|
}
|
|
|
|
part_2_gun_fire( var_0 )
|
|
{
|
|
level endon( "gun_down" );
|
|
level endon( "failure" );
|
|
maps\_friendlyfire::turnoff();
|
|
level.player notifyonplayercommand( "firing", "+attack" );
|
|
level.player notifyonplayercommand( "firing", "+attack_akimbo_accessible" );
|
|
|
|
for (;;)
|
|
{
|
|
level.player waittill( "firing" );
|
|
|
|
if ( common_scripts\utility::flag( "gun_loaded" ) )
|
|
{
|
|
var_1 = getent( "enemy_target", "targetname" );
|
|
thread maps\skyway_audio::skyway_endshot_sfx();
|
|
thread maps\skyway_audio::sfx_wreck_03();
|
|
var_2 = anglestoforward( level.player getplayerangles() );
|
|
var_3 = vectornormalize( var_2 );
|
|
var_4 = level.player geteye() + 256 * var_3;
|
|
var_5 = bullettrace( level.player geteye(), var_4, 0, level.player );
|
|
|
|
if ( isdefined( var_5["entity"] ) && var_5["entity"] == var_1 )
|
|
{
|
|
common_scripts\utility::flag_set( "shot_successful" );
|
|
var_4 = var_1.origin;
|
|
}
|
|
|
|
level notify( "wet_fire" );
|
|
|
|
if ( common_scripts\utility::flag( "shot_successful" ) )
|
|
{
|
|
thread pt2_successful_shot();
|
|
common_scripts\utility::flag_clear( "gun_loaded" );
|
|
}
|
|
else
|
|
{
|
|
level notify( "player_missed" );
|
|
var_2 = anglestoforward( level.playerviewmodel gettagangles( "tag_flash" ) );
|
|
var_3 = vectornormalize( var_2 );
|
|
var_4 = level.playerviewmodel gettagorigin( "tag_flash" ) + 1000 * var_3;
|
|
level.player playrumbleonentity( "damage_heavy" );
|
|
playfxontag( common_scripts\utility::getfx( "magnum_flash" ), level.playerviewmodel, "tag_flash" );
|
|
level.player playsound( "weap_mag44_fire_plr" );
|
|
magicbullet( "coltanaconda_skyway", level.playerviewmodel gettagorigin( "TAG_Flash" ), var_4, level.player );
|
|
level.player maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_fire_hit" );
|
|
level notify( "gun_down" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.player playsound( "skyway_dryfire_pistol_plr" );
|
|
level.player playrumbleonentity( "damage_light" );
|
|
level.playerviewmodel setanimrestart( level.scr_anim["player_rig_magnum"]["pt2_fire_empty"] );
|
|
|
|
if ( !common_scripts\utility::flag( "dry_fire" ) )
|
|
thread part_2_gun_reload();
|
|
|
|
common_scripts\utility::flag_set( "dry_fire" );
|
|
wait 0.3;
|
|
}
|
|
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
pt2_successful_shot()
|
|
{
|
|
var_0 = level.player common_scripts\utility::spawn_tag_origin();
|
|
var_1 = level._boss gettagorigin( "j_spineupper" ) - level.player geteye();
|
|
var_0.angles = vectortoangles( var_1 );
|
|
level.player playerlinktoblend( var_0, "tag_origin", 0.05 );
|
|
wait 0.05;
|
|
level.player playrumbleonentity( "damage_heavy" );
|
|
playfxontag( common_scripts\utility::getfx( "magnum_flash" ), level.playerviewmodel, "tag_flash" );
|
|
level.player playsound( "weap_mag44_fire_plr" );
|
|
level.playerviewmodel unlinkfromplayerview( level.player );
|
|
level.playerviewmodel linktoplayerview( level.player, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ), 1 );
|
|
level.player forceviewmodelanimation( "coltanaconda_skyway", "reload" );
|
|
level.player maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_fire_hit" );
|
|
level.player unlink();
|
|
var_0 delete();
|
|
level notify( "gun_down" );
|
|
level.player maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_fire_win" );
|
|
level.player takeallweapons();
|
|
level.playerviewmodel delete();
|
|
}
|
|
|
|
part_2_gun_reload()
|
|
{
|
|
level endon( "stop_reload" );
|
|
level waittill( "hesch_speedloader_vo" );
|
|
event_qte_bullet_catch();
|
|
level.player notifyonplayercommand( "reload", "+usereload" );
|
|
level.player notifyonplayercommand( "reload", "+reload" );
|
|
destroy_qte_prompt();
|
|
level.player notify( "stop_loop" );
|
|
level notify( "gun_down" );
|
|
level.player unlink();
|
|
level.player playerlinktodelta( level.player_rig_grab, "tag_player", 1, 90, 90, 40, 40, 1 );
|
|
level.playerviewmodel attach( "weapon_bullet_iw5", "tag_knife_attach" );
|
|
level.player playsound( "scn_skyway_uw_reload" );
|
|
level.player maps\_anim::anim_single_solo( level.playerviewmodel, "pt2_load_gun" );
|
|
level.playerviewmodel detach( "weapon_bullet_iw5", "tag_knife_attach" );
|
|
level.player unlink();
|
|
level.player_rig_grab delete();
|
|
common_scripts\utility::flag_set( "gun_loaded" );
|
|
level.player thread maps\_anim::anim_loop_solo( level.playerviewmodel, "pt2_aim_loop_cocked", "stop_loop" );
|
|
thread part_2_gun_fire();
|
|
}
|
|
|
|
pt2_force_look_down()
|
|
{
|
|
if ( level.player maps\_utility::player_looking_at( level.ground_ref.origin ) )
|
|
{
|
|
level notify( "stop_waver" );
|
|
setsaveddvar( "player_view_pitch_down", 40 );
|
|
level.ground_ref rotateroll( -20, 0.5, 0.1, 0.1 );
|
|
wait 1;
|
|
level.ground_ref rotateroll( 20, 2, 1.5, 0.1 );
|
|
wait 2;
|
|
level.ground_ref thread part_2_aim_waver();
|
|
}
|
|
}
|
|
|
|
fade_in_from_black()
|
|
{
|
|
wait 1;
|
|
setblur( 10.3, 0.1 );
|
|
wait 3;
|
|
setblur( 8, 0.5 );
|
|
|
|
if ( isdefined( level.black_overlay ) )
|
|
{
|
|
level.black_overlay fadeovertime( 0.5 );
|
|
level.black_overlay.alpha = 0.5;
|
|
wait 0.5;
|
|
level.black_overlay fadeovertime( 1 );
|
|
level.black_overlay.alpha = 1;
|
|
wait 1;
|
|
}
|
|
|
|
setblur( 8, 0.5 );
|
|
|
|
if ( isdefined( level.black_overlay ) )
|
|
{
|
|
level.black_overlay fadeovertime( 0.5 );
|
|
level.black_overlay.alpha = 0.25;
|
|
wait 0.5;
|
|
level.black_overlay fadeovertime( 1 );
|
|
level.black_overlay.alpha = 1;
|
|
wait 1;
|
|
}
|
|
|
|
setblur( 8, 0.5 );
|
|
level waittill( "notify_fade_in" );
|
|
|
|
if ( isdefined( level.black_overlay ) )
|
|
{
|
|
level.black_overlay fadeovertime( 4.0 );
|
|
level.black_overlay.alpha = 0;
|
|
}
|
|
|
|
setblur( 0, 10 );
|
|
}
|
|
|
|
trigger_qte_prompt_check( var_0 )
|
|
{
|
|
level endon( "stop_blink" );
|
|
|
|
while ( !level.player istouching( var_0 ) )
|
|
wait 0.05;
|
|
|
|
fade_qte_prompt( 0.05, 1 );
|
|
|
|
while ( level.player istouching( var_0 ) )
|
|
wait 0.05;
|
|
|
|
fade_qte_prompt( 0.05, 0 );
|
|
wait 0.05;
|
|
trigger_qte_prompt_check( var_0 );
|
|
}
|
|
|
|
event_qte_bullet_catch()
|
|
{
|
|
level waittill( "notify_slomo_start" );
|
|
var_0 = maps\_utility::get_dot( level.player.origin, level.player.angles, level._ally.origin );
|
|
|
|
if ( var_0 < 0.6 )
|
|
common_scripts\utility::flag_wait( "flag_qte_end" );
|
|
else
|
|
{
|
|
thread qte_bullet_catch_slomo();
|
|
thread qte_bullet_catch_dof();
|
|
thread link_player_for_catch();
|
|
level waittill( "notify_qte_start" );
|
|
var_1 = 0.65;
|
|
thread prompt_qte_grow( var_1 );
|
|
|
|
for (;;)
|
|
{
|
|
if ( level.player usebuttonpressed() )
|
|
{
|
|
level notify( "notify_kill_prompt" );
|
|
thread fade_qte_prompt( 0.1, 0 );
|
|
common_scripts\utility::flag_wait( "flag_qte_end" );
|
|
level.end_wreck_player_node thread maps\_anim::anim_single_solo( level.player_rig_grab, "pt2_speedloader2" );
|
|
wait 0.05;
|
|
killfxontag( common_scripts\utility::getfx( "bullet_shine" ), level.bullet_blender, "tag_origin" );
|
|
level.bullet_catch delete();
|
|
level.bullet_blender delete();
|
|
level.bullet_start delete();
|
|
level.bullet_end delete();
|
|
level.bullet_tumble delete();
|
|
level.player playrumbleonentity( "damage_light" );
|
|
wait 0.4;
|
|
level notify( "notify_end_slomo" );
|
|
wait 0.3;
|
|
return;
|
|
}
|
|
|
|
if ( common_scripts\utility::flag( "flag_qte_end" ) )
|
|
break;
|
|
|
|
wait( level.timestep );
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_set( "flag_qte_fail" );
|
|
thread speedloader_fail();
|
|
level notify( "notify_kill_prompt" );
|
|
level notify( "notify_end_slomo" );
|
|
thread fade_qte_prompt( 0.05, 0.0 );
|
|
wait 2.25;
|
|
setdvar( "ui_deadquote", &"SKYWAY_FAIL_NO_GRAB" );
|
|
maps\_utility::missionfailedwrapper();
|
|
wait 5.0;
|
|
}
|
|
|
|
speedloader_fail()
|
|
{
|
|
var_0 = level._ally;
|
|
var_0 maps\_utility::gun_remove();
|
|
var_1 = level._boss;
|
|
var_1 maps\_utility::gun_remove();
|
|
var_2 = [];
|
|
var_2["ally1"] = var_0;
|
|
var_2["enemy"] = var_1;
|
|
level.end_wreck_node maps\_anim::anim_single( var_2, "pt2_speedloader_fail" );
|
|
}
|
|
|
|
link_player_for_catch()
|
|
{
|
|
var_0 = 0.3;
|
|
level.end_wreck_player_node.origin = level.player.origin;
|
|
wait( level.timestep );
|
|
level.player_rig_grab show();
|
|
level.player playerlinktoblend( level.player_rig_grab, "tag_player", var_0 );
|
|
}
|
|
|
|
unlink_player_after_catch( var_0 )
|
|
{
|
|
wait( var_0 );
|
|
level.player unlink();
|
|
}
|
|
|
|
qte_bullet_blender()
|
|
{
|
|
level waittill( "notify_start_bullet_blend" );
|
|
level.bullet_blender maps\skyway_util::blend_link_over_time( level.bullet_start, level.bullet_end, 0.6, undefined, "tag_helo", "tag_helo" );
|
|
}
|
|
|
|
qte_bullet_shine()
|
|
{
|
|
level waittill( "notify_start_bullet_blend" );
|
|
level.bullet_catch show();
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine" ), level.bullet_blender, "tag_origin" );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder1" );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder2" );
|
|
wait( level.timestep );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder3" );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder4" );
|
|
wait( level.timestep );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder5" );
|
|
playfxontag( common_scripts\utility::getfx( "bullet_shine_lesser" ), level.speedloader, "pCylinder6" );
|
|
}
|
|
|
|
qte_bullet_catch_dof()
|
|
{
|
|
var_0 = 10;
|
|
var_1 = 65;
|
|
thread maps\_art::dof_enable_script( 0, 5.0, 4, 10.28, 174, 4, 0.5 );
|
|
level.player enableforceviewmodeldof();
|
|
thread qte_bullet_catch_blend_view_dof( 0, var_0, 0, var_1, 0.5 );
|
|
wait 0.7;
|
|
thread qte_bullet_catch_blend_view_dof( var_0, 0, var_1, 0, 0.5 );
|
|
level.player disableforceviewmodeldof();
|
|
thread maps\_art::dof_disable_script( 0.5 );
|
|
}
|
|
|
|
qte_bullet_catch_blend_view_dof( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
var_5 = var_4;
|
|
|
|
while ( var_5 > 0 )
|
|
{
|
|
var_6 = 1 - maps\skyway_util::normalize_value( 0, var_4, var_5 );
|
|
var_7 = maps\skyway_util::factor_value_min_max( var_0, var_1, var_6 );
|
|
var_8 = maps\skyway_util::factor_value_min_max( var_2, var_3, var_6 );
|
|
level.player setviewmodeldepthoffield( var_7, var_8 );
|
|
var_5 = var_5 - level.timestep;
|
|
wait( level.timestep );
|
|
}
|
|
|
|
level.player setviewmodeldepthoffield( var_1, var_3 );
|
|
}
|
|
|
|
qte_bullet_catch_slomo()
|
|
{
|
|
var_0 = getdvarint( "cg_fov" );
|
|
maps\_utility::slowmo_setspeed_slow( 0.25 );
|
|
maps\_utility::slowmo_setlerptime_in( 0.25 );
|
|
maps\_utility::slowmo_lerp_in();
|
|
level.player playsound( "sw_wreck_slomo_in_1" );
|
|
level.player thread maps\_utility::lerp_fov_overtime( 0.8, var_0 * 0.85 );
|
|
level.player setmovespeedscale( 0.2 );
|
|
level waittill( "notify_end_slomo" );
|
|
wait 0.15;
|
|
|
|
if ( common_scripts\utility::flag( "flag_qte_fail" ) )
|
|
{
|
|
level.player playsound( "sw_wreck_slomo_out_2" );
|
|
maps\_utility::slowmo_setspeed_slow( 1.0 );
|
|
maps\_utility::slowmo_setlerptime_in( 2.0 );
|
|
maps\_utility::slowmo_lerp_in();
|
|
}
|
|
else
|
|
{
|
|
maps\_utility::slowmo_setspeed_slow( 1.0 );
|
|
maps\_utility::slowmo_setlerptime_in( 6.0 );
|
|
maps\_utility::slowmo_lerp_in();
|
|
}
|
|
|
|
level.player thread maps\_utility::lerp_fov_overtime( 0.6, var_0 );
|
|
level.player setmovespeedscale( 1.0 );
|
|
}
|
|
|
|
create_qte_prompt( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = -3;
|
|
|
|
if ( !isdefined( var_3 ) )
|
|
var_3 = 70;
|
|
|
|
var_5 = var_2;
|
|
var_6 = 3;
|
|
var_7 = 95;
|
|
var_8 = [];
|
|
var_9 = level.player maps\_hud_util::createclientfontstring( "default", var_5 );
|
|
var_9.x = var_4 * -1;
|
|
var_9.y = var_3;
|
|
var_9.horzalign = "right";
|
|
var_9.alignx = "right";
|
|
var_9.alignx = "center";
|
|
var_9.aligny = "middle";
|
|
var_9.horzalign = "center";
|
|
var_9.vertalign = "middle";
|
|
var_9.hidewhendead = 1;
|
|
var_9.hidewheninmenu = 1;
|
|
var_9.sort = 205;
|
|
var_9.foreground = 1;
|
|
var_9.alpha = 0;
|
|
var_9 settext( var_0 );
|
|
var_8["text"] = var_9;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
{
|
|
var_10 = maps\_hud_util::createicon( var_1, 40, 40 );
|
|
var_10.x = var_6;
|
|
var_10.y = var_7;
|
|
var_10.alignx = "center";
|
|
var_10.aligny = "middle";
|
|
var_10.horzalign = "center";
|
|
var_10.vertalign = "middle";
|
|
var_10.hidewhendead = 1;
|
|
var_10.hidewheninmenu = 1;
|
|
var_10.sort = 205;
|
|
var_10.foreground = 1;
|
|
var_10.alpha = 0;
|
|
var_8["icon"] = var_10;
|
|
}
|
|
|
|
level.qte_prompt = var_8;
|
|
}
|
|
|
|
prompt_qte_grow( var_0 )
|
|
{
|
|
level endon( "notify_kill_prompt" );
|
|
thread prompt_qte_pulse();
|
|
var_1 = 5.0;
|
|
create_qte_prompt( &"SKYWAY_HINT_RELOAD", undefined, var_1, 10 );
|
|
var_2 = 1.5;
|
|
var_3 = var_0;
|
|
|
|
foreach ( var_5 in level.qte_prompt )
|
|
{
|
|
var_5 changefontscaleovertime( var_3 );
|
|
var_5.fontscale = var_2;
|
|
}
|
|
|
|
wait( var_3 );
|
|
}
|
|
|
|
prompt_qte_pulse()
|
|
{
|
|
level endon( "notify_kill_prompt" );
|
|
var_0 = 0.05;
|
|
level.player playsound( "sw_wreck_hint_appear" );
|
|
|
|
for (;;)
|
|
{
|
|
thread fade_qte_prompt( var_0, 0.7 );
|
|
wait( var_0 );
|
|
thread fade_qte_prompt( var_0, 0.3 );
|
|
wait( var_0 );
|
|
}
|
|
}
|
|
|
|
fade_qte_prompt( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( level.qte_prompt ) )
|
|
return;
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
var_0 = 1.5;
|
|
|
|
foreach ( var_3 in level.qte_prompt )
|
|
{
|
|
var_3 fadeovertime( var_0 );
|
|
var_3.alpha = var_1;
|
|
}
|
|
|
|
if ( var_1 > 0.75 )
|
|
{
|
|
wait( var_0 );
|
|
common_scripts\utility::flag_set( "qte_prompt_solid" );
|
|
}
|
|
else
|
|
{
|
|
wait( var_0 );
|
|
common_scripts\utility::flag_clear( "qte_prompt_solid" );
|
|
}
|
|
}
|
|
|
|
destroy_qte_prompt()
|
|
{
|
|
if ( !isdefined( level.qte_prompt ) )
|
|
{
|
|
|
|
}
|
|
|
|
level notify( "stop_blink" );
|
|
|
|
foreach ( var_1 in level.qte_prompt )
|
|
var_1 destroy();
|
|
|
|
level.qte_prompt = undefined;
|
|
}
|
|
|
|
cleanup_delayed()
|
|
{
|
|
wait 6;
|
|
level.speedloader delete();
|
|
}
|