Didn't expect this

Mr. Pinhead here, still doing the Sand-dancer tutorial, and I didn’t expect this: I added the line When Rabbit’s Offer begins: Rabbit’s Conversation starts in 1 turn from now.

And I get the following problem message:

In Part - Scenes, Chapter - Rabbit’s Offer:

Problem. In the sentence ‘Rabbit’s conversation starts in 1 turn from now’ , I was expecting to read a rule, but instead found some text that I couldn’t understand - ‘Rabbit’s conversation starts’.

I was trying to match one of these phrases:

  1. (rabbit’s conversation starts - rule) in (1 - number) turn/turns from now

  2. (rabbit’s conversation starts - rule) in (1 turn - time) from now

But I didn’t recognise ‘rabbit’s conversation starts’ or ‘1 turn’.

I don’t get this. Inform ought to recognize the word “conversation,” I think especially as I added the extension Include Conversation Framework for Sand-dancer by Aaron Reed

This is a bit tricky. That line won’t compile until you also add in another rules that talks about rabbit’s conversation, like “at the time when rabbit’s conversation begins:” (there will surely be such a rule later in that chapter).

“Rabbit’s conversation” is what’s called a timed event, but Inform doesn’t know that it’s supposed to be a timed event until it sees the “At the time when rabbit’s conversation starts:” rule. (I’d always expected it to be the other way round, but it isn’t.) So it throws you an error letting you know that “Rabbit’s conversation starts” is unrecognized.

By the way, these timed event phrases (like many phrases in Inform) are basically indissoluble units. Even after you define it, Inform won’t know that “rabbit’s conversation starts” has anything to do with conversation, or rabbit, or starting. So even if it knows the word “conversation” (which it might not–just because the extension is called “conversation Framework” doesn’t mean it defines the word “conversation”) it won’t necessarily understand a timed event name using “conversation.”

In fact, the very next line of code is an “at the time conversation starts” line, and it still doesn’t compile. I’m wondering if the problem is that Inform 7 was updated so much between the publication of the book and now that it can’t understand the code.

I’m still at a loss.

Did you type “at the time rabbit’s conversation starts” out in full? As I said, “rabbit’s conversation starts” is indissoluble (I think); if you leave out “rabbit’s” Inform won’t recognize it.

There have been a lot of updates to Inform since the book was released, some of which break the code, but I just put two lines like that into a simple project and got the expected results–when I just had the “rabbit’s conversation starts in 1 turn from now” line it gave me the error you had, when I added the other line it compiled.

Don’t know why, but that didn’t work for me. I wonder if some code in the extension is messing me up.