Making a backdrop an invisible inventory item?

#1

I wound up consolidating a lot of items I didn’t need to implement with help from this topic: Consolidating "instead" rules for low-impact scenery

But there were a couple backdrops that I couldn’t shift kinds for, from “backdrop” to “boringthing,” at least not with moving them all over the place.

However, one of the backdrops was present for a whole isolated segment of the game. I just put it in one region where you can’t get out until you win, and that was that. But now I’m wondering about if the backdrop is better off as a defined type.

The fear of the semi-big bad guy is a boringthing.

check taking inventory:
  now the fear of the semi-big bad guy is unmarked for listing;
  list the contents of the player, with newlines, indented, including contents, giving inventory information, with extra indentation, listing marked items only;

instead of doing something with a boringthing:
  if noun is bad guy, say "WOOO!!! HE'S OUT THERE!!!" [Note: it's not this simple, but the details in the linked topic don't seem to be important. You'd have generic-text ("Don't focus on your fear") and a general-rule (check for meta commands like hints, for special clues) instead.]

Can anyone see a downside to this? Am I trying to be too cute with code here? I had always used this abstract thing as a backdrop and not an item, but it occurs to me it might be useful in other cases e.g. with a far-away castle. It looks like the “instead” rule should prevent any funny stuff that’d result from “DROP FEAR” but I think I may be cutting a corner here.

Thanks!

#2

I’m not following why this needs to be implemented as an object you can hold instead of as an adjective?

1 Like
(matt w) #3

One thing is that if you really want to cut off any interaction with the thing at all, you might want to use a “First Before” rule–those are really first.

(Hanon Ondricek) #4

I’d make an “intangible” kind that blocks anything except examining and just let it be an actual inventory item. Change the “You are carrying” message to “You have…” and it grammatically can work.

You have:
  a sword (glowing blue)
  a fear of the bad guy
  kleptomania
  the beginnings of a minor head-cold

That simplifies checking for stuff “if the player encloses kleptomania…”

1 Like
(Daniel Stelzer) #5
    a splitting headache
    no tea
1 Like
#6

I actually did implement that kind in my last game (I called it an “abstract”) - I understand it can be coded, I just don’t understand the reasoning behind “You have fear” as opposed to “You are afraid.”

(Hanon Ondricek) #7

Because abstract things phrased as physical objects can be listed with inventory items without changing how inventory is listed. It’s a shortcut.

It’s not too much of a stretch to say “you have anxiety” instead of “you are anxious”.

#8

I think we’re talking past each other, because I’m not questioning whether or not it’s possible, I’m wondering WHY. OP is agonizing over how to prevent standard actions and rewrite standard code for these non-items that are coded as items, and sure, it’s possible, but I don’t see what the upside is (vs. “if the player is afraid: say…”). Is the idea, I don’t know, that you can’t advance until you’ve lost your fear (or headache, etc.) so you should specifically be able to check with “i” whether or not you are ready?

(Hanon Ondricek) #9

Laziness, basically, on my part. It prevents writing a bunch of if-statements since you can just put “a headache” in inventory.

It’s also an homage to Douglas Adam’s “no tea” inventory item @Draconis mentioned above.

#10

Yes, I think we are talking past each other, KitParsing … also, no worries, I’m not “agonizing.” This is an interesting problem, and I didn’t want to drown people in superfluous information. I just wanted to have a simple way to do things that fit in with my current code, and it seemed like something to check off on.

I want the knowledge of the bad guy to be present, but I don’t want it as a backdrop, or even in the inventory, because his name isn’t necessary to solving things. It’s just a name. I wanted to be able to do stuff like HINT BAD GUY and give a reasonable response. And so “now the fear of the semi-big bad guy is unmarked for listing;” is there because I don’t want to force the player to think of the bad guy, but if they try to HINT or THINK of the bad guy, that will be implemented.

I’ve used abstract things before to make a puzzle work easier, and I’d used emotions in the inventory before. But this was unusual, as the bad guy is only referred to tangentially in some rooms and you never see him.

I imagine you could also leave abstract items unmarked for listing in the first pass, then if you are carrying any abstract items:

  if number of not abstract items enclosed by player > 0:
    now all not abstract items are marked for listing;
    say "You are carrying:[line break]";
    list the contents of the player, with newlines, indented, including contents, giving inventory information, with extra indentation, listing marked items only;
  if number of abstract items enclosed by player > 0:
    now all abstract items are marked for listing;
    say "You have:[line break]";
    list the contents of the player, with newlines, indented, including contents, giving inventory information, with extra indentation, listing marked items only;

ETA: in any case, the discussion has left me feeling okay with my original decision. I wanted to make sure there were no potholes before I went ahead, and I learned a little extra in the process. Hooray.

1 Like
#11

I’ve been using a simple cheat. The shirt my character wears is an unopenable transparent container. (Inform doesn’t know that it’s not a backpack.) I actually have another character inside it who the player can speak to at any time as though this character is an omni-present Jarvis-type buddy. You could do something similar with an object inside of something which the character wears but is secretly a container.

2 Likes
(Hanon Ondricek) #12

That’s a neat trick. I have also made omnipresent helper characters “part of” (incorporated by) the PC to accomplish the same effect.

In my Cragne Manor room the Plains are three characters stuck together as one solely to save moving them on and off-stage individually. I found the idea amusing that the popular girls were essentially ready for a potato-sack race at the drop of a hat.

1 Like
#13

Ah, so you’re creating it as an object to avoid, like, topic lists for THINK and so on?

#14

Now this is very neat, and it just feels right, too, since shirts can sort of be containers. And even if the character isn’t wearing anything special, you could just have a privately-named container that’s not marked for listing.

EAT @KitPArsing yes, that’s a better way to put it!

This tipped off something! But I guess I have to put what it tipped off in spoilers, now, too, or it’d be a meta-spoiler.

There is a puzzle with a “tall trio” and I always had trouble implementing the middle, left and right chef. It’d be more sensiible to have them facing inwards in a triangle, and also they could be Al, TR and Tito. Then I could just map Al, Lot and Tri (the new names) all to the Tall Trio.

@KitParsing You have the basic idea of what I want–meta-objects–but I want something you can’t do anything physically with.

HINT BAD GUY would punt you to “Don’t worry about the bad guy.”
SCAN BAD GUY (you have a hint device) would punt you to “that’s not scannable.”

So my intent may not be exactly what you say, but I think you have the general idea. I’d like to be able to implement one or two meta-objects without, say, needing to poke through Eric Eve’s Epistemology include file. Which is neat, but adding a new header for a small change may not be worth it.