||Interface for pieces that exclusively occupy a cell.
||A piece that is animated.
||A terrain piece that can be trigged by color events.
||A kind of piece that exists on the board above items and terrain,
used to handle animation like the throwing of items.
||A model element that can provide access to the current game board.
||Items are objects that can be picked up, moved, thrown and/or used by
||An element of the game board.
|Serializer<T extends Piece>
||For each piece type there is a serializer that can convert the piece back and
forth to a key, and that also provides some metadata about the type so it
can be manipulated in the map editor.
||Terrain is a piece type that describes the behavior and appearance of
a cell on the board.
||A piece (always terrain) that proxies another terrain.
||Abstract implementation of a piece.
||The class that executes the animation timeline, using an AnimationProxy
to bridge between the immutable nature of game pieces (all instances of
a piece on the board are the same piece) and their occurrence at specific
places and at different moments on the animation timeline (each instance
has unique animation-based state in the proxy).
||A proxy for a piece at a given position, which introduces the state
necessary to track the animation of pieces on the board.
|Bag<T extends Piece>
||A collection of items or effects.
|Bag.Entry<T extends Piece>
||An entry in the bag.
|BaseSerializer<T extends Piece>
||Base support for serializers that escape/unescape pieces as part of their
||There's some interesting color transformation support we
can provider here, and color is an important parameter object
for many objects like doors and keys and transformers.
||A constants class that brings together combat and damage numbers from
across the game so it is easier to tweak.
||This could almost just be an interface that both Game and Event
implement, and then HasBoard could be removed, and only this
interface could be exposed when event is used for certain methods.
||A direction on the map, also representing the information to interact with
adjacent terrain on the map or adjacent maps.
||A game event, with the information necessary for the callbacks on the various
pieces to create a meaningful response to the event.
||In order to make effective use of proxies, limited use can be made of the
||Central controller for the game.
||Immutability has been a big success in this game, in terms of keeping the
bugs due to behavior under control.
||This represents both the player, and the state of the game for the
||A bag that tracks the player's inventory.
||A typesafe enum that represents anything that has a boolean state, such as doors (open or
closed), switches (on or off), etc.
||An immutable, visual representation of a piece in the game.
|TypeOnlySerializer<T extends Piece>
||A serializer base that will work for any piece that is defined only
by its type.