Longshot City Character Sheet


Longshot City character sheet

Check out Longshot City on Itch.

The one time I ran this game I had a time-traveling ghost possess an influencer live-streaming a self-replicating robot outbreak so they could use their psychic powers to fight the robots. Later the ghost possessed another hero while he ate drive-thru food so they could both recover with the sustenance.

Source code discussion

This is the first horizontal full-page character sheet I made. I used Typst.

Font choice

I went with the Patrick Hand SC font as an easy option for a handwritten font. Kinda like comics. For numbers I used Comic Helvetic, a blursed cross between Comic Sans and Helvetica. Tables use Alegreya.

Fun with layout

I started with a loose facsimile of the official sheet, with the grid evenly split down the center. After a while, I remembered I didn’t need to fold the sheet or cut it in half, so I messed around with the grid’s column widths, expressed as fractional units (fr). Typst made it easy to adjust the weights. This let me give the skills & powers list and attacks list more room to breathe.

Content from ranges

In the Runic Magic project, I used array.map to create content from an array of dictionaries. For this project, I use a for loop over a range(). This lets me easily work with numbered content, such as the labels on the Attacks and Inventory sections of the sheet.

Each iteration of the loop returns a 1-length array, which Typst combines into a single array that I then spread to populate the containing grid.

I didn’t realize you could use the * operator to make copies of content, so there’s a few spots where I use this method even though I don’t need to do anything with the number.

Quick reference sheet

An exercise in information density. Longshot City uses per-weapon lookup tables for damage, which you copy onto your character sheet (in theory). Power stamina also aren’t noted in the character backgrounds section, and it’s inconvenient to flip through the book to find them. It’s also easier if there’s a sheet everyone can pass around instead of the one device with the PDF.

Longshot City character sheet

Nothing tricky for these, just raw brute force. I store the actual table contents in arrays to make them easier to handle – they’re quite long when the code formatter forces each number onto its own line, just your standard comma separated values.

I need to do another editing pass or two on the rules reference – probably rip out the entire initiative section (“let the GM tell you when it’s your turn, each combat round is one two-page spread long”) to make room for more examples.