/** * Five named residents on the default look (stand-ins; the Frontier sheet names Vorlen, Elira, Kael and Bramm, the fifth is ours): the * archmage-guide at the Northern Pass, the curio shop at the Arcanum plaza, the scribe who sets the library hunt, the rival mage who * sets the ward-stone puzzle and the warden of the Zephyr foot who sends you at the mini-boss. Like Calverton's roster: a `resident` * kind dressed by name, a counter keyed by name in world.ts NAMED_SHOPKEEPERS, quests in the story engine by name. */ export type ArcaneFolk = { readonly id: string; readonly name: string; readonly place: string; /** Zone-local tile and the tile they look at (arcaneLands.ts frame). */ readonly lx: number; readonly lz: number; readonly faceLx: number; readonly faceLz: number; /** The same in world tiles. */ readonly x: number; readonly z: number; readonly faceX: number; readonly faceZ: number; readonly leash: number; readonly speak: string; readonly extras?: ReadonlyArray<{ readonly id: string; readonly label: string; readonly say: string; }>; readonly shop?: { readonly title: string; readonly stock: ReadonlyArray<{ readonly kind: string; readonly price: number; }>; readonly buys: Readonly>; }; readonly trade?: string; }; export declare const ARCANE_FOLK_NAMES: { readonly vorlen: "Archmage Vorlen"; readonly elira: "Sister Elira"; readonly bramm: "Bramm the Cartographer"; readonly kael: "Kael Dorne"; readonly thessaly: "Warden Thessaly Orn"; }; /** Sister Elira's curio shop: existing goods at the other traders' prices, and the herb she buys (never above the universal rate). */ export declare const ARCANE_CURIO_SHOP_TITLE = "Elira's Curios"; export declare const ARCANE_FOLK: ReadonlyArray; export declare function arcaneFolkByName(name: string | null | undefined): ArcaneFolk | null; export declare function arcaneFolkById(id: string | null | undefined): ArcaneFolk | null; export declare const ARCANE_SHOP_FOLK: (ArcaneFolk & { shop: NonNullable; })[]; export type ArcaneQuestProp = { readonly id: string; readonly lx: number; readonly lz: number; readonly x: number; readonly z: number; readonly style: string; }; export declare const AR_PROP: { readonly ward: "arward"; readonly folio: "arfolio"; }; /** The four ward stones round the Stone Circle on the Rune Isle (dawn east, noon south, dusk west, midnight north). */ export declare const AR_WARD_E: ArcaneQuestProp; export declare const AR_WARD_S: ArcaneQuestProp; export declare const AR_WARD_W: ArcaneQuestProp; export declare const AR_WARD_N: ArcaneQuestProp; /** The order the sun takes them in: dawn (east), noon (south), dusk (west), midnight (north). */ export declare const AR_WARD_ORDER: readonly string[]; /** The four missing folios, scattered through the Arcanum. */ export declare const AR_FOLIO_1: ArcaneQuestProp; export declare const AR_FOLIO_2: ArcaneQuestProp; export declare const AR_FOLIO_3: ArcaneQuestProp; export declare const AR_FOLIO_4: ArcaneQuestProp; export declare const ARCANE_QUEST_PROPS: readonly ArcaneQuestProp[]; /** The model an Arcane quest prop draws with (CAPITAL_BUILDING_MODELS, the land's kit), or null for a prop that is not one of them. */ export declare function arcanePropModel(prop: string): string | null; export declare const ARCANE_QUEST_PROP_NAMES: Readonly>; export declare const ARCANE_WILDLIFE_KINDS: readonly ["manawisp", "runesentinel", "zephyrhawk", "runewarden"]; export type ArcaneWildlifeKind = (typeof ARCANE_WILDLIFE_KINDS)[number]; export declare function isArcaneWildlifeKind(kind: string): kind is ArcaneWildlifeKind; export declare const RUNE_WARDEN_KIND: "runewarden"; export type ArcaneCreatureStats = { name: string; level: readonly [number, number]; maxHit: number; healthScale?: number; scale: number; note: string; }; export declare const ARCANE_CREATURES: Readonly>; export declare const RUNE_WARDEN_RESPAWN_MS: number; export declare const RUNE_WARDEN_LEASH = 5; export declare const ARCANE_CREATURE_STAND_IN: Readonly>; export declare const ARCANE_PACE: Readonly>; export type ArcaneWildlifeSpot = { readonly kind: ArcaneWildlifeKind; readonly lx: number; readonly lz: number; readonly x: number; readonly z: number; readonly leash: number; }; /** Where the creatures stand (the backend moves each to the nearest open ground). */ export declare const ARCANE_WILDLIFE_SPOTS: readonly ArcaneWildlifeSpot[]; export declare const RUNE_WARDEN_SPAWN: ArcaneWildlifeSpot; /** What they leave (existing goods only). */ export declare const ARCANE_DROPS: Readonly>; /** * The Crystal Lakes' shore seams (local): two gold seams stand in for the gem seam the land will have (Mining 30, the iron pick), with an * iron and a coal beside them. The herbs are the land's ten Stormbloom patches (potionMaking.ts), already placed. */ export declare const ARCANE_SEAMS: ReadonlyArray<{ readonly id: string; readonly lx: number; readonly lz: number; readonly style: 'coal' | 'iron' | 'gold'; }>; /** Named spots drawn on the paper map besides the fourteen stops (zone-local). */ export declare const ARCANE_MAP_PLACES: ReadonlyArray<{ readonly id: string; readonly label: string; readonly lx: number; readonly lz: number; }>; export declare const ARCANE_PLACE_TEXT = "The Arcane Realms are a members' land of levels 20 to 35 north of the Capital, entered through the blue door in the Capital's North Gate. Archmage Vorlen greets you at the Northern Pass; the road runs over the Great Stone Bridge to the Runed Lake and its isle of ward stones, then to the Arcanum, where Sister Elira keeps the curio shop and Bramm the Cartographer the library, and east up the ramp to Zephyr Cliffs and the shrine of the Runebound Warden. There are no spells or Sorcery skill yet."; export declare const LEDGER_ARCANE_LINES: readonly { id: string; label: string; }[]; /** The Rune Surge: the Runebound Warden's signature (bossSignatures.ts `rune-surge`). */ export declare const RUNE_SURGE_NOTICE = "The Runebound Warden grinds both fists together and a ring of blue runes closes round him. Brace for the Rune Surge, or step clear."; //# sourceMappingURL=arcaneRealmsContent.d.ts.map