From daa417ec178e7c497939b616c6ef00a794c837b9 Mon Sep 17 00:00:00 2001 From: phenom Date: Sun, 20 Sep 2026 13:40:23 -0400 Subject: [PATCH] Update Healer Man server --- server/dungeon-leaderboards.mjs | 7 +- server/dungeon-leaderboards.test.mjs | 11 + server/dungeon-reports.mjs | 6 +- server/dungeon-reports.test.mjs | 7 +- src/app/OnlineGroupCoordinator.test.ts | 6 +- src/app/OnlineGroupCoordinator.tsx | 11 +- src/app/dungeonLeaderboardClient.test.ts | 19 ++ src/app/dungeonLeaderboardClient.ts | 6 +- src/app/dungeonShellRuntime.ts | 1 + src/app/dungeonShellRuntimeBridge.ts | 1 + src/app/loginInputStore.test.ts | 65 +++++ src/app/loginInputStore.ts | 224 +++++++++++++++ src/assets/ui/login/frozen-gateway.webp | Bin 0 -> 319370 bytes src/content/contentManager.ts | 3 +- src/game/biteSizedStockades.test.ts | 105 +++++++ src/game/dungeonCampaignCatalog.test.ts | 6 +- src/game/dungeonCatalog.test.ts | 19 +- src/game/dungeonCatalog.ts | 11 +- src/game/dungeonContentSource.test.ts | 15 + src/game/dungeonContentSource.ts | 15 + src/game/dungeonLeaderboardCatalog.test.ts | 28 +- src/game/dungeonLeaderboardRules.ts | 18 ++ src/game/dungeonPipelineFoundation.test.ts | 2 +- src/game/dungeonRegistry.ts | 44 ++- src/game/dungeonReleaseStage.ts | 2 +- src/game/dungeonRunStore.ts | 7 +- src/game/dungeonSession.ts | 16 +- src/game/dungeons/biteSizedStockades.ts | 189 +++++++++++++ .../dungeonLeaderboardCatalog.generated.json | 49 ++++ src/game/mobPopulation.test.ts | 2 +- src/game/partyNavigationCatalog.test.ts | 4 +- src/game/wowDungeonEnvironment.test.ts | 5 +- .../authoritativeDualScreenRuntime.ts | 5 + src/platform/dualScreenDps.test.ts | 25 ++ src/platform/dualScreenSync.test.ts | 17 ++ src/platform/dualScreenSync.ts | 12 + src/scene/dungeonMaterialAudit.test.ts | 5 +- src/styles.css | 256 +++++++++++++++--- src/ui/BossGuidePanel.tsx | 27 +- src/ui/CompanionPanel.tsx | 19 +- src/ui/DungeonRunDetails.tsx | 7 +- src/ui/DungeonRunResults.tsx | 5 +- src/ui/DungeonSelectScreen.tsx | 3 +- src/ui/LoginScreen.tsx | 115 +++++--- src/ui/LoginVirtualKeyboard.tsx | 80 ++++++ src/ui/thorUi.css | 26 +- 46 files changed, 1334 insertions(+), 172 deletions(-) create mode 100644 src/app/loginInputStore.test.ts create mode 100644 src/app/loginInputStore.ts create mode 100644 src/assets/ui/login/frozen-gateway.webp create mode 100644 src/game/biteSizedStockades.test.ts create mode 100644 src/game/dungeonContentSource.test.ts create mode 100644 src/game/dungeonContentSource.ts create mode 100644 src/game/dungeonLeaderboardRules.ts create mode 100644 src/game/dungeons/biteSizedStockades.ts create mode 100644 src/ui/LoginVirtualKeyboard.tsx diff --git a/server/dungeon-leaderboards.mjs b/server/dungeon-leaderboards.mjs index fd532ce7..14438412 100644 --- a/server/dungeon-leaderboards.mjs +++ b/server/dungeon-leaderboards.mjs @@ -72,7 +72,8 @@ export function createDungeonLeaderboardRepository(database, { ErrorType }) { if (!Array.isArray(input.killedBossIds) || input.killedBossIds.length > 100 || input.killedBossIds.some((id) => !difficulty.bossIds.includes(id))) fail("Provide bosses from this dungeon and difficulty."); const killedBossIds = [...new Set(input.killedBossIds)].sort(); - if (!killedBossIds.includes(difficulty.finalBossId)) fail("The final boss must be defeated before recording a run."); + const finalBossIds = difficulty.finalBossIds ?? [difficulty.finalBossId]; + if (!finalBossIds.some((id) => killedBossIds.includes(id))) fail("The final boss must be defeated before recording a run."); if (!Array.isArray(input.party) || input.party.length < 1 || input.party.length > 5) fail("Provide the run's party."); const party = input.party.map((member) => { if (!member || typeof member !== "object" || typeof member.name !== "string" || !member.name.trim() @@ -84,7 +85,9 @@ export function createDungeonLeaderboardRepository(database, { ErrorType }) { role: member.role, npc: member.npc, ...(member.secondaryClassId ? { secondaryClassId: member.secondaryClassId } : {}) }; }); - const fullClear = difficulty.bossIds.every((id) => killedBossIds.includes(id)); + const fullClear = difficulty.finalBossIds + ? difficulty.finalBossIds.some((id) => killedBossIds.includes(id)) + : difficulty.bossIds.every((id) => killedBossIds.includes(id)); const run = { id: input.id, dungeonId: dungeon.id, difficultyId, durationMs: input.durationMs, ...(bossDifficulty > 0 ? { bossDifficulty } : {}), finishedAt: input.finishedAt, killedBossIds, party, fullClear }; diff --git a/server/dungeon-leaderboards.test.mjs b/server/dungeon-leaderboards.test.mjs index 33676b60..2a23e608 100644 --- a/server/dungeon-leaderboards.test.mjs +++ b/server/dungeon-leaderboards.test.mjs @@ -58,6 +58,17 @@ test("validates final boss, dungeon/difficulty, duration and party without trust assert.throws(() => database.listDungeonLeaderboard({ dungeonId: "deadmines", clear: "bad" }), { status: 400 }); assert.throws(() => database.listDungeonLeaderboard({ dungeonId: "deadmines", offset: -1 }), { status: 400 }); })); +test("accepts any rolled bite-sized Stockades boss as the run's full clear", () => withDatabase((database) => { + const dungeon = catalog.dungeons.find((entry) => entry.id === "bite-sized-stormwind-stockade"); + const difficulty = dungeon.difficulties[0]; + assert.equal(difficulty.finalBossIds.length, 5); + for (const [index, bossId] of difficulty.finalBossIds.entries()) { + const payload = run(`bite-sized-${index}-run`, 1000 + index, false, dungeon.id); + payload.killedBossIds = [bossId]; + assert.equal(database.submitDungeonRun(null, payload).run.fullClear, true); + } + assert.equal(database.listDungeonLeaderboard({ dungeonId: dungeon.id, clear: "full" }).total, 5); +})); test("public HTTP leaderboards accept completion records and return results with rank while rejecting unfinished runs", async () => { const directory = mkdtempSync(path.join(os.tmpdir(), "healer-man-leaderboard-http-")); const { server } = createGameServer({ dataDir: directory, enableShelvedModes: false }); diff --git a/server/dungeon-reports.mjs b/server/dungeon-reports.mjs index 2f1c2f4a..95aaffed 100644 --- a/server/dungeon-reports.mjs +++ b/server/dungeon-reports.mjs @@ -2,7 +2,11 @@ import { randomUUID } from "node:crypto"; import availability from "../src/game/generated/dungeonAvailability.json" with { type: "json" }; import policy from "../shared/dungeon-report-policy.json" with { type: "json" }; -export const REPORT_DUNGEON_IDS = new Set(["forsaken-abbey", ...Object.keys(availability.enabled)]); +export const REPORT_DUNGEON_IDS = new Set([ + "bite-sized-stormwind-stockade", + "forsaken-abbey", + ...Object.keys(availability.enabled), +]); export function createDungeonReportRepository(database, { isGameMaster, ErrorType }) { database.exec(` diff --git a/server/dungeon-reports.test.mjs b/server/dungeon-reports.test.mjs index dbc03678..93d09c15 100644 --- a/server/dungeon-reports.test.mjs +++ b/server/dungeon-reports.test.mjs @@ -26,7 +26,12 @@ test("validates comments and dungeon IDs and stamps new reports as Submitted", ( assert.equal(report.status, "Submitted"); assert.equal(report.submittedBy, "Reporter"); assert.equal(database.submitDungeonReport(null, { dungeonId: "forsaken-abbey", comment: " Door is stuck\r\nAfter a wipe " }).comment, "Door is stuck\nAfter a wipe"); - assert.deepEqual(database.listDungeonReports().openCounts, { "forsaken-abbey": 1, "stormwind-stockade": 1 }); + assert.equal(database.submitDungeonReport(null, { dungeonId: "bite-sized-stormwind-stockade", comment: "Wall issue" }).status, "Submitted"); + assert.deepEqual(database.listDungeonReports().openCounts, { + "bite-sized-stormwind-stockade": 1, + "forsaken-abbey": 1, + "stormwind-stockade": 1, + }); })); test("enforces GM updates, counts all open statuses, supports reopening, and prevents stale changes", () => withDatabase(async (database) => { diff --git a/src/app/OnlineGroupCoordinator.test.ts b/src/app/OnlineGroupCoordinator.test.ts index 1cfaaad6..54c184f9 100644 --- a/src/app/OnlineGroupCoordinator.test.ts +++ b/src/app/OnlineGroupCoordinator.test.ts @@ -39,7 +39,7 @@ describe("online group activity entry", () => { await enterOnlineGroupActivity({ ...DUNGEON_ACTIVITY, difficultyId: "heroic", bossDifficulty: 9 }, "damage", vi.fn(), dependencies); expect(dependencies.enterDungeon).toHaveBeenCalledWith("deadmines", "damage", { - difficultyId: "heroic", bossDifficulty: 9, freshRun: true, + difficultyId: "heroic", bossDifficulty: 9, freshRun: true, runId: DUNGEON_ACTIVITY.id, }); }); it("leaves a dungeon activity unconsumed when dungeon entry fails", async () => { @@ -54,7 +54,9 @@ describe("online group activity entry", () => { )).resolves.toBe(false); expect(dependencies.installDungeonRuntime).toHaveBeenCalledOnce(); - expect(dependencies.enterDungeon).toHaveBeenCalledWith("deadmines", "healer"); + expect(dependencies.enterDungeon).toHaveBeenCalledWith("deadmines", "healer", { + difficultyId: undefined, bossDifficulty: undefined, freshRun: true, runId: DUNGEON_ACTIVITY.id, + }); expect(consumeActivity).not.toHaveBeenCalled(); }); diff --git a/src/app/OnlineGroupCoordinator.tsx b/src/app/OnlineGroupCoordinator.tsx index d17ac4b3..691136d9 100644 --- a/src/app/OnlineGroupCoordinator.tsx +++ b/src/app/OnlineGroupCoordinator.tsx @@ -48,11 +48,12 @@ export async function enterOnlineGroupActivity( let entered: boolean; if (activity.type === "dungeon") { await dependencies.installDungeonRuntime(); - entered = activity.bossDifficulty === undefined && activity.difficultyId === undefined - ? dependencies.enterDungeon(activity.contentId, role) - : dependencies.enterDungeon(activity.contentId, role, { - difficultyId: activity.difficultyId, bossDifficulty: activity.bossDifficulty, freshRun: true, - }); + entered = dependencies.enterDungeon(activity.contentId, role, { + difficultyId: activity.difficultyId, + bossDifficulty: activity.bossDifficulty, + freshRun: true, + runId: activity.id, + }); } else { if (!SHELVED_MODES_ENABLED) return false; await dependencies.installManastormRuntime(); diff --git a/src/app/dungeonLeaderboardClient.test.ts b/src/app/dungeonLeaderboardClient.test.ts index a7d1162c..bde71eca 100644 --- a/src/app/dungeonLeaderboardClient.test.ts +++ b/src/app/dungeonLeaderboardClient.test.ts @@ -2,6 +2,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { localDungeonLeaderboard, localDungeonRunPlacement, saveLocalDungeonRun, submitDungeonRun } from "./dungeonLeaderboardClient"; import type { DungeonRunRecord } from "../game/dungeonRunTypes"; import catalog from "../game/generated/dungeonLeaderboardCatalog.generated.json"; +import { leaderboardFinalBossIds } from "../game/dungeonLeaderboardRules"; const dungeon = catalog.dungeons.find((entry) => entry.id === "deadmines")!; const record = (id: string, durationMs: number, fullClear = true): DungeonRunRecord => ({ @@ -41,6 +42,24 @@ describe("offline dungeon leaderboard", () => { expect(page.entries).toHaveLength(7); expect(localDungeonRunPlacement(record("offline-24", 3400))).toEqual({ finalRank: 27, finalTotal: 27, fullRank: 26, fullTotal: 26 }); }); + it("treats any rolled bite-sized Stockades boss as a complete run", () => { + const biteSized = catalog.dungeons.find((entry) => entry.id === "bite-sized-stormwind-stockade")!; + const difficulty = biteSized.difficulties[0]; + const rolledBossId = leaderboardFinalBossIds(difficulty).at(-1)!; + const run: DungeonRunRecord = { + id: "bite-sized-local-run", + dungeonId: biteSized.id, + difficultyId: difficulty.id, + durationMs: 4321, + finishedAt: 100000, + party: [{ name: "Tester", classId: "priest", level: 20, role: "healer", npc: false }], + killedBossIds: [rolledBossId], + fullClear: true, + }; + saveLocalDungeonRun(run); + expect(localDungeonLeaderboard(biteSized.id, difficulty.id, "full").entries) + .toEqual([expect.objectContaining({ id: run.id, killedBossIds: [rolledBossId], fullClear: true })]); + }); it("retains the local time after a failed upload and uses the same run id when retried", async () => { const run = record("offline-retry-test", 4321); saveLocalDungeonRun(run); diff --git a/src/app/dungeonLeaderboardClient.ts b/src/app/dungeonLeaderboardClient.ts index 98066085..eca86e81 100644 --- a/src/app/dungeonLeaderboardClient.ts +++ b/src/app/dungeonLeaderboardClient.ts @@ -3,6 +3,7 @@ import type { PlayerSession } from "./types"; import catalog from "../game/generated/dungeonLeaderboardCatalog.generated.json"; import { normalizeDungeonRunProgress, type DungeonClearFilter, type DungeonLeaderboard, type DungeonRunPlacement, type DungeonRunRecord } from "../game/dungeonRunTypes"; +import { isLeaderboardFullClear, leaderboardFinalBossIds } from "../game/dungeonLeaderboardRules"; const STORAGE_KEY = "healer-man:dungeon-runs:v1"; const listeners = new Set<() => void>(); @@ -23,11 +24,12 @@ function localRuns(): DungeonRunRecord[] { const progress = normalizeDungeonRunProgress({ ...value, startedAt: value.finishedAt - value.durationMs, timed: true }); const dungeon = catalog.dungeons.find((entry) => entry.id === progress?.dungeonId); const difficulty = dungeon?.difficulties.find((entry) => entry.id === progress?.difficultyId); + const finalBossIds = difficulty ? leaderboardFinalBossIds(difficulty) : []; if (!progress || progress.finishedAt === null || progress.durationMs === null || !dungeon - || !difficulty || !progress.killedBossIds.includes(difficulty.finalBossId) + || !difficulty || !finalBossIds.some((id) => progress.killedBossIds.includes(id)) || progress.killedBossIds.some((id) => !difficulty.bossIds.includes(id))) return []; return [{ ...value, ...progress, durationMs: progress.durationMs, finishedAt: progress.finishedAt, - fullClear: difficulty.bossIds.every((id) => progress.killedBossIds.includes(id)) }]; + fullClear: isLeaderboardFullClear(difficulty, progress.killedBossIds) }]; }); } catch { /* In-memory results remain available if storage is disabled. */ } return memory; diff --git a/src/app/dungeonShellRuntime.ts b/src/app/dungeonShellRuntime.ts index 920630d8..77dc96e3 100644 --- a/src/app/dungeonShellRuntime.ts +++ b/src/app/dungeonShellRuntime.ts @@ -68,6 +68,7 @@ function enterDungeon(dungeonId: string, requestedRole?: PartyRole, settings?: D encounterSnapshots: resume?.encounters, runProgress: resume?.run, legacyResume: Boolean(resume && resume.run?.bossDifficulty === undefined), + runId: settings?.runId, })) { useShellStore.setState({ notice: dungeon.availabilityReason ?? "That dungeon failed its latest validation gate.", diff --git a/src/app/dungeonShellRuntimeBridge.ts b/src/app/dungeonShellRuntimeBridge.ts index 65550ed9..e846f40a 100644 --- a/src/app/dungeonShellRuntimeBridge.ts +++ b/src/app/dungeonShellRuntimeBridge.ts @@ -8,6 +8,7 @@ export interface DungeonEntrySettings { readonly difficultyId?: string; readonly bossDifficulty?: number; readonly freshRun?: boolean; + readonly runId?: string; } let installedRuntime: DungeonShellRuntime | null = null; diff --git a/src/app/loginInputStore.test.ts b/src/app/loginInputStore.test.ts new file mode 100644 index 00000000..1658067a --- /dev/null +++ b/src/app/loginInputStore.test.ts @@ -0,0 +1,65 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { + currentLoginInputSnapshot, + DEFAULT_LOGIN_KEY_ID, + nextLoginKeyId, + useLoginInputStore, +} from "./loginInputStore"; + +describe("controller login input", () => { + beforeEach(() => useLoginInputStore.getState().reset()); + + it("starts on the username field and the first alphabet key", () => { + expect(useLoginInputStore.getState()).toMatchObject({ + activeField: "username", + selectedKeyId: DEFAULT_LOGIN_KEY_ID, + keyboardMode: "lower", + }); + }); + + it("moves geometrically between character and wide action keys", () => { + expect(nextLoginKeyId("lower", "char-3-1", "down")).toBe("control-field"); + expect(nextLoginKeyId("lower", "control-field", "down")).toBe("action-login"); + expect(nextLoginKeyId("lower", "action-login", "up")).toBe("control-field"); + }); + + it("types valid usernames, switches fields, and keeps passwords private in snapshots", () => { + const input = useLoginInputStore.getState(); + input.pressKey("char-1-0"); + input.pressKey("char-1-1"); + input.pressKey("char-2-9"); + expect(useLoginInputStore.getState().username).toBe("qw_"); + + input.pressKey("control-done"); + expect(useLoginInputStore.getState().activeField).toBe("password"); + input.pressKey("char-1-0"); + input.pressKey("control-space"); + expect(useLoginInputStore.getState().password).toBe("q "); + expect(currentLoginInputSnapshot()).toMatchObject({ username: "qw_", passwordLength: 2 }); + expect(currentLoginInputSnapshot()).not.toHaveProperty("password"); + }); + + it("cycles case and symbols while preserving the selected key position", () => { + const input = useLoginInputStore.getState(); + input.pressKey("control-mode"); + expect(useLoginInputStore.getState()).toMatchObject({ keyboardMode: "upper", selectedKeyId: "control-mode" }); + input.pressKey("control-mode"); + expect(useLoginInputStore.getState().keyboardMode).toBe("symbols"); + input.pressKey("char-1-1"); + expect(useLoginInputStore.getState().username).toBe(""); + input.pressKey("control-field"); + input.pressKey("char-1-1"); + expect(useLoginInputStore.getState().password).toBe("@"); + }); + + it("turns the three final-row keys into consumable requests", () => { + const input = useLoginInputStore.getState(); + input.pressKey("action-login"); + const request = useLoginInputStore.getState().request; + expect(request).toMatchObject({ action: "login" }); + input.consumeRequest(request!.id); + expect(useLoginInputStore.getState().request).toBeNull(); + input.pressKey("action-offline"); + expect(useLoginInputStore.getState().request?.action).toBe("offline"); + }); +}); diff --git a/src/app/loginInputStore.ts b/src/app/loginInputStore.ts new file mode 100644 index 00000000..049023b7 --- /dev/null +++ b/src/app/loginInputStore.ts @@ -0,0 +1,224 @@ +import { create } from "zustand"; + +export type LoginField = "username" | "password"; +export type LoginKeyboardMode = "lower" | "upper" | "symbols"; +export type LoginRequestAction = "login" | "create" | "offline"; +export type LoginKeyboardDirection = "up" | "down" | "left" | "right"; + +export interface LoginKeyDefinition { + id: string; + label: string; + ariaLabel: string; + kind: "character" | "mode" | "field" | "space" | "backspace" | "clear" | "done" | LoginRequestAction; + value?: string; + span?: number; +} + +export interface LoginInputSnapshot { + username: string; + passwordLength: number; + activeField: LoginField; + selectedKeyId: string; + keyboardMode: LoginKeyboardMode; + busy: LoginRequestAction | null; +} + +interface LoginRequest { + id: number; + action: LoginRequestAction; +} + +interface LoginInputState { + username: string; + password: string; + activeField: LoginField; + selectedKeyId: string; + keyboardMode: LoginKeyboardMode; + busy: LoginRequestAction | null; + request: LoginRequest | null; + requestId: number; + setUsername: (value: string) => void; + setPassword: (value: string) => void; + setActiveField: (field: LoginField) => void; + selectKey: (keyId: string) => void; + moveSelection: (direction: LoginKeyboardDirection) => void; + pressKey: (keyId: string) => void; + pressSelected: () => void; + consumeRequest: (id: number) => void; + setBusy: (busy: LoginRequestAction | null) => void; + reset: () => void; +} + +export const DEFAULT_LOGIN_KEY_ID = "char-1-0"; + +const characterLayouts: Record = { + lower: [ + ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], + ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"], + ["a", "s", "d", "f", "g", "h", "j", "k", "l", "_"], + ["z", "x", "c", "v", "b", "n", "m", ".", "-"], + ], + upper: [ + ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], + ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P"], + ["A", "S", "D", "F", "G", "H", "J", "K", "L", "_"], + ["Z", "X", "C", "V", "B", "N", "M", ".", "-"], + ], + symbols: [ + ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], + ["!", "@", "#", "$", "%", "^", "&", "*", "(", ")"], + ["{", "}", "[", "]", "<", ">", "=", "+", "/", "\\"], + ["~", "`", ";", ":", "'", "\"", ",", ".", "?"], + ], +}; + +function characterKey(value: string, row: number, column: number): LoginKeyDefinition { + return { + id: `char-${row}-${column}`, + label: value, + ariaLabel: value === " " ? "Space" : value, + kind: "character", + value, + }; +} + +export function loginKeyboardRows(mode: LoginKeyboardMode): readonly (readonly LoginKeyDefinition[])[] { + const rows = characterLayouts[mode]; + return [ + rows[0].map((value, column) => characterKey(value, 0, column)), + rows[1].map((value, column) => characterKey(value, 1, column)), + rows[2].map((value, column) => characterKey(value, 2, column)), + [ + { id: "control-mode", label: mode === "lower" ? "⇧" : mode === "upper" ? "#+=" : "abc", ariaLabel: "Change keyboard mode", kind: "mode" }, + ...rows[3].map((value, column) => characterKey(value, 3, column + 1)), + ], + [ + { id: "control-field", label: "Field", ariaLabel: "Switch login field", kind: "field", span: 2 }, + { id: "control-space", label: "Space", ariaLabel: "Space", kind: "space", span: 3 }, + { id: "control-backspace", label: "⌫", ariaLabel: "Backspace", kind: "backspace", span: 2 }, + { id: "control-clear", label: "Clear", ariaLabel: "Clear active field", kind: "clear", span: 2 }, + { id: "control-done", label: "Done", ariaLabel: "Finish active field", kind: "done" }, + ], + [ + { id: "action-login", label: "Enter world", ariaLabel: "Log in and enter world", kind: "login", span: 4 }, + { id: "action-create", label: "Create", ariaLabel: "Create account", kind: "create", span: 3 }, + { id: "action-offline", label: "Offline", ariaLabel: "Play offline", kind: "offline", span: 3 }, + ], + ]; +} + +function keyPosition(rows: readonly (readonly LoginKeyDefinition[])[], keyId: string) { + for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) { + let column = 0; + for (let keyIndex = 0; keyIndex < rows[rowIndex].length; keyIndex += 1) { + const key = rows[rowIndex][keyIndex]; + const span = key.span ?? 1; + if (key.id === keyId) return { rowIndex, keyIndex, center: column + span / 2 }; + column += span; + } + } + return null; +} + +export function nextLoginKeyId( + mode: LoginKeyboardMode, + selectedKeyId: string, + direction: LoginKeyboardDirection, +): string { + const rows = loginKeyboardRows(mode); + const position = keyPosition(rows, selectedKeyId) ?? keyPosition(rows, DEFAULT_LOGIN_KEY_ID)!; + const row = rows[position.rowIndex]; + if (direction === "left" || direction === "right") { + const delta = direction === "left" ? -1 : 1; + return row[(position.keyIndex + delta + row.length) % row.length].id; + } + const rowDelta = direction === "up" ? -1 : 1; + const targetRowIndex = (position.rowIndex + rowDelta + rows.length) % rows.length; + const targetRow = rows[targetRowIndex]; + let column = 0; + return targetRow.reduce((closest, key) => { + const center = column + (key.span ?? 1) / 2; + column += key.span ?? 1; + return Math.abs(center - position.center) < Math.abs(closest.center - position.center) + ? { id: key.id, center } + : closest; + }, { id: targetRow[0].id, center: (targetRow[0].span ?? 1) / 2 }).id; +} + +function findLoginKey(mode: LoginKeyboardMode, keyId: string): LoginKeyDefinition | null { + return loginKeyboardRows(mode).flat().find((key) => key.id === keyId) ?? null; +} + +function nextMode(mode: LoginKeyboardMode): LoginKeyboardMode { + if (mode === "lower") return "upper"; + if (mode === "upper") return "symbols"; + return "lower"; +} + +const initialState = { + username: "", + password: "", + activeField: "username" as LoginField, + selectedKeyId: DEFAULT_LOGIN_KEY_ID, + keyboardMode: "lower" as LoginKeyboardMode, + busy: null, + request: null, + requestId: 0, +}; + +export const useLoginInputStore = create((set, get) => ({ + ...initialState, + setUsername: (username) => set({ username: username.slice(0, 20), activeField: "username" }), + setPassword: (password) => set({ password: password.slice(0, 128), activeField: "password" }), + setActiveField: (activeField) => set({ activeField }), + selectKey: (selectedKeyId) => { + if (findLoginKey(get().keyboardMode, selectedKeyId)) set({ selectedKeyId }); + }, + moveSelection: (direction) => set((state) => ({ + selectedKeyId: nextLoginKeyId(state.keyboardMode, state.selectedKeyId, direction), + })), + pressKey: (keyId) => { + const state = get(); + const key = findLoginKey(state.keyboardMode, keyId); + if (!key) return; + set({ selectedKeyId: key.id }); + if (key.kind === "character" && key.value) { + if (state.activeField === "username") { + if (/^[A-Za-z0-9_]$/.test(key.value) && state.username.length < 20) set({ username: state.username + key.value }); + } else if (state.password.length < 128) set({ password: state.password + key.value }); + return; + } + if (key.kind === "mode") set({ keyboardMode: nextMode(state.keyboardMode) }); + else if (key.kind === "field") set({ activeField: state.activeField === "username" ? "password" : "username" }); + else if (key.kind === "space" && state.activeField === "password" && state.password.length < 128) set({ password: `${state.password} ` }); + else if (key.kind === "backspace") { + if (state.activeField === "username") set({ username: state.username.slice(0, -1) }); + else set({ password: state.password.slice(0, -1) }); + } else if (key.kind === "clear") { + if (state.activeField === "username") set({ username: "" }); + else set({ password: "" }); + } else if (key.kind === "done") { + if (state.activeField === "username") set({ activeField: "password" }); + else set({ selectedKeyId: "action-login" }); + } else if (["login", "create", "offline"].includes(key.kind) && !state.busy) { + const requestId = state.requestId + 1; + set({ requestId, request: { id: requestId, action: key.kind as LoginRequestAction } }); + } + }, + pressSelected: () => get().pressKey(get().selectedKeyId), + consumeRequest: (id) => set((state) => state.request?.id === id ? { request: null } : {}), + setBusy: (busy) => set({ busy }), + reset: () => set(initialState), +})); + +export function currentLoginInputSnapshot(): LoginInputSnapshot { + const state = useLoginInputStore.getState(); + return { + username: state.username, + passwordLength: state.password.length, + activeField: state.activeField, + selectedKeyId: state.selectedKeyId, + keyboardMode: state.keyboardMode, + busy: state.busy, + }; +} diff --git a/src/assets/ui/login/frozen-gateway.webp b/src/assets/ui/login/frozen-gateway.webp new file mode 100644 index 0000000000000000000000000000000000000000..25ced40c62edcf03467dfc005fec8fc0061c7c2d GIT binary patch literal 319370 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

