Lockers with keypad

This commit is contained in:
He4eT 2020-03-19 23:16:10 +05:00
commit 9b9de07dae
4 changed files with 85 additions and 6 deletions

View file

@ -41,8 +41,16 @@ gameMain: GameMainDef
";} ";}
; ;
/* */
#include "src/actor/pc.t"
#include "src/action/repair.t"
#include "src/item/_bandage.t"
#include "src/item/whitePanels.t" #include "src/item/whitePanels.t"
/* rooms */
#include "src/room/orangeRoom.t" #include "src/room/orangeRoom.t"
#include "src/room/orangeBathroom.t" #include "src/room/orangeBathroom.t"
#include "src/item/dentalFloss.t" #include "src/item/dentalFloss.t"
@ -55,12 +63,8 @@ gameMain: GameMainDef
#include "src/room/pinkRoom.t" #include "src/room/pinkRoom.t"
#include "src/item/labCoat.t" #include "src/item/labCoat.t"
#include "src/item/lockers.t"
#include "src/room/redRoom.t" #include "src/room/redRoom.t"
#include "src/item/dataCable.t" #include "src/item/dataCable.t"
#include "src/actor/surgeryAssistant.t" #include "src/actor/surgeryAssistant.t"
#include "src/action/repair.t"
#include "src/item/_bandage.t"
#include "src/actor/pc.t"

View file

@ -82,7 +82,7 @@ surgeryAssistant: Person
tCrew: Topic 'crew/team'; tCrew: Topic 'crew/team';
++ AskTopic [tCrew] ++ AskTopic [tCrew]
" <q>The team on this floor consists of three people.\b " <q>The team on this floor consists of three people.\b
The first is Dr. O'neill, the surgeon. The first is Dr. O'Neill, the surgeon.
<br>The second is Alice Dash, the technician is <br>The second is Alice Dash, the technician is
responsible for all the equipment on this floor. responsible for all the equipment on this floor.
<br>The third is Mark Hopper, the orderly and janitor.</q>" <br>The third is Mark Hopper, the orderly and janitor.</q>"

66
src/item/lockers.t Normal file
View file

@ -0,0 +1,66 @@
lockers: Fixture
'lockers'
'lockers'
@pinkRoom
" A row of service lockers with a numpad keyboard on the side.
<br>This row, according to the signs,
includes (from left to right) the lockers of
Dr. O'Neill, Alice, and Mark. "
;
modify VerbRule(SetTo)
('press' | 'input') singleLiteral ('on' | 'with') singleDobj
: /* empty */
;
+ numpad: Dial, Component
'numpad/keyboard/keypad'
'numpad keyboard'
" An electronic device with a numeric keypad
and a small 4-digit display.
<br>Apparently, you can type passcode
on this keyboard to open any locker. "
makeSetting(val) {
curSetting = val is in (aliceLocker.code)
? val
: '0';
}
dobjFor(TypeLiteralOn)
remapTo(SetTo, self, OtherObject)
dobjFor(SetTo) {
action () {
inherited;
if (curSetting == aliceLocker.code) {
aliceLocker.makeLocked(nil);
aliceLocker.makeOpen(true);
"The middle drawer opened with a click. ";
} else {
" You heard an annoying sound and
a red light flashed on the keypad. ";
}
}
}
;
+ drLocker: IndirectLockable, LockableContainer, Component
'left locker'
'left locker'
"The sign reads <q>Dr. O'Neill</q>.\b"
;
+ markLocker: IndirectLockable, LockableContainer, Component
'right locker'
'right locker'
" The sign reads <q>Mark Hopper</q>.
<br>There's a huge dent in the side.\b"
;
+ aliceLocker: IndirectLockable, LockableContainer, Component
'middle central locker'
'middle locker'
"The sign reads <q>Alice Dash</q>.\b"
code = '1984'
;

9
test/gotoPinkRoom Normal file
View file

@ -0,0 +1,9 @@
>turn on the light
>w
>open locker
>take floss
>e
>s
>s
>take tape
>w