254 lines
9.2 KiB
Plaintext
Executable file
254 lines
9.2 KiB
Plaintext
Executable file
( L E V E L 0 0 0 0 6 )
|
|
202 0 0 14 99 119 0 9 0 104 119 0 instrument keyinst
|
|
: sfx-key ( n -- ) keyinst loadinst 36 + noteon ;
|
|
|
|
objects: O
|
|
|
|
2 const ^1
|
|
30 const code-y
|
|
20 const code-x
|
|
|
|
: wait-for-digit ( -- n )
|
|
0 begin suspend ^1 dup 11 + for i key-pressed if drop i then next dup until
|
|
^1 - 1 + dup 10 = if drop 0 then ;
|
|
: draw-digit ( x n -- ) code-y swap 48 + text-color @ textc ;
|
|
: code-digit ( code x -- code )
|
|
wait-for-digit dup sfx-key swap code-x + over draw-digit swap 10 * + ;
|
|
|
|
: read-code ( -- n )
|
|
WHITE text-color !
|
|
s" ####" code-x code-y textxy
|
|
0 0 code-digit
|
|
1 code-digit
|
|
2 code-digit
|
|
3 code-digit ;
|
|
|
|
var pady-introduced
|
|
: keypad-code responder entity.user cell + @ ;
|
|
: keypad create-extra-linked-object
|
|
:| dup EVTOUCH = isrexx? not and if
|
|
pady-introduced @ not if
|
|
pady say" Hello, stranger! I'm Pady,\the friendly keypad lock!"
|
|
jaye say" I need to get through this\door, Pady."
|
|
pady say" You didn't say the magic\word, stranger!"
|
|
1 pady-introduced !
|
|
then
|
|
isneut? if
|
|
move-player
|
|
PAD-OFF responder>tile? if
|
|
pady say" Oh hi there, suspicious\program! What can I do\you for?"
|
|
neut say" PEOPLE ARE IN DANGER\PLEASE OPEN THE DOOR"
|
|
pady say" Well that's terrible!\But I just can't open\without the proper code."
|
|
haslibb? if
|
|
libb say" oh jeez, let me at her, neut."
|
|
then
|
|
then
|
|
else isprog? not if
|
|
PAD-OFF responder>tile? if
|
|
runon pady say" Enter your 4-digit door code!\And have a super day!"
|
|
read-code keypad-code = if
|
|
pady say" That's right! Hooray!\You get a gold star!"
|
|
drop EVACT
|
|
else
|
|
pady say" Ohhh, sorry! That's not it.\Better luck next time!"
|
|
then
|
|
else
|
|
pady say" Oh hi again! I missed you too!"
|
|
then
|
|
then then
|
|
then
|
|
dup EVHACK = if
|
|
pady say" Another strange program!\My, I'm popular today!"
|
|
libb say" oh puke. please shut up."
|
|
runon pady say" How rud"
|
|
hacked sfx-libb
|
|
libb say" > /winnuke 182.556.21.74"
|
|
pady say" PADYSEC caused a General\Protection Fault in module\MORICON.DLL at 000A:BE3F."
|
|
libb say" > /open"
|
|
drop EVACT
|
|
then
|
|
dup PAD-ON PAD-OFF handle-onoff
|
|
PAD-ON handle-link |; listener! ;
|
|
|
|
18 1 defrexx r1
|
|
|
|
3 1 door d1
|
|
16 1 door d2
|
|
4 11 door d3
|
|
10 9 door d4
|
|
16 11 door d5
|
|
defer term-loop
|
|
' term-loop 2 1 computer c1
|
|
' term-loop 2 3 computer c2
|
|
' term-loop 2 6 computer c3
|
|
' term-loop 2 10 computer c4
|
|
' term-loop 18 3 computer c5
|
|
' term-loop 18 6 computer c6
|
|
' term-loop 18 9 computer c7
|
|
' term-loop 8 6 computer c8
|
|
' term-loop 12 6 computer c9
|
|
' term-loop 14 11 computer cx
|
|
|
|
: ret-if-on ( e -- ) dup computer-on? if rdrop else drop then ;
|
|
: first-on ( -- e )
|
|
c1 ret-if-on cx ret-if-on c2 ret-if-on c3 ret-if-on c4 ret-if-on
|
|
c5 ret-if-on c6 ret-if-on c7 ret-if-on c8 ret-if-on c9 ret-if-on 0 ;
|
|
defer cmp-next-on
|
|
: next-on ( e -- e )
|
|
:| over = if drop ' ret-if-on ' cmp-next-on redefine then |; ' cmp-next-on redefine
|
|
c1 cmp-next-on cx cmp-next-on c2 cmp-next-on c3 cmp-next-on c4 cmp-next-on
|
|
c5 cmp-next-on c6 cmp-next-on c7 cmp-next-on c8 cmp-next-on c9 cmp-next-on
|
|
first-on ;
|
|
:noname responder next-on ; ' term-loop redefine
|
|
|
|
5197 ' d1 3 2 keypad k1
|
|
-1 ' d2 16 2 keypad k2 ( must be hacked )
|
|
2757 ' d3 4 10 keypad k3
|
|
7777 ' d5 16 10 keypad k5
|
|
|
|
' cx 10 3 switch b1
|
|
' c7 19 11 switch b2
|
|
|
|
' d4 3 0 scanner s1
|
|
|
|
LEV_END 13 12 exitdoor dx
|
|
' dx 14 12 scanner sx
|
|
|
|
c1 :noname hack-override? if
|
|
libb say" just a bunch of boring\source code."
|
|
libb say" bill didn't leave anything\really juicy here where\other people could get at it."
|
|
then
|
|
dup chain-listener EVACT = if
|
|
term say" .:: welcome to farquaad ::.\please select your choice:"
|
|
0 begin :|
|
|
s" about farquaad" :|
|
|
term say" os: ms-dos 9\ram: 8 freakin megabytes d00d\sysadmin: bill"
|
|
term say" don't mess with it!!!"
|
|
|; yield
|
|
s" s3cr3t c0d3z" :| term say" get out lamer" |; yield
|
|
s" boss key" :| term say" press f9 to activate\at any time" |; yield
|
|
s" open pod bay doors" :| term say" i can't do that dave" |; yield
|
|
s" log off" :| term say" good riddance" drop 1 |; yield
|
|
done |; choose
|
|
dup until drop
|
|
then ;
|
|
|
|
c2 :noname dup chain-listener EVACT = if
|
|
term say" Subject: Misuse of Rexx\Thanks to SOMEone, who shall\remain nameless, that decided"
|
|
term say" that it would be 'funny' to\teach the cleaning robot to\play fetch with expensive"
|
|
term say" equipment, access to Rexx\by developers will be strictly\controlled by management."
|
|
term say" The code has been changed.\Do not attempt to hack the\keypad. This means YOU, Bill."
|
|
then ;
|
|
|
|
c3 :noname dup chain-listener EVACT = if
|
|
term say" Subject: Server's down\Hey, I don't have the code to\access the server room. Can"
|
|
term say" someone reboot it for me?"
|
|
term say" Subject: RE: Server's down\I don't have TIME for this\nonsense!! Reboot it yourself."
|
|
c7 computer-on? if
|
|
term say" The passcode is\[ BLOCKED BY FIREWALL ]."
|
|
else
|
|
term say" The passcode is 5197."
|
|
then
|
|
term say" Subject: re: RE: Server's down\Uhhh the firewall is blocking\the passcode?"
|
|
term say" Subject: re: RE: Server's down\AUGH FINE I rebooted it."
|
|
then ;
|
|
|
|
c4 :noname
|
|
dup EVACT = if
|
|
term say" bill's workstation\keep out dipshits"
|
|
then
|
|
dup EVTOUCH = if isneut? if
|
|
haslibb? not if
|
|
with-libb
|
|
libb say" well, well, well.\what have we here?"
|
|
libb say" > /version"
|
|
neut say" < NEUT v0.71.4rc12"
|
|
neut say" > IDENTIFY_PROGRAM.EXE"
|
|
libb say" < libb v2.718282"
|
|
libb say" oh, a nosy little fella."
|
|
neut say" NOT A FELLA."
|
|
libb say" perhaps you and i could\help each other."
|
|
neut say" WE ARE ASSISTING ALL WHO\ARE IN NEED."
|
|
libb say" i've been watching the\network. it's kind of what\i do."
|
|
libb say" you and your programmer,\you're escaping, aren't\you?"
|
|
neut say" THE BUILDING IS UNSAFE.\WE ARE HELPING."
|
|
libb say" i want out, neut."
|
|
libb say" i hate being cooped up in\this locked-down corporate\hellhole of a network."
|
|
libb say" you're going to take me\with you."
|
|
neut say" THIS COURSE OF ACTION\ALSO SEEMS POTENTIALLY\UNSAFE."
|
|
libb say" that wasn't a threat, neut.\that was a fact."
|
|
libb say" you can't get out of here\without me."
|
|
libb say" i can disable keypads.\i can reprogram terminals.\i can HELP, neut."
|
|
hide-footer 10 sleep
|
|
neut say" IT NEVER HURTS TO HELP."
|
|
libb say" that's the spirit."
|
|
neut say" > UPLOAD.EXE /LIBB"
|
|
libb say" aww yiss."
|
|
libb say" press z when you need me\to mess with something."
|
|
then
|
|
then then
|
|
hack-override? if
|
|
libb say" i brought everything good\along with me, don't worry."
|
|
then chain-listener ;
|
|
|
|
c5 :noname dup chain-listener EVACT = if
|
|
gord say" A weird looking spreadsheet..."
|
|
gord say" Oh wait, I pressed a key and\it disappeared. Someone using\the boss key to hide"
|
|
gord say" that they're reading the entire\archive of User Friendly comic\strips."
|
|
then ;
|
|
|
|
c6 :noname hack-override? if
|
|
libb say" hehehe, that was a fun one."
|
|
then
|
|
dup chain-listener EVACT = if
|
|
term say" Subject: Card scanners?\Looks like the scanners are\on the fritz again..."
|
|
term say" I scanned my keycard to get\into the office and the door\wouldn't close!"
|
|
term say" Someone's gotta fix that ASAP,\it's a serious security problem!"
|
|
term say" Subject: re: Card scanners?\I can take a quick look, I\might have an idea as to"
|
|
term say" what's going on.\ -- Bill"
|
|
then ;
|
|
|
|
c7 :noname hack-override? if
|
|
libb say" you know the switch is right\there on the wall, right?"
|
|
then
|
|
dup EVTOUCH = if isprog? not if
|
|
b2 switch-on? if
|
|
term say" WorkSecure (tm) v2.0\AUTHORIZED PERSONNEL ONLY"
|
|
term say" Actively neutralizing:\1 threat(s)"
|
|
else
|
|
jaye say" Looks like the power is cut."
|
|
then
|
|
drop EVNOP
|
|
then then chain-listener ;
|
|
|
|
c8 :noname dup chain-listener EVACT = if
|
|
term say" Subject: Password security\A reminder to all developers\about security best practice:"
|
|
term say" DO NOT WRITE DOWN PASSWORDS!\We pay significant license fees\for encrypted password"
|
|
term say" managers for all employees!\Use it to generate and store\secure passwords!"
|
|
jaye say" There's a sticky note attached\to the monitor that says\'7777'."
|
|
then ;
|
|
|
|
c9 :noname hack-override? if
|
|
libb say" he's just being dramatic."
|
|
then
|
|
dup chain-listener EVACT = if
|
|
term say" Subject: Experiment\Hey folks, can you all do me a\huge favour?"
|
|
term say" There was a small bug in my\code (yes, it happens!) and a\program I was working on"
|
|
term say" made a few too many copies of\itself. Can everyone check to\see if you have a process"
|
|
term say" called 'LIBB' running on your\terminal?"
|
|
term say" If you do, please kill -9 it\and shoot me a quick email.\DON'T INTERACT WITH IT."
|
|
term say" It could seriously mess with\your system.\ -- Bill"
|
|
then ;
|
|
|
|
cx :noname dup EVTOUCH = if isprog? not if b1 switch-on? not if
|
|
jaye say" This is the sign-in terminal\used by visitors."
|
|
jaye say" It's not turning on for some\reason."
|
|
drop EVNOP
|
|
then then then chain-listener ;
|
|
|
|
:noname O
|
|
5 1 tile>world Jaye entity.pos!
|
|
4 0 tile>world Neut entity.pos!
|
|
with-gord
|
|
; ' onload redefine
|