Is there a standard/common/easy way of implementing something that is “on” (for lack of a better word) a non-supporter thing, such as a flyer tacked to a vertical surface?
It doesn’t make sense to make the vertical surface a supporter, because then the player could sit a cup on it (at best implying the vertical surface has a horizontal top which things can be placed on, at worst defying gravity).
It isn’t important that the item “on” the vertical surface be take-able by the player (the player won’t necessarily need to take the flyer off the wall, just read it), but it is important that the object be able to appear on the wall under certain conditions ("now the flyer is [on] the wall’) rather than simply being permanently “part of the wall”.
I’d just make it part of the wall, then change the description and/or initial appearance of the wall based on the flyer’s status (if it isn’t initially findable/interactable but then is, I’d just start it out offscreen then do “now the flyer is part of the wall”; if it should always be in scope but then becomes more salient, I guess I’d do that with a property? But I have a hard time figuring out what scenario that would apply to).
could you elaborate? I’m not clear that you need a relationship between the two things at all.
Lab is a room. "There's a poster on the wall."
The wall is scenery. "There's a big stain where the poster used to be."
The poster is scenery in the lab. "Cool poster. Wall that deserves covering up more." [ <-- because this is scenery, that's the description, not the initial appearance ]
Understand "wall" as the poster when the poster is in the lab.
instead of jumping:
if the poster is in the lab begin;
now the poster is nowhere;
now the wall is in the lab;
else;
now the wall is nowhere;
now the poster is in the lab;
end if;
I’m not clear that you even need two things if the player isn’t to interact with the flyer except for reading it. Just change the description of the wall, in accordance with my general rule-of-thumb: don’t feel you should simulate what doesn’t need simulating…
The wall is scenery in the Lab. The description is "The wall is blank.". Understand "flyer" as the wall.
Instead of jumping: now the description of the wall is "A flyer on the wall reads 'Why are you jumping?'".
Also - if it’s not been mentioned previously: incorporated objects (something “part of” something else) do not get specifically called out by the parser the way objects on a supporter or in a container do.
This is a good way to include but subtly hide component parts the player might infer the existence of but wouldn’t naturally warrant initial description, like having a minute-hand and an hour-hand be part of a clock.
A grandfather clock is in the living room. "The stately clock ticks away the hours."
a minute hand is part of grandfather clock. The description is "The ornate pointers on the clock face indicate it is [the time of day in words>." Understand "minutes/hour/hours/second/seconds/time/number/numbers/ornate/pointer/pointers/clockface" and "time of day" and "clock face" as the minute hand.
USE A RIGHT BRACKET - MY KEYBOARD IS BROKEN!
So you might need to include a varying description for an important and non-inferable incorporation that checks “if the flyer is part of the wall” if you need it called out.