Log inGet started
World

Blockbuster 767

Branchmain
Branchesmain
Commit8e9b87fcce

README.md

art

The drawn things on BLOCKBUSTER 767's screens, as inline SVG. Every function returns a document string for an svg widget's svg prop.

local Art = require("game.ui.art")
{ type = "svg", props = { svg = Art.toyPlane(-13) }, style = { width = 300, height = 300 } }
toyPlane(tilt)The hero mark: the toy 767 from above — moulded fuselage, swept wings, two underslung engines with fan faces, tailplane, fin, livery stripe, window rows and the wind-up key on the tail.
windKey(wound)The key alone, gold when wound and dulled when spent. The planes-left pips and the Kid's name tag use it.
skyline(flattened)A strip of the wooden city. Towers past the flattened share are drawn lying on their sides, so the end card's strip reads as the damage done.
star(earned)One rating star, filled or an empty outline.
part(name, intact)An airframe part — leftWing, rightWing, leftEngine, rightEngine, tail — struck through in crayon when it has snapped off.
trimDial(heading, range)The wind-up phase's heading dial.
boostMark(on) / diveMark(on)The two throttle marks.
chainMark()The flame on the multiplier chip.
caret()The mark beside the lit menu row.
toppleMark() / shoveMark() / fallingBlock()The three marks on the wreck tally's rows.

Nothing here reads game state: a caller passes what it wants drawn and gets markup back, so one glyph serves a card, the HUD and a hint line at whatever size the box gives it.

Two things worth knowing before editing one:

  • A document is assembled as a table of LINES joined with newlines. A Luau interpolated string is one line only, so a multi-line document written as a single backtick literal does not parse.
  • An svg widget letterboxes its document inside its box. A wide document in a tall box leaves air on both sides, so a caller that wants the drawing to fill the box gives the box the document's own proportion.