// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool intro_spawn_functions() { maps\_utility::array_spawn_function_targetname( "intro_runners", ::intro_runners ); maps\_utility::array_spawn_function_noteworthy( "intro_runners", ::intro_runners ); maps\_utility::array_spawn_function_targetname( "intro_bunker_house_runners", ::intro_bunker_house_runners ); maps\_utility::array_spawn_function_noteworthy( "intro_hesco_runners", ::intro_hesco_runners ); maps\_utility::array_spawn_function_targetname( "intro_pullup_truck_guys", ::intro_pullup_truck_guys ); maps\_utility::array_spawn_function_noteworthy( "wounded_carry_guy", ::wounded_carry_guy ); maps\_utility::array_spawn_function_noteworthy( "intro_catwalk_shooters", ::intro_catwalk_shooters ); getent( "intro_street_abrams", "targetname" ) maps\_utility::add_spawn_function( ::intro_street_abrams ); } intro_sequence_street() { level.player setclienttriggeraudiozone( "homecoming_black", 0.1 ); thread intro_scripted_sequence(); common_scripts\utility::array_thread( common_scripts\utility::getstructarray( "intro_bunker_turret", "targetname" ), ::intro_bunker_turrets ); maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "intro_flyovers" ); thread intro_flavorburst( "intro_flavorburst_spots" ); thread intro_animated_scenes(); thread intro_bunker_waver(); thread intro_fake_mortars(); maps\_utility::flagwaitthread( "FLAG_player_out_of_nh90", maps\homecoming_beach_ambient::beach_nh90_flybys, "intro_nh90_flybys", 1, "stop_intro_flybys" ); level maps\_utility::flagwaitthread( "FLAG_start_bunker", maps\_utility::send_notify, "stop_intro_flybys" ); thread intro_skybridge_order_guy(); thread intro_skybridge_drones(); thread intro_garage_drones(); thread intro_house_artemis(); } intro_scripted_sequence() { thread intro_scripted_audio_fade_in_mixing(); thread intro_player_nh90(); common_scripts\utility::flag_wait( "FLAG_intro_start_scenes" ); thread intro_rangers_scene(); thread intro_flyby_a10(); thread intro_house_blocker_truck(); var_0 = common_scripts\utility::getstructarray( "intro_bunker_turret", "targetname" ); var_1 = undefined; var_2 = undefined; foreach ( var_4 in var_0 ) { if ( !isdefined( var_4.script_noteworthy ) ) continue; if ( var_4.script_noteworthy == "bunker_osprey_turret_1" ) { var_1 = getentarray( var_4.target, "targetname" ); continue; } var_2 = getentarray( var_4.target, "targetname" ); } maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "intro_takeoff_ospreys" ); thread maps\homecoming_util::a10_vista_strafe_group( "vista_pier_a10s" ); thread maps\homecoming_util::a10_vista_strafe_group( "vista_ship_a10s" ); maps\_utility::array_spawn( getentarray( "intro_cliff_runners", "targetname" ) ); var_6 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "intro_cliff_driving_tanks" ); common_scripts\utility::array_call( var_6, ::vehicle_turnengineoff ); var_7 = maps\_vehicle::spawn_vehicles_from_targetname_and_drive( "intro_cliff_tanks" ); thread intro_cliff_tanks( var_7 ); maps\_utility::array_spawn( getentarray( "intro_runners", "targetname" ) ); wait 1.1; thread intro_bunker_turrets_fire( var_1 ); wait 1.5; thread intro_bunker_turrets_fire( var_2 ); maps\_utility::delaythread( 2, common_scripts\utility::flag_set, "FLAG_start_bunker_turret_fire" ); var_8 = getentarray( "intro_pullup_truck", "targetname" ); common_scripts\utility::array_thread( var_8, ::intro_pullup_trucks ); common_scripts\utility::flag_wait_any( "TRIGFLAG_player_going_through_tent", "FLAG_intro_rangers_move" ); maps\_utility::delaythread( 0.2, maps\_utility::music_crossfade, "mus_homecoming_intro_2", 2 ); common_scripts\utility::flag_wait( "TRIGFLAG_player_going_through_tent" ); thread maps\_utility::autosave_by_name( "intro_tent" ); thread maps\homecoming_util::ambient_smallarms_fire( "intro_fake_gun_fire", "intro_gunfire_stop" ); thread maps\homecoming_beach_ambient::beach_ship_phalanx_start( "ship_phalanx_structs" ); thread maps\homecoming_beach_ambient::beach_ambient_helicopters(); thread intro_hesh_overlord_elias_dialog(); common_scripts\utility::flag_wait( "TRIGFLAG_player_heading_towards_bunker" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); maps\homecoming_util::a10_vista_strafe_group_delete( "vista_pier_a10s" ); maps\homecoming_util::a10_vista_strafe_group_delete( "vista_ship_a10s" ); level notify( "intro_gunfire_stop" ); maps\_utility::array_delete( var_7 ); } intro_cliff_tanks( var_0 ) { level endon( "TRIGFLAG_player_up_bunker_stairs" ); foreach ( var_2 in var_0 ) { var_2 vehicle_turnengineoff(); var_3 = var_2.currentnode; var_4 = var_3 maps\homecoming_util::get_linked_struct(); var_2 setturrettargetvec( var_4.origin ); } for (;;) { var_0 = common_scripts\utility::array_randomize( var_0 ); foreach ( var_2 in var_0 ) { wait( randomfloatrange( 3, 5 ) ); var_2 maps\homecoming_util::vehicle_fire(); } } } intro_scripted_audio_fade_in_mixing() { maps\_utility::music_play( "mus_homecoming_intro" ); wait 0.2; level.player setclienttriggeraudiozone( "homecoming_intro", 1.5 ); level.player setclienttriggeraudiozonepartial( "homecoming_heavy_mx_dx", "mix" ); } #using_animtree("vehicles"); intro_player_nh90() { var_0 = maps\_hud_util::create_client_overlay( "black", 1, level.player ); maps\homecoming_util::hud_hide(); level.player disableweapons(); level.player allowstand( 1 ); level.player allowcrouch( 0 ); level.player allowprone( 0 ); level.player allowsprint( 0 ); var_1 = maps\_vehicle::spawn_vehicle_from_targetname( "intro_player_aas" ); var_1 maps\_vehicle::godon(); var_1 vehicle_turnengineoff(); var_1 thread maps\_utility::play_sound_on_entity( "scn_homecoming_heli_landing" ); var_1 thread maps\homecoming_util::delete_on_flag( "TRIGFLAG_player_up_bunker_stairs" ); var_1 notify( "kill_treads_forever" ); var_1 setanim( %nh90_right_door_open, 1, 1, 10 ); var_1 setanimrestart( %nh90_landing_gear_down, 1, 1, 10 ); level.intro_player_nh90 = var_1; level.dog = maps\homecoming_util::dog_spawn(); var_2 = common_scripts\utility::getstructarray( "intro_nh90_hero_spots", "targetname" ); foreach ( var_4 in var_2 ) { var_5 = common_scripts\utility::spawn_tag_origin(); var_5.origin = var_4.origin; var_5.angles = var_4.angles; var_5 linkto( var_1 ); if ( var_4 maps\homecoming_util::noteworthy_check( "hesh" ) ) { level.hesh.ospreyspot = var_5; level.hesh linkto( level.hesh.ospreyspot, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) ); continue; } if ( var_4 maps\homecoming_util::noteworthy_check( "dog" ) ) { level.dog.ospreyspot = var_5; level.dog linkto( level.dog.ospreyspot, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) ); continue; } level.player.ospreyspot = var_5; level.player setplayerangles( var_5.angles ); } var_7 = maps\_utility::spawn_anim_model( "player_rig" ); var_7 linkto( level.dog.ospreyspot, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) ); level.player playerlinktodelta( var_7, "tag_player", 1, 25, 25, 25, 35, 1 ); var_8 = [ var_7, level.dog ]; level.dog.ospreyspot thread maps\_anim::anim_loop( var_8, "intro_chopper_idle" ); common_scripts\utility::flag_wait( "FLAG_bunker_turrets_setup" ); common_scripts\utility::flag_set( "FLAG_intro_start_scenes" ); var_0 thread maps\_hud_util::fade_over_time( 0, 1 ); var_1 playrumblelooponentity( "chopper_ride_rumble" ); thread maps\_vehicle::gopath( var_1 ); var_1 player_nh90_land(); common_scripts\utility::flag_set( "FLAG_intro_passoff_start" ); wait 1.25; level.dog.ospreyspot notify( "stop_loop" ); level.dog unlink(); level.dog.anim_blend_time_override = 0.5; var_9 = 0.5; maps\_utility::delaythread( var_9, ::player_nh90_jumpout, var_7, var_1 ); wait 0.15; var_10 = level.dog.ospreyspot; var_10.origin = var_10.origin + ( 0, 0, 5 ); var_10 thread maps\_anim::anim_single_solo( level.dog, "intro_chopper_letgo" ); level.dog.ospreyspot maps\_anim::anim_single_solo( var_7, "intro_chopper_letgo" ); } player_nh90_land() { var_0 = self.currentnode; self setneargoalnotifydist( 5 ); self sethoverparams( 0, 0, 0 ); self setvehgoalpos( var_0.origin, 1 ); self cleargoalyaw(); self settargetyaw( common_scripts\utility::flat_angle( self.angles )[1] ); self waittill( "near_goal" ); } player_nh90_jumpout( var_0, var_1 ) { level.player enableweapons(); var_2 = spawn( "script_origin", var_0 gettagorigin( "tag_player" ) ); var_2.angles = var_0 gettagangles( "tag_player" ); var_0 delete(); level.player playerlinkto( var_2 ); var_3 = anglestoforward( var_2.angles ); var_4 = var_2.origin + var_3 * 75; var_2 unlink(); var_2 moveto( var_4, 0.4, 0.1, 0 ); var_2 waittill( "movedone" ); level.player unlink(); level.player allowstand( 1 ); level.player allowcrouch( 0 ); level.player allowprone( 0 ); level.player allowsprint( 1 ); maps\homecoming_util::hud_show(); var_1 stoprumble( "chopper_ride_rumble" ); wait 1; level.player allowcrouch( 1 ); level.player allowstand( 1 ); level.player allowprone( 1 ); common_scripts\utility::flag_set( "FLAG_player_out_of_nh90" ); } intro_rangers_scene() { level.intro_rangers = []; var_0 = undefined; level.intro_dog_guy = undefined; var_1 = undefined; var_2 = getentarray( "intro_convo_rangers", "targetname" ); foreach ( var_4 in var_2 ) { var_5 = var_4 maps\_utility::spawn_ai(); if ( isai( var_5 ) ) var_5 maps\homecoming_util::ignore_everything(); var_5 maps\_utility::magic_bullet_shield(); var_5 maps\homecoming_util::set_ai_array( "intro_convo_rangers" ); if ( var_4 maps\homecoming_util::noteworthy_check( "ranger_leader" ) ) { var_5.animname = "ranger1"; var_5.name = "Cpl. Davidson"; var_0 = var_5; level.intro_rangers = common_scripts\utility::array_add( level.intro_rangers, var_5 ); continue; } if ( var_4 maps\homecoming_util::noteworthy_check( "ranger2" ) ) { var_5.animname = "ranger2"; var_5.name = "SSGT. Suarez"; var_1 = var_5; level.intro_rangers = common_scripts\utility::array_add( level.intro_rangers, var_5 ); continue; } if ( var_4 maps\homecoming_util::noteworthy_check( "dog_guy" ) ) { var_5.animname = "dog_guy"; var_5.name = "PFC. Root"; level.intro_dog_guy = var_5; continue; } } foreach ( var_8 in level.intro_rangers ) { var_8 thread intro_rangers_pathing(); if ( var_8.animname != "dog_guy" ) { var_8.dontevershoot = 1; var_8 thread intro_rangers_aimers(); } } maps\_utility::delaythread( 1.5, common_scripts\utility::flag_set, "FLAG_intro_rangers_start" ); var_0 maps\_utility::delaythread( 4, maps\_utility::play_sound_on_entity, "homcom_gs1_holdyourfirehold" ); var_1 maps\_utility::delaythread( 6.2, maps\_utility::play_sound_on_entity, "homcom_so2_weaponsdown" ); var_10 = common_scripts\utility::getstruct( "dog_pass_off_spot", "targetname" ); var_11 = [ level.hesh, level.intro_dog_guy, level.dog ]; foreach ( var_8 in var_11 ) var_8 thread intro_dog_pass_off( var_10 ); common_scripts\utility::flag_wait( "FLAG_intro_passoff_start" ); level endon( "TRIGFLAG_player_going_through_tent" ); common_scripts\utility::flag_wait( "FLAG_nh90_hesh_last_line" ); var_14 = lookupsoundlength( "homcom_hsh_angrygrunthowcan" ); wait( var_14 / 1000 ); var_15 = 0; var_16 = 1; foreach ( var_18 in level.intro_rangers ) { var_19 = "homcom_sos_hooah_" + var_16; var_18 maps\_utility::delaythread( var_15, maps\_utility::play_sound_on_entity, var_19 ); var_20 = lookupsoundlength( var_19 ); var_18 maps\_utility::delaythread( var_15, maps\_anim::talk_for_time, var_20 / 1000 ); var_16++; } } intro_rangers_aimers() { common_scripts\utility::flag_wait( "FLAG_intro_rangers_start" ); var_0 = spawn( "script_origin", level.intro_player_nh90.origin ); var_0 linkto( level.intro_player_nh90, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) ); var_1 = gettime(); while ( gettime() - var_1 < 5000 ) { self setentitytarget( var_0, 1 ); wait 0.05; } self clearentitytarget(); self.dontevershoot = undefined; var_0 delete(); common_scripts\utility::flag_wait( "FLAG_intro_passoff_start" ); var_2 = maps\homecoming_util::get_linked_struct(); var_2 maps\_anim::anim_generic_reach( self, "run_trans_2_readystand_2" ); var_2 maps\_anim::anim_generic( self, "run_trans_2_readystand_2" ); var_3 = common_scripts\utility::getstruct( var_2.target, "targetname" ); var_3 thread maps\_anim::anim_generic_loop( self, "readystand_idle" ); common_scripts\utility::flag_wait( "FLAG_intro_rangers_move" ); if ( var_3 maps\homecoming_util::parameters_check( "leave_delay" ) ) wait 0.4; var_3 notify( "stop_loop" ); self stopanimscripted(); var_3 maps\_anim::anim_generic_run( self, "readystand_trans_2_run_1" ); } intro_rangers_pathing() { if ( self != level.hesh ) common_scripts\utility::flag_wait( "FLAG_intro_rangers_move" ); var_0 = common_scripts\utility::getstruct( "intro_" + self.animname + "_path", "targetname" ); thread maps\_utility::follow_path_and_animate( var_0, 0 ); common_scripts\utility::flag_wait( "FLAG_intro_rangers_move4" ); self pushplayer( 1 ); self waittill( "path_end_reached" ); self pushplayer( 0 ); var_1 = common_scripts\utility::getstruct( "bunker_getto_balcony_" + self.animname, "targetname" ); var_2 = getnode( var_1.target, "targetname" ); var_3 = var_2.script_wait; var_1 maps\_anim::anim_generic_reach( self, "combat_jog" ); var_1 thread maps\_anim::anim_generic( self, "balcony_run" ); wait( var_3 ); maps\_utility::anim_stopanimscripted(); self setgoalnode( var_2 ); self.current_follow_path = var_2; } intro_dog_pass_off( var_0 ) { if ( self == level.hesh ) { common_scripts\utility::flag_wait( "FLAG_intro_passoff_start" ); level.hesh thread intro_rangers_pathing(); var_0 thread maps\_anim::anim_single_solo_run( level.hesh, "dog_pass_off" ); var_1 = getanimlength( level.hesh maps\_utility::getanim( "dog_pass_off" ) ); wait( var_1 - 2 ); common_scripts\utility::flag_set( "FLAG_intro_tent_runner" ); wait 1.2; common_scripts\utility::flag_set( "FLAG_intro_rangers_move" ); } else if ( self == level.intro_dog_guy ) { var_0 thread maps\_anim::anim_first_frame_solo( level.intro_dog_guy, "dog_pass_off_start" ); common_scripts\utility::flag_wait( "FLAG_intro_rangers_start" ); var_0 thread maps\_anim::anim_single_solo_run( level.intro_dog_guy, "dog_pass_off_start" ); common_scripts\utility::waitframe(); var_0 maps\_anim::anim_set_rate_single( level.intro_dog_guy, "dog_pass_off_start", 1.5 ); var_0 waittill( "dog_pass_off_start" ); if ( !common_scripts\utility::flag( "FLAG_intro_passoff_start" ) ) var_0 thread maps\_anim::anim_loop_solo( level.intro_dog_guy, "dog_pass_off_start_idle" ); common_scripts\utility::flag_wait( "FLAG_intro_handler_start" ); var_0 notify( "stop_loop" ); level.intro_dog_guy maps\_utility::anim_stopanimscripted(); var_0 maps\_anim::anim_single_solo( level.intro_dog_guy, "dog_pass_off" ); var_0 thread maps\_anim::anim_loop_solo( level.intro_dog_guy, "dog_pass_off_idle" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); level.intro_dog_guy maps\homecoming_util::delete_safe(); } else if ( self == level.dog ) { common_scripts\utility::flag_wait( "FLAG_intro_dog_start" ); var_0 maps\_anim::anim_single_solo( level.dog, "dog_pass_off" ); var_0 thread maps\_anim::anim_loop_solo( level.dog, "dog_pass_off_idle" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); var_0 notify( "stop_loop" ); level.dog maps\homecoming_util::delete_safe(); } } intro_hesh_overlord_elias_dialog() { level endon( "stop_hesh_overlord_elias_dialog" ); if ( !common_scripts\utility::flag( "FLAG_nh90_hesh_last_line" ) ) return; level.hesh maps\_utility::dialogue_queue( "homcom_us1_wellbewaitin" ); maps\_utility::smart_radio_dialogue( "homcom_us1_welldontjuststand" ); level.hesh maps\_utility::dialogue_queue( "homcom_hsh_wellhelpoutwhere" ); maps\_utility::smart_radio_dialogue( "homcom_hsh_rogerletssecurethat" ); } intro_flyby_a10() { common_scripts\utility::noself_delaycall( 1.75, ::earthquake, 0.35, 2.5, level.player.origin, 99999 ); var_0 = maps\_vehicle::spawn_vehicles_from_targetname( "intro_strafe_a10" ); wait 0.4; var_1 = undefined; var_2 = undefined; foreach ( var_4 in var_0 ) { maps\_utility::delaythread( 0.4, maps\_vehicle::gopath, var_4 ); var_4 maps\_vehicle::vehicle_kill_rumble_forever(); if ( var_4 maps\homecoming_util::parameters_check( "close_strafe" ) ) { var_1 = var_4; continue; } var_2 = var_4; } var_2 maps\_utility::delaythread( 0, maps\_utility::play_sound_on_entity, "a10_flyby_opening1" ); var_2 maps\_utility::delaythread( 0, maps\_utility::play_sound_on_tag, "a10_strafe_roar", "tag_gun" ); var_2 maps\_utility::delaythread( 0, maps\homecoming_util::playloopingfx, "a10_tracer", 0.05, undefined, "tag_gun" ); var_1 maps\_utility::delaythread( 1.2, maps\_utility::play_sound_on_entity, "a10_flyby_opening2" ); var_1 maps\_utility::delaythread( 1.2, maps\_utility::play_sound_on_tag, "a10_strafe_roar", "tag_gun" ); var_1 maps\_utility::delaythread( 1.2, maps\homecoming_util::playloopingfx, "a10_tracer", 0.05, undefined, "tag_gun" ); level.player common_scripts\utility::delaycall( 1.2, ::playrumblelooponentity, "hind_flyover" ); level.player common_scripts\utility::delaycall( 2.5, ::stoprumble, "hind_flyover" ); } intro_pullup_trucks() { var_0 = self; var_1 = var_0 maps\_utility::get_linked_structs(); var_2 = var_0 maps\_utility::spawn_vehicle(); foreach ( var_4 in var_1 ) { if ( var_4 maps\homecoming_util::parameters_check( "truckjunk" ) ) { var_5 = spawn( "script_model", var_4.origin ); var_5.angles = var_4.angles; var_5 setmodel( var_4.script_noteworthy ); var_5 linkto( var_2, "tag_body" ); var_5 thread maps\homecoming_util::delete_on_flag( "TRIGFLAG_player_up_bunker_stairs" ); } } maps\_vehicle::gopath( var_2 ); var_2 thread maps\homecoming_util::delete_on_flag( "TRIGFLAG_player_up_bunker_stairs" ); } intro_pullup_truck_guys() { if ( !isdefined( level.truckguys_jumped ) ) { level.truckguys_jumped = 0; thread intro_pullup_truck_guys_lastguy( self.ridingvehicle ); } var_0 = self.spawner; var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" ); maps\homecoming_util::ignore_everything(); maps\_utility::magic_bullet_shield(); self waittill( "jumpedout" ); level.truckguys_jumped++; maps\_utility::follow_path_and_animate( var_1, 0 ); maps\homecoming_util::delete_safe(); } intro_pullup_truck_guys_lastguy( var_0 ) { var_1 = getent( "intro_truckguys_lastguy", "targetname" ); var_2 = common_scripts\utility::getstruct( var_1.target, "targetname" ); var_3 = var_1 maps\_utility::spawn_ai(); var_3 maps\homecoming_util::ignore_everything(); var_3 maps\_utility::magic_bullet_shield(); var_4 = spawn( "script_origin", var_0 gettagorigin( "tag_detach" ) ); var_4.angles = var_0 gettagangles( "tag_detach" ); var_4.origin = var_4.origin + ( -10, 0, 0 ); var_4 linkto( var_0 ); var_3 linkto( var_0 ); var_4 thread maps\_anim::anim_generic_loop( var_3, "bm21_guy3_idle" ); var_0 waittill( "unloading" ); wait 0.1; var_4 maps\_anim::anim_generic( var_3, "bm21_guy3_climbout" ); var_4 maps\_anim::anim_generic( var_3, "bm21_guy_climbout_landing" ); var_4 delete(); var_3 unlink(); var_4 notify( "stop_anim" ); maps\_utility::anim_stopanimscripted(); var_3 maps\_utility::follow_path_and_animate( var_2, 0 ); var_3 maps\homecoming_util::delete_safe(); } intro_house_blocker_truck() { common_scripts\utility::flag_wait( "FLAG_start_bunker" ); var_0 = common_scripts\utility::array_add( level.intro_rangers, level.hesh ); foreach ( var_2 in var_0 ) { if ( var_2 == level.hesh ) { var_2 thread intro_house_blocker_truck_rangers( "FLAG_intro_rangers_move3" ); continue; } var_2 thread intro_house_blocker_truck_rangers( "FLAG_" + var_2.animname + "_in_backyard" ); } common_scripts\utility::flag_wait_all( "FLAG_intro_rangers_move3", "FLAG_ranger1_in_backyard", "FLAG_ranger2_in_backyard" ); var_4 = getent( "bunker_playercheck_trig", "targetname" ); while ( !level.player istouching( var_4 ) ) wait 0.05; getent( "intro_bunker_truck_blocker", "targetname" ) maps\_utility::show_entity(); var_5 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive( "intro_house_blocker_truck" ); var_5 thread maps\homecoming_util::delete_on_flag( "FLAG_bunker_balcony_blocker_set" ); } intro_house_blocker_truck_rangers( var_0 ) { level endon( var_0 ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); if ( common_scripts\utility::flag( var_0 ) ) return; self notify( "stop_path" ); var_1 = common_scripts\utility::getstruct( "intro_" + self.animname + "_path_3", "targetname" ); self forceteleport( var_1.origin, var_1.angles ); thread maps\_utility::follow_path_and_animate( var_1, 0 ); } intro_catwalk_shooters() { maps\_utility::magic_bullet_shield(); self.nodroneweaponsound = 1; self.muzzleflashoverride = "drone_tracer"; common_scripts\utility::flag_wait( "FLAG_start_bunker" ); maps\homecoming_util::delete_safe(); } intro_animated_scenes() { var_0 = common_scripts\utility::getstructarray( "intro_animated_scene", "targetname" ); var_1 = getent( "intro_anim_drone", "targetname" ); var_2 = getent( "intro_anim_ai", "targetname" ); foreach ( var_4 in var_0 ) { if ( isdefined( var_4.script_soundalias ) ) var_4 thread intro_animated_scenes_sound(); var_5 = var_1; if ( var_4 maps\homecoming_util::parameters_check( "ai" ) ) var_5 = var_2; switch ( var_4.script_noteworthy ) { case "sitting_wounded": var_4 thread sitting_wounded_scene( var_5 ); break; case "cpr": var_4 thread cpr_scene( var_2, var_1 ); break; case "wire_pull": var_4 thread bared_wire_scene(); break; case "welder": var_4 thread welder_scene( var_5 ); break; case "thrower": var_4 thread ammo_thrower_scene( var_5 ); break; case "generic_looper": var_4 thread generic_looper( var_5 ); break; } common_scripts\utility::waitframe(); } } sitting_wounded_scene( var_0 ) { var_1 = getent( self.target, "targetname" ); var_2 = var_1 common_scripts\utility::get_linked_ent(); var_3 = var_0 maps\_utility::spawn_ai(); var_3 maps\_utility::magic_bullet_shield(); var_3 maps\_utility::gun_remove(); thread maps\_anim::anim_generic_loop( var_3, "hurt_sitting_wounded_loop" ); thread sitting_wounded_scene_sound(); var_1 waittill( "trigger" ); var_4 = var_2 maps\_utility::spawn_ai(); var_4 maps\homecoming_util::ignore_everything(); var_4 maps\_utility::magic_bullet_shield(); var_4 maps\homecoming_util::disable_arrivals_and_exits(); var_4 maps\_utility::set_generic_run_anim( "combat_jog" ); maps\_anim::anim_generic_reach( var_4, "help_hurt_sitting_helper" ); self notify( "stop_loop" ); thread maps\_anim::anim_generic( var_3, "help_hurt_sitting_wounded" ); maps\_anim::anim_generic( var_4, "help_hurt_sitting_helper" ); thread maps\_anim::anim_generic_loop( var_3, "help_hurt_sitting_wounded_loop" ); thread maps\_anim::anim_generic_loop( var_4, "help_hurt_sitting_helper_loop" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); var_4 maps\homecoming_util::delete_safe(); var_3 maps\homecoming_util::delete_safe(); } sitting_wounded_scene_sound() { self endon( "death" ); var_0 = spawn( "trigger_radius", self.origin, 0, 150, 150 ); var_0 waittill( "trigger" ); common_scripts\utility::play_sound_in_space( "homcom_us2_morphinedocineedmorphine" ); common_scripts\utility::play_sound_in_space( "homcom_us3_lookslikethebullet" ); } cpr_scene( var_0, var_1 ) { var_2 = var_1 maps\_utility::spawn_ai(); var_2 maps\_utility::gun_remove(); var_2 maps\_utility::magic_bullet_shield(); var_2.animname = "generic"; var_2 freeentitysentient(); var_2.no_friendly_fire_penalty = 1; var_3 = var_0 maps\_utility::spawn_ai(); var_3 maps\homecoming_util::ignore_everything(); var_3 maps\_utility::set_battlechatter( 0 ); var_3 maps\_utility::gun_remove(); var_3 maps\_utility::magic_bullet_shield(); var_3.animname = "generic"; var_4 = common_scripts\utility::getstruct( "intro_cpr_run_struct", "targetname" ); var_4 thread maps\_anim::anim_generic( var_3, "cpr_run" ); thread maps\_anim::anim_generic( var_2, "DC_Burning_CPR_wounded" ); common_scripts\utility::waitframe(); var_4 thread maps\_anim::anim_set_rate_single( var_3, "cpr_run", 0 ); thread maps\_anim::anim_set_rate_single( var_2, "DC_Burning_CPR_wounded", 0 ); common_scripts\utility::flag_wait_any( "TRIGFLAG_start_medic_runner", "FLAG_intro_tent_runner" ); var_4 thread maps\_anim::anim_set_rate_single( var_3, "cpr_run", 1 ); var_4 waittill( "cpr_run" ); var_5 = getanimlength( maps\_utility::getanim_generic( "DC_Burning_CPR_medic" ) ); var_6 = var_5 - 4; var_2 maps\_utility::delaythread( var_6, maps\homecoming_drones::drone_setname, "" ); var_5 = getanimlength( maps\_utility::getanim_generic( "DC_Burning_CPR_medic" ) ); thread maps\_anim::anim_set_rate_single( var_2, "DC_Burning_CPR_wounded", 1 ); thread maps\_anim::anim_generic( var_3, "DC_Burning_CPR_medic" ); common_scripts\utility::flag_wait_or_timeout( "TRIGFLAG_player_up_bunker_stairs", var_5 ); if ( !common_scripts\utility::flag( "TRIGFLAG_player_up_bunker_stairs" ) ) { thread maps\_anim::anim_generic_loop( var_3, "DC_Burning_CPR_medic_endidle" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); } var_2 maps\homecoming_util::delete_safe(); var_3 notify( "stop_loop" ); var_3 maps\homecoming_util::delete_safe(); } bared_wire_scene() { level.barbedwirerunners = []; thread barbed_wire_waver(); var_0 = getent( "bared_wire_puller", "targetname" ); var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::magic_bullet_shield(); var_1 hide(); var_1.animname = "wire_puller"; var_2 = maps\_utility::spawn_anim_model( "barbed_wire", self.origin ); var_3 = [ var_1, var_2 ]; thread maps\_anim::anim_first_frame( var_3, "wire_pull" ); common_scripts\utility::flag_wait( "TRIGFLAG_player_going_through_tent" ); var_1 show(); common_scripts\utility::flag_wait_all( "TRIGFLAG_barbed_wire_close", "FLAG_waver_through_wire" ); while ( level.barbedwirerunners.size > 0 ) wait 0.1; var_4 = getanimlength( var_1 maps\_utility::getanim( "wire_pull" ) ); thread maps\_anim::anim_single( var_3, "wire_pull" ); var_2 thread maps\_utility::play_sound_on_entity( "scn_homecoming_wire_drag" ); wait( var_4 - 3 ); var_1 maps\_utility::anim_stopanimscripted(); var_1 thread maps\homecoming_util::move_on_path( common_scripts\utility::getstruct( "intro_barb_guy_run_path", "targetname" ), 1 ); common_scripts\utility::flag_wait( "TRIGFLAG_bunker_house_backyard" ); var_1 maps\homecoming_util::delete_safe(); common_scripts\utility::flag_wait( "FLAG_bunker_balcony_blocker_set" ); var_2 maps\homecoming_util::delete_safe(); } barbed_wire_waver() { var_0 = getent( "bared_wire_waver", "targetname" ); var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::walkdist_zero(); var_1 thread maps\_utility::magic_bullet_shield(); var_2 = common_scripts\utility::getstruct( var_0.script_linkto, "script_linkname" ); var_2 thread maps\_anim::anim_generic_loop( var_1, "clockwork_chaos_wave_guard" ); common_scripts\utility::flag_wait( "TRIGFLAG_barbed_wire_close" ); var_2 notify( "stop_loop" ); var_1 stopanimscripted(); var_2.angles = ( 0, 270, 0 ); var_2 thread maps\_anim::anim_generic( var_1, "readystand_trans_2_run_2" ); var_3 = common_scripts\utility::getstruct( var_0.target, "targetname" ); var_1 maps\_utility::follow_path_and_animate( var_3, 0 ); var_1 maps\homecoming_util::delete_safe(); } welder_scene( var_0 ) { var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::magic_bullet_shield(); var_1 maps\_utility::gun_remove(); var_1.weldtool = spawn( "script_model", var_1.origin ); var_1.weldtool setmodel( "machinery_welder_handle" ); var_1.weldtool linkto( var_1, "tag_inhand", ( 0, 0, 0 ), ( 0, 0, 0 ) ); thread maps\_anim::anim_generic_loop( var_1, self.animation ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); var_1.weldtool common_scripts\utility::stop_loop_sound_on_entity( "elec_spark_welding_bursts" ); var_1.weldtool delete(); self notify( "stop_loop" ); var_1 maps\homecoming_util::delete_safe(); } ammo_thrower_scene( var_0 ) { var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::magic_bullet_shield(); var_1 maps\_utility::gun_remove(); var_1 maps\_utility::hide_entity(); var_1 maps\_utility::flagwaitthread( "TRIGFLAG_barbed_wire_close", maps\_utility::show_entity ); var_2 = self.animation; thread maps\_anim::anim_generic_loop( var_1, var_2 ); var_3 = getanimlength( maps\_utility::getanim_generic( "dh_food_server" )[0] ); while ( !common_scripts\utility::flag( "TRIGFLAG_bunker_house_backyard" ) ) { var_1 attach( "mil_ammo_case_2", "tag_inhand" ); common_scripts\utility::flag_wait_or_timeout( "TRIGFLAG_bunker_house_backyard", var_3 ); var_1 detach( "mil_ammo_case_2", "tag_inhand" ); } var_1 maps\homecoming_util::delete_safe(); } generic_looper( var_0 ) { var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::magic_bullet_shield(); if ( maps\homecoming_util::parameters_check( "notsolid" ) ) var_1 notsolid(); if ( maps\homecoming_util::parameters_check( "nogun" ) ) var_1 maps\_utility::gun_remove(); if ( maps\homecoming_util::parameters_check( "hide" ) ) { var_1 maps\_utility::hide_entity(); var_1 maps\_utility::flagwaitthread( "TRIGFLAG_player_going_through_tent", maps\_utility::show_entity ); } if ( maps\homecoming_util::parameters_check( "radio" ) ) var_1 attach( "prop_uav_radio", "tag_inhand" ); if ( maps\homecoming_util::parameters_check( "first_frame" ) ) thread maps\_anim::anim_generic_first_frame( var_1, self.animation ); else thread maps\_anim::anim_generic_loop( var_1, self.animation ); common_scripts\utility::flag_wait( "TRIGFLAG_player_up_bunker_stairs" ); var_1 maps\homecoming_util::delete_safe(); } intro_animated_scenes_sound() { self endon( "death" ); var_0 = self.script_soundalias; var_1 = 100; if ( isdefined( self.radius ) ) var_1 = self.radius; var_2 = spawn( "trigger_radius", self.origin, 0, var_1, var_1 ); while ( !common_scripts\utility::flag( "TRIGFLAG_player_up_bunker_stairs" ) ) { var_2 waittill( "trigger" ); wait( randomfloatrange( 0, 0.5 ) ); while ( level.player istouching( var_2 ) ) { common_scripts\utility::play_sound_in_space( var_0 ); wait( randomintrange( 4, 8 ) ); } } } #using_animtree("generic_human"); wounded_carry_guy() { var_0 = self.spawner; var_1 = getent( "intro_anim_drone", "targetname" ); var_2 = var_1 maps\_utility::spawn_ai(); var_2 useanimtree( #animtree ); var_2.name = "Pvt. Gavin"; var_2 setlookattext( "Pvt. Gavin", &"" ); var_2 thread maps\_utility::magic_bullet_shield(); var_2 maps\homecoming_drones::drone_gun_remove(); thread maps\_utility::magic_bullet_shield(); self.name = "Sgt. Ramsey"; self.disablearrivals = 1; self.disableexits = 1; self.nododgemove = 1; maps\_utility::pathrandompercent_set( 0 ); self pushplayer( 1 ); maps\homecoming_util::ignore_everything(); maps\_utility::set_generic_run_anim( "wounded_carry_carrier" ); thread maps\_anim::anim_generic_loop( var_2, "wounded_carry_wounded", "stop_anim", "tag_origin" ); var_2 linkto( self, "tag_origin" ); var_3 = common_scripts\utility::getstruct( var_0.target, "targetname" ); self forceteleport( var_3.origin, var_3.angles ); for (;;) { self.goalradius = 5; self setgoalpos( var_3.origin ); self waittill( "goal" ); if ( !isdefined( var_3.target ) ) break; var_3 = common_scripts\utility::getstruct( var_3.target, "targetname" ); } var_4 = common_scripts\utility::getstruct( var_3.script_linkto, "script_linkname" ); self.goalradius = 10; self setgoalpos( var_4.origin ); while ( distance( var_4.origin, self.origin ) > 10 ) { self.goalradius = 10; wait 0.05; } var_2 thread wounded_carry_guy_sound(); var_2 unlink(); var_4 thread maps\_anim::anim_generic( self, "wounded_carry_putdown_carrier" ); self notify( "stop_anim" ); var_2 stopanimscripted(); var_4 maps\_anim::anim_generic( var_2, "wounded_carry_putdown_wounded" ); var_4 thread maps\_anim::anim_generic_loop( self, "wounded_carry_idle_carrier" ); var_4 thread maps\_anim::anim_generic_loop( var_2, "wounded_carry_idle_wounded" ); if ( !isdefined( self.script_parameters ) ) return; common_scripts\utility::flag_wait( self.script_parameters ); var_2 maps\homecoming_util::delete_safe(); maps\homecoming_util::delete_safe(); } wounded_carry_guy_sound() { self endon( "death" ); var_0 = spawn( "trigger_radius", self.origin, 0, 150, 150 ); var_0 waittill( "trigger" ); common_scripts\utility::play_sound_in_space( "homcom_us1_aghhthatshithurtsman" ); common_scripts\utility::play_sound_in_space( "homcom_us2_hereletmecheck" ); } intro_bunker_waver() { common_scripts\utility::flag_wait( "TRIGFLAG_barbed_wire_close" ); var_0 = getent( "bunker_waver_spawner", "targetname" ); var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" ); var_2 = var_0 maps\_utility::spawn_ai(); var_2 maps\_utility::magic_bullet_shield(); var_2 thread intro_bunker_waver_sound(); var_1 thread maps\_anim::anim_generic_loop( var_2, "clockwork_chaos_wave_guard" ); var_3 = getent( "bunker_waver_runner_player_trig", "targetname" ); var_4 = getent( "bunker_waver_runner_hesh_trig", "targetname" ); maps\_utility::add_wait( maps\homecoming_util::waittill_trigger, var_3 ); maps\_utility::add_wait( maps\homecoming_util::waittill_trigger, var_4, level.hesh ); maps\_utility::do_wait_any(); var_5 = getent( "bunker_waver_runner_spawner", "targetname" ); var_6 = var_5 maps\_utility::spawn_ai(); var_6 maps\_utility::magic_bullet_shield(); common_scripts\utility::flag_wait( "TRIGFLAG_player_at_balcony" ); var_2 maps\homecoming_util::delete_safe(); var_6 maps\homecoming_util::delete_safe(); } intro_bunker_waver_sound() { self endon( "death" ); var_0 = spawn( "trigger_radius", self.origin, 0, 250, 100 ); var_0 waittill( "trigger" ); var_1 = lookupsoundlength( "homcom_us4_cmonletsgomove" ); thread maps\_anim::talk_for_time( var_1 / 1000 ); maps\_utility::play_sound_on_entity( "homcom_us4_cmonletsgomove" ); } intro_fake_mortars() { level endon( "TRIGFLAG_player_up_bunker_stairs" ); common_scripts\utility::flag_wait( "FLAG_player_out_of_nh90" ); var_0 = common_scripts\utility::getstructarray( "intro_fake_mortars", "targetname" ); var_1 = getent( "intro_fake_mortars_trigger", "targetname" ); var_2 = var_0; var_3 = 0; for (;;) { if ( level.player istouching( var_1 ) ) wait( randomfloatrange( 3, 5 ) ); else wait( randomfloatrange( 5, 8 ) ); var_4 = common_scripts\utility::random( var_2 ); var_2 = common_scripts\utility::array_remove( var_0, var_4 ); var_5 = 1; if ( common_scripts\utility::cointoss() && var_3 == 0 ) { var_5++; var_3 = 1; } else var_3 = 0; for ( var_6 = 0; var_6 < var_5; var_6++ ) { if ( var_5 != 1 ) { wait( randomfloatrange( 0.2, 0.4 ) ); var_4 = common_scripts\utility::random( var_2 ); var_2 = common_scripts\utility::array_remove( var_0, var_4 ); } else var_4 common_scripts\utility::play_sound_in_space( "mortar_incoming" ); var_7 = randomfloatrange( 0.1, 0.3 ); var_8 = randomfloatrange( 1.4, 2 ); earthquake( var_7, var_8, var_4.origin, 10000 ); level.player playrumbleonentity( "damage_light" ); physicsjolt( level.player.origin, 400, 200, anglestoforward( level.player.angles ) * 0.05 ); if ( level.player istouching( var_1 ) ) playfx( level._effect["mortar"]["sand"], var_4.origin ); var_4 thread common_scripts\utility::play_sound_in_space( "mortar_explosion_big_dirt" ); } } } set_flavorburst_drones( var_0, var_1 ) { level.flavorbursts[var_0] = var_1; var_2 = level.drones[var_0].array; common_scripts\utility::array_thread( var_2, maps\_utility::set_flavorbursts, var_1 ); } intro_flavorburst( var_0 ) { level endon( "stop_intro_flavorburst" ); maps\_utility::battlechatter_off( "allies" ); maps\_utility::flavorbursts_off( "allies" ); var_1 = common_scripts\utility::getstructarray( var_0, "targetname" ); for (;;) { var_2 = common_scripts\utility::getclosest( level.player.origin, var_1, 800 ); if ( isdefined( var_2 ) ) var_2 thread custom_flavor_burst_on_me(); wait 6; } } custom_flavor_burst_on_me() { self endon( "death" ); self notify( "doing_custom_flavor_burst" ); self endon( "doing_custom_flavor_burst" ); wait( randomfloatrange( 0.5, 2 ) ); var_0 = "american"; var_1 = animscripts\battlechatter::getflavorburstid( self, var_0 ); var_2 = animscripts\battlechatter::getflavorburstaliases( var_0, var_1 ); var_3 = spawn( "script_origin", self.origin ); thread custom_flavor_burst_ent_delete( var_3 ); if ( isdefined( var_2.size ) ) { if ( var_2.size > 0 ) { var_3 playsound( common_scripts\utility::random( var_2 ), "sounddone" ); self waittill( "sounddone" ); } } } custom_flavor_burst_ent_delete( var_0 ) { var_0 waittill( "sounddone" ); var_0 delete(); } intro_bunker_turrets() { var_0 = getentarray( self.target, "targetname" ); var_1 = []; foreach ( var_3 in var_0 ) { var_1[var_1.size] = var_3.origin; var_4 = common_scripts\utility::getstruct( var_3.target, "targetname" ); var_3.firetag = spawn( "script_model", var_4.origin ); var_3.firetag setmodel( "tag_origin" ); var_3.firetag.angles = var_4.angles; var_3.firetag linkto( var_3 ); } common_scripts\utility::flag_set( "FLAG_bunker_turrets_setup" ); common_scripts\utility::flag_wait( "FLAG_start_bunker_turret_fire" ); var_6 = maps\homecoming_util::get_midpoint( var_1, 1 ); var_7 = spawn( "script_model", var_6 ); var_7 setmodel( "tag_origin" ); var_8 = var_7.angles[1]; var_9 = randomint( 2 ); for (;;) { wait( randomfloatrange( 2.5, 4.5 ) ); foreach ( var_3 in var_0 ) var_3 linkto( var_7 ); var_12 = undefined; if ( var_9 ) { var_9 = 0; var_12 = randomintrange( 5, 25 ); var_12 = var_8 + var_12; } else { var_9 = 1; var_12 = randomintrange( -25, -5 ); var_12 = var_8 + var_12; } var_13 = ( var_7.angles[0], var_12, var_7.angles[2] ); var_7 rotateto( var_13, 2, 0.5, 0.5 ); var_7 waittill( "rotatedone" ); wait 0.2; intro_bunker_turrets_fire( var_0 ); } } intro_bunker_turrets_fire( var_0 ) { foreach ( var_2 in var_0 ) { var_2 unlink(); playfxontag( common_scripts\utility::getfx( "tank_flash" ), var_2.firetag, "tag_origin" ); var_2.firetag thread maps\_utility::play_sound_on_tag( "intro_bunker_fire", "tag_origin" ); var_3 = var_2.origin; var_4 = anglestoforward( var_2.angles ); var_5 = var_4 * -1; var_6 = var_2.origin + var_5 * 25; var_2 moveto( var_6, 0.2 ); wait 0.2; var_2 moveto( var_3, 0.6 ); wait 0.2; } } #using_animtree("vehicles"); intro_medic_osprey() { var_0 = maps\_vehicle::spawn_vehicle_from_targetname( "intro_medic_osprey" ); var_0 notify( "stop_kicking_up_dust" ); var_0 setanimrestart( %v22_osprey_wings_up, 1, 0.2, 10 ); var_0 setanimrestart( %v22_osprey_hatch_down, 1, 0.2, 10 ); } intro_runners() { maps\homecoming_util::disable_arrivals_and_exits(); maps\homecoming_util::ignore_everything(); maps\_utility::pathrandompercent_zero(); maps\_utility::walkdist_zero(); self.fixednode = 0; self.interval = 0; self.pushable = 0; self.badplaceawareness = 0; maps\_utility::magic_bullet_shield( 1 ); if ( maps\homecoming_util::parameters_check( "jog" ) ) maps\_utility::set_generic_run_anim( "combat_jog" ); thread maps\homecoming_util::move_on_path( common_scripts\utility::getstruct( self.target, "targetname" ), 1 ); if ( maps\homecoming_util::noteworthy_check( "delete_after_land" ) ) { common_scripts\utility::flag_wait( "FLAG_intro_passoff_start" ); maps\homecoming_util::delete_safe(); } var_0 = common_scripts\utility::waittill_any_return( "heading_to_wire", "death" ); if ( var_0 == "death" ) return; var_1 = common_scripts\utility::getstructarray( "intro_street_runners_hesco_goals", "script_noteworthy" ); if ( common_scripts\utility::flag( "TRIGFLAG_barbed_wire_close" ) ) { self notify( "stop_path" ); self setgoalpos( common_scripts\utility::random( var_1 ).origin ); self waittill( "goal" ); self delete(); return; } level.barbedwirerunners = common_scripts\utility::array_add( level.barbedwirerunners, self ); var_0 = common_scripts\utility::waittill_any_return( "past_wire", "death" ); level.barbedwirerunners = common_scripts\utility::array_remove( level.barbedwirerunners, self ); } intro_hesco_runners() { var_0 = self.spawner; maps\_utility::magic_bullet_shield(); if ( isai( self ) ) { maps\homecoming_util::disable_arrivals_and_exits(); maps\_utility::pathrandompercent_zero(); maps\_utility::walkdist_zero(); } if ( maps\homecoming_util::parameters_check( "squad" ) ) { var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" ); var_1 thread maps\_anim::anim_generic_loop( self, "covercrouch_hide_idle" ); maps\homecoming_util::waittill_trigger( "hesco_runners_run_trig" ); if ( isdefined( var_0.script_duration ) ) wait( var_0.script_duration ); var_1 notify( "stop_loop" ); self stopanimscripted(); var_1 maps\_anim::anim_generic_run( self, "crouch_2run_F" ); maps\_utility::stop_magic_bullet_shield(); } else if ( maps\homecoming_util::parameters_check( "spinner" ) ) { self.animname = "generic"; var_2 = var_0 common_scripts\utility::getstruct( var_0.target, "targetname" ); var_2 thread maps\_anim::anim_generic( self, "combatwalk_f_spin" ); common_scripts\utility::waitframe(); var_2 maps\_anim::anim_set_rate_single( self, "combatwalk_f_spin", 1.3 ); } else if ( maps\homecoming_util::parameters_check( "drone" ) ) { wait 1; self notify( "move" ); self waittill( "goal" ); maps\homecoming_util::delete_safe(); return; } var_2 = var_0 maps\homecoming_util::get_linked_struct(); maps\_utility::follow_path_and_animate( var_2, 0 ); maps\homecoming_util::delete_safe(); } intro_bunker_house_runners() { self endon( "death" ); var_0 = self.spawner; maps\homecoming_util::disable_arrivals_and_exits(); maps\_utility::set_generic_run_anim( "combat_jog" ); maps\_utility::set_moveplaybackrate( 1.2 ); var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" ); thread maps\_utility::follow_path_and_animate( var_1, 99999999 ); var_2 = var_0 maps\homecoming_util::get_linked_struct(); var_2 waittill( "trigger" ); var_3 = cos( 65 ); while ( !common_scripts\utility::flag( "FLAG_bunker_hallway_explosion" ) ) { wait 0.05; if ( maps\_utility::within_fov_of_players( self.origin, var_3 ) ) continue; if ( !level.player maps\_utility::can_see_origin( self.origin ) ) maps\homecoming_util::delete_safe(); } maps\homecoming_util::delete_safe(); } intro_street_abrams() { self vehicle_turnengineoff(); self.firetime[0] = 2.5; self.firetime[1] = 7; self.turretturntime = 0; self.firerumble = "artillery_rumble"; self.black_distance = 400; common_scripts\utility::flag_wait( "TRIGFLAG_player_at_balcony" ); self delete(); } intro_house_artemis() { var_0 = getent( "intro_house_artemis", "targetname" ); var_1 = var_0 maps\_utility::spawn_vehicle(); var_1 thread maps\homecoming_util::artemis_think(); var_1 vehicle_turnengineoff(); if ( !common_scripts\utility::flag( "FLAG_bunker_balcony_blocker_set" ) ) { common_scripts\utility::flag_wait( "FLAG_bunker_balcony_blocker_set" ); var_1 delete(); } common_scripts\utility::flag_wait( "FLAG_start_trenches" ); var_1 = var_0 maps\_utility::spawn_vehicle(); var_1 thread maps\homecoming_util::artemis_think(); var_1 vehicle_turnengineoff(); var_1.artemisnofiresound = undefined; common_scripts\utility::flag_wait( "TRIGFLAG_player_leaving_tower_parking_area" ); var_1 delete(); } intro_street_crossers() { var_0 = getent( "intro_street_runners", "targetname" ); for ( var_1 = 0; var_1 < 3; var_1++ ) { var_2 = var_0 maps\_utility::spawn_ai( 1 ); wait( randomfloatrange( 0.7, 1.2 ) ); } } intro_skybridge_order_guy() { var_0 = getent( "intro_skybridge_orderer", "targetname" ); var_1 = var_0 maps\_utility::spawn_ai(); var_1 maps\_utility::set_generic_run_anim( "combat_jog" ); var_1 maps\_utility::magic_bullet_shield(); var_1 maps\homecoming_util::disable_arrivals_and_exits(); var_1 maps\homecoming_util::ignore_everything(); var_2 = common_scripts\utility::getstruct( "intro_skybridge_orderspot", "targetname" ); var_1 maps\_utility::follow_path_and_animate( var_2, 999999 ); var_1 maps\homecoming_util::delete_safe(); } intro_skybridge_drones() { var_0 = getentarray( "intro_skybridge_runners", "targetname" ); maps\_utility::array_spawn_function( var_0, maps\homecoming_util::set_ai_array, "intro_drone_runners" ); var_1 = [ "run", "run2", "run3", "run4", "run5" ]; var_2 = [ "drone_fad_fire_npc", "drone_r5rgp_fire_npc" ]; var_3 = [ 2, 7 ]; var_0 thread maps\homecoming_drones::drone_infinite_runners( "FLAG_stop_intro_drone_runners", var_3, var_1, var_2 ); var_0 = getentarray( "intro_skybridge2_runners", "targetname" ); var_3 = [ 3, 5.5 ]; var_0 thread maps\homecoming_drones::drone_infinite_runners( "FLAG_stop_intro_drone_runners", var_3, var_1, var_2 ); maps\_utility::array_spawn_function( var_0, maps\homecoming_util::set_ai_array, "intro_drone_runners" ); } intro_garage_drones() { maps\homecoming_util::waittill_trigger( "hesco_runners_run_trig" ); var_0 = getentarray( "intro_garage_runners", "targetname" ); maps\_utility::array_spawn_function( var_0, maps\homecoming_util::set_ai_array, "intro_drone_runners" ); var_1 = [ "run", "run2", "run3", "run4", "run5" ]; var_2 = [ 2.2, 4 ]; var_0 thread maps\homecoming_drones::drone_infinite_runners( "TRIGFLAG_bunker_house_backyard", var_2, var_1 ); } intro_street_drones() { var_0 = getentarray( "intro_street_runners", "targetname" ); maps\_utility::array_spawn_function( var_0, maps\homecoming_util::set_ai_array, "intro_drone_runners" ); var_1 = [ "run" ]; var_2 = [ 2.8, 4 ]; var_0 thread maps\homecoming_drones::drone_infinite_runners( "FLAG_stop_intro_drone_runners", var_2, var_1 ); } beach_flyover_helis() { var_0 = getentarray( "beach_flyover_helis", "targetname" ); var_1 = undefined; for (;;) { var_2 = var_0; while ( var_2.size > 0 ) { for (;;) { var_3 = var_2[randomint( var_2.size )]; if ( !isdefined( var_1 ) ) break; if ( var_1 == var_3 ) { wait 0.05; continue; } break; } var_1 = var_3; var_3 thread maps\_vehicle::spawn_vehicle_and_gopath(); var_2 = common_scripts\utility::array_remove( var_2, var_3 ); wait( randomintrange( 1, 5 ) ); } } }