vocabLikelihood with Plural objects

Suppose I have two identical objects in nearly every way in the same room, their only distinction being who they belong to. Like this overly simplistic example, for instance:

[code]Dad: Actor ‘Dad’ ‘Dad’ @startRoom
“It’s dad”
;

  • apples1: Possession ‘appleapples/fruitfruits’ ‘apples’
    “They’re dad’s apples”
    vocabLikelihood = 2
    isPlural = true
    ;

Mom: Actor ‘mom’ ‘Mom’ @startRoom
“It’s mom”
;

  • apples2: Possession ‘appleapples/fruitfruits’ ‘apples’
    “They’re mom’s apples”
    vocabLikelihood = 1
    isPlural = true
    ;[/code]

For arbitrary reasons I won’t go into, Dad’s apples are important, while Mom’s are not. I want every command that refers to any of the vocab words to refer to Dad’s apples, UNLESS the player specifically qualifies his command as referring to Mom’s, in which case I want him to allow him to do the same things he can do with Dad’s apples (Thus Mom’s apples cannot be a Decoration).

I short, I want commands like “x apples” to refer to apples1 only, instead of listing both apples1 and apples2’s descriptions.

Setting vocabLikelihood like the example shows does what I want for the singular vocab words (“x apple” returns only apples1’s desc), but the plural ones refer to both, even though I’d like for mom’s apples to not be referred to unless the player specifically specifies them. Is there some way to do this, or will the parser always give priority to all objects who fit a command in plural?

The parser will always return all objects that match a plural. The simplest approach is to not actually mark the vocabulary as plural:

Dad: Actor 'Dad' 'Dad'
    "It's dad"
;

+ apples1: Possession 'apple/fruit/apples/fruits' 'apples'
    "They're dad's apples"
    vocabLikelihood = 2
    isPlural = true
;

Mom: Actor 'mom' 'Mom'
    "It's mom"
;

+ apples2: Possession 'apple/fruit/apples/fruits' 'apples'
    "They're mom's apples"
    vocabLikelihood = 1
    isPlural = true
    dobjFor(Default) { verify() { nonObvious; } }
;

Which works in this simplistic case, but may not if you actually want the plural-matching behavior to find all matching objects except for Mom’s - if brother and sister had apples as well, say.

Another option is to set up the vocabulary for Mom’s apples like this:

apples2: Possession 'mom\'s apple/fruit*apples fruits' 'apples'
    "They're mom's apples"
    isPlural = true
    weakTokens = ['apple', 'fruit', 'apples', 'fruits']
;

Which is sort of backwards but does the job, at the cost of “x mom’s” referring to the apples (since the possessive adjective is the only strong vocabWord in the list.)