Sharpee
Chord / Characters & Conversation / Topic recency

Topic recency

Recency lets a row care about when something last came up. A topic is fresh, then recent, then stale as story time passes, and any condition can read it: when the-blow-up is fresh, or the negated form when the-blow-up is not fresh and the-blow-up is not recent for "only once this has had time to cool."

Inside a topic table, a refuse when <condition>: <phrase> row turns recency into a refusal — the person declines the subject and says why, instead of answering. That is the usual shape for a sore point: press it too soon and you get the brush-off you earned, wait and the real answer is available.

Two related predicates round this out. <topic> was discussed is true once a topic has come up at all, in any earlier conversation and in any order, and it survives save and restore — so it is the right way to gate something on the player having actually raised a subject. the subject changes is true on the turn a conversation is steered somewhere else, which lets a character notice the steer rather than simply following it.

define topics for Will Kemp
  about "the rose", "the offer":
    refuse when the-blow-up is fresh: kemp-too-raw
    refuse when the-blow-up is recent: kemp-too-raw
    phrase kemp-warms when the grievance was discussed
    phrase kemp-brushes-off
  about "the weather":
    phrase kemp-marks-the-turn when the subject changes
    phrase kemp-on-the-weather
end topics