How to remove the word "about" from the topic system?

There’s a complex system in adv3 for handling when the player types this command:

Bob says, “I can fix just about anything. What needs fixing?”

Tell Bob about wagon

But is there an easy way to modify this so the preposition “about” becomes either gone or optional, this can work with a literal string like so:

Bob says, “I can fix just about anything. What needs fixing?”

Tell Bob “wagon”

or even

Tell Bob wagon

Where I want to use this is that I’d like to have a card game where the player can type:

Tell dealer “hit”.

But without making them have to type:

Tell dealer about hit

Which looks kind of dumb and isn’t something a player would ever guess to type unless they knew about the TADS3 system and the types of commands it tends to support.

Actaully, ANYTHING where I could pick a different preposition other than “About” would help. This would be acceptable too:

Ask dealer FOR card
Ask dealer FOR hit
Ask dealer TO stay

If ASK DEALER FOR HIT is acceptable, you can just use an AskForTopic instead of an AskTopic.


dealer: Person 'dealer' 'dealer'
  isHim = true

+ AskForTopic @tHit
      /* Your code here for dealing with a hit request */


tHit: Topic 'hit'

For the other phrasings you’d probably have to define a custom VerbRule. If you want to be able to use SAY HIT you could try downloading my SayQuery extension from the IF Archive.

Hmm… I’ll consider this. Thanks for the response. I am always slightly reluctant to use an extension to the library before I fully understand the core library though. For now I’ve just read about using a CustomTopic with regular expressions to define the syntax provided they happen during a specialized convnode and that may be a solution to the problem if I can design the dealer’s conversation such that it’s always in that convnode when it’s waiting for a hit or stay.