Skip to content
Shattered Crowns

v0.5.8-dev · 2026-07-19

Dressed to Kill

Last release dressed the units; this one arms them. The equipment system, inert for its whole prior life, now actually changes a unit — and a Discord bot went up so the playtest can start.

Added — the equipment system wakes up (929d36a, 3fe7227)

  • Layer 1: recalc_stats_from_db now runs inside apply_loadout_to_unit, so gear finally reaches live units instead of only tests. Ordering is load-bearing: job base → gear → recalc → HP/MP top-up → supports → statuses.
  • Layer 2 — weapon classes: WeaponType grew from 8 to 19 FFT classes, each with its own attack formula (dagger (PA+SP)/2, staff MA, gun flat WP, and so on). FFT multiplies XA × WP; we add WP to the attack rating instead, to keep the live damage curve rather than re-inflate it. Weapon range applies to the basic attack (bow 5, gun 6, …) and reaches both the AI and the client.
  • Layer 3 — rolled gear: each of the 5 slots draws a per-battle item from a rarity bucket (60/30/9/1). Account level raises the roll FLOOR only, never the ceiling, and a roll at or below the standard kit keeps the standard item — the ceremony can only be good news. No inventory, shop, or ownership.
  • ~150 items ported from the WotL list, replacing 32 placeholders. Body/head armour grants HP, not DEF (FFT's own design).

Added — the Equip-* supports and two-weapon fighting (4efb5c5, df1a003, 8324e9a)

  • Eleven Equip-* supports, blocked since v0.5.6 because the gear they hook did nothing. Under a rolled model they widen the unit's ROLL POOL instead of unlocking a menu entry, which makes them a genuine gamble: you spend your one Support slot on a different distribution of what can turn up. A ninja with Equip Guns is a gunner that battle.
  • The weapon roll is two-stage — class first, then rarity, then the item. Rolling the class first is what makes the bucket odds mean what they say; a merged-pool draw would instead weight each class by how many items happen to be authored for it. Buckets: swords 70/30, knives 70/30, bows 70/30, axes 40/40/20, polearms 60/30/10, guns 35/45/20 (gun/book/instrument), staves 60/40, katana 100, fists 100% bare-handed.
  • Doublehand doubles a one-handed weapon's power — two-handed classes already grip with both hands, so it no-ops there. Dual Wield fills the shield hand with a second weapon and makes the basic Attack strike TWICE. Both clear the shield. Of the whole family only Safeguard is still unbuilt: it needs gear destruction to protect against, which does not exist yet.

Added — Codex EQUIPMENT tab (b351839)

  • A fifth tab covering all 19 weapon classes and every item: each class's damage formula, reach, quirk and wielders, then every item grouped by roll tier with its real per-item drop rate. The roll is class → tier → item, so a tier percentage on its own would overstate each individual piece. The registry ships from the engine rather than being hand-mirrored, so the tab cannot drift from what the roll actually does.

Added — the movement R/S/M slot goes live (2e75693)

  • Move +2 / Jump +3 / Teleport / Levitate were pure tooltips for months; now apply_movement_stat_mods folds them into unit.stats, and get_move_range grew teleport and floating modes. The last inert R/S/M slot is now wired.

Added — flat-rate jackpot (a9be3a9)

  • One skill-rolling unit in ~150 now skips the per-ability passes and fields its ENTIRE primary catalogue (dressed in gold on the reveal card). A flat rate, deliberately not an all-miss trigger — that would fire constantly for small kits and never for large ones. Ninja and dragoon grew 4→9 actions.

Added — Discord playtest bot + build pipeline (78012b0, 09ecda2)

  • Saint Ajora rolls a unit exactly as a battle does via !roll CLASS SUBCLASS (and /roll with job autocomplete). The bot holds zero game knowledge — it calls GET /api/roll_preview, which runs the real roll on a throwaway match state — so it can never quote odds the game doesn't use.
  • tools/publish-playtest.ps1: build → publish to the public builds repo → announce in #releases. Builds ship from shattered-crowns-builds because the main repo is private; the 56 MB zip is a link, never a Discord upload.