mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-25 11:01:30 +00:00
1196 lines
No EOL
28 KiB
Text
1196 lines
No EOL
28 KiB
Text
namespace map_comm1 {
|
|
float msg_state;
|
|
entity pipe1, pipe2, pipe3, pipe4, pipe5, pipe6, pipe0;
|
|
vector pipe_origin;
|
|
|
|
void mover_startsound (entity ent) {
|
|
//ent.startSoundShader ("m1_start", SND_CHANNEL_VOICE);
|
|
//sys.wait (0.75);
|
|
ent.startSoundShader ("m1_loop", SND_CHANNEL_VOICE2);
|
|
}
|
|
|
|
void mover_stopsound (entity ent) {
|
|
ent.startSoundShader ("m1_stop", SND_CHANNEL_VOICE2);
|
|
ent.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_ITEM );
|
|
}
|
|
|
|
void mover_startsound2 (entity ent) {
|
|
//ent.startSoundShader ("m2_start", SND_CHANNEL_VOICE);
|
|
//sys.wait (0.75);
|
|
ent.startSoundShader ("m2_loop", SND_CHANNEL_VOICE2);
|
|
}
|
|
|
|
void mover_stopsound2 (entity ent) {
|
|
ent.startSoundShader ("m2_stop", SND_CHANNEL_VOICE2);
|
|
ent.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_ITEM );
|
|
}
|
|
|
|
void mover_startsound3 (entity ent) {
|
|
//ent.startSoundShader ("m3_start", SND_CHANNEL_VOICE);
|
|
//sys.wait (1);
|
|
ent.startSoundShader ("m3_loop", SND_CHANNEL_VOICE2);
|
|
}
|
|
|
|
void mover_stopsound3 (entity ent) {
|
|
ent.startSoundShader ("m3_stop", SND_CHANNEL_VOICE2);
|
|
ent.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_ITEM );
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Setup binds and times etc...
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void setup_objects()
|
|
{
|
|
//power drill 1 and 2 binds and initial movements
|
|
$pwrdrill_1.bind ($pwrdrill_1_anchor);
|
|
$pwrdrill_2.bind ($pwrdrill_2_anchor);
|
|
|
|
$pwrdrill_1_anchor.rotateOnce ( '0 0 -45' );
|
|
$pwrdrill_2_anchor.rotateOnce ( '0 0 -45' );
|
|
|
|
sys.waitFor ($pwrdrill_1_anchor);
|
|
|
|
$pwrdrill_1.time (.20);
|
|
$pwrdrill_1.time (.50);
|
|
|
|
$pwrdrill_1.rotate ( '360 0 0' );
|
|
$pwrdrill_2.rotate ( '360 0 0' );
|
|
|
|
//oval binds and times/speeds
|
|
$oval_spid_1.bind ($oval_main);
|
|
$oval_spid_2.bind ($oval_main);
|
|
|
|
$oval_main.speed (300);
|
|
|
|
$oval_main.decelTime (.5);
|
|
$oval_main.accelTime (.25);
|
|
|
|
//snail 2 pole 1 binds and initial movements
|
|
$snl2_pl1_recep.bind ($snl2_pl1_anc);
|
|
$snl2_pl1.bind ($snl2_pl1_anc);
|
|
$snl2_pl1_spin_anc.bind ($snl2_pl1_anc);
|
|
|
|
$snl2_pl1_spin.bind ($snl2_pl1_spin_anc);
|
|
|
|
$snl2_pl1_spin_arm1.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_spin_arm2.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_spin_arm3.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_spin_arm4.bind ($snl2_pl1_spin);
|
|
|
|
$snl2_pl1_wire1.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_wire2.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_wire3.bind ($snl2_pl1_spin);
|
|
$snl2_pl1_wire4.bind ($snl2_pl1_spin);
|
|
|
|
$snl2_pl1_spin.time (1);
|
|
|
|
$snl2_pl1_spin_arm1.time (.6);
|
|
$snl2_pl1_spin_arm2.time (.6);
|
|
$snl2_pl1_spin_arm3.time (.6);
|
|
$snl2_pl1_spin_arm4.time (.6);
|
|
|
|
//initial position movements
|
|
$snl2_pl1_anc.rotateOnce ( '67.5 0 0');
|
|
sys.waitFor ($snl2_pl1_anc);
|
|
|
|
$snl2_pl1.move ( DOWN, 192 );
|
|
|
|
//snail 2 pole 2 binds and initial movements
|
|
$snl2_pl2_recep.bind ($snl2_pl2_anc);
|
|
$snl2_pl2.bind ($snl2_pl2_anc);
|
|
$snl2_pl2_spin_anc.bind ($snl2_pl2_anc);
|
|
|
|
$snl2_pl2_spin.bind ($snl2_pl2_spin_anc);
|
|
|
|
$snl2_pl2_spin_arm1.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_spin_arm2.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_spin_arm3.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_spin_arm4.bind ($snl2_pl2_spin);
|
|
|
|
$snl2_pl2_wire1.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_wire2.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_wire3.bind ($snl2_pl2_spin);
|
|
$snl2_pl2_wire4.bind ($snl2_pl2_spin);
|
|
|
|
$snl2_pl2_spin.time (1);
|
|
|
|
$snl2_pl2_spin_arm1.time (.6);
|
|
$snl2_pl2_spin_arm2.time (.6);
|
|
$snl2_pl2_spin_arm3.time (.6);
|
|
$snl2_pl2_spin_arm4.time (.6);
|
|
|
|
//initial position movements
|
|
$snl2_pl2_anc.rotateOnce ( '22.5 0 0');
|
|
sys.waitFor ($snl2_pl2_anc);
|
|
|
|
$snl2_pl2.move ( DOWN, 208 );
|
|
|
|
//snail 2 shell times and initial movements
|
|
$snl2_shell1.time (.25);
|
|
$snl2_shell2.time (.5);
|
|
$snl2_shell3.time (.75);
|
|
|
|
//misc pipe hall initial movements, rotations etc...
|
|
$holder_1.rotateOnce ( '-45 0 0' );
|
|
$holder_2.rotateOnce ( '-45 0 0' );
|
|
$holder_3.rotateOnce ( '-45 0 0' );
|
|
$holder_4.rotateOnce ( '-45 0 0' );
|
|
$holder_5.rotateOnce ( '-45 0 0' );
|
|
$holder_6.rotateOnce ( '-45 0 0' );
|
|
|
|
$mcarrier.rotateOnce ( '-45 0 0' );
|
|
|
|
$lcarrier.rotateOnce ( '-45 0 0' );
|
|
$lcarrier.speed (100);
|
|
|
|
//pipe hall pipe initial setups
|
|
pipe1 = sys.spawn( "func_mover" );
|
|
pipe1.setModel( "pipe1" );
|
|
pipe_origin = $pipe1pos_1.getOrigin();
|
|
pipe1.setOrigin (pipe_origin);
|
|
pipe1.setAngles ( '-45 0 0' );
|
|
|
|
pipe2 = sys.spawn( "func_mover" );
|
|
pipe2.setModel( "pipe2" );
|
|
pipe_origin = $pipe2pos_1.getOrigin();
|
|
pipe2.setOrigin (pipe_origin);
|
|
pipe2.setAngles ( '-45 0 0' );
|
|
|
|
pipe3 = sys.spawn( "func_mover" );
|
|
pipe3.setModel( "pipe3" );
|
|
pipe_origin = $pipe3pos_1.getOrigin();
|
|
pipe3.setOrigin (pipe_origin);
|
|
pipe3.setAngles ( '-45 0 0' );
|
|
|
|
pipe4 = sys.spawn( "func_mover" );
|
|
pipe4.setModel( "pipe4" );
|
|
pipe_origin = $pipe4pos_1.getOrigin();
|
|
pipe4.setOrigin (pipe_origin);
|
|
pipe4.setAngles ( '-45 0 0' );
|
|
|
|
pipe5 = sys.spawn( "func_mover" );
|
|
pipe5.setModel( "pipe5" );
|
|
pipe_origin = $pipe5pos_1.getOrigin();
|
|
pipe5.setOrigin (pipe_origin);
|
|
pipe5.setAngles ( '-45 0 0' );
|
|
|
|
pipe6 = sys.spawn( "func_mover" );
|
|
pipe6.setModel( "pipe6" );
|
|
pipe_origin = $pipe6pos_1.getOrigin();
|
|
pipe6.setOrigin (pipe_origin);
|
|
pipe6.setAngles ( '-45 0 0' );
|
|
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// oval movement
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void oval_movement ()
|
|
{
|
|
float pick, pick_old, oval_dist ;
|
|
$oval_main.setKey ("s_minDistance", "5");
|
|
$oval_main.setKey ("s_maxDistance", "30");
|
|
$oval_main.setKey ("s_unclamped", "1");
|
|
$oval_main.setKey ("s_volume", "5");
|
|
$oval_main.setKey ("snd_accel", "m5_start");
|
|
$oval_main.setKey ("snd_move", "m4_loop");
|
|
$oval_main.setKey ("snd_decel", "m4_stop");
|
|
|
|
pick = 1;
|
|
pick_old = 1;
|
|
|
|
while (1)
|
|
{
|
|
while ( pick == pick_old )
|
|
{
|
|
pick = ( sys.random(4) + 1 );
|
|
|
|
if ( pick < 2 )
|
|
{
|
|
pick = 1;
|
|
}
|
|
else if ( pick < 3 )
|
|
{
|
|
pick = 2;
|
|
}
|
|
else if ( pick < 4 )
|
|
{
|
|
pick = 3;
|
|
}
|
|
else
|
|
{
|
|
pick = 4;
|
|
}
|
|
}
|
|
|
|
oval_dist = (( pick_old - pick ) * 192 );
|
|
$oval_main.move ( WEST, oval_dist );
|
|
|
|
sys.waitFor ($oval_main);
|
|
sys.wait (2);
|
|
|
|
pick_old = pick;
|
|
}
|
|
|
|
}
|
|
|
|
void cache_sounds() {
|
|
sys.cacheSoundShader ("m1_loop");
|
|
sys.cacheSoundShader ("m1_stop");
|
|
sys.cacheSoundShader ("m2_loop");
|
|
sys.cacheSoundShader ("m2_stop");
|
|
sys.cacheSoundShader ("m3_loop");
|
|
sys.cacheSoundShader ("m3_stop");
|
|
sys.cacheSoundShader ("m5_start");
|
|
sys.cacheSoundShader ("m4_loop");
|
|
sys.cacheSoundShader ("m4_stop");
|
|
sys.cacheSoundShader ("rec1_pump_endclack_01");
|
|
|
|
sys.cacheSoundShader ("c1_mcarrier");
|
|
sys.cacheSoundShader ("c1_pipeupaway");
|
|
sys.cacheSoundShader ("c1_pipedownbounce");
|
|
sys.cacheSoundShader ("c1_pipeloader");
|
|
sys.cacheSoundShader ("c1_pipeloader2");
|
|
sys.cacheSoundShader ("c1_pipeloader3");
|
|
sys.cacheSoundShader ("c1_mloop1");
|
|
|
|
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move pipe up and away
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void pipe_upaway (entity pipeupaway)
|
|
{
|
|
pipeupaway.bind ($mcarrier);
|
|
|
|
$mcarrier.startSoundShader ("c1_mcarrier", SND_CHANNEL_VOICE );
|
|
|
|
$mcarrier.moveTo ($mcarrierpos_2);
|
|
sys.waitFor ($mcarrier);
|
|
|
|
pipeupaway.unbind ();
|
|
|
|
$mcarrier.moveTo ($mcarrierpos_1);
|
|
pipeupaway.time (2);
|
|
pipeupaway.startSoundShader ("c1_pipeupaway", SND_CHANNEL_VOICE2 );
|
|
pipeupaway.move ( UP , 128 );
|
|
sys.waitFor (pipeupaway);
|
|
pipeupaway.remove ();
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move pipe to middle
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_pipe (entity pipe, entity holder)
|
|
{
|
|
holder.speed (100);
|
|
|
|
pipe.bind (holder);
|
|
holder.startSoundShader ("c1_pipeloader2", SND_CHANNEL_VOICE );
|
|
holder.move ( REL_BACK, 24 );
|
|
sys.waitFor (holder);
|
|
|
|
pipe.unbind ();
|
|
pipe.bind ($lcarrier);
|
|
|
|
holder.move ( REL_FORWARD, 24 );
|
|
holder.startSoundShader ("c1_pipeloader3", SND_CHANNEL_VOICE2 );
|
|
sys.waitFor (holder);
|
|
|
|
holder.bind ($holder_rotate);
|
|
|
|
$holder_rotate.rotateOnce ( '15 0 0' );
|
|
|
|
$lcarrier.setKey ("snd_move", "c1_mloop1" );
|
|
$lcarrier.moveTo ($lcarrierpos_middle);
|
|
sys.waitFor ($lcarrier);
|
|
|
|
$lcarrier.startSoundShader ("c1_pipeloader", SND_CHANNEL_VOICE);
|
|
$lcarrier.move ( REL_FORWARD, 50 );
|
|
sys.waitFor ($lcarrier);
|
|
pipe.unbind ();
|
|
sys.wait (.5);
|
|
|
|
$lcarrier.startSoundShader ("c1_pipeloader2", SND_CHANNEL_VOICE);
|
|
$lcarrier.move ( REL_BACK, 50 );
|
|
sys.waitFor ($lcarrier);
|
|
|
|
// thread pipe move up and away
|
|
sys.killthread ( "map_comtower::pipe_upaway" );
|
|
thread pipe_upaway ( pipe );
|
|
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// test stuff eventually will be pipe mover loop
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_hallpipes()
|
|
{
|
|
float rand;
|
|
|
|
while (1)
|
|
{
|
|
sys.killthread ("map_comtower::move_pipe");
|
|
rand = sys.random (5);
|
|
|
|
if ( rand < 1 )
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_1);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe1;
|
|
thread move_pipe (pipe0, $holder_1);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe1 = sys.spawn( "func_mover" );
|
|
pipe1.setModel( "pipe1" );
|
|
pipe_origin = $pipe1pos_initial.getOrigin();
|
|
pipe1.setOrigin (pipe_origin);
|
|
pipe1.setAngles ( '-30 0 0' );
|
|
|
|
pipe1.moveTo ($pipe1pos_1);
|
|
sys.waitFor ( pipe1 );
|
|
sys.wait (.5);
|
|
$holder_1.bind (pipe1);
|
|
$holder_1.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
|
|
pipe1.time (.5);
|
|
pipe1.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe1 );
|
|
|
|
//bounce it
|
|
pipe1.time( .15 );
|
|
pipe1.accelTime( 0 );
|
|
pipe1.decelTime( .15 );
|
|
pipe1.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe1);
|
|
|
|
pipe1.time( .15 );
|
|
pipe1.accelTime( .15 );
|
|
pipe1.decelTime( 0 );
|
|
pipe1.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe1);
|
|
|
|
$holder_1.unbind ();
|
|
|
|
}
|
|
else if ( rand < 2 )
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_2);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe2;
|
|
thread move_pipe (pipe0, $holder_2);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe2 = sys.spawn( "func_mover" );
|
|
pipe2.setModel( "pipe2" );
|
|
pipe_origin = $pipe2pos_initial.getOrigin();
|
|
pipe2.setOrigin (pipe_origin);
|
|
pipe2.setAngles ( '-30 0 0' );
|
|
|
|
pipe2.moveTo ($pipe2pos_1);
|
|
sys.waitFor ( pipe2 );
|
|
sys.wait (.5);
|
|
$holder_2.bind (pipe2);
|
|
$holder_2.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
pipe2.time (.5);
|
|
pipe2.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe2 );
|
|
|
|
//bounce it
|
|
pipe2.time( .15 );
|
|
pipe2.accelTime( 0 );
|
|
pipe2.decelTime( .15 );
|
|
pipe2.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe2);
|
|
|
|
pipe2.time( .15 );
|
|
pipe2.accelTime( .15 );
|
|
pipe2.decelTime( 0 );
|
|
pipe2.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe2);
|
|
|
|
$holder_2.unbind ();
|
|
}
|
|
else if ( rand < 3 )
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_3);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe3;
|
|
thread move_pipe (pipe0, $holder_3);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe3 = sys.spawn( "func_mover" );
|
|
pipe3.setModel( "pipe3" );
|
|
pipe_origin = $pipe3pos_initial.getOrigin();
|
|
pipe3.setOrigin (pipe_origin);
|
|
pipe3.setAngles ( '-30 0 0' );
|
|
|
|
pipe3.moveTo ($pipe3pos_1);
|
|
sys.waitFor ( pipe3 );
|
|
sys.wait (.5);
|
|
$holder_3.bind (pipe3);
|
|
$holder_3.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
pipe3.time (.5);
|
|
pipe3.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe3 );
|
|
|
|
//bounce it
|
|
pipe3.time( .15 );
|
|
pipe3.accelTime( 0 );
|
|
pipe3.decelTime( .15 );
|
|
pipe3.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe3);
|
|
|
|
pipe3.time( .15 );
|
|
pipe3.accelTime( .15 );
|
|
pipe3.decelTime( 0 );
|
|
pipe3.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe3);
|
|
|
|
$holder_3.unbind ();
|
|
}
|
|
else if ( rand < 4 )
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_4);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe4;
|
|
thread move_pipe (pipe0, $holder_4);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe4 = sys.spawn( "func_mover" );
|
|
pipe4.setModel( "pipe4" );
|
|
pipe_origin = $pipe4pos_initial.getOrigin();
|
|
pipe4.setOrigin (pipe_origin);
|
|
pipe4.setAngles ( '-30 0 0' );
|
|
|
|
pipe4.moveTo ($pipe4pos_1);
|
|
sys.waitFor ( pipe4 );
|
|
sys.wait (.5);
|
|
$holder_4.bind (pipe4);
|
|
$holder_4.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
pipe4.time (.5);
|
|
pipe4.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe4 );
|
|
|
|
//bounce it
|
|
pipe4.time( .15 );
|
|
pipe4.accelTime( 0 );
|
|
pipe4.decelTime( .15 );
|
|
pipe4.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe4);
|
|
|
|
pipe4.time( .15 );
|
|
pipe4.accelTime( .15 );
|
|
pipe4.decelTime( 0 );
|
|
pipe4.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe4);
|
|
|
|
$holder_4.unbind ();
|
|
}
|
|
else if ( rand < 5 )
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_5);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe5;
|
|
thread move_pipe (pipe0, $holder_5);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe5 = sys.spawn( "func_mover" );
|
|
pipe5.setModel( "pipe5" );
|
|
pipe_origin = $pipe5pos_initial.getOrigin();
|
|
pipe5.setOrigin (pipe_origin);
|
|
pipe5.setAngles ( '-30 0 0' );
|
|
|
|
pipe5.moveTo ($pipe5pos_1);
|
|
sys.waitFor ( pipe5 );
|
|
sys.wait (.5);
|
|
$holder_5.bind (pipe5);
|
|
$holder_5.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
pipe5.time (.5);
|
|
pipe5.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe5 );
|
|
|
|
//bounce it
|
|
pipe5.time( .15 );
|
|
pipe5.accelTime( 0 );
|
|
pipe5.decelTime( .15 );
|
|
pipe5.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe5);
|
|
|
|
pipe5.time( .15 );
|
|
pipe5.accelTime( .15 );
|
|
pipe5.decelTime( 0 );
|
|
pipe5.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe5);
|
|
|
|
$holder_5.unbind ();
|
|
}
|
|
else
|
|
{
|
|
$lcarrier.moveTo ($lcarrierpos_6);
|
|
sys.waitFor ($lcarrier);
|
|
pipe0 = pipe6;
|
|
thread move_pipe (pipe0, $holder_6);
|
|
|
|
sys.wait (2);
|
|
//move new pipe in
|
|
pipe6 = sys.spawn( "func_mover" );
|
|
pipe6.setModel( "pipe6" );
|
|
pipe_origin = $pipe6pos_initial.getOrigin();
|
|
pipe6.setOrigin (pipe_origin);
|
|
pipe6.setAngles ( '-30 0 0' );
|
|
|
|
pipe6.moveTo ($pipe6pos_1);
|
|
sys.waitFor ( pipe6 );
|
|
sys.wait (.5);
|
|
$holder_6.bind (pipe6);
|
|
$holder_6.startSoundShader ("c1_pipedownbounce", SND_CHANNEL_VOICE2 );
|
|
|
|
pipe6.time (.5);
|
|
pipe6.rotateOnce ( '-15 0 0' );
|
|
sys.waitFor ( pipe6 );
|
|
|
|
//bounce it
|
|
pipe6.time( .15 );
|
|
pipe6.accelTime( 0 );
|
|
pipe6.decelTime( .15 );
|
|
pipe6.rotateOnce( '1 0 0' );
|
|
sys.waitFor (pipe6);
|
|
|
|
pipe6.time( .15 );
|
|
pipe6.accelTime( .15 );
|
|
pipe6.decelTime( 0 );
|
|
pipe6.rotateOnce( '-1 0 0' );
|
|
sys.waitFor (pipe6);
|
|
|
|
$holder_6.unbind ();
|
|
}
|
|
}//END WHILE
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move snail 2 pole 1 things up
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_snail2_connect1_up()
|
|
{
|
|
$snl2_pl1.time (.5);
|
|
$snl2_pl1.move ( UP, 192 );
|
|
//pole1 move sound .5sec
|
|
sys.trigger ($snail2_pole1_speaker);
|
|
sys.waitFor ($snl2_pl1);
|
|
|
|
$snl2_pl1_spin_anc.move ( UP, 144 );
|
|
$snl2_pl1_spin.rotateOnce ( '0 540 0' );
|
|
|
|
//pole1 guts moveup sound 1sec
|
|
sys.trigger ($snail2_pole1guts_up_speaker);
|
|
|
|
sys.wait (.5);
|
|
$snl2_pl1_spin_arm1.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl1_spin_arm2.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl1_spin_arm3.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl1_spin_arm4.rotateOnce ( '0 0 -180' );
|
|
|
|
sys.waitFor ($snl2_pl1_spin_arm4);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move snail 2 pole 1 things down
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_snail2_connect1_down()
|
|
{
|
|
//pole1 guts movedown sound 1sec
|
|
sys.trigger ($snail2_pole1guts_down_speaker);
|
|
|
|
$snl2_pl1_spin_anc.move ( DOWN, 144 );
|
|
$snl2_pl1_spin.rotateOnce ( '0 -540 0' );
|
|
|
|
$snl2_pl1_spin_arm1.rotateOnce ( '0 0 180' );
|
|
$snl2_pl1_spin_arm2.rotateOnce ( '0 0 180' );
|
|
$snl2_pl1_spin_arm3.rotateOnce ( '0 0 180' );
|
|
$snl2_pl1_spin_arm4.rotateOnce ( '0 0 180' );
|
|
|
|
sys.waitFor ($snl2_pl1_spin_anc);
|
|
|
|
$snl2_pl1.time (.5);
|
|
$snl2_pl1.move ( DOWN, 192 );
|
|
//pole1 move sound .5sec
|
|
sys.trigger ($snail2_pole1_speaker);
|
|
sys.waitFor ($snl2_pl1);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move snail 2 pole 2 things up
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_snail2_connect2_up()
|
|
{
|
|
$snl2_pl2.time (.5);
|
|
$snl2_pl2.move ( UP, 208 );
|
|
//pole2 move sound .5sec
|
|
sys.trigger ($snail2_pole2_speaker);
|
|
sys.waitFor ($snl2_pl2);
|
|
|
|
$snl2_pl2_spin_anc.move ( UP, 160 );
|
|
$snl2_pl2_spin.rotateOnce ( '0 540 0' );
|
|
|
|
//pole2 guts moveup sound 1sec
|
|
sys.trigger ($snail2_pole2guts_up_speaker);
|
|
|
|
sys.wait (.5);
|
|
$snl2_pl2_spin_arm1.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl2_spin_arm2.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl2_spin_arm3.rotateOnce ( '0 0 -180' );
|
|
$snl2_pl2_spin_arm4.rotateOnce ( '0 0 -180' );
|
|
|
|
sys.waitFor ($snl2_pl2_spin_arm4);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// move snail 2 pole 2 things down
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void move_snail2_connect2_down()
|
|
{
|
|
//pole2 guts movedown sound 1sec
|
|
sys.trigger ($snail2_pole2guts_down_speaker);
|
|
|
|
$snl2_pl2_spin_anc.move ( DOWN, 160 );
|
|
$snl2_pl2_spin.rotateOnce ( '0 -540 0' );
|
|
|
|
$snl2_pl2_spin_arm1.rotateOnce ( '0 0 180' );
|
|
$snl2_pl2_spin_arm2.rotateOnce ( '0 0 180' );
|
|
$snl2_pl2_spin_arm3.rotateOnce ( '0 0 180' );
|
|
$snl2_pl2_spin_arm4.rotateOnce ( '0 0 180' );
|
|
|
|
sys.waitFor ($snl2_pl2_spin_anc);
|
|
|
|
$snl2_pl2.time (.5);
|
|
$snl2_pl2.move ( DOWN, 208 );
|
|
//pole2 move sound .5sec
|
|
sys.trigger ($snail2_pole2_speaker);
|
|
sys.waitFor ($snl2_pl2);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// open shells for snail 2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void open_snail2_shells()
|
|
{
|
|
$snl2_shell3.rotateOnce ( '0 0 -135' );
|
|
|
|
sys.wait (.125);
|
|
$snl2_shell2.rotateOnce ( '0 0 -90' );
|
|
|
|
sys.wait (.125);
|
|
$snl2_shell1.rotateOnce ( '0 0 -45' );
|
|
|
|
sys.waitFor ($snl2_shell1);
|
|
sys.waitFor ($snl2_shell2);
|
|
sys.waitFor ($snl2_shell3);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// close shells for snail 2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void close_snail2_shells()
|
|
{
|
|
$snl2_shell3.rotateOnce ( '0 0 135' );
|
|
|
|
sys.wait (.125);
|
|
$snl2_shell2.rotateOnce ( '0 0 90' );
|
|
|
|
sys.wait (.125);
|
|
$snl2_shell1.rotateOnce ( '0 0 45' );
|
|
|
|
sys.waitFor ($snl2_shell1);
|
|
sys.waitFor ($snl2_shell2);
|
|
sys.waitFor ($snl2_shell3);
|
|
}
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Snail machine 2 LOOP
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void go_snail2()
|
|
{
|
|
float thread3, thread4;
|
|
|
|
while (1)
|
|
{
|
|
thread3 = thread open_snail2_shells ();
|
|
//Shells opening sound 1sec
|
|
sys.trigger ($snail2_shells_open_speaker);
|
|
sys.waitForThread( thread3 );
|
|
|
|
thread3 = thread move_snail2_connect1_up ();
|
|
thread4 = thread move_snail2_connect2_up ();
|
|
sys.waitForThread( thread3 );
|
|
sys.waitForThread( thread4 );
|
|
|
|
sys.wait(1);
|
|
|
|
thread3 = thread move_snail2_connect1_down ();
|
|
thread4 = thread move_snail2_connect2_down ();
|
|
sys.waitForThread( thread3 );
|
|
sys.waitForThread( thread4 );
|
|
|
|
thread3 = thread close_snail2_shells ();
|
|
//Shells closing sound 1sec
|
|
sys.trigger ($snail2_shells_close_speaker);
|
|
sys.waitForThread( thread3 );
|
|
|
|
sys.wait(1);
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// send msg
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void send_message ()
|
|
{
|
|
if (msg_state != 99)
|
|
{
|
|
sys.trigger ($obj2);
|
|
sys.wait (2);
|
|
|
|
sys.trigger ($obj3);
|
|
sys.wait (2);
|
|
|
|
sys.trigger ($obj4);
|
|
|
|
}
|
|
|
|
else
|
|
{
|
|
sys.trigger ($obj5);
|
|
}
|
|
|
|
msg_state = 99;
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Fluctuate the lobby lights
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void lobbylights_flux ()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void airlock_door1_close() {
|
|
sys.trigger ($speaker_airlock_door1_close);
|
|
$airlock_door1_left.rotateOnce ( '0 -45 0' );
|
|
$airlock_door1_right.rotateOnce ( '0 45 0' );
|
|
sys.waitFor ($airlock_door1_left);
|
|
|
|
$airlock_door1_top_lock.move ( DOWN, 15 );
|
|
sys.trigger ($speaker_airlock_door1_bottom_lock);
|
|
$airlock_door1_bottom_lock.move ( UP, 15 );
|
|
sys.waitFor ($airlock_door1_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door1_left_lock);
|
|
$airlock_door1_left_lock.move ( SOUTH, 16 );
|
|
sys.trigger ($speaker_airlock_door1_right_lock);
|
|
$airlock_door1_right_lock.move ( SOUTH, 16 );
|
|
sys.waitFor ($airlock_door1_right_lock);
|
|
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Open airlock door1
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_door1_open()
|
|
{
|
|
//airlock door1 times
|
|
$airlock_door1_left.time (1.2);
|
|
$airlock_door1_right.time (1.2);
|
|
$airlock_door1_left.accelTime (.2);
|
|
$airlock_door1_left.decelTime (1);
|
|
$airlock_door1_right.accelTime (.2);
|
|
$airlock_door1_right.decelTime (1);
|
|
|
|
$airlock_door1_top_lock.time (.25);
|
|
$airlock_door1_bottom_lock.time (.25);
|
|
|
|
$airlock_door1_left_lock.time (.75);
|
|
$airlock_door1_right_lock.time (.75);
|
|
$airlock_door1_left_lock.accelTime (.1);
|
|
$airlock_door1_left_lock.decelTime (.65);
|
|
$airlock_door1_right_lock.accelTime (.1);
|
|
$airlock_door1_right_lock.decelTime (.65);
|
|
|
|
//turn door1 and door2 light on
|
|
//turn door2 light on
|
|
thread crossFadeEnt ($door2_light, '0.37 0.05 0.01', '.84 .84 .9', 1);
|
|
|
|
sys.wait(1);
|
|
|
|
//move the 4 locks to unlock position
|
|
$airlock_door1_top_lock.move ( UP, 15 );
|
|
sys.trigger ($speaker_airlock_door1_bottom_lock);
|
|
$airlock_door1_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock_door1_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door1_left_lock);
|
|
$airlock_door1_left_lock.move ( NORTH, -16 );
|
|
sys.trigger ($speaker_airlock_door1_right_lock);
|
|
$airlock_door1_right_lock.move ( NORTH, -16 );
|
|
sys.waitFor ($airlock_door1_right_lock);
|
|
|
|
//open doors
|
|
sys.trigger ($speaker_airlock_door1_open);
|
|
$airlock_door1_left.rotateOnce ( '0 45 0' );
|
|
$airlock_door1_right.rotateOnce ( '0 -45 0' );
|
|
|
|
//trigger the portal
|
|
//sys.trigger ($airlock_door1_portal);
|
|
|
|
sys.waitFor ($airlock_door1_right);
|
|
sys.waitFor ($airlock_door1_left);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// rb_tube loop
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void rb_tube_loop()
|
|
{
|
|
while (1){
|
|
thread crossFadeEnt ($rb_tube_1_light, '.38 .86 .82', '.85 0 0', 2);
|
|
thread crossFadeEnt ($rb_tube_1, '.38 .86 .82', '.85 0 0', 2);
|
|
thread crossFadeEnt ($rb_tube_2_light, '.38 .86 .82', '.85 0 0', 2);
|
|
thread crossFadeEnt ($rb_tube_2, '.38 .86 .82', '.85 0 0', 2);
|
|
|
|
sys.wait (3);
|
|
|
|
thread crossFadeEnt ($rb_tube_1_light, '.85 0 0', '.38 .86 .82', 2);
|
|
thread crossFadeEnt ($rb_tube_1, '.85 0 0', '.38 .86 .82', 2);
|
|
thread crossFadeEnt ($rb_tube_2_light, '.85 0 0', '.38 .86 .82', 2);
|
|
thread crossFadeEnt ($rb_tube_2, '.85 0 0', '.38 .86 .82', 2);
|
|
|
|
sys.wait (3);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// senpist loops
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void senpist1_loop()
|
|
{
|
|
|
|
|
|
while (1){
|
|
$poopist1.time (1.5);
|
|
|
|
thread mover_startsound3 ($poopist1);
|
|
|
|
$poopist1.move (DOWN, 48);
|
|
sys.waitFor ($poopist1);
|
|
|
|
mover_stopsound2 ($poopist1);
|
|
|
|
$poopist1.time (0.5);
|
|
|
|
thread mover_startsound3 ($poopist1);
|
|
|
|
$poopist1.move (UP, 48);
|
|
sys.waitFor ($poopist1);
|
|
|
|
mover_stopsound3 ($poopist1);
|
|
}
|
|
}
|
|
|
|
void senpist2_loop()
|
|
{
|
|
while (1){
|
|
$peepist.time (1);
|
|
|
|
thread mover_startsound ($peepist);
|
|
$peepist.move (DOWN, 48);
|
|
sys.waitFor ($peepist);
|
|
mover_stopsound ($peepist);
|
|
|
|
$peepist.time (1.5);
|
|
|
|
thread mover_startsound ($peepist);
|
|
$peepist.move (UP, 48);
|
|
sys.waitFor ($peepist);
|
|
mover_stopsound ($peepist);
|
|
}
|
|
}
|
|
|
|
void senpist3_loop()
|
|
{
|
|
|
|
|
|
while (1){
|
|
|
|
$senpist3.time (1.5);
|
|
thread mover_startsound ($senpist3);
|
|
|
|
$senpist3.move (DOWN, 48);
|
|
sys.waitFor ($senpist3);
|
|
|
|
mover_stopsound2 ($senpist3);
|
|
|
|
$senpist3.time (1);
|
|
|
|
thread mover_startsound2 ($senpist3);
|
|
|
|
$senpist3.move (UP, 48);
|
|
sys.waitFor ($senpist3);
|
|
|
|
mover_stopsound ($senpist3);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// floor2 break
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void floor2_break()
|
|
{
|
|
$prebreak_main.hide();
|
|
$prebreak_light1.hide();
|
|
|
|
$postbreak_spark.show();
|
|
$postbreak_main.show();
|
|
$postbreak_light1.show();
|
|
$postbreak_clip.show();
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Corpse Move - quick move of deadbody
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void corpse_move()
|
|
{
|
|
$corpse_mover.time (.5);
|
|
$corpse_mover.accelTime (.5);
|
|
$corpse_mover.decelTime (0);
|
|
|
|
$corpse_mover.move ( UP, 96 );
|
|
sys.waitFor ($corpse_mover);
|
|
|
|
$corpse.unbind();
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Corpse Move - quick move of deadbody
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void corpse_move2()
|
|
{
|
|
$corpse_mover2.time (.8);
|
|
$corpse_mover2.accelTime (.8);
|
|
$corpse_mover2.decelTime (0);
|
|
|
|
$corpse_mover2.moveTo ( $corpse_mover2_movepoint );
|
|
sys.waitFor ($corpse_mover2);
|
|
|
|
$light_5352.fadeOutLight(1.2);
|
|
|
|
$corpse2.unbind();
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// make sure the secret panel is open on way back through
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void open_secretpanel()
|
|
{
|
|
$skyway_secret_panel.open();
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// door bang
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void door_bang ()
|
|
{
|
|
$helldoor1_mover.time (.2);
|
|
$helldoor2_mover.time (.2);
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 -2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//trigger speaker
|
|
sys.trigger ($helldoor_speaker);
|
|
sys.trigger ($door_bang_influence);
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 -2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//Again
|
|
sys.wait (.5);
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 -2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//trigger speaker
|
|
sys.trigger ($helldoor_speaker);
|
|
sys.trigger ($door_bang_influence);
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 -2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//And again
|
|
sys.wait (.2);
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 -2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//trigger speaker
|
|
sys.trigger ( $helldoor_speaker );
|
|
sys.trigger ( $door_bang_influence );
|
|
|
|
$helldoor1_mover.rotateOnce ( '0 -2.5 0');
|
|
$helldoor2_mover.rotateOnce ( '0 2 0');
|
|
sys.waitFor ($helldoor1_mover);
|
|
|
|
//trigger zsec shield guy
|
|
sys.trigger ( $monster_zsec_shield_4 );
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// machine fall over
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void machine_fall ()
|
|
{
|
|
$machine_fall_mover.time (.8);
|
|
$machine_fall_mover.accelTime (.8);
|
|
$machine_fall_mover.decelTime (0);
|
|
|
|
//trigger sound for falling
|
|
sys.trigger ( $speaker_machine_fall_attention );
|
|
//machine falls
|
|
$machine_fall_mover.rotateOnce ( '-90 -15 0' );
|
|
sys.waitFor ( $machine_fall_mover );
|
|
|
|
//trigger sound
|
|
sys.trigger ( $speaker_machine_fall );
|
|
|
|
//trigger particles
|
|
|
|
//wait then trigger sound
|
|
sys.wait (.5);
|
|
sys.trigger ($speaker_machine_fall_creepy);
|
|
sys.trigger ($target_setinfluence_16);
|
|
sys.wait (.5);
|
|
|
|
//call corpse mover
|
|
map_comm1::corpse_move2();
|
|
|
|
}
|
|
|
|
|
|
void close_swanncampdoor ()
|
|
{
|
|
$func_door_1670.open ();
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// MAIN
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void main ()
|
|
{
|
|
|
|
thread cache_sounds();
|
|
|
|
thread rb_tube_loop();
|
|
setup_objects ();
|
|
thread oval_movement ();
|
|
|
|
sys.wait (2);
|
|
thread move_hallpipes ();
|
|
thread go_snail2 ();
|
|
thread senpist1_loop ();
|
|
thread senpist2_loop ();
|
|
thread senpist3_loop ();
|
|
}
|
|
} |