namespace map_delta1 { float power = 0 ; float rgb_modifier = 0; // number of security lights(sl) and doors(dl) float sl_count = 5; float dl_count = 8; //////////////////////////////////////////////////// // // Initial movements etc... // //////////////////////////////////////////////////// void init_world() { //////////////////////////////////////////////////// //SENECA's HOLOGRAM INITS $hologram.hide(); $hologram.setColor (.3, .35, .45); //inital medium blue $hologram.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram.setShaderParm(5,0); //the delta 1 ring's RGB defaults to 0 $hologram.setShaderParm(6,100); //the plane beneath the hologram starts infinitely small $hologram.setShaderParm(7,0); //rgb of tops of rooms //the important rooms $hologram1.hide(); $hologram1.bind ($hologram1_1_anchor); $hologram1.setColor (.6, .7, .9); //inital light blue $hologram1.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram1.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram1.setShaderParm(7,0); //rgb of tops of rooms $hologram2.hide(); $hologram2.bind ($hologram2_1_anchor); $hologram2.setColor (.6, .7, .9); $hologram2.setShaderParm(3,-0.6); $hologram2.setShaderParm(4,100); $hologram2.setShaderParm(7,0); $hologram3.hide(); $hologram3.bind ($hologram3_1_anchor); $hologram3.setColor (.6, .7, .9); $hologram3.setShaderParm(3,-0.6); $hologram3.setShaderParm(4,100); $hologram3.setShaderParm(7,0); $hologram4.hide(); $hologram4.bind ($hologram4_1_anchor); $hologram4.setColor (.6, .7, .9); $hologram4.setShaderParm(3,-0.6); $hologram4.setShaderParm(4,100); $hologram4.setShaderParm(7,0); $hologram5.hide(); $hologram5.bind ($hologram5_1_anchor); $hologram5.setColor (.6, .7, .9); $hologram5.setShaderParm(3,-0.6); $hologram5.setShaderParm(4,100); $hologram5.setShaderParm(7,0); //the important rooms' glows $hologram1_1.hide(); $hologram1_1.bind ($hologram1); $hologram1_1.setShaderParm(3,0); //RGB of the red boxes outside each hologram. starts at 100% transparent. $hologram1_1.setShaderParm(4,10); //height of the red boxes outside each hologram. starts real small $hologram1_1.setShaderParm(5,0); //scale of the round disc $hologram1_1.setShaderParm(6,0); //RGB of the round plate that grows when you select an important area. $hologram1_1.setShaderParm(7,0); //RGB of the sprite round plate $hologram2_1.hide(); $hologram2_1.bind ($hologram2); $hologram2_1.setColor (.6, .7, .9); $hologram2_1.setShaderParm(3,0); $hologram2_1.setShaderParm(4,10); $hologram2_1.setShaderParm(5,0); $hologram2_1.setShaderParm(6,0); $hologram3_1.hide(); $hologram3_1.bind ($hologram3); $hologram3_1.setColor (.6, .7, .9); $hologram3_1.setShaderParm(3,0); $hologram3_1.setShaderParm(4,10); $hologram3_1.setShaderParm(5,0); $hologram3_1.setShaderParm(6,0); $hologram4_1.hide(); $hologram4_1.bind ($hologram4); $hologram4_1.setColor (.6, .7, .9); $hologram4_1.setShaderParm(3,0); $hologram4_1.setShaderParm(4,10); $hologram4_1.setShaderParm(5,0); $hologram4_1.setShaderParm(6,0); $hologram5_1.hide(); $hologram5_1.bind ($hologram5); $hologram5_1.setColor (.6, .7, .9); $hologram5_1.setShaderParm(3,0); $hologram5_1.setShaderParm(4,10); $hologram5_1.setShaderParm(5,0); $hologram5_1.setShaderParm(6,0); //END SENECA's HOLOGRAM INITS //////////////////////////////////////////////////// $lobby_spawn_trigger.disable(); $lobby_spawn_trigger2.disable(); // scipull stuff $delta1_scipull_1.hide(); $scipull_panel_end.hide(); // sizzor lift binds $siz_axle_low.bind ($siz_lowlegr); $siz_axle_left.bind ($siz_lowlegr); $siz_toplegl.bind ($siz_axle_left); $siz_axle_top.bind ($siz_toplegl); $siz_toplegr.bind ($siz_axle_top); $siz_axle_right.bind ($siz_toplegr); $siz_lowlegl.bind ($siz_axle_right); $siz_topcr.bindPosition ($siz_toplegl); $siz_topcl.bindPosition ($siz_toplegr); $siz_lowcl.bindPosition ($siz_lowlegl); $siz_top.bind ($siz_topcr); $siz_control.bind ($siz_top); // sizzor accel and decel times $siz_toplegl.time ( 1.5 ); $siz_toplegr.time ( 1.5 ); $siz_lowlegl.time ( 1.5 ); $siz_lowlegr.time ( 1.5 ); $siz_toplegl.accelTime ( .5 ); $siz_toplegl.decelTime ( .5 ); $siz_toplegr.accelTime ( .5 ); $siz_toplegr.decelTime ( .5 ); $siz_lowlegl.accelTime ( .5 ); $siz_lowlegl.decelTime ( .5 ); $siz_lowlegr.accelTime ( .5 ); $siz_lowlegr.decelTime ( .5 ); // reactor setup $outerring_anchor.rotateOnce ('-45 0 0'); $innerring_anchor.rotateOnce ('-30 0 0'); } //////////////////////////////////////////////////// // // Global parm ramp up or down // //////////////////////////////////////////////////// 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.wait( GAME_FRAMETIME ); } sys.setShaderParm( 0, rgb_end ); sys.setShaderParm( 1, rgb_end ); sys.setShaderParm( 2, rgb_end ); } //////////////////////////////////////////////////// // // Power flux // //////////////////////////////////////////////////// void power_flux() { float i; float ran_loop, ran_new, ran_time; float old; old = .2; ran_loop = (sys.random(10) + 5); for (i=1; i<=ran_loop; i++){ ran_new = sys.random(1.5); ran_time = sys.random(1); light_ramp( old, ran_new, ran_time ); old = ran_new; } light_ramp( old, .15, .3 ); } //////////////////////////////////////////////////// // // Low Power Loop // random power flucuations // //////////////////////////////////////////////////// void low_power_loop() { //sys.print ("begin low_power_loop\n"); //sys.print ("power level =" + power + "\n"); float ran; ran = sys.random (3); sys.wait (ran); while (power == 1){ ran = (sys.random(4) + 12); //sys.print ("next power surge in " + ran + " seconds\n"); sys.wait (ran); power_flux(); } //sys.print ("made it to the end of low power loop\n"); if (power==2){ float ii; float rate; rate = GAME_FRAMETIME * 0.25; for( ii = rgb_modifier; ii <= 1; ii += rate ) { sys.setShaderParm(0,(ii*.65)); sys.setShaderParm(1,(ii*.65)); sys.setShaderParm(2,(ii*.75)); sys.wait (GAME_FRAMETIME); } } } //////////////////////////////////////////////////// // // security lights on // //////////////////////////////////////////////////// void seclights_on() { entity sl_ent, ssl_ent1, bsl_ent1, ssl_ent2, bsl_ent2; float i; for (i=1; i<=sl_count; i++){ sl_ent=sys.getEntity ("sl_" + i); ssl_ent1=sys.getEntity ("ssl_" + i + "_a"); ssl_ent2=sys.getEntity ("ssl_" + i + "_b"); bsl_ent1=sys.getEntity ("bsl_" + i + "_a"); bsl_ent2=sys.getEntity ("bsl_" + i + "_b"); sl_ent.setColor( .627, .1, 0 ); ssl_ent1.On(); ssl_ent2.On(); bsl_ent1.On(); bsl_ent2.On(); } } //////////////////////////////////////////////////// // // security lights off // //////////////////////////////////////////////////// void seclights_off() { entity sl_ent, ssl_ent1, bsl_ent1, ssl_ent2, bsl_ent2; float i; for (i=1; i<=sl_count; i++){ sl_ent=sys.getEntity ("sl_" + i); ssl_ent1=sys.getEntity ("ssl_" + i + "_a"); ssl_ent2=sys.getEntity ("ssl_" + i + "_b"); bsl_ent1=sys.getEntity ("bsl_" + i + "_a"); bsl_ent2=sys.getEntity ("bsl_" + i + "_b"); sl_ent.setColor( 0,0,0 ); ssl_ent1.Off(); ssl_ent2.Off(); bsl_ent1.Off(); bsl_ent2.Off(); } } //////////////////////////////////////////////////// // // hologram on // //////////////////////////////////////////////////// void hologram_on() { $hologram_light_big.setColor( .75, .8, .85 ); // trigger the initial power up sound in control room // sys.trigger ($warning_speaker_initial); // sci stuff $delta1_scipull_1.show(); $scipull_panel_end.show(); $scidead.remove(); $scipull_panel_start.remove(); $lobby_spawn_trigger.enable(); $lobby_spawn_trigger2.enable(); // data linker show and move down $datalinker.startSoundShader ("hologram_datalinker", SND_CHANNEL_VOICE ); $datalinker.time(.75); $datalinker.show(); $datalinker.move ( DOWN, 8 ); } //////////////////////////////////////////////////// // // hologram off // //////////////////////////////////////////////////// void hologram_off() { $hologram_light_big.setColor( .75, .8, .85 ); } //////////////////////////////////////////////////// // // door lights on // //////////////////////////////////////////////////// void doorlights_on() { entity dl_ent1, dl_ent2, dl_ent3 ; float i; for (i=1; i<=dl_count; i++){ dl_ent1=sys.getEntity ("dl_" + i); dl_ent2=sys.getEntity ("dl_" + i + "_a"); dl_ent3=sys.getEntity ("dl_" + i + "_b"); dl_ent1.setColor( .627, .1, 0 ); dl_ent2.setColor( .627, .1, 0 ); dl_ent3.setColor( .627, .1, 0 ); } } /////////////////////////////////////////////////// // // door lights off // //////////////////////////////////////////////////// void doorlights_off() { entity dl_ent1, dl_ent2, dl_ent3 ; float i; for (i=1; i<=dl_count; i++){ dl_ent1=sys.getEntity ("dl_" + i); dl_ent2=sys.getEntity ("dl_" + i + "_a"); dl_ent3=sys.getEntity ("dl_" + i + "_b"); dl_ent1.setColor( 1, 1, 1 ); dl_ent2.setColor( 1, 1, 1 ); dl_ent3.setColor( 1, 1, 1 ); } } //////////////////////////////////////////////////// // // Power is offline // level 0 // //////////////////////////////////////////////////// void power_level_0() { float i; float rate; rate = GAME_FRAMETIME * 0.25; for( i = rgb_modifier; i >= 0; i -= rate ) { sys.setShaderParm(0,i); sys.setShaderParm(1,i); sys.setShaderParm(2,i); sys.wait (GAME_FRAMETIME); } // force all to 0,0,0 just incase there is a fraction left over... // to make sure the shadows are off sys.setShaderParm(0,0); sys.setShaderParm(1,0); sys.setShaderParm(2,0); // turn on the security lights // turn on door lights to red // turn the hologram light off thread seclights_on(); thread doorlights_on(); thread hologram_off(); // set the rgb modifier tracking variable rgb_modifier = 0; // sys.print ( "power offline\n" ); power = 0; } //////////////////////////////////////////////////// // // Power to level 1 // //////////////////////////////////////////////////// void power_level_1() { // turn security lights off // doorlights back to white if red thread seclights_off(); thread doorlights_off(); sys.wait (1); float i; float rate; if ( power >= 1 ){ rate = GAME_FRAMETIME * 0.25; for( i = rgb_modifier; i >= .25; i -= rate ) { sys.setShaderParm(0,i); sys.setShaderParm(1,i); sys.setShaderParm(2,i); sys.wait (GAME_FRAMETIME); } } else { rate = GAME_FRAMETIME * 0.25; for( i = rgb_modifier; i <= .25; i += rate ) { sys.setShaderParm(0,i); sys.setShaderParm(1,i); sys.setShaderParm(2,i); sys.wait (GAME_FRAMETIME); } } // set the rgb modifier tracking variable rgb_modifier = .25; // sys.print ( "power 10%\n" ); power = 1; low_power_loop(); } //////////////////////////////////////////////////// // // Power to level 2 // //////////////////////////////////////////////////// void power_level_2() { // turn security lights off // doorlights back to white if red // turn the hologram on if off power = 2; seclights_off(); doorlights_off(); hologram_on(); float i; float rate; rate = GAME_FRAMETIME * 0.25; for( i = rgb_modifier; i <= 1; i += rate ) { sys.setShaderParm(0,(i*.65)); sys.setShaderParm(1,(i*.65)); sys.setShaderParm(2,(i*.75)); sys.wait (GAME_FRAMETIME); } // set the rgb modifier tracking variable rgb_modifier = 1; } //////////////////////////////////////////////////// // // Computer Voice Loop // //////////////////////////////////////////////////// void computer_voice_loop() { sys.killthread ( "map_delta1::pre_computer_voice_loop" ); sys.wait (35); while (1){ sys.trigger($speaker_reactor_offline); // 3.110 sys.wait (3.4); sys.trigger($speaker_follow_procedure_orage); // 3.165 sys.wait (3.165); sys.wait (35); } } //////////////////////////////////////////////////// // // Computer Voice Loop // This is the initial voice loop // //////////////////////////////////////////////////// void pre_computer_voice_loop() { while (power==0){ sys.trigger($speaker_emr_pwr_only); // 2.219 seconds sys.wait (2.4); sys.trigger($speaker_operations_suspended); // 2.816 seconds sys.wait (2.816); sys.wait (35); } } //////////////////////////////////////////////////// // // Zombie falls out of panel and stuff // //////////////////////////////////////////////////// void zombie_fallout() { // make the panel bounce back down sys.trigger ($zombie_fallout_speaker); $rot_panel_1.time (.25); $rot_panel_1.decelTime (.01); $rot_panel_1.rotateOnce ( '-10 0 0' ); sys.waitFor ( $rot_panel_1 ); $rot_panel_1.time (.2); $rot_panel_1.decelTime (.2); $rot_panel_1.rotateOnce ( '10 0 0' ); sys.waitFor ( $rot_panel_1 ); $rot_panel_1.time (.2); $rot_panel_1.decelTime (.01); $rot_panel_1.rotateOnce ( '-5 0 0' ); sys.waitFor ( $rot_panel_1 ); $rot_panel_1.time (.15); $rot_panel_1.decelTime (.15); $rot_panel_1.rotateOnce ( '5 0 0' ); sys.waitFor ( $rot_panel_1 ); $rot_panel_1.time (.1); $rot_panel_1.decelTime (.1); $rot_panel_1.rotateOnce ( '-2 0 0' ); sys.waitFor ( $rot_panel_1 ); $rot_panel_1.time (.1); $rot_panel_1.decelTime (.1); $rot_panel_1.rotateOnce ( '1 0 0' ); sys.waitFor ( $rot_panel_1 ); } //////////////////////////////////////////////////// // // reactor move // //////////////////////////////////////////////////// void reactor_move () { float i,v,t,blendtime,velmult; vector rotvector; blendtime = 7; velmult = .5; t = blendtime * GAME_FPS; for ( i = 10; i < t; i++ ) { v = (i * velmult); rotvector_x=v ;rotvector_y=0 ; rotvector_z=0; $reactor_innerring.rotate ( rotvector ); rotvector_x=-v ;rotvector_y=0 ; rotvector_z=0; $reactor_outerring.rotate ( rotvector ); sys.wait( GAME_FRAMETIME ); } } //////////////////////////////////////////////////// // // reactor startup sequence // //////////////////////////////////////////////////// void reactor_startup () { // this will eventually have things like: // reactor ramping up // lights doing something sys.trigger ($reactor_speaker_startup); sys.trigger ($speaker_driver); $end_control.setGuiParm( "gui_parm5" , 0 ); //call reactor start function thread reactor_move(); sys.killthread ( "map_delta1::computer_voice_loop" ); sys.killthread ( "map_delta1::low_power_loop" ); sys.killthread ( "map_delta1::power_flux" ); thread power_level_2(); sys.wait(2); sys.trigger ($reactor_comp_reactoronline); //sys.print ( "trigger objective complete\n" ); sys.trigger($reactor_objective_complete_trigger); sys.wait(4); //sys.print ( "trigger last objective\n" ); sys.trigger($elevator_objective_trigger); sys.wait(4); sys.trigger ($reactor_speaker_loop); // trigger the door sign guis and kiosk guis sys.trigger($doorsigns_gui_relay); } //////////////////////////////////////////////////// // // Sound moving #1 // Plays a sound on a moving speaker // //////////////////////////////////////////////////// void spooky_sound_1 () { $ms1_speaker.bind ($ms1_mover); $ms1_mover.time (7.2); sys.trigger ($ms1_speaker); $ms1_mover.moveTo ($ms1_movepoint); sys.waitFor ($ms1_mover); $ms1_speaker.Off(); } //////////////////////////////////////////////////// // // Random Spooky sounds #2 // //////////////////////////////////////////////////// void spooky_sound_2 () { sys.trigger ($ran_speaker_1_1); sys.wait (1); sys.trigger ($ran_speaker_1_2); } //////////////////////////////////////////////////// // // Random Spooky sounds #3 // //////////////////////////////////////////////////// void spooky_sound_3 () { float numran; numran = sys.random(3); if (numran>=2){ sys.trigger ($ran_speaker_2_1); sys.wait (.5); sys.trigger ($ran_speaker_2_2); } else if (numran>=1){ sys.trigger ($ran_speaker_2_2); sys.wait (.5); sys.trigger ($ran_speaker_2_3); } else { sys.trigger ($ran_speaker_2_3); sys.wait (.5); sys.trigger ($ran_speaker_2_2); sys.trigger ($ran_speaker_2_1); } } //////////////////////////////////////////////////// // // Random Spooky sounds #4 // //////////////////////////////////////////////////// void spooky_sound_4 () { float numran; numran = sys.random(3); if (numran>=2){ sys.trigger ($ran_speaker_3_1); sys.wait (.5); sys.trigger ($ran_speaker_3_4); } else if (numran>=1){ sys.trigger ($ran_speaker_3_2); sys.wait (.5); sys.trigger ($ran_speaker_3_3); } else { sys.trigger ($ran_speaker_3_3); sys.wait (.5); sys.trigger ($ran_speaker_3_2); sys.trigger ($ran_speaker_3_1); } } //////////////////////////////////////////////////// // // Seneca's hologram initial activation (unhiding) // //////////////////////////////////////////////////// void hologram_start () { //temp $hologram1.setColor (.6, .7, .9); //inital light blue $hologram1.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram1.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram1.setShaderParm(7,0); //rgb of tops of rooms //temp //temp $hologram2.setColor (.6, .7, .9); //inital light blue $hologram2.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram2.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram2.setShaderParm(7,0); //rgb of tops of rooms //temp //temp $hologram3.setColor (.6, .7, .9); //inital light blue $hologram3.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram3.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram3.setShaderParm(7,0); //rgb of tops of rooms //temp //temp $hologram4.setColor (.6, .7, .9); //inital light blue $hologram4.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram4.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram4.setShaderParm(7,0); //rgb of tops of rooms //temp //temp $hologram5.setColor (.6, .7, .9); //inital light blue $hologram5.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram5.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram5.setShaderParm(7,0); //rgb of tops of rooms //temp //temp $hologram.setColor (.3, .45, .45); //inital medium blue $hologram.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram.setShaderParm(5,0); //the delta 1 ring's RGB defaults to 0 $hologram.setShaderParm(6,100); //the plane beneath the hologram starts infinitely small $hologram.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram.show(); thread interpolateShaderParm( $hologram, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram, 4, 5, 0.85, 1 ); //scale up bottoms of rooms thread interpolateShaderParm( $hologram, 5, 0, 1, 5 ); //RGB in delta cylinder sys.wait (1); thread interpolateShaderParm( $hologram, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram1_start () { //temp $hologram1.setColor (.6, .7, .9); //inital light blue $hologram1.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram1.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram1.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram1.show(); thread interpolateShaderParm( $hologram1, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram1, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram1, 4, 5, 0.85, 1 ); //scale up bottoms of rooms sys.wait (1); thread interpolateShaderParm( $hologram1, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram1, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram2_start () { //temp $hologram2.setColor (.6, .7, .9); //inital light blue $hologram2.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram2.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram2.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram2.show(); thread interpolateShaderParm( $hologram2, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram2, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram2, 4, 5, 0.85, 1 ); //scale up bottoms of rooms sys.wait (1); thread interpolateShaderParm( $hologram2, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram2, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram3_start () { //temp $hologram3.setColor (.6, .7, .9); //inital light blue $hologram3.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram3.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram3.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram3.show(); thread interpolateShaderParm( $hologram3, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram3, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram3, 4, 5, 0.85, 1 ); //scale up bottoms of rooms sys.wait (1); thread interpolateShaderParm( $hologram3, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram3, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram4_start () { //temp $hologram4.setColor (.6, .7, .9); //inital light blue $hologram4.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram4.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram4.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram4.show(); thread interpolateShaderParm( $hologram4, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram4, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram4, 4, 5, 0.85, 1 ); //scale up bottoms of rooms sys.wait (1); thread interpolateShaderParm( $hologram4, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram4, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram5_start () { //temp $hologram5.setColor (.6, .7, .9); //inital light blue $hologram5.setShaderParm(3,-0.6); //the side textures scroll from bottom to top. $hologram5.setShaderParm(4,100); //the bottom textures scale from the center of the faces out to the edges. $hologram5.setShaderParm(7,0); //rgb of tops of rooms //temp $hologram5.show(); thread interpolateShaderParm( $hologram5, 6, 100, 1, 1 ); //scale in bottom grid sys.wait (1); thread interpolateShaderParm( $hologram5, 4, 100, 5, .2 ); //bring in bottoms of rooms sys.wait (0.2); thread interpolateShaderParm( $hologram5, 4, 5, 0.85, 1 ); //scale up bottoms of rooms sys.wait (1); thread interpolateShaderParm( $hologram5, 3, -0.6, 0, 1 ); //bring up sides of rooms and cap off. sys.wait (1); thread interpolateShaderParm( $hologram5, 7, 0, 1, 0.05 ); //RGB of room tops } void hologram1_1 () //this is the animation that gets played when player clicks on Control Center { if ($hologram1_1.getFloatKey ("state")==1){ $hologram1_1.startSoundShader ("hologram_spawnout", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram1_1, 7, 1, 0, .2 ); //fade out round spinny plane thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.15 .175 .22', 1); //make the unselected room go back to default colors $hologram1_1_anchor.time(.15); $hologram1_1_anchor.rotateOnce ( '0 0 -30'); $hologram1_1_anchor.move(WEST,30); sys.waitFor( $hologram1_1_anchor ); $hologram1_1_anchor.move(NORTH,16); sys.waitFor( $hologram1_1_anchor ); $hologram1_1_anchor.move(DOWN,40); sys.waitFor( $hologram1_1_anchor ); $hologram1_1.hide(); $hologram1_1.setKey ("state", "0"); } else { $hologram1_1.show(); $hologram1_1.setKey ("state", "1"); //sets it so that next time you run the script, it puts the objects back where it was. $hologram1_1.setShaderParm(7,0); $hologram1_1.setColor (1, .1, 0); //make little line red thread crossFadeEnt( $hologram, $hologram.getColor(), '.1 .2 .2', .5); //make the base hologram darken a little. thread interpolateShaderParm( $hologram, 5, 1, .35, .5 ); //make the base hologram's matrix effect go darker. thread crossFadeEnt( $hologram1, $hologram1.getColor(), '1 .1 0', .5); //make selected room go red. thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.15 .175 .22', .5); //make unselected room darken. $hologram1_1.startSoundShader ("hologram_spawn", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram1_1, 3, 0, 100, .1 ); //RGB in red boxes thread interpolateShaderParm( $hologram1_1, 4, 10, 1, 1 ); //scale up the sides of red boxes thread interpolateShaderParm( $hologram1_1, 5, 10, 1, 1 ); //scale up round plane sys.wait (.7); thread interpolateShaderParm( $hologram1_1, 6, 1, 0, 2 ); //RGB out round spinny plane thread interpolateShaderParm( $hologram1_1, 3, 1, 0, 1 ); //RGB out red boxes sys.wait(1); $hologram1_1_anchor.time(1); $hologram1_1_anchor.accelTime(.4); $hologram1_1_anchor.decelTime(.4); $hologram1_1_anchor.move(UP,40); $hologram1_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.waitFor( $hologram1_1_anchor ); $hologram1_1_anchor.move(SOUTH,16); $hologram1_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.waitFor( $hologram1_1_anchor ); $hologram1_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE2 ); $hologram1_1_anchor.move(EAST,30); thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.5 .05 0', .5); thread interpolateShaderParm( $hologram1_1, 7, 0, 1, 1 ); //RGB in the red sprite round plate $hologram1_1.startSoundShader ("hologram_loop", SND_CHANNEL_VOICE ); $hologram1_1_anchor.rotateOnce ( '0 0 30'); } } void hologram2_1 () //this is the animation that gets played when player clicks on lobby/elevators { if ($hologram2_1.getFloatKey ("state")==1){ $hologram2_1.startSoundShader ("hologram_spawnout", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram2_1, 7, 1, 0, .2 ); //fade out round spinny plane thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.15 .175 .22', 1); //make the unselected room go back to default colors $hologram2_1_anchor.time(.15); $hologram2_1_anchor.rotateOnce ( '0 0 -30'); $hologram2_1_anchor.move(NORTH,64); sys.wait(.15); $hologram2_1_anchor.move(WEST,40); sys.wait(.15); $hologram2_1_anchor.move(DOWN,44); sys.wait(.15); $hologram2_1.hide(); $hologram2_1.setKey ("state", "0"); } else { $hologram2_1.show(); $hologram2_1.setKey ("state", "1"); $hologram2_1.setShaderParm(7,0); $hologram2_1.setColor (1, .1, 0); //make little line red thread crossFadeEnt( $hologram, $hologram.getColor(), '.1 .2 .2', .5); //make the base hologram darken a little. thread interpolateShaderParm( $hologram, 5, 1, .35, .5 ); //make the base hologram's matrix effect go darker. thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram2, $hologram2.getColor(), '1 .1 0', .5); //make selected room go red. thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.15 .175 .22', .5); //make unselected room darken. $hologram2_1.startSoundShader ("hologram_spawn", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram2_1, 3, 0, 100, .1 ); //RGB in red boxes thread interpolateShaderParm( $hologram2_1, 4, 10, 1, 1 ); //scale up the sides of red boxes thread interpolateShaderParm( $hologram2_1, 5, 10, 1, 1 ); //scale up round plane sys.wait (.7); thread interpolateShaderParm( $hologram2_1, 6, 1, 0, 2 ); //RGB out round spinny plane thread interpolateShaderParm( $hologram2_1, 3, 1, 0, 1 ); //RGB out red boxes sys.wait(1); $hologram2_1_anchor.time(1); $hologram2_1_anchor.accelTime(.4); $hologram2_1_anchor.decelTime(.4); $hologram2_1_anchor.move(UP,44); $hologram2_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram2_1_anchor.move(EAST,40); $hologram2_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram2_1_anchor.move(SOUTH,64); $hologram2_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE2 ); thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.5 .05 0', .5); thread interpolateShaderParm( $hologram2_1, 7, 0, 1, 1 ); //RGB in the red sprite round plate $hologram2_1.startSoundShader ("hologram_loop", SND_CHANNEL_VOICE ); $hologram2_1_anchor.rotateOnce ( '0 0 30'); } } void hologram3_1 () //this is the animation that gets played when player clicks on Control Center { if ($hologram3_1.getFloatKey ("state")==1){ $hologram3_1.startSoundShader ("hologram_spawnout", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram3_1, 7, 1, 0, .2 ); //fade out round spinny plane thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.15 .175 .22', 1); //make the unselected room go back to default colors $hologram3_1_anchor.time(.15); $hologram3_1_anchor.rotateOnce ( '0 0 -30'); $hologram3_1_anchor.move(NORTH,108); sys.wait(.15); $hologram3_1_anchor.move(WEST,36); sys.wait(.15); $hologram3_1_anchor.move(DOWN,36); sys.wait(.15); $hologram3_1.hide(); $hologram3_1.setKey ("state", "0"); } else { $hologram3_1.show(); $hologram3_1.setKey ("state", "1"); $hologram3_1.setShaderParm(7,0); $hologram3_1.setColor (1, .1, 0); //make little line red thread crossFadeEnt( $hologram, $hologram.getColor(), '.1 .2 .2', .5); //make the base hologram darken a little. thread interpolateShaderParm( $hologram, 5, 1, .35, .5 ); //make the base hologram's matrix effect go darker. thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram3, $hologram3.getColor(), '1 .1 0', .5); //make selected room go red. thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.15 .175 .22', .5); //make unselected room darken. $hologram3_1.startSoundShader ("hologram_spawn", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram3_1, 3, 0, 100, .1 ); //RGB in red boxes thread interpolateShaderParm( $hologram3_1, 4, 10, 1, 1 ); //scale up the sides of red boxes thread interpolateShaderParm( $hologram3_1, 5, 10, 1, 1 ); //scale up round plane sys.wait (.7); thread interpolateShaderParm( $hologram3_1, 6, 1, 0, 2 ); //RGB out round spinny plane thread interpolateShaderParm( $hologram3_1, 3, 1, 0, 1 ); //RGB out red boxes sys.wait(1); $hologram3_1_anchor.time(1); $hologram3_1_anchor.accelTime(.4); $hologram3_1_anchor.decelTime(.4); $hologram3_1_anchor.move(UP,36); $hologram3_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram3_1_anchor.move(EAST,36); $hologram3_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram3_1_anchor.move(SOUTH,108); $hologram3_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE2 ); thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.5 .05 0', .5); thread interpolateShaderParm( $hologram3_1, 7, 0, 1, 1 ); //RGB in the red sprite round plate $hologram3_1.startSoundShader ("hologram_loop", SND_CHANNEL_VOICE ); $hologram3_1_anchor.rotateOnce ( '0 0 30'); } } void hologram4_1 () //this is the animation that gets played when player clicks on Control Center { if ($hologram4_1.getFloatKey ("state")==1){ $hologram4_1.startSoundShader ("hologram_spawnout", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram4_1, 7, 1, 0, .2 ); //fade out round spinny plane thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.15 .175 .22', 1); //make the unselected room go back to default colors $hologram4_1_anchor.time(.15); $hologram4_1_anchor.rotateOnce ( '0 0 -30'); $hologram4_1_anchor.move(NORTH,200); sys.wait(.15); $hologram4_1_anchor.move(WEST,40); sys.wait(.15); $hologram4_1_anchor.move(DOWN,40); sys.wait(.15); $hologram4_1.hide(); $hologram4_1.setKey ("state", "0"); } else { $hologram4_1.show(); $hologram4_1.setKey ("state", "1"); $hologram4_1.setShaderParm(7,0); $hologram4_1.setColor (1, .1, 0); //make little line red thread crossFadeEnt( $hologram, $hologram.getColor(), '.1 .2 .2', .5); //make the base hologram darken a little. thread interpolateShaderParm( $hologram, 5, 1, .35, .5 ); //make the base hologram's matrix effect go darker. thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram4, $hologram4.getColor(), '1 .1 0', .5); //make selected room go red. thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.15 .175 .22', .5); //make unselected room darken. $hologram4_1.startSoundShader ("hologram_spawn", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram4_1, 3, 0, 100, .1 ); //RGB in red boxes thread interpolateShaderParm( $hologram4_1, 4, 10, 1, 1 ); //scale up the sides of red boxes thread interpolateShaderParm( $hologram4_1, 5, 10, 1, 1 ); //scale up round plane sys.wait (.7); thread interpolateShaderParm( $hologram4_1, 6, 1, 0, 2 ); //RGB out round spinny plane thread interpolateShaderParm( $hologram4_1, 3, 1, 0, 1 ); //RGB out red boxes sys.wait(1); $hologram4_1_anchor.time(1); $hologram4_1_anchor.accelTime(.4); $hologram4_1_anchor.decelTime(.4); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); $hologram4_1_anchor.move(UP,40); sys.wait(1); $hologram4_1_anchor.move(EAST,40); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE2 ); $hologram4_1_anchor.move(SOUTH,200); thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.5 .05 0', .5); thread interpolateShaderParm( $hologram4_1, 7, 0, 1, 1 ); //RGB in the red sprite round plate $hologram4_1.startSoundShader ("hologram_loop", SND_CHANNEL_VOICE ); $hologram4_1_anchor.rotateOnce ( '0 0 30'); } } void hologram5_1 () //this is the animation that gets played when player clicks on Control Center { if ($hologram5_1.getFloatKey ("state")==1){ $hologram5_1.startSoundShader ("hologram_spawnout", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram5_1, 7, 1, 0, .2 ); //fade out round spinny plane thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.15 .175 .22', 1); //make the unselected room go back to default colors $hologram5_1_anchor.time(.15); $hologram5_1_anchor.rotateOnce ( '0 0 -30'); $hologram5_1_anchor.move(NORTH,96); sys.wait(.15); $hologram5_1_anchor.move(EAST,88); sys.wait(.15); $hologram5_1_anchor.move(DOWN,36); sys.wait(.15); $hologram5_1.hide(); $hologram5_1.setKey ("state", "0"); } else { $hologram5_1.show(); $hologram5_1.setKey ("state", "1"); $hologram5_1.setShaderParm(7,0); $hologram5_1.setColor (1, .1, 0); //make little line red thread crossFadeEnt( $hologram, $hologram.getColor(), '.1 .2 .2', .5); //make the base hologram darken a little. thread interpolateShaderParm( $hologram, 5, 1, .35, .5 ); //make the base hologram's matrix effect go darker. thread crossFadeEnt( $hologram1, $hologram1.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram2, $hologram2.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram3, $hologram3.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram4, $hologram4.getColor(), '.15 .175 .22', .5); //make unselected room darken. thread crossFadeEnt( $hologram5, $hologram5.getColor(), '1 .1 0', .5); //make selected room go red. $hologram5_1.startSoundShader ("hologram_spawn", SND_CHANNEL_VOICE ); thread interpolateShaderParm( $hologram5_1, 3, 0, 100, .1 ); //RGB in red boxes thread interpolateShaderParm( $hologram5_1, 4, 10, 1, 1 ); //scale up the sides of red boxes thread interpolateShaderParm( $hologram5_1, 5, 10, 1, 1 ); //scale up round plane sys.wait (.7); thread interpolateShaderParm( $hologram5_1, 6, 1, 0, 2 ); //RGB out round spinny plane thread interpolateShaderParm( $hologram5_1, 3, 1, 0, 1 ); //RGB out red boxes sys.wait(1); $hologram5_1_anchor.time(1); $hologram5_1_anchor.accelTime(.4); $hologram5_1_anchor.decelTime(.4); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); $hologram5_1_anchor.move(UP,36); sys.wait(1); $hologram5_1_anchor.move(WEST,88); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE ); sys.wait(1); $hologram5_1_anchor.move(SOUTH,96); $hologram4_1.startSoundShader ("hologram_movement", SND_CHANNEL_VOICE2 ); thread crossFadeEnt( $hologram5, $hologram5.getColor(), '.5 .05 0', .5); thread interpolateShaderParm( $hologram5_1, 7, 0, 1, 1 ); //RGB in the red sprite round plate $hologram5_1.startSoundShader ("hologram_loop", SND_CHANNEL_VOICE ); $hologram5_1_anchor.rotateOnce ( '0 0 30'); } } void hologram_turnon ()//this is what's called when the hologram projector's turned on, and brings all the rooms in. { thread hologram_start (); sys.wait(1.5); thread hologram1_start (); sys.wait(.5); thread hologram2_start (); sys.wait(.5); thread hologram3_start (); thread hologram4_start (); thread hologram5_start (); } void hologram_selection_1() { if ($hologram1_1.getFloatKey ("state")==1){ thread hologram1_1(); } if ($hologram2_1.getFloatKey ("state")==1){ thread hologram2_1(); } if ($hologram3_1.getFloatKey ("state")==1){ thread hologram3_1(); } if ($hologram4_1.getFloatKey ("state")==1){ thread hologram4_1(); } if ($hologram5_1.getFloatKey ("state")==1){ thread hologram5_1(); } { thread hologram1_1(); } } void hologram_selection_2() { if ($hologram1_1.getFloatKey ("state")==1){ thread hologram1_1(); } if ($hologram2_1.getFloatKey ("state")==1){ thread hologram2_1(); } if ($hologram3_1.getFloatKey ("state")==1){ thread hologram3_1(); } if ($hologram4_1.getFloatKey ("state")==1){ thread hologram4_1(); } if ($hologram5_1.getFloatKey ("state")==1){ thread hologram5_1(); } { thread hologram2_1(); } } void hologram_selection_3() { if ($hologram1_1.getFloatKey ("state")==1){ thread hologram1_1(); } if ($hologram2_1.getFloatKey ("state")==1){ thread hologram2_1(); } if ($hologram3_1.getFloatKey ("state")==1){ thread hologram3_1(); } if ($hologram4_1.getFloatKey ("state")==1){ thread hologram4_1(); } if ($hologram5_1.getFloatKey ("state")==1){ thread hologram5_1(); } { thread hologram3_1(); } } void hologram_selection_4() { if ($hologram1_1.getFloatKey ("state")==1){ thread hologram1_1(); } if ($hologram2_1.getFloatKey ("state")==1){ thread hologram2_1(); } if ($hologram3_1.getFloatKey ("state")==1){ thread hologram3_1(); } if ($hologram4_1.getFloatKey ("state")==1){ thread hologram4_1(); } if ($hologram5_1.getFloatKey ("state")==1){ thread hologram5_1(); } { thread hologram4_1(); } } void hologram_selection_5() { if ($hologram1_1.getFloatKey ("state")==1){ thread hologram1_1(); } if ($hologram2_1.getFloatKey ("state")==1){ thread hologram2_1(); } if ($hologram3_1.getFloatKey ("state")==1){ thread hologram3_1(); } if ($hologram4_1.getFloatKey ("state")==1){ thread hologram4_1(); } if ($hologram5_1.getFloatKey ("state")==1){ thread hologram5_1(); } { thread hologram5_1(); } } //////////////////////////////////////////////////// // // break the platform leading to the reactor // //////////////////////////////////////////////////// void rplatform_break() { //first move down $rplatform.time ( 2.5 ); $rplatform.accelTime ( .5 ); $rplatform.decelTime ( 0 ); sys.trigger ($lspeaker_1); $rplatform.move ( DOWN, 126 ); sys.waitFor ($rplatform); //bounce a bit or something sys.trigger ($broke_spark); $al3_platform_break.time ( .2 ); $al3_platform_break.accelTime ( .2 ); $al3_platform_break.decelTime ( 0 ); $al3_platform_break.move ( UP, 6 ); sys.waitFor ($rplatform); $rplatform.time ( .2 ); $rplatform.accelTime ( 0 ); $rplatform.decelTime ( .2 ); $rplatform.move ( DOWN, 8 ); //rotate a about 24 degrees $rplatform.time ( .5 ); $rplatform.accelTime ( .5 ); $rplatform.decelTime ( 0 ); $rplatform.rotateOnce ( '5 5 24' ); sys.trigger ($broke_spark); sys.waitFor ($rplatform); $rplatform.time ( .1 ); $rplatform.accelTime ( .1 ); $rplatform.decelTime ( 0 ); $rplatform.rotateOnce ( '1 0 0' ); sys.trigger ($broke_spark); sys.waitFor ($rplatform); $rplatform.rotateOnce ( '-1 0 0' ); } //////////////////////////////////////////////////// // // Corpse Move - quick move of deadbody // //////////////////////////////////////////////////// void corpse_move() { spooky_sound_3(); $corpse_mover2.time (.4); $corpse_mover2.accelTime (0); $corpse_mover2.decelTime (0); $corpse_mover2.moveTo ( $corpse_mover2_movepoint ); $corpse_mover2.rotateOnce ( '0 45 0' ); sys.waitFor ($corpse_mover2); $corpse2.unbind(); sys.trigger ( $breakglass ); sys.trigger ( $func_fracture_2 ); sys.wait (.5); sys.trigger ( $speaker_glassbreak ); sys.wait (2); sys.trigger ( $speaker_tilefall2 ); sys.trigger ($spooky_tilefall2); } //////////////////////////////////////////////////// // // spectrum hallway // //////////////////////////////////////////////////// void spectrum_move() { sys.trigger ( $spectrum_speaker1 ); $spectrumlight_mover.time( 3 ); $spectrumlight_mover.accelTime( 0 ); $spectrumlight_mover.decelTime( 0 ); $spectrumlight_mover.startSpline( $spectrum_spline ); sys.waitFor($spectrumlight_mover); //sys.wait(3); //$spectrumlight_mover.removeInitialSplineAngles(); $spectrumlight_mover.remove(); sys.trigger ( $spectrum_speaker1 ); $spectrum_speaker1.remove(); $speclight1.remove(); $speclight2.remove(); } //////////////////////////////////////////////////// // // bang tile moves // // moves the two tiles when the big bang happens // in the crawlspace before datalinker // //////////////////////////////////////////////////// void bang_tiles() { //set moves times for the two tiles $bang_tile1.time (.5); $bang_tile1.accelTime (.5); $bang_tile1.decelTime (0); $bang_tile2.time (.5); $bang_tile2.accelTime (.5); $bang_tile2.decelTime (0); $bang_tile1.rotateOnce ( '1 0 -2' ); $bang_tile2.rotateOnce ( '2 0 3' ); } //////////////////////////////////////////////////// // // Corpse pullunder // //////////////////////////////////////////////////// void corpse_pullunder() { $corpse_mover3.time (1.25); $corpse_mover3.accelTime (.5); $corpse_mover3.decelTime (0); $corpse_mover3.moveTo ( $corpse_mover3_movepoint ); sys.waitFor ($corpse_mover3); $corpse3.unbind(); $corpse_mover3.remove (); $corpse3.remove (); } void fade_clop_sound () { $clop_speaker.fadeSound ( SND_CHANNEL_ANY, -60, 30 ); } void cache_sounds() { sys.cacheSoundShader ("hologram_datalinker"); sys.cacheSoundShader ("hologram_spawnout"); sys.cacheSoundShader ("hologram_spawn"); sys.cacheSoundShader ("hologram_movement"); sys.cacheSoundShader ("hologram_loop"); } //////////////////////////////////////////////////// // // Main // //////////////////////////////////////////////////// void main() { thread cache_sounds(); init_world(); power_level_0(); } }