Conversation Rules

version 7 by Eric Eve

  • Home page
  • Beginning
  • Previous
  • Next



  • Chapter: CONTROLLING RESPONSE ACCESSIBILITY

    A further sophistication is that Conversation Rules makes use of the Epistemology extension, which keeps track of which objects the player knows about. If the player asks an NPC about a thing the player character does not (yet) know about, the default response will be used even if a custom response has been supplied (in the relevant table) for that object. This prevents the player stumbling on something prematurely, or getting a response that presupposes something the player character does not know about (i.e. a thing which is still unfamiliar and unseen, as defined by the Epistemology extension). For example, suppose the PC doesn't know that Bob has a cousin called Fred until Bob mentions the fact in conversation; we could write:

        Table of Bob's Quizzes
      subject  response rule  response table  suggest  
      bob  --  Table of Bob Himself  2  
      fred  bob-fred rule  --  1  


        Table of Bob Himself
      response  
      "'How are you today, Bob?' you ask.  
      
      'Better than my cousin Fred, at any rate.' he mutters[reveal Fred]."  
      "'How are you doing?' you wonder.  
      'Oh I'm doing fine, just fine,' he assures you."  

        This is the bob-fred rule:
         say "'What's the matter with your cousin Fred?' you ask.

        'He's suffering an acute attack of Dutch Elm Disease,' he tells you."

    Now if we type ASK BOB ABOUT FRED before asking Bob about himself for the first time, we'll only get Bob's default response. The special tag "[reveal Fred]" changes Fred from unfamiliar to familiar (it's a to say rule that doesn't actually say anything), so that we can ask Bob (or anyone else) about Fred thereafter. Note that the 'To reveal X' rule is built into the Conversation Rules extension; it's not something we need to supply in our game code.

    This mechanism is fine for stopping the player character talking about things that aren't yet known to him or her, but there may be other reasons why we want to make a response temoparily unreachable, e.g because the NPC doesn't know about it yet, or it doesn't make sense to talk about it with this particular NPC until something else has been said. One way to deal with this situation would be to test for the appropriate condition(s) in the relevant response rule, but this may not always be convenient, particularly if we are using a response table to provide the response. Another method we can use is to set the value in the suggest to -1, which makes the topic unavailable (and, of course, not suggested) until the suggest value is changed to something else. Just as we can use "[reveal Fred]" to change Fred to familiar, so we can use "[quiz x to n]" or "[inform x to n]" to change the suggest column corresponding to x to n in the quizzing table or informing table of the current interlocutor (the NPC we're current talking to). So, for example, if it's possible that the player character already knows of the existence of Fred, but we don't want him asking Bob about Fred until Bob has mentioned Fred, we could change the above example to:

        Table of Bob's Quizzes
      subject  response rule  response table  suggest  
      bob  --  Table of Bob Himself  2  
      fred  bob-fred rule  --  -1  


        Table of Bob Himself
      response  
      "'How are you today, Bob?' you ask.  
      
      'Better than my cousin Fred, at any rate.' he mutters[quiz Fred to 1]."  
      "'How are you doing?' you wonder.  
      'Oh I'm doing fine, just fine,' he assures you."