119 lines
3.2 KiB
Plaintext
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;
|
|
}
|
|
} |