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

936 lines
27 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
maps\mp\mp_dome_ns_precache::main();
anim_precache();
maps\createart\mp_dome_ns_art::main();
maps\mp\mp_dome_ns_fx::main();
common_scripts\_pipes::main();
level.mapcustomcratefunc = ::dome_nscustomcratefunc;
level.mapcustomkillstreakfunc = ::dome_nscustomkillstreakfunc;
level.mapcustombotkillstreakfunc = ::dome_nscustombotkillstreakfunc;
level.deployableboxgiveweaponfunc = maps\mp\mp_alien_weapon::give_alien_weapon;
maps\mp\_load::main();
mp_dome_ns_flag_init();
setdvar( "r_globalGenericMaterialScale", 4.0 );
maps\mp\_compass::setupminimap( "compass_map_mp_dome_ns" );
setdvar( "r_lightGridEnableTweaks", 1 );
setdvar( "r_lightGridIntensity", 1.33 );
setdvar( "r_reactiveMotionWindAmplitudeScale", 0.4 );
setdvar( "r_reactiveMotionPlayerRadius", 20.0 );
game["attackers"] = "allies";
game["defenders"] = "axis";
alien_weapon_setup();
thread auto_door_setup();
thread crane_platform();
thread always_open_door();
maps\mp\mp_alien_weapon::init();
if ( level.ps3 )
{
setdvar( "sm_sunShadowScale", "0.3" );
setdvar( "sm_sunsamplesizenear", ".15" );
}
else if ( level.xenon )
{
setdvar( "sm_sunShadowScale", "0.55" );
setdvar( "sm_sunsamplesizenear", ".25" );
}
else
setdvar( "sm_sunShadowScale", "1.0" );
maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 3.0, 7.5 );
level.pipesdamage = 0;
thread maps\mp\_dlcalienegg::setupeggformap( "alienEasterEgg" );
}
mp_dome_ns_flag_init()
{
common_scripts\utility::flag_init( "crane_usable" );
common_scripts\utility::flag_init( "misters_on" );
}
set_up_shootable_pipes()
{
var_0 = getentarray( "pipe_shootable", "targetname" );
foreach ( var_2 in var_0 )
var_2.script_noteworthy = "steam";
}
anim_precache()
{
precachempanim( "mp_dome_ns_crane_cargo_01" );
precachempanim( "mp_dome_ns_crane_cargo_02" );
precachempanim( "mp_dome_ns_crane_cargo_start" );
precachempanim( "mp_dome_ns_crane_01" );
precachempanim( "mp_dome_ns_crane_02" );
precachempanim( "mp_dome_ns_crane_start" );
precachempanim( "mp_dome_ns_showerdoor_open_l" );
precachempanim( "mp_dome_ns_showerdoor_close_l" );
precachempanim( "mp_dome_ns_showerdoor_open_r" );
precachempanim( "mp_dome_ns_showerdoor_close_r" );
precachemodel( "mp_dns_crane_debris" );
}
alien_weapon_setup()
{
var_0 = getent( "alien_weapon_trigger", "targetname" );
thread alien_weapon_trigger_watcher( var_0 );
}
alien_weapon_trigger_watcher( var_0 )
{
var_0 makeunusable();
common_scripts\utility::flag_wait( "crane_usable" );
var_1 = getent( "platform_origin", "targetname" );
var_0 makeusable();
var_0 enablelinkto();
var_0 linkto( var_1 );
var_0 sethintstring( &"MP_DOME_NS_GET_ALIEN_GUN" );
for (;;)
{
if ( level.remaining_alien_weapons == 0 )
break;
var_0 waittill( "trigger", var_2 );
var_2 maps\mp\mp_alien_weapon::give_alien_weapon();
}
var_3 = getent( "alien_gun_model", "targetname" );
var_3 hide();
var_0 makeunusable();
var_0 sethintstring( "" );
}
#using_animtree("animated_props_dlc2");
crane_platform()
{
thread crane_available_check();
var_0 = getent( "het_bed_proxy", "targetname" );
var_0 delete();
var_1 = 2;
level.platform_lights = [];
var_2 = getent( "platform_origin", "targetname" );
var_3 = getent( "moving_platform_model", "targetname" );
var_4 = getent( "alien_gun_model", "targetname" );
var_5 = getent( "platform_sfx_origin", "targetname" );
var_6 = getent( "platform_death_trigger", "targetname" );
var_7 = getent( "dome_crane", "targetname" );
var_8 = getentarray( "moving_platform", "targetname" );
var_8[var_8.size] = var_3;
var_8[var_8.size] = var_4;
var_9 = getent( "side_blockerB", "targetname" );
var_10 = getent( "arm_base_jnt_collision", "targetname" );
var_11 = getent( "arm_mid_jnt_collision", "targetname" );
var_12 = getent( "arm_end_jnt_collision", "targetname" );
var_13 = getent( "operators_cab_jnt_collision", "targetname" );
var_14 = getent( "hook_jnt_collision", "targetname" );
var_10 linkto( var_7, "arm_base_jnt" );
var_11 linkto( var_7, "arm_mid_jnt" );
var_12 linkto( var_7, "arm_end_jnt" );
var_13 linkto( var_7, "operators_cab_jnt" );
var_14 linkto( var_7, "hook_jnt" );
var_10.destroyairdroponcollision = 1;
var_11.destroyairdroponcollision = 1;
var_12.destroyairdroponcollision = 1;
var_13.destroyairdroponcollision = 1;
var_14.destroyairdroponcollision = 1;
var_10.no_moving_platfrom_death = 1;
var_11.no_moving_platfrom_death = 1;
var_12.no_moving_platfrom_death = 1;
var_13.no_moving_platfrom_death = 1;
var_14.no_moving_platfrom_death = 1;
var_15 = getentarray( "gate_watcher", "targetname" );
var_16 = getent( "crane_occupied_watcher", "targetname" );
foreach ( var_18 in var_15 )
{
var_18 enablelinkto();
var_18 linkto( var_2 );
}
var_6 enablelinkto();
var_6 linkto( var_2 );
var_16 enablelinkto();
var_16 linkto( var_2 );
thread disable_drones_watcher( var_16 );
common_scripts\utility::waitframe();
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_start" );
var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_start" );
wait 1;
foreach ( var_21 in var_8 )
{
var_21 linkto( var_2, "tag_origin" );
var_21.destroyairdroponcollision = 1;
}
var_5 linkto( var_2, "tag_origin" );
var_9 solid();
var_9 connectpaths();
var_9 notsolid();
var_23 = getent( "crane_gate_blocker", "targetname" );
var_23 linkto( var_2 );
var_23.no_moving_platfrom_death = 1;
var_24 = getent( "crane_audio_org", "targetname" );
var_25 = 1;
common_scripts\utility::flag_wait( "crane_usable" );
objective_add( 31, "active", var_3.origin, "waypoint_man_basket" );
objective_onentitywithrotation( 31, var_3 );
var_23 unlink();
var_23 notsolid();
wait 0.1;
var_23 linkto( var_2 );
var_26 = getent( "platform_toggle_triggerA", "targetname" );
var_26 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" );
var_26 makeusable();
var_27 = getent( "platform_toggle_triggerB", "targetname" );
var_27 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" );
var_27 makeunusable();
thread gate_watcher( var_15, var_26 );
thread gate_watcher( var_15, var_27 );
for (;;)
{
level waittill( "crane_triggered" );
thread fx_crane_light( var_5 );
crane_gate_move( var_23, var_2, "down" );
if ( var_25 == 1 )
{
var_26 playsound( "scn_crane_button_activate" );
var_26 makeunusable();
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_01" );
var_3 scriptmodelplayanim( "mp_dome_ns_crane_cargo_01_gate" );
var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_01" );
var_28 = getanimlength( %mp_dome_ns_crane_cargo_01_gate );
var_29 = getnotetracktimes( %mp_dome_ns_crane_cargo_01_gate, "gate_open" );
var_30 = var_28 * var_29[0];
}
else
{
var_27 playsound( "scn_crane_button_activate" );
var_27 makeunusable();
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_02" );
var_3 scriptmodelplayanim( "mp_dome_ns_crane_cargo_02_gate" );
var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_02" );
var_29 = getnotetracktimes( %mp_dome_ns_crane_cargo_02_gate, "gate_open" );
var_28 = getanimlength( %mp_dome_ns_crane_cargo_02_gate );
var_30 = var_28 * var_29[0];
var_9 solid();
var_9 connectpaths();
var_9 notsolid();
}
thread sfx_crane_bar( var_25, 0, "down" );
var_24 thread sfx_crane_start();
var_5 thread sfx_crane_platform_start();
foreach ( var_21 in var_8 )
{
var_21.unresolved_collision_func = ::crane_damage_manager;
var_21.unresolved_collision_notify_min = 1;
var_21.unresolved_collision_kill = 1;
var_21.owner = level.triggerer;
}
thread sfx_crane_bar( var_25, var_30, "up" );
wait( var_30 );
crane_gate_move( var_23, var_2, "up" );
var_6 thread death_trigger_manager();
if ( var_25 == 1 )
{
var_9 solid();
var_9 disconnectpaths();
var_9 notsolid();
var_33 = var_28 - var_30;
var_24 thread sfx_crane_stop( var_33, 2 );
var_5 thread sfx_crane_stop_impt( var_33, 0.2 );
}
else
{
var_33 = var_28 - var_30;
var_24 thread sfx_crane_stop( var_33, 1.8 );
var_5 thread sfx_crane_stop_impt( var_33, 0.4 );
}
wait( var_28 - var_30 );
wait( var_1 );
if ( var_25 == 1 )
{
var_27 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" );
var_27 makeusable();
}
else
{
var_26 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" );
var_26 makeusable();
}
var_25 = var_25 * -1;
level notify( "platform_move_done" );
}
}
death_trigger_manager()
{
level endon( "platform_move_done" );
for (;;)
{
var_0 = [];
var_1 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" );
var_1 = common_scripts\utility::array_combine( var_1, level.players );
foreach ( var_3 in var_1 )
{
if ( isplayer( var_3 ) && ( var_3.sessionstate == "intermission" || var_3.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_3 ) ) )
var_1 = common_scripts\utility::array_remove( var_1, var_3 );
}
var_0 = self getistouchingentities( var_1 );
foreach ( var_3 in var_0 )
crane_damage_manager( var_3 );
wait 0.1;
}
}
disable_drones_watcher( var_0 )
{
for (;;)
{
if ( isdefined( level.players ) )
break;
wait 1;
}
for (;;)
{
var_1 = var_0 getistouchingentities( level.players );
foreach ( var_3 in var_1 )
{
if ( isdefined( var_3.drones_disabled ) )
continue;
var_3.drones_disabled = 1;
var_3.seekers_disabled = 1;
var_3 thread enable_drones_watcher( var_0 );
}
wait 0.05;
}
}
enable_drones_watcher( var_0 )
{
if ( !isplayer( self ) )
self endon( "death" );
self endon( "disconnect" );
while ( self istouching( var_0 ) )
wait 0.05;
self.drones_disabled = undefined;
self.seekers_disabled = undefined;
}
gate_watcher( var_0, var_1 )
{
for (;;)
{
var_1 waittill( "trigger", var_2 );
var_3 = [];
var_4 = [];
var_5 = level.players;
foreach ( var_7 in var_5 )
{
if ( var_7.sessionstate == "intermission" || var_7.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_7 ) )
var_7 = common_scripts\utility::array_remove( var_5, var_7 );
}
foreach ( var_10 in var_0 )
{
var_4 = var_10 getistouchingentities( var_5 );
var_3 = common_scripts\utility::array_combine( var_3, var_4 );
}
if ( var_3.size > 0 )
{
var_2 playsoundtoplayer( "alien_miasma_alarm", var_2 );
continue;
}
level notify( "crane_triggered" );
level.triggerer = var_2;
}
}
crane_gate_move( var_0, var_1, var_2 )
{
if ( var_2 == "up" )
{
level notify( "basket_descending" );
var_0 notsolid();
}
else
var_0 solid();
}
crane_available_check()
{
var_0 = getent( "moving_platform_model", "targetname" );
var_1 = getent( "platform_origin", "targetname" );
var_2 = getent( "dome_crane", "targetname" );
level.crane_targets = 3;
thread crane_target_setup( "crane_target_1", "arm_base_jnt", 5 );
thread crane_target_setup( "crane_target_2", "arm_mid_jnt", 6 );
thread crane_target_setup( "crane_target_3", "arm_end_jnt", 7 );
while ( level.crane_targets == 3 )
{
if ( getdvarint( "scr_activateCrane" ) == 1 )
break;
wait 0.05;
}
var_0 playsound( "scn_dome_crane_platform_01" );
var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop1" );
var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop1_gate" );
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop1" );
var_3 = getanimlength( %mp_dome_ns_crane_drop1 );
wait( var_3 );
while ( level.crane_targets == 2 )
{
if ( getdvarint( "scr_activateCrane" ) == 1 )
break;
wait 0.05;
}
var_0 playsound( "scn_dome_crane_platform_02" );
var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop2" );
var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop2_gate" );
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop2" );
var_3 = getanimlength( %mp_dome_ns_crane_drop2 );
wait( var_3 );
while ( level.crane_targets == 1 )
{
if ( getdvarint( "scr_activateCrane" ) == 1 )
break;
wait 0.05;
}
var_0 playsound( "scn_dome_crane_platform_03" );
var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop3" );
var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop3_gate" );
var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop3" );
var_4 = spawn( "script_model", var_2.origin );
var_4.angles = var_2.angles;
var_4 setmodel( "mp_dns_crane_debris" );
var_4 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop3_debris" );
var_3 = getanimlength( %mp_dome_ns_crane_drop3 );
wait( var_3 - 0.8 );
common_scripts\utility::exploder( 4 );
wait 0.2;
var_5 = getentarray( "crane_platform_blocker", "targetname" );
var_6 = getnodearray( "traverse_platform", "targetname" );
foreach ( var_8 in var_6 )
connectnodepair( var_8, getnode( var_8.target, "targetname" ) );
var_10 = getnodearray( "no_agent_spawn_node", "script_noteworthy" );
var_10 common_scripts\utility::array_combine( var_10, var_6 );
foreach ( var_8 in var_10 )
var_8.no_agent_spawn = 1;
foreach ( var_14 in var_5 )
{
if ( var_14.classname == "script_brushmodel" )
var_14 connectpaths();
var_14 delete();
}
wait 1;
common_scripts\utility::flag_set( "crane_usable" );
var_0 man_cage_button_fx();
}
man_cage_button_fx()
{
common_scripts\utility::flag_wait( "crane_usable" );
for (;;)
{
stopfxontag( level._effect["vfx_red_light"], self, "tag_fx_red" );
playfxontag( level._effect["vfx_green_light"], self, "tag_fx_green" );
level waittill( "crane_triggered" );
playfxontag( level._effect["vfx_red_light"], self, "tag_fx_red" );
stopfxontag( level._effect["vfx_green_light"], self, "tag_fx_green" );
level waittill( "platform_move_done" );
}
}
crane_target_setup( var_0, var_1, var_2 )
{
var_3 = getent( var_0, "targetname" );
var_4 = getent( "dome_crane", "targetname" );
var_3 linkto( var_4, var_1 );
if ( level.gametype == "oic" || level.gametype == "gun" || level.gametype == "infect" || level.gametype == "horde" || level.gametype == "sotf" || level.gametype == "sotf_ffa" || maps\mp\_utility::ismlgmatch() )
{
var_3 delete();
return;
}
var_3 setcandamage( 1 );
var_3.health = 100000;
for (;;)
{
var_3 waittill( "damage", var_5, var_6, var_7, var_8, var_9 );
if ( var_5 >= 75 && ( var_9 == "MOD_EXPLOSIVE" || var_9 == "MOD_PROJECTILE_SPLASH" || var_9 == "MOD_PROJECTILE" || var_9 == "MOD_GRENADE_SPLASH" || var_9 == "MOD_GRENADE" || var_9 == "SPLASH" ) )
{
var_3 playsound( "scn_dome_crane_explo_01" );
var_3 delete();
level.crane_targets--;
common_scripts\utility::exploder( var_2 );
break;
}
}
}
crane_damage_manager( var_0 )
{
if ( isdefined( level.triggerer ) )
{
if ( isdefined( var_0.team ) && var_0.team == level.triggerer.team )
var_0 dodamage( 1000, var_0.origin, self, self, "MOD_CRUSH" );
else
var_0 dodamage( 1000, var_0.origin, level.triggerer, self, "MOD_CRUSH" );
}
else
var_0 dodamage( 1000, var_0.origin, undefined, undefined, "MOD_CRUSH" );
}
clean_tube_watcher()
{
var_0 = getent( "trigger_clean_tube_spray", "targetname" );
for (;;)
{
var_1 = [];
var_2 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" );
var_2 = common_scripts\utility::array_combine( var_2, level.players );
var_2 = common_scripts\utility::array_combine( var_2, level.remote_uav );
foreach ( var_4 in var_2 )
{
if ( isplayer( var_4 ) && ( var_4.sessionstate == "intermission" || var_4.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_4 ) ) )
var_2 = common_scripts\utility::array_remove( var_2, var_4 );
}
common_scripts\utility::waitframe();
var_1 = var_0 getistouchingentities( var_2 );
foreach ( var_4 in var_1 )
{
if ( isplayer( var_4 ) )
var_4.drones_disabled = 1;
var_4 thread enable_drones_watcher( var_0 );
}
if ( var_1.size > 0 )
{
activateclientexploder( 70 );
thread sfx_misters_on();
}
else
thread sfx_misters_off();
wait 0.75;
}
}
door_trigger_watcher( var_0 )
{
for (;;)
{
var_1 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" );
var_1 = common_scripts\utility::array_combine( var_1, level.players );
var_1 = common_scripts\utility::array_combine( var_1, level.remote_uav );
foreach ( var_3 in var_1 )
{
if ( isplayer( var_3 ) && ( var_3.sessionstate == "intermission" || var_3.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_3 ) ) )
var_1 = common_scripts\utility::array_remove( var_1, var_3 );
}
common_scripts\utility::waitframe();
var_5 = var_0 getistouchingentities( var_1 );
if ( var_5.size == 0 )
var_0 notify( "unoccupied" );
else
var_0 notify( "occupied" );
wait 0.25;
}
}
always_open_door()
{
var_0 = getent( "door_open_right", "targetname" );
var_1 = getent( "door_open_left", "targetname" );
var_0 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_l" );
var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_r" );
}
auto_door_setup()
{
for (;;)
{
if ( isdefined( level.players ) )
break;
wait 1;
}
thread clean_tube_watcher();
var_0 = getentarray( "trigger_automatic_door", "targetname" );
foreach ( var_2 in var_0 )
{
thread door_trigger_watcher( var_2 );
thread auto_door_manager( var_2 );
}
}
auto_door_manager( var_0 )
{
var_1 = 2;
var_2 = getentarray( var_0.target, "targetname" );
var_3 = 1;
var_4 = 1;
var_5 = 1;
var_6 = 1;
var_7 = 1;
var_8 = 1;
var_9 = 1;
var_10 = 1;
foreach ( var_12 in var_2 )
{
var_13 = var_12.script_parameters;
if ( var_12.script_parameters == "door_left;" )
var_14 = var_12;
if ( !isdefined( var_13 ) )
var_13 = "";
var_15 = strtok( var_13, ";" );
foreach ( var_17 in var_15 )
{
if ( var_15[0] == "door_left" )
var_3 = var_12;
if ( var_15[0] == "door_right" )
var_4 = var_12;
if ( var_15[0] == "closed_left" )
var_5 = var_12;
if ( var_15[0] == "closed_right" )
var_6 = var_12;
if ( var_15[0] == "open_left" )
var_7 = var_12;
if ( var_15[0] == "open_right" )
var_8 = var_12;
if ( var_15[0] == "door_animated_right" )
var_9 = var_12;
if ( var_15[0] == "door_animated_left" )
var_10 = var_12;
}
}
common_scripts\utility::waitframe();
var_3 connectpaths();
var_4 connectpaths();
var_20 = var_6.origin;
var_3 linkto( var_5 );
var_4 linkto( var_6 );
for (;;)
{
var_0 waittill( "occupied" );
var_3 maps\mp\_movers::notify_moving_platform_invalid();
var_4 maps\mp\_movers::notify_moving_platform_invalid();
var_5 moveto( var_7.origin, 0.5 );
var_6 moveto( var_8.origin, 0.5 );
var_10 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_r" );
var_9 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_l" );
var_10 playsound( "scn_dome_ns_glass_door_open" );
var_9 playsound( "scn_dome_ns_glass_door_open" );
wait 0.5;
wait( var_1 );
var_0 waittill( "unoccupied" );
var_5 moveto( var_20, 0.5 );
var_6 moveto( var_20, 0.5 );
var_10 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_close_r" );
var_9 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_close_l" );
var_10 playsound( "scn_dome_ns_glass_door_close" );
var_9 playsound( "scn_dome_ns_glass_door_close" );
wait 0.5;
wait 0.1;
}
}
fx_crane_light( var_0 )
{
playfxontag( level._effect["vfx_dome_ns_man_cage_flare"], var_0, "tag_origin" );
level waittill( "platform_move_done" );
stopfxontag( level._effect["vfx_dome_ns_man_cage_flare"], var_0, "tag_origin" );
}
dome_nscustomcratefunc()
{
if ( !isdefined( game["player_holding_level_killstreak"] ) )
game["player_holding_level_killstreak"] = 0;
if ( !maps\mp\_utility::allowlevelkillstreaks() || game["player_holding_level_killstreak"] )
return;
maps\mp\killstreaks\_airdrop::addcratetype( "airdrop_assault", "dome_seekers", 200, maps\mp\killstreaks\_airdrop::killstreakcratethink, maps\mp\killstreaks\_airdrop::get_friendly_crate_model(), maps\mp\killstreaks\_airdrop::get_enemy_crate_model(), &"MP_DOME_NS_SEEKERS_PICKUP" );
level thread watch_for_dome_ns_alien_dog_crate();
}
watch_for_dome_ns_alien_dog_crate()
{
for (;;)
{
level waittill( "createAirDropCrate", var_0 );
if ( isdefined( var_0 ) && isdefined( var_0.cratetype ) && var_0.cratetype == "dome_seekers" )
{
maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "dome_seekers", 0 );
var_1 = wait_for_capture( var_0 );
if ( !var_1 )
maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "dome_seekers", 200 );
else
game["player_holding_level_killstreak"] = 1;
}
}
}
wait_for_capture( var_0 )
{
var_1 = watch_for_air_drop_death( var_0 );
return !isdefined( var_1 );
}
watch_for_air_drop_death( var_0 )
{
var_0 endon( "captured" );
var_0 waittill( "death" );
waittillframeend;
return 1;
}
dome_nscustomkillstreakfunc()
{
level.killstreakweildweapons["killstreak_level_event_mp"] = "dome_seekers";
level.killstreakfuncs["dome_seekers"] = ::tryusealien;
}
tryusealien( var_0, var_1 )
{
if ( getdvarint( "scr_alienDebugMode" ) == 1 )
var_2 = 1;
else
var_2 = 3;
if ( maps\mp\agents\_agent_utility::getnumactiveagents() + var_2 >= 5 )
{
self iprintlnbold( &"KILLSTREAKS_AGENT_MAX" );
return 0;
}
var_3 = maps\mp\agents\_agent_utility::getvalidspawnpathnodenearplayer( 1 );
if ( !isdefined( var_3 ) || isdefined( self.seekers_disabled ) )
{
self iprintlnbold( &"MP_DOME_NS_SEEKERS_UNAVAILABLE" );
return 0;
}
thread maps\mp\mp_dome_ns_alien::usealien( var_3, var_2 );
return 1;
}
dome_nscustombotkillstreakfunc()
{
maps\mp\bots\_bots_ks::bot_register_killstreak_func( "dome_seekers", maps\mp\bots\_bots_ks::bot_killstreak_simple_use );
}
sfx_misters_on()
{
if ( common_scripts\utility::flag( "misters_on" ) )
return;
common_scripts\utility::flag_set( "misters_on" );
if ( !isdefined( level.mister_01 ) )
level.mister_01 = spawn( "script_origin", ( 1735, 1546, -133 ) );
if ( !isdefined( level.mister_02 ) )
level.mister_02 = spawn( "script_origin", ( 1745, 1707, -140 ) );
if ( !isdefined( level.mister_03 ) )
level.mister_03 = spawn( "script_origin", ( 1753, 1835, -140 ) );
if ( !isdefined( level.mister_04 ) )
level.mister_04 = spawn( "script_origin", ( 1698, 1952, -140 ) );
if ( !isdefined( level.mister_05 ) )
level.mister_05 = spawn( "script_origin", ( 1540, 1981, -133 ) );
level.mister_01 playloopsound( "emt_dome_ns_mist_01" );
level.mister_02 playloopsound( "emt_dome_ns_mist_02" );
level.mister_03 playloopsound( "emt_dome_ns_mist_03" );
level.mister_04 playloopsound( "emt_dome_ns_mist_01" );
level.mister_05 playloopsound( "emt_dome_ns_mist_02" );
}
sfx_misters_off()
{
if ( !common_scripts\utility::flag( "misters_on" ) )
return;
common_scripts\utility::flag_clear( "misters_on" );
level.mister_01 stoploopsound();
level.mister_02 stoploopsound();
level.mister_03 stoploopsound();
level.mister_04 stoploopsound();
level.mister_05 stoploopsound();
}
sfx_crane_start()
{
wait 0.3;
self playsound( "scn_crane_start" );
wait 2.4;
self playloopsound( "scn_crane_mvmt_lp" );
}
sfx_crane_platform_start()
{
self playsound( "scn_crane_platform_start" );
thread sfx_crane_rattle();
}
sfx_crane_stop( var_0, var_1 )
{
wait( var_0 - var_1 );
self playsound( "scn_crane_stop" );
wait 0.3;
self stoploopsound( "scn_crane_mvmt_lp" );
}
sfx_crane_stop_impt( var_0, var_1 )
{
wait( var_0 - var_1 );
self playsound( "scn_crane_stop_impt" );
}
sfx_crane_rattle()
{
wait 3;
wait( randomintrange( 3, 4 ) );
self playsound( "scn_crane_rattle" );
wait( randomintrange( 9, 12 ) );
self playsound( "scn_crane_rattle" );
wait( randomintrange( 9, 11 ) );
self playsound( "scn_crane_rattle" );
wait 7.5;
self playsound( "scn_crane_rattle" );
}
sfx_crane_bar( var_0, var_1, var_2 )
{
if ( var_2 == "up" )
{
wait( var_1 - 0.8 );
if ( var_0 == 1 )
{
var_3 = ( -296, 1403, -200 );
var_4 = ( -362, 1285, -200 );
}
else
{
var_3 = ( 970, 292, -245 );
var_4 = ( 1086, 253, -245 );
}
var_5 = "scn_crane_bar_up";
var_6 = "scn_crane_bar_down";
}
else
{
wait 0.12;
if ( var_0 == 1 )
{
var_3 = ( 970, 292, -250 );
var_4 = ( 1090, 266, -250 );
}
else
{
var_3 = ( -281, 1391, -200 );
var_4 = ( -345, 1283, -200 );
}
var_5 = "scn_crane_bar_down";
var_6 = "scn_crane_bar_up";
}
if ( !isdefined( level.sfx_crane_bar_01 ) )
level.sfx_crane_bar_01 = spawn( "script_origin", var_3 );
if ( !isdefined( level.sfx_crane_bar_02 ) )
level.sfx_crane_bar_02 = spawn( "script_origin", var_4 );
level.sfx_crane_bar_01 playsound( var_5 );
level.sfx_crane_bar_02 playsound( var_6 );
wait 2;
level.sfx_crane_bar_01 delete();
level.sfx_crane_bar_02 delete();
}