# elixir_quake v0.1.0 - Table of Contents

> Quake in Elixir, played in a terminal, on the Cauldron engine.

## Pages

- [ElixirQuake](readme.md)
- [Changelog](changelog.md)

## Modules

- [ElixirQuake.Assets](ElixirQuake.Assets.md): The game's files, read once and shared by every process: the game directory, the
palette and light table, the QuakeC program, and each map, model and sound the first
time it is asked for.
- [ElixirQuake.Client](ElixirQuake.Client.md): Quake as a `Cauldron2D.Client.Game`: the keys, the picture the terminal shows and the
sounds.
- [ElixirQuake.Effects](ElixirQuake.Effects.md): What the player's screen shows besides the world: particles and trails, lightning
beams, the colour washes of damage, bonuses, power-ups and liquids, the kick of being
hit, the pain face, printed messages, the intermission and the closing text.
- [ElixirQuake.Game](ElixirQuake.Game.md): Quake as a `Cauldron2D.Game`, single player: the held actions become Quake commands,
the server runs a frame each tick, and what it reports (its events; the player's packet
is taken and left unread each frame) becomes the screen's effects
and sounds.
- [ElixirQuake.LightPoint](ElixirQuake.LightPoint.md): How brightly the world is lit at a point: the lightmap of the first surface straight
below it, within 2048 units, with each light style at its present scale. Models are
lit by it.
- [ElixirQuake.Menu](ElixirQuake.Menu.md): Quake's menus, as the player moves through them: the main menu, single player,
options, customize controls, help and quit, each answering the keys Quake's do.
- [ElixirQuake.Menu.Draw](ElixirQuake.Menu.Draw.md): Quake's menus drawn as Quake draws them, on a 320 by 200 canvas whose colour 255 is
see-through: the plaque and title pictures, the spinning cursor, options with their
sliders and switches, the controls with their keys, the help pages and the quit box.
- [ElixirQuake.Menu.Quit](ElixirQuake.Menu.Quit.md): The messages Quake asks "are you sure?" with when the player quits, four lines of up
to 24 characters each, from id Software's `menu.c`.
- [ElixirQuake.Particles](ElixirQuake.Particles.md): Quake's particles: blood and puffs, explosions, lava and teleport splashes, and the
trails behind rockets, grenades, gibs and magic missiles, each moving by its kind and
dying at its time.
- [ElixirQuake.Render](ElixirQuake.Render.md): The player's picture: the world and everything in it through `Cauldron3D`, the held
weapon, particles and beams, the status bar, messages, the intermission tally and the
closing text, in the palette washed by damage, bonuses, power-ups and liquid.
- [ElixirQuake.Source](ElixirQuake.Source.md): Quake's program, maps and models for `QuakeServer`, from `ElixirQuake.Assets`.
- [ElixirQuake.StatusBar](ElixirQuake.StatusBar.md): Quake's status bar, 320 by 48: the inventory bar (weapons held, ammunition counts,
keys, power-ups and runes) over the main bar (armour, face, health, ammunition).
Colour 255 is see-through.
- [ElixirQuake.Text](ElixirQuake.Text.md): Text in Quake's console font (`conchars`, sixteen rows of sixteen 8 by 8 characters),
drawn onto a `Cauldron3D.Frame`. Colour 0 of the font is see-through.
- [ElixirQuake.View](ElixirQuake.View.md): What the player sees, gathered from the game each tick for `ElixirQuake.Render`

## Mix Tasks

- [mix quake](Mix.Tasks.Quake.md): Play Quake in the terminal, from the shareware or registered game files or
LibreQuake's.

