IW4-Dump-Files/maps/so_takeover_oilrig.gsc

119 lines
3.2 KiB
Plaintext

#include maps\_utility;
#include common_scripts\utility;
#include maps\_anim;
#include maps\_vehicle;
#include maps\_specialops;
main()
{
precacheModel( "com_barrel_white_rust" );
precacheModel( "com_barrel_blue_rust" );
// settings for this challenge
level.pmc_gametype = "mode_elimination";
level.pmc_enemies = 15;
level.pmc_alljuggernauts = true;
level.pmc_enemies_alive = 1;
level.pmc_low_enemy_count = 3; // Used for pulsing the hud
save_triggers();
so_delete_all_spawntriggers();
so_delete_all_triggers();
so_delete_all_spawners();
so_delete_breach_ents();
maps\oilrig_precache::main();
maps\createart\oilrig_fog::main();
maps\oilrig_fx::main();
maps\createfx\oilrig_audio::main();
maps\_pmc::preLoad();
maps\_load::main();
maps\_pmc::main();
level thread maps\oilrig_amb::main();
thread scale_juggernaut_enemies();
thread maps\oilrig::killtrigger_ocean_on();
door1 = getent( "door_deck1", "targetname" );
door1 connectPaths();
door1 delete();
door2 = getent( "door_deck1_opposite", "targetname" );
door2 connectPaths();
door2 delete();
eGate = getent( "gate_01", "targetname" );
eGate connectpaths();
eGate moveto( ( eGate.origin - ( 0, -170, 0 ) ), 1 );
fix_c4_barrels();
maps\_compass::setupMiniMap( "compass_map_oilrig_lvl_1" );
array_thread( getentarray( "compassTriggers", "targetname" ), ::compass_triggers_think );
array_thread( getentarray( "compassTriggers", "targetname" ), maps\oilrig::compass_triggers_think );
array_call( getentarray( "hide", "script_noteworthy" ), ::hide );
music_loop( "so_takeover_oilrig_music", 136 );
DDS = getentarray( "sub_dds_01", "targetname" );
DoorDDS = getentarray( "dds_door_01", "targetname" );
array_thread( DDS,::hide_entity );
array_thread( DoorDDS,::hide_entity );
DDS = getentarray( "sub_dds_02", "targetname" );
DoorDDS = getentarray( "dds_door_02", "targetname" );
array_thread( DDS,::hide_entity );
array_thread( DoorDDS,::hide_entity );
thread maps\oilrig::above_water_art_and_ambient_setup();
}
fix_c4_barrels()
{
array_call( getentarray( "c4barrelPacks", "script_noteworthy" ), ::delete );
barrels = getentarray( "c4_barrel", "script_noteworthy" );
foreach( barrel in barrels )
{
if ( cointoss() )
barrel setModel( "com_barrel_white_rust" );
else
barrel setModel( "com_barrel_blue_rust" );
}
}
save_triggers()
{
array_thread( getentarray( "compassTriggers", "targetname" ), ::make_special_op_ent );
getent( "killtrigger_ocean", "targetname" ) make_special_op_ent();
}
make_special_op_ent()
{
assert( isdefined( self ) );
self.script_specialops = 1;
}
compass_triggers_think()
{
assertex( isdefined( self.script_noteworthy ), "compassTrigger at " + self.origin + " needs to have a script_noteworthy with the name of the minimap to use" );
while( true )
{
wait( 1 );
self waittill( "trigger" );
setsaveddvar( "ui_hidemap", 0 );
maps\_compass::setupMiniMap( self.script_noteworthy );
}
}
scale_juggernaut_enemies()
{
for(;;)
{
level waittill( "update_enemies_remaining_count" );
if ( level.pmc.enemies_remaining >= 12 )
level.pmc.max_ai_alive = 1;
else if ( level.pmc.enemies_remaining >= 8 )
level.pmc.max_ai_alive = 2;
else
level.pmc.max_ai_alive = 3;
}
}