neuttower/lev00006.jor

250 lines
9.1 KiB
Plaintext
Executable file

( L E V E L 0 0 0 0 6 )
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 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"
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 hacked
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