mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-25 11:01:30 +00:00
314 lines
7.1 KiB
Text
314 lines
7.1 KiB
Text
namespace map_phobos4 {
|
|
|
|
float power_level = 0;
|
|
float envirosuit_on = 0;
|
|
float tp3_power = 0;
|
|
|
|
void tp_disable() {
|
|
$player1.disableWeapon();
|
|
}
|
|
|
|
// Alarm Speakers
|
|
|
|
void alarm_speakers() {
|
|
sys.trigger( $alarm_speaker1 );
|
|
sys.trigger( $alarm_speaker3 );
|
|
sys.trigger( $alarm_speaker5 );
|
|
sys.wait( .9465 );
|
|
sys.trigger( $alarm_speaker2 );
|
|
sys.trigger( $alarm_speaker4 );
|
|
sys.trigger( $alarm_speaker6 );
|
|
}
|
|
|
|
void mcneil_warning() {
|
|
sys.trigger( $mcneil_warning );
|
|
sys.wait( 28 );
|
|
sys.trigger( $p4_objective );
|
|
}
|
|
|
|
// Computer Warnings
|
|
|
|
void comp_warnings() {
|
|
float ranWait;
|
|
float voNum;
|
|
while( 1 ) {
|
|
voNum = sys.randomInt( 3 ) + 1;
|
|
if( voNum == 1 ) {
|
|
sys.trigger( $comp_warning1a );
|
|
sys.trigger( $comp_warning1b );
|
|
sys.trigger( $comp_warning1c );
|
|
sys.trigger( $comp_warning1d );
|
|
}
|
|
if( voNum == 2 ) {
|
|
sys.trigger( $comp_warning2a );
|
|
sys.trigger( $comp_warning2b );
|
|
sys.trigger( $comp_warning2c );
|
|
sys.trigger( $comp_warning2d );
|
|
}
|
|
if( voNum == 3 ) {
|
|
sys.trigger( $comp_warning3a );
|
|
sys.trigger( $comp_warning3b );
|
|
sys.trigger( $comp_warning3c );
|
|
sys.trigger( $comp_warning3d );
|
|
}
|
|
ranWait = (sys.random( 10 ) + 10);
|
|
sys.wait( ranWait );
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// POWER FLUXIN' LIGHT RAMP
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
void light_ramp( float rgb_start, float rgb_end, float time_val )
|
|
{
|
|
float i, t, v;
|
|
|
|
t = time_val * GAME_FPS;
|
|
for ( i = 0; i < t; i++ ) {
|
|
v = rgb_start + ( rgb_end - rgb_start ) * ( i / t );
|
|
sys.setShaderParm( 0, v );
|
|
sys.setShaderParm( 1, v );
|
|
sys.setShaderParm( 2, v );
|
|
sys.waitFrame();
|
|
}
|
|
sys.setShaderParm( 0, rgb_end );
|
|
sys.setShaderParm( 1, rgb_end );
|
|
sys.setShaderParm( 2, rgb_end );
|
|
}
|
|
|
|
void t3_powerflux() {
|
|
float i;
|
|
float ran_loop, ran_new, ran_time;
|
|
float old;
|
|
|
|
old = .25;
|
|
ran_loop = ( sys.random( 10 ) + 3 );
|
|
|
|
for (i=1; i<=ran_loop; i++) {
|
|
ran_new = ( sys.random( 1.5 ) + .2 );
|
|
ran_time = ( sys.random( 1 ) + .2 );
|
|
light_ramp( old, ran_new, ran_time );
|
|
old = ran_new;
|
|
}
|
|
// how dark to go once cycle is complete
|
|
light_ramp( old, .4, .3 );
|
|
}
|
|
|
|
void t3_lightramp2() {
|
|
while( 1 ) {
|
|
light_ramp( .4, .9, 1.5 );
|
|
sys.wait( 1.5 );
|
|
light_ramp( .9, .4, 1.5 );
|
|
sys.wait( 1.5 );
|
|
}
|
|
}
|
|
|
|
void t3_lightramp1() {
|
|
float ran;
|
|
ran = sys.random( 3 );
|
|
sys.wait( ran );
|
|
while( power_level == 0 ) {
|
|
// wait between power surges
|
|
//sys.print( "FLUX BEGIN!\n" );
|
|
ran = ( sys.random( 3 ) + 2 );
|
|
sys.wait( ran );
|
|
t3_powerflux();
|
|
}
|
|
t3_lightramp2();
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Teleporter Startup
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
void teleport3_machine_ready()
|
|
{
|
|
sys.wait (.25);
|
|
//trigger tp sounds
|
|
sys.trigger ($teleport3_machine_poweron);
|
|
//sys.trigger ($teleport3_machine_idle_delay);
|
|
//turn on electrical lightning effect
|
|
sys.trigger ($teleport3_lightningfx);
|
|
sys.wait (1.95);
|
|
$teleport3_shoulder.rotateOnce ('0 0 -35');
|
|
//trigger sound for arms
|
|
sys.trigger($teleport3_shoulder_operate);
|
|
sys.wait(.75);
|
|
$teleport3_arm1.rotateOnce ('0 -30 0');
|
|
$teleport3_arm2.rotateOnce ('0 30 0');
|
|
sys.waitFor ($teleport3_arm2);
|
|
sys.trigger( $p4_objcomplete );
|
|
sys.wait (.5);
|
|
//$teleport3_blackholefx.show();
|
|
}
|
|
|
|
void teleport3_klaxxon_on()
|
|
{
|
|
sys.wait ( .5 );
|
|
//turn on blinking blue tp light
|
|
sys.trigger ($teleport3_blightblink);
|
|
//sys.wait ( .25 );
|
|
sys.wait( 3 );
|
|
//trigger sounds for fx
|
|
sys.trigger ($t3_teleporterfx_startup);
|
|
sys.wait ( 1.5 );
|
|
sys.trigger ($t3_teleporterfx_loop);
|
|
|
|
//turn on floor and arm fx
|
|
sys.trigger ($teleport3_arm1_fx);
|
|
sys.trigger ($teleport3_arm2_fx);
|
|
sys.wait ( .5 );
|
|
sys.trigger ($teleport3_warpfx);
|
|
sys.trigger ($teleport3_floorfx);
|
|
|
|
sys.wait(1);
|
|
sys.trigger ($select_speaker3);
|
|
}
|
|
|
|
void false_start() {
|
|
sys.trigger( $pad1select_speaker3 );
|
|
//$t3_door1.lock( 1 );
|
|
//sys.wait( 1 );
|
|
//thread t3_influence();
|
|
//teleport3_klaxxon_on();
|
|
//teleport3_machine_ready();
|
|
//sys.wait( 6 );
|
|
//$t3_door1.lock( 0 );
|
|
}
|
|
|
|
void select_destination()
|
|
{
|
|
sys.wait(.25);
|
|
thread teleport3_klaxxon_on();
|
|
sys.trigger( $end_bruiser );
|
|
teleport3_machine_ready();
|
|
}
|
|
|
|
void teleporter_startup()
|
|
{
|
|
if( tp3_power == 0 ) {
|
|
power_level = 1;
|
|
tp3_power = 1;
|
|
false_start();
|
|
$teleporter_gui.setGui(1, "guis/transfer/exit_phobos4.gui");
|
|
return;
|
|
}
|
|
if( tp3_power == 1 ) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// MAIN AIRLOCK ACTIVATION
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock1_activate ()
|
|
{
|
|
sys.trigger( $phobos4_airlock1_clipper );
|
|
thread airlock_main_activate(1 , 2);
|
|
|
|
sys.wait(2);
|
|
|
|
// Turn on or off the enviroment suit
|
|
//if ( envirosuit_on == 0 )
|
|
//{
|
|
// $player1.setPowerupTime( ENVIROSUIT, 999999999 );
|
|
// envirosuit_on = 1;
|
|
//}
|
|
//else
|
|
//{
|
|
// $player1.setPowerupTime( ENVIROSUIT, 0 );
|
|
// envirosuit_on = 0;
|
|
//}
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// AIRLOCK EXTERNAL DOORS
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock1_door1_open ()
|
|
{
|
|
airlock_door_activate(1 , 1 , 2 , 1);
|
|
}
|
|
|
|
void airlock1_door2_open ()
|
|
{
|
|
airlock_door_activate(1 , 2 , 2 , 1);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Setup
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void setup_objects()
|
|
{
|
|
//sys.print( "SETTING UP OBJECTS!\n" );
|
|
//Set airlock door guis initial state to 1
|
|
$airlock1_door1_gui.setGuiParm ( "gui_parm1" , 1);
|
|
$airlock1_door2_gui.setGuiParm ( "gui_parm1" , 1);
|
|
|
|
//override the states of the airlocks so the lights will cooperate
|
|
$airlock1_door1_portal.setKey ("state", "2");
|
|
|
|
//Precache Guis
|
|
$teleporter_gui.precacheGui("guis/transfer/exit_phobos4.gui");
|
|
//sys.print( "SET UP OBJECTS!\n" );
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// TELEPORTER3 SETUP
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
void setup_teleporter3() {
|
|
sys.print( "SETTING UP TP3!\n" );
|
|
$teleport3_controlpanelarms.time (1.0);
|
|
$teleport3_controlpanelarms.accelTime (.5 );
|
|
$teleport3_controlpanelarms.decelTime (.5 );
|
|
$teleport3_controlpanel.time (.75);
|
|
$teleport3_controlpanel.accelTime (.25 );
|
|
$teleport3_controlpanel.decelTime (.5 );
|
|
$teleport3_shoulder.time (2.0);
|
|
$teleport3_shoulder.accelTime (1.0 );
|
|
$teleport3_shoulder.decelTime (1.0 );
|
|
$teleport3_arm1.time (2.0);
|
|
$teleport3_arm1.accelTime (1.25 );
|
|
$teleport3_arm1.decelTime (.75 );
|
|
$teleport3_arm2.time (2.0);
|
|
$teleport3_arm2.accelTime (1.25 );
|
|
$teleport3_arm2.decelTime (.75 );
|
|
$klaxxon3_light1.setColor(0.77,0.49,0.00);
|
|
$klaxxon3_light2.setColor(0.77,0.49,0.00);
|
|
$klaxxon3_light_base.setColor(0.77,0.49,0.00);
|
|
$klaxxon3_light_base.rotate ('0 360 0');
|
|
sys.trigger ($klaxxon_speaker3);
|
|
sys.print( "SET UP TELEPORTER3!\n" );
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// MAIN
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void main ()
|
|
{
|
|
thread alarm_speakers();
|
|
thread comp_warnings();
|
|
setup_objects();
|
|
setup_teleporter3();
|
|
t3_lightramp1();
|
|
|
|
}
|
|
|
|
}// namespace
|