mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-25 11:01:30 +00:00
994 lines
29 KiB
Text
994 lines
29 KiB
Text
namespace map_enpro {
|
|
|
|
// Set up exit room sounds for after the battle sequence. Trigger all this stuff when the player
|
|
// swaps out the rod.
|
|
|
|
void xianstuff() {
|
|
sys.trigger ($speaker_burn_1); // flame1 in exit room
|
|
sys.trigger ($speaker_burn_2); // flame2 in exit room
|
|
sys.trigger ($speaker_alarm_1); // alarm sound in exit room
|
|
sys.trigger ($speaker_badgen_1); // Red sound for damaged core :: Turns it off
|
|
sys.trigger ($speaker_goodgen_1); // Blue sound for fixed core :: Turns it on
|
|
sys.trigger ($rflames); // Turns off flame sounds for fixed rod 2
|
|
sys.trigger ($speaker_fixed_rod); // Turns on good sound for fixed rod 2
|
|
}
|
|
|
|
|
|
void setup_objects()
|
|
{
|
|
// ceiling room
|
|
$ceiling_cover.bind ($ceiling_cover_anchor);
|
|
$ceilingroom_pipe.bind ($ceilingroom_pipe_anchor);
|
|
|
|
$ceiling_cover_anchor.accelTime (.5);
|
|
$ceiling_cover_anchor.time (.5);
|
|
$ceilingroom_pipe_anchor.accelTime (.3);
|
|
$ceilingroom_pipe_anchor.time (.6);
|
|
|
|
$ceiling_cover_anchor.rotateOnce ('120 0 0');
|
|
|
|
// bridge setup
|
|
$bridge_toprailing_left.bind ($bridge_toprailing_left_anchor);
|
|
$bridge_toprailing_left_anchor.bind ($bridge_floor);
|
|
$bridge_toprailing_right.bind ($bridge_toprailing_right_anchor);
|
|
$bridge_toprailing_right_anchor.bind ($bridge_floor);
|
|
$bridge_btmrailing_left.bind ($bridge_btmrailing_left_anchor);
|
|
$bridge_btmrailing_left_anchor.bind ($bridge_floor);
|
|
$bridge_btmrailing_right.bind ($bridge_btmrailing_right_anchor);
|
|
$bridge_btmrailing_right_anchor.bind ($bridge_floor);
|
|
|
|
$bridge_toprailing_left_anchor.accelTime (.4);
|
|
$bridge_toprailing_left_anchor.decelTime (.4);
|
|
$bridge_toprailing_left_anchor.time (1);
|
|
$bridge_toprailing_right_anchor.accelTime (.4);
|
|
$bridge_toprailing_right_anchor.decelTime (.4);
|
|
$bridge_toprailing_right_anchor.time (1);
|
|
$bridge_btmrailing_left_anchor.accelTime (.4);
|
|
$bridge_btmrailing_left_anchor.decelTime (.4);
|
|
$bridge_btmrailing_left_anchor.time (1);
|
|
$bridge_btmrailing_right_anchor.accelTime (.4);
|
|
$bridge_btmrailing_right_anchor.decelTime (.4);
|
|
$bridge_btmrailing_right_anchor.time (1);
|
|
|
|
$bridge_toprailing_left_anchor.rotateOnce ('0 0 -88');
|
|
$bridge_btmrailing_left_anchor.rotateOnce ('0 0 -45');
|
|
$bridge_toprailing_right_anchor.rotateOnce ('0 0 88');
|
|
$bridge_btmrailing_right_anchor.rotateOnce ('0 0 45');
|
|
$bridge_floor.moveTo ($bridge_spot1);
|
|
|
|
// hall 1 emergency light
|
|
$light_tunnel_1.bind ($tunnel_anchor_1);
|
|
$light_tunnel_1_spin.bind ($tunnel_anchor_1);
|
|
$tunnel_anchor_1.rotate ('0 -300 0');
|
|
|
|
// chamber 2: spinny things
|
|
$accelswayL.rotate ('0 -20 0');
|
|
$accelspinL.rotate ('0 45 0');
|
|
$accelspinM.rotate ('0 -35 0');
|
|
$accelspinR.rotate ('0 50 0');
|
|
$c2_spin_2.rotate ('0 -40 0');
|
|
$c2_spin_3.rotate ('0 20 0');
|
|
|
|
// rod replacement setup
|
|
$rod_door.bind ($rod_replacer);
|
|
$rod_door.time (1);
|
|
$rod_door.accelTime (.3);
|
|
$rod_door.decelTime (.5);
|
|
|
|
$rod_fire_emitter1.bind ($rod);
|
|
$rod_fire_emitter2.bind ($rod);
|
|
$rod_redlight1.bind ($rod);
|
|
$rod_emitter3.bind ($rod);
|
|
$rod_emitter4.bind ($rod);
|
|
|
|
$rod_emitter1.bind ($rod_2);
|
|
$rod_emitter2.bind ($rod_2);
|
|
$rod_2_bluelight1.bind ($rod_2);
|
|
$rod_2_bluelight2.bind ($rod_2);
|
|
$rod_2.hide ();
|
|
|
|
$rod_replacer.time (1);
|
|
$rod_replacer.decelTime (.5);
|
|
$rod.time (.5);
|
|
$rod.decelTime (.3);
|
|
$rod_2.time (.5);
|
|
$rod_2.decelTime (.3);
|
|
|
|
// machineroom binds
|
|
$machineclaw1_carrier.bind ($machineclaw1_carrier_anchor);
|
|
$machineclaw1_upperarm.bind ($machineclaw1_carrier);
|
|
$machineclaw1_forearm.bind ($machineclaw1_upperarm);
|
|
$machineclaw1_hand.bind ($machineclaw1_forearm);
|
|
$machineclaw1_revolver.bind ($machineclaw1_hand);
|
|
$machineclaw1_steam1.bind ($machineclaw1_hand);
|
|
$machineclaw1_steam2.bind ($machineclaw1_hand);
|
|
|
|
$reloader_light.bind ($reloader);
|
|
|
|
$chamberpivot2.bind ($chamberpivot1);
|
|
$filterchamber.bind ($chamberpivot1);
|
|
|
|
$canspot1.bind ($machineclaw1_revolver);
|
|
$canspot2.bind ($machineclaw1_revolver);
|
|
$canspot3.bind ($machineclaw1_revolver);
|
|
$canspot4.bind ($machineclaw1_revolver);
|
|
|
|
$can_dirty1.bind ($filterchamber);
|
|
$can_dirty2.bind ($filterchamber);
|
|
$chamber_filterspot1.bind ($filterchamber);
|
|
$chamber_filterspot2.bind ($filterchamber);
|
|
|
|
$can_dirty4.bind ($cradle4);
|
|
$can_dirty5.bind ($cradle5);
|
|
$can_dirty6.bind ($cradle6);
|
|
|
|
$cradle4_x.bind ($cradle4);
|
|
$cradle5_x.bind ($cradle5);
|
|
$cradle6_x.bind ($cradle6);
|
|
|
|
// setup mover times for machineroom
|
|
|
|
|
|
$machineclaw1_carrier.time (2);
|
|
$machineclaw1_upperarm.time (1);
|
|
$machineclaw1_forearm.time (1);
|
|
$machineclaw1_hand.time (1);
|
|
$machineclaw1_revolver.time (1);
|
|
|
|
$machineclaw1_carrier.accelTime (.50);
|
|
$machineclaw1_upperarm.accelTime (.1);
|
|
$machineclaw1_forearm.accelTime (.1);
|
|
$machineclaw1_hand.accelTime (.1);
|
|
$machineclaw1_revolver.accelTime (.1);
|
|
|
|
$machineclaw1_carrier.decelTime (.50);
|
|
$machineclaw1_upperarm.decelTime (.1);
|
|
$machineclaw1_forearm.decelTime (.1);
|
|
$machineclaw1_hand.decelTime (.1);
|
|
$machineclaw1_revolver.decelTime (.1);
|
|
|
|
$reloader.time (.25);
|
|
|
|
//airlock door2 times
|
|
$airlock_door2_left.time (1.2);
|
|
$airlock_door2_right.time (1.2);
|
|
$airlock_door2_left.accelTime (.2);
|
|
$airlock_door2_left.decelTime (1);
|
|
$airlock_door2_right.accelTime (.2);
|
|
$airlock_door2_right.decelTime (1);
|
|
|
|
$airlock_door2_top_lock.time (.25);
|
|
$airlock_door2_bottom_lock.time (.25);
|
|
|
|
$airlock_door2_left_lock.time (.75);
|
|
$airlock_door2_right_lock.time (.75);
|
|
$airlock_door2_left_lock.accelTime (.1);
|
|
$airlock_door2_left_lock.decelTime (.65);
|
|
$airlock_door2_right_lock.accelTime (.1);
|
|
$airlock_door2_right_lock.decelTime (.65);
|
|
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
//
|
|
// ceilingroom
|
|
//
|
|
//////////////////////////////////////////////
|
|
|
|
void ceilingroom_start ()
|
|
{
|
|
sys.trigger ($explosion_1);
|
|
$ceilingroom_pipe_anchor.rotateOnce ('-15 0 0');
|
|
$ceilingroom_pipe_anchor.move (DOWN ,28);
|
|
$ceilingroom_pipe_anchor.startSoundShader ("metalcrash_01", SND_CHANNEL_VOICE);
|
|
|
|
sys.waitFor ($ceilingroom_pipe_anchor);
|
|
|
|
$ceilingroom_pipe_anchor.accelTime (.1);
|
|
$ceilingroom_pipe_anchor.decelTime (.1);
|
|
$ceilingroom_pipe_anchor.time (.2);
|
|
|
|
$ceilingroom_pipe_anchor.move (UP ,4);
|
|
$ceilingroom_pipe_anchor.rotateOnce ('3 0 0');
|
|
|
|
sys.waitFor ($ceilingroom_pipe_anchor);
|
|
|
|
$ceilingroom_pipe_anchor.move (DOWN ,2);
|
|
$ceilingroom_pipe_anchor.rotateOnce ('-3 0 0');
|
|
|
|
$bloodsplat1.show ();
|
|
sys.wait (.1);
|
|
$bloodsplat2.show ();
|
|
sys.wait (.1);
|
|
$bloodsplat3.show ();
|
|
sys.wait (.1);
|
|
$bloodsplat4.show ();
|
|
sys.wait (.05);
|
|
$bloodsplat5.show ();
|
|
sys.wait (.1);
|
|
$bloodsplat6.show ();
|
|
sys.wait (.05);
|
|
|
|
$ceiling_cover_anchor.rotateOnce ('-120 0 0');
|
|
sys.wait (.3);
|
|
|
|
sys.trigger ($func_fracture_6);
|
|
sys.trigger ($func_forcefield_6);
|
|
$func_forcefield_6.startSoundShader ("glasscrash_01", SND_CHANNEL_VOICE);
|
|
sys.wait (.3);
|
|
sys.trigger ($func_fracture_9);
|
|
sys.trigger ($func_forcefield_12);
|
|
$func_forcefield_6.startSoundShader ("glasscrash_01", SND_CHANNEL_VOICE);
|
|
sys.wait (.1);
|
|
sys.trigger ($breakglass_again);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////
|
|
//
|
|
// bridge
|
|
//
|
|
//////////////////////////////////////////////
|
|
|
|
void bridge_open ()
|
|
{
|
|
$bridge_floor.time (2);
|
|
|
|
$bridge_floor.startSoundShader ("enpro_bridge_2s", SND_CHANNEL_VOICE);
|
|
|
|
$bridge_floor.moveTo ($bridge_spot2);
|
|
sys.waitFor ($bridge_floor);
|
|
$bridge_toprailing_left_anchor.rotateOnce ('0 0 88');
|
|
$bridge_toprailing_right_anchor.startSoundShader ("enpro_bridge_rails_1s", SND_CHANNEL_VOICE);
|
|
$bridge_toprailing_right_anchor.rotateOnce ('0 0 -88');
|
|
sys.waitFor ($bridge_toprailing_right_anchor);
|
|
|
|
$bridge_btmrailing_left_anchor.startSoundShader ("enpro_bridge_rails_2_1s", SND_CHANNEL_VOICE);
|
|
$bridge_btmrailing_left_anchor.rotateOnce ('0 0 45');
|
|
$bridge_btmrailing_right_anchor.rotateOnce ('0 0 -45');
|
|
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
//
|
|
// zombie drop
|
|
//
|
|
//////////////////////////////////////////////
|
|
|
|
void zombie_drop ()
|
|
{ sys.trigger ($zombie_explosion_1);
|
|
sys.wait (.5);
|
|
sys.trigger ($zombie_explosion_2);
|
|
sys.wait (.2);
|
|
$zombie1.unbind ();
|
|
sys.wait (1);
|
|
$zombie_splat.show ();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
//
|
|
// coolant rod replacement stuff
|
|
//
|
|
/////////////////////////////////////////////////
|
|
|
|
void rod_replace ()
|
|
{
|
|
thread xianstuff(); // Swap out sounds during this sequence
|
|
|
|
// grab red rod
|
|
sys.wait (1);
|
|
$rod_replacer.moveTo ($rod_replacer_spot2);
|
|
sys.waitFor ($rod_replacer);
|
|
sys.wait (1);
|
|
$rod.bind ($rod_replacer);
|
|
$rod_replacer.moveTo ($rod_replacer_spot1);
|
|
sys.waitFor ($rod_replacer);
|
|
$rod.unbind ();
|
|
|
|
$rod_door.rotateOnce ('0 180 0');
|
|
|
|
sys.wait (.5);
|
|
$rod_shimmer.hide ();
|
|
$rod_fire_emitter1.hide ();
|
|
$rod_fire_emitter2.hide ();
|
|
$rod_emitter3.hide ();
|
|
$rod_emitter4.hide ();
|
|
sys.trigger ($cyl_smoke);
|
|
|
|
sys.waitFor ($rod_door);
|
|
sys.wait (1);
|
|
|
|
$rod.moveTo ($rod_spot1);
|
|
sys.waitFor ($rod);
|
|
|
|
// switch
|
|
$rod.hide ();
|
|
$rod_2.show ();
|
|
|
|
$rod_fire_emitter1.hide ();
|
|
$rod_fire_emitter2.hide ();
|
|
$rod_emitter3.hide ();
|
|
$rod_emitter4.hide ();
|
|
$cyl_smoke.hide ();
|
|
|
|
sys.trigger ($rod_redlight1);
|
|
sys.trigger ($rod_2_bluelight1);
|
|
sys.trigger ($rod_2_bluelight2);
|
|
|
|
// blue rod
|
|
|
|
$rod_2.moveTo ($rod_spot2);
|
|
sys.waitFor ($rod_2);
|
|
|
|
$rod_2.bind ($rod_replacer);
|
|
$rod_replacer.moveTo ($rod_replacer_spot2);
|
|
sys.waitFor ($rod_replacer);
|
|
$rod_door.rotateOnce ('0 -180 0');
|
|
sys.waitFor ($rod_door);
|
|
$rod_2.unbind ();
|
|
sys.wait (1);
|
|
|
|
$rod_replacer.moveTo ($rod_replacer_spot1);
|
|
sys.waitFor ($rod_replacer);
|
|
|
|
// switch out colors by hazarddoor up on level 2
|
|
|
|
sys.trigger ($hazard_redlight);
|
|
sys.trigger ($hazard_bluelight);
|
|
|
|
$hazard_redemitter1.hide ();
|
|
$hazard_redemitter2.hide ();
|
|
$hazard_redemitter3.hide ();
|
|
$hazard_redemitter4.hide ();
|
|
|
|
$hazard_redtube1.hide ();
|
|
$hazard_redtube2.hide ();
|
|
|
|
$hazard_blueemitter1.show ();
|
|
$hazard_blueemitter2.show ();
|
|
$hazard_blueemitter3.show ();
|
|
$hazard_blueemitter4.show ();
|
|
|
|
$hazard_bluetube1.show ();
|
|
$hazard_bluetube2.show ();
|
|
|
|
sys.trigger ($cyl_lightrelay);
|
|
sys.trigger ($cyltop_on);
|
|
sys.trigger ($cyltop_off);
|
|
sys.trigger ($cylbottom_on);
|
|
sys.trigger ($cylbottom_off);
|
|
sys.trigger ($func_emitter_68);
|
|
sys.trigger ($func_emitter_69);
|
|
|
|
sys.trigger ($hazdoortrigger);
|
|
|
|
sys.trigger ($obj1complete_trigger);
|
|
//sys.trigger ($obj1complete);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Rotate a cradle (machine room thing that -
|
|
// accepts dirty filters) around the ends
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void cradle_rotate( entity ent )
|
|
{
|
|
//whole thing (up, around, and down
|
|
//takes 1 second like almost all the moves
|
|
ent.time ( .33 );
|
|
ent.move ( UP, 16 );
|
|
sys.waitFor (ent);
|
|
|
|
ent.rotateOnce ( '0 0 180');
|
|
sys.waitFor (ent);
|
|
|
|
ent.move ( DOWN, 16 );
|
|
ent.time (1);
|
|
}
|
|
|
|
|
|
void cache_sounds() {
|
|
sys.cacheSoundShader ("rec1_steamchuff");
|
|
sys.cacheSoundShader ("metalcrash_01");
|
|
sys.cacheSoundShader ("glasscrash_01");
|
|
sys.cacheSoundShader ("enpro_bridge_2s");
|
|
sys.cacheSoundShader ("enpro_bridge_rails_1s");
|
|
sys.cacheSoundShader ("enpro_bridge_rails_2_1s");
|
|
sys.cacheSoundShader ("dc3_gui_panel_1");
|
|
sys.cacheSoundShader ("tb_m3_loop");
|
|
sys.cacheSoundShader ("tb_m4_stop");
|
|
sys.cacheSoundShader ("mach_1s");
|
|
sys.cacheSoundShader ("rotor_1s");
|
|
sys.cacheSoundShader ("tb_m4_stop");
|
|
sys.cacheSoundShader ("tb_arm1");
|
|
sys.cacheSoundShader ("tb_arm2");
|
|
sys.cacheSoundShader ("tb_arm3");
|
|
sys.cacheSoundShader ("tb_whomp");
|
|
sys.cacheSoundShader ("tb_whompout");
|
|
sys.cacheSoundShader ("tb_reloader1");
|
|
sys.cacheSoundShader ("tb_reloader2");
|
|
sys.cacheSoundShader ("al4_welder_armrot_1s");
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Machineclaw movement
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void machineclaw1_move()
|
|
{
|
|
|
|
// move machineclaw1 from initial position down and around track to filter pick up spot
|
|
//1
|
|
|
|
$sp_m2_carrier.startSoundShader ("dc3_gui_panel_1", SND_CHANNEL_VOICE2 );
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m3_loop", SND_CHANNEL_VOICE ); // Start mover
|
|
|
|
$machineclaw1_carrier_anchor.rotateOnce ( '0 -90 0' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//2
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint2 );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//3
|
|
|
|
$sp_m2_carrier.startSoundShader ("dc3_gui_panel_1", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_carrier_anchor.rotateOnce ( '0 -90 0' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//4
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint1 );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
// position machineclaw1 to receive filters
|
|
//5
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint12 );
|
|
|
|
$sp_m2_arm.startSoundShader ("mach_1s", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_upperarm.rotateOnce ( '-30 0 35' );
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_forearm.rotateOnce ( '80 0 0' );
|
|
sys.waitFor ($machineclaw1_forearm);
|
|
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m4_stop", SND_CHANNEL_VOICE ); // Stop Mover
|
|
|
|
|
|
//6
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm3", SND_CHANNEL_BODY );
|
|
|
|
$machineclaw1_hand.rotateOnce ( '142.5 10 -90' );
|
|
sys.waitFor ($machineclaw1_hand);
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
//7
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '-10 0 -43' );
|
|
sys.wait (1);
|
|
|
|
// get 1st new filter
|
|
|
|
//8
|
|
|
|
$can_clean1.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
|
|
$can_clean1.moveTo ($canspot1);
|
|
sys.waitFor ($can_clean1);
|
|
$can_clean1.bind ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
//9
|
|
|
|
$machineclaw1_steam1.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
// swing machineclaw1 away from receive position
|
|
|
|
//10
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 48' );
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '10 0 0' );
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
// reload 2
|
|
//11
|
|
|
|
$sp_m2_reloader.startSoundShader ("tb_reloader1", SND_CHANNEL_VOICE );
|
|
$reloader.move ( DOWN, 32 );
|
|
sys.waitFor ($reloader);
|
|
|
|
//12
|
|
|
|
$sp_m2_reloader.startSoundShader ("tb_reloader2", SND_CHANNEL_VOICE2 );
|
|
$reloader.move ( UP, 32 );
|
|
|
|
$can_clean2.time (.25);
|
|
$can_clean3.time (.25);
|
|
|
|
//13
|
|
|
|
$can_clean2.move ( UP, 32 );
|
|
$can_clean3.move ( UP, 32 );
|
|
|
|
//14
|
|
$can_clean2.time (1);
|
|
$can_clean3.time (1);
|
|
|
|
// swing machineclaw1 back into receive position
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 -48' );
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '-10 0 0' );
|
|
sys.wait (.5);
|
|
|
|
// get 2nd new filter
|
|
//15
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_BODY );
|
|
|
|
$machineclaw1_revolver.rotateOnce ( '0 -450 0');
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
//16
|
|
|
|
$machineclaw1_steam2.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
$can_clean2.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
|
|
$can_clean2.moveTo ($canspot2);
|
|
sys.waitFor ($can_clean2);
|
|
|
|
$can_clean2.bind ($machineclaw1_revolver);
|
|
|
|
// machineclaw1 movement out of receive position
|
|
|
|
//17
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 38' );
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
|
|
//18
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
$machineclaw1_hand.rotateOnce ( '-142.5 -10 90' );
|
|
sys.waitFor ($machineclaw1_hand);
|
|
|
|
//19
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 -20' );
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m3_loop", SND_CHANNEL_VOICE ); // Start mover
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint1 );
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m4_stop", SND_CHANNEL_VOICE ); // Stop Mover
|
|
|
|
//20
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE );
|
|
$machineclaw1_forearm.rotateOnce ( '25 0 0' );
|
|
sys.wait (.5);
|
|
|
|
//21
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 -10' );
|
|
|
|
// sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
// reload 3
|
|
$sp_m2_reloader.startSoundShader ("tb_reloader1", SND_CHANNEL_VOICE );
|
|
$reloader.move ( DOWN, 32 );
|
|
sys.waitFor ($reloader);
|
|
|
|
//22
|
|
$sp_m2_reloader.startSoundShader ("tb_reloader2", SND_CHANNEL_VOICE2 );
|
|
$reloader.move ( UP, 32 );
|
|
$can_clean3.time (.25);
|
|
$can_clean3.move ( UP, 32 );
|
|
$can_clean3.time (1);
|
|
|
|
// move machineclaw1 from filter pick up spot to filterpoint1
|
|
//23
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m3_loop", SND_CHANNEL_VOICE ); // Start mover
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint2 );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//24
|
|
|
|
$machineclaw1_carrier_anchor.rotateOnce ( '0 90 0' );
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '0 -45 0' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//25
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_filterpoint1 );
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '-5 -45 -15' );
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '-15 0 0' );
|
|
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m4_stop", SND_CHANNEL_VOICE ); // Stop Mover
|
|
|
|
// filterchamber movement up and rotate 45 degrees for filter removal
|
|
//26
|
|
|
|
$chamberpivot1.startSoundShader ("tb_arm3", SND_CHANNEL_VOICE2 );
|
|
$chamberpivot1.move ( UP, 42 );
|
|
sys.waitFor ($chamberpivot1);
|
|
|
|
//26a
|
|
|
|
$filterchamber.startSoundShader ("tb_arm3", SND_CHANNEL_VOICE2 );
|
|
$filterchamber.rotateOnce ( '45 0 0');
|
|
sys.waitFor ($filterchamber);
|
|
|
|
// exchange filter 1
|
|
|
|
//27
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '30 0 0' );
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '-20 0 0' );
|
|
|
|
// $machineclaw1_hand.rotateOnce ( '-5 0 0' );
|
|
$machineclaw1_hand.rotateOnce ( '-12 0 0' );
|
|
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
//28
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm3", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '0 0 15' );
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
|
|
$machineclaw1_revolver.rotateOnce ( '0 90 0');
|
|
|
|
sys.waitFor ($machineclaw1_upperarm);
|
|
|
|
//get old filter
|
|
//29
|
|
|
|
$can_dirty1.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
$can_dirty1.moveTo ( $canspot3 );
|
|
|
|
$machineclaw1_steam1.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
sys.waitFor ($can_dirty1);
|
|
$can_dirty1.unbind ();
|
|
$can_dirty1.bind ( $machineclaw1_revolver );
|
|
|
|
|
|
sys.wait (.5);
|
|
|
|
//30
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
$machineclaw1_revolver.rotateOnce ( '0 180 0');
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
$machineclaw1_steam2.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
|
|
|
|
//insert new filter
|
|
//31
|
|
|
|
$can_clean1.startSoundShader ("tb_whompout", SND_CHANNEL_VOICE2 );
|
|
|
|
$can_clean1.moveTo ( $chamber_filterspot1 );
|
|
sys.waitFor ($can_clean1);
|
|
$can_clean1.unbind ();
|
|
|
|
$can_clean1.bind ( $chamber_filterspot1 );
|
|
|
|
// move machineclaw1 from filterpoint1 to filterpoint2
|
|
|
|
//32
|
|
$sp_m2_carrier.startSoundShader ("tb_m3_loop", SND_CHANNEL_VOICE ); // Start mover
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_filterpoint2 );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m4_stop", SND_CHANNEL_VOICE ); // Stop Mover
|
|
|
|
// exchange filter 2
|
|
//33
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE2 );
|
|
$machineclaw1_revolver.rotateOnce ( '0 -270 0');
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
|
|
//34
|
|
|
|
$machineclaw1_steam1.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
//get old filter
|
|
$can_ditry2.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
$can_dirty2.moveTo ( $canspot4 );
|
|
sys.waitFor ($can_dirty2);
|
|
$can_dirty2.unbind ();
|
|
$can_dirty2.bind ( $machineclaw1_revolver );
|
|
|
|
sys.wait (.5);
|
|
|
|
//35
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
$machineclaw1_revolver.rotateOnce ( '0 180 0');
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
$machineclaw1_steam2.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
//insert new filter
|
|
//36
|
|
|
|
$can_clean2.startSoundShader ("tb_whompout", SND_CHANNEL_VOICE2 );
|
|
|
|
$can_clean2.moveTo ( $chamber_filterspot2 );
|
|
sys.waitFor ($can_clean2);
|
|
$can_clean2.unbind ();
|
|
$can_clean2.bind ( $chamber_filterspot2 );
|
|
|
|
|
|
sys.wait (1);
|
|
|
|
// move machineclaw1 from filterpoint2 to dump spot
|
|
//37
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m3_loop", SND_CHANNEL_VOICE ); // Start mover
|
|
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint3 );
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '40 0 0' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//38
|
|
|
|
$machineclaw1_carrier_anchor.rotateOnce ( '0 90 0' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
//39
|
|
|
|
$machineclaw1_carrier.rotateOnce ( '0 -90 0' );
|
|
$machineclaw1_carrier_anchor.moveTo ( $machineclaw1_movepoint4 );
|
|
|
|
$sp_m2_rev.startSoundShader ("tb_arm1", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_forearm.rotateOnce ( '-17 0 0' );
|
|
|
|
$sp_m2_arm.startSoundShader ("tb_arm2", SND_CHANNEL_VOICE2 );
|
|
|
|
$machineclaw1_upperarm.rotateOnce ( '-15 0 -18' );
|
|
sys.waitFor ($machineclaw1_carrier_anchor);
|
|
|
|
$sp_m2_carrier.startSoundShader ("tb_m4_stop", SND_CHANNEL_VOICE ); // Stop Mover
|
|
|
|
//40
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
|
|
$machineclaw1_hand.rotateOnce ( '39 16 0' );
|
|
sys.waitFor ($machineclaw1_hand);
|
|
|
|
// dump old filters
|
|
//move cradles up,down and around
|
|
|
|
//41
|
|
|
|
$cradle4.startSoundShader ("al4_welder_armrot_1s", SND_CHANNEL_VOICE );
|
|
|
|
$cradle4.rotateOnce ( '0 0 180' );
|
|
$cradle5.move ( DOWN, 32 );
|
|
$cradle6.move ( DOWN, 32 );
|
|
thread cradle_rotate ( $cradle1 );
|
|
$cradle2.move ( UP, 32 );
|
|
$cradle3.move ( UP, 32 );
|
|
sys.waitFor ($cradle2);
|
|
sys.killthread ( "map_enpro::cradle_rotate" );
|
|
|
|
$can_dirty4.unbind ();
|
|
$can_dirty4.remove ();
|
|
|
|
//put dirty1 on cradle1
|
|
//42
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
$machineclaw1_revolver.rotateOnce ( '0 -90 0' );
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
//42a
|
|
|
|
$machineclaw1_steam1.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
$can_dirty1.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
$can_dirty1.moveTo ( $cradlespot );
|
|
|
|
sys.waitFor ($can_dirty1);
|
|
$can_dirty1.unbind ();
|
|
$can_dirty1.bind ( $cradle1 );
|
|
|
|
|
|
//move cradles around again
|
|
//43
|
|
|
|
$cradle5.startSoundShader ("al4_welder_armrot_1s", SND_CHANNEL_VOICE );
|
|
|
|
$cradle5.rotateOnce ( '0 0 180' );
|
|
$cradle6.move ( DOWN, 32 );
|
|
$cradle1.move ( DOWN, 32 );
|
|
thread cradle_rotate ( $cradle2 );
|
|
$cradle3.move ( UP, 32 );
|
|
$cradle4.move ( UP, 32 );
|
|
sys.waitFor ($cradle3);
|
|
sys.killthread ( "map_enpro::cradle_rotate" );
|
|
|
|
$can_dirty5.unbind ();
|
|
$can_dirty5.remove ();
|
|
|
|
//put dirty2 on cradle2
|
|
//44
|
|
|
|
$sp_m2_rev.startSoundShader ("rotor_1s", SND_CHANNEL_VOICE );
|
|
$machineclaw1_revolver.rotateOnce ( '0 630 0' );
|
|
sys.waitFor ($machineclaw1_revolver);
|
|
|
|
//steam
|
|
//44a
|
|
|
|
$machineclaw1_steam2.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ( $machineclaw1_steam1 );
|
|
sys.trigger ( $machineclaw1_steam2 );
|
|
|
|
$can_dirty.startSoundShader ("tb_whomp", SND_CHANNEL_VOICE );
|
|
$can_dirty2.moveTo ( $cradlespot );
|
|
|
|
sys.waitFor ($can_dirty2);
|
|
$can_dirty2.unbind ();
|
|
$can_dirty2.bind ( $cradle2 );
|
|
|
|
//move cradles around again - last time
|
|
|
|
//45
|
|
|
|
$cradle6.startSoundShader ("al4_welder_armrot_1s", SND_CHANNEL_VOICE );
|
|
|
|
$cradle6.rotateOnce ( '0 0 180' );
|
|
$cradle1.move ( DOWN, 32 );
|
|
$cradle2.move ( DOWN, 32 );
|
|
thread cradle_rotate ( $cradle3 );
|
|
$cradle4.move ( UP, 32 );
|
|
$cradle5.move ( UP, 32 );
|
|
sys.waitFor ($cradle4);
|
|
sys.killthread ( "map_enpro::cradle_rotate" );
|
|
|
|
$can_dirty6.unbind ();
|
|
$can_dirty6.remove ();
|
|
|
|
|
|
// filterchamber rotate 45 degrees and movement down back to original position
|
|
//46
|
|
|
|
$filterchamber.startSoundShader ("tb_arm3", SND_CHANNEL_VOICE );
|
|
|
|
$filterchamber.rotateOnce ( '-45 0 0');
|
|
sys.waitFor ($filterchamber);
|
|
|
|
//47
|
|
|
|
$chamberpivot1.startSoundShader ("tb_arm3", SND_CHANNEL_VOICE );
|
|
|
|
$chamberpivot1.move ( DOWN, 42 );
|
|
sys.waitFor ($chamberpivot1);
|
|
|
|
sys.trigger ($tube_particle_3);
|
|
sys.trigger ($tube_particle_4);
|
|
sys.trigger ($tube_particle_5);
|
|
sys.trigger ($tube_particle_6);
|
|
sys.trigger ($plasmacontrol_light2);
|
|
sys.trigger ($plasmacontrol_light3);
|
|
}
|
|
|
|
/////////////////////////////////////
|
|
/////////// exit airlock door
|
|
/////////////////////////////////////
|
|
|
|
void exit_open()
|
|
|
|
{ //disable the gui on door2
|
|
$airlock_door2_gui.setGuiParm ( "gui_parm1" , 0);
|
|
|
|
//move the 4 locks to unlock position
|
|
$airlock_door2_top_lock.move ( UP, 15 );
|
|
|
|
sys.trigger ($speaker_airlock_door2_bottom_lock); // sound
|
|
|
|
$airlock_door2_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock_door2_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door2_left_lock);
|
|
$airlock_door2_left_lock.move ( NORTH, 16 );
|
|
sys.trigger ($speaker_airlock_door2_right_lock);
|
|
$airlock_door2_right_lock.move ( NORTH, 16 );
|
|
sys.waitFor ($airlock_door2_right_lock);
|
|
|
|
//open doors
|
|
sys.trigger ($speaker_airlock_door2_open);
|
|
|
|
$airlock_door2_left.rotateOnce ( '0 45 0' );
|
|
$airlock_door2_right.rotateOnce ( '0 -45 0' );
|
|
|
|
sys.waitFor ($airlock_door2_right);
|
|
sys.waitFor ($airlock_door2_left);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
cache_sounds();
|
|
setup_objects();
|
|
|
|
|
|
}
|
|
}
|