inform7

Giving certain kinds of things to certain people (relation between people and kinds of things)


I would like for the player to be able to give certain kinds of thing to certain people, where the default is that people do not accept the items, but it should be possible to override this.

I'm trying to do this using a relation.

The block giving rule is not listed in the check giving it to rules.

Interest relates one person to various things. The verb to like means the interest relation.

Check giving (this is the polite refusal of unwanted objects rule): 
    unless the second noun likes the noun: 
        say "[The second noun] disdainfully refuses [the noun]." instead.

Then setting up the kind / instance of the relation, where Billy should accept food.

Food is a kind of thing. A baguette is food. A baguette is here. 

Billy is a man. Billy is in Example Location. Billy likes food.

However taking the baguette and giving it to Billy results in:

Billy disdainfully refuses the baguette

However, if I say

Billy likes the baguette.

Then giving succeeds:

You give the baguette to Billy

How can I make Billy accept all food items?


Solution

  • I figured out how, not using a relation, but an either/or property.

    A person can be interested-in-food.
    

    With the giving-check:

    Check giving (this is the polite refusal of unwanted objects rule): 
        Unless noun is food and the second noun is interested-in-food: 
            say "[The second noun] disdainfully refuses [the noun]." instead.
    

    And giving setting property on the person:

    Billy is interested-in-food.