mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-12 16:21:04 +02:00
480 lines
11 KiB
Plaintext
480 lines
11 KiB
Plaintext
namespace map_alphalabs1 {
|
|
|
|
float PLAYMUSIC = TRUE;
|
|
float monsterstatus = 1;
|
|
float GATE_OPEN = 0;
|
|
|
|
void init_world()
|
|
{
|
|
$epd_emlight.rotate ('0 -360 0');
|
|
//$epd_light1.setColor (0,0,0);
|
|
//$epd_light2.setColor (0,0,0);
|
|
//$epd_light3.setColor (0,0,0);
|
|
//$epd_light4.setColor (0,0,0);
|
|
//$epd_emlight.setColor (0,0,0);
|
|
}
|
|
|
|
void epd_phantasm_fadeout() {
|
|
$speaker_4.fadeSound ( SND_CHANNEL_ANY, -60, 1.5 );
|
|
$speaker_6.fadeSound ( SND_CHANNEL_ANY, -60, 1.5 );
|
|
$epd_alarm.fadeSound ( SND_CHANNEL_ANY, -60, 1.5 );
|
|
$epd_speaker_blast.fadeSound ( SND_CHANNEL_ANY, -60, 1.5 );
|
|
$epd_speaker_warmup.fadeSound ( SND_CHANNEL_ANY, -60, 1.5 );
|
|
|
|
sys.wait (10);
|
|
|
|
$speaker_4.fadeSound ( SND_CHANNEL_ANY, -5, 1.5 );
|
|
$speaker_6.fadeSound ( SND_CHANNEL_ANY, -6, 1.5 );
|
|
$epd_alarm.fadeSound ( SND_CHANNEL_ANY, 3, 1.5 );
|
|
$epd_speaker_blast.fadeSound ( SND_CHANNEL_ANY, 0, 1.5 );
|
|
$epd_speaker_warmup.fadeSound ( SND_CHANNEL_ANY, 0, 1.5 );
|
|
}
|
|
|
|
|
|
|
|
|
|
void seq_2() {
|
|
monsterstatus = 2;
|
|
}
|
|
|
|
void seq_3() {
|
|
monsterstatus = 3;
|
|
}
|
|
|
|
void seq_end() {
|
|
monsterstatus = 4;
|
|
}
|
|
|
|
|
|
void music_engine() {
|
|
return;
|
|
}
|
|
|
|
void fan_init ()
|
|
{
|
|
$fan_01.bind ($fan_01_anchor);
|
|
$fan_02.bind ($fan_02_anchor);
|
|
$fan_03.bind ($fan_03_anchor);
|
|
$fan_04.bind ($fan_04_anchor);
|
|
|
|
$fan_01_anchor.rotateOnce ('0 0 25');
|
|
$fan_02_anchor.rotateOnce ('0 0 25');
|
|
$fan_03_anchor.rotateOnce ('0 0 25');
|
|
$fan_04_anchor.rotateOnce ('0 0 25');
|
|
|
|
sys.waitFor ($fan_04_anchor);
|
|
|
|
$fan_01.rotate ('540 0 0');
|
|
$fan_02.rotate ('360 0 0');
|
|
$fan_03.rotate ('180 0 0');
|
|
$fan_04.rotate ('552 0 0');
|
|
}
|
|
|
|
void laser_ambience()
|
|
{
|
|
float numRandomWait;
|
|
|
|
numRandomWait = sys.random(2) + 1;
|
|
sys.wait (numRandomWait);
|
|
|
|
while (1)
|
|
{
|
|
sys.trigger ($e33_laser_rnd);
|
|
numRandomWait = sys.random(2) + 1;
|
|
sys.wait (numRandomWait);
|
|
}
|
|
}
|
|
|
|
void pumplight1_move()
|
|
|
|
{
|
|
$pumplight1.time(1.5);
|
|
$pumplight1.accelTime(.1);
|
|
$pumplight1.decelTime(.1);
|
|
while (1){
|
|
$pumplight1.move(DOWN,96);
|
|
sys.trigger ($pumplight1_speaker);
|
|
sys.waitFor ($pumplight1);
|
|
$pumplight1.move(UP,96);
|
|
sys.waitFor ($pumplight1);
|
|
}
|
|
}
|
|
|
|
void pumplight2_move()
|
|
|
|
{
|
|
$pumplight2.time(1.45);
|
|
$pumplight2.accelTime(.1);
|
|
$pumplight2.decelTime(.1);
|
|
while (1){
|
|
$pumplight2.move(DOWN,96);
|
|
sys.trigger ($pumplight2_speaker);
|
|
sys.waitFor ($pumplight2);
|
|
$pumplight2.move(UP,96);
|
|
sys.waitFor ($pumplight2);
|
|
}
|
|
}
|
|
|
|
void turkey_klax_on()
|
|
{
|
|
thread crossFadeEnt ($epd_light1, '0 0 0', '1 0.2 0', 2);
|
|
thread crossFadeEnt ($epd_light2, '0 0 0', '1 0.2 0', 2);
|
|
thread crossFadeEnt ($epd_light3, '0 0 0', '1 0.2 0', 2);
|
|
thread crossFadeEnt ($epd_light4, '0 0 0', '1 0.2 0', 2);
|
|
thread crossFadeEnt ($epd_emlight, '0 0 0', '1 0.2 0', 2);
|
|
}
|
|
|
|
void turkey_klax_off()
|
|
{
|
|
thread crossFadeEnt ($epd_light1, '1 0.2 0', '0 0 0', 2);
|
|
thread crossFadeEnt ($epd_light2, '1 0.2 0', '0 0 0', 2);
|
|
thread crossFadeEnt ($epd_light3, '1 0.2 0', '0 0 0', 2);
|
|
thread crossFadeEnt ($epd_light4, '1 0.2 0', '0 0 0', 2);
|
|
thread crossFadeEnt ($epd_emlight, '1 0.2 0', '0 0 0', 2);
|
|
}
|
|
|
|
// ***
|
|
// New and improved UAC Turkey Baster v2.0
|
|
// ***
|
|
|
|
void turkey_baster() {
|
|
while (1) {
|
|
|
|
sys.wait (5);
|
|
turkey_klax_on();
|
|
sys.trigger ($epd_alarm); // 8 seconds long
|
|
sys.wait (2);
|
|
|
|
sys.trigger ($epd_speaker_warmup);
|
|
sys.wait (1);
|
|
|
|
// Machine is on at this point...
|
|
sys.trigger ($epd_speaker_blast);
|
|
sys.trigger ($func_beam_1);
|
|
sys.trigger ( $ep_endEmitter );
|
|
sys.trigger ( $ep_emitter1 );
|
|
sys.trigger ($turkey_hurt_1);
|
|
sys.trigger ($tbbeam);
|
|
$tbbeamlight.fadeInLight(.5);
|
|
$ep_beam_source.fadeInLight( 0.2 );
|
|
$ep_endlight.fadeInLight(.5);
|
|
|
|
sys.wait (4);
|
|
|
|
// ... and toggle stuff off..
|
|
|
|
thread map_alphalabs1::turkey_klax_off();
|
|
sys.trigger ($func_beam_1);
|
|
sys.trigger ( $ep_endEmitter );
|
|
sys.trigger ( $ep_emitter1 );
|
|
sys.trigger ($turkey_hurt_1);
|
|
sys.trigger ($tbbeam);
|
|
$tbbeamlight.fadeOutLight(.5);
|
|
$ep_beam_source.fadeOutLight( 0.5 );
|
|
$ep_endlight.fadeOutLight(.5);
|
|
}
|
|
}
|
|
|
|
void toggle_gate() {
|
|
if (GATE_OPEN == 0) {
|
|
$gatedoor_left.open();
|
|
$gatedoor_right.open();
|
|
sys.waitFor ($gatedoor_right);
|
|
GATE_OPEN = 1;
|
|
}
|
|
else {
|
|
$gatedoor_left.close();
|
|
$gatedoor_right.close();
|
|
sys.waitFor ($gatedoor_right);
|
|
GATE_OPEN = 0;
|
|
}
|
|
}
|
|
|
|
void hc_loop()
|
|
{
|
|
//times for the can mover
|
|
$hc_can.time (1);
|
|
$hc_can.accelTime (.25);
|
|
$hc_can.decelTime (.25);
|
|
|
|
while (1) {
|
|
//can move from start hole into door 176
|
|
$hc_can.move ( NORTH, 176 );
|
|
//sys.trigger ($speaker_hc_bolt);
|
|
|
|
sys.waitFor ($hc_can);
|
|
sys.wait (.25);
|
|
|
|
//door move to down position 128
|
|
$hc_door.time (.5);
|
|
$hc_door.accelTime (.5);
|
|
$hc_door.decelTime (0);
|
|
|
|
$hc_can.bind ($hc_door);
|
|
//
|
|
sys.trigger ($speaker_hc_down);
|
|
|
|
$hc_door.move ( DOWN, 128 );
|
|
sys.waitFor ($hc_door);
|
|
sys.wait (.25);
|
|
|
|
//can move into final hole 176
|
|
$hc_can.move ( NORTH, 176 );
|
|
sys.trigger ($speaker_hc_bolt);
|
|
sys.waitFor ($hc_can);
|
|
sys.wait (.25);
|
|
|
|
//door move to up position 128
|
|
$hc_door.time (1);
|
|
$hc_door.accelTime (.25);
|
|
$hc_door.decelTime (.25);
|
|
|
|
$hc_door.move ( UP, 128 );
|
|
sys.trigger ($speaker_hc_up);
|
|
sys.waitFor ($hc_door);
|
|
sys.wait (.25);
|
|
|
|
//restore can position
|
|
$hc_can.unbind();
|
|
$hc_can.restorePosition();
|
|
sys.wait (.25);
|
|
}//end while
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Hydrocon1 move
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void hydrocon1_move()
|
|
{
|
|
//bind ring
|
|
$hydrocon1_ring.bind ($hydrocon1_main);
|
|
|
|
//move hydrocon_main with ring up to top positioin
|
|
$hydrocon1_main.time (1.5);
|
|
$hydrocon1_main.accelTime (1);
|
|
$hydrocon1_main.decelTime (.5);
|
|
|
|
$hydrocon1_main.move ( UP, 216 );
|
|
sys.trigger ($hydrocon1_main_speaker_up);
|
|
sys.waitFor ($hydrocon1_main);
|
|
|
|
|
|
//wait at top for the whole thing to start again
|
|
sys.wait (1);
|
|
|
|
//move hydrocon_ring down 64
|
|
$hydrocon1_ring.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon1_ring_speaker_down);
|
|
sys.waitFor ($hydrocon1_ring);
|
|
sys.wait (.25);
|
|
|
|
//move hydrocon_main down with ring extended
|
|
$hydrocon1_main.time (1.5);
|
|
$hydrocon1_main.accelTime (1.5);
|
|
$hydrocon1_main.decelTime (0);
|
|
|
|
$hydrocon1_main.move ( DOWN, 216 );
|
|
sys.trigger ($hydrocon1_main_speaker_down);
|
|
sys.waitFor ($hydrocon1_main);
|
|
|
|
//unbind ring
|
|
$hydrocon1_ring.unbind();
|
|
|
|
//move hydrocon_main with ring down the remaining distance to nipple
|
|
$hydrocon1_main.time (1.5);
|
|
$hydrocon1_main.accelTime (0);
|
|
$hydrocon1_main.decelTime (1.5);
|
|
|
|
$hydrocon1_main.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon1_nipplemain_speaker_down);
|
|
sys.waitFor ($hydrocon1_main);
|
|
sys.wait (.25);
|
|
|
|
//bind nipple to hydrocon_main
|
|
$hydrocon1_nipple.bind ($hydrocon1_main);
|
|
|
|
//move hydrocon_main with nipple up to ring extended position
|
|
$hydrocon1_main.move ( UP, 64 );
|
|
sys.trigger ($hydrocon1_nipplemain_speaker_up);
|
|
sys.waitFor ($hydrocon1_main);
|
|
sys.wait (.25);
|
|
|
|
//activate effect
|
|
sys.trigger ($hydrocon1_emitter);
|
|
sys.trigger ($hydrocon1_emitter_speaker);
|
|
sys.trigger ($hydrocon1_light);
|
|
sys.wait (1);
|
|
|
|
//unbind nipple
|
|
$hydrocon1_nipple.unbind();
|
|
|
|
//move nipple back down
|
|
$hydrocon1_nipple.time (1);
|
|
$hydrocon1_nipple.accelTime (.8);
|
|
$hydrocon1_nipple.decelTime (.2);
|
|
|
|
$hydrocon1_nipple.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon1_nipple_speaker_down);
|
|
sys.waitFor ($hydrocon1_nipple);
|
|
//turn off effect
|
|
sys.trigger ($hydrocon1_emitter);
|
|
sys.trigger ($hydrocon1_emitter_speaker);
|
|
sys.trigger ($hydrocon1_light);
|
|
sys.wait (.25);
|
|
|
|
//move hydrocon_ring up 64
|
|
$hydrocon1_ring.move ( UP, 64 );
|
|
sys.trigger ($hydrocon1_ring_speaker_up);
|
|
sys.waitFor ($hydrocon1_ring);
|
|
sys.wait (.25);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Hydrocon2 move
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void hydrocon2_move()
|
|
{
|
|
//bind ring
|
|
$hydrocon2_ring.bind ($hydrocon2_main);
|
|
|
|
//move hydrocon_main with ring up to top positioin
|
|
$hydrocon2_main.time (1.5);
|
|
$hydrocon2_main.accelTime (1);
|
|
$hydrocon2_main.decelTime (.5);
|
|
|
|
$hydrocon2_main.move ( UP, 216 );
|
|
sys.trigger ($hydrocon2_main_speaker_up);
|
|
sys.waitFor ($hydrocon2_main);
|
|
|
|
|
|
//wait at top for the whole thing to start again
|
|
sys.wait (1);
|
|
|
|
//move hydrocon_ring down 64
|
|
$hydrocon2_ring.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon2_ring_speaker_down);
|
|
sys.waitFor ($hydrocon2_ring);
|
|
sys.wait (.25);
|
|
|
|
//move hydrocon_main down with ring extended
|
|
$hydrocon2_main.time (1.5);
|
|
$hydrocon2_main.accelTime (1.5);
|
|
$hydrocon2_main.decelTime (0);
|
|
|
|
$hydrocon2_main.move ( DOWN, 216 );
|
|
sys.trigger ($hydrocon2_main_speaker_down);
|
|
sys.waitFor ($hydrocon2_main);
|
|
|
|
//unbind ring
|
|
$hydrocon2_ring.unbind();
|
|
|
|
//move hydrocon_main with ring down the remaining distance to nipple
|
|
$hydrocon2_main.time (1.5);
|
|
$hydrocon2_main.accelTime (0);
|
|
$hydrocon2_main.decelTime (1.5);
|
|
|
|
$hydrocon2_main.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon2_nipplemain_speaker_down);
|
|
sys.waitFor ($hydrocon2_main);
|
|
sys.wait (.25);
|
|
|
|
//bind nipple to hydrocon_main
|
|
$hydrocon2_nipple.bind ($hydrocon2_main);
|
|
|
|
//move hydrocon_main with nipple up to ring extended position
|
|
$hydrocon2_main.move ( UP, 64 );
|
|
sys.trigger ($hydrocon2_nipplemain_speaker_up);
|
|
sys.waitFor ($hydrocon2_main);
|
|
sys.wait (.25);
|
|
|
|
//activate effect
|
|
sys.trigger ($hydrocon2_emitter);
|
|
sys.trigger ($hydrocon2_emitter_speaker);
|
|
sys.trigger ($hydrocon2_light);
|
|
sys.wait (1);
|
|
|
|
//unbind nipple
|
|
$hydrocon2_nipple.unbind();
|
|
|
|
//move nipple back down
|
|
$hydrocon2_nipple.time (1);
|
|
$hydrocon2_nipple.accelTime (.8);
|
|
$hydrocon2_nipple.decelTime (.2);
|
|
|
|
$hydrocon2_nipple.move ( DOWN, 64 );
|
|
sys.trigger ($hydrocon2_nipple_speaker_down);
|
|
sys.waitFor ($hydrocon2_nipple);
|
|
//turn off effect
|
|
sys.trigger ($hydrocon2_emitter);
|
|
sys.trigger ($hydrocon2_emitter_speaker);
|
|
sys.trigger ($hydrocon2_light);
|
|
sys.wait (.25);
|
|
|
|
//move hydrocon_ring up 64
|
|
$hydrocon2_ring.move ( UP, 64 );
|
|
sys.trigger ($hydrocon2_ring_speaker_up);
|
|
sys.waitFor ($hydrocon2_ring);
|
|
sys.wait (.25);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Hydrocon Loop
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void hydrocon_loop()
|
|
{
|
|
float hydrocon1_thread, hydrocon2_thread;
|
|
|
|
while (1){
|
|
hydrocon1_thread = thread map_alphalabs1::hydrocon1_move();
|
|
hydrocon2_thread = thread map_alphalabs1::hydrocon2_move();
|
|
|
|
sys.waitForThread( hydrocon1_thread );
|
|
sys.waitForThread( hydrocon2_thread );
|
|
}//end while
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Kill Hydrocon Loop
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void kill_hydrocon_loop()
|
|
{
|
|
sys.killthread ("map_alphalabs1::hydrocon_loop");
|
|
sys.killthread ("map_alphalabs1::hydrocon1_move");
|
|
sys.killthread ("map_alphalabs1::hydrocon2_move");
|
|
}
|
|
|
|
//---
|
|
// Fade out the creepy sounds after the maggots all die
|
|
//---
|
|
|
|
void fade_maggot_sounds() {
|
|
$maggot_speaker_1.fadeSound (SND_CHANNEL_ANY, -60, 4);
|
|
$maggot_speaker_2.fadeSound (SND_CHANNEL_ANY, -60, 4);
|
|
$maggot_speaker_3.fadeSound (SND_CHANNEL_ANY, -60, 4);
|
|
$maggot_speaker_4.fadeSound (SND_CHANNEL_ANY, -60, 4);
|
|
}
|
|
|
|
void main ()
|
|
{
|
|
init_world();
|
|
fan_init();
|
|
//bathroom_init();
|
|
//thread laser_ambience();
|
|
thread pumplight1_move();
|
|
thread pumplight2_move();
|
|
thread hc_loop();
|
|
thread hydrocon_loop();
|
|
thread turkey_baster();
|
|
}
|
|
|
|
|
|
|
|
} |