orbit/js
Brian Fertig 831670c8ca Add faction territory floor and ring all stars by ownership
Branch sizes are inherently skewed; previously only the cap (median quota)
applied, so a small faction could start with a one-system sliver.

- FLOOR (balance.minTerritory, data/factions.json): a faction below the
  floor absorbs the nearest unowned eligible overflow first, then the
  richest faction's least-core systems — territory stays contiguous; a
  tiny galaxy with too few eligible systems is best-effort.
- Territory is now tracked per faction: g.factions.factionTerritories is
  the truth, the branch view is derived; capitals are placed inside the
  faction's post-floor territory, so a faction built entirely from
  borrowed space still gets its seat in its own territory.
- The galaxy plate rings EVERY star: faction color for territory, neutral
  silver for wild space (home included) — the ring color is the
  ownership read at a glance.
- dev/factions.test.mjs now checks the floor, cap, disjointness, and
  branch-view invariants; new throwaway diagnostics
  dev/faction-balance.diag.mjs / dev/faction-sweep.diag.mjs sweep seeds
  for the invariants + determinism.
2026-09-11 13:34:35 -06:00
..
build
…
comms
…
config
…
dev
…
entities
…
galaxy Add faction territory floor and ring all stars by ownership 2026-09-11 13:34:35 -06:00
mining
…
quests
…
reputation
…
research
…
save
…
scan
…
scenes Add far-sky lightning bolts to nebula systems 2026-09-10 23:11:21 -06:00
tether
…
ui Add faction territory floor and ring all stars by ownership 2026-09-11 13:34:35 -06:00
utils
…
vendor
…
visuals Add thunder audio on lightning strike edges 2026-09-10 23:11:35 -06:00
main.js
…