Unexpected locksmith output

I can’t work out why, in this sample code I’ve pasted, the last test command (“lock fake door with coat”) responds with “You can’t see any such thing.” I would expect it to say “Hands off” like the other three kinds of unlocking I test here. I’ve checked adding and subtracting ‘something’ from the end of the ‘unlocking… with’ lines, and that isn’t the issue.

"Fake door" by Marbles.

Include locksmith by Emily Short.

lab is a room. "LAB is labby.".

fake door is a backdrop in lab.

player is in lab. player wears coat.

Check unlocking keylessly fake door:
	instead say "Hands off.";

Check unlocking fake door with:
	instead say "Hands off.";

Check locking keylessly fake door:
	instead say "Hands off.";

Check locking fake door with:
	instead say "Hands off.";

test me with "unlock fake door/unlock fake door with coat/lock fake door/lock fake door with coat".

-Wade

There’s a compiler bug in here somwhere. The Understand lines in Locksmith for “lock” are producing this I6 code:

Verb 'lock'
    * noun=Noun_Filter_8  -> A78_locking_keylessly
    * noun=Noun_Filter_9  -> A78_locking_keylessly
    * noun  -> A78_locking_keylessly
    * noun=Noun_Filter_6 'with' noun  -> Lock
    * noun=Noun_Filter_7 'with' noun  -> Lock
    * noun '|__' 'with' noun  -> Lock
;

The “|__” is completely spurious. The grammar works, in the sense that if you type

lock fake door |__ with coat

…you get the right response.

You can work around this by adding the declaration

Understand "lock [something] with [something]" as locking it with.

This line already exists in Locksmith, but if you repeat it in your code, you get the correct grammar line in the I6. (The bad line still exists, but nobody will notice.) (Unless they’ve read this post.)

The bug seems to be caused by a line break in Locksmith, which appears in the middle of the Understand line. This shouldn’t make a difference but it does.

2 Likes

(Also dumb question - is there actually an object called “coat”?)

‘player wears coat’ invokes a coat object

1 Like

D’OH.

Missed it completely, thank you!

Thank you everyone.

-Wade