Resident style guide & handoff

THE
RESIDENTS

Tiny procedural beings who keep the town running.
Monochrome by default. Color when selected, active, or interacting.

CORE PRINCIPLE

Color is attention. A resident lights up when you select it, when it speaks, or when something happens to it.

passive→active

01The state systemmonochrome by default, color on attention.

Passive
Passive
⤳
Attention
Attention
⤳
Returns
Returns

Attention triggers

  • ·Selected by the user
  • ·Speaking, or being spoken to
  • ·Performing an action
  • ·Involved in an event
  • ·Carrying new information

Return to passive

2–5 seconds after the trigger ends. Configurable in DEFAULT_ATTENTION_HOLD_MS. The world is calm by default — color is for moments, not background.

02The founding casttwenty residents · each one does one job.

Lifecycle & identityhow a thing begins, names itself, and is found again.5 residents
Init
01/20
__init__
opens the town.
init passive
passive
init active
active
Repr
02/20
__repr__
describes what it sees.
repr passive
passive
repr active
active
Iter
03/20
__iter__
walks the same loop.
iter passive
passive
iter active
active
Hash
04/20
__hash__
identifies and files.
hash passive
passive
hash active
active
Len
05/20
__len__
counts what's there.
len passive
passive
len active
active
Containers & accesshow things are put away, fetched, and called for.5 residents
Getitem
06/20
__getitem__
fetches by name.
getitem passive
passive
getitem active
active
Setitem
07/20
__setitem__
puts things in their place.
setitem passive
passive
setitem active
active
Contains
08/20
__contains__
checks if it's here.
contains passive
passive
contains active
active
Call
09/20
__call__
makes it happen.
call passive
passive
call active
active
Bool
10/20
__bool__
yes or no — no maybe.
bool passive
passive
bool active
active
Arithmeticthe math crew. They combine, separate, and scale.5 residents
Add
11/20
__add__
brings two together.
add passive
passive
add active
active
Sub
12/20
__sub__
takes one from another.
sub passive
passive
sub active
active
Mul
13/20
__mul__
scales things up.
mul passive
passive
mul active
active
Div
14/20
__truediv__
splits things evenly.
div passive
passive
div active
active
Mod
15/20
__mod__
keeps the leftover.
mod passive
passive
mod active
active
Higher-orderthe bots who do the same thing to many things.5 residents
Prop
16/20
@property
looks after each property.
prop passive
passive
prop active
active
Sort
17/20
sort()
arranges in order.
sort passive
passive
sort active
active
Filter
18/20
filter()
keeps only what passes.
filter passive
passive
filter active
active
Map
19/20
map()
touches each one the same way.
map passive
passive
map active
active
Reduce
20/20
reduce()
folds many into one.
reduce passive
passive
reduce active
active

03Implementationthe engine consumes art. it does not draw it.

Asset structure

assets/residents/
  <id>/
    passive/front.png   (monochrome)
    active/front.png    (color)

Every resident ships at minimum these two PNGs. Selecting the resident swaps the src.

Engine rules

  • ·Renders PNG sprites only
  • ·Never draws characters from primitives
  • ·Selection swaps passive → active art
  • ·Missing asset = placeholder, not substitute
  • ·Pivot is feet-center

What lives in code

Placement on the world map. State (passive / active / selected / alert). Idle bob and prop sway. Route overlays. Speech bubble offsets.

art is fixed. behavior is alive.

04The approved guidessource of truth.

APPROVED · v3
resident-style-guide.png · 1024×1536
resident-style-guide.png · 1024×1536if the asset and the guide disagree — the guide wins.
APPROVED · v3
world-style-guide.png · 1536×1024
world-style-guide.png · 1536×1024if the asset and the guide disagree — the guide wins.

05v3.1 artist guidesF1–F4 delivery · open in browser.

Artist brief
F1 crop · per-family acceptance
Pose plate
shipped front + missing slots
World guide
v3 environment reference
Resident guide
v3 cast reference