328 lines
9.6 KiB
Plaintext
328 lines
9.6 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
do_gas_station_blocker()
|
|
{
|
|
var_0 = gettime();
|
|
wait 2;
|
|
var_1 = [ "last_gdf_ancestorpassing" ];
|
|
thread maps\mp\mp_alien_last::play_last_vignette_vo( var_1 );
|
|
var_2 = ( -3332.5, 3723.5, 509.4 );
|
|
wait 1.0;
|
|
level.ancestor_shield_up_override = 10;
|
|
var_3 = common_scripts\utility::getstruct( "ancestor_gas_station", "targetname" );
|
|
var_4 = maps\mp\agents\alien\alien_ancestor\_alien_ancestor::addancestoragent( "axis", var_3.origin, level.players[0].angles );
|
|
level thread gas_station_ancestor_logic( var_4 );
|
|
level thread gas_station_blocker_ancestor_leave( var_4 );
|
|
wait 1;
|
|
level waittill( "drill_detonated" );
|
|
level.ancestor_shield_up_override = undefined;
|
|
common_scripts\utility::flag_set( "outpost_gas_station_done" );
|
|
maps\mp\alien\_achievement_dlc4::update_progression_achievements( "outpost_gas_station_done" );
|
|
give_blocker_awards();
|
|
}
|
|
|
|
gas_station_ancestor_logic( var_0 )
|
|
{
|
|
var_0 endon( "death" );
|
|
var_0 endon( "ancestor_destroyed" );
|
|
var_1 = "traverse_down";
|
|
var_2 = "traverse";
|
|
var_3 = "end";
|
|
var_4 = 0;
|
|
wait 0.25;
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_enter_scripted();
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "ancestor_jump_down_node" );
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_play_traversal( var_0.angles, "traverse_down" );
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "gas_station_attack_spot" );
|
|
var_0 maps\mp\alien\_utility::disable_alien_scripted();
|
|
|
|
if ( var_0 maps\mp\alien\_utility::ent_flag_exist( "activate_shield_health_check" ) )
|
|
var_0 maps\mp\alien\_utility::ent_flag_set( "activate_shield_health_check" );
|
|
}
|
|
|
|
gas_station_blocker_ancestor_leave( var_0 )
|
|
{
|
|
var_0 endon( "death" );
|
|
var_0 endon( "ancestor_destroyed" );
|
|
level waittill( "drill_detonated" );
|
|
var_1 = 1;
|
|
|
|
while ( var_1 )
|
|
{
|
|
var_1 = 0;
|
|
|
|
foreach ( var_3 in level.players )
|
|
{
|
|
if ( var_3.origin[0] < -750 && var_3.origin[1] > 400 )
|
|
var_1 = 1;
|
|
}
|
|
|
|
wait 0.25;
|
|
}
|
|
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_enter_scripted();
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "ancestor_gas_station_retreat_node" );
|
|
wait 0.1;
|
|
|
|
if ( isdefined( var_0 ) && isalive( var_0 ) )
|
|
{
|
|
var_0.killed_by_script = 1;
|
|
remove_ancestor_healthbar( var_0 );
|
|
var_0 suicide();
|
|
var_5 = undefined;
|
|
}
|
|
}
|
|
|
|
gas_station_blocker_ai_func( var_0, var_1 )
|
|
{
|
|
level endon( "drill_detonated" );
|
|
var_2 = var_1 + 1;
|
|
|
|
for (;;)
|
|
{
|
|
level waittill( "dlc_vo_notify", var_3, var_4 );
|
|
|
|
if ( var_3 == "last_vo" && var_4 == "conduit_halfway" )
|
|
{
|
|
var_2 = gettime();
|
|
break;
|
|
}
|
|
}
|
|
|
|
setthreatbias( "drill", "ancestors", 10000 );
|
|
setthreatbias( "players", "ancestors", 10 );
|
|
}
|
|
|
|
encounter_end_conduit_number_vo()
|
|
{
|
|
level endon( "game_ended" );
|
|
var_0 = [ "last_gdf_2conduitsup" ];
|
|
|
|
switch ( level.num_conduit_completed )
|
|
{
|
|
case 1:
|
|
level thread conduit_encounter_end_vo_1();
|
|
break;
|
|
case 2:
|
|
level thread conduit_encounter_end_vo_2();
|
|
break;
|
|
case 3:
|
|
level thread conduit_encounter_end_vo_3();
|
|
break;
|
|
case 4:
|
|
level thread conduit_encounter_end_vo_4();
|
|
break;
|
|
case 5:
|
|
level thread conduit_encounter_end_vo_5();
|
|
break;
|
|
case 6:
|
|
level thread play_get_back_base_nag_vo();
|
|
level thread conduit_encounter_end_vo_6();
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
}
|
|
|
|
conduit_encounter_end_vo_1()
|
|
{
|
|
var_0 = [ "last_gdf_fivetogo", "last_gdf_ancestorwarlords" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
conduit_encounter_end_vo_2()
|
|
{
|
|
level thread play_get_moving_to_conduit_nag_vo();
|
|
var_0 = [ "last_gdf_experimentalweapon", "last_gdf_powersource" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
conduit_encounter_end_vo_3()
|
|
{
|
|
var_0 = [ "last_gdf_nosignofcross", "last_arc_playingyoufor" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
conduit_encounter_end_vo_4()
|
|
{
|
|
var_0 = [ "last_gdf_last2generators", "last_arc_alljustpuppets", "last_gdf_notarcher" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
conduit_encounter_end_vo_5()
|
|
{
|
|
var_0 = [ "last_gdf_windowabouttoclose" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
conduit_encounter_end_vo_6()
|
|
{
|
|
var_0 = [ "last_gdf_runningoutof", "last_crs_wonthaveto", "last_gdf_whatgame", "last_arc_makebelieve" ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_0 );
|
|
}
|
|
|
|
play_get_moving_to_conduit_nag_vo()
|
|
{
|
|
level endon( "game_ended" );
|
|
level endon( "stop_post_hive_vo" );
|
|
level endon( "drill_planted" );
|
|
var_0 = 90;
|
|
var_1 = 30;
|
|
wait( var_0 );
|
|
var_2 = [ "last_gdf_2conduitsup" ];
|
|
|
|
for (;;)
|
|
{
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_2 );
|
|
wait( var_1 );
|
|
var_1 = var_1 + 10;
|
|
}
|
|
}
|
|
|
|
play_get_back_base_nag_vo()
|
|
{
|
|
level endon( "game_ended" );
|
|
level endon( "stop_post_hive_vo" );
|
|
level endon( "drill_planted" );
|
|
var_0 = 90;
|
|
var_1 = 30;
|
|
wait( var_0 );
|
|
var_2 = [];
|
|
|
|
for ( var_3 = [ "last_gdf_attackingthebase", "last_gdf_returntobase" ]; !common_scripts\utility::flag( "start_cross_vignette" ); var_1 = var_1 + 10 )
|
|
{
|
|
var_4 = common_scripts\utility::random( var_3 );
|
|
var_2 = [ var_4 ];
|
|
maps\mp\mp_alien_last::play_last_vignette_vo( var_2 );
|
|
wait( var_1 );
|
|
}
|
|
}
|
|
|
|
do_garage_blocker()
|
|
{
|
|
level.ancestor_shield_up_override = 10;
|
|
var_0 = common_scripts\utility::getstruct( "ancestor_parking_1", "targetname" );
|
|
var_1 = maps\mp\agents\alien\alien_ancestor\_alien_ancestor::addancestoragent( "axis", var_0.origin, level.players[0].angles );
|
|
wait 0.5;
|
|
var_2 = getnode( "ancestor_garage_start_01", "targetname" );
|
|
|
|
if ( level.current_hive_name == "conduit_parking_1" )
|
|
var_2 = getnode( "ancestor_garage_start_02", "targetname" );
|
|
|
|
var_1 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::assign_path_node( var_2 );
|
|
wait 1.0;
|
|
|
|
if ( isalive( var_1 ) && var_1 maps\mp\alien\_utility::ent_flag_exist( "activate_shield_health_check" ) )
|
|
var_1 maps\mp\alien\_utility::ent_flag_set( "activate_shield_health_check" );
|
|
|
|
var_3 = [ "last_gdf_spottedanancestor" ];
|
|
thread maps\mp\mp_alien_last::play_last_vignette_vo( var_3 );
|
|
level thread ancestor_attack_conduits( var_1 );
|
|
level thread ancestor_run_away( var_1, var_0 );
|
|
level waittill( "drill_detonated" );
|
|
level.ancestor_shield_up_override = undefined;
|
|
common_scripts\utility::flag_set( "outpost_garage_done" );
|
|
maps\mp\alien\_achievement_dlc4::update_progression_achievements( "outpost_garage_done" );
|
|
give_blocker_awards();
|
|
}
|
|
|
|
ancestor_attack_conduits( var_0 )
|
|
{
|
|
level endon( "drill_detonated" );
|
|
var_0 endon( "death" );
|
|
wait 15;
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_enter_scripted();
|
|
|
|
if ( level.current_hive_name == "conduit_parking_1" )
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "ancestor_garage_attack_02" );
|
|
else
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "ancestor_garage_attack_01" );
|
|
|
|
wait 0.1;
|
|
var_1 = level.current_encounter_info.conduit;
|
|
|
|
for (;;)
|
|
{
|
|
var_0 thread maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::force_blast_attack( var_1.origin );
|
|
var_0 maps\mp\alien\_utility::disable_alien_scripted();
|
|
wait 15;
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_enter_scripted();
|
|
}
|
|
}
|
|
|
|
ancestor_run_away( var_0, var_1 )
|
|
{
|
|
var_0 endon( "death" );
|
|
level waittill( "drill_detonated" );
|
|
|
|
if ( isdefined( var_0 ) && isalive( var_0 ) )
|
|
{
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_enter_scripted();
|
|
var_2 = getnode( "ancestor_retreat_node", "targetname" );
|
|
|
|
if ( isdefined( var_2 ) )
|
|
var_0 maps\mp\agents\alien\alien_ancestor\_alien_ancestor_think::ancestor_path_to_node( "ancestor_retreat_node" );
|
|
}
|
|
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( isdefined( var_0 ) && isalive( var_0 ) )
|
|
{
|
|
var_0.killed_by_script = 1;
|
|
remove_ancestor_healthbar( var_0 );
|
|
var_0 suicide();
|
|
var_1 = undefined;
|
|
}
|
|
}
|
|
|
|
do_rooftops_blocker()
|
|
{
|
|
level waittill( "drill_detonated" );
|
|
common_scripts\utility::flag_set( "outpost_rooftops_done" );
|
|
maps\mp\alien\_achievement_dlc4::update_progression_achievements( "outpost_rooftops_done" );
|
|
give_blocker_awards();
|
|
}
|
|
|
|
give_blocker_awards()
|
|
{
|
|
foreach ( var_1 in level.players )
|
|
var_1 maps\mp\alien\_persistence::try_award_bonus_pool_token();
|
|
}
|
|
|
|
spawn_proto_ancestor()
|
|
{
|
|
var_0 = getent( "temp_spawn_ancestor", "targetname" );
|
|
var_0 waittill( "trigger" );
|
|
setdvar( "scr_debug_ancestor_spawn", 1 );
|
|
}
|
|
|
|
jump_to_gas_station()
|
|
{
|
|
|
|
}
|
|
|
|
jump_to_parking()
|
|
{
|
|
|
|
}
|
|
|
|
jump_to_rooftop()
|
|
{
|
|
|
|
}
|
|
|
|
remove_ancestor_healthbar( var_0 )
|
|
{
|
|
if ( isdefined( var_0.entityheadicons ) )
|
|
{
|
|
foreach ( var_2 in var_0.entityheadicons )
|
|
{
|
|
if ( !isdefined( var_2 ) )
|
|
continue;
|
|
|
|
var_2 destroy();
|
|
}
|
|
}
|
|
}
|