[I7] Room Descriptions That Slowly "Decay"

Yeah, I think you’re right, Matt. I would have to do something like this. I’ve come to the conclusion that to make this work from a player consistency standpoint, each room will have a summary description. This is a must.

So then, for the “look” what I want it to do is always just show the summary description. (I’ll have the impressions action if they want to recover the full text.) So I can modify your example for that aspect.

But, as I think you’re noting, the problem I’ll have is that if I override how look works, the locale is no longer printed. For example, the soccer ball isn’t described anymore nor is Floyd. For example, if I don’t override look:

Flower Walk
Brightly colored flower beds line the walks bending north and west, filling the air with a fragrance that can be a little overpowering. A little path leads northwest, between the trees.

The spires of the Albert Memorial are all too visible to the south. Passing tourists hoot with laughter at the dreadful sight; nannies hide their faces and roll quickly away.

Your paid-for tourist robot, Floyd, is here.

You can see a soccer ball half-hidden among the blossoms.

If I override look at all, I get this:

Flower Walk
Brightly colored flower beds line the walks bending north and west, filling the air with a fragrance that can be a little overpowering. A little path leads northwest, between the trees.

The spires of the Albert Memorial are all too visible to the south. Passing tourists hoot with laughter at the dreadful sight; nannies hide their faces and roll quickly away.

No locale aspects mentioned.

What I really want is just to say:

“When printing a room description, only this one small part will change. Everything else should operate as before.”

I feel like that’s actually the whole point of rule system. That’s why upthread I originally started (incorrectly) going down the path of the “room description body text rule”, since it seems I should be able to replace one rule but leave the others intact.

So I’m thinking it’s a matter of me better understanding how to slot the rules appropriately.

Part of the problem, of course, is that Inform doesn’t seem to distinguish between “automatic-look-due-to-going” and “user-initiated look.” That distinction alone might make some of this easier.

This has also highlighted interesting things for me which is that a lot of Inform’s logic (at least that I’ve been hitting) has been determining what’s in the source text, but not what the player is actually seeing. For example, when checking if a summary description is displayed, I’m not really checking that. I’m checking if the source text for that property is empty or non-empty.

So this brings up some interesting questions for me about providing a narrative experience that relies on adapting itself to what the player is actually seeing, which can be happening via a variety of conditions. In my case, it’s the “description decay” aspect which intersects with “going to location (thus implied ‘look’)” and “looking at location.” (This actually takes me back a few years to classes I held to get writers involved in interactive fiction, where we ran into similar constraints.)

It remains an interesting challenge!

Oh! Wait! It might have been so simple and starting me in the face the entire time. This:

This is the modified room description body text rule:
	if the location is unvisited:
		say "[the description of the location][p]";
	otherwise:
		if the visited-count of the location is 1:
			say "[the summary description of the location][p]";
		if the current action is looking:
			say "[the summary description of the location][p]"

The modified room description body text rule substitutes for the room description body text rule.

That seems to do the trick, I think! This seems to work when combined with overriding the “report actor going” logic.

It handles the “decay” part correctly, not interfering with it. So in other words, the player, upon doing to a room, sees the full description. The second time will be the summary description. The third time will be nothing, save the locale.

If the player types look, the summary description is always provided unless the visited count isn’t 1. (If it isn’t at least one, that means it’s a first visit anyway. So a “look” right after a “go to room” would show the full description both times, but that seems fine to me.) After the first visit is 1 (meaning once it’s greater than 1), then a check for the current action is done to make sure it’s a “looking.”

I think this might be (finally! hopefully?) the working solution.

1 Like