Then, for Sarah, we could define an eventList for dealing with non-Thing objects, and override dontHaveMsg to provide a list of responses when she's asked for game objects she doesn't have:
+ DefaultAskForTopic, ShuffledEventList
[
'<q>What do you need <<gTopicText>> for?</q> she wonders. ',
'{The sarah/she} shakes her head. <q>Sorry, I can\'t help you there,</q>
she says. ',
'<q>You must be joking!</q> she laughs. ',
'<q>No, I think not,</q> she refuses with a firm shake of the head. '
]
dontHaveList : ShuffledEventList
{
[
'<q>I haven\'t got <<lobj.aName>>,</q> she protests. ',
'<q>I\'m afraid I don\'t have <<lobj.itObj>>,</q> she tells you. ',
'<q>What <<gTopicText>>?</q> she asks. ',
'<q>What makes you think I\'ve got <<lobj.itObj>>?</q> she demands. '
]
lobj = (lexicalParent.obj)
}
dontHaveMsg { dontHaveList.doScript; }
;
In the above definition we use gTopicText to get at whatever the player typed after ASK FOR. We define lobj = (lexicalParent.obj) on dontHaveList simply as a convenience (to avoid having to type lexicalParent.obj in all the strings we list).
We can now go ahead and provide DefaultAskForTopics for some of other NPCs. We'll start with Solomon, putting this one in the solomonTalking state:
++ DefaultAskForTopic, ShuffledEventList
[
'<q>I\'m afraid I can\'t oblige you there,</q> he replies. ',
'<q>I\'m renowned for my wisdom, not for <<gTopicText>>,</q> he points out. ',
'<q>You\'ll have to go elsewhere for that,</q> he tells you. ',
'<q>That\'s not in my power to give - I suggest you pray to the LORD our
God, and see if he may graciously grant your request,</q> {the solomon/he}
tells you. '
]
dontHaveMsg = "<q>Do I look as if I have such a thing about my person?</q>
he demands. "
;
Similarly, we can put a DefaultAskForTopic in the curatorTalking state:
++ DefaultAskForTopic, ShuffledEventList
[
'<q>I never give <<gTopicText>> when I\'m on duty,</q> he informs
you pompously. ',
'<q>It isn\'t my job to dispense <<gTopicText>>,</q> he tells you. ',
'{The curator/he} mutters something inaudible under his breath. ',
'<q>I should go elsewhere for that,</q> he advises you. '
]
refuseMsg = "<;q>Now that I've got it, I intend to hang on to it,</q> he tells you. "
dontHaveMsg = "<q>It\'s not mine to give,</q> he tells you flatly. "
;