Thanks for this, it’s looking really good and seems easy to use! I’ll try it out in some works-in-progress.
However, I think I found some issues with the current version.
Very minor issues, typos:
in the Detective example:
Watson is a man in the Parlor. The description of Poe is "Watson is interested in everything you have to say."
-> should of course be “
description of Watson”
in the Eat Your Words example:
The TargetResponse of Dinner is "You say, 'Ahh, such an excellent meal'
'It was lovely, wasn't it?' says Noether. 'Let's get dessert'."
I’d say there’s a full stop missing after “meal”, it should read:
"You say, 'Ahh, such an excellent meal.' [...]"
in the Halloween example:
The description of the player is "You're wearing a sppoky ghost costume!";
-> should be “
also in the Halloween example:
TargetResponse of Ghosts, it says:
"They say that a kid died in this gym 40 years ago at a Halloween party".
-> The full stop should be inside the quotation marks
in the source code, in Section 3, there’s:
inserting is unphysical behavior
putting is unphysical behavior
This should probably be “
material behavior” like the rest.
Slightly more involved issues:
In the Halloween example, when you take inventory, there are some problems which ultimately stem from the customized inventory rule (which was modified in order to exclude the quips):
You are carrying:
a Your costume (being worn)
The costume is proper-named.” should solve that, or, with a different modified inventory rule (see below), you’d not need to change the printed name of the carried costume to hard-code “
Your costume (being worn)”, but could just do:
The indefinite article of the costume is "your".
If you wear something, it won’t be shown in the inventory.
The player wears a hat.” to see the issue.)
The contents of carried containers are not shown.
The player carries a bag. The bag is a container. A piece of candy is in the bag.” to see the issue.)
So, I think, in the quip-based inventory rule you should try to emulate the standard inventory rule more closely, and also include things which the player is wearing.
Fortunately, I think you can stick relatively closely to the standard inventory rule and still exclude the quips, if you do something like this:
Carry out taking inventory (this is the quip-based inventory rule):
now all things enclosed by the player are marked for listing;
now all quips carried by the player are unmarked for listing;
say "[We] [are] carrying:[line break]" (A);
list the contents of the player, with newlines, indented, including contents,
giving inventory information, with extra indentation, listing marked items only;
say "[first time][line break][bracket]You can see topics for speaking to others by typing T or TOPICS[close bracket].[only]";
See Example 177, Equipment List (§6.7. Inventory in the Recipe Book).
I tried this out, and it seems to work nicely.
Another issue, more a matter of opinion:
Speeching” is not a very naturally-sounding word for the main action, I think. Of course, it is a good choice in the sense that we want to avoid collisions with user-defined actions, but I think some other choice might make for much more naturally-reading code.
How about “
uttering”? Then authors could write “
Report uttering Okay to Fred” and so on.
I made all the changes above in this version here:
Clues and Conversation - Uttering - v2.i7x (35.5 KB)
(I just renamed it so that I could install them both in parallel)
I tested all included examples with that version again, and they seem to work well.