Game Event Pipeline
The game engine checks for spell effects at many specific steps in the game
pipelines. The Game Event Pipeline determines exactly when each
active spell contributes its effect.
Events and Spell Effects
Card Text Phrases
A Text Phrase is a Game Event
Containment Hierarchy and Event Bubbling
Event Handling Pipelines
Pipeline for an Event on all Players
Pipeline for an Event on a Spell Target
Events and Spell Effects
Card Text Phrases.
Card texts use the following phrases to specify exactly when an effect
will happen within a game turn. Each phrase corresponds to one step in a game
turn phase or pipeline.
A Text Phrase is a Game Event.
Internally, every card text phrase is represented as an event, which
is a message that can be passed around. When the Sanctum game engine reaches
one of the above steps, it broadcasts the event to all active
spells in play. Spells work by responding to the events they're interested
in, as written on their card texts.
Usually, many different active spells want to respond to the same event. We
need a unique order in which to evaluate all active spells. This is handled
by event bubbling.
Containment Hierarchy
and Event Bubbling. Every spell
target defines a next spell target for event handling. Whenever
a spell target receives an event, it handles the event, and also forwards that
event to the next spell target in line. Because the next
targets generally go upward toward the globe, this forwarding is
called bubbling. Mnemonic: Think of an event as a bubble in a soda,
which gradually floats upward. This allows the game engine to provide event-handling
inheritance based on dynamic entity containment relationships, which is a useful
and intuitive mechanism.
Event Handling Pipelines
Pipeline for an Event
on all Players. Most events listed in the phases
of a game turn are untargeted. They are applied directly to
all players.
Pipeline for an Event
on a Spell Target. Most events that occur within the game pipelines
are targeted, i.e. they pertain to a current spell
target.
We can unroll this pipeline to obtain the following more detailed
description.
v2.20.00 Last updated 2009/03/22
|