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

514 lines
19 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
bridge_deploy_init()
{
level.start_point = "bridge_deploy";
}
bridge_deploy_main()
{
setdvar( "debug_sat_view_pip", "1" );
maps\satfarm_code::kill_spawners_per_checkpoint( "bridge_deploy" );
common_scripts\utility::flag_init( "bridge_deploy_kill_gaz" );
common_scripts\utility::flag_init( "bridge_deploy_pre_end" );
level.player notify( "remove_tow" );
if ( level.start_point == "bridge_deploy" )
var_0 = common_scripts\utility::getstruct( "bridge_deploy_player_in", "targetname" );
else
{
level.player unlink();
var_0 = level.player;
}
level.player setorigin( var_0.origin );
level.player setplayerangles( var_0.angles );
thread bridge_deploy_begin();
common_scripts\utility::flag_wait( "bridge_deploy_end" );
}
bridge_deploy_begin()
{
level.player thread tower_to_bridge_deploy();
}
tower_to_bridge_deploy_bink()
{
common_scripts\utility::waitframe();
thread maps\satfarm_audio::overlord_trans2();
if ( level.start_point == "bridge_deploy" )
maps\_hud_util::fade_out( 1 );
self freezecontrols( 1 );
self enableinvulnerability();
self disableweapons();
self disableoffhandweapons();
level.player allowprone( 0 );
level.player allowcrouch( 0 );
level.player allowsprint( 0 );
level.player allowjump( 0 );
level.player.ignoreme = 1;
setsaveddvar( "compass", 0 );
common_scripts\utility::waitframe();
setdvar( "paris_transition_movie", "1" );
setsaveddvar( "ui_nextMission", "1" );
changelevel( "satfarm_b" );
}
tower_to_bridge_deploy()
{
maps\_hud_util::fade_out( 0.05 );
thread spawn_allies_deploy();
thread bridge_deploy_enemy_tanks_setup();
level.bdcheck = 1;
visionsetnaked( "satfarm_b", 0.0 );
wait 2;
self freezecontrols( 1 );
self enableinvulnerability();
self disableweapons();
self disableoffhandweapons();
level.player allowprone( 0 );
level.player allowcrouch( 0 );
level.player allowsprint( 0 );
level.player allowjump( 0 );
level.player.ignoreme = 1;
setsaveddvar( "compass", 0 );
common_scripts\utility::waitframe();
var_0 = 1.75;
var_1 = 15000;
var_2 = 17.6;
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_ghosthassecuredthe" );
level.player thread maps\_utility::play_sound_on_entity( "satfarm_cu3_heavyfightinginsectors" );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_forwardelementsofbcompany" );
var_3 = self.origin;
self playersetstreamorigin( var_3 );
self.origin = var_3;
var_4 = spawn( "script_model", ( 0, 0, 0 ) );
var_4 setmodel( "tag_origin" );
var_4.origin = self.origin;
var_4.angles = ( 0, 108, 0 );
var_4.angles = ( var_4.angles[0], var_4.angles[1] + 180, var_4.angles[2] );
self playerlinkto( var_4, undefined, 1, 0, 0, 0, 0 );
var_4.angles = ( var_4.angles[0] + 89, var_4.angles[1], 0 );
thread maps\_hud_util::fade_in( 1 );
var_4 moveto( var_3 + ( 0, 0, var_1 ), var_0, 0, 0.25 );
wait 0.05;
thread maps\satfarm_audio::overlord_trans2();
wait( var_0 - 0.25 );
if ( getdvar( "debug_sat_view_pip", "1" ) == "2" )
{
level.player maps\satfarm_satellite_view::satellite_view_init_hud( 1 );
visionsetnaked( "satfarm_b", 0.0 );
wait 0.25;
}
else
level.player maps\satfarm_satellite_view::satellite_view_init_hud( 0 );
visionsetnaked( "satfarm_b", 0.0 );
var_5 = common_scripts\utility::getstruct( "a10_player_start", "targetname" );
var_6 = common_scripts\utility::spawn_tag_origin();
var_6.origin = ( var_5.origin[0], var_5.origin[1], var_5.origin[2] );
var_6.angles = var_4.angles;
var_4 rotateto( var_4.angles + ( 0, 0, 16 ), 32 );
var_6 rotateto( var_4.angles + ( 0, 0, 16 ), 32 );
var_7 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "bridge_deploy_amb" );
var_8 = common_scripts\utility::getstruct( "bridge_deploy_ghost_start", "targetname" );
var_9 = common_scripts\utility::getstruct( "bridge_deploy_ghost_end", "targetname" );
var_10 = 10;
var_11 = common_scripts\utility::spawn_tag_origin();
var_11 setmodel( "generic_prop_raven" );
var_11.origin = var_8.origin;
var_11 moveto( var_9.origin, var_10 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::target_enable_sat_view( var_11, "ac130_hud_friendly_vehicle_diamond_s_w", ( 0, 1, 0 ) );
wait 0.5;
var_12 = self worldpointtoscreenpos( var_11.origin + ( var_9.origin - var_8.origin ) * 0.65 / var_10, getdvarfloat( "cg_fov" ) );
if ( !isdefined( var_12 ) )
var_12 = ( 0, 0, 0 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_anchored_text( &"SATFARM_LOCATED", ( 1, 1, 1 ), "left", "top", 1 );
maps\satfarm_satellite_view::satellite_view_move_to_point( var_12[0], var_12[1], undefined, undefined, 0.5 );
wait 0.75;
var_13 = var_11.origin + ( var_9.origin - var_8.origin ) * 0.9 / var_10 - anglestoright( vectortoangles( var_9.origin - var_8.origin ) ) * 50;
var_14 = var_13 - anglestoforward( var_4.angles ) * ( var_4.origin[2] - var_13[2] );
var_4 moveto( var_14, 0.5 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_anchored_text( &"SATFARM_TRACKING", ( 1, 1, 1 ), "right", "top", 1 );
maps\satfarm_satellite_view::satellite_view_move_to_point( 0, 0, undefined, undefined, 0.5 );
wait 0.5;
var_4 linkto( var_11 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
level.player lerpfov( 30, 0.25 );
thread maps\satfarm_satellite_view::satellite_view_zoom_in_sound( 0.25 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_multiline_text( "right", &"SATFARM_ADAM_RORKE", &"SATFARM_GHOST_ONE" );
wait 1;
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_theaagunswill" );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_com_ourtanksaregoing" );
thread maps\satfarm_complex::missile_bases();
var_15 = 2;
switch ( getdvar( "debug_sat_view_pip", "1" ) )
{
case "1":
thread maps\satfarm_satellite_view::satellite_view_corner_pip( var_6, "tag_origin", 200, -145 );
thread maps\satfarm_satellite_view::satellite_view_pip_display_name( &"SATFARM_FEED_3", 1 );
break;
case "2":
level.player playerlinktoabsolute( var_6, "tag_origin" );
break;
}
wait 1;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_anchored_text( &"SATFARM_SWITCHING_FEEDS", ( 1, 1, 1 ), "left", "top", 1.5 );
thread spawn_a10s();
wait 1;
switch ( getdvar( "debug_sat_view_pip", "1" ) )
{
case "1":
maps\satfarm_satellite_view::satellite_view_blink_pip_border();
thread maps\satfarm_satellite_view::satellite_view_move_to_point( -888, 500, undefined, undefined, 1.5 );
maps\satfarm_satellite_view::satellite_view_pip_change_size( 888, 500, 1, 1 );
break;
default:
wait 0.6;
thread maps\satfarm_satellite_view::satellite_view_move_to_point( -888, 500, undefined, undefined, 1.5 );
break;
}
var_4 unlink();
var_4.origin = var_6.origin;
var_4.angles = var_6.angles;
var_4 rotateto( var_4.angles + ( 0, 0, 16 ), 24 );
setsaveddvar( "cg_fov", 65 );
wait 0.05;
thread remove_bridge_deploy_tanks( var_7 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
target_remove( var_11 );
var_11 delete();
if ( getdvar( "debug_sat_view_pip", "1" ) == "1" )
thread maps\satfarm_satellite_view::satellite_view_pip_disable();
else if ( getdvar( "debug_sat_view_pip", "1" ) == "2" )
level.player playerlinktoabsolute( var_4, "tag_origin" );
maps\satfarm_satellite_view::satellite_view_move_to_point( 0, 0, 888, 500, 0 );
thread maps\satfarm_satellite_view::satellite_view_move_to_point( -10, 0, 240, 240, 0.5 );
thread mark_mantis_turrets( var_4 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
{
thread maps\satfarm_satellite_view::satellite_view_type_multiline_text_at_point( 20, 20, &"SATFARM_OBJECTIVE", &"SATFARM_DESTROY_THE_LOKI", &"SATFARM_DEFENSE_SATELLITE" );
thread maps\satfarm_satellite_view::satellite_view_type_multiline_text( "left", "Missile Incoming", "Time: 5:51", undefined, "satellite_view_missile_wireframe" );
}
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_badgeroneonewhat" );
wait 8;
level.allyheli[0] = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_deploy_apache_ally1" );
level.allyheli[1] = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_deploy_apache_ally2" );
level.allyheli[2] = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_deploy_apache_ally3" );
level.allyhelis = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "bridge_deploy_apache_ally" );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_bgr_overlordweneedair" );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_hqr_rogera10sareen" );
var_16 = common_scripts\utility::getstruct( "bridge_loc", "targetname" );
var_17 = spawn( "script_model", ( var_16.origin[0], var_16.origin[1], var_4.origin[2] ) );
var_17 setmodel( "tag_origin" );
var_17.angles = ( 90, 0, 0 );
var_17 linkto( level.playertank );
var_4 moveto( ( var_16.origin[0], var_16.origin[1], self.origin[2] ), 1 );
thread maps\satfarm_satellite_view::satellite_view_move_to_point( 0, 0, 32, 32, 1 );
wait 1.5;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
level.player lerpfov( 30, 0.25 );
thread maps\satfarm_satellite_view::satellite_view_zoom_in_sound( 0.25 );
wait 0.5;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_anchored_text( &"SATFARM_ACQUIRING", ( 1, 1, 1 ), "left", "top", 2 );
thread bridge_deploy_enemy_a10_gun_dives();
var_18 = 0;
foreach ( var_20 in level.enemytanksbri1 )
{
var_12 = self worldpointtoscreenpos( var_20.origin, getdvarfloat( "cg_fov" ) );
var_21 = 0;
if ( isdefined( var_12 ) )
{
maps\satfarm_satellite_view::satellite_view_move_to_point( var_12[0], var_12[1], undefined, undefined, 0.1 );
wait 0.1;
if ( !var_21 )
{
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
maps\satfarm_satellite_view::satellite_view_reticle_color( "red" );
}
wait 0.1;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
maps\satfarm_satellite_view::satellite_view_blink_corners( 1, 0.1 );
else
wait 0.2;
wait 0.2;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::target_enable_sat_view( var_20, "satellite_view_enemy_target", ( 1, 0, 0 ) );
thread common_scripts\utility::play_sound_in_space( "satf_satellite_blip_2", level.player.origin );
var_18++;
if ( var_18 >= 4 )
break;
}
}
level.player lerpfov( 40, 0.25 );
thread maps\satfarm_satellite_view::satellite_view_zoom_out_sound( 0.25 );
level.player maps\satfarm_satellite_view::satellite_view_move_to_point( 0, 0, undefined, undefined, 0.25 );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
maps\satfarm_satellite_view::satellite_view_reticle_color( "white" );
wait 2.5;
foreach ( var_24 in level.allyheli )
{
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::target_enable_sat_view( var_24, "satellite_view_friendly_target", ( 0, 1, 0 ) );
}
var_26 = spawn( "script_model", level.allyheli[1] gettagorigin( "tag_passenger" ) + anglestoforward( level.allyheli[1].angles ) * level.allyheli[1].veh_speed * 0.75 * var_2 );
var_26 setmodel( "tag_origin" );
var_26.angles = ( 90, 0, 0 );
var_26 linkto( level.playertank );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_com_keepmovingbadgerone" );
thread maps\satfarm_code::radio_dialog_add_and_go( "satfarm_com_weonlyhaveone" );
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_type_text_at_point( &"SATFARM_SYNCING", ( 1, 1, 1 ), 320, 50, 0.75 );
wait 0.25;
wait 0.5;
var_16 = common_scripts\utility::getstruct( "bridge_deploy_tank_loc", "targetname" );
var_17 = spawn( "script_model", ( var_16.origin[0], var_16.origin[1], var_4.origin[2] ) );
var_17 setmodel( "tag_origin" );
var_17.angles = ( 90, 0, 0 );
var_17 linkto( level.playertank );
level.satellite_view.height = 32;
level.satellite_view.width = 32;
var_4 moveto( ( var_16.origin[0], var_16.origin[1], self.origin[2] ), 3 );
maps\satfarm_satellite_view::satellite_view_move_to_point( var_16.origin[0], var_16.origin[1], undefined, undefined, 0.5 );
wait 4;
var_27 = spawn( "script_model", level.playertank gettagorigin( "tag_player" ) + ( 0, 0, 60 ) );
var_27 setmodel( "tag_origin" );
var_27.angles = level.playertank.angles;
var_27 linkto( level.playertank );
var_4 moveto( var_27.origin, 0.45, 0.1 );
level.ent = var_4;
thread maps\satfarm_satellite_view::satellite_view_chopper_fade_hud( 0.5 );
self lerpfov( 90, 0.1 );
wait 0.1;
self lerpfov( 40, 0.25 );
wait 0.2;
common_scripts\utility::waitframe();
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::delete_temp_sat_view_targets();
maps\satfarm_satellite_view::satellite_view_clear_hud();
wait 0.11;
var_4 = spawn( "script_model", ( 0, 0, 0 ) );
var_4 setmodel( "tag_origin" );
var_4.origin = ( 31713.5, -9095.38, -2.49035 );
var_4.angles = level.playertank gettagangles( "tag_barrel" );
self playerlinkto( var_4, undefined, 1, 0, 0, 0, 0 );
var_4 moveto( level.playertank gettagorigin( "tag_turret" ) - ( 0, 0, 64 ), 0.15 );
wait 0.16;
self unlink();
self.origin = level.playertank gettagorigin( "tag_player" );
self setplayerangles( level.playertank gettagangles( "tag_turret" ) );
self playerlinktoabsolute( level.playertank );
self playsound( "survival_slamzoom" );
self unlink();
common_scripts\utility::flag_set( "bridge_deploy_pre_end" );
kill_heli();
common_scripts\utility::flag_set( "bridge_deploy_player_mount_tank" );
self freezecontrols( 0 );
self playerclearstreamorigin();
level.player.ignoreme = 0;
setsaveddvar( "compass", 1 );
self lerpfov( 65, 0.25 );
common_scripts\utility::waitframe();
common_scripts\utility::flag_set( "bridge_deploy_end" );
visionsetnaked( "satfarm_b", 0 );
}
spawn_allies_deploy()
{
var_0 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_deploy_playertank" );
var_1 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "bridge_deploy_heros" );
level.playertank = var_0;
level.allytanks = var_1;
common_scripts\utility::flag_wait( "bridge_deploy_pre_end" );
var_0 delete();
foreach ( var_3 in var_1 )
{
if ( isdefined( var_3 ) )
var_3 delete();
}
}
bridge_deploy_enemy_tanks_setup()
{
maps\_utility::array_spawn_function_targetname( "air_strip_bridge_enemies", maps\satfarm_code::npc_tank_combat_init );
level.enemytanksbri1 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "air_strip_bridge_enemies" );
level.enemytanks = level.enemytanksbri1;
common_scripts\utility::flag_wait( "bridge_deploy_pre_end" );
foreach ( var_1 in level.enemytanksbri1 )
{
if ( isdefined( var_1 ) )
var_1 delete();
}
}
bridge_deploy_enemy_a10_gun_dives()
{
wait 2;
maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_a10_gun_dive_2a" );
wait 0.5;
maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "bridge_a10_gun_dive_2b" );
wait 2;
foreach ( var_1 in level.enemytanksbri1 )
{
if ( isdefined( var_1 ) )
var_1 thread maps\satfarm_code::handle_tank_death();
wait( randomfloatrange( 0.1, 0.5 ) );
}
}
spawn_a10s()
{
thread spawn_a10_gun_dive_entrance( "deploy_a10_gun_dive_entrance1a" );
thread spawn_a10_gun_dive_entrance( "deploy_a10_gun_dive_entrance1b" );
wait 0.5;
thread spawn_a10_gun_dive_entrance( "deploy_a10_gun_dive_entrance2a" );
thread spawn_a10_gun_dive_entrance( "deploy_a10_gun_dive_entrance2b" );
}
spawn_a10_gun_dive_entrance( var_0 )
{
var_1 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( var_0 );
wait( randomfloatrange( 4, 5 ) );
playfxontag( level._effect["aerial_explosion_mig29"], var_1, "tag_origin" );
wait 0.1;
var_1 maps\_vehicle::godoff();
var_1 kill();
wait 0.75;
if ( isdefined( var_1 ) )
var_1 delete();
}
mark_mantis_turrets( var_0 )
{
wait 0.2;
var_1 = getentarray( "complex_mantis_turrets", "script_noteworthy" );
var_2 = 0;
var_3 = 0.3;
var_4 = 0;
var_5 = var_1[0];
var_6 = var_5 common_scripts\utility::spawn_tag_origin();
var_7 = common_scripts\utility::spawn_tag_origin();
var_7.origin = var_6.origin + anglestoforward( var_5.angles ) * 750 + ( 0, 0, 250 );
var_7.angles = vectortoangles( var_6.origin - var_7.origin );
var_7 linkto( var_6 );
var_6 rotateyaw( 15, 5 );
if ( getdvar( "debug_sat_view_pip", "1" ) == "1" )
thread maps\satfarm_satellite_view::satellite_view_corner_pip( var_7, "tag_origin", 220, -145, 100, 100 );
else if ( getdvar( "debug_sat_view_pip", "1" ) == "2" )
level.player playerlinktoabsolute( var_7, "tag_origin" );
foreach ( var_5 in var_1 )
{
var_9 = level.player worldpointtoscreenpos( var_5.origin, getdvarfloat( "cg_fov" ) );
if ( !isdefined( var_9 ) )
continue;
if ( getdvar( "debug_sat_view_pip", "1" ) != "2" )
thread maps\satfarm_satellite_view::satellite_view_zoom_box( var_5.origin, 15, 2, 0.25, 2.5 - var_3 * var_4 );
var_2++;
if ( var_2 >= 2 )
{
var_2 = 0;
wait( var_3 );
var_4++;
}
}
wait 2.5;
if ( getdvar( "debug_sat_view_pip", "1" ) == "1" )
thread maps\satfarm_satellite_view::satellite_view_pip_disable();
else
level.player playerlinktoabsolute( var_0, "tag_origin" );
var_7 unlink();
var_7 delete();
var_6 delete();
}
remove_bridge_deploy_tanks( var_0 )
{
foreach ( var_2 in var_0 )
{
var_2 delete();
wait 0.05;
}
}
kill_heli()
{
level.allyheli[0] delete();
level.allyheli[1] delete();
level.allyheli[2] delete();
foreach ( var_1 in level.allyhelis )
{
if ( isdefined( var_1 ) )
var_1 delete();
}
}