^py_brcRjFH^NsH8*Pd+{GE*+ zEM(11_E!Vni^0QOw@Vtx{;W!=Z-hS9NwV4SgFFj=E%e0!Y3vHPcz$_=uwGIGCN3x3Sw#ox2-3X-o@H6_s*?;OyAFB z4K~>xWV!D%9T;w7!pVm81~~=#&+QVvllPiCWonhxP3rgHXU&!%B}5#@j9b@jm@`W2 zxp_+=rIo>dt(x!9>CQ^Sq9ue}$(F-{`__9b!_p(O(Q!wTHo@t;n#1S$Czi}pw8pkZ zNSnZH_(M(u!MknF5>H%r#lOokxxfg_$rQ5;byzJ|hFxHT^m@_Q4-P|hnxnL=?flIl zv2F5}_0GiE1{XeOGU9-Bq0O(BapQ%bgH8mA$P|q$kVRLfgilE~)$`feCB+n1m{>fj zJ)-c@nXKXMKfzp>QL5hS;xO#mrDe)4+v*KjnVffD)l9hym$&-Oc*_?o>IFt7tk^k) zBhCgC=@S=9exK=WY5?=pk#AH^MU(2a5MD=KPQ(l`k$rrOjF1AWH-wDOs+0ue4n7tO z$imln?Qwp0_VDij@YX%yFOYQvjs<%i+9A4y4UQXw>o*ws7wuaALU39tbx z^>8Y2F0XC85?!v4$^9Hmx$rSej;tDtHlk4`M{dPENm^P&CVo9w31e=fK~okG^_It& z*_wdnb&)5J!4WdNV?5WInowJmV>HhLYKs|>WpwT^20A0^jqvO+t@>a)KoI-@PMta| z6m;YlD$`O2-(@%kP#PZX_qcGbMUsIw;kz|gjwxRK1^%Q84*>1zrw|m-#p@r1;yA%J z0DC`M#s4$+q(YBg;!*whwb9)@9iLG@G3j)4Oc~1<`a@D#M}JZG8-P$vQuF7tgWAZP z#J8+~6!l$9CbCQGKC``eKI2hw>)`pg5cczCCU${<*|el1IkbKSKEQvft)$dzn4H70 zIyY|^d##*jhRTv^9K|YkmGi~&&xs2Yx&V+)I)aNiCWjF5_~s2+(ps5tE+dHf!$p~q z2v6*v{HK}KHn<{>F5&#@Cb1YAhcl(Qx}+jU;_=*v3d$qOVSRH8AvBUgpU`{{Sc!H0 z7m5lRp!8pS4qRRv_Mfsz*HYwgqfU`R5AoxSx!iq5K*6+a032U}nTm^QMN5154MFo5 zh1}m*&@AFBf^Mo%GaeC5n(sZhzMDW7BcE_$H_&vnV}UbDS8|w+^I*BYG2951U>R)yR*T(~0~F1}iZ=LXQ*qocHEKTOdm_qR^ww^~22w5uIfCcnkL%B{ICeHmlUIa_{zjrI~o`YI3MwCeeF6|2%weBO!L7@vi zbBeGrqCwBL6B)X`nC|=-^k*VosKnU@K$$>}T2-7H#V=$jRWE_X`C(KT6eyJpwT=;# zY`y}P)|8q+uKtJJD=M~|?a@4NRA=2C(AV^+kS2`{wr+rQ!@%KmBZ0;I(z5%4xx>eg zKz1{N@&5D;bi*;*$Ve1r$W)bHceq-TI1J18@lxOfS`M|=9kqVf)Iw`e5&XD3_$(b3 zCmW+;{`PF{+9n|$4VX~drriyUFMnnR@XN5KZJv}{&^CKUe|LC+^!QkNaoPopaY|XsykiGyCTbY< zN9A2qPfzt*O4G*2>lp&eFbe8+t#df;MK)$HEP>|!LPE&tRqfKPUh(lG{E>*mCj{x^ z8ibB~ls#0<5RcvPpBo4)ZDp=z?@T)^;G<@02V^gB1$_~{R&`1*$*M|<=?rRbc6ykv zxSAx)71ewde*N@l@-EW$Gi<|7I;OYI(TUCSf_-OW={@CI6>+I%1IOz-huvj5n00uy zU9#<}5@cY@62XMOC1S7mk0J(Z$^6jLv#3!#<8i%3AV6!q#v2Z{$#f*4N2nm60ce$J0-O|d*{^ys9t zqRE4Jucr4d!#rSeL7IGpJ_3asjdg6FbSmy}q%2sdU>uj)2V|WPtMa^h>N({v+q-X~x+0E|J zvqHL^NDOx=#~Q=7D;r`sB!lXevO1=}wopVnW1XZ(6PYfn+a8=tA zYE~BKNHw5=Iq4MHv$6~mrflnVa$yEqYabM5X$fz2GY?J!Y9&qf_ks=iG(8JMFle-b z^z=%eTUT{+q)GN$eZZZvQl)leCYl^ZKgo1C8@fSSh@U94Ax+nU!!QjD0atei;K@MCfL8(rRC|}g058O^90FsIA!qHl@oZM}yHB@N zLJ}#+j&iu{{d`r=tc-{tXP#VaA~4mD8DAojwKH>GO(Tf_NpUpvI)rLv=D_A>+6Bcb z$1WkdSB;ug+|c+~gZ~y^v!ez-?>Yvcxz47c8@V(^kvMeac6nbc%6h>*4#Qun7(uaa zJjLU(!~bwj_9v4b3;QGz7dL7>lY^^Y6=WSnmebXI3i(sf_ASPpB4F&p#e`c6!sb6L zx@tj){tnx+1|PPHeD4KW)M4_L#g{BPVe;InT@`*U_zdQ?cZ=I5nqt$%Nj;DOtDfWo% z9OGdMN*Sg2g;aSb5Q*{m(kTRUmPJ;Ivx4e!KjV9+X-Hvz@I2ej1N(SI{~sCt>=t9Y zU-zCV)>DbEY5}&IzH#`!8WW(XIKX|I4d%nG(%h+n)(8eulY9&J>m;cFmsTy_c;LB~ zyQ5M*Z@9P?2ecNoTEFwf|2TqbDfn3X3tWc;#d~hZVgnG?0S5+axtPzVEKeqmQRV;V zI_K{Ib}?w$D?X09da;I)7<0!Q~eM~+~Dl|EaMq(Y{`F}^#pR0D54 zqMgpGKIHA*M_`t|7ZM*AT6bKOn;9ACyqt9?tkuBt{jIfx*OXo3v9uJltc2D^nS0)f z>0agzxVwcEj;oRp?cmz*&E#)Xdri9$-$WvENg2}qvCYns_u(XCQ*p94mEi_}N^h!D-bAtQJK&Lj9^E6nL2@i4g9s z@~-+}$N@hed@l9r9gsoen5_#(2;@ZJl#*Lc=fz>%km{goz~S@%;%$c45Fl_3NT-o) zcJq^UOOJO1oYbX;SfDTcB_bdtafI{Inc_V!@@f$Wv-?%&z$KE*)0uEk*xvE{=8luC zWA+`~2a#ngAylXN6M?KrH62rER$;~@HY^!44(paG4x3WT!PtO^8RZj4RK->GQhLr6 zXgWq>AO1qgD&R6g-GoHOxv1ns80(be98=H&x}Hs&jJR9f7;C#SNOR27|G;}sTudOh zj!&8Pc_~w?6wkQ=K(C@M9*H>>GzMqHsRVKu6m!dl2`O=|)VpG?$g(G;Ceu{F(U? zTWS(*Lg$!A1!P#N8W#`iYC8_?i(_r$i(0mK8>rQs5mKHhX|v0&>#^<=w4 zD6ELo)TgDZS?~^Bnau=wGhkz=8y>!mzF8qAN1hMB#Jghd`iwC63hbVCd&8AX}ppocgT zP90?*u4oaeb~SvgHyqE!Ojb?%-wH9l%-U_GZQ^Gq67bwv-@TQst6^E_@@r6p5?EI9 zCXjitJ#u{{ovt0dj0|JYT|@Ke!QeMBONDO3Y>vM6{orw&_a4o7B%<*gn7nMnnG>d?mXp@I4+dm;RV`22*Nr_StsNX=e86!deurCd!)__wh zlKv&4o%(qVyNHvBLN?q?P`@^aw5Zo6L>upLWr9_jok;s($aUHtsmR5rExv*qGDPmA zQIT;66cq3ji~u!2%D+QZ5}4UD#OKj)4$R;M;ZlX9Fe;?$ z2LS7390eIXUoeBr#Gi;W;?s1elFMo>4NbGrsL+5Kt4W``jm2*7(DNoC?&m?HnAdwF zr>SnmOv6PjYi!zv0b~=Eu-V&`90^=lB6ui|6UuM&`|xdXHJjok@wS}QR`j)hZgV3a zlI&^()|E83248p#wef%~MG;S$S(@CGbD17)lx*Z-@a9fr z2jHOi_5c`(l95%j`r2`O9T(n_&j2OloXK4+qrYshfVZ;tV*lN9dg6`u0r)YlP_& zL_DN}I#^sZVD@De>N}H3k^oJW0lYRKbExBgi>Q(Ft}d`s43HY&fe!Luq<&BJynIpV z>bTbbK{yKS?Mu1@f|&0IbE$7(Qw+5y6$2rLgRty*{_qBQNzDks8ETp=F%~@A$sNK^ z0K*XaB**`^KZFf7#0+KS<@f{OK3w(jHnSu`z5E{s00=OH=>{%oRw7h*d1i~58YAxM zP7bjIE9UuQ%NC#_Gkj~6!9H`FsJhF@tE6Ab=JX(}=3)~4kNJZ7jcdukM$qAj{1y2p z;Bi;R8|L>P0Hu6s9S%0JfKt<{l4Pclw~1ec14~nwUj7Fmp>pFuu(H(qY#-dkHUKR| zju2I4;ZCB}g;-mnc8Ulrr%4gNM?e0Z9UJ9?-jGS+W!p^K0tCACF?pVgy0e6GI&mO@ zs85;^arL0yq){LI``HNlv?7euI6ZYz|jZp%l}Q z12_*aEE)|~M+(Z4my`o{eQ&uHVwB=b7y^ha^#(2+e|{aJ%4=( zQhBsEkOsGQ6@WO8__?b)0fBdLraERgSxe-kv_;i#2l9lf@n^}QsiI4BtygYfw|GMq znWe9QF4#gJtgj@%(_u?L4ockWVQJWG-S^@I>93I_r*{gpYuPP#9L3*wWR|)(rG`Ng zX-K>BUq924r83}bPkysk8vaF%KY#4VdNv51{8r}xvuoOZq|1|RFvr%#^b8nRqQ2IY zTASAKj4w&M90+eZF#Mf+5Tpnu|Bt*fZ-uKf8AxZ%H;?*8Z)sevXHhRXO8}OHm$YN; z^fu%T%gu)W>SVjWY21RZ_ogF8I9dGI&!XyRSi4y_Jd}qvM$3mx9Sc*$6XJ7TIG*kf z42LhvgTkOle!L%IO%*x|YIa#JX#~NXIn_Rz$N(g5oB|FRId9^@lC9bPJ-!gPy7@N0 z-}lCejo6KSR>+b5)r|VYW?Qaob82_hG7z4U$dAMsiJ-fN0y&_qy?oCUXZot`9 z_rR+&fBSasTcMAY&>n-*Y1NfatMLyvzOjs$b!a&X>Sd}WWvmfd^Uj|++nj<)yz5~j zqw&_#I8qRnf&I_2iPSD&ZZ-ky}O65TTqYO}n z4NRG8X{(@kFmI|VHFAD78r;Q*E!1qH4>>mi1^j{i(a#v>3$|wqf_gjMBv^NVdeKF@ zMehhFfQC%mtHlBe2;LDo$ADH9T2Ya?{|d3f@I9~|U0b+=>1kGC-KZP-CAAEwfINur z4DZh3_yp-6&hGoBG3$HN*HG8PuQk4g5DNFy!Du8}T%=ZbZ5a?ww!H)X1kRY_|^=r5R`!f|w zl%gX}4Hw9FYv6PS(8vL?G%u^iQ?9X~&cFDHbiACIh_r{72BI-VdEJIf;QMhFcZ)Q72Y~BcBDO6OUjL z2fTEt-KF`B#p*$O!9T42>3Kr=j$ib)7BvYFS}j&7OnU3ZrTulXsks!nwYr+xUi#9Nh2tRgTY%;N_ieDgl}d;r4G$s>N!K<_~B(SgyxG?W7Yx0dwZKYLtj5 z?voahc!Gnx0`IwFkafQcO zjGC<5M8W!PhV{l9A3r2U&^k$+kSl!WG)v5olkSOanq72^02AzDA|`=a2FGc6lIyei z-OjCZqq~2J#ZT%q^E6_7 zGFbk4f_#0!q-BhQZTj{qiQMg+;5;8A3mtWSyiP(epk~7Cz5aQ`co|o8xuFLeVp!_F zj$wIkT&VmQo;6f!MAi3-VKDrVQtnq_gpx%&eHVR2YcUy*JCoeTd|p=_y)OGIGezv6;;?b|$_LF3|65UgeZI8thy-)7E%fz8K(_igRnj4Q{TwiT%3e zK8VeveT)^+`I8Y?gI#QikY&qhLFCoW$I)D)s#`E304~0^^N8Sc*qwTu;**i#&YUG2 z7e6C~eORwI_=dL7F#WU7mb?;CFgM2BW>!!%WHmX`0N|AGJvPHIbj5cpQWa*;3f#6H zLCp<--dT}hx{(xjH`L$y`T3p@pO7mmj=iUWD4c}X*QLJ2F$jxPewxBep+_PfOF^pI zu3&Lb^WMNv10IAJY`Lm2x2d4{o9j}7$^~Q`)&U00?#Ra|_A<+lCM=X`2)kI^2v?8J zyI5y$C|d@}Yq~(bi1O(EJ!9X+0KOTVf9JxX zRxo}rF8&^h5$>w-#-^SRahcyC%i^74hqt7?8TC|!=lxd_!xXWeI9?YJhyW)00@pH= zZ$nEozrkQVx%S*K9o%j{`dwkyf|a+Zht@30*Iul8I7=Z8!=xP^xbxT8K;iHlr%Hiu zV7Ta!xxmsF)VP|`CKMcfd%OML?TU~!a?2K0n243d9t`>YIZ;JdzuN0oMcg_l1KqIn zm)lD?hrC4)r!5NZ^vpKym$*;sHJ3XUrdM^r8|Wc)KIPjIYWFp4{j7o$dpc6#c-}nA zX9&SOIl$faq+F@J$yil;0TBs!i8r8!$@m@Ue{Mf;f5(--hC=yooN4Zev|l6#lk_MQ zpht_Jt=lWdQOm816)JDd@n^X{W3v8{+=?jZkQU6hUe$F|R9y+ro#z--tzn-!*b>^< z^RfJucv=9xb%WJRu86c$wChX#bDn%j*cV-RTO$jv%9(L`B_VLnR2={UgF1Js0lJ&l zCLx96i>=N0{P8jU2Vs_Y?=P2b1P^%rM!##XWyGel`?rFvA`r0xoBE02*aGn>2JNC1IAJBI9@872LfyULxe9 z1KtI)E30LQ;(SYTtGUowo#$i%g_1>wx!Oj1*Dk#eH5lJ#m=}4#{jGPbI=tyUaw&_2}Wf8+4@}LJ0=vnD-qTTKMXgkYl zn`rJbaL&CWJ)b+q&g&yoO5u;18$Bas#lO2GhM7@oQ9xFJH1a4P__>l)u3I8mlFb09 zyoOL)hij*?@2~zrp=68>#vax7Nrx! ziwM6J?Euikb$0(JW9nBEv+qkQib!3}axy2AqL!AyOFnH~Sk12W$f_1DvF4QR+2!Mp za?S|Bo2P^-sX#Blw=-`Pm$j(aT){UF#}fyB4-s>{4rK9|S$}^^n4zrzAzC!{MU~@Z zk`b{~@uDdeqZ_&jDKz)TYD|q&x>dfJQBV~{}&mZu4`XM1_ZK0g8 zJ`$wwww>ue7oCv{`4o@ai*i4vm@cjMN|K3v|V}Xu>wxb|U&QnGa((-vs+$x1PVrFJVTGdN2XgPZl}Na;IGiMXL9 z8gxPA0sf|TaHz1j4S%QFZWPT$2XCu1BhqEBpFz7>#+^rZrB4Kd@QdtTeELjs&aS5q zUkE<3&HvY{zF!7OjwFyL53Dseli%w97-kmkJY=tFI)kx{|9SgPx+nS8U z{&xmHDJe3y|2=KhBg1c@l$aHbZM-Ro?zP@_ipvfKO+uy%yjDD6lx=Opl!$pqw zB(IDLxL~t>mcjQCtKChWS$Fd&7K*?!jYHCEK!Ud3%%lB{FpBz46wYd&S$t(TSlG zJr7$ov5gI%V{0+fKkFh1;o-@5uw;aa-r^Q5;>dDIY=Wg;BmC3>Duaq3Mhn9#VYA~S zgjJRWzII*HZ#CHSb*$5E4}O3cGW@iZ=D-&Yr$r)Cm9zQIzG;6J4tDeTraPfKL`({> zg3exB^wQX_6V#3ixhe_Q3g)*RzFM9YKLTQ*gLPpbG# zsItAMjc0WRq=r4M)`e^{2NUla9tvjdIS8n$rJevJt+&r(O1-aN+%Z)KwDb|uxOqJG z7;kys9-)^>kl&(KibrT;bcnb0`tS=G$vL~xsB8id@b{=j zL!u=hMNgg0bx<9eZzh*~rinLnfDzD`Iw}-(r%F0gIK~BMSNMb%E}AnNkJqqZyyTa3 z6}Pv@66AOGkE4{F^Rn^qU#Q5Rj^!sCZ#{HcgD)<4Gc(*gu+?{bKgT7Mwopm3uOdkT z0@(*<<3bBOfVB8u(Rr?|sOj;$uMm3=nGPSKtF4NYandM@-`z&!h@vZ_G2D--Bd6xeqvhO%8(o;UPhYWs6SNMsjzQblx-kI z_7GjF_l#Yj>N7lz>$MCZ9clP`DbD6_vv`JnQ+;#Frz8+Mp$e{A60IZg&sQIt!kfj1(Kb<~|NP&$3>!ZSJY<)0HwzVuQI|$Z?%HKqT{^fRELK85puN6Tg zUo&D3ORto#L3caYyq=?$?Ban@NQznE|Gk=NOD#N=a;$p0`CXeihNm0QZ+T?oN$vK# z5-yE=`T>yXmkbIs_CxBODhc+KNpfmKCi|_n@OQIba<`eM0+wcDQvL@`^SBFxowYK0 z^nmseluBhLvkmlsKNVC;Ej{PXj`!vq1ty^vN)rv098KBm%UHn;mGjw`%?0r#y=AV# zd7YY|iqgMISI)t=q&9iv*O!7g)TpK@jl97V^DZ3v;ELBSrM)EQasvZ{E0~*+7HkQI zEEe8IqeGvMtiFe1Cp$L3=p?Q&sDUo<=Cp|1nY~UrTTbrdxt2kmzD!*cVYl+3-%6Ao z>DyE1B>ONS$91*#_e`Vzrz%)JF=Ep+1^C>CO2@T$X;_nqe%UO0P~ZRvRkSSh2ZkdH z5>Ma7x28`xXg6f#-kXYD#PSNe+MuvE8{AjNG~J5YjA@ZR8*|DV+^H6tsA zj>Ec)ito(5dhco3fsBr{UB648QcdLVLfUxn+&+_1#tLA&!7kWGMP8&CSuI~AX?ZrT ziJ|w3y}p=k5N9j(}K*Bk3d25YqKMG9f_rR zz@P)N^0ib5a@uGzu-;csiqUdwF7Qq`jU&LAn)pSs|6H0^USN$BI)WeqA}l+J;j`&* z%SxolwTN+x1Ic4T0qouk!RZOsk;hMG8PoH7C@RWRb*FRd4(6pi*aa4piRXHd0V6Ca z+EPhx5#L*HPdN)h0_@kHG%J5rII_G5jZgve+b<=?-(kxU;1Bk)DB@3FZvGNnaDng9 z(;^HwFadJHPdB;voyBFtnN+J88n)A|XLL&Hv$9pfx4(3JeS%{0w8fQU2d%IFm2DI@ z3|@q8=SheMBNsc$U>^9}kIVFvgnrUyq96veUPanIc)Jf#?9^A3ZqTY;K18|jCXk<_ znSKTf1=ph!2_TK@HUNy+F)LM2b`-eYfk}_i@YbbDku|;=;wX3LK*W3zM;b2VH0QQj zDcICKqu$|QUt{XJI6W7BZ(>pF{o7Gy^2H0ponu*2#ejg#cjP3|z>z^&$VVp23aD-9 z&a+k|OI6~#6grW=q#<#-n;~D91mj4rr;q*d5a7QyCm#xTZA#VfAMHs!Dv*nO-Uu@qVDe2t5^6Wm(Abv(5GC|6C4? zX9v#ZLMIemRbL!{X0Sm%d`u6-Iu|#r`eL)^ew5W~s%+kk4w&&_H~nO~Zg2pa(5M;! z%D`j5AG{C7lqo1D*8R2jCr$v~8(`u@46DTfZrZ;3A3`?{yym|#5}A=z%zDXwYRrQ% zHo{xlH%!Jv>ImnW-F$UtM|@JZSjQ6~3rOxb>f>xfHalGMZz6{5nogtK^F5y07_37B z1{;7FD`yQ_v7~3D?<=sx(LpIyWDE7XLHKK}Qj~$8xG#Y=p|M^?<=_xf5uIam%WyEk zAGZ-q=8kUkZ&vJ#z;*2A>>RDPE<2T&eX(v84z;LRi%|&?>?!s*^G(93T+s3asVDVw z=h?8BnG&?8px@F*z#`{@#)2cp{G~B4D9o;NX4SrIJ#e{TO&}=84}$J$3{N0yi7ya& zdX^cxnZK*{n&7I`3IMCOiBUh;T{uA7kpMS%Z-smt${zGDnQ(y<`g4JMu^tF2`_>3< zIJn?BITxQ`4~|{|)*&So?VLtS4v;Cf_hw}KtN{-plMKa2hzx@DLxkFlwd{d6TVB1L z1bVj9`khbxSDk|!@g{y)m^rZeR|AnGme=!K4J|JKFbnhm>FtNK?F?XEnxjJdzFE$` zA|sb14$m`GkHdin?b+t} zS42s@3NX>0OUr1aZw= zDM)KKMug*faJ%ak&g<;eFQTTj*KmFOYGBVyraV0Ki|6Cv&@ij3l*`-pQFy1(T2$gl zX7J!FrLfI#hK*spjt@@CyP@?KLJEy~_kOWIt`vIOT?-oJGzG$qs}h+%o!-6ymN;n* zK(DW5y`^w0G_F`IbHWYNkcRf1KispZ$IB{u#;-UL;!exWAU(@1g_RUY?2y7JU*t1l zsON;?GR}-_+txY_j8uxWL^OAPD0I$P1=budEHhl)F<7X-P&8O5oIi5m@E6?H+xa!+ zxwoRVyh&;!Z{pd&qO{ajqb`}mVFG3<|{j!Tid`iAq?mv5~d%S%n5df5(s$e zkF=bq!(Lp~Za`5)Or%2D?%l7jcprrkRNc!q;|Ik#__ib+nK|3`O;l0GQ+^I@JG` zh=cv^)LuJKYz;(v1Z1NKn6|wMOv-RPVW3Ya4XF0^1jux~Q=EZkE_-Y9B6BN$@PB67 zV%ezL8;%=904!e}wuKSh#${z+%POv;w1OH*Tk^9R{O58xb~y{)w#&`#Fd{mB4$r%= zIqo2i-f!#2GExPtz)Jlw2I_>UR^mw5f>?mnY4*?t9$oGP^@@ma9wOVcN=chfKtuO> zkAv6amzldKQa2MHhnTr{YT)sl`F4 z{2E_44;$6!3Wew%7QyVO>p|-~m1vLd3s4<88jAiJ*dwFCxm)g_>ovl1)tEie(P$gK zoy&Nb{3lF7LmI5mk-y%5k?)?sJ#w4zf;u0#wAJc-QZ~nJj8C|H|7P=uTNcRC@$mf{8z`pGlxUz3%xg28-SpH44Qv*rteJ(*j~Mas^k zZ2xn**3xZKdiSTalRkV6&Cmclq-|dx$0yco;3bU3#dS;d3=hjX5ARXrl`|^%yjIL# z!N)B2Kgh;>LMktqcU<%?S9KuDU_&COD2@qXufORu!xi&3D#M?QPhKASFpX{%tgN<^ z%Mur@rPplPkJ2X}S(J`;s!-$g6iqH>t1+Xj1TcS~4XpjtIARm3e7jy93mim7m&q(N zYJ#w#2o-5JCz_lk^${4v8aGcC#II?eXVq^HELqY=TF{6r5S?=X;WLSZ;4OMpbHngj z$fO5ar|b>HE9-g)2AFSR9#YFe9ITQFm$%(c8BG}2xS1U!f5jgn9mMeXy45S8b~qaV z`gnhJ(L!svVqk)U@`Z2k=9&%$E@LNe*VpC24a(6?( zTwP}n7FM_W_>kQHm+`lhkIB5X!n`oK#}je?$eO%tnCuJStqapetp1S?h~`=ZEsMwr zy6U5puc?bH?=jj2w$02P*XQMOsdRh{xaSB5_U;pweFGr~aAsv1WdyI#hf6(MKeB%L zapQc-j3npPz@ve8Hr9(kSBTFc+Y>ibZv!7o%h5pk@;VbaJ@t3=8uaXw#0w%m$mS}P zoUmt4-WLw?XTH9pToZ+Zau`Q)&|G(mlQBs`cdcI_Hq`uS@~f?-7c5R?B<+ibmW4%_ z+xbL7XOOzbl?N@kBKCX3j?(laDS%B#A-{E%IzA#@p#XOIssSdml6%CUJ{_`5y&r?m z&1nh6%U9S~>;R?m>psS=ILA*>6gmL42n^0~+7nApRR9T95C&b>Ng`Zye|oKS{4y)r zv>UjnQdt7#3HbAj7b3mlRw5N84%V((0+_pMrtpdpM&Chc^M^ixem`${mMu*@NgH6l zR-EKtV+;s<`Mh!zi2hi30=1Rc=UDlmTn)b4)hSB{0}mNi(gzDf0)q1aK9q93X`-${9)+3)N#SndJeqiuTJ6ZVRhr9FCq@1~b<3azamHr2tue``npgaEqY*vb zMnN0%txmcV+;eLPmQs3N9afJbt5^v2w13eqJJ8HUv<3=eq*T9F42&PEj>H{*f&}+>-%9wW4^)`8u~hGXwLWOT^NTk$Jl@Q&1>5}LCK9L_(is>s{4zRr` zDye9}aFa*lXY^0yvHd6s_p3GvdvB*xf}uvIwvJCFHIhErg9 zMwcp;;^?bh`J~)ZMwFlf%Q$Rz!uOeZe)C_bv1D`#jv_E9kzr0&#NBr(3iM6jM3{PX zi4(;OacCeOX%2|=nre3M5hXSH1#7ql;6nmH*`c8f3d^7b8=PA9sa=SRwHRohNcGAI zbGpaeJTn&T1lB+_v&~o&W)=!^{DfY(e&2k>8uXf{Qf}GtQeef}W5B$d4KIkpLm|t< z3U@dCote&(oGQq!C@Fvlt{HL>J%QjI;g|qX1;+uHVf5r0za6Lc5IU*CQJw*V-=62o-VRSZN74 z_~KHTz*6}2H6y{{NtIQC4J^w{)Q9uN8t-vFsVu^W+Nee6k1jj1DwZ<+>Ij<6jlJWL zqVoxEaiZwx23c2Ee{>;AM9q6DmN-&95DdEbrDeg5w6ze7>O$P;LJXl9jNE&CBGdg- z++oLJWJ&vv{a&{GhrR4VqBk7tl&{(0C$a`_MX`Mqw5-QJ(!&W)I#X^UbBFgJT1?E` zq3CZIuYi~d_kYbva+?TNr-rjQY{tIv)S!aTv#YbMmKD)B+0+ap}E5@5>-@IPy)akOj4F%`V^>zyv&7pEI1`PMX z=Q3o4oPF4)x%&y~6&k0sk$L4cx;iC?lo&;oMI;`7Fz=X+{PEL6)LkTgvF|+j{M0Oe zxPaVzOkjSpY3M^{R}wXzz;{RyT4*dx2iUv263iJ(9Su=mt)PA|;=p=yyRVM{*$#6Z zWjjBZ=5~|K!iJ3{-+SP&G9>hQ8wU#rqrgNt?Ox-{33O^7qt3C>kC)z=D%w-%5r6`k z!??XNvvfN9@U7qyDWFMlWyrk)GZ!|P@kYj59p(hEwIApV@dOf__EkWp4CbhrLA`|H zVeR_<9gRrOD*%BknQU+{EBM_k(^@Qc&PNvrBSumw!r>w>vpx?%S0wKx=i6*WfrvGi z=I%@@!8yq{J+5s)S!Z$17yvaO4=s4*s{{MgIY9YNqNvj3=r%{WD~^MFCnWCS>;KrM?QH`DAa;G3B=lqgSO^y#mI)FV6CxJX|gU3NvLnLecgm%<};p|0m_}M zrd&t9pv0O%`r#Kw9&))@S5!uZm{-*Y8`ktyD=WY~b#TVE7#i=h-VQhNM;-JY(|=h- z;|xTF6qVLsT$3)CEPG^`&dcZ_Ywz%#|AwCeGj7FmW;9CUKYz-M-!=YxPPyS6!5_XY zgNp{b^d+0FTtDIAlS<&Q1lgl$Gh+7eDWBcO$-6>hWP8ZIc!%!apfPKsqQwsrcFK?2`{Cr<@=` zh7A(S!8j2czh2cuUJ{%oh}Fb;SJTThyvJq-N*M{I?gmYJw?p*Y1F45_?7T>rD(3 z3BaW3z8$y!p>T}~Hg*He*8}*mxBfj{1n3Z4PFe^@EZ}oXPO!VpKTEzHc|Ky{Cu4#S zUz1WKI!E&d!K7B|70gUMg>`rrYN%O8nNcUTOp|l#@4|c8a?$2&n!Oh1nk$nHHG2xp zcIF=2|IkOYah#B$br4CgyKIc$j}NyOXWYORvKun8w`m206j$6)h2xSe^Wj!TVD??f zM~wVqOk_B`V%7BD=uecY?Y>L?I+}g#V^-7NYD_$Vx+A9&d>A zuJJ@2y9m#J+{63kWyA2l-ryb=2Y zZf**sK85fL$L8MKt3+EU;Wx9h@Tsh6F9$=*Q|N%)1rO}aXB|j~bhY8IJ?$R|AcT$b zDFu#qF#Kli+ABpPw9#i7J~Uz^-Jm;kjB)PlN~Od;|7WGWc5>ROwDABJmJs}Qn{(zX z+i3g9u~vU21}>X}(LbcnPO%1b+(X??jTMBBoEd9Pe$;b{PU;MbfKX1Cgjv)_^&w^J z1Z9g>puTK!?#L=uDP{`xKMAM*fWN=T($GY8yKE=1?3kg#C)ACDjxRi_dn;5tpcZaq zz<6)+EpGi);LD!rS2=T5P{>eCCW?CsH#y} z{AM~n5OyutdE{wJkUoQ=*C znTx-~awNM)<#mG!Q`6_If>w6Yv4<=Q-(?<69_+PG7=y97=@U&O^kI@QhQ{WBqw z0%~Zg6M3)jX$?L}t+wuz5ZHbCF&OjU-j}kvC_fhB7<~cIKT4Datj@(bh#Gw^xU%qn z7sr1f?Kxh-Q->p{a0#4uj_+r66$I_9TE@TE$Gr0TiYKYON(QZOFEpb53!1j<<0{{v zY<7=Bd(VV5SSQHyzmiCJGmSbrTi4#SD$sLkNx1tY$RbemaEhFhYd3ZV_Q|!b@4oH3 z$#$P%gxbA0sw>Hxex!i_EQVgR2x-%`{5*dx=ijz@A|kBE9=N0I8KgsE|Iw2%xb)&R zj91MJs@P7GiEdD)KyijOogs^>K5!}dTD;cMa3>^encXj}bJ_Loy7O*Cg-OtlSAVX? zwksx@B5O`HxALLh8ki?@)p>7PTH&Ge2XD^yqTAtNHJLqB7f>z|HVC(n^L+?)499is z$(Z)AgB8)eEPpGkiRlqCJ>UcYCp&<2!%0~gy?v;VdO%}ckr}RKEG$gTN7tL`lJSn? zf_NdbmW3gVxru%(V{sj0WyFuqE7m&q{=iCbj`%>vSSI7$L_SeuE)3kE4cESW-b)=8 zul@CFC<4#!yS~SiKZer=l`99Ei35d(#TYYz^+knfO_jC&&NQ8bLR0 z4LL&M+}&j6o$Pd#D|&i@zVC+KFDSDb6s%Kx31XX_})uXmi2!4BJmV%fDSS_ zEdfx)f=v^aaZFdak38ob2e|+9-?|(K-IoaBOiotg4T;>`m+W3mzIY?PYR>8bCq}Q9 zC4eCjeBBoe$RYvLd9rto824_j3<|`e2jAM89BIy7<=QnuD&~4~^DAtiHYAM_eL!je z|1u`^tIAGwSxl$a3#t+5?b{q+J(7B2be=V5!VIeDWi|dJl!K}vs%y$1+|gifLWC9x zS-3I#O1w)PIt;Wn+UR(Uc7_j0`#xK$)op>St2_qErnB@_&X~q+q<^nzyw)u1^xL$g zfx8?XKGqj^8D#4a=P|H+CAYzpP#P#qiAX%n-tx4=v)6q2YLjKscn;5>GM4L_#fX@O z&c-{JV69T$S^SX^B8XI_uc;Md4|wZf$v)-l9}0xd^l0}H$aI)JPv!MtnNj~SM3W7V zu9eO(=FPZh_qJH7>=5oL&Q)sU2k>5YDg;_jX&vri@vo)i(CU7Tf*MnwX0Z1E^W>^f zl8_5s5y~yJxUa;$LjO>m@|c7S28bI^T`FZ_>f$u>lxQ;rr1iUf_8~i~G0CgpE}Hka zt|*Gc#+aagn*~q3I{I?|lMbD~9Kg7XS*7Mfa3~5*+TZ60qL(c2RSr;C7A&EKYXEtd z#a)V~ZaF7p^ww&;N+Ws!+6m;Bf_Z+j6DpmzEwk8bt`BL)GKC_g`8nLmz))ObFM`cB7-nFY%&(i;?qjpObb##?rLD-Y8d7OZ8Dp=uk&5K z58?nIFDR(!t_7y4M@9TaIs`D|5HIUUQe%$OR##L(LWxR%mxFHDwk!+UGpX$l$BhJ< z;u-onzx4BNW>a%V7=?jJ=uj>f=n73>2MzeT=^yK z>Bm`z0Eq;$WQG1le{ck zM(DBJAJV68r4rpPaDBG)_4LKx7!4wFFVFu)-!g|L>hFzXk?e8* zFSg$qwQ!tp4J_8~qBoW4#zi$}3o{*-09-3Z5JHYTh48+i4Oouxz9!)pj_i<2Rai(l zP)>^B4e5Mffbm{y=x*PZDOwD!?nR!$ELQCi5j7#SGxU)L7=`+?>18y=$_(uI^0!$^ zW4;xN!{IVEM#nrnm}nN{LwW+!{`!65?Xn^g?>_;4B{4V6q#+L)H}6;QFJCBG*GE0L z?(g)8o-fE~)cyr}z{*5RN)FZZz@{Si&{g!_=CDK&6U?Hk0<)q2*@09sGK+w7vvVww zu$^*ZrY#DyK)06}EHJgE!xJUlyh1s(+Ey@tHFlyy^<#n9Ks5Iq9RmHpe}s>}SOEZ- z@D3K$o8p$LGr|Ke$TfbSI^~D4#2Wvy%_=DT z>NZB}H9Uuv=H+@_MRTM}>!t1pxBp}7vtfB73>m)~x!zWpr-NAvE52(^wv=JpB=~o!d z(>0`=w!7p08^EWu<*2UXZA*e=p4ubapaU^)O21`1w-JBz3`Z;HdrOUMva4P%M| zjin)eg^e`MVC^9mJusMB?Z-mk5S66W(KoD5hPl&-;F*4pMKbDG`mS?_PD`1f!yIQs zwMJPgw$J44LEq9RCgQc+ZZ@?hgY}BKO(Z!p>74VDfIqVLyQugghDU^1rD6LD->d*a zov`>`co<%1c7x%HH0S@MrkowzU=W{=L;zwRemglsDn840*`R7M6|OfPezHpf zlA9IEBJ_uc(fFA_=_RYt7FX-QWdDQGT%Q}Uh;JiWAu zP!_0YxA12UOHZ-4dit;4w_fF?h?q_`#Bs6jk*g;!1a?0)MR1|}l7vyF}OOwxPqaHZuu=*m1Yk00RJU@s|i7azN zoKo>FN(Iwh>Uq_p7ry&`%DJZ}8|~RQE7zZ0b7;Wf2E8E~>q=Va=gU9)EI8B({7e|` z2Vm!RWxhq&CAp$+B6alv%F$8!k(9qj(bCJD4rZkcgk+43$EH!x z%{>5boXW@sJ5}4Q6qt4hg+N%0Ge`&|;gI@T3iU<_7yfleI$Q>1BrcIvTVA;U-cGHo z;EoeB2qKq{??6c#piibXkObip#H9wz$|DOi{>2Y`9#wu2&GP1RCTIqYmeQ9toYiAX zBzf+9VqL>2>+W5h;XIaqUf(;94>#Dg`KA)yElE!QcH}6+4l|hIiglzMwPJsl8j4W% zXpgX{F4~wC4H(D99xXN6Bb`RO_>{+CCatcULvc}!_AC2wGY3J!N1F-rPgkv4=S`eK z=)`H@5;r&V)&+X~N>CZ+9kOr$e*?CWZLQg5Y|;Li88A00CY(-nW}{kJ!{dwfpQJYr zF0IK|kBPm!6Mk5UW2%VZ6fyrww4hv(nzk6A_KmEbU{+rlwylBMH9^5qYkS)TrO;Lh z96ljL5(EvsG(5s4dv7kvq{k2tl_p3LN*{7{4xq``+**K2#`)=1p(3|07jny7tE_#&#Idy#dYp5`kgn8XQF`Rj91^df zsO;#rl0l9yJ82ShklL&QtYwX4RRK9t0y;lA%bi4bJAs~3q(g?EsR8^yaF^Pc0sIYm z>qgTDIWz-FZ^ON5yVW$x0lVVEMD+%JvIL_&T-dEV?skz-Gv~7NDi5ox**=@F;j-_F zmB}ro8g7wgvc_@L_Fl;j1XI|(nmsan+b>iu5i)h?n(5fsAy}E=~2b<&$L} zG3Z`6$RQ3Cl9QT;D&ycM7n=e*-m=Ze)Do;q{h??f3`FaWmnd$AXQ10I!2l>E{tjX9 z_)V9U|5~+ybIXS>rE_9V0f6woUhB9)IQ)@&k~4;L)A0IrJIcZ8W(uH^7Xvg8;4rL7 z^cf*v8AC=|OgqED+>zRQ-|UIY9SWtZ9G$(K z4T1xjj2iR{oSTb}jcavu)AU0wh-rV<@6LUVEU7_)`^*X^F1rGlIq}#ZK~kO^W4H?- zBPxm!UDnqJ%tGE=q8fh826jILj{8f8XB7~fl71ui{K&%-^wgv)_I7@H>&jn9%Z_G{ z>Rc^+N_sGoT{(hGmKh4H?r4MRttZJz@J!{M?II$3h+B3^3NDX2=hfGLU%szsPK(1g z#H4SrBFscd1$sKa>C+r%klfRO5u0fjc0bMS>3 zXZ!+n*oKWc5o)sygs`Wfi| zv^J9~Y@3#P6RPuaw>1qLtDCBw5xP*g(MuzfVMGxO<`+3rq?AK4vogY1_bSeJnL3L@ zcRd@bJa-OJ3)4;xAHP@5P~==ox>+MNz@l}YU;iZ#7 zjNB>#NXoAPH4agO(3Bte8A9Str9^n`dWpZJuO{s= z;G_2s&_dz>1kb+A%;`WUUj@iF#k~sk5-zGCev+MjWYE1AsEL-r2HbEeR(}lP3u!Jg zJURcjpb70EO!g=^Zk$OaE}HojUE}jOjYxa*)HCV=E2l8_WxVcJ_Uv1 z8J1$^q9cl`&#Aisjdb6;2t4k?59rLc%&W>xb;w0C{`_u^9ygAE?1EambhLeYKp?2EkAjheGgGZhcrK9xYsD7ds5L`hjSPN+pYZ^Txvw6G9XJpK?H(#K$82&HQ=V-q69H2Fcq8I; zB~>t@EHwQE+xte2Ux;Z&MOy}_z3?;Q7}(z$OdFVW+N;`W2sd1AXx$wqkk%REf>p2N zux=RLrc6jWu4cs+@M5YQMQW5nO9DZ?OVT-vu1TVs6zQ2H)&NithrhiwTmj2`!2Td_ z0p#oZxyDcBEbIcD^CiC%a|7WzW#*R#b*{uQuX<94Ge=FSgf7bnC}M?Gg%(tBnBeMK zZ0%-VdUD*77wh-a;Dh}qOY6r!2;dn9SWM}76Cd(?SSt5VO?OpBbK)Gtz!q)iW&7$g zvw2ZWK5hVi_Ht zDMEgm&jsGN4^kcT>0dY571KyfTlAt$UW*ly!y><4gDG=uCqlZ;P0kPoNNvxia~wX* z>=YmgX8A^$BiV8F*!bW;Qe3A{_&F&|X}JoGs}SxycH z@M}>hj^jAF5L(2TFH#k-1MULb5j_u_SYdI>#3a+?s!a7c-bk*TfjKnvCPa?dS3T0< zm(e?PcGFhOWUC!vEZPRZcUsFwL;UhQ|5?!5-a6RD6JAVh2Alq^FXFa|VQWC?SLS>s zV|+`Zy7Lit>ot${lpcfWnDOqMfxb{A%INwYM8+^$qMcB0ey;l^n3A%699YoQHr4^h zou0YS1%uo8OLPxf$etQGi6~G7N2e*@;6X4tPcvwo(je48dkDqZVS7)L7-l6|Vj``} z_TS?d;ue;@OpEO0-rO>$5BZ5DqHToDH&F|50F+RB9je z0!G-A5f;TfXCE%2jKfi^k49A@GdX_rEWw%sVf!FOij>EVv1_dpUV46Hdl*7(_pD$3-&B{~tfZ8q;wf8HrMawu2h_ z%t=L^XUbW8jeZERFq)f8|IN?)c&Lt^0lxkmT;7x7ysJ>sII7d5_xb=hx#Dka+C+uT|r!J|;AndxyZcg)Y6B_b+Y>4I9?%0rB zp$am??Tqi3wO!cyFs_?9O%4vgrnQ#4P`=nqj5GtyJ%=t3+3)Mgnt=4f2%hK;7MaF0 z2z#{%#ZSNioYb(|`C@#4Q8C2D;s0@o+)n428+JL_`fzmC+$g&>1^3xRl&=?-X+_W!(y*uWgRqL z;KHnfE?%*&S$(A$%QU-$Xzyzcn8gPvBL!c5iwQa%N>!#paKe%v4T0Cj2_YI`&6hJh?GJ^yM`SuL@YfR{%5h{vp7(G=_WKUf%;M3&qr z+)W7tAtGHQJ2qy-aPxQ;c*RK(@LDXo91KLFX1F+TuWm=bF8^DvQ_wn*wuHp_f}M!d zW%1plN>E0}t$1i&l)Gv?Qd>ka-b7J0GPo9y3rC8_#SceZm@CJna-~hk7GVnO$a8d z%nW)QbP!PWUB%0ccL;Mt8SDwU3PAgi@v=t7@MT7Mx&Rs>jb_iE+_g(WH67m@8JqQQ znq2>?Ap)njKeg%XBO{2sd>gbO{eWYIO8`IB+=Ci?U%Q% zV`%_}O{dGLTsQU8DXBu{Snvq=3c5&fN z%nx!4Z)^bf#54%5=ej6MHp%tx+6exJRDEnMity(vFC=+B^!Vywk%y|#q$*}c?|`ms z0CAkG%~!?51r=POV`j5d{PZGrwp*7vJ1^c{W_m`=5x@L<*pQKkdt$Uy`E7?98N2W3(9?+SrQPusB+cbEUzTIo{4e&|M zjYV{pb({&LV`i$=mdW4?d~2|EZc%CsHIU_s(~m-r@OTq1RA7&2FWKU-?~Kcd@T*!r z{cF`HH(!z}+wc7(qlqEyV{Hh-gcR_Wi900iAnu_?5Y(DR4gB;dX_w#6O5J4ToS72A zU(X(t#a7^YgU6mblS1&}`g4$7OP!wcwmMJsU}0bL#OP}X z<(9FFEKg}W!dTP)7N&I!xB48)PC14y!3diVqp#O?pG;qSW|p}?W<}?7AT|W-0Diwu7ZNH9x2K#9->~1p7y~30V{{(X$aXGM7CTuxR1%+>F95 z!G0m+wUA7}B?6Rln3lke=k+OGpd^O4NL6F^A!W>Al*&?jb|Wr%2NH?rECHGLmuj|} z_3}KewMPMS+yNwvpuwFOF4NXF4kQ&F66Z@?K+;#ujuucf&oM%Yc%_go++EJjofhv} z%6(7*BM?w}g*l0y-9XIE*wI;b4n{ch_u;mE*Kz1IEOFzIeBy+YEu0BP#5CD>S*GAc1Rxo~B z#D}rF_cf988Lx%oa0?PG>34^hKu5&z#D!-~THgPdb9m?C`*R}1s5>LjvCO_=jJYeT z;y+iXLn@coN|M6nBDs$wqF*qjWYR#IiAZig4P=bHz83kUy`~cqZTv+MT6(^C$ywHp z2jnTtkU; z!$wDUm9}AXmlq`1lHgG?*H$JhJrug1yHK7p^u^yXDvC*;)*qRsi@5f)xRy>K%o!$s zA|v|)2i^$N#3k0If(YM5aL;;KI}6M#;wtG=x9~BV7I-PG=Y?6*-)v_qn8xSfdVb@! zzqJOTCMwG%E>-@kdDI)`aXxVvwPzKffUeP3$5F)!HYrqMDKmI5V1}ae)ZD*Km~<~M zpE?*}$TFKdFpX4GLi{z~UH2-y3>5--&+J4M%iW_4)kS9K2uS}AbS#8Zc3$m|40Qds zs>hjsrp=2Qf#5`J0s7-lLHB;N5K9%uI z_iVgSa=*Q}*%TL__8`ORG4d1@G|188YHJx3jj7#(HB@+|BP~Z6d51wh542&6AXu09 zJJdo7a$P}>rtD{()_nVUrKah!_Ocbc zW3lE^)_f0M-~}P?6^@~uk`Gg40Rkh0{Smq{lp<)AX|-(3T^A3lIcmx2;{E*@%_bXT z?lV@qCE;6S5bc@RDE8kPbS17!D0tOiGdcB>hci$7Cb{MpcS7|S}iAxRQ_ROek*-dkJbcTzt)mJU-@@{OIP1`qf1b|h| zO;~foa$1N#KPg`H$WZ54aySLwa zSsY6Vd`PCQat8`&K(dqddQf1!qqm0R)isH&Xb}n{&eB`2^;v2)_CciUB?es>7Fo`V z5-dqlCPiaF33U)3jo`mbZmmX^bGNT%=3Gp2m)%^t1QlnFV`}Pec^;|?A;4WiE zg$bmhIg0szIlj}hU+)Ro)9P)Zc%efPf`t^v$cM0B!mm)rSG1qBC$6~-y@G|Sb*eOX zDN5WtH#h_7M6gl{=f5xx0_84Zy5z(_JRrQWeQdm*I_&3>@Ndv zRlO+J+>Okqb5)pxHh|XQuktI#{rcnzIUPYs8kIVBKY~6?x8@5s?X?D0UOLg5r|wPO zVxbP5_V=yv)MhQGkKowgO_+=3F+g#HO>@Zr-EMX|fK)HNW7Xdf8B^k#js4*rgSuCR z^^UzX9{sE438Ne?)$6<;4b+=JxT8~CMzi0qT(p89^oCwbl4O6j|MyzD>^krZL&kw5 zo8i|?3aK-*0VqpaSlnx#bN2kK1Y zt-tA8Wmy{x?-Pd(?-N`*N|eb0&hD##dqAuCPrNa{L|&hp@ybn3@eYaIx4`CY+wbtv zN^=^mK0c4!@6QkLSwXrun`pAqa$A!VWE`x-><|7oq%DYr+OJYOQk*prQa0EvN$c{O zt65<%j$jcFqfRk1PdNCUAIXqP!6tBsrmsK1V}X#NSg?1vsZ_}PK=H52437{(p>x_K z^xW*M3U8l30`B&;ZJF5teCd>zI7br4Bd+9U;ZL%>TzC+r8e z)DQSW0v=>Zt5KWgCqOFdI{zqpGs+`@ziQ)0?UOqxnQy?{jsx)`ow&H(V(H?i%iog* zdSUJ3U(MYgQ@;MOlsGcAl@-6O4-eG+j-hz{cx2qgwY4s1D$k0>r95Dy;De~AKqx4n z>*`-y9~CQIo&wVOIr~#%(2(b#04gG^Kqkb@kzIb3G_i3aWu-`>ue!ByGHH0$=Hg?TCQ#_{pz=I5|Atrc8+JRfKmHbt0zG{aV16R4awG2V;k$l?qo5m zQmB)2HLcf$Vf)mh%KQTG8&?_Lk_Z-TBZUeRw~Y!KSFXGU#w6TNAxG-k!Dmt#{Ib`L zu;&lM0^leSSo*A1$TWZ2aA}mqJzfAsiY=J6^$?v_O zPf@39phi*D^m|r5K+`Q+o8pu{Q<3qS5k<0=*K22d{?-Uw0V``AoIIDvK_Ed5*C%{& z22NbC9V~vJ6Pux)TdS~*M@D#fscTG^V7x-@I8lI%UTOZ;RZo{Mk+pt*|EhvzI7$!iHr zWO4n=M(Z(Aij!MJ`P_O!4wDIm2l^wG3P=Zzt(g^NVH0n2{2!CP7D@p+f`ke$lqy%5 zUefNuBeq?Pi0Tyj4ye|l=)JopRpt2=|0DnFNxbw|2*lV!rTo#~-U;$85xH9nL#W6# za3@1g^-MzjQgXjih>D0^6|xiY4{xRnBKFu**@9JijJsMMDZ z094{0buzI1ZMGkvfo@>%q;9KVsVCZT{&Ivp8m8NpzL9+j9?za+9D&0I=~!cd*a@rv zhH4bPXR-4@p3DQaI}N>v=x7<2SEnISq?2g_rrJ|U>{`dBe+D0|qDm%c?MBu4#`^xy z!+0DOqi~vltSvGR2q*Bc)?YZ*Pn|IO$89gHwZJWqT-)XbW_sg1yDG-E>uj>peSv{y&1O_3gcri<$_cgX3YEgl*bV(Af z5-pemat_yAxX*C?Cb~;x17m_)@f0A3!g7d14DUd~ZFl_v^VdX_O#U+JFSD%E86#dZ zbQvVtMRJT<0Uozh+u?4Ur5;EARISCTj#_l9gpNBtIH_(u6m2RQ@|sL~}FAemUDE+jWU(vHm#h{s{H zdf1__xXGuDWKM6oGn6f1{|0YED|kjvlZNye7gpSJP!O8(EW9aA4JoSQ@SfI{x#Zxq z7jmi~bLQDc2o21%ic)$3r8TW#uY(4~>GTXSXIbmSa(?%ud@8wPzjKb}o7oDtS53N! z)olE=I2$c8@IX{^iak$qodr7D;;Gg3hybe1hA6BtTr>LzWhIZW;MQKvhDPRLUA-kT z$pEd=tn?CVRm{>LJmXXb*j!kRW@k=BwX8bgv4{q(Nv6EpXNY1nzy4ObEsZ00Z(m0d; zhJvZG2WSLG%~%}4(%zQk%<$pM+G*@_Dt}A%zP$2%A=C-Cf4vrzj|6Am(~X-fsXUCT zub38tQ7E1pI6gG>aW;IWoMHZ^zr0~Z&53n15Fudy)3*~#K<(M2I$TOJeaWMd2puUk z#o<-YvoFr|mBW?NJfdXXsbs_!{10DmF?vMe?v`n6=g&8EN%JC{O;bYocyb*~2_%We zy?`&pr=0E!-7h!=8qDAS^seX63T)U1v7j0I_648hNxZ1A4ofjdpdCxy1W-U|5GMD@ zEgz7NkX~Ogp%|ep*kHD(Z5i759SJD^<}0CzaH-`#5PAZhA2^MuK6=Uq{Xl891CV}F z9;Af6odq=ib#IEE8zhOlVg)|f>8ax)f+b^T#grV~cB#~*2ItN2kHn~Asx~q?fVHW?h;j(Y`n9`uAO#Ic9e$N<6TtgH zcDWc?3yMO0q`R&%L_^KNP0pX^b$3QiVZtD$QhFOjzn_OdNcosyQiKf@**7&0^d&@W ze=CLtI)T=++E&+mLj`dh1oKQ=D{o$7l@}cu8^E^5+69sYi!5=X;?vfCZ0`^xNm^$V zm7Q`R4k=`)!4-@5Vdv>e=KG1ceRT9;Z#jnNlPGA@;mDF9{n)*!Z{tqkDi>qFnZp9J zZ@S|76u?Vg&5jDKb87^#B$bOdag~-Eb@z-$_t}_#hEOTnM}%T&MK=(A7vrE0RlUP< zHxb^p#-}%8ODMMoZDmRniaGF&9nU=Iac$N1kd%>F^xPiv1fQ6T0Zkt+BXWFapsavV*kYWlQ;0j|B=Z!-wOL($^O(T! zH_jhtVDcAJ9fXziCZbkkzr3{(OhAU-($1jyuC>Rx=XO>o~P_pDX8^J)opLHmg2DM%4E)xzvS+%D`orSip{wDD^ER%?>(tf$@AG$vQ8WIS^53hpZ7gUm72);c7#`8q%w%J>OO< zT|N`s>J(u7%?=p)M_J2b29%i-t%*u)ptk6kXpC-3Dk1QHmRB%l*BnjP`&}%jB>+US zwi+&9uDDZSC>&If6bARi*wk-EPrEaXX$uXxaRuC6hgm58bNBR{u;7OrfYG;yZ zo`Z!XAX(&p=C&baBbB3fLX=#R=iv@hi_@)`! z--p()-lb_)k>@AU9XFNK;O=nhj<

6k#My`T&pn#5BLP>G>KgMkDpl&n%Sgkmw^rqjp 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 literal 0 HcmV?d00001 diff --git a/src/content/contentManager.ts b/src/content/contentManager.ts index 65b47fd8..444053f4 100644 --- a/src/content/contentManager.ts +++ b/src/content/contentManager.ts @@ -9,6 +9,7 @@ import { } from "./contentManifest"; import { NativeContentStorage } from "./nativeContentStorage"; import contentPolicy from "../../shared/content-policy.json"; +import { dungeonContentPackId } from "../game/dungeonContentSource"; export const CONTENT_STATE_KEY = "healer-man.content-state.v2"; const PRODUCTION_ORIGIN = "https://iwanttoheal.phenomrom.com"; @@ -367,7 +368,7 @@ export function contentPackIsUsable(packId: string): boolean { /** Vite serves the complete source asset tree in development; shipped builds require an installed pack. */ export function dungeonContentIsUsable(dungeonId: string): boolean { - return import.meta.env.DEV || contentPackIsUsable(`dungeon:${dungeonId}`); + return import.meta.env.DEV || contentPackIsUsable(dungeonContentPackId(dungeonId)); } export function contentPackHasUpdate(packId: string): boolean { diff --git a/src/game/biteSizedStockades.test.ts b/src/game/biteSizedStockades.test.ts new file mode 100644 index 00000000..da336964 --- /dev/null +++ b/src/game/biteSizedStockades.test.ts @@ -0,0 +1,105 @@ +import { describe, expect, it } from "vitest"; +import { + createDungeonEncounterSnapshot, + reduceDungeonEncounter, + validateDungeonEncounterDefinition, +} from "./dungeonEncounterRuntime"; +import { BITE_SIZED_STOCKADES_DUNGEON_ID, STORMWIND_STOCKADE_DUNGEON_ID } from "./dungeonContentSource"; +import { DUNGEON_REGISTRY, dungeonDefinitionById } from "./dungeonRegistry"; +import { activateDungeonSession, restartActiveDungeonSession } from "./dungeonSession"; +import { useDungeonRunStore } from "./dungeonRunStore"; +import { + BITE_SIZED_STOCKADES_BOSS_CANDIDATES, + createBiteSizedStockadesDefinition, +} from "./dungeons/biteSizedStockades"; +import { validateDungeonWorldObject } from "./dungeonWorldObjects"; + +const source = DUNGEON_REGISTRY[STORMWIND_STOCKADE_DUNGEON_ID]; + +describe("bite-sized Stormwind Stockades", () => { + it("creates a separate central-corridor dungeon without changing Stockades", () => { + const originalBossIds = source.bosses.map((boss) => boss.id); + const originalSpawnCount = source.staticSpawns.length; + const biteSized = createBiteSizedStockadesDefinition(source, "run-a"); + + expect(biteSized.id).toBe(BITE_SIZED_STOCKADES_DUNGEON_ID); + expect(biteSized).not.toBe(source); + expect(source.bosses.map((boss) => boss.id)).toEqual(originalBossIds); + expect(source.staticSpawns).toHaveLength(originalSpawnCount); + expect(source.bosses).toHaveLength(5); + expect(source.serverGameObjects.some((object) => object.id.startsWith("bite-sized-"))).toBe(false); + + const bossId = biteSized.bosses[0].id; + expect(BITE_SIZED_STOCKADES_BOSS_CANDIDATES.map((boss) => boss.sourceSpawnId)).toContain(bossId); + expect(biteSized.objectiveOrder).toEqual(biteSized.bosses); + expect(biteSized.staticSpawns.filter((spawn) => spawn.id === bossId)).toHaveLength(1); + expect(biteSized.staticSpawns.every((spawn) => Math.abs(spawn.position[2]) <= 15)).toBe(true); + expect(biteSized.navigationLinks.map((link) => link.id)).toEqual(["entrance-to-central-stairs"]); + expect(biteSized.traversalRamps?.map((ramp) => ramp.id)).toEqual(["entrance-stair-ramp"]); + }); + + it("seals both side wings with visible movement and sight blockers", () => { + const biteSized = createBiteSizedStockadesDefinition(source, "run-b"); + const walls = biteSized.serverGameObjects.filter((object) => object.id.startsWith("bite-sized-stockades-")); + + expect(walls.map((wall) => wall.id).sort()).toEqual([ + "bite-sized-stockades-north-wall", + "bite-sized-stockades-south-wall", + ]); + for (const wall of walls) { + expect(() => validateDungeonWorldObject(wall)).not.toThrow(); + expect(wall.states).toEqual([expect.objectContaining({ + id: "sealed", + visible: true, + blocksMovement: true, + blocksSight: true, + })]); + } + }); + + it("chooses all five source bosses deterministically across fresh run ids", () => { + const selected = new Set(); + for (let index = 0; index < 1_000; index += 1) { + selected.add(createBiteSizedStockadesDefinition(source, `fresh-run-${index}`).bosses[0].name); + } + expect([...selected].sort()).toEqual(BITE_SIZED_STOCKADES_BOSS_CANDIDATES.map((boss) => boss.name).sort()); + const first = createBiteSizedStockadesDefinition(source, "same-run"); + const second = createBiteSizedStockadesDefinition(source, "same-run"); + expect(second.bosses[0]).toEqual(first.bosses[0]); + expect(second.staticSpawns.find((spawn) => spawn.id === second.bosses[0].id)?.entityId) + .toBe(first.staticSpawns.find((spawn) => spawn.id === first.bosses[0].id)?.entityId); + }); + + it("uses the run identity for fresh, restarted, and shared sessions", () => { + expect(activateDungeonSession(BITE_SIZED_STOCKADES_DUNGEON_ID, undefined, { runId: "run-a" })).toBe(true); + const firstBoss = dungeonDefinitionById(BITE_SIZED_STOCKADES_DUNGEON_ID)!.bosses[0].name; + expect(useDungeonRunStore.getState().progress?.id).toBe("run-a"); + + expect(restartActiveDungeonSession()).toBe(true); + expect(dungeonDefinitionById(BITE_SIZED_STOCKADES_DUNGEON_ID)!.bosses[0].name).toBe(firstBoss); + + expect(activateDungeonSession(BITE_SIZED_STOCKADES_DUNGEON_ID, undefined, { runId: "run-b" })).toBe(true); + expect(useDungeonRunStore.getState().progress?.id).toBe("run-b"); + expect(dungeonDefinitionById(BITE_SIZED_STOCKADES_DUNGEON_ID)!.bosses[0].name).not.toBe(firstBoss); + }); + + it("completes the one-boss run only through its stable objective", () => { + const biteSized = createBiteSizedStockadesDefinition(source, "completion-run"); + const bossId = biteSized.bosses[0].id; + const encounter = biteSized.encounters![0]; + expect(() => validateDungeonEncounterDefinition(encounter)).not.toThrow(); + const snapshot = createDungeonEncounterSnapshot(encounter, 1_000); + const reduced = reduceDungeonEncounter(encounter, snapshot, { + kind: "tick", + now: 2_000, + facts: { + registeredEntityIds: [bossId], + deadEntityIds: [bossId], + }, + }).snapshot; + + expect(reduced.completedObjectiveIds).toEqual([bossId]); + expect(reduced.flags["dungeon-complete"]).toBe(true); + expect(reduced.phase).toBe("complete"); + }); +}); diff --git a/src/game/dungeonCampaignCatalog.test.ts b/src/game/dungeonCampaignCatalog.test.ts index 22398ce7..db23cd37 100644 --- a/src/game/dungeonCampaignCatalog.test.ts +++ b/src/game/dungeonCampaignCatalog.test.ts @@ -72,7 +72,7 @@ const WDT_PLACEMENT_DUNGEON_IDS = [ describe("generated dungeon campaign catalog", () => { it("covers only reviewed five-player instances with loadable assets and combat content", () => { expect(generated.definitions).toHaveLength(54); - expect(DUNGEON_DEFINITIONS).toHaveLength(84); + expect(DUNGEON_DEFINITIONS).toHaveLength(85); expect(generated.definitions.map((dungeon) => dungeon.id)) .toEqual(campaign.dungeons.map((dungeon) => dungeon.slug)); for (const dungeon of generated.definitions) { @@ -327,7 +327,9 @@ describe("generated dungeon campaign catalog", () => { }); it("compiles every sourced WoW gameobject row with stable source provenance", () => { - const wowDungeons = DUNGEON_DEFINITIONS.filter((dungeon) => dungeon.expansion !== "runewaker"); + const wowDungeons = DUNGEON_DEFINITIONS.filter((dungeon) => ( + campaign.dungeons.some((entry) => entry.slug === dungeon.id) + )); const objects = wowDungeons.flatMap((dungeon) => dungeon.serverGameObjects); const sourceRows = objects.filter((object) => ( object.source?.templateId !== undefined && object.source?.spawnId !== undefined diff --git a/src/game/dungeonCatalog.test.ts b/src/game/dungeonCatalog.test.ts index 074b3bd0..3cdbbd85 100644 --- a/src/game/dungeonCatalog.test.ts +++ b/src/game/dungeonCatalog.test.ts @@ -11,8 +11,8 @@ import { compareDungeonReleaseOrder } from "./dungeonReleaseStage"; import availability from "./generated/dungeonAvailability.json"; describe("dungeon catalog", () => { - it("lists the complete generated campaign with Stormwind Stockades in Beta first", () => { - expect(DUNGEON_CATALOG).toHaveLength(84); + it("lists the complete campaign plus the bite-sized Stockades variant", () => { + expect(DUNGEON_CATALOG).toHaveLength(85); expect(DUNGEON_CATALOG[0]).toMatchObject({ id: "stormwind-stockade", releaseStage: "beta", @@ -37,8 +37,8 @@ describe("dungeon catalog", () => { }); }); - it("separates WoW and RoM dungeons with all RuneWaker imports under RoM", () => { - expect(DUNGEON_CATEGORIES.map((category) => category.id)).toEqual(["wow", "rom"]); + it("separates WoW, RoM, and bite-sized dungeons", () => { + expect(DUNGEON_CATEGORIES.map((category) => category.id)).toEqual(["wow", "rom", "bite-sized"]); expect(dungeonsByCategory("rom").map((dungeon) => dungeon.id).sort()).toEqual([ "forsaken-abbey", ...RUNEWAKER_DUNGEON_DEFINITIONS.map((definition) => definition.id), @@ -47,6 +47,8 @@ describe("dungeon catalog", () => { expect.objectContaining({ id: "forsaken-abbey" }), ); expect(dungeonsByCategory("rom")).toHaveLength(30); + expect(dungeonsByCategory("bite-sized").map((dungeon) => dungeon.id)) + .toEqual(["bite-sized-stormwind-stockade"]); }); it("keeps stable unique ids and resolves only catalogued dungeons", () => { @@ -64,10 +66,11 @@ describe("dungeon catalog", () => { } }); - it("keeps only Stockades in Beta and alphabetizes each release group", () => { + it("keeps both Stockades experiences in Beta and alphabetizes each release group", () => { expect(DUNGEON_CATALOG.filter((dungeon) => dungeon.releaseStage === "beta").map((dungeon) => dungeon.id)) - .toEqual(["stormwind-stockade"]); - expect(DUNGEON_CATALOG.filter((dungeon) => dungeon.id !== "stormwind-stockade").every((dungeon) => dungeon.releaseStage === "alpha")) + .toEqual(["stormwind-stockade", "bite-sized-stormwind-stockade"]); + expect(DUNGEON_CATALOG.filter((dungeon) => !dungeon.id.includes("stormwind-stockade")) + .every((dungeon) => dungeon.releaseStage === "alpha")) .toBe(true); for (const category of DUNGEON_CATEGORIES) { const dungeons = dungeonsByCategory(category.id); @@ -87,6 +90,6 @@ describe("dungeon catalog", () => { it("shares the complete dungeon identity list used to validate reports on the server", () => { expect(DUNGEON_CATALOG.map((dungeon) => dungeon.id).sort()) - .toEqual(["forsaken-abbey", ...Object.keys(availability.enabled)].sort()); + .toEqual(["bite-sized-stormwind-stockade", "forsaken-abbey", ...Object.keys(availability.enabled)].sort()); }); }); diff --git a/src/game/dungeonCatalog.ts b/src/game/dungeonCatalog.ts index 98a3ae28..d7082050 100644 --- a/src/game/dungeonCatalog.ts +++ b/src/game/dungeonCatalog.ts @@ -1,8 +1,10 @@ import { DUNGEON_DEFINITIONS, dungeonCanEnter, type DungeonId } from "./dungeonRegistry"; import { contentCategoryById, type ContentCategoryId } from "../app/contentCategories"; import { compareDungeonReleaseOrder, dungeonReleaseStage, type DungeonReleaseStage } from "./dungeonReleaseStage"; +import { BITE_SIZED_STOCKADES_DUNGEON_ID } from "./dungeonContentSource"; -const DUNGEON_CATEGORY_IDS = ["wow", "rom"] as const satisfies readonly ContentCategoryId[]; +const SOURCE_DUNGEON_CATEGORY_IDS = ["wow", "rom"] as const satisfies readonly ContentCategoryId[]; +const DUNGEON_CATEGORY_IDS = ["wow", "rom", "bite-sized"] as const; export type DungeonCategoryId = (typeof DUNGEON_CATEGORY_IDS)[number]; export interface DungeonCategory { @@ -12,10 +14,11 @@ export interface DungeonCategory { } export const DUNGEON_CATEGORIES: readonly DungeonCategory[] = Object.freeze([ - ...DUNGEON_CATEGORY_IDS.map((id) => { + ...SOURCE_DUNGEON_CATEGORY_IDS.map((id) => { const category = contentCategoryById(id); return { id, label: category.label, fullName: category.name }; }), + { id: "bite-sized", label: "Bite-Sized", fullName: "Bite-Sized Dungeons" }, ]); export interface DungeonCatalogEntry { @@ -36,7 +39,9 @@ export interface DungeonCatalogEntry { export const DUNGEON_CATALOG: readonly DungeonCatalogEntry[] = Object.freeze( DUNGEON_DEFINITIONS.map((definition) => ({ id: definition.id as DungeonId, - category: definition.expansion === "runewaker" ? "rom" : "wow", + category: definition.id === BITE_SIZED_STOCKADES_DUNGEON_ID + ? "bite-sized" + : definition.expansion === "runewaker" ? "rom" : "wow", title: definition.title, mapId: definition.mapId, entranceName: definition.entrance.name, diff --git a/src/game/dungeonContentSource.test.ts b/src/game/dungeonContentSource.test.ts new file mode 100644 index 00000000..9b77f896 --- /dev/null +++ b/src/game/dungeonContentSource.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from "vitest"; +import { + BITE_SIZED_STOCKADES_DUNGEON_ID, + STORMWIND_STOCKADE_DUNGEON_ID, + dungeonContentPackId, + dungeonContentSourceId, +} from "./dungeonContentSource"; + +describe("derived dungeon content sources", () => { + it("reuses Stockades files for the bite-sized variant without changing ordinary pack ids", () => { + expect(dungeonContentSourceId(BITE_SIZED_STOCKADES_DUNGEON_ID)).toBe(STORMWIND_STOCKADE_DUNGEON_ID); + expect(dungeonContentPackId(BITE_SIZED_STOCKADES_DUNGEON_ID)).toBe("dungeon:stormwind-stockade"); + expect(dungeonContentPackId("deadmines")).toBe("dungeon:deadmines"); + }); +}); diff --git a/src/game/dungeonContentSource.ts b/src/game/dungeonContentSource.ts new file mode 100644 index 00000000..3760c7f4 --- /dev/null +++ b/src/game/dungeonContentSource.ts @@ -0,0 +1,15 @@ +export const STORMWIND_STOCKADE_DUNGEON_ID = "stormwind-stockade"; +export const BITE_SIZED_STOCKADES_DUNGEON_ID = "bite-sized-stormwind-stockade"; + +const DUNGEON_CONTENT_SOURCE_IDS: Readonly> = Object.freeze({ + [BITE_SIZED_STOCKADES_DUNGEON_ID]: STORMWIND_STOCKADE_DUNGEON_ID, +}); + +/** Derived dungeon variants share the installed assets of their source dungeon. */ +export function dungeonContentSourceId(dungeonId: string): string { + return DUNGEON_CONTENT_SOURCE_IDS[dungeonId] ?? dungeonId; +} + +export function dungeonContentPackId(dungeonId: string): string { + return `dungeon:${dungeonContentSourceId(dungeonId)}`; +} diff --git a/src/game/dungeonLeaderboardCatalog.test.ts b/src/game/dungeonLeaderboardCatalog.test.ts index b27455b3..9efce6a0 100644 --- a/src/game/dungeonLeaderboardCatalog.test.ts +++ b/src/game/dungeonLeaderboardCatalog.test.ts @@ -3,21 +3,39 @@ import { describe, expect, it } from "vitest"; import { CLASSES } from "../app/characterCatalog"; import { DUNGEON_DEFINITIONS } from "./dungeonRegistry"; import { dungeonBossesForDifficulty, finalDungeonBoss } from "./dungeonRunStore"; +import { BITE_SIZED_STOCKADES_DUNGEON_ID, STORMWIND_STOCKADE_DUNGEON_ID } from "./dungeonContentSource"; +import { BITE_SIZED_STOCKADES_BOSS_CANDIDATES } from "./dungeons/biteSizedStockades"; + +const stockades = DUNGEON_DEFINITIONS.find((dungeon) => dungeon.id === STORMWIND_STOCKADE_DUNGEON_ID)!; +const biteSizedBosses = BITE_SIZED_STOCKADES_BOSS_CANDIDATES.map((candidate) => ( + stockades.bosses.find((boss) => boss.id === candidate.sourceSpawnId)! +)); describe("dungeon leaderboard catalog", () => { it("keeps the server's final bosses, boss lists, difficulties, and classes aligned with the game", () => { const catalog = { dungeons: DUNGEON_DEFINITIONS.map((dungeon) => ({ id: dungeon.id, title: dungeon.title, - finalBossId: finalDungeonBoss(dungeon)?.id ?? "", - bosses: dungeon.bosses.map((boss) => ({ id: boss.id, name: boss.name })), + finalBossId: dungeon.id === BITE_SIZED_STOCKADES_DUNGEON_ID + ? biteSizedBosses[0].id + : finalDungeonBoss(dungeon)?.id ?? "", + bosses: (dungeon.id === BITE_SIZED_STOCKADES_DUNGEON_ID ? biteSizedBosses : dungeon.bosses) + .map((boss) => ({ id: boss.id, name: boss.name })), difficulties: dungeon.difficultyVariants.map((difficulty) => ({ id: difficulty.id, name: difficulty.difficulty, - bossIds: dungeonBossesForDifficulty(dungeon, difficulty.id).map((boss) => boss.id), - finalBossId: finalDungeonBoss(dungeon, difficulty.id)?.id ?? "" })), + bossIds: dungeon.id === BITE_SIZED_STOCKADES_DUNGEON_ID + ? biteSizedBosses.map((boss) => boss.id) + : dungeonBossesForDifficulty(dungeon, difficulty.id).map((boss) => boss.id), + finalBossId: dungeon.id === BITE_SIZED_STOCKADES_DUNGEON_ID + ? biteSizedBosses[0].id + : finalDungeonBoss(dungeon, difficulty.id)?.id ?? "", + ...(dungeon.id === BITE_SIZED_STOCKADES_DUNGEON_ID + ? { finalBossIds: biteSizedBosses.map((boss) => boss.id) } + : {}), + })), defaultDifficultyId: dungeon.defaultDifficultyId, })).sort((a, b) => a.id.localeCompare(b.id)), classes: CLASSES.map((entry) => ({ id: entry.id, name: entry.name })), }; - expect(catalog.dungeons).toHaveLength(84); + expect(catalog.dungeons).toHaveLength(85); expect(catalog.dungeons.filter((dungeon) => dungeon.bosses.length > 0 && !dungeon.finalBossId)).toEqual([]); const path = "src/game/generated/dungeonLeaderboardCatalog.generated.json"; if (process.env.WRITE_DUNGEON_LEADERBOARD_CATALOG === "1") writeFileSync(path, `${JSON.stringify(catalog, null, 2)}\n`); diff --git a/src/game/dungeonLeaderboardRules.ts b/src/game/dungeonLeaderboardRules.ts new file mode 100644 index 00000000..59130ff1 --- /dev/null +++ b/src/game/dungeonLeaderboardRules.ts @@ -0,0 +1,18 @@ +export interface DungeonLeaderboardDifficultyRule { + readonly bossIds: readonly string[]; + readonly finalBossId: string; + readonly finalBossIds?: readonly string[]; +} + +export function leaderboardFinalBossIds(rule: DungeonLeaderboardDifficultyRule): readonly string[] { + return rule.finalBossIds?.length ? rule.finalBossIds : [rule.finalBossId]; +} + +export function isLeaderboardFullClear( + rule: DungeonLeaderboardDifficultyRule, + killedBossIds: readonly string[], +): boolean { + return rule.finalBossIds?.length + ? rule.finalBossIds.some((id) => killedBossIds.includes(id)) + : rule.bossIds.every((id) => killedBossIds.includes(id)); +} diff --git a/src/game/dungeonPipelineFoundation.test.ts b/src/game/dungeonPipelineFoundation.test.ts index d0c1712d..852f0392 100644 --- a/src/game/dungeonPipelineFoundation.test.ts +++ b/src/game/dungeonPipelineFoundation.test.ts @@ -18,7 +18,7 @@ describe("dungeon pipeline runtime foundation", () => { }); it("registers every reviewed instanced dungeon with WC first", () => { - expect(DUNGEON_DEFINITIONS).toHaveLength(84); + expect(DUNGEON_DEFINITIONS).toHaveLength(85); expect(DUNGEON_DEFINITIONS[0].id).toBe("wailing-caverns"); expect(DUNGEON_DEFINITIONS.some((definition) => definition.id === "deadmines")).toBe(true); expect(DUNGEON_DEFINITIONS.some((definition) => definition.id === "forsaken-abbey")).toBe(true); diff --git a/src/game/dungeonRegistry.ts b/src/game/dungeonRegistry.ts index 7382200f..0de5adaf 100644 --- a/src/game/dungeonRegistry.ts +++ b/src/game/dungeonRegistry.ts @@ -21,6 +21,12 @@ import { withWowClassicEncounterBatchTwo } from "./wowClassicEncounterBatchTwoCa import { withWowClassicEncounterBatchThree } from "./wowClassicEncounterBatchThreeCatalog"; import { withWowTbcEncounterBatchTwoContent } from "./wowTbcEncounterBatchTwoCatalog"; import { withWowDungeonEnvironment } from "./wowDungeonEnvironment"; +import { + BITE_SIZED_STOCKADES_DUNGEON_ID, + STORMWIND_STOCKADE_DUNGEON_ID, + dungeonContentSourceId, +} from "./dungeonContentSource"; +import { createBiteSizedStockadesDefinition } from "./dungeons/biteSizedStockades"; export { DEFAULT_DUNGEON_ID } from "./dungeonDefaults"; @@ -177,7 +183,7 @@ function applyDungeonContentAdapters(definition: DungeonDefinition): DungeonDefi ); } -const dungeonRegistryEntries: readonly (readonly [string, DungeonDefinition])[] = [ +const sourceDungeonRegistryEntries: readonly (readonly [string, DungeonDefinition])[] = [ [authoredWailingCaverns.id, authoredWailingCaverns], [FORSAKEN_ABBEY_DEFINITION.id, FORSAKEN_ABBEY_DEFINITION], ...RUNEWAKER_DUNGEON_DEFINITIONS.map((definition) => [definition.id, definition] as const), @@ -186,13 +192,21 @@ const dungeonRegistryEntries: readonly (readonly [string, DungeonDefinition])[] .map((definition) => [definition.id, definition] as const), ]; +const adaptedSourceEntries = sourceDungeonRegistryEntries.map( + ([id, definition]) => [id, applyDungeonContentAdapters(definition)] as const, +); +const adaptedSourceRegistry = Object.fromEntries(adaptedSourceEntries) as Readonly>; +const stockadesDefinition = adaptedSourceRegistry[STORMWIND_STOCKADE_DUNGEON_ID]; +if (!stockadesDefinition) throw new Error("Stormwind Stockade is required for its bite-sized variant."); + +const biteSizedStockadesTemplate = createBiteSizedStockadesDefinition(stockadesDefinition, "catalog-template"); +const dungeonRegistryEntries: readonly (readonly [string, DungeonDefinition])[] = [ + ...adaptedSourceEntries, + [biteSizedStockadesTemplate.id, biteSizedStockadesTemplate], +]; + export const DUNGEON_REGISTRY: Readonly> = Object.freeze( - Object.fromEntries(dungeonRegistryEntries.map( - ([id, definition]) => [ - id, - applyDungeonContentAdapters(definition), - ] as const, - )), + Object.fromEntries(dungeonRegistryEntries), ); export type DungeonId = string; @@ -201,6 +215,7 @@ export const DUNGEON_DEFINITIONS = Object.freeze(Object.values(DUNGEON_REGISTRY) // Test rooms are session-only definitions; the shipped dungeon catalog stays immutable. const bossTestingDefinitions = new Map(); +const sessionDungeonDefinitions = new Map(); export function registerBossTestingDungeon(definition: DungeonDefinition, sourceDungeonId: string): void { if (!definition.id.startsWith("boss-testing:") || !DUNGEON_REGISTRY[sourceDungeonId]) { @@ -218,8 +233,19 @@ export function clearBossTestingDungeons(): void { bossTestingDefinitions.clear(); } +/** Materializes seeded variants after a run id exists; ordinary dungeons keep their catalog definition. */ +export function prepareDungeonSessionDefinition(id: string, seed: string): DungeonDefinition | null { + if (id !== BITE_SIZED_STOCKADES_DUNGEON_ID) return dungeonDefinitionById(id); + const definition = createBiteSizedStockadesDefinition(stockadesDefinition, seed); + sessionDungeonDefinitions.set(id, definition); + return definition; +} + export function dungeonDefinitionById(id: string): DungeonDefinition | null { - return bossTestingDefinitions.get(id)?.definition ?? DUNGEON_REGISTRY[id] ?? null; + return bossTestingDefinitions.get(id)?.definition + ?? sessionDungeonDefinitions.get(id) + ?? DUNGEON_REGISTRY[id] + ?? null; } export function requireDungeonDefinition(id: string): DungeonDefinition { @@ -239,7 +265,7 @@ export function dungeonIsEnabled(id: string): boolean { const definition = dungeonDefinitionById(id); if (!definition) return false; - const configured = (availability.enabled as Readonly>)[id]; + const configured = (availability.enabled as Readonly>)[dungeonContentSourceId(id)]; if (definition.expansion !== "runewaker") return configured === true; if (!dungeonPackagePassesOfflineGate(definition)) return false; if (configured !== undefined) return configured; diff --git a/src/game/dungeonReleaseStage.ts b/src/game/dungeonReleaseStage.ts index 8cd08322..61089ab7 100644 --- a/src/game/dungeonReleaseStage.ts +++ b/src/game/dungeonReleaseStage.ts @@ -8,7 +8,7 @@ export const DUNGEON_RELEASE_STAGE_LABELS: Readonly void; + begin: (dungeonId: string, difficultyId: string, resume?: DungeonRunProgress, legacyResume?: boolean, + bossDifficulty?: number, runId?: string) => void; start: (now: number, party: readonly DungeonRunMember[]) => void; advance: (completedObjectiveIds: readonly string[], deadBossIds: readonly string[], now: number, party: readonly DungeonRunMember[]) => void; @@ -38,10 +39,10 @@ interface DungeonRunState { export const useDungeonRunStore = create((set, get) => ({ progress: null, - begin: (dungeonId, difficultyId, resume, legacyResume = false, bossDifficulty = 1) => set({ + begin: (dungeonId, difficultyId, resume, legacyResume = false, bossDifficulty = 1, runId) => set({ progress: resume?.dungeonId === dungeonId && resume.difficultyId === difficultyId && resume.bossDifficulty === bossDifficulty ? resume : { - id: globalThis.crypto.randomUUID(), dungeonId, difficultyId, startedAt: null, + id: runId ?? globalThis.crypto.randomUUID(), dungeonId, difficultyId, startedAt: null, finishedAt: null, durationMs: null, killedBossIds: [], party: [], timed: !legacyResume, bossDifficulty, }, }), diff --git a/src/game/dungeonSession.ts b/src/game/dungeonSession.ts index e67e279f..f77efadf 100644 --- a/src/game/dungeonSession.ts +++ b/src/game/dungeonSession.ts @@ -6,7 +6,13 @@ import { clearPartyRuntimeRegistry } from "./partyRuntimeRegistry"; import { resetPartyRuntimeClock } from "./partyRuntime"; import { usePartyStore } from "./partyStore"; import { useGameStore, type BossTestSession, type GameMode } from "./store"; -import { bossTestingSourceDungeonId, dungeonCanEnter, dungeonDefinitionById, type DungeonId } from "./dungeonRegistry"; +import { + bossTestingSourceDungeonId, + dungeonCanEnter, + dungeonDefinitionById, + prepareDungeonSessionDefinition, + type DungeonId, +} from "./dungeonRegistry"; import type { WorldSpawn } from "./dungeonTypes"; import type { GmReviewTarget } from "./gmContentReview"; import { shelvedDungeonSpawn } from "@shelvedDungeonSession"; @@ -39,6 +45,8 @@ export interface DungeonSessionOptions { readonly encounterSnapshots?: readonly DungeonEncounterSnapshot[]; readonly runProgress?: DungeonRunProgress; readonly legacyResume?: boolean; + /** Shared online activity id, or another stable fresh-run identity used by seeded variants. */ + readonly runId?: string; } /** @@ -51,7 +59,7 @@ export function activateDungeonSession( difficultyId?: string, options: DungeonSessionOptions = {}, ): boolean { - const definition = dungeonDefinitionById(dungeonId); + let definition = dungeonDefinitionById(dungeonId); const testingSource = bossTestingSourceDungeonId(dungeonId); const testing = Boolean(testingSource && options.gmTestMode && options.bossTest?.sourceDungeonId === testingSource); const dungeonSimulation = Boolean(options.dungeonSimulation && options.gmTestMode && dungeonRouteDefinition(dungeonId)); @@ -67,8 +75,10 @@ export function activateDungeonSession( if (previousDefinition) releaseDungeonGltfCache(previousDefinition); if (!options.preserveCharacter) { useDungeonRunStore.getState().begin(dungeonId, difficultyId ?? definition.defaultDifficultyId, - options.runProgress, options.legacyResume, bossDifficulty); + options.runProgress, options.legacyResume, bossDifficulty, options.runId); } + const runSeed = useDungeonRunStore.getState().progress?.id ?? options.runId ?? "catalog-template"; + definition = prepareDungeonSessionDefinition(dungeonId, runSeed) ?? definition; activateDungeonEncounterDefinitions( dungeonId, definition.encounters ?? [], diff --git a/src/game/dungeons/biteSizedStockades.ts b/src/game/dungeons/biteSizedStockades.ts new file mode 100644 index 00000000..c52944e8 --- /dev/null +++ b/src/game/dungeons/biteSizedStockades.ts @@ -0,0 +1,189 @@ +import type { DungeonDefinition, DungeonBossObjective } from "../dungeonTypes"; +import type { PopulationEntityDefinition, StaticMobSpawnDefinition } from "../mobPopulation"; +import type { DungeonWorldObjectDefinition } from "../dungeonWorldObjects"; +import { + BITE_SIZED_STOCKADES_DUNGEON_ID, + STORMWIND_STOCKADE_DUNGEON_ID, +} from "../dungeonContentSource"; + +const BOSS_ROOM_POSITION = [-159.582, -25.6062, 1.2531] as const; +const CENTRAL_CORRIDOR_HALF_WIDTH = 15; + +export interface BiteSizedStockadesBossCandidate { + readonly sourceSpawnId: string; + readonly name: string; +} + +export const BITE_SIZED_STOCKADES_BOSS_CANDIDATES: readonly BiteSizedStockadesBossCandidate[] = Object.freeze([ + { sourceSpawnId: "creature-84027", name: "Targorr the Dread" }, + { sourceSpawnId: "creature-79088", name: "Kam Deepfury" }, + { sourceSpawnId: "creature-79098", name: "Hamhock" }, + { sourceSpawnId: "creature-79124", name: "Bazil Thredd" }, + { sourceSpawnId: "creature-79116", name: "Dextren Ward" }, +]); + +function seedHash(seed: string): number { + let hash = 0x811c9dc5; + for (let index = 0; index < seed.length; index += 1) { + hash ^= seed.charCodeAt(index); + hash = Math.imul(hash, 0x01000193); + } + return hash >>> 0; +} + +export function biteSizedStockadesBossIndex(seed: string): number { + return seedHash(seed) % BITE_SIZED_STOCKADES_BOSS_CANDIDATES.length; +} + +function branchWall(id: string, name: string, z: number): DungeonWorldObjectDefinition { + return { + id, + name, + kind: "gate", + position: [-129.17, -22.1, z], + halfExtents: [6, 5.2, 0.65], + initialState: "sealed", + states: [{ + id: "sealed", + label: "Sealed", + visible: true, + blocksMovement: true, + blocksSight: true, + interactionEnabled: false, + }], + visual: { color: "#332f2b" }, + source: { + fidelity: "healer-man-authored", + files: ["src/game/dungeons/biteSizedStockades.ts"], + note: "Permanent wall for the bite-sized route; the source Stockades geometry remains unchanged.", + }, + }; +} + +function sourceBoss( + source: DungeonDefinition, + candidate: BiteSizedStockadesBossCandidate, +): { readonly spawn: StaticMobSpawnDefinition; readonly entity: PopulationEntityDefinition } { + const spawn = source.staticSpawns.find((entry) => entry.id === candidate.sourceSpawnId); + const entity = spawn ? source.entities[spawn.entityId] : undefined; + if (!spawn || !entity || entity.kind !== "boss") { + throw new Error(`Stockades boss source is missing: ${candidate.sourceSpawnId}`); + } + return { spawn, entity }; +} + +/** + * Builds a one-boss Stockades variant without mutating the generated source definition. + * The seed controls only boss identity, so saves and online party members can reconstruct + * the same run while a fresh run receives a new random selection. + */ +export function createBiteSizedStockadesDefinition( + source: DungeonDefinition, + seed: string, +): DungeonDefinition { + if (source.id !== STORMWIND_STOCKADE_DUNGEON_ID) { + throw new Error(`Bite-sized Stockades requires ${STORMWIND_STOCKADE_DUNGEON_ID}.`); + } + const candidate = BITE_SIZED_STOCKADES_BOSS_CANDIDATES[biteSizedStockadesBossIndex(seed)]; + const selected = sourceBoss(source, candidate); + const sourceBossIds = new Set(BITE_SIZED_STOCKADES_BOSS_CANDIDATES.map((entry) => entry.sourceSpawnId)); + const corridorSpawns = source.staticSpawns.filter((spawn) => ( + !sourceBossIds.has(spawn.id) + && Math.abs(spawn.position[2]) <= CENTRAL_CORRIDOR_HALF_WIDTH + )); + const usedEntityIds = new Set(corridorSpawns.map((spawn) => spawn.entityId)); + const entities = Object.fromEntries([ + ...Object.entries(source.entities).filter(([entityId]) => usedEntityIds.has(entityId)), + [selected.spawn.entityId, selected.entity], + ]); + const boss: DungeonBossObjective = { + id: candidate.sourceSpawnId, + name: candidate.name, + position: BOSS_ROOM_POSITION, + }; + + return { + ...source, + id: BITE_SIZED_STOCKADES_DUNGEON_ID, + title: "Stormwind Stockade: Cellblock Rush", + lfgDungeonIds: [], + presentation: { + ...source.presentation, + location: "Stormwind Stockade · Central Cellblock", + theme: "Bite-Sized Dungeon", + summary: "Race through the central cellblock and defeat one surprise warden chosen from the five Stockades bosses.", + loadingMessage: "Sealing the side wings and choosing a cellblock warden...", + unchartedAreaName: "Central Cellblock", + }, + areas: [ + { ...source.entrance, id: "entrance", center: source.entrance.footPosition, radius: 35 }, + { id: "bite-sized-boss-room", name: `${candidate.name}'s Cell`, center: BOSS_ROOM_POSITION, radius: 32 }, + ], + entities, + staticSpawns: [ + ...corridorSpawns, + { + id: candidate.sourceSpawnId, + entityId: selected.spawn.entityId, + position: BOSS_ROOM_POSITION, + yaw: selected.spawn.yaw, + spawnMask: selected.spawn.spawnMask, + }, + ], + roamingPacks: [], + bosses: [boss], + objectiveOrder: [boss], + navigationLinks: source.navigationLinks.filter((link) => link.id === "entrance-to-central-stairs"), + traversalRamps: source.traversalRamps?.filter((ramp) => ramp.id === "entrance-stair-ramp"), + encounters: [{ + id: `${BITE_SIZED_STOCKADES_DUNGEON_ID}:boss-progression`, + dungeonId: BITE_SIZED_STOCKADES_DUNGEON_ID, + initialPhase: "progression", + initialState: { flags: { "dungeon-complete": false } }, + resetPolicy: { bossWipePhase: "progression", checkpointPhase: "progression" }, + source: { + fidelity: "healer-man-authored", + scope: "boss-progression", + files: ["src/game/dungeons/biteSizedStockades.ts"], + reviewedBehavior: "A single seeded Stockades boss completes the bite-sized run in the first boss room.", + adaptations: [ + "Each seeded run retains the selected source boss objective ID so saves, loot, guides, and leaderboards report the correct variant.", + "The two side-wing stairs are permanently sealed and omitted from party navigation.", + ], + remainingGaps: [], + }, + rules: [ + { + id: "boss-defeated", + trigger: { kind: "entities-dead", entityIds: [candidate.sourceSpawnId] }, + actions: [ + { id: "record-boss", kind: "complete-objective", objectiveId: candidate.sourceSpawnId, persistence: "run" }, + { id: "checkpoint-boss", kind: "set-checkpoint", checkpointId: candidate.sourceSpawnId, persistence: "checkpoint" }, + ], + }, + { + id: "complete-run", + trigger: { kind: "tick" }, + guards: [{ kind: "objective-complete", objectiveId: candidate.sourceSpawnId, equals: true }], + actions: [ + { id: "mark-dungeon-complete", kind: "set-flag", flagId: "dungeon-complete", value: true, persistence: "run" }, + { id: "enter-complete-phase", kind: "set-phase", phase: "complete", persistence: "run" }, + ], + }, + ], + }], + encounterSpawnGroups: [], + serverGameObjects: [ + ...source.serverGameObjects.filter((object) => Math.abs(object.position[2]) <= CENTRAL_CORRIDOR_HALF_WIDTH), + branchWall("bite-sized-stockades-north-wall", "Sealed North Wing", 16.4), + branchWall("bite-sized-stockades-south-wall", "Sealed South Wing", -16.4), + ], + validation: { + ...source.validation, + warnings: [ + ...source.validation.warnings, + "Bite-sized layout and branch walls are Healer Man-authored; environment and combat assets are shared with Stormwind Stockade.", + ], + }, + }; +} diff --git a/src/game/generated/dungeonLeaderboardCatalog.generated.json b/src/game/generated/dungeonLeaderboardCatalog.generated.json index 1d5d52f5..18bb5659 100644 --- a/src/game/generated/dungeonLeaderboardCatalog.generated.json +++ b/src/game/generated/dungeonLeaderboardCatalog.generated.json @@ -216,6 +216,55 @@ ], "defaultDifficultyId": "normal" }, + { + "id": "bite-sized-stormwind-stockade", + "title": "Stormwind Stockade: Cellblock Rush", + "finalBossId": "creature-84027", + "bosses": [ + { + "id": "creature-84027", + "name": "Targorr the Dread" + }, + { + "id": "creature-79088", + "name": "Kam Deepfury" + }, + { + "id": "creature-79098", + "name": "Hamhock" + }, + { + "id": "creature-79124", + "name": "Bazil Thredd" + }, + { + "id": "creature-79116", + "name": "Dextren Ward" + } + ], + "difficulties": [ + { + "id": "normal", + "name": "normal", + "bossIds": [ + "creature-84027", + "creature-79088", + "creature-79098", + "creature-79124", + "creature-79116" + ], + "finalBossId": "creature-84027", + "finalBossIds": [ + "creature-84027", + "creature-79088", + "creature-79098", + "creature-79124", + "creature-79116" + ] + } + ], + "defaultDifficultyId": "normal" + }, { "id": "black-morass", "title": "The Black Morass", diff --git a/src/game/mobPopulation.test.ts b/src/game/mobPopulation.test.ts index bc4f461c..81809955 100644 --- a/src/game/mobPopulation.test.ts +++ b/src/game/mobPopulation.test.ts @@ -108,7 +108,7 @@ describe("looped mob path sampling", () => { }); it("keeps every packaged dungeon patrol on a usable loop", () => { - expect(DUNGEON_DEFINITIONS).toHaveLength(84); + expect(DUNGEON_DEFINITIONS).toHaveLength(85); for (const dungeon of DUNGEON_DEFINITIONS) { for (const pack of dungeon.roamingPacks) { expect(hasUsableLoopedMobPath(pack.waypoints), `${dungeon.id}:${pack.id}`).toBe(true); diff --git a/src/game/partyNavigationCatalog.test.ts b/src/game/partyNavigationCatalog.test.ts index cd06b80d..51fa9808 100644 --- a/src/game/partyNavigationCatalog.test.ts +++ b/src/game/partyNavigationCatalog.test.ts @@ -84,7 +84,7 @@ describe("party navigation fleet safety", () => { const enabled = []; const fallback = []; - expect(DUNGEON_DEFINITIONS).toHaveLength(84); + expect(DUNGEON_DEFINITIONS).toHaveLength(85); for (const dungeon of DUNGEON_DEFINITIONS) { expect(dungeonCanEnter(dungeon.id), dungeon.id).toBe(true); const navigation = dungeon.assets.navigation; @@ -119,7 +119,7 @@ describe("party navigation fleet safety", () => { // Stockades has a reviewed navigation override without claiming that its // broader encounter/reset validation is complete. expect(enabled).toContain("stormwind-stockade"); - expect(enabled).toHaveLength(30); + expect(enabled).toHaveLength(31); expect(fallback).toHaveLength(54); }); diff --git a/src/game/wowDungeonEnvironment.test.ts b/src/game/wowDungeonEnvironment.test.ts index 657fb3c4..15437be1 100644 --- a/src/game/wowDungeonEnvironment.test.ts +++ b/src/game/wowDungeonEnvironment.test.ts @@ -4,9 +4,12 @@ import { FORSAKEN_ABBEY_DEFINITION } from "./dungeons/forsakenAbbey"; import { WOW_DUNGEON_LIGHTING, withWowDungeonEnvironment, wowDungeonLightingProfile } from "./wowDungeonEnvironment"; import stairs from "./generated/wowDungeonStairs.generated.json"; import stockadesOverride from "../../dungeon-pipeline/runtime-overrides/stormwind-stockade.json"; +import { BITE_SIZED_STOCKADES_DUNGEON_ID } from "./dungeonContentSource"; describe("fleet-wide WoW dungeon environment policy", () => { - const wowDungeons = DUNGEON_DEFINITIONS.filter((dungeon) => dungeon.expansion !== "runewaker"); + const wowDungeons = DUNGEON_DEFINITIONS.filter((dungeon) => ( + dungeon.expansion !== "runewaker" && dungeon.id !== BITE_SIZED_STOCKADES_DUNGEON_ID + )); it("gives every WoW dungeon readable ambient and hemisphere fill without changing fog draw distance or material roles", () => { expect(wowDungeons).toHaveLength(54); diff --git a/src/platform/authoritativeDualScreenRuntime.ts b/src/platform/authoritativeDualScreenRuntime.ts index bbda1da1..737fa48a 100644 --- a/src/platform/authoritativeDualScreenRuntime.ts +++ b/src/platform/authoritativeDualScreenRuntime.ts @@ -11,6 +11,7 @@ import { useOnlineSessionStore } from "../app/onlineSessionStore"; import { useOnlineGroupStore } from "../app/onlineGroupStore"; import { useDungeonRunStore } from "../game/dungeonRunStore"; import { subscribeDungeonEncounterSnapshots } from "../game/dungeonEncounterRuntime"; +import { useLoginInputStore } from "../app/loginInputStore"; export function connectAuthoritativeDualScreen( channel: BroadcastChannel, @@ -27,6 +28,9 @@ export function connectAuthoritativeDualScreen( const unsubscribeShell = useShellStore.subscribe(() => { if (companionReady) publish(); }); + const unsubscribeLogin = useLoginInputStore.subscribe(() => { + if (companionReady) publish(); + }); const unsubscribeGame = useGameStore.subscribe(() => { if (companionReady) gamePublisher.request(); }); @@ -66,6 +70,7 @@ export function connectAuthoritativeDualScreen( if (companionReady) publish(); return () => { unsubscribeShell(); + unsubscribeLogin(); unsubscribeGame(); unsubscribeCombat(); unsubscribeParty(); diff --git a/src/platform/dualScreenDps.test.ts b/src/platform/dualScreenDps.test.ts index 08da3bb3..6b11e677 100644 --- a/src/platform/dualScreenDps.test.ts +++ b/src/platform/dualScreenDps.test.ts @@ -4,11 +4,13 @@ import { useUiLayoutStore } from "../game/uiLayoutStore"; import { useDpsMeterStore } from "../game/dpsMeterStore"; import { emptyDpsMeter } from "../game/dpsMeter"; import type { DualScreenMessage } from "./dualScreenSync"; +import { useLoginInputStore } from "../app/loginInputStore"; describe("dedicated companion DPS synchronization", () => { afterEach(() => { useUiLayoutStore.getState().finish(false); useDpsMeterStore.setState(emptyDpsMeter(), true); + useLoginInputStore.getState().reset(); vi.unstubAllGlobals(); vi.useRealTimers(); }); @@ -45,4 +47,27 @@ describe("dedicated companion DPS synchronization", () => { vi.advanceTimersByTime(100); expect(postMessage).not.toHaveBeenCalled(); }); + + it("publishes login input immediately and stops after disconnect", () => { + vi.stubGlobal("window", { setTimeout, clearTimeout, location: { search: "?display=top" } }); + const postMessage = vi.fn<(message: DualScreenMessage) => void>(); + const channel = { postMessage, onmessage: null } as unknown as BroadcastChannel; + const disconnect = connectAuthoritativeDualScreen( + channel, + { data: { type: "companion-ready" } } as MessageEvent, + ); + postMessage.mockClear(); + + useLoginInputStore.getState().pressKey("char-1-0"); + + let latest = postMessage.mock.lastCall?.[0]; + expect(latest?.type).toBe("app-state"); + if (latest?.type !== "app-state") throw new Error("Missing login snapshot"); + expect(latest.snapshot.login).toMatchObject({ username: "q", passwordLength: 0 }); + + disconnect(); + postMessage.mockClear(); + useLoginInputStore.getState().pressKey("char-1-1"); + expect(postMessage).not.toHaveBeenCalled(); + }); }); diff --git a/src/platform/dualScreenSync.test.ts b/src/platform/dualScreenSync.test.ts index 4c0a4095..5b23b662 100644 --- a/src/platform/dualScreenSync.test.ts +++ b/src/platform/dualScreenSync.test.ts @@ -9,6 +9,7 @@ import { usePartyStore } from "../game/partyStore"; import { useGameStore } from "../game/store"; import { currentCompanionSnapshot, executeCompanionCommand } from "./dualScreenSync"; import { SHELVED_MODES_ENABLED } from "../app/releaseFeatures"; +import { useLoginInputStore } from "../app/loginInputStore"; describe("dual-screen party commands", () => { beforeEach(() => { @@ -24,6 +25,22 @@ describe("dual-screen party commands", () => { command: "defend", objectiveBossId: "lady-anacondra-spawn", }); + useLoginInputStore.getState().reset(); + }); + + it("publishes safe login input and accepts semantic keyboard commands", () => { + executeCompanionCommand({ name: "pressLoginKey", keyId: "char-1-0" }); + executeCompanionCommand({ name: "selectLoginField", field: "password" }); + executeCompanionCommand({ name: "pressLoginKey", keyId: "char-1-1" }); + + expect(useLoginInputStore.getState()).toMatchObject({ username: "q", password: "w" }); + expect(currentCompanionSnapshot().login).toMatchObject({ + username: "q", + passwordLength: 1, + activeField: "password", + selectedKeyId: "char-1-1", + }); + expect(JSON.stringify(currentCompanionSnapshot())).not.toContain('"password":"w"'); }); it("publishes the current command and named boss objective", () => { diff --git a/src/platform/dualScreenSync.ts b/src/platform/dualScreenSync.ts index 25a9480f..e6d3a3f0 100644 --- a/src/platform/dualScreenSync.ts +++ b/src/platform/dualScreenSync.ts @@ -36,6 +36,12 @@ import { currentHudSnapshot, type HudSnapshot } from "./hudSnapshot"; import { HUD_ELEMENTS, type HudElementId } from "../game/uiLayout"; import { interactWithActiveDungeonObject } from "../game/dungeonWorldInteraction"; import { resurrectDeadPartyMembers } from "../game/partyResurrection"; +import { + currentLoginInputSnapshot, + useLoginInputStore, + type LoginField, + type LoginInputSnapshot, +} from "../app/loginInputStore"; export { createDualScreenChannel } from "./dualScreenChannel"; @@ -142,6 +148,7 @@ export interface CompanionGameSnapshot { export interface CompanionSnapshot { keybinds?: InputPreferences; phase: ShellPhase; + login: LoginInputSnapshot; session: PlayerSession | null; characters: CharacterProfile[]; selectedCharacterId: string | null; @@ -152,6 +159,8 @@ export interface CompanionSnapshot { } export type CompanionCommand = + | { name: "pressLoginKey"; keyId: string } + | { name: "selectLoginField"; field: LoginField } | { name: "selectCharacter"; characterId: string } | { name: "openCreator" } | { name: "cancelCreator" } @@ -269,6 +278,7 @@ export function currentCompanionSnapshot(): CompanionSnapshot { return { keybinds: getInputPreferences(), phase: shell.phase, + login: currentLoginInputSnapshot(), session: shell.session, characters: shell.characters, selectedCharacterId: shell.selectedCharacterId, @@ -354,6 +364,8 @@ export function executeCompanionCommand(command: CompanionCommand): void { const game = useGameStore.getState(); const combat = useCombatStore.getState(); switch (command.name) { + case "pressLoginKey": useLoginInputStore.getState().pressKey(command.keyId); break; + case "selectLoginField": useLoginInputStore.getState().setActiveField(command.field); break; case "editHudElement": { if (game.overlay !== "ui-layout" || !useUiLayoutStore.getState().draft || !(command.id in HUD_ELEMENTS)) break; const update: Partial = {}; diff --git a/src/scene/dungeonMaterialAudit.test.ts b/src/scene/dungeonMaterialAudit.test.ts index 101808e4..36371a9c 100644 --- a/src/scene/dungeonMaterialAudit.test.ts +++ b/src/scene/dungeonMaterialAudit.test.ts @@ -3,6 +3,7 @@ import path from "node:path"; import { MeshStandardMaterial } from "three"; import { describe, expect, it } from "vitest"; import { DUNGEON_DEFINITIONS } from "../game/dungeonRegistry"; +import { BITE_SIZED_STOCKADES_DUNGEON_ID } from "../game/dungeonContentSource"; import { prepareDungeonMaterial } from "./productionDungeonMaterials"; interface GltfMaterial { @@ -26,7 +27,9 @@ function shippedMaterials(file: string): GltfMaterial[] { } } -const wowDungeons = DUNGEON_DEFINITIONS.filter((definition) => definition.expansion !== "runewaker"); +const wowDungeons = DUNGEON_DEFINITIONS.filter((definition) => ( + definition.expansion !== "runewaker" && definition.id !== BITE_SIZED_STOCKADES_DUNGEON_ID +)); describe("shipped WoW dungeon material policies", () => { it("covers all 54 campaign dungeons", () => { diff --git a/src/styles.css b/src/styles.css index 0ba96909..742536ce 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1965,45 +1965,135 @@ html[data-display-layout="thor-preview"], html[data-display-layout="thor-preview } /* Login */ -.login-screen { display: grid; grid-template-columns: minmax(340px, 1fr) 390px; grid-template-rows: 58px 1fr 28px; column-gap: clamp(24px, 5vw, 72px); } -.login-screen > .front-brand { grid-column: 1; grid-row: 1; align-self: start; } -.login-hero { grid-column: 1; grid-row: 2; align-self: center; max-width: 500px; padding: 0 0 18px clamp(6px, 3vw, 36px); } -.login-rune { display: flex; width: 210px; align-items: center; gap: 12px; margin-bottom: 18px; color: var(--front-green-bright); } -.login-rune i { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, rgba(195, 222, 145, 0.46)); } -.login-rune i:last-child { transform: scaleX(-1); } -.login-rune span { font-family: Georgia, serif; font-size: 24px; text-shadow: 0 0 18px rgba(180, 225, 119, 0.55); } -.login-hero h1 { margin: 8px 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(35px, 5.5vw, 64px); font-weight: 400; line-height: 0.92; letter-spacing: -0.035em; } -.login-hero h1 em { color: var(--front-green-bright); font-weight: 400; } -.login-hero > p:not(.front-kicker) { max-width: 470px; margin: 0; color: var(--front-dim); font-size: 12px; line-height: 1.55; } -.login-pill-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; } -.login-pill-row span { padding: 5px 8px; border: 1px solid rgba(193, 216, 164, 0.14); border-radius: 999px; color: #b7c5b3; font-size: 8px; text-transform: uppercase; letter-spacing: 0.08em; } -.login-form { - grid-column: 2; - grid-row: 1 / 3; - align-self: center; - padding: clamp(21px, 3vw, 31px); - border: 1px solid var(--front-line); - border-radius: 18px 5px 18px 5px; - background: linear-gradient(150deg, rgba(13, 30, 22, 0.95), rgba(6, 15, 11, 0.94)); - box-shadow: 0 26px 70px rgba(0, 0, 0, 0.46); +.login-screen { + --login-ice: #9fd9df; + --login-gold: #d2b16d; + --login-gold-bright: #f1d99a; + display: grid; + grid-template-rows: minmax(98px, 1fr) auto 25px; + place-items: center; + background: + linear-gradient(180deg, rgba(2, 8, 16, .22), rgba(2, 7, 12, .12) 36%, rgba(1, 5, 9, .72) 100%), + radial-gradient(circle at 50% 42%, transparent 0 22%, rgba(0, 4, 8, .34) 72%), + url("./assets/ui/login/frozen-gateway.webp") center 43% / cover no-repeat, + #071019; + color: #f4eddd; } -.login-form header { margin-bottom: 15px; } -.login-form header span { display: block; color: var(--front-gold); font-size: 8px; font-weight: 800; letter-spacing: 0.17em; text-transform: uppercase; } -.login-form header strong { display: block; margin: 4px 0; font-family: Georgia, serif; font-size: 24px; font-weight: 400; } -.login-form header small { color: var(--front-dim); font-size: 9px; } -.login-form > label, .appearance-controls > label { display: block; margin: 8px 0 4px; color: #bdc9ba; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; } -.login-form > input, .appearance-controls > input { +.login-screen::before { + position: absolute; + inset: 0; + z-index: -1; + background: linear-gradient(90deg, rgba(1,4,8,.48), transparent 24% 76%, rgba(1,4,8,.48)); + content: ""; + pointer-events: none; +} +.login-screen .front-grain { opacity: .1; mix-blend-mode: screen; } +.login-title { + position: relative; + z-index: 2; + align-self: start; + min-width: min(360px, 90vw); + padding-top: clamp(2px, 1.8vh, 15px); + text-align: center; + filter: drop-shadow(0 4px 10px rgba(0,0,0,.9)); +} +.login-title__crest { + display: grid; + width: 44px; + height: 44px; + margin: 0 auto -8px; + place-items: center; + border: 1px solid rgba(217,190,124,.62); + background: radial-gradient(circle, #314956 0 37%, #15252e 38% 53%, #8d7748 55% 58%, #1a1714 60%); + box-shadow: 0 0 0 3px rgba(8,15,19,.78), 0 0 24px rgba(120,205,217,.34), inset 0 0 12px rgba(150,224,232,.3); + color: #c6edf0; + transform: rotate(45deg); +} +.login-title__crest i { font: normal 24px Georgia, serif; text-shadow: 0 0 8px #7ed7df; transform: rotate(-45deg); } +.login-title p { margin: 10px 0 0; color: var(--login-gold-bright); font-size: 8px; font-weight: 800; letter-spacing: .32em; text-transform: uppercase; } +.login-title h1 { + margin: 0; + color: #f6ebd0; + font: 600 clamp(35px, 5vw, 54px) Georgia, "Times New Roman", serif; + line-height: .95; + letter-spacing: -.055em; + text-shadow: 0 2px 0 #4b381d, 0 0 4px #000, 0 0 24px rgba(136,210,218,.25); +} +.login-title h1 em { color: var(--login-ice); font-weight: 400; } +.login-title small { color: #c8d4d2; font-family: Georgia, serif; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; text-shadow: 0 2px 5px #000; } +.login-form { + position: relative; + z-index: 2; + grid-row: 2; + width: min(420px, calc(100vw - 28px)); + align-self: end; + padding: 22px 24px 15px; + border: 1px solid rgba(176, 146, 84, .74); + border-radius: 3px 3px 13px 13px; + background: + linear-gradient(145deg, rgba(255,255,255,.045), transparent 30%), + linear-gradient(180deg, rgba(21,30,33,.97), rgba(7,13,17,.98)); + box-shadow: 0 0 0 3px rgba(4,9,12,.86), 0 0 0 4px rgba(91,78,51,.7), 0 24px 60px rgba(0,0,0,.72), inset 0 0 38px rgba(85,122,128,.08); + backdrop-filter: blur(7px); +} +.login-form::before, .login-form::after { + position: absolute; + top: 7px; + width: 17px; + height: 17px; + border-color: rgba(222,190,121,.55); + content: ""; + pointer-events: none; +} +.login-form::before { left: 7px; border-top: 1px solid; border-left: 1px solid; } +.login-form::after { right: 7px; border-top: 1px solid; border-right: 1px solid; } +.login-form__ornament { position: absolute; top: -10px; left: 50%; display: flex; width: 150px; align-items: center; gap: 7px; color: var(--login-gold-bright); transform: translateX(-50%); } +.login-form__ornament i { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--login-gold)); } +.login-form__ornament i:last-child { transform: scaleX(-1); } +.login-form__ornament span { display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid rgba(215,183,113,.7); background: #101a1e; color: transparent; transform: rotate(45deg); } +.login-form__ornament span::after { color: var(--login-gold-bright); content: "+"; font: 15px Georgia, serif; transform: rotate(-45deg); } +.login-form header { margin-bottom: 11px; text-align: center; } +.login-form header span { display: block; color: var(--login-ice); font-size: 8px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; } +.login-form header strong { display: block; margin: 2px 0; color: #f4e5c4; font: 400 24px Georgia, serif; text-shadow: 0 1px 0 #000; } +.login-form header small { color: #9eacac; font-size: 9px; } +.login-form > label { display: block; margin: 7px 0 4px; color: #d1c4a4; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; } +.login-form > input { width: 100%; - height: 38px; + height: 40px; padding: 0 11px; - border: 1px solid rgba(200, 219, 177, 0.18); - border-radius: 7px; - background: rgba(2, 8, 5, 0.66); - color: var(--front-cream); + border: 1px solid rgba(171,151,104,.48); + border-radius: 3px; + background: linear-gradient(180deg, rgba(1,5,8,.9), rgba(8,16,20,.82)); + color: #f5ecda; font: inherit; font-size: 12px; + box-shadow: inset 0 2px 7px rgba(0,0,0,.65); } -.login-form__actions { display: grid; gap: 7px; margin-top: 15px; } +.login-form > input::placeholder { color: #657476; } +.login-form > input.is-login-field-active { border-color: var(--login-gold-bright); box-shadow: inset 0 2px 7px rgba(0,0,0,.65), 0 0 0 2px rgba(225,190,110,.14), 0 0 15px rgba(130,211,219,.13); } +.login-form__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 13px; } +.login-form__actions .front-button { + min-height: 45px; + border-color: rgba(163,143,94,.38); + border-radius: 3px; + background: linear-gradient(180deg, rgba(50,61,61,.8), rgba(20,29,31,.86)); +} +.login-form__actions .front-button:hover { border-color: rgba(224,192,119,.68); background: linear-gradient(180deg, rgba(61,74,73,.9), rgba(24,35,37,.92)); } +.login-form__actions .front-button--primary { grid-column: 1 / -1; justify-content: center; border-color: rgba(226,194,118,.76); background: linear-gradient(180deg, #806936, #473817); box-shadow: inset 0 1px 0 rgba(255,236,179,.22), 0 0 16px rgba(193,157,80,.08); text-align: center; } +.login-form__actions .front-button--primary:hover { background: linear-gradient(180deg, #967b40, #55421c); } +.login-form__actions .front-button--primary small { color: #d3c398; } +.login-form__actions .front-button--quiet { border-color: rgba(117,151,156,.24); background: linear-gradient(180deg, rgba(30,48,53,.72), rgba(13,25,29,.78)); } +.login-form footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 9px; border-top: 1px solid rgba(171,151,104,.18); color: #7f9294; font-size: 7px; letter-spacing: .06em; text-transform: uppercase; } +.login-form footer span { color: #a9c5c5; } +.login-form footer i { display: inline-block; width: 5px; height: 5px; margin-right: 4px; border-radius: 50%; background: #73b68b; box-shadow: 0 0 7px #73b68b; } +.login-lore { position: relative; z-index: 2; grid-row: 3; margin: 9px 0 0; color: rgba(225,224,211,.7); font: italic 9px Georgia, serif; letter-spacing: .08em; text-shadow: 0 2px 5px #000; } +.login-screen .controller-legend { color: #8e9b9d; text-shadow: 0 1px 4px #000; } +.login-screen .controller-legend b { color: var(--login-gold-bright); } +.login-screen :is(button, input):focus-visible, .login-screen .is-controller-selected { outline-color: var(--login-gold-bright) !important; box-shadow: 0 0 0 3px rgba(225,190,110,.2), 0 0 15px rgba(130,211,219,.2) !important; } +.single-display-frame:has(.login-screen) .single-context-toggle { border-color: rgba(176,146,84,.58); border-radius: 3px; background: rgba(11,20,24,.94); box-shadow: 0 0 0 2px rgba(4,9,12,.72), 0 12px 35px rgba(0,0,0,.55); } +.single-display-frame:has(.login-screen) .single-context-toggle small { color: #f1d99a; } +.appearance-controls > label { display: block; margin: 8px 0 4px; color: #bdc9ba; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; } +.appearance-controls > input { width: 100%; height: 38px; padding: 0 11px; border: 1px solid rgba(200,219,177,.18); border-radius: 7px; background: rgba(2,8,5,.66); color: var(--front-cream); font: inherit; font-size: 12px; } /* Character silhouette preview */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @@ -2184,7 +2274,7 @@ html[data-display-layout="thor-preview"], html[data-display-layout="thor-preview .dungeon-select-list > header { position: relative; } .dungeon-select-list > header h1 { margin: 3px 0 10px; font: 28px Georgia, serif; font-weight: 400; } .dungeon-select-list > header > small { position: absolute; right: 0; bottom: 14px; color: var(--front-dim); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; } -.dungeon-category-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 0 3px 10px; } +.dungeon-category-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 0 3px 10px; } .dungeon-category-tab { display: flex; min-height: 39px; align-items: center; justify-content: space-between; gap: 6px; padding: 7px 9px; border: 1px solid rgba(204,224,180,.13); border-radius: 7px; background: rgba(255,255,255,.025); color: var(--front-cream); cursor: pointer; text-align: left; } .dungeon-category-tab strong { color: var(--front-dim); font: 14px Georgia, serif; font-weight: 400; } .dungeon-category-tab small { color: var(--front-dim); font-size: 6px; letter-spacing: .04em; text-align: right; text-transform: uppercase; } @@ -2446,17 +2536,74 @@ html[data-display-layout="thor-preview"], html[data-display-layout="thor-preview .companion-panel > header > b { color: var(--front-green-bright); font-size: 7px; letter-spacing: .15em; } .companion-panel > main { min-height: 0; overflow: hidden; } .companion-panel > footer { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--front-line); color: var(--front-dim); font-size: 7px; letter-spacing: .08em; } +.companion-login { + background: + linear-gradient(180deg, rgba(3,8,13,.78), rgba(2,7,11,.94)), + url("./assets/ui/login/frozen-gateway.webp") center / cover no-repeat, + #071019; +} +.companion-login .front-grain { opacity: .08; } +.companion-login .front-brand .brand-sigil { border-color: rgba(217,190,124,.5); color: #a9e0e4; box-shadow: inset 0 0 16px rgba(114,199,207,.18); } +.companion-login :is(.front-brand small, .companion-kicker) { color: #f1d99a; } +.companion-login > header > b { color: #9fd9df; } .companion-login > main { display: grid; align-content: center; padding: 12px 24px; } .companion-login h2 { max-width: 390px; margin: 6px 0 15px; font: 28px Georgia, serif; } .companion-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; } .companion-feature-grid article { display: flex; min-height: 100px; flex-direction: column; justify-content: space-between; padding: 11px; border: 1px solid var(--front-line); border-radius: 9px; background: rgba(255,255,255,.025); } .companion-feature-grid article > b { color: var(--front-gold); font: 18px Georgia, serif; } +.companion-login .companion-feature-grid article { border-color: rgba(176,146,84,.3); border-radius: 3px; background: linear-gradient(180deg, rgba(31,42,44,.86), rgba(10,18,21,.9)); box-shadow: inset 0 1px 0 rgba(255,255,255,.035); } +.companion-login .companion-feature-grid article > b { color: #d2b16d; } .companion-feature-grid article span { display: flex; flex-direction: column; } .companion-feature-grid article strong { font-size: 9px; } .companion-feature-grid article small { margin-top: 3px; color: var(--front-dim); font-size: 7px; line-height: 1.35; } +.companion-login-keyboard { grid-template-rows: 44px minmax(0, 1fr) 31px; } +.companion-login-keyboard > main { display: grid; grid-template-rows: 48px minmax(0, 1fr); align-content: stretch; gap: 6px; padding: 7px 0; } +.login-keyboard-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; } +.login-keyboard-fields button { + display: flex; + min-width: 0; + flex-direction: column; + justify-content: center; + padding: 5px 9px; + overflow: hidden; + border: 1px solid rgba(159,217,223,.2); + border-radius: 3px; + background: rgba(5,13,17,.86); + color: #899a9c; + cursor: pointer; + text-align: left; +} +.login-keyboard-fields button.is-active { border-color: rgba(241,217,154,.78); color: #f4eddd; background: linear-gradient(180deg, rgba(45,55,55,.9), rgba(17,27,30,.92)); box-shadow: inset 0 0 14px rgba(128,200,207,.08); } +.login-keyboard-fields small, .login-keyboard-fields strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.login-keyboard-fields small { color: #9fd9df; font-size: 7px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; } +.login-keyboard-fields strong { margin-top: 2px; font: 13px Georgia, serif; } +.login-keyboard-grid { display: grid; min-height: 0; grid-template-columns: repeat(10, minmax(0, 1fr)); grid-template-rows: repeat(6, minmax(0, 1fr)); gap: 4px; } +.login-keyboard-key { + min-width: 0; + min-height: 0; + padding: 2px; + border: 1px solid rgba(160,182,180,.25); + border-radius: 3px; + background: linear-gradient(180deg, rgba(43,54,56,.94), rgba(17,26,29,.96)); + box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 3px rgba(0,0,0,.32); + color: #f1ead8; + cursor: pointer; + font-size: 11px; + font-weight: 800; + text-align: center; +} +.login-keyboard-key:hover { border-color: rgba(241,217,154,.58); background: linear-gradient(180deg, rgba(58,70,71,.96), rgba(23,34,37,.98)); } +.login-keyboard-key.is-controller-selected { z-index: 2; border-color: #f1d99a; outline: 2px solid #f1d99a !important; outline-offset: -2px; background: linear-gradient(180deg, #806936, #473817); box-shadow: inset 0 1px 0 rgba(255,236,179,.24), 0 0 13px rgba(149,216,222,.32) !important; } +.login-keyboard-key.is-unavailable { color: #657174; background: rgba(10,17,20,.82); } +.login-keyboard-key--mode, .login-keyboard-key--field, .login-keyboard-key--space, +.login-keyboard-key--backspace, .login-keyboard-key--clear, .login-keyboard-key--done { color: #c7dadd; background: linear-gradient(180deg, rgba(35,57,62,.94), rgba(13,29,33,.96)); } +.login-keyboard-key--login { border-color: rgba(226,194,118,.58); color: #fff0c5; background: linear-gradient(180deg, #755f30, #403213); } +.login-keyboard-key--create, .login-keyboard-key--offline { border-color: rgba(176,146,84,.38); color: #eadbb8; } +.companion-login-keyboard > footer strong { overflow: hidden; color: #9fd9df; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; } +.companion-login-keyboard > footer b { color: #f1d99a; } .companion-roster > main { display: grid; grid-template-columns: 190px 1fr; gap: 11px; padding: 9px 0; } .companion-dungeon-browser { display: grid; min-height: 0; grid-template-rows: auto minmax(0, 1fr); gap: 6px; } -.companion-category-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; } +.companion-category-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; } .companion-category-tabs button { display: flex; min-height: 30px; align-items: center; justify-content: space-between; gap: 5px; padding: 5px 7px; border: 1px solid rgba(204,224,180,.13); border-radius: 6px; background: rgba(255,255,255,.025); color: var(--front-cream); cursor: pointer; } .companion-category-tabs button.is-active { border-color: rgba(218,192,102,.52); background: rgba(111,126,66,.22); } .companion-category-tabs strong { color: var(--front-gold); font: 11px Georgia, serif; font-weight: 400; } @@ -2589,10 +2736,17 @@ html[data-display-surface="bottom"] .single-context-toggle { display: none; } @media (max-width: 760px) { .front-surface--top { padding: 11px; } - .login-screen { display: block; overflow: auto; } - .login-screen > .front-brand { position: absolute; top: 12px; left: 13px; } - .login-hero { display: none; } - .login-form { width: min(390px, calc(100% - 16px)); margin: 48px auto 28px; padding: 18px; } + .login-screen { display: grid; grid-template-rows: minmax(94px, 1fr) auto 62px; overflow: auto; background-position: center 42%; } + .login-title { min-width: min(330px, 88vw); padding-top: max(3px, env(safe-area-inset-top)); } + .login-title__crest { width: 38px; height: 38px; } + .login-title h1 { font-size: clamp(34px, 11vw, 46px); } + .login-title small { font-size: 8px; } + .login-form { width: min(410px, calc(100vw - 24px)); padding: 20px 17px 13px; } + .login-form > input { height: 44px; font-size: 16px; } + .login-form__actions .front-button { min-height: 48px; } + .login-form__actions .front-button span { font-size: 11px; } + .login-form__actions .front-button small { font-size: 7px; } + .login-form footer, .login-lore { display: none; } .controller-legend { display: none; } .character-select-screen { display: grid; grid-template-columns: 43% 57%; grid-template-rows: 48px minmax(0,1fr); } .roster-header { grid-column: 1 / 3; } @@ -2692,11 +2846,29 @@ html[data-display-surface="bottom"] .single-context-toggle { display: none; } } @media (max-height: 500px) { - .login-form { padding: 16px 20px; } - .login-form header { margin-bottom: 8px; } - .login-form__actions { grid-template-columns: 1fr 1fr 1fr; } + .login-screen { grid-template-columns: minmax(190px, .8fr) minmax(380px, 1.2fr); grid-template-rows: 1fr; gap: 20px; overflow: auto; background-position: center 40%; } + .login-title { grid-column: 1; grid-row: 1; align-self: center; min-width: 0; padding-left: 10px; } + .login-title h1 { font-size: clamp(32px, 5vw, 42px); } + .login-form { grid-column: 2; grid-row: 1; align-self: center; width: min(560px, 100%); padding: 16px 20px 11px; } + .login-form header { margin-bottom: 7px; } + .login-form header strong { font-size: 20px; } + .login-form > label { margin-top: 5px; } + .login-form > input { height: 36px; } + .login-form__actions { grid-template-columns: 1.1fr 1fr 1fr; margin-top: 9px; } + .login-form__actions .front-button--primary { grid-column: auto; } .login-form__actions .front-button { min-width: 0; } .login-form__actions small { display: none; } + .login-form footer, .login-lore { display: none; } +} + +@media (max-width: 620px) and (max-height: 500px) { + .login-screen { display: grid; grid-template-columns: 1fr; grid-template-rows: 54px auto; gap: 4px; align-content: center; background-position: center; } + .login-title { grid-column: 1; grid-row: 1; align-self: start; display: grid; grid-template-columns: 36px auto; width: min(420px, calc(100vw - 24px)); align-items: center; justify-content: center; gap: 0 12px; padding: 0; } + .login-title__crest { grid-row: 1 / 3; width: 32px; height: 32px; margin: 0; } + .login-title p { align-self: end; margin: 0; font-size: 6px; text-align: left; } + .login-title h1 { align-self: start; font-size: 27px; text-align: left; } + .login-title small { display: none; } + .login-form { grid-column: 1; grid-row: 2; width: min(480px, calc(100vw - 24px)); } } .world-transition { diff --git a/src/ui/BossGuidePanel.tsx b/src/ui/BossGuidePanel.tsx index adb716cc..7f1df297 100644 --- a/src/ui/BossGuidePanel.tsx +++ b/src/ui/BossGuidePanel.tsx @@ -1,38 +1,43 @@ import { useMemo, useState } from "react"; import { buildBossGuideCatalog } from "../game/bossGuide"; import { BOSS_GUIDE_OVERRIDES } from "../game/bossGuideOverrides"; -import { DUNGEON_DEFINITIONS } from "../game/dungeonRegistry"; +import { DUNGEON_DEFINITIONS, dungeonDefinitionById } from "../game/dungeonRegistry"; import { useGameStore } from "../game/store"; import { useMenuController, type MenuAction } from "../input/useMenuController"; import { ControllerButton } from "./ControllerButton"; -const GUIDE_CATALOG = buildBossGuideCatalog(DUNGEON_DEFINITIONS, BOSS_GUIDE_OVERRIDES); - function BossGuideDialog() { const activeDungeonId = useGameStore((state) => state.activeDungeonId); + const sessionRevision = useGameStore((state) => state.sessionRevision); const bossTest = useGameStore((state) => state.bossTest); const openOverlay = useGameStore((state) => state.openOverlay); - const initialDungeon = GUIDE_CATALOG.find((dungeon) => dungeon.id === (bossTest?.sourceDungeonId ?? activeDungeonId)) ?? GUIDE_CATALOG[0]; + const guideCatalog = useMemo(() => buildBossGuideCatalog( + DUNGEON_DEFINITIONS.map((definition) => ( + definition.id === activeDungeonId ? dungeonDefinitionById(activeDungeonId) ?? definition : definition + )), + BOSS_GUIDE_OVERRIDES, + ), [activeDungeonId, sessionRevision]); + const initialDungeon = guideCatalog.find((dungeon) => dungeon.id === (bossTest?.sourceDungeonId ?? activeDungeonId)) ?? guideCatalog[0]; const [selectedDungeonId, setSelectedDungeonId] = useState(initialDungeon?.id ?? ""); - const selectedDungeon = GUIDE_CATALOG.find((dungeon) => dungeon.id === selectedDungeonId) ?? initialDungeon; + const selectedDungeon = guideCatalog.find((dungeon) => dungeon.id === selectedDungeonId) ?? initialDungeon; const [selectedBossId, setSelectedBossId] = useState(selectedDungeon?.bosses.find((boss) => boss.entityId === bossTest?.entityId)?.id ?? selectedDungeon?.bosses[0]?.id ?? ""); const selectedBoss = selectedDungeon?.bosses.find((boss) => boss.id === selectedBossId) ?? selectedDungeon?.bosses[0]; const close = () => openOverlay("pause"); const selectDungeon = (dungeonId: string) => { - const dungeon = GUIDE_CATALOG.find((candidate) => candidate.id === dungeonId); + const dungeon = guideCatalog.find((candidate) => candidate.id === dungeonId); setSelectedDungeonId(dungeonId); setSelectedBossId(dungeon?.bosses[0]?.id ?? ""); }; const actions = useMemo(() => { - const dungeonActions = GUIDE_CATALOG.map((dungeon, index): MenuAction => ({ + const dungeonActions = guideCatalog.map((dungeon, index): MenuAction => ({ id: `boss-guide-dungeon:${dungeon.id}`, run: () => selectDungeon(dungeon.id), neighbors: { - up: `boss-guide-dungeon:${GUIDE_CATALOG[(index - 1 + GUIDE_CATALOG.length) % GUIDE_CATALOG.length].id}`, - down: `boss-guide-dungeon:${GUIDE_CATALOG[(index + 1) % GUIDE_CATALOG.length].id}`, + up: `boss-guide-dungeon:${guideCatalog[(index - 1 + guideCatalog.length) % guideCatalog.length].id}`, + down: `boss-guide-dungeon:${guideCatalog[(index + 1) % guideCatalog.length].id}`, ...(dungeon.id === selectedDungeon?.id && dungeon.bosses.length ? { right: `boss-guide-boss:${dungeon.bosses[0].id}` } : {}), @@ -49,7 +54,7 @@ function BossGuideDialog() { }, })); return [...dungeonActions, ...bossActions]; - }, [selectedDungeon]); + }, [guideCatalog, selectedDungeon]); const controller = useMenuController(actions, { initialId: `boss-guide-dungeon:${selectedDungeon?.id ?? ""}`, onBack: close, @@ -74,7 +79,7 @@ function BossGuideDialog() {