Disambiguate specific action

what’s the most efficient way to change how a specific action is disambiguated?

for instance, if the player types “ask mr. smith about”, the parser will respond with “did you want to ask mr. smith about…” and then list off every object in the game that is a (topic $), including everything that hasn’t been encountered or seen yet.

i’ve poked around in (disambiguate action) and have an idea or two but am afraid of breaking something.

If you can do it with (unlikely ...) rules, that’s the most straightforward way to do it. Candidates are sieved by the likelihood rules before they are passed on to the disambiguation.

(unlikely [ask/tell $Obj about $Topic])
	~(known $Topic)

(unlikely [ask/tell #mrsmith about $Topic])
	(asked mrsmith already $Asked)
	($Topic is one of $Asked)

The trait and the global variable examples above are up to you to implement of course.

yup, that’s what i needed.

although now i’m just realizing what a tangle it is trying to manage what’s ‘known’ and when is it ‘known’.

or how to deal with the player not yet knowing something but the interrogated NPC does.

i’m thinking this is not a hill worth dying on and may move on.