A response to any sentence involving a subject (smell god)

#1

Hard to describe in just the subject line.

I mostly have a solution for what I have in mind, but I was wondering if this is the most efficient way to do it.

[code]God is a backdrop which is everywhere.

Instead of doing anything to god, say “God is everywhere, and nowhere. You cannot interact with Him, but you know He is there.”[/code]

This creates an actual object which follows the player everywhere…would there be some other way of doing this that would require less overhead, or less potential edge cases? Something more like a parser rule. “If the player mentions god, say” etc.

I know the overhead of one object like this isn’t a huge concern, I was just curious.

I thought of the potential weirdness that God is not a person, or neuter animal, or animate in any way…but if we are overriding literally every action that can be done to him or with him, then there should be no parser weirdness with pronouns or anything. Hence the thought that maybe he doesn’t need to be an object at all.

EDIT: And just as I say that, I tried “give pencil to god” and was told I can only do that to something animate. So I will need some other solution. Doing it this way:

The Almighty is a backdrop which is everywhere. God is a neuter animal which is part of the Almighty.

Still results in attempting to perform actions:

I’d like to reject any actions at all before they start. Don’t even take that pencil, it won’t work!

0 Likes

#2

Hmmm… maybe this:


The Almighty is a backdrop which is everywhere. God is a neuter animal which is part of the Almighty.

Before doing anything when god is the noun or god is the second noun:
	instead say "God is everywhere, and nowhere. You cannot interact with Him, but you know He is there.".

Example results:

>give cat to god
God is everywhere, and nowhere. You cannot interact with Him, but you know He is there.

>smell god
God is everywhere, and nowhere. You cannot interact with Him, but you know He is there.

>get cat
Taken.

>give cat to god
God is everywhere, and nowhere. You cannot interact with Him, but you know He is there.
0 Likes

#3

Aha, that does what I want it to do, and doesn’t even implicitly take anything.

Surprisingly it is actually still important that god be a living thing contained in another backdrop - trying to reduce him to just a backdrop still produces the “something animate” message. You’d think “before doing ANYTHING” would cover that, but no.

Seems like it probably is best to handle this as an omnipresent object like that too rather than get tricky with the parser. It’s not like there will be many objects like that in the game. Thanks!

0 Likes

#4

You’re welcome :slight_smile:

Yeah, the “only something animate” thing is mentioned here (number 126) as something that needs smoothing in future inform 7 releases:
inform-fiction.org/suggestions/accept.html

0 Likes

(matt w) #5

You get the “something animate” response because the Understand lines for the actions involved contain a “[someone]” token. Since backdrops don’t match the “[someone]” token, you get that response at the parsing stage, even before the Before rules run–the command is never converted into an action because it can’t be parsed properly.

(Phil, that’s the outdated Inform 6 site, isn’t it?)

0 Likes

(Andrew Plotkin) #6

It is. (This merely underlines that this bit of confusion was inherited unchanged from I6 and has never been addressed.)

0 Likes

#7

I saw your post on the bug report site. I apologize if it was presumptuous to submit it there when it’s just confusion/misunderstanding, or deep in the code where it’s not easily fixable.

0 Likes

(Andrew Plotkin) #8

It’s always fine to submit a problem report. Sometimes reports get marked “works as designed” or “not a bug”, but we don’t expect you to know the whole 25-year history of Inform. (Which is, sadly, relevant here.)

0 Likes