Files
DoomRTX/base/maps/game/mp/d3dm5.script
T
2026-05-22 23:51:43 -07:00

1038 lines
24 KiB
Plaintext

// =================================================
// Map: D3DM5 ( Lights Out )
// =================================================
//--------------------------------------------------
// Script definitions and global variables
//--------------------------------------------------
// Window status: 1:Closed, 2:Open, 3:Opening, 4:Closing
float windstatus1, windstatus2;
float powerupExists = 0;
//--------------------------------------------------
// Sound Functions
//--------------------------------------------------
// berserk powerup
void sound_powerup_berserk()
{
if( powerupExists == 1 ) {
$mrdr_speaker_berserk.startSoundShader ( "snd_berserkSpawn", SND_CHANNEL_ANY );
}
else if( powerupExists == 0 ) {
$mrdr_speaker_berserk.stopSound( SND_CHANNEL_ANY, true );
}
}
// functions for generator sounds
void sound_generator_startup()
{
$mrdr_speaker_gen.startSound( "snd_genOn", SND_CHANNEL_ANY, true );
}
void sound_generator_shutdown()
{
$mrdr_speaker_gen.stopSound( SND_CHANNEL_ANY, true );
$mrdr_speaker_gen.startSound( "snd_genOff", SND_CHANNEL_ANY, true );
}
// start wind sounds
void sound_wind_init()
{
$mrdr_speaker_51.startSound( "snd_wind", SND_CHANNEL_ANY, true );
$mrdr_speaker_52.startSound( "snd_wind", SND_CHANNEL_ANY, true );
}
//--------------------------------------------------
// Berserk Trigger
//--------------------------------------------------
void powerup_berserk_remove()
{
powerupExists = 0;
thread sound_powerup_berserk();
}
void powerup_berserk_spawn()
{
powerupExists = 1;
thread sound_powerup_berserk();
$powerup_invisibility_1.respawn();
}
//--------------------------------------------------
// Setup of the Window Shutters
//--------------------------------------------------
void windshutter_setup(float wind_no, float wind_seg)
{
string windvar;
entity windent;
windvar = "windshutter"+wind_no+"_"+wind_seg;
windent = sys.getEntity( windvar );
windent.accelTime(2);
windent.decelTime(2);
windent.time(3);
}
//--------------------------------------------------
void windshutter1_thread()
{
$windshutter1_gui.setGuiParm( "networkState" , windstatus1);
// ********* OPENING **********
if(windstatus1 == 3) {
// Fade light up
$wils_light_120.fadeInLight(1.5);
$wils_light_106.fadeInLight(2);
$wils_light_23.fadeInLight(2.5);
$wils_light_67.fadeInLight(2);
$wils_light_86.fadeInLight(2);
// Going up
$mrdr_speaker_51.startSound( "snd_wind", SND_CHANNEL_ANY, true );
sys.trigger( $mrdr_speaker_shutter11 );
$windshutter1_1.rotateOnce( '180 0 0' );
sys.wait(0.5);
sys.trigger( $mrdr_speaker_shutter12 );
$windshutter1_2.rotateOnce( '180 0 0' );
sys.waitFor($windshutter1_2);
windstatus1 = 2; // Open
$windshutter1_gui.setGuiParm( "networkState" , windstatus1);
}
// ********* CLOSING **********
else if(windstatus1 == 4) {
// Fade light
$wils_light_120.fadeOutLight(3.25);
$wils_light_106.fadeOutLight(3);
$wils_light_23.fadeOutLight(2.75);
$wils_light_67.fadeOutLight(3);
$wils_light_86.fadeOutLight(3);
// Going down
sys.trigger( $mrdr_speaker_shutter11 );
$windshutter1_1.rotateOnce( '-180 0 0' );
sys.wait(0.25);
sys.trigger( $mrdr_speaker_shutter12 );
$windshutter1_2.rotateOnce( '-180 0 0' );
sys.waitFor($windshutter1_2);
windstatus1 = 1; // Closed
$windshutter1_gui.setGuiParm( "networkState" , windstatus1);
$mrdr_speaker_51.stopSound( SND_CHANNEL_ANY, true );
}
}
void windshutter1_open()
{
if(windstatus1 == 1) {
windstatus1 = 3;
windshutter1_thread();
}
}
void windshutter1_close()
{
if(windstatus1 == 2) {
windstatus1 = 4;
windshutter1_thread();
}
}
//--------------------------------------------------
void windshutter2_thread()
{
$windshutter2_gui.setGuiParm( "networkState" , windstatus2);
// ********* OPENING **********
if(windstatus2 == 3) {
// Fade light
$wils_light_320.fadeInLight(2);
// Going up
$mrdr_speaker_52.startSound( "snd_wind", SND_CHANNEL_ANY, true );
sys.trigger( $mrdr_speaker_shutter21 );
$windshutter2_1.rotateOnce( '180 0 0' );
sys.wait(0.5);
sys.trigger( $mrdr_speaker_shutter22 );
$windshutter2_2.rotateOnce( '180 0 0' );
sys.waitFor($windshutter2_2);
windstatus2 = 2; // Open
$windshutter2_gui.setGuiParm( "networkState" , windstatus2);
}
// ********* CLOSING **********
else if(windstatus2 == 4) {
// Fade light
$wils_light_320.fadeOutLight(3);
// Going down
sys.trigger( $mrdr_speaker_shutter21 );
$windshutter2_1.rotateOnce( '-180 0 0' );
sys.wait(0.25);
sys.trigger( $mrdr_speaker_shutter22 );
$windshutter2_2.rotateOnce( '-180 0 0' );
sys.waitFor($windshutter2_2);
windstatus2 = 1; // Closed
$windshutter2_gui.setGuiParm( "networkState" , windstatus2);
$mrdr_speaker_52.stopSound( SND_CHANNEL_ANY, true );
}
}
void windshutter2_open()
{
if(windstatus2 == 1) {
windstatus2 = 3;
windshutter2_thread();
}
}
void windshutter2_close()
{
if(windstatus2 == 2) {
windstatus2 = 4;
windshutter2_thread();
}
}
//--------------------------------------------------
// Motion sensor lights
//--------------------------------------------------
void triggerfield_initfunc( entity ent );
void triggerfield_checkfunc( entity ent );
void triggerfield_callfunc( entity ent );
void triggerfield_activateLight( entity ent );
void triggerfield_deactivateLight( entity ent );
void triggerfield_activateLight( entity ent ) {
string lightstr;
entity light;
float ison;
lightstr = ent.getKey( "wrelay_on" );
ison = ent.getIntKey( "ison" );
light = sys.getEntity( lightstr );
if( ison == 0){
sys.trigger( light );
ent.setKey( "ison", "1" );
}
}
void triggerfield_deactivateLight( entity ent ) {
string lightstr;
entity light;
float ison;
lightstr = ent.getKey( "wrelay_off" );
ison = ent.getIntKey( "ison" );
light = sys.getEntity( lightstr );
if( ison == 1){
sys.trigger( light );
ent.setKey( "ison", "0" );
}
}
void triggerfield_initfunc( entity ent ) {
ent.setKey( "ison", "0" );
ent.setKey( "isenabled", "1" );
}
void triggerfield_enable( entity ent ) {
ent.setKey( "isenabled", "1" );
}
void triggerfield_disable( entity ent ){
ent.setKey( "isenabled", "0" );
triggerfield_deactivateLight( ent );
}
void triggerfield_checkfunc( entity ent ) {
float ison;
ison = ent.getIntKey( "ison" );
if( ison == 1 ) {
float lasttouched, totaltime;
lasttouched = ent.getFloatKey( "lasttouched" );
totaltime = sys.getTime() - lasttouched;
if( totaltime > 10) {
triggerfield_deactivateLight( ent );
}
}
}
void triggerfield_callfunc( entity ent ) {
float isenabled;
isenabled = ent.getIntKey( "isenabled" );
if( isenabled == 1 ) {
float ison;
ent.setKey( "lasttouched", sys.getTime() );
ison = ent.getIntKey( "ison" );
if( ison == 0 ) {
triggerfield_activateLight( ent );
}
}
}
void wils_triggerfield1_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_1 );
}
void wils_triggerfield2_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_2 );
}
void wils_triggerfield3_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_3 );
}
void wils_triggerfield4_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_4 );
}
void wils_triggerfield5_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_5 );
}
void wils_triggerfield6_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_6 );
}
void wils_triggerfield7_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_20 );
}
void wils_triggerfield8_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_21 );
}
void wils_triggerfield9_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_22 );
}
void wils_triggerfield10_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_24 );
}
void wils_triggerfield11_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_25 );
}
void wils_triggerfield12_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_26 );
}
void wils_triggerfield13_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_27 );
}
void wils_triggerfield14_callfunc() {
triggerfield_callfunc( $wils_trigger_multiple_28 );
}
void nkd_triggerfield01_callfunc() {
triggerfield_callfunc( $nkd_trigger_multiple_1 );
}
void triggerfield_thread() {
// middle corridor(split level room to stairwell)
triggerfield_initfunc( $wils_trigger_multiple_1 );
triggerfield_initfunc( $wils_trigger_multiple_2 );
triggerfield_initfunc( $wils_trigger_multiple_3 );
triggerfield_initfunc( $wils_trigger_multiple_4 );
triggerfield_initfunc( $wils_trigger_multiple_5 );
// upper corridors(kitchen to fan room)
triggerfield_initfunc( $wils_trigger_multiple_20 );
triggerfield_initfunc( $wils_trigger_multiple_21 );
triggerfield_initfunc( $wils_trigger_multiple_22 );
triggerfield_initfunc( $wils_trigger_multiple_24 );
triggerfield_initfunc( $wils_trigger_multiple_25 );
triggerfield_initfunc( $wils_trigger_multiple_26 );
triggerfield_initfunc( $wils_trigger_multiple_27 );
triggerfield_initfunc( $wils_trigger_multiple_28 );
triggerfield_initfunc( $nkd_trigger_multiple_1 );
while( 1 ) {
// middle corridor
triggerfield_checkfunc( $wils_trigger_multiple_1 );
triggerfield_checkfunc( $wils_trigger_multiple_2 );
triggerfield_checkfunc( $wils_trigger_multiple_3 );
triggerfield_checkfunc( $wils_trigger_multiple_4 );
triggerfield_checkfunc( $wils_trigger_multiple_5 );
// upper corridors
triggerfield_checkfunc( $wils_trigger_multiple_20 );
triggerfield_checkfunc( $wils_trigger_multiple_21 );
triggerfield_checkfunc( $wils_trigger_multiple_22 );
triggerfield_checkfunc( $wils_trigger_multiple_24 );
triggerfield_checkfunc( $wils_trigger_multiple_25 );
triggerfield_checkfunc( $wils_trigger_multiple_26 );
triggerfield_checkfunc( $wils_trigger_multiple_27 );
triggerfield_checkfunc( $wils_trigger_multiple_28 );
triggerfield_checkfunc( $nkd_trigger_multiple_1 );
sys.wait( 1 );
}
}
//--------------------------------------------------
// Generator stuff
//--------------------------------------------------
// Set of thingys to turn lights OFF
void lightsoff_generator_room()
{
$wils_light_333.Off();
$nkd_light_673.Off();
$wils_light_259.Off();
$wils_light_87.Off();
$wils_light_241.Off();
$wils_light_242.Off();
$wils_func_static_136.hide();
$wils_func_static_137.show();
$wils_func_static_138.hide();
$wils_func_static_139.show();
$wils_func_static_141.hide();
$wils_func_static_142.show();
$wils_func_static_143.hide();
$wils_func_static_144.show();
$wils_func_static_145.hide();
$wils_func_static_146.show();
$func_static_2623.hide();
$wils_func_static_147.hide();
$wils_func_static_148.show();
}
void lightsoff_kitchen()
{
$wils_light_24.Off();
$wils_light_244.Off();
$wils_func_static_186.hide();
$wils_func_static_187.show();
}
void lightsoff_stairwell()
{
$wils_light_154.Off();
$qfraggel_light_1.Off();
$wils_light_32.Off();
$wils_light_307.Off();
$wils_light_308.Off();
$wils_light_36.Off();
$wils_light_130.Off();
$wils_light_88.Off();
$wils_func_static_4.hide();
$wils_func_static_149.show();
$wils_func_static_150.hide();
$qfraggel_func_static_1.hide();
$wils_func_static_151.show();
$wils_func_static_250.show();
$llm_func_static_12.hide();
$llm_func_static_13.hide();
$llm_func_static_11.show();
$llm_func_static_14.show();
$wils_func_static_39.hide();
$wils_func_static_40.hide();
$nkd_func_static_6.hide();
$nkd_func_static_5.show();
}
void lightsoff_middle_corridor()
{
triggerfield_disable( $wils_trigger_multiple_1 );
triggerfield_disable( $wils_trigger_multiple_2 );
triggerfield_disable( $wils_trigger_multiple_3 );
triggerfield_disable( $wils_trigger_multiple_4 );
triggerfield_disable( $wils_trigger_multiple_5 );
$wils_func_static_210.hide();
$wils_func_static_211.show();
$nkd_func_static_7.hide();
$nkd_func_static_8.show();
$nkd_func_static_32.hide();
$nkd_func_static_33.show();
$wils_func_static_216.hide();
$wils_func_static_217.show();
}
void lightsoff_upper_corridor()
{
triggerfield_disable( $wils_trigger_multiple_20 );
triggerfield_disable( $wils_trigger_multiple_21 );
triggerfield_disable( $wils_trigger_multiple_22 );
triggerfield_disable( $wils_trigger_multiple_24 );
triggerfield_disable( $wils_trigger_multiple_25 );
triggerfield_disable( $wils_trigger_multiple_26 );
triggerfield_disable( $wils_trigger_multiple_27 );
triggerfield_disable( $wils_trigger_multiple_28 );
$nkd_func_static_22.hide();
$nkd_func_static_20.show();
$nkd_func_static_21.hide();
$nkd_func_static_19.show();
$nkd_func_static_26.hide();
$nkd_func_static_27.show();
$wils_func_static_202.hide();
$wils_func_static_203.show();
$wils_func_static_212.hide();
$wils_func_static_213.show();
$wils_func_static_214.hide();
$wils_func_static_215.show();
$nkd_func_static_39.hide();
$nkd_func_static_40.show();
$nkd_light_563.Off();
$nkd_light_564.On();
$wils_light_353.On();
}
void lightsoff_cubicles_corridor()
{
$wils_light_42.Off();
$wils_light_124.Off();
$wils_light_133.Off();
$wils_light_143.Off();
$wils_light_315.Off();
$wils_light_184.Off();
$wils_light_187.Off();
$wils_light_144.Off();
$wils_light_145.Off();
$wils_light_310.Off();
$wils_light_175.Off();
$wils_light_180.Off();
$nkd_light_534.Off();
$wils_light_181.Off();
$wils_light_316.Off();
$wils_func_static_154.hide();
$wils_func_static_155.show();
$wils_func_static_156.hide();
$wils_func_static_157.show();
$wils_func_static_208.hide();
$wils_func_static_209.show();
}
void lightsoff_split_room()
{
$wils_light_348.Off();
$wils_light_349.Off();
$tim_light_3468.Off();
$wils_light_317.Off();
$tim_light_3472.Off();
$tim_light_3281.Off();
$wils_light_218.Off();
$wils_light_219.Off();
$wils_light_166.Off();
$wils_light_167.Off();
$wils_light_168.Off();
$wils_light_169.Off();
$wils_light_350.On();
$wils_light_351.On();
$nkd_func_static_14.hide();
$nkd_func_static_16.show();
$wils_func_static_202.hide();
$wils_func_static_203.show();
$wils_func_static_206.hide();
$wils_func_static_207.show();
$nkd_func_static_30.hide();
$nkd_func_static_31.show();
}
void lightsoff_fan_room()
{
$light_1.Off();
$light_2.Off();
$light_3.Off();
$wils_light_209.Off();
$wils_light_210.Off();
$wils_light_211.Off();
$wils_light_190.Off();
$wils_light_192.Off();
$wils_light_193.Off();
$wils_light_194.Off();
$wils_light_305.Off();
$wils_light_220.Off();
$wils_light_221.Off();
$wils_light_201.Off();
$nkd_func_static_22.hide();
$nkd_func_static_20.show();
$wils_func_static_75.hide();
$wils_func_static_76.hide();
$wils_func_static_77.hide();
$wils_func_static_78.hide();
$wils_func_static_180.hide();
$wils_func_static_181.show();
$wils_func_static_184.hide();
$wils_func_static_185.show();
}
void lightsoff_swinglight_room()
{
$tim_light_3636.Off();
$tim_light_3399.Off();
$nkd_light_612.Off();
$nkd_light_613.Off();
$nkd_light_614.Off();
$nkd_light_615.Off();
$nkd_light_646.Off();
$nkd_light_647.Off();
$wils_light_326.Off();
$wils_light_321.Off();
$tim_light_3406.Off();
$tim_light_3407.Off();
$wils_light_319.Off();
$wils_light_109.Off();
$tim_light_3408.Off();
$tim_light_3394.Off();
$tim_light_3395.Off();
$tim_light_3396.Off();
$wils_func_static_160.hide();
$wils_func_static_161.show();
$wils_func_static_162.hide();
$wils_func_static_163.show();
$wils_func_static_164.hide();
$wils_func_static_165.show();
$wils_func_static_168.hide();
$wils_func_static_169.show();
$wils_func_static_172.hide();
$wils_func_static_173.show();
$wils_func_static_174.hide();
$wils_func_static_175.show();
$wils_func_static_112.hide();
}
void lightsoff_button_passage()
{
$wils_light_102.Off();
$wils_light_103.Off();
$wils_light_104.Off();
$nkd_func_static_15.hide();
$nkd_func_static_17.show();
$wils_func_static_178.hide();
$wils_func_static_179.show();
}
// Set of thingys to turn lights ON
void lightson_generator_room()
{
$wils_light_333.On();
$nkd_light_673.On();
$wils_light_259.On();
$wils_light_87.On();
$wils_light_241.On();
$wils_light_242.On();
$wils_func_static_136.show();
$wils_func_static_137.hide();
$wils_func_static_138.show();
$wils_func_static_139.hide();
$wils_func_static_141.show();
$wils_func_static_142.hide();
$wils_func_static_143.show();
$wils_func_static_144.hide();
$wils_func_static_145.show();
$wils_func_static_146.hide();
$func_static_2623.show();
$wils_func_static_147.show();
$wils_func_static_148.hide();
}
void lightson_kitchen()
{
$wils_light_24.On();
$wils_light_244.On();
$wils_func_static_186.show();
$wils_func_static_187.hide();
}
void lightson_stairwell()
{
$wils_light_154.On();
$qfraggel_light_1.On();
$wils_light_32.On();
$wils_light_307.On();
$wils_light_308.On();
$wils_light_36.On();
$wils_light_130.On();
$wils_light_88.On();
$wils_func_static_4.show();
$wils_func_static_149.hide();
$wils_func_static_150.show();
$qfraggel_func_static_1.show();
$llm_func_static_12.show();
$llm_func_static_13.show();
$wils_func_static_151.hide();
$wils_func_static_250.hide();
$llm_func_static_11.hide();
$llm_func_static_14.hide();
$wils_func_static_39.show();
$wils_func_static_40.show();
$nkd_func_static_6.show();
$nkd_func_static_5.hide();
}
void lightson_middle_corridor()
{
triggerfield_enable( $wils_trigger_multiple_1 );
triggerfield_enable( $wils_trigger_multiple_2 );
triggerfield_enable( $wils_trigger_multiple_3 );
triggerfield_enable( $wils_trigger_multiple_4 );
triggerfield_enable( $wils_trigger_multiple_5 );
$wils_func_static_210.show();
$wils_func_static_211.hide();
$nkd_func_static_7.show();
$nkd_func_static_8.hide();
$nkd_func_static_32.show();
$nkd_func_static_33.hide();
$wils_func_static_216.show();
$wils_func_static_217.hide();
}
void lightson_upper_corridor()
{
triggerfield_enable( $wils_trigger_multiple_20 );
triggerfield_enable( $wils_trigger_multiple_21 );
triggerfield_enable( $wils_trigger_multiple_22 );
triggerfield_enable( $wils_trigger_multiple_24 );
triggerfield_enable( $wils_trigger_multiple_25 );
triggerfield_enable( $wils_trigger_multiple_26 );
triggerfield_enable( $wils_trigger_multiple_27 );
triggerfield_enable( $wils_trigger_multiple_28 );
$nkd_func_static_22.show();
$nkd_func_static_20.hide();
$nkd_func_static_21.show();
$nkd_func_static_19.hide();
$nkd_func_static_26.show();
$nkd_func_static_27.hide();
$wils_func_static_202.show();
$wils_func_static_203.hide();
$wils_func_static_212.show();
$wils_func_static_213.hide();
$wils_func_static_214.show();
$wils_func_static_215.hide();
$nkd_func_static_39.show();
$nkd_func_static_40.hide();
$nkd_light_563.On();
$nkd_light_564.Off();
$wils_light_353.Off();
}
void lightson_cubicles_corridor()
{
$wils_light_42.On();
$wils_light_124.On();
$wils_light_133.On();
$wils_light_143.On();
$wils_light_315.On();
$wils_light_184.On();
$wils_light_187.On();
$wils_light_144.On();
$wils_light_145.On();
$wils_light_310.On();
$wils_light_175.On();
$wils_light_180.On();
$nkd_light_534.On();
$wils_light_181.On();
$wils_light_316.On();
$wils_func_static_154.show();
$wils_func_static_155.hide();
$wils_func_static_156.show();
$wils_func_static_157.hide();
$wils_func_static_208.show();
$wils_func_static_209.hide();
}
void lightson_split_room()
{
$wils_light_348.On();
$wils_light_349.On();
$tim_light_3468.On();
$wils_light_317.On();
$tim_light_3472.On();
$tim_light_3281.On();
$wils_light_218.On();
$wils_light_219.On();
$wils_light_166.On();
$wils_light_167.On();
$wils_light_168.On();
$wils_light_169.On();
$wils_light_350.Off();
$wils_light_351.Off();
$nkd_func_static_14.show();
$nkd_func_static_16.hide();
$wils_func_static_202.show();
$wils_func_static_203.hide();
$wils_func_static_206.show();
$wils_func_static_207.hide();
$nkd_func_static_30.show();
$nkd_func_static_31.show();
}
void lightson_fan_room()
{
$light_1.On();
$light_2.On();
$light_3.On();
$wils_light_209.On();
$wils_light_210.On();
$wils_light_211.On();
$wils_light_190.On();
$wils_light_192.On();
$wils_light_193.On();
$wils_light_194.On();
$wils_light_305.On();
$wils_light_220.On();
$wils_light_221.On();
$wils_light_201.On();
$nkd_func_static_22.show();
$nkd_func_static_20.hide();
$wils_func_static_75.show();
$wils_func_static_76.show();
$wils_func_static_77.show();
$wils_func_static_78.show();
$wils_func_static_180.show();
$wils_func_static_181.hide();
$wils_func_static_184.show();
$wils_func_static_185.hide();
}
void lightson_swinglight_room()
{
$tim_light_3636.On();
$tim_light_3399.On();
$nkd_light_612.On();
$nkd_light_613.On();
$nkd_light_614.On();
$nkd_light_615.On();
$nkd_light_646.On();
$nkd_light_647.On();
$wils_light_326.On();
$wils_light_321.On();
$tim_light_3406.On();
$tim_light_3407.On();
$wils_light_319.On();
$wils_light_109.On();
$tim_light_3408.On();
$tim_light_3394.On();
$tim_light_3395.On();
$tim_light_3396.On();
$wils_func_static_160.show();
$wils_func_static_161.hide();
$wils_func_static_162.show();
$wils_func_static_163.hide();
$wils_func_static_164.show();
$wils_func_static_165.hide();
$wils_func_static_168.show();
$wils_func_static_169.hide();
$wils_func_static_172.show();
$wils_func_static_173.hide();
$wils_func_static_174.show();
$wils_func_static_175.hide();
$wils_func_static_112.show();
}
void lightson_button_passage()
{
$wils_light_102.On();
$wils_light_103.On();
$wils_light_104.On();
$nkd_func_static_15.show();
$nkd_func_static_17.hide();
$wils_func_static_178.show();
$wils_func_static_179.hide();
}
// Generator and controls
void generator_setup()
{
$mrdr_speaker_gen.startSound( "snd_genOn", SND_CHANNEL_ANY, true );
$generator_barrel.rotate( '0 0 120' );
}
void generator_restart()
{
// trigger sounds
thread sound_generator_shutdown();
// Stop generator
$generator_barrel.accelTime( 0 );
$generator_barrel.decelTime( 6 );
$generator_barrel.time( 7 ); // note: guis/multiplayer/generator.gui is synced to this even in -- windowDef TriggerButtonOff -- onTime 7000
$generator_barrel.rotate( '0 0 120' );
sys.waitFor( $generator_barrel );
// trigger berserk
thread powerup_berserk_spawn();
// Turn lights OFF
sys.trigger( $nkd_speaker_7 ); // global sound
sys.trigger( $mrdr_speaker_22 );
lightsoff_generator_room();
sys.trigger( $mrdr_speaker_23 );
sys.trigger( $mrdr_speaker_24 );
sys.trigger( $mrdr_speaker_25 );
lightsoff_kitchen();
lightsoff_stairwell();
lightsoff_middle_corridor();
sys.trigger( $mrdr_speaker_26 );
sys.trigger( $mrdr_speaker_27 );
sys.trigger( $nkd_speaker_6 );
sys.trigger( $mrdr_speaker_28 );
lightsoff_upper_corridor();
lightsoff_cubicles_corridor();
lightsoff_split_room();
sys.trigger( $mrdr_speaker_29 );
sys.trigger( $mrdr_speaker_30 );
sys.trigger( $mrdr_speaker_31 );
lightsoff_fan_room();
lightsoff_swinglight_room();
lightsoff_button_passage();
// Open secret room
sys.trigger( $wils_func_static_218 );
sys.trigger( $wils_trigger_hurt_1 );
$wils_func_door_15.open();
$wils_func_door_16.open();
// Blackout time
sys.wait( 15 );
// Restart Generator
$generator_barrel.accelTime( 3 );
$generator_barrel.decelTime( 0 );
$generator_barrel.rotate( '0 0 120' );
// power up sound
thread sound_generator_startup();
// Turn lights ON
sys.wait( 1.5 );
sys.trigger( $mrdr_speaker_22 );
lightson_generator_room();
sys.trigger( $mrdr_speaker_23 );
sys.trigger( $mrdr_speaker_24 );
sys.trigger( $mrdr_speaker_25 );
lightson_kitchen();
lightson_stairwell();
lightson_middle_corridor();
// Close secret room
$wils_func_door_15.close();
$wils_func_door_16.close();
thread powerup_berserk_remove();
sys.trigger( $wils_func_static_218 );
sys.trigger( $wils_trigger_hurt_1 );
sys.trigger( $mrdr_speaker_26 );
sys.trigger( $mrdr_speaker_27 );
sys.trigger( $nkd_speaker_6 );
sys.trigger( $mrdr_speaker_28 );
lightson_upper_corridor();
lightson_cubicles_corridor();
lightson_split_room();
sys.trigger( $mrdr_speaker_29 );
sys.trigger( $mrdr_speaker_30 );
sys.trigger( $mrdr_speaker_31 );
lightson_fan_room();
lightson_swinglight_room();
lightson_button_passage();
}
void generator_run()
{
// don't put anything in here
// only runs if a player is accessing the GUI at the time it gets called
}
//--------------------------------------------------
// MAIN
//--------------------------------------------------
void main()
{
thread triggerfield_thread();
thread sound_wind_init();
windshutter_setup(1,1);
windshutter_setup(1,2);
windstatus1 = 2; // Open
$windshutter1_gui.setGuiParm( "networkState" , windstatus1);
windshutter_setup(2,1);
windshutter_setup(2,2);
windstatus2 = 2; // Open
$windshutter2_gui.setGuiParm( "networkState" , windstatus2);
generator_setup();
}