What every client — the terminal's, the browser's, the desktop's — needs from ExPilot,
as Cauldron2D.Client.Game asks for it: the title, the keys, the arenas, how a view
is drawn, and the sound and music.
A player's own shipshape, in XPilot's notation, is read from
$XDG_CONFIG_HOME/expilot/<player>.shipshape when they join an arena; every ship is
drawn with its own shape, the default where a player has none.
Drafter.run(Cauldron2D.Drafter.Client, props: %{game: ExPilot.Client})The arenas come from the prop :source: :local (the default), the arenas this VM
runs; {:node, node}, a connected node's, joined across the connection; {:url, url, token}, a server's over its WebSocket through Cauldron2D.Net.Link.World, whose
views are the wire's frames — drawn here from the local atlas, their hud as the
server wrote it, with no music of their own. A browser's join params team and
spectate become the join props.
Summary
Functions
The hud's parts in order, each tagged: :radar (12 rows), then for a pilot :name,
:fuel, :score, :lives, :race, :status, a blank, :items (a heading and a
row an item), a blank and :scores; for a watcher :watching in place of the pilot
rows; and last :messages, the latest three, each a row of elements.
Functions
The hud's parts in order, each tagged: :radar (12 rows), then for a pilot :name,
:fuel, :score, :lives, :race, :status, a blank, :items (a heading and a
row an item), a blank and :scores; for a watcher :watching in place of the pilot
rows; and last :messages, the latest three, each a row of elements.