mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-03-15 23:21:35 +00:00
307 lines
No EOL
5.7 KiB
Text
307 lines
No EOL
5.7 KiB
Text
namespace map_cpu {
|
|
|
|
float RAISE_HELL_PILLARS = 0;
|
|
float PLAYED_TRITE_STINGER = FALSE;
|
|
|
|
void init_world() {
|
|
$fixed_panel.hide();
|
|
}
|
|
|
|
void trite_stinger() {
|
|
if ( PLAYED_TRITE_STINGER == FALSE ) {
|
|
PLAYED_TRITE_STINGER = TRUE;
|
|
sys.trigger ($cpu1_monster_trite_1);
|
|
sys.trigger ($trite_stinger_2);
|
|
sys.trigger ($trite_stinger_3);
|
|
}
|
|
}
|
|
|
|
void trigger_secmon_exit() {
|
|
sys.trigger ($trigger_relay_20);
|
|
sys.wait (1.2);
|
|
|
|
sys.trigger ($trigger_relay_21);
|
|
sys.wait (2);
|
|
|
|
sys.trigger ($trigger_relay_22);
|
|
sys.wait (0.8);
|
|
|
|
sys.trigger ($trigger_relay_23);
|
|
}
|
|
/*
|
|
void haunted_cabinet() {
|
|
|
|
// sys.print ("Entering haunted_cabinet...\n");
|
|
|
|
$anchor.time (.3);
|
|
$anchor.moveTo ($hcab_p1);
|
|
sys.waitFor ($anchor);
|
|
|
|
sys.wait (.1);
|
|
|
|
$anchor.moveTo ($hcab_p2);
|
|
sys.waitFor ($anchor);
|
|
|
|
//$fc1.unbind();
|
|
$anchor.moveTo ($hcab_p3);
|
|
sys.trigger ($func_forcefield_4);
|
|
|
|
sys.wait (0.4);
|
|
|
|
//sys.waitFor ($anchor);
|
|
$fc1.unbind();
|
|
|
|
}
|
|
*/
|
|
|
|
/*
|
|
Returns a random vector from 0-maxValue for each axis
|
|
*/
|
|
|
|
vector getRandomVector(float maxX, float maxY, float maxZ) {
|
|
vector vec;
|
|
vec_x = int ( sys.random (maxX) );
|
|
vec_y = int ( sys.random (maxY) );
|
|
vec_z = int ( sys.random (maxZ) );
|
|
|
|
return vec;
|
|
}
|
|
|
|
// Open ceiling hatch area in monitoring room.
|
|
void open_cpuhatch() {
|
|
$ladder_floor_hatch.time (0.5);
|
|
$cpuladder.time (3);
|
|
$ladder_ceiling_panel.time (0.5);
|
|
|
|
$ladder_floor_hatch.move (DOWN, 8);
|
|
$ladder_ceiling_panel.move (UP, 8);
|
|
|
|
sys.waitFor ($ladder_floor_hatch);
|
|
|
|
$ladder_floor_hatch.move (SOUTH, 72);
|
|
$ladder_ceiling_panel.move (SOUTH, 72);
|
|
|
|
sys.waitFor ($ladder_floor_hatch);
|
|
|
|
$cpuladder.accelTime (1);
|
|
$cpuladder.decelTime (2);
|
|
$cpuladder.move (UP, 264);
|
|
}
|
|
|
|
|
|
// HK Lift before Lab A door
|
|
void raise_hlift() {
|
|
$hlift.speed (32);
|
|
$hlift.move (UP, 160);
|
|
sys.wait (0.2);
|
|
|
|
$mb1.remove();
|
|
$mb2.remove();
|
|
$mb3.remove();
|
|
$mb4.remove();
|
|
|
|
//sys.trigger ($mb1);
|
|
//sys.trigger ($mb2);
|
|
//sys.trigger ($mb3);
|
|
//sys.trigger ($mb4);
|
|
|
|
sys.waitFor ($hlift);
|
|
sys.print ("stopped moving\n");
|
|
|
|
}
|
|
|
|
|
|
void raise_hell_pillars() {
|
|
if (RAISE_HELL_PILLARS == 0) {
|
|
RAISE_HELL_PILLARS = 1;
|
|
$hp_01_anchor.rotateOnce ('0 90 0');
|
|
$hp_01.move (UP, 350);
|
|
sys.wait (1.5);
|
|
|
|
$hp_02_anchor.rotateOnce ('0 90 0');
|
|
$hp_02.move (UP, 350);
|
|
sys.wait (1.5);
|
|
|
|
$hp_03_anchor.rotateOnce ('0 90 0');
|
|
$hp_03.move (UP, 350);
|
|
sys.wait (1.5);
|
|
}
|
|
}
|
|
|
|
|
|
void fixed_maindoor() {
|
|
$fixed_panel.show();
|
|
$broken_panel.hide();
|
|
}
|
|
|
|
void sparks_cpubank_01() {
|
|
while (1) {
|
|
sys.trigger ($cpubank_01_sparks);
|
|
sys.wait ( sys.random (4) + 1);
|
|
}
|
|
}
|
|
|
|
void sparks_cpubank_02() {
|
|
while (1) {
|
|
sys.trigger ($cpubank_02_sparks);
|
|
sys.wait ( sys.random (3) + 1);
|
|
}
|
|
}
|
|
|
|
void move_cpubank_01() {
|
|
$cpubank_01.speed (64);
|
|
thread ( sparks_cpubank_01() );
|
|
$cpubank_01.moveTo ($cpubank_01_target);
|
|
}
|
|
|
|
void move_cpubank_02() {
|
|
$cpubank_02.speed (64);
|
|
thread ( sparks_cpubank_02() );
|
|
$cpubank_02.moveTo ($cpubank_02_target);
|
|
}
|
|
|
|
void cpu_secret_01() {
|
|
sys.trigger ($cpu_secret_01_speaker);
|
|
sys.print ("You have found a secret area !\n");
|
|
}
|
|
|
|
void drop_object(string entityname) {
|
|
entity ent, ent_anchor;
|
|
vector vec;
|
|
|
|
ent = sys.getEntity (entityname);
|
|
|
|
ent.time (4);
|
|
ent.accelTime (2);
|
|
|
|
ent_anchor = sys.getEntity (entityname + "_anchor");
|
|
|
|
//vec = getRandomVector (30, 45, 45);
|
|
vec = getRandomVector (10, 10, 10);
|
|
|
|
ent_anchor.rotate (vec);
|
|
ent.move (DOWN, 356);
|
|
|
|
sys.waitFor (ent);
|
|
|
|
ent.remove();
|
|
ent_anchor.remove();
|
|
}
|
|
|
|
void raise_object(string entityname) {
|
|
entity ent, ent_anchor;
|
|
vector vec;
|
|
|
|
ent = sys.getEntity (entityname);
|
|
|
|
ent.time (4);
|
|
ent.accelTime (2);
|
|
|
|
ent_anchor = sys.getEntity (entityname + "_anchor");
|
|
|
|
;vec = getRandomVector (30, 45, 45);
|
|
vec = getRandomVector (10, 10, 10);
|
|
|
|
ent_anchor.rotate (vec);
|
|
ent.move (UP, 356);
|
|
|
|
sys.waitFor (ent);
|
|
|
|
ent.remove();
|
|
ent_anchor.remove();
|
|
}
|
|
|
|
void dropscene1() {
|
|
float i;
|
|
entity ent;
|
|
|
|
for (i = 1; i<=2; i++) {
|
|
thread drop_object ("hpp_" + i);
|
|
sys.wait (0.3);
|
|
}
|
|
|
|
$hp_3_anchor.time (4);
|
|
$hp_5_anchor.time (4);
|
|
$hp_8_anchor.time (4);
|
|
|
|
|
|
for (i = 1; i<=12; i++) {
|
|
if (i == 3) {
|
|
//$hp_3_anchor.moveTo ($hp3_dest);
|
|
$hp_3.bob (4, 0.2, '0 0 2');
|
|
}
|
|
else if (i == 5) {
|
|
//$hp_5_anchor.moveTo ($hp5_dest);
|
|
$hp_5.bob (4, 0.6, '0 0 4');
|
|
}
|
|
else if (i == 8) {
|
|
//$hp_8_anchor.moveTo ($hp8_dest);
|
|
$hp_8.bob (4, 0.8, '0 0 3');
|
|
}
|
|
else {
|
|
thread drop_object ("hp_" + i);
|
|
}
|
|
sys.wait (0.3);
|
|
}
|
|
$hp_3_anchor.moveTo ($hp3_dest);
|
|
$hp_5_anchor.moveTo ($hp5_dest);
|
|
$hp_8_anchor.moveTo ($hp8_dest);
|
|
}
|
|
|
|
void dropscene2() {
|
|
float i;
|
|
entity ent;
|
|
|
|
for (i = 1; i<=10; i++) {
|
|
thread raise_object ("hpc_" + i);
|
|
sys.wait (0.3);
|
|
}
|
|
}
|
|
|
|
void dropscene3() {
|
|
float i;
|
|
entity ent;
|
|
|
|
for (i = 1; i<=3; i++) {
|
|
thread drop_object ("hp_wall_" + i);
|
|
sys.wait (0.3);
|
|
}
|
|
}
|
|
|
|
void battle_sounds() {
|
|
sys.wait (2);
|
|
sys.trigger ($speaker_cherubs);
|
|
sys.wait (45);
|
|
sys.trigger ($speaker_imps);
|
|
}
|
|
|
|
void dropscene() {
|
|
sys.trigger ($speaker_hallway_fall);
|
|
|
|
sys.trigger ($speaker_inf_01); // Shut some stuff off
|
|
sys.trigger ($speaker_inf_02);
|
|
sys.trigger ($speaker_inf_03);
|
|
|
|
thread dropscene1();
|
|
thread dropscene2();
|
|
thread dropscene3();
|
|
sys.wait (7);
|
|
|
|
sys.trigger ($speaker_inf_01); // Turn it back on
|
|
sys.trigger ($speaker_inf_02);
|
|
sys.trigger ($speaker_inf_03);
|
|
|
|
|
|
|
|
//$hpillar_01_anchor.rotateOnce ('0 90 0');
|
|
//$hpillar_01.move (UP, 400);
|
|
//sys.wait (1.5);
|
|
|
|
//$hpillar_02_anchor.rotateOnce ('0 -90 0');
|
|
//$hpillar_02.move (UP, 400);
|
|
}
|
|
|
|
void main() {
|
|
init_world();
|
|
}
|
|
} |