import { createRng, deriveSeed, type Seed } from "@deadhead/sim"; const SHIP_ADJECTIVES = [ "Dusty", "Rusty", "Lucky", "Stubborn", "Quiet", "Restless", "Patient", "Wandering", "Crooked", "Faithful", "Midnight", "Copper", "Iron", "Silver", "Old", "Brave", ]; const SHIP_NOUNS = [ "Mule", "Ox", "Heron", "Comet", "Lantern", "Drifter", "Kettle", "Anchor", "Sparrow", "Badger", "Tortoise", "Pilgrim", "Barge", "Nomad", "Hauler", "Wren", ]; const FIRST_NAMES = [ "Rae", "Jonah", "Mira", "Tobias", "Ines", "Kofi", "Lena", "Arjun", "Sasha", "Dmitri", "Yuki", "Nadia", "Emeka", "Freya", "Mateo", "Priya", ]; const LAST_NAMES = [ "Okafor", "Lindqvist", "Moreau", "Tanaka", "Reyes", "Novak", "Haddad", "Kowalski", "Mbeki", "Castillo", "Sorensen", "Iyer", "Brennan", "Vasquez", "Kim", "Abara", ]; /** The nth ship name in a world (decision 0.5.14): stable for a given seed and n. */ export function shipName(worldSeed: Seed, n: number): string { const rng = createRng(deriveSeed(worldSeed, `ship-name:${n}`)); return `${rng.pick(SHIP_ADJECTIVES)} ${rng.pick(SHIP_NOUNS)}`; } /** The nth hired pilot's name in a world: stable for a given seed and n. */ export function pilotName(worldSeed: Seed, n: number): string { const rng = createRng(deriveSeed(worldSeed, `pilot-name:${n}`)); return `${rng.pick(FIRST_NAMES)} ${rng.pick(LAST_NAMES)}`; } const COMPANY_FIRST = [ "Halcyon", "Meridian", "Lodestar", "Northstar", "Bluewater", "Redline", "Ironclad", "Kestrel", "Copperhead", "Longhaul", "Brightwater", "Stonebridge", ]; const COMPANY_LAST = [ "Freight", "Haulage", "Cargo", "Logistics", "Shipping", "Transit", "Lines", "Carriers", ]; /** A company's default name, stable for its world seed (decision 0.5.75). */ export function companyName(worldSeed: Seed): string { const rng = createRng(deriveSeed(worldSeed, "company-name")); return `${rng.pick(COMPANY_FIRST)} ${rng.pick(COMPANY_LAST)}`; }