neuttower/lev00006.jor

219 lines
7.8 KiB
Plaintext
Raw Normal View History

( 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
17 1 door d2
4 11 door d3
10 9 door d4
2020-03-31 02:27:37 +00:00
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
2020-03-31 02:27:37 +00:00
: ret-if-on ( e -- ) dup computer-on? if rdrop else drop then ;
: first-on ( -- e )
c1 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 cx ret-if-on 0 ;
2020-03-31 02:27:37 +00:00
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 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 cx cmp-next-on
first-on ;
2020-03-31 02:27:37 +00:00
:noname responder next-on ; ' term-loop redefine
5197 ' d1 3 2 keypad k1
-1 ' d2 17 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
2020-03-31 02:27:37 +00:00
c1 :noname 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" |; 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
2020-03-31 02:27:37 +00:00
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 blocked\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
2020-03-31 02:27:37 +00:00
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."
2020-03-31 02:27:37 +00:00
then
then then chain-listener ;
c5 :noname dup chain-listener EVACT = if
2020-03-31 02:27:37 +00:00
then ;
c6 :noname 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 ;
2020-03-31 02:27:37 +00:00
c7 :noname dup chain-listener EVTOUCH = if isprog? not if
term say" WorkSecure (tm) v2.0\AUTHORIZED PERSONNEL ONLY"
term say" Actively neutralizing:\1 threat(s)"
then then ;
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!"
gord say" There's a sticky note attached\to the monitor that says\'7777'."
then ;
2020-03-31 02:27:37 +00:00
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