the-great-game.gossip.news-items
Categories of news events interesting to gossip agents
degrade-character
(degrade-character gossip character)
Return a character specification like this character
, but comprising only those properties this gossip
is interested in.
degrade-location
(degrade-location gossip location)
Return a location specification like this location
, but comprising only those elements this gossip
is interested in. If none, return nil
.
interest-in-character
(interest-in-character gossip character)
Integer representation of how interesting this character
is to this gossip
. TODO: this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.
interest-in-location
(interest-in-location gossip location)
Integer representation of how interesting this location
is to this gossip
.
interesting-character?
(interesting-character? gossip character)
Boolean representation of whether this character
is interesting to this gossip
.
interesting-item?
(interesting-item? gossip item)
True if anything about this news item
is interesting to this gossip
.
interesting-location?
(interesting-location? gossip item)
True if the location of this news item
is interesting to this gossip
.
learn-news-item
(learn-news-item gossip item)
(learn-news-item gossip item follow-inferences?)
Return a gossip like this gossip
, which has learned this news item
if it is of interest to them.
make-all-inferences
(make-all-inferences item)
Return a list of knowledge entries inferred from this news item
by this gossip
.
news-topics
Topics of interest to gossip agents. Topics are keyed in this map by their verbs
. The keys
associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:
actor
is the id of the character who it is reported performed the action;other
is the id of the character on whom it is reported the action was performed;location
is the place at which the action was performed;object
is an object (or possibly list of objects?) relevant to the action;price
is special to buy/sell, but of significant interest to merchants.
Notes:
Characters:
TODO but note that at most all the receiver can learn about a character from a news item is what the giver knows about that character, degraded by what the receiver finds interesting about them. If we just pass the id here, then either the receiver knows everything in the database about the character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed.
Locations:
A ‘location’ value is a list comprising at most the x/y coordinate location and the ids of the settlement and region (possibly hierarchically) that contain the location. If the x/y is not local to the home of the receiving agent, they won’t remember it and won’t pass it on; if any of the ids are not interesting So location information will degrade progressively as the item is passed along.
It is assumed that the :home
of a character is a location in this sense.
Inferences:
If an agent learns that Adam has married Betty, they can infer that Betty has married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. I’m not convinced that my representation of inferences here is ideal.