v0.5.10-dev · 2026-07-19
Show Me What You Rolled
The board finally agrees with the reveal card. Two art purchases (KayKit Adventurers EXTRA, Fantasy Weapons EXTRA — both CC0, licences checked before anything was extracted) went in, and with them the last place where the visuals were guessing.
Added — every job looks different (7750e61)
Two new bodies (Druid, Engineer) plus 21 recolour sheets turn 6 meshes
into 8 bodies × 4 skins = 32 possible looks for 18 jobs, so every job now
owns a unique (body, skin) pair. Before this, five jobs shared the mage mesh
and only a colour wash told them apart — Arcanist, White Seraph, Eidolon
Caller and Chronomancer are now four visibly different casters.
Two thematic re-homes came free with the new meshes: the Apothecary moved to the Engineer (it is a gadgeteer, not a robed caster) and the Geomancer to the Druid (the terrain mage finally looks like one).
The job-colour tint moved 0.62 → 0.82 toward white. That multiply only ever existed to compensate for missing art; with real recolours underneath, it was washing KayKit's hand-authored palettes into job-coloured silhouettes.
Barbarian_Large is deliberately not wired. It is built on Rig_Large, not
Rig_Medium — measured, not assumed: 0/28 animation tracks resolve and its
bounds are ~2× the other bodies. No Rig_Large combat set ships in the pack,
so wiring it would field a monk that cannot punch or cast. Strictly worse than
the mesh it would replace, so the files are not in the repo at all.
Changed — units hold the weapon they ROLLED (b003fc2)
Gear is drawn per battle across four rarity tiers, but every unit rendered one fixed mesh chosen by its job — so an Equip-Swords White Seraph that drew Runeblade stood there holding a staff.
The roll now wins; the job's weapon is fallback only. WEAPON_MODELS maps
weapon_class → [common, uncommon, rare, ultimate], with deliberate
escalation inside each row: Sword climbs sword_1handed → sword_A → sword_B → sword_E, and KnightSword — almost entirely ultimate items — takes the two
grandest meshes owned. The animation moves with the weapon too, so a
priest holding a sword swings like a swordsman.
109 of 126 weapons now have art. The 17 that fall back are the four classes KayKit has no mesh for at all — Gun, Instrument, Cloth, Bag — and those keep the job's weapon rather than showing something that reads as the wrong weapon entirely. Katana and Ninja Blade borrow swords and daggers, marked in the table as stand-ins rather than matches.
New art: swords A–G, a scythe, spear_B, staff_C/D, wand_B, hammer_D,
dagger_C, bow_C, axe_D, shield_D, fistweapon_C, plus the ten RPG
Tools models that read as weapons. The rest of that pack is workshop clutter
and was left in the zip.
Guards
smoke_unit_models now fails the build when two jobs share a (body, skin)
pair, when a named recolour is missing, when a rollable weapon class has no
row (or a row exists for a class the engine never rolls), and when a named
mesh is in no pack. It also asserts the rule itself with the case that
motivated it — healer + runeblade → holds sword_E, swings 1h.
Both new guards were verified by breaking them: inducing a look collision
reports "ninja and mystic are both rogue_hooded/", and reverting the
roll-wins change drops the healer back to staff2. A test that cannot fail is
not a guard.