Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function onLevelStart()
- {
- SendMessage( MT_Info, "Objective added" );
- SendMessage( MT_Warning, "Hold TAB to view objectives", 10 );
- global
- LS =
- {
- room1dooropened = false,
- room1powerfixed = false,
- room2door1state = false,
- room2door2state = false,
- room2door3state = false,
- room2doorsopened = false,
- }
- ,OBJ_ROOM_1 = ObjectiveAdd( "Find a way to open the door", OS_Hidden )
- ,OBJ_ROOM_1a = ObjectiveAdd( "Fix power lines for the door", OS_Hidden )
- ,OBJ_ROOM_2 = ObjectiveAdd( "Find a way to open all 3 doors", OS_Hidden )
- ,OBJ_ROOM_2a = ObjectiveAdd( "Find a way to bypass all 3 doors", OS_Hidden )
- ,OBJ_ENDING = ObjectiveAdd( "Get to the flag!", OS_Open )
- ;
- }
- function objstate( id, state )
- {
- if( state == ObjectiveGetState( id ) )
- return;
- if( state == OS_Open )
- {
- SendMessage( MT_Info, "Objective added" );
- SendMessage( MT_Continued, ObjectiveGetText( id ) );
- }
- if( state == OS_Done )
- {
- SendMessage( MT_Info, "Objective completed" );
- SendMessage( MT_Continued, ObjectiveGetText( id ) );
- }
- ObjectiveSetState( id, state );
- }
- function callent( name, arg )
- {
- CallEntity( name, arg );
- }
- //
- // ROOM 1
- //
- function onRoom1Enter(enter)
- {
- if(!enter)return;
- objstate( OBJ_ROOM_1, OS_Open );
- }
- function updateRoom1Door()
- {
- if( LS.room1powerfixed == false && LS.room1dooropened )
- {
- callent( "room1pboxspark", "trigger_enter" );
- objstate( OBJ_ROOM_1a, OS_Open );
- }
- if( LS.room1powerfixed && LS.room1dooropened )
- {
- callent( "room1pboxspark", "trigger_leave" );
- callent( "room1door", "trigger_enter" );
- objstate( OBJ_ROOM_1, OS_Done );
- }
- }
- function onRoom1SwitchTop()
- {
- LS.room1dooropened = true;
- updateRoom1Door();
- }
- function testRoom1PboxTop()
- {
- return PlayerHasItem( "wrench" );
- }
- function onRoom1PboxTop()
- {
- objstate( OBJ_ROOM_1a, OS_Done );
- LS.room1powerfixed = true;
- updateRoom1Door();
- }
- //
- // SUB
- //
- function onSubSwitch( on, evname )
- {
- callent( "subdoor1", evname );
- callent( "subdoor2", evname );
- }
- //
- // ROOM 2
- //
- function onRoom2Enter(enter)
- {
- if(!enter)return;
- objstate( OBJ_ROOM_2, OS_Open );
- }
- function testRoom2SwitchAny()
- {
- return LS.room2doorsopened == false;
- }
- function updateRoom2()
- {
- if( LS.room2door1state && LS.room2door2state && LS.room2door3state )
- {
- LS.room2doorsopened = true;
- callent( "room2sparks", "trigger_once" );
- objstate( OBJ_ROOM_2, OS_Done );
- }
- }
- function onRoom2Exit()
- {
- objstate( OBJ_ROOM_2, OS_Cancelled );
- objstate( OBJ_ROOM_2a, OS_Done );
- }
- function onRoom2Switch1()
- {
- callent( "room2door2", "trigger_enter" ); LS.room2door2state = true;
- callent( "room2door3", "trigger_switch" ); LS.room2door3state = !LS.room2door3state;
- updateRoom2();
- }
- function onRoom2Switch2()
- {
- callent( "room2door1", "trigger_enter" ); LS.room2door1state = true;
- callent( "room2door2", "trigger_switch" ); LS.room2door2state = !LS.room2door2state;
- callent( "room2door3", "trigger_leave" ); LS.room2door3state = false;
- updateRoom2();
- }
- function onRoom2Switch3()
- {
- callent( "room2door1", "trigger_switch" ); LS.room2door1state = !LS.room2door1state;
- callent( "room2door2", "trigger_leave" ); LS.room2door2state = false;
- callent( "room2door3", "trigger_enter" ); LS.room2door3state = true;
- updateRoom2();
- }
- //
- // END
- //
- function onLevelEnd(enter)
- {
- if(!enter)return;
- objstate( OBJ_ENDING, OS_Done );
- EndLevel( true );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement