Events can be produced (thrown) by several ways, as we said in the Event section.
The "patient zero" could learn the info
directly (rare case)
Example 1. God of War
The God of War is unhappy and asks for more blood. All his believers will be directly notified (because he's an omnipotent god).
as a direct witness (transported with a Stimulus)
Example 2. The robbery
Raoul is attacked by a robber. The clients of the bakery and he know a robbery happened.
Example 3. The king
The king makes a speech and announces new trade agreements with an other kingdom. All the crowd knows about this event.
could be the source of the Event
Example 4. Lier
Sedecias launch false rumour on Raoul: the baker is a murderer. The false Event'll propagate.
Example 5. Pyromaniac
The pyromaniac knows that he burns the forest.
There are two ways to diffuse them:
through Items: Items can be used to transport information (tape recorder, letter, CD, marble tablet, book, computer, ...)
through Creatures: Creatures can talk, gossip, lie, etc.
The direct transmission (Controllers are directly noticed) relies on EventsDispatchers.
Events are transmitted only to Entities which ask for them (so which can interpret them).
Some Entities (like gods) are allowed to produce an Event and send it to an EventsDispatcher. Everybody can receive Events by registering for some Events type to an EventsDispatcher (the faithful).
This way implies nothing about perception.
Events reception should be logical or at least plausible... So somebody should have good reasons to listen to Events. |
The source of the Event'll send Stimuli to the StimuliDispatcher (and to the EventsDispatcher). The Event is sent linked with these Stimuli.
The StimuliDispatcher'll propagate these Stimuli+Event. As for Stimuli, Events can be not understood or misunderstood. The receiver can reemit what it perceived (can be used for rumours, reports, info diffusion, etc).
A Event can be linked to zero, one or more Stimuli. A Stimulus can be linked to zero, one or more Events.
Example 6. Dead man
"You see a dead man."
A 'death' Event is linked to the visual Stimulus, so the Entity can 'manage' this death and reacts logically (burying, stealing, doing nothing, spit on its enemy corpse, cry on its mother corpse, call the police, start investigation, etc.
Example 7. The sleeping man
You see a sleeping man and you make a mistake.
A wrong 'death' Event is linked to the visual Stimulus. You'll probably be surprised if you try to steal the man. If you go to the police, you'll repeat what you see (Stimulus + Event)
The Event is linked to some Item (a media in fact). If an Entity is able to read the content of the media, he/she/it can learn the Event.
To have the Item is not enough: few people can read a CD-ROM just by touching it and sensing the holes on its surface...
Moreover content can be ciphered or incomprehensible for the Entity (unknown language, unknown domain, etc).
So Creatures can exchanged info by writing letters, by calling, etc.
Cf Memory-RFC for rumours mechanism
The EventsDispatcher has two roles: to log all Events and to relay some of these Events.
All Events are sent to the EventsDispatcher (and some to a StimuliDispatcher).
Some Entities could subscribe to an EventsDispatcher. Enrolment is a way to say "I want to be informed of Events types A, B and C." You don't declare what you plan to generate but only what you wish to receive.