Cryptic error message

Well, here I am back at my “Let’s ask someone about this” room.
I have a horse that throws his rider, but there is line that spawns an error.

Instead of going west through iron gate when horse is carrying player:
	if temper of the horse is calm:
		say "Bravo bucks and whinnies as the two you approach the gate. He definitely does not want to go through it.[if iron gate is closed]Besides, you can't reach the latch from up here on Bravo.";
		now temper of the horse is agitated;
	else if temper of the horse is agitated:
		say "Bravo snorts and backs up stiffleggedly. He is afraid of the other side of the iron gate. Perhaps he is warning you of something.";
		now temper of the horse is afraid;
	else if temper of the horse is afraid:
		say "Bravo, faithful steed that he is, bucks and throws you off. You land on the ground with a hard thump! Bravo runs away down Chapel Road.";
		now horse is not carrying player;
		now horse is in Chapel Road West;	
		now temper of the horse is calm;

It is the line near the bottom: now horse is not carrying player;
I start the if/else statements with “…when horse is carrying player” so I expect that
“now horse is not carrying player” should parse ok. Error says it is expecting a condition.
Any suggestions?

“Now horse is not carrying player” is too vague for Inform to understand – OK, they’re not on the horse, but where are they?

I’m not sure how you’re implementing the horse – if there’s an extension or something – but you could sub a line like “try silently dismounting” or “try silently going out” or whatever action gets the player off the horse, and that should work.

2 Likes

Yep, it’s not enough to tell Inform where something shouldn’t be: you have to tell it where the thing should be. You can understand intuitively that “not carried by the horse” should mean “in the location of the horse”, but Inform can’t make that inference on its own.

“Silently try exiting” should do what you want, I think. You can also use dismounting if this is a rideable animal.

2 Likes

Mike, Stan,
Yes that works. I couldn’t understand why Inform couldn’t understand that, but Daniel explained it. Thanks much.

1 Like