669 lines
25 KiB
Plaintext
669 lines
25 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
run_to_sparrow_pre_load()
|
|
{
|
|
common_scripts\utility::flag_init( "player_knocked_down" );
|
|
common_scripts\utility::flag_init( "sparrow_run_slowmo_end" );
|
|
common_scripts\utility::flag_init( "sparrow_run_slowmo" );
|
|
common_scripts\utility::flag_init( "run_to_sparrow_finished" );
|
|
precachestring( &"CARRIER_DEATH_GUNSHIP" );
|
|
level.sparrow_run_enemies = [];
|
|
var_0 = getentarray( "sparrow_run_triggers", "targetname" );
|
|
common_scripts\utility::array_thread( var_0, maps\_utility::hide_entity );
|
|
level.dmg_rear_elevator = getent( "stern_corner_dmg_elevator", "targetname" );
|
|
level.dmg_rear_elevator maps\_utility::hide_entity();
|
|
level.slide_card = getent( "slide_card", "targetname" );
|
|
level.slide_card maps\_utility::hide_entity();
|
|
}
|
|
|
|
setup_run_to_sparrow()
|
|
{
|
|
level.start_point = "run_to_sparrow";
|
|
common_scripts\utility::flag_set( "start_knockdown_moment" );
|
|
maps\carrier_code::setup_common();
|
|
maps\carrier_code::spawn_allies();
|
|
thread maps\carrier_audio::aud_check( "run_to_sparrow" );
|
|
var_0 = getent( "water_wake_intro", "targetname" );
|
|
var_0 delete();
|
|
maps\_utility::set_team_bcvoice( "allies", "delta" );
|
|
maps\_utility::battlechatter_on( "allies" );
|
|
maps\_utility::flavorbursts_on( "allies" );
|
|
thread maps\carrier_defend_zodiac::elevator_105( 1 );
|
|
thread maps\carrier::obj_sparrow();
|
|
}
|
|
|
|
begin_run_to_sparrow()
|
|
{
|
|
level.player thread run_background_sparrow_vehicles();
|
|
level.player thread monitor_sparrow_lookat();
|
|
common_scripts\utility::flag_wait( "start_knockdown_moment" );
|
|
var_0 = common_scripts\utility::getstruct( "sparrow_trans_105_start", "targetname" );
|
|
var_1 = common_scripts\utility::getstruct( "sparrow_trans_105_dest", "targetname" );
|
|
maps\carrier_code::ac130_magic_105_fake( var_0.origin, var_1.origin );
|
|
thread maps\carrier_audio::aud_carr_sparrow_run_hit();
|
|
wait 0.05;
|
|
common_scripts\utility::flag_set( "knockdown_moment" );
|
|
thread knockback_hesh();
|
|
thread knockback_player();
|
|
thread sparrow_run_enemies();
|
|
common_scripts\utility::exploder( 5535 );
|
|
thread spawn_deadbodies();
|
|
maps\_utility::delaythread( 1, ::swap_destroyed_deck );
|
|
maps\_utility::delaythread( 1, maps\carrier_code::phalanx_gun_offline, "crr_phalanx_02" );
|
|
maps\_utility::delaythread( 2, maps\carrier_code::gunship_line_attack, "gunship_25_sparrow_run_right", 2 );
|
|
maps\_utility::delaythread( 5, maps\carrier_code::gunship_line_attack, "gunship_25_sparrow_run_left", 2 );
|
|
level.defend_sparrow_control maps\_utility::show_entity();
|
|
common_scripts\utility::flag_wait( "player_knocked_down" );
|
|
common_scripts\utility::flag_set( "defend_zodiac_ally_cleanup" );
|
|
thread cleanup_zodiacs();
|
|
var_2 = getent( "blast_shield1_clip", "targetname" );
|
|
var_2 delete();
|
|
var_3 = getent( "blast_shield2_clip", "targetname" );
|
|
var_3 delete();
|
|
common_scripts\utility::flag_wait( "run_to_sparrow_finished" );
|
|
}
|
|
|
|
catchup_run_to_sparrow()
|
|
{
|
|
common_scripts\utility::exploder( 5535 );
|
|
thread spawn_deadbodies();
|
|
thread swap_destroyed_deck();
|
|
level.defend_sparrow_control maps\_utility::show_entity();
|
|
}
|
|
|
|
knockback_hesh()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "sparrow_run_animnode", "targetname" );
|
|
var_1 = common_scripts\utility::getstruct( "sparrow_run_hesh_start_idle", "targetname" );
|
|
var_1 notify( "stop_loop" );
|
|
var_0 thread maps\_anim::anim_single_solo( level.hesh, "carrier_sparrow_run_hesh" );
|
|
var_2 = getanimlength( level.scr_anim["hesh"]["carrier_sparrow_run_hesh"] );
|
|
thread hesh_follow_vo();
|
|
thread run_debris();
|
|
level waittill( "player_sliding" );
|
|
var_3 = level.hesh getanimtime( level.scr_anim["hesh"]["carrier_sparrow_run_hesh"] );
|
|
var_4 = 8 / var_2;
|
|
var_5 = 10.05 / var_2;
|
|
maps\_utility::delaythread( 0, ::hesh_kill_enemy );
|
|
|
|
if ( var_3 >= var_5 )
|
|
{
|
|
level.hesh hide();
|
|
maps\_anim::anim_set_rate_single( level.hesh, "carrier_sparrow_run_hesh", 0 );
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo" );
|
|
maps\_anim::anim_set_rate_single( level.hesh, "carrier_sparrow_run_hesh", 1 );
|
|
level.slide_card maps\_utility::delaythread( 0.3, maps\_utility::hide_entity );
|
|
var_0 maps\_anim::anim_set_time( [ level.hesh ], "carrier_sparrow_run_hesh", 10.25 / var_2 );
|
|
common_scripts\utility::waitframe();
|
|
level.hesh show();
|
|
}
|
|
else if ( var_3 >= var_4 )
|
|
{
|
|
var_6 = 0.2;
|
|
var_7 = 1 - ( 1 - var_6 ) * ( var_3 - var_4 ) / ( var_5 - var_4 );
|
|
thread lerp_hesh_anim_rate( var_7 );
|
|
}
|
|
|
|
level.hesh waittillmatch( "single anim", "end" );
|
|
level.hesh maps\_utility::delaythread( 0.5, maps\_utility::smart_dialogue, "carrier_hsh_loganwehaveto" );
|
|
var_8 = getnode( "hesh_sparrow_location", "targetname" );
|
|
level.hesh setgoalnode( var_8 );
|
|
level.hesh pushplayer( 1 );
|
|
}
|
|
|
|
lerp_hesh_anim_rate( var_0 )
|
|
{
|
|
var_1 = 0.25;
|
|
var_2 = var_1 * 20;
|
|
|
|
for ( var_3 = 1; var_3 <= var_2; var_3++ )
|
|
{
|
|
var_4 = 1 - ( 1 - var_0 ) * ( var_3 / var_2 );
|
|
maps\_anim::anim_set_rate_single( level.hesh, "carrier_sparrow_run_hesh", var_4 );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
wait 2;
|
|
|
|
for ( var_3 = 1; var_3 <= var_2; var_3++ )
|
|
{
|
|
var_4 = var_0 + ( 1 - var_0 ) * ( var_3 / var_2 );
|
|
maps\_anim::anim_set_rate_single( level.hesh, "carrier_sparrow_run_hesh", var_4 );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
}
|
|
|
|
hesh_follow_vo()
|
|
{
|
|
wait 2.25;
|
|
level.hesh maps\_utility::smart_dialogue( "carrier_hsh_weneedtoget" );
|
|
wait 1.5;
|
|
level.hesh thread maps\_utility::smart_dialogue( "carrier_hsh_getouttatheopen" );
|
|
}
|
|
|
|
hesh_kill_enemy()
|
|
{
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo" );
|
|
wait 0.5;
|
|
|
|
if ( isalive( level.sparrow_run_enemy_01 ) )
|
|
{
|
|
level.sparrow_run_enemy_01 kill();
|
|
level.sparrow_run_enemies = common_scripts\utility::array_remove( level.sparrow_run_enemies, level.sparrow_run_enemy_01 );
|
|
}
|
|
}
|
|
|
|
knockback_player()
|
|
{
|
|
level.player endon( "death" );
|
|
var_0 = getentarray( "sparrow_run_triggers", "targetname" );
|
|
common_scripts\utility::array_thread( var_0, maps\_utility::show_entity );
|
|
screenshake( level.player.origin, 4, 3, 3, 4, 0, 3, 256, 8, 15, 12, 1.8 );
|
|
level.player playrumbleonentity( "ac130_40mm_fire" );
|
|
level.player shellshock( "hijack_engine_explosion", 4 );
|
|
var_1 = common_scripts\utility::getstruct( "sparrow_run_animnode", "targetname" );
|
|
var_2 = maps\_utility::spawn_anim_model( "player_rig" );
|
|
var_3 = maps\_utility::spawn_anim_model( "player_legs_rig" );
|
|
var_2 hide();
|
|
var_3 hide();
|
|
var_2 dontcastshadows();
|
|
var_3 dontcastshadows();
|
|
level.player setstance( "stand" );
|
|
level.player playerlinktoblend( var_2, "tag_player", 0.4, 0.25, 0 );
|
|
level.player disableweapons();
|
|
level.player freezecontrols( 1 );
|
|
var_1 thread maps\_anim::anim_single_solo( var_2, "carrier_sparrow_run_player" );
|
|
wait 0.4;
|
|
level.player playerlinktodelta( var_2, "tag_player", 1, 5, 5, 5, 5, 1 );
|
|
var_2 show();
|
|
common_scripts\utility::flag_set( "player_knocked_down" );
|
|
thread maps\carrier_defend_sparrow::sparrow_dead_operator();
|
|
var_2 waittillmatch( "single anim", "end" );
|
|
var_2 hide();
|
|
level.player setstance( "stand" );
|
|
level.player freezecontrols( 0 );
|
|
level.player unlink();
|
|
level.player enableweapons();
|
|
thread maps\_utility::autosave_now_silent();
|
|
level.player thread sparrow_run_death();
|
|
var_1 maps\_anim::anim_first_frame_solo( var_2, "carrier_sparrow_slide_player" );
|
|
var_1 maps\_anim::anim_first_frame_solo( var_3, "carrier_sparrow_slide_player_legs" );
|
|
level.slide_card maps\_utility::show_entity();
|
|
sparrow_run_mantle();
|
|
level notify( "player_sliding" );
|
|
level.player allowsprint( 0 );
|
|
level.player allowcrouch( 0 );
|
|
level.player allowprone( 0 );
|
|
level.player allowjump( 0 );
|
|
level.player allowmelee( 0 );
|
|
level.player disableweaponswitch();
|
|
level.player disableoffhandweapons();
|
|
level.player disableweapons();
|
|
level.player.dontmelee = 1;
|
|
level.player playerlinktoblend( var_2, "tag_player", 0.5, 0.4, 0 );
|
|
var_1 thread maps\_anim::anim_single_solo( var_2, "carrier_sparrow_slide_player" );
|
|
var_1 thread maps\_anim::anim_single_solo( var_3, "carrier_sparrow_slide_player_legs" );
|
|
thread maps\carrier_audio::aud_carr_slowmo_slide();
|
|
wait 0.5;
|
|
var_2 show();
|
|
var_3 show();
|
|
level.player playerlinktodelta( var_2, "tag_player", 1, 35, 35, 30, 0 );
|
|
level.player thread bumpy_ride();
|
|
wait 1.45;
|
|
level.player enableweapons();
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( level.player getcurrentweaponclipammo() < 10 )
|
|
level.player setweaponammoclip( level.player getcurrentweapon(), weaponclipsize( level.player getcurrentweapon() ) );
|
|
|
|
var_2 waittillmatch( "single anim", "slowmo" );
|
|
level.player lerpviewangleclamp( 0.5, 0.5, 0, 35, 35, 30, 10 );
|
|
maps\_utility::delaythread( 0, common_scripts\utility::flag_set, "sparrow_run_slowmo" );
|
|
level.player notify( "stop_bumpy_ride" );
|
|
var_4 = 0.75;
|
|
var_5 = 0.75;
|
|
maps\_utility::slowmo_setspeed_slow( 0.2 );
|
|
maps\_utility::slowmo_setlerptime_in( var_4 );
|
|
maps\_utility::slowmo_lerp_in();
|
|
level.player setperk( "specialty_quickdraw", 1, 0 );
|
|
level.player setmovespeedscale( 0.2 );
|
|
thread maps\carrier_audio::aud_carr_slowmo_in();
|
|
thread maps\carrier_audio::aud_carr_slowmo_bg();
|
|
level.player enableslowaim( 0.62, 0.62 );
|
|
var_2 waittillmatch( "single anim", "slowmo_end" );
|
|
maps\_utility::slowmo_setlerptime_out( var_5 );
|
|
maps\_utility::slowmo_lerp_out();
|
|
level.player unsetperk( "specialty_quickdraw", 1 );
|
|
thread maps\carrier_audio::aud_carr_slowmo_out();
|
|
level.player disableslowaim();
|
|
level.player disableinvulnerability();
|
|
thread maps\carrier_audio::aud_carr_slowmo_roll();
|
|
maps\_utility::delaythread( 0, common_scripts\utility::flag_set, "sparrow_run_slowmo_end" );
|
|
var_2 waittillmatch( "single anim", "start_clamp" );
|
|
level.player lerpviewangleclamp( 1, 1, 0, 35, 35, 5, 5 );
|
|
var_2 waittillmatch( "single anim", "end" );
|
|
level.player unlink();
|
|
var_2 delete();
|
|
var_3 delete();
|
|
level.player allowsprint( 1 );
|
|
level.player allowcrouch( 1 );
|
|
level.player allowprone( 1 );
|
|
level.player allowjump( 1 );
|
|
level.player allowmelee( 1 );
|
|
level.player enableweaponswitch();
|
|
level.player enableoffhandweapons();
|
|
level.player setmovespeedscale( 1 );
|
|
level.player.dontmelee = 0;
|
|
common_scripts\utility::flag_wait( "defend_sparrow_platform" );
|
|
level.player thread gunship_death_sparrow_platform();
|
|
thread gunship_sparrow_platform_loop();
|
|
common_scripts\utility::flag_set( "run_to_sparrow_finished" );
|
|
}
|
|
|
|
bumpy_ride()
|
|
{
|
|
self endon( "stop_bumpy_ride" );
|
|
screenshake( self.origin, 4, 3, 3, 3, 1, 0, 256, 3, 5, 4 );
|
|
self enableinvulnerability();
|
|
|
|
for (;;)
|
|
{
|
|
self viewkick( randomintrange( 6, 12 ), level.player.origin );
|
|
wait( randomfloatrange( 0.2, 0.5 ) );
|
|
}
|
|
}
|
|
|
|
run_debris()
|
|
{
|
|
level.hesh waittillmatch( "single anim", "debris_anim" );
|
|
thread debris();
|
|
}
|
|
|
|
debris()
|
|
{
|
|
var_0 = common_scripts\utility::getstruct( "sparrow_run_animnode", "targetname" );
|
|
var_1 = maps\_utility::spawn_anim_model( "debris_30" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_small", "J_prop_1" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_small", "J_prop_2" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_small", "J_prop_3" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_small", "J_prop_4" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_small", "J_prop_5" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_6" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_7" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_8" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_9" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_large", "J_prop_10" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_11" );
|
|
var_0 thread debris_chunk( var_1, "crr_metal_chunk_medium", "J_prop_12" );
|
|
var_0 maps\_anim::anim_single_solo( var_1, "carrier_sparrow_slide_debris" );
|
|
}
|
|
|
|
debris_chunk( var_0, var_1, var_2 )
|
|
{
|
|
var_3 = spawn( "script_model", ( 0, 0, 0 ) );
|
|
var_3 setmodel( var_1 );
|
|
var_3 linkto( var_0, var_2, ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
|
var_0 waittillmatch( "single anim", "end" );
|
|
var_3 delete();
|
|
}
|
|
|
|
sparrow_run_enemies()
|
|
{
|
|
level waittill( "player_sliding" );
|
|
maps\_utility::array_spawn_function_targetname( "sparrow_run_enemy_01", ::sparrow_run_enemy_logic, 10, undefined, "rescue_enemy_breach_run_1" );
|
|
maps\_utility::array_spawn_function_targetname( "sparrow_run_enemy_03", ::sparrow_run_enemy_03_logic, 10, undefined, "rescue_enemy_breach_run_3" );
|
|
maps\_utility::array_spawn_function_targetname( "sparrow_run_enemy_climbover", ::climbover_enemy );
|
|
maps\_utility::array_spawn_function_targetname( "sparrow_run_enemy_plat", ::sparrow_run_enemy_logic, undefined, "sparrow_run_enemy_plat_node", "carrier_rappel_defend_ascend_exit_left", 0 );
|
|
maps\_utility::array_spawn_function_targetname( "sparrow_run_enemy_plat", ::enemy_plat_death );
|
|
var_0 = maps\_utility::spawn_targetname( "sparrow_run_enemy_climbover", 1 );
|
|
thread execute();
|
|
level.sparrow_run_enemy_01 = maps\_utility::spawn_targetname( "sparrow_run_enemy_01", 1 );
|
|
var_1 = maps\_utility::spawn_targetname( "sparrow_run_enemy_03", 1 );
|
|
var_2 = maps\_utility::spawn_targetname( "sparrow_run_enemy_plat", 1 );
|
|
level.sparrow_run_enemies = common_scripts\utility::array_remove( level.sparrow_run_enemies, var_2 );
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo_end" );
|
|
|
|
foreach ( var_4 in level.sparrow_run_enemies )
|
|
{
|
|
if ( isalive( var_4 ) )
|
|
var_4 stopanimscripted();
|
|
}
|
|
|
|
wait 5;
|
|
thread maps\_utility::autosave_tactical();
|
|
}
|
|
|
|
execute()
|
|
{
|
|
var_0 = maps\_utility::spawn_targetname( "sparrow_run_enemy_02", 1 );
|
|
level.sparrow_run_enemies = common_scripts\utility::array_add( level.sparrow_run_enemies, var_0 );
|
|
var_0.animname = "generic";
|
|
var_0.allowdeath = 1;
|
|
var_0.accuracy = 0.1;
|
|
var_0.health = 10;
|
|
var_0 animscripts\notetracks::notetrackpistolpickup();
|
|
var_0 thread maps\_anim::anim_generic_first_frame( var_0, "carrier_sparrow_slide_enemy2" );
|
|
level.slowmo_ally = maps\_utility::spawn_targetname( "sparrow_run_ally_execute", 1 );
|
|
level.slowmo_ally maps\_anim::anim_generic_first_frame( level.slowmo_ally, "covercrouch_death_3" );
|
|
level.slowmo_ally.ignoreme = 1;
|
|
level.slowmo_ally.allowdeath = 1;
|
|
level.slowmo_ally maps\_utility::magic_bullet_shield( 1 );
|
|
level.slowmo_ally maps\_utility::disable_pain();
|
|
level.slowmo_ally.a.nodeath = 1;
|
|
level.slowmo_ally.noragdoll = 1;
|
|
level.slowmo_ally.isadeadman = 0;
|
|
level.slowmo_ally endon( "death" );
|
|
thread execute_save( var_0 );
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo" );
|
|
level.slowmo_ally maps\_utility::stop_magic_bullet_shield();
|
|
|
|
if ( isalive( var_0 ) )
|
|
{
|
|
maps\_anim::anim_set_rate( [ var_0 ], "carrier_sparrow_slide_enemy2", 1 );
|
|
var_0 waittillmatch( "single anim", "fire" );
|
|
var_0 shoot();
|
|
level.slowmo_ally.isadeadman = 1;
|
|
level.slowmo_ally thread maps\_anim::anim_generic( level.slowmo_ally, "covercrouch_death_3" );
|
|
level.slowmo_ally waittillmatch( "single anim", "start_ragdoll" );
|
|
level.slowmo_ally kill();
|
|
}
|
|
}
|
|
|
|
execute_save( var_0 )
|
|
{
|
|
var_0 waittill( "death" );
|
|
|
|
if ( isdefined( level.slowmo_ally ) && !level.slowmo_ally.isadeadman )
|
|
{
|
|
level.slowmo_ally.ignoreme = 0;
|
|
level.slowmo_ally.a.nodeath = 0;
|
|
level.slowmo_ally.noragdoll = 0;
|
|
level.slowmo_ally endon( "death" );
|
|
level.slowmo_ally maps\_utility::enable_pain();
|
|
level.slowmo_ally stopanimscripted();
|
|
level.slowmo_ally maps\_anim::anim_generic( level.slowmo_ally, "covercrouch_run_out_ML" );
|
|
wait 3;
|
|
var_1 = getnode( "saved_grape_sparrow_location", "targetname" );
|
|
level.slowmo_ally setgoalnode( var_1 );
|
|
level.slowmo_ally pushplayer( 1 );
|
|
common_scripts\utility::flag_wait( "sparrow_hud_black" );
|
|
|
|
if ( isalive( level.slowmo_ally ) )
|
|
level.slowmo_ally delete();
|
|
}
|
|
}
|
|
|
|
climbover_enemy()
|
|
{
|
|
level.sparrow_run_enemies = common_scripts\utility::array_add( level.sparrow_run_enemies, self );
|
|
self.animname = "generic";
|
|
self.health = 10;
|
|
self.allowdeath = 1;
|
|
self.accuracy = 0.1;
|
|
self endon( "death" );
|
|
var_0 = common_scripts\utility::getstruct( "sparrow_run_animnode_climbover", "targetname" );
|
|
var_0 thread maps\_anim::anim_generic( self, "carrier_sparrow_slide_enemy" );
|
|
}
|
|
|
|
sparrow_run_enemy_logic( var_0, var_1, var_2, var_3 )
|
|
{
|
|
self endon( "death" );
|
|
level.sparrow_run_enemies = common_scripts\utility::array_add( level.sparrow_run_enemies, self );
|
|
self.animname = "generic";
|
|
self.allowdeath = 1;
|
|
self.accuracy = 0.1;
|
|
|
|
if ( isdefined( var_0 ) )
|
|
self.health = var_0;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
var_4 = common_scripts\utility::getstruct( var_1, "targetname" );
|
|
else
|
|
{
|
|
var_4 = spawnstruct();
|
|
var_4.origin = self.origin;
|
|
var_4.angles = self.angles;
|
|
}
|
|
|
|
self animmode( "nogravity" );
|
|
var_4 maps\_anim::anim_generic_first_frame( self, var_2 );
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo" );
|
|
|
|
if ( isdefined( var_3 ) )
|
|
wait( var_3 );
|
|
|
|
self animmode( "gravity" );
|
|
var_4 thread maps\_anim::anim_generic( self, var_2 );
|
|
}
|
|
|
|
sparrow_run_enemy_03_logic( var_0, var_1, var_2 )
|
|
{
|
|
self endon( "death" );
|
|
level.sparrow_run_enemies = common_scripts\utility::array_add( level.sparrow_run_enemies, self );
|
|
self.animname = "generic";
|
|
self.allowdeath = 1;
|
|
self.accuracy = 0.0001;
|
|
|
|
if ( isdefined( var_0 ) )
|
|
self.health = var_0;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
var_3 = common_scripts\utility::getstruct( var_1, "targetname" );
|
|
else
|
|
{
|
|
var_3 = spawnstruct();
|
|
var_3.origin = self.origin;
|
|
var_3.angles = self.angles;
|
|
}
|
|
|
|
self animmode( "nogravity" );
|
|
var_3 thread maps\_anim::anim_generic( self, var_2 );
|
|
common_scripts\utility::waitframe();
|
|
maps\_anim::anim_set_time( [ self ], var_2, 0.1 );
|
|
maps\_anim::anim_set_rate_single( self, var_2, 0 );
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo" );
|
|
maps\_utility::set_favoriteenemy( level.player );
|
|
self animmode( "gravity" );
|
|
maps\_anim::anim_set_rate_single( self, var_2, 1 );
|
|
wait 1;
|
|
self stopanimscripted();
|
|
common_scripts\utility::flag_wait( "sparrow_run_slowmo_end" );
|
|
self.accuracy = 0.1;
|
|
}
|
|
|
|
enemy_plat_death()
|
|
{
|
|
self waittill( "death" );
|
|
self startragdoll();
|
|
}
|
|
|
|
sparrow_run_mantle()
|
|
{
|
|
maps\carrier_code::setup_mantle_hint();
|
|
level.player.looking_at_mantle = 0;
|
|
var_0 = getent( "sparrow_run_mantle", "targetname" );
|
|
var_0 thread maps\carrier_code::player_volume_check();
|
|
var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" );
|
|
var_1 thread maps\carrier_code::player_check_mantle_lookat();
|
|
|
|
for (;;)
|
|
{
|
|
if ( level.player istouching( var_0 ) && level.player.looking_at_mantle )
|
|
{
|
|
maps\carrier_code::show_mantle_hint();
|
|
level.player maps\carrier_code::player_check_jump();
|
|
}
|
|
|
|
if ( !level.player istouching( var_0 ) || !level.player.looking_at_mantle )
|
|
{
|
|
maps\carrier_code::hide_mantle_hint();
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
maps\carrier_code::hide_mantle_hint();
|
|
level.player notify( "stop_mantle_lookat" );
|
|
level.player allowjump( 0 );
|
|
var_2 = distance2d( var_1.origin, level.player.origin );
|
|
var_3 = int( var_2 / 60 ) * 0.05;
|
|
wait( var_3 );
|
|
level.player allowjump( 1 );
|
|
return;
|
|
}
|
|
}
|
|
|
|
sparrow_run_death()
|
|
{
|
|
level endon( "player_sliding" );
|
|
level endon( "left_area" );
|
|
self endon( "death" );
|
|
var_0 = getentarray( "sparrow_run_kill", "targetname" );
|
|
var_1 = 0;
|
|
|
|
for (;;)
|
|
{
|
|
foreach ( var_3 in var_0 )
|
|
{
|
|
if ( self istouching( var_3 ) )
|
|
{
|
|
var_4 = vectornormalize( anglestoforward( level.player.angles ) ) * 90;
|
|
magicbullet( "ac130_25mm_carrier", self.origin + ( 0, 0, 400 ), self.origin + var_4 + ( 0, 0, 24 ) );
|
|
wait 0.2;
|
|
setdvar( "ui_deadquote", &"CARRIER_DEATH_GUNSHIP" );
|
|
maps\_utility::missionfailedwrapper();
|
|
self kill();
|
|
level notify( "left_area" );
|
|
}
|
|
}
|
|
|
|
if ( var_1 >= 8.0 )
|
|
{
|
|
var_4 = vectornormalize( anglestoforward( level.player.angles ) ) * 80;
|
|
magicbullet( "ac130_25mm_carrier", self.origin + ( 0, 0, 400 ), self.origin + var_4 + ( 0, 0, 24 ) );
|
|
wait 0.2;
|
|
setdvar( "ui_deadquote", &"CARRIER_DEATH_GUNSHIP" );
|
|
maps\_utility::missionfailedwrapper();
|
|
self kill();
|
|
level notify( "left_area" );
|
|
}
|
|
|
|
wait 0.05;
|
|
var_1 = var_1 + 0.05;
|
|
}
|
|
}
|
|
|
|
spawn_deadbodies()
|
|
{
|
|
maps\carrier_code::array_spawn_targetname_allow_fail( "sparrow_transition_body", 1 );
|
|
}
|
|
|
|
run_background_sparrow_vehicles()
|
|
{
|
|
thread maps\carrier_defend_sparrow::spawn_ac130();
|
|
thread maps\carrier_defend_sparrow::spawn_pre_sparrow_helis();
|
|
}
|
|
|
|
monitor_sparrow_lookat()
|
|
{
|
|
var_0 = getent( "sparrow_background_look", "targetname" );
|
|
|
|
while ( !level.player worldpointinreticle_circle( var_0.origin, 65, 250 ) )
|
|
common_scripts\utility::waitframe();
|
|
|
|
self notify( "looking_away" );
|
|
}
|
|
|
|
swap_destroyed_deck()
|
|
{
|
|
common_scripts\utility::array_thread( level.stern_corner_clean, maps\_utility::hide_entity );
|
|
|
|
foreach ( var_1 in level.stern_corner_dmg )
|
|
var_1.origin = var_1.origin - ( 0, 0, 1024 );
|
|
|
|
common_scripts\utility::array_thread( level.stern_corner_dmg, maps\_utility::show_entity );
|
|
level.rear_elevator maps\_utility::hide_entity();
|
|
level.dmg_rear_elevator maps\_utility::show_entity();
|
|
common_scripts\utility::array_thread( level.elevator_dmg_models, maps\carrier_code::show_and_raise_entity );
|
|
maps\_utility::array_delete( level.rear_elevator.attachments );
|
|
maps\_utility::array_delete( level.elevator_ac130_dmg );
|
|
common_scripts\utility::array_thread( level.elevator_ac130_dmg_02, maps\carrier_code::show_and_raise_entity );
|
|
}
|
|
|
|
fx_fires()
|
|
{
|
|
maps\carrier_fx::playfx_targetname_endon( "sparrow_trans_fx_fire", "fire_line_sm", "defend_sparrow_finished" );
|
|
}
|
|
|
|
cleanup_zodiacs()
|
|
{
|
|
level.zodiacs = maps\_utility::array_removedead( level.zodiacs );
|
|
|
|
foreach ( var_1 in level.zodiacs )
|
|
maps\_utility::deleteent( var_1 );
|
|
|
|
level.zodiacs = [];
|
|
}
|
|
|
|
gunship_sparrow_platform_loop()
|
|
{
|
|
level endon( "player_entering_sparrow" );
|
|
level.player endon( "death" );
|
|
|
|
for (;;)
|
|
{
|
|
maps\carrier_code::gunship_line_attack( "gunship_25_sparrow_plat_01" );
|
|
wait( randomfloatrange( 0.5, 2 ) );
|
|
maps\carrier_code::gunship_line_attack( "gunship_25_sparrow_plat_02" );
|
|
wait( randomfloatrange( 0.5, 2 ) );
|
|
}
|
|
}
|
|
|
|
gunship_death_sparrow_platform()
|
|
{
|
|
level endon( "player_entering_sparrow" );
|
|
self endon( "death" );
|
|
var_0 = getentarray( "gunship_sparrow_plat_kill", "targetname" );
|
|
var_1 = 0;
|
|
var_2 = 0;
|
|
|
|
for (;;)
|
|
{
|
|
foreach ( var_4 in var_0 )
|
|
{
|
|
if ( self istouching( var_4 ) )
|
|
{
|
|
level.ac_130 maps\_utility::delaythread( 0, maps\carrier_code::ac130_magic_bullet, "40mm", level.player.origin + anglestoforward( level.player getplayerangles() ) * 200 );
|
|
level.ac_130 maps\_utility::play_sound_on_entity( "ac130_40mm_fire_npc" );
|
|
maps\carrier_code::gunship_line_attack_death();
|
|
wait 1;
|
|
|
|
if ( isalive( self ) )
|
|
{
|
|
setdvar( "ui_deadquote", &"CARRIER_DEATH_GUNSHIP" );
|
|
maps\_utility::missionfailedwrapper();
|
|
self kill();
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( !var_2 && common_scripts\utility::flag( "mantled_sparrow_plat" ) )
|
|
{
|
|
var_2 = 1;
|
|
var_1 = var_1 - 10;
|
|
}
|
|
|
|
if ( var_1 >= 20.0 )
|
|
{
|
|
maps\carrier_code::gunship_line_attack_death();
|
|
wait 1;
|
|
setdvar( "ui_deadquote", &"CARRIER_DEATH_GUNSHIP" );
|
|
maps\_utility::missionfailedwrapper();
|
|
self kill();
|
|
}
|
|
|
|
wait 0.05;
|
|
var_1 = var_1 + 0.05;
|
|
}
|
|
}
|