@dreadwood-types/types 0.1.213 → 0.1.215

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,108 @@
1
+ export type LedgerSection = 'places' | 'quests' | 'fish' | 'bosses' | 'events' | 'ring' | 'yard';
2
+ export declare const LEDGER_SECTIONS: readonly {
3
+ id: LedgerSection;
4
+ label: string;
5
+ blurb: string;
6
+ }[];
7
+ export type LedgerLine = {
8
+ /** `<section>:<thing>`; marked lines are written to `ledgerMarks` under exactly this id. */
9
+ id: string;
10
+ section: LedgerSection;
11
+ label: string;
12
+ /** Explorer XP paid once, when the line is first earned. 0 = paid elsewhere already, counted only. */
13
+ xp: number;
14
+ /** True when the server writes a mark for it (otherwise it is read from existing character state). */
15
+ marked: boolean;
16
+ };
17
+ /** PLACEHOLDER Explorer XP for a marked line, and a bonus when a whole page is finished (balance is last). */
18
+ export declare const LEDGER_BOSS_XP = 150;
19
+ export declare const LEDGER_EVENT_XP = 100;
20
+ export declare const LEDGER_RING_XP = 200;
21
+ export declare const LEDGER_YARD_XP = 40;
22
+ export declare const LEDGER_PAGE_BONUS_XP: Readonly<Record<LedgerSection, number>>;
23
+ /** The named bosses (NpcKinds) whose fall is written in the book. Labels are what the book shows. */
24
+ export declare const LEDGER_BOSSES: readonly {
25
+ kind: string;
26
+ label: string;
27
+ }[];
28
+ /**
29
+ * The yard's drill sergeants, by id. Defined here (not in the yard module) so the book and the yard cannot drift; the yard
30
+ * (sparringYard.ts) reads this list for its bouts.
31
+ */
32
+ export declare const LEDGER_YARD_SERGEANTS: readonly {
33
+ id: string;
34
+ label: string;
35
+ }[];
36
+ export declare const LEDGER_LINES: readonly LedgerLine[];
37
+ export declare function ledgerLine(id: string): LedgerLine | null;
38
+ export declare function ledgerLinesIn(section: LedgerSection): LedgerLine[];
39
+ /** The id of a section's finishing bonus in `ledgerPaid` (never a line, never a mark). */
40
+ export declare function ledgerBonusId(section: LedgerSection): string;
41
+ /** What the server reads to work out the book: the character's own saved state. */
42
+ export type LedgerInput = {
43
+ discoveredZones: Iterable<string>;
44
+ /** Ids of quests whose state is 'completed'. */
45
+ questsDone: Iterable<string>;
46
+ /** Aquarium species kinds the book holds (donated at least once). */
47
+ aquariumKinds: Iterable<string>;
48
+ /** `ledgerMarks`: marked line ids. */
49
+ marks: Iterable<string>;
50
+ };
51
+ /** Every line id the character has earned (derived lines read from their state, marked lines from their marks). */
52
+ export declare function ledgerEarned(input: LedgerInput): Set<string>;
53
+ export declare function ledgerSectionDone(section: LedgerSection, earned: ReadonlySet<string>): boolean;
54
+ export declare function ledgerSectionCount(section: LedgerSection, earned: ReadonlySet<string>): {
55
+ have: number;
56
+ total: number;
57
+ };
58
+ /** What the book owes that has not been paid yet: each earned line's XP, and a finished page's bonus. Pure. */
59
+ export declare function ledgerOwed(earned: ReadonlySet<string>, paid: ReadonlySet<string>): {
60
+ id: string;
61
+ xp: number;
62
+ label: string;
63
+ }[];
64
+ /** A line id that may be marked (a known marked line); anything else is not a mark. */
65
+ export declare function isLedgerMark(id: unknown): id is string;
66
+ /** Whatever the database held, made safe: only known marked lines survive, once each. */
67
+ export declare function normalizeLedgerMarks(raw: unknown): string[];
68
+ /** The paid set may hold line ids and bonus ids; unknown ids are dropped. */
69
+ export declare function normalizeLedgerPaid(raw: unknown): string[];
70
+ export type AchievementCondition = {
71
+ kind: 'count';
72
+ section: LedgerSection;
73
+ min: number;
74
+ } | {
75
+ kind: 'page';
76
+ section: LedgerSection;
77
+ } | {
78
+ kind: 'line';
79
+ id: string;
80
+ } | {
81
+ kind: 'total';
82
+ min: number;
83
+ } | {
84
+ kind: 'level';
85
+ skill: LedgerLevelSkill;
86
+ min: number;
87
+ };
88
+ export type LedgerLevelSkill = 'combat' | 'explorer' | 'strength' | 'mastery';
89
+ export type LedgerAchievement = {
90
+ /** The Steamworks API name: capitals, digits, underscores. Never renamed once created on Steam. */
91
+ id: string;
92
+ title: string;
93
+ description: string;
94
+ when: AchievementCondition;
95
+ };
96
+ export declare const LEDGER_ACHIEVEMENTS: readonly LedgerAchievement[];
97
+ /** A character's levels, for the level achievements. */
98
+ export type LedgerLevels = Partial<Record<LedgerLevelSkill, number>>;
99
+ /** The achievement ids a character has earned: a pure function of the earned lines and their levels. */
100
+ export declare function ledgerAchievements(earned: ReadonlySet<string>, levels?: LedgerLevels): string[];
101
+ /** The wire snapshot: what the client draws the book from. */
102
+ export type LedgerSnapshot = {
103
+ earned: string[];
104
+ achievements: string[];
105
+ /** Explorer XP the book has paid so far (shown on the cover). */
106
+ xpPaid: number;
107
+ };
108
+ //# sourceMappingURL=explorerLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorerLedger.d.ts","sourceRoot":"","sources":["../src/explorerLedger.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjG,eAAO,MAAM,eAAe,EAAE,SAAS;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAQzF,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,4FAA4F;IAC5F,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,sGAAsG;IACtG,EAAE,EAAE,MAAM,CAAC;IACX,sGAAsG;IACtG,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8GAA8G;AAC9G,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAQxE,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,aAAa,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAmBnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAKzE,CAAC;AAsBF,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAY,CAAC;AAG3D,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAExD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,EAAE,CAElE;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,gDAAgD;IAChD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,qEAAqE;IACrE,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,sCAAsC;IACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,mHAAmH;AACnH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAU5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAG9F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAGvH;AAED,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ9H;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAEtD;AAED,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAG3D;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAI1D;AAID,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mGAAmG;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EA6B3D,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AAErE,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAE,YAAiB,GAAG,MAAM,EAAE,CAanG;AAED,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * THE EXPLORER'S LEDGER (PLAN_1_TO_40.md E11/B5, 2026-10-14): one book of everything a character has found, caught, cleared
3
+ * and beaten. Each LINE is one thing to finish; the server pays its Explorer XP once (`ledgerPaid` on the character), and
4
+ * the book maps onto the Steam achievements list below (`LEDGER_ACHIEVEMENTS`, names are capitals, digits, underscores).
5
+ *
6
+ * Two kinds of line:
7
+ * - DERIVED lines are read from state the character already keeps (a place from `discoveredZones`, a quest from the
8
+ * quest log, a fish species from the Great Aquarium's book). They need no hook, so they count however the thing
9
+ * arrived (a visit, a teleport, a quest reward) and keep counting after a rename, a move or a delete of anything else.
10
+ * - MARKED lines (a boss felled, an event cleared, a Ringstone win, a yard bout won) are written to `ledgerMarks` by the
11
+ * server at the moment it happens, because nothing else remembers them.
12
+ *
13
+ * Amounts are PLACEHOLDERS (balance is done last, with James). A line whose Explorer XP is already paid where it
14
+ * happens (a place's Discovered card, a quest's reward, an aquarium donation) carries `xp: 0` here: it counts toward the
15
+ * book and the achievements but is never paid twice. The new money is the marked lines and the page-complete bonuses.
16
+ */
17
+ import { DISCOVERY_ZONES } from './expandedContracts.js';
18
+ import { QUEST_IDS, QUEST_META } from './quests.js';
19
+ import { AQUARIUM_SPECIES } from './aquarium.js';
20
+ import { WORLD_EVENTS } from './worldEvents.js';
21
+ import { RING_BOSSES } from './worldBossRing.js';
22
+ export const LEDGER_SECTIONS = [
23
+ { id: 'places', label: 'Places found', blurb: 'Every named place you have walked into.' },
24
+ { id: 'quests', label: 'Quests finished', blurb: 'Every quest you have seen through.' },
25
+ { id: 'fish', label: 'Waters and catches', blurb: 'Every creature in the Great Aquarium book.' },
26
+ { id: 'bosses', label: 'Bosses beaten', blurb: 'The named monsters of the lairs, felled by you.' },
27
+ { id: 'events', label: 'Events cleared', blurb: 'Every doorway the world opens, seen to its chest.' },
28
+ { id: 'ring', label: 'Ringstone', blurb: 'The crowd bosses of the Old Ring.' },
29
+ { id: 'yard', label: 'The sparring yard', blurb: 'Bouts won against the Capital drill sergeants.' },
30
+ ];
31
+ /** PLACEHOLDER Explorer XP for a marked line, and a bonus when a whole page is finished (balance is last). */
32
+ export const LEDGER_BOSS_XP = 150;
33
+ export const LEDGER_EVENT_XP = 100;
34
+ export const LEDGER_RING_XP = 200;
35
+ export const LEDGER_YARD_XP = 40;
36
+ export const LEDGER_PAGE_BONUS_XP = {
37
+ places: 1500,
38
+ quests: 1500,
39
+ fish: 500,
40
+ bosses: 1500,
41
+ events: 800,
42
+ ring: 400,
43
+ yard: 400,
44
+ };
45
+ /** The named bosses (NpcKinds) whose fall is written in the book. Labels are what the book shows. */
46
+ export const LEDGER_BOSSES = [
47
+ { kind: 'spidermatriarch', label: 'The Spider Matriarch' },
48
+ { kind: 'rotwoodent', label: 'The Rotwood Ent' },
49
+ { kind: 'ironjawchief', label: 'The Ironjaw Chief' },
50
+ { kind: 'bloodmireelemental', label: 'The Blood Mire Elemental' },
51
+ { kind: 'cryptknight', label: 'The Crypt Knight' },
52
+ { kind: 'liv', label: 'Livonia, Breaker of Men' },
53
+ { kind: 'bosunharrow', label: 'Bosun Harrow' },
54
+ { kind: 'captainrowena', label: 'Captain Rowena' },
55
+ { kind: 'orchardboar', label: 'The Orchard Boar' },
56
+ { kind: 'oldgnasher', label: 'Old Gnasher' },
57
+ { kind: 'oldtusk', label: 'Old Tusk' },
58
+ { kind: 'grandfathergull', label: 'Grandfather Gull' },
59
+ { kind: 'frostwarden', label: 'The Frost Warden' },
60
+ { kind: 'bonechillyeti', label: 'The Bonechill Yeti' },
61
+ { kind: 'icelich', label: 'The Ice Lich' },
62
+ { kind: 'frostalchemist', label: 'The Frost Alchemist' },
63
+ { kind: 'glacialbehemoth', label: 'The Glacial Behemoth' },
64
+ { kind: 'dragon', label: 'The Red Dragon' },
65
+ ];
66
+ /**
67
+ * The yard's drill sergeants, by id. Defined here (not in the yard module) so the book and the yard cannot drift; the yard
68
+ * (sparringYard.ts) reads this list for its bouts.
69
+ */
70
+ export const LEDGER_YARD_SERGEANTS = [
71
+ { id: 'sergeant-hale', label: 'Sergeant Hale (first bout)' },
72
+ { id: 'sergeant-mott', label: 'Sergeant Mott (second bout)' },
73
+ { id: 'sergeant-brack', label: 'Sergeant Brack (third bout)' },
74
+ { id: 'sergeant-vane', label: 'Sergeant Vane (fourth bout)' },
75
+ ];
76
+ function build() {
77
+ const lines = [];
78
+ for (const z of DISCOVERY_ZONES)
79
+ lines.push({ id: `places:${z.id}`, section: 'places', label: z.label, xp: 0, marked: false });
80
+ for (const id of QUEST_IDS) {
81
+ const meta = QUEST_META[id];
82
+ if (!meta || meta.hidden)
83
+ continue;
84
+ lines.push({ id: `quests:${id}`, section: 'quests', label: meta.title, xp: 0, marked: false });
85
+ }
86
+ for (const s of AQUARIUM_SPECIES)
87
+ lines.push({ id: `fish:${s.kind}`, section: 'fish', label: s.label, xp: 0, marked: false });
88
+ for (const b of LEDGER_BOSSES)
89
+ lines.push({ id: `bosses:${b.kind}`, section: 'bosses', label: b.label, xp: LEDGER_BOSS_XP, marked: true });
90
+ for (const [id, def] of Object.entries(WORLD_EVENTS)) {
91
+ lines.push({ id: `events:${id}`, section: 'events', label: def.label, xp: LEDGER_EVENT_XP, marked: true });
92
+ }
93
+ for (const [kind, boss] of Object.entries(RING_BOSSES)) {
94
+ lines.push({ id: `ring:${kind}`, section: 'ring', label: boss.name, xp: LEDGER_RING_XP, marked: true });
95
+ }
96
+ for (const s of LEDGER_YARD_SERGEANTS)
97
+ lines.push({ id: `yard:${s.id}`, section: 'yard', label: s.label, xp: LEDGER_YARD_XP, marked: true });
98
+ return lines;
99
+ }
100
+ export const LEDGER_LINES = build();
101
+ const LINE_BY_ID = new Map(LEDGER_LINES.map((l) => [l.id, l]));
102
+ export function ledgerLine(id) {
103
+ return LINE_BY_ID.get(id) ?? null;
104
+ }
105
+ export function ledgerLinesIn(section) {
106
+ return LEDGER_LINES.filter((l) => l.section === section);
107
+ }
108
+ /** The id of a section's finishing bonus in `ledgerPaid` (never a line, never a mark). */
109
+ export function ledgerBonusId(section) {
110
+ return `bonus:${section}`;
111
+ }
112
+ /** Every line id the character has earned (derived lines read from their state, marked lines from their marks). */
113
+ export function ledgerEarned(input) {
114
+ const earned = new Set();
115
+ for (const z of input.discoveredZones)
116
+ if (LINE_BY_ID.has(`places:${z}`))
117
+ earned.add(`places:${z}`);
118
+ for (const q of input.questsDone)
119
+ if (LINE_BY_ID.has(`quests:${q}`))
120
+ earned.add(`quests:${q}`);
121
+ for (const k of input.aquariumKinds)
122
+ if (LINE_BY_ID.has(`fish:${k}`))
123
+ earned.add(`fish:${k}`);
124
+ for (const m of input.marks) {
125
+ const line = LINE_BY_ID.get(m);
126
+ if (line && line.marked)
127
+ earned.add(m);
128
+ }
129
+ return earned;
130
+ }
131
+ export function ledgerSectionDone(section, earned) {
132
+ const lines = ledgerLinesIn(section);
133
+ return lines.length > 0 && lines.every((l) => earned.has(l.id));
134
+ }
135
+ export function ledgerSectionCount(section, earned) {
136
+ const lines = ledgerLinesIn(section);
137
+ return { have: lines.filter((l) => earned.has(l.id)).length, total: lines.length };
138
+ }
139
+ /** What the book owes that has not been paid yet: each earned line's XP, and a finished page's bonus. Pure. */
140
+ export function ledgerOwed(earned, paid) {
141
+ const owed = [];
142
+ for (const l of LEDGER_LINES)
143
+ if (earned.has(l.id) && !paid.has(l.id))
144
+ owed.push({ id: l.id, xp: l.xp, label: l.label });
145
+ for (const s of LEDGER_SECTIONS) {
146
+ const id = ledgerBonusId(s.id);
147
+ if (!paid.has(id) && ledgerSectionDone(s.id, earned))
148
+ owed.push({ id, xp: LEDGER_PAGE_BONUS_XP[s.id], label: `${s.label}: page complete` });
149
+ }
150
+ return owed;
151
+ }
152
+ /** A line id that may be marked (a known marked line); anything else is not a mark. */
153
+ export function isLedgerMark(id) {
154
+ return typeof id === 'string' && (LINE_BY_ID.get(id)?.marked ?? false);
155
+ }
156
+ /** Whatever the database held, made safe: only known marked lines survive, once each. */
157
+ export function normalizeLedgerMarks(raw) {
158
+ if (!Array.isArray(raw))
159
+ return [];
160
+ return [...new Set(raw.filter(isLedgerMark))];
161
+ }
162
+ /** The paid set may hold line ids and bonus ids; unknown ids are dropped. */
163
+ export function normalizeLedgerPaid(raw) {
164
+ if (!Array.isArray(raw))
165
+ return [];
166
+ const bonus = new Set(LEDGER_SECTIONS.map((s) => ledgerBonusId(s.id)));
167
+ return [...new Set(raw.filter((id) => typeof id === 'string' && (LINE_BY_ID.has(id) || bonus.has(id))))];
168
+ }
169
+ export const LEDGER_ACHIEVEMENTS = [
170
+ { id: 'PLACES_5', title: 'Off the Beach', description: 'Find 5 named places.', when: { kind: 'count', section: 'places', min: 5 } },
171
+ { id: 'PLACES_25', title: 'Well Travelled', description: 'Find 25 named places.', when: { kind: 'count', section: 'places', min: 25 } },
172
+ { id: 'PLACES_50', title: 'Cartographer', description: 'Find 50 named places.', when: { kind: 'count', section: 'places', min: 50 } },
173
+ { id: 'PLACES_ALL', title: 'Nowhere Left to Find', description: 'Find every named place.', when: { kind: 'page', section: 'places' } },
174
+ { id: 'QUESTS_5', title: 'Odd Jobs Done', description: 'Finish 5 quests.', when: { kind: 'count', section: 'quests', min: 5 } },
175
+ { id: 'QUESTS_25', title: 'Known About Town', description: 'Finish 25 quests.', when: { kind: 'count', section: 'quests', min: 25 } },
176
+ { id: 'QUESTS_50', title: 'The Hero Nobody Asked For', description: 'Finish 50 quests.', when: { kind: 'count', section: 'quests', min: 50 } },
177
+ { id: 'QUESTS_ALL', title: 'Every Last Favour', description: 'Finish every quest.', when: { kind: 'page', section: 'quests' } },
178
+ { id: 'FISH_FIRST', title: 'First Catch for the Tanks', description: 'Add a creature to the Great Aquarium.', when: { kind: 'count', section: 'fish', min: 1 } },
179
+ { id: 'FISH_10', title: 'Keeper of Ten', description: 'Add 10 creatures to the Great Aquarium.', when: { kind: 'count', section: 'fish', min: 10 } },
180
+ { id: 'FISH_ALL', title: 'Keeper of the Waters', description: 'Fill the Great Aquarium book.', when: { kind: 'page', section: 'fish' } },
181
+ { id: 'BOSS_FIRST', title: 'Bigger Than You', description: 'Beat a named boss.', when: { kind: 'count', section: 'bosses', min: 1 } },
182
+ { id: 'BOSS_5', title: 'Lair Cleaner', description: 'Beat 5 named bosses.', when: { kind: 'count', section: 'bosses', min: 5 } },
183
+ { id: 'BOSS_ALL', title: 'Nothing Left to Fear', description: 'Beat every named boss.', when: { kind: 'page', section: 'bosses' } },
184
+ { id: 'EVENT_FIRST', title: 'Through the Hidden Door', description: 'Clear a world event.', when: { kind: 'count', section: 'events', min: 1 } },
185
+ { id: 'EVENT_ALL', title: 'Doors Open for You', description: 'Clear every world event.', when: { kind: 'page', section: 'events' } },
186
+ { id: 'RING_FIRST', title: 'One of the Crowd', description: 'Help bring down a Ringstone boss.', when: { kind: 'count', section: 'ring', min: 1 } },
187
+ { id: 'RING_ALL', title: 'Master of the Ring', description: 'Help bring down every Ringstone boss.', when: { kind: 'page', section: 'ring' } },
188
+ { id: 'YARD_FIRST', title: 'Sparring Partner', description: 'Win a bout in the Capital sparring yard.', when: { kind: 'count', section: 'yard', min: 1 } },
189
+ { id: 'YARD_ALL', title: 'Yard Champion', description: 'Win every bout in the sparring yard.', when: { kind: 'page', section: 'yard' } },
190
+ { id: 'LEDGER_100', title: 'A Fuller Book', description: 'Fill 100 lines of the Explorer\'s Ledger.', when: { kind: 'total', min: 100 } },
191
+ { id: 'LEDGER_150', title: 'A Well Thumbed Book', description: 'Fill 150 lines of the Explorer\'s Ledger.', when: { kind: 'total', min: 150 } },
192
+ { id: 'COMBAT_20', title: 'Handy in a Scrap', description: 'Reach Combat level 20.', when: { kind: 'level', skill: 'combat', min: 20 } },
193
+ { id: 'COMBAT_40', title: 'A Name in the Woods', description: 'Reach Combat level 40.', when: { kind: 'level', skill: 'combat', min: 40 } },
194
+ { id: 'EXPLORER_20', title: 'Itchy Feet', description: 'Reach Explorer level 20.', when: { kind: 'level', skill: 'explorer', min: 20 } },
195
+ { id: 'EXPLORER_40', title: 'Always One More Hill', description: 'Reach Explorer level 40.', when: { kind: 'level', skill: 'explorer', min: 40 } },
196
+ { id: 'STRENGTH_30', title: 'Strong Arm', description: 'Reach Strength level 30.', when: { kind: 'level', skill: 'strength', min: 30 } },
197
+ { id: 'MASTERY_30', title: 'Steady Hand', description: 'Reach Weapon Mastery level 30.', when: { kind: 'level', skill: 'mastery', min: 30 } },
198
+ ];
199
+ /** The achievement ids a character has earned: a pure function of the earned lines and their levels. */
200
+ export function ledgerAchievements(earned, levels = {}) {
201
+ const out = [];
202
+ for (const a of LEDGER_ACHIEVEMENTS) {
203
+ const w = a.when;
204
+ let ok = false;
205
+ if (w.kind === 'count')
206
+ ok = ledgerSectionCount(w.section, earned).have >= w.min;
207
+ else if (w.kind === 'page')
208
+ ok = ledgerSectionDone(w.section, earned);
209
+ else if (w.kind === 'line')
210
+ ok = earned.has(w.id);
211
+ else if (w.kind === 'total')
212
+ ok = earned.size >= w.min;
213
+ else
214
+ ok = (levels[w.skill] ?? 0) >= w.min;
215
+ if (ok)
216
+ out.push(a.id);
217
+ }
218
+ return out;
219
+ }
220
+ //# sourceMappingURL=explorerLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorerLedger.js","sourceRoot":"","sources":["../src/explorerLedger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * THE GATEWARDEN'S ROUNDS (plan item C11, 2026-10-14; dreadwoods-backend/PLAN_1_TO_40.md, early-game program track T7).
3
+ * Gatewarden Brannock keeps the Dreadwoods' east gate on the Calverton side and wants the lairs counted: one lair a step
4
+ * (the Grave Hounds, then the Crypt Knight; the Moss Wolves, then the Rotwood Ent; the Blood Mire Elemental), with a tally
5
+ * page nailed up at each boss's lair as proof. Levels 22-35. Everything inside the woods is PvP and nobody may eat in a
6
+ * fight there, so the quest says so (the standing no-healing rule, NEXT_STEPS section 2).
7
+ *
8
+ * Every number is a WORLD tile.
9
+ */
10
+ import type { LanternWakeQuestProp } from './lanternWakeQuests.js';
11
+ export declare const GATEWARDEN_ROUNDS_ID = "gatewardenRounds";
12
+ export declare const GATEWARDEN_ROUNDS_NAME = "The Gatewarden's Rounds";
13
+ /** The warden, outside the Dreadwoods east gate (the gate is at x 687, z 666) on the Calverton road. */
14
+ export declare const GATEWARDEN_KIND = "gatewarden";
15
+ export declare const GATEWARDEN_NAME = "Gatewarden Brannock";
16
+ export declare const GATEWARDEN_SPOT: {
17
+ readonly x: 693;
18
+ readonly z: 669;
19
+ };
20
+ /** The combat level the warden asks for (the lairs run 22-35). */
21
+ export declare const GATEWARDEN_ROUNDS_COMBAT = 22;
22
+ /** The tally pages (questprop entities, style `<prop>:<lair>`). One per boss lair, nailed up beside the boss. */
23
+ export declare const GW_PROP: {
24
+ readonly crypt: "gwcrypt";
25
+ readonly grove: "gwgrove";
26
+ readonly mire: "gwmire";
27
+ };
28
+ export declare const GW_TALLY_CRYPT: LanternWakeQuestProp;
29
+ export declare const GW_TALLY_GROVE: LanternWakeQuestProp;
30
+ export declare const GW_TALLY_MIRE: LanternWakeQuestProp;
31
+ export declare const GATEWARDEN_TALLY_PROPS: readonly LanternWakeQuestProp[];
32
+ /** What the game calls each page (hover name, guide). */
33
+ export declare const GATEWARDEN_PROP_NAMES: Readonly<Record<string, string>>;
34
+ /** The model a tally page draws with, or null if the prop is not one of them. */
35
+ export declare function gatewardenPropModel(prop: string): string | null;
36
+ //# sourceMappingURL=gatewardenRounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewardenRounds.d.ts","sourceRoot":"","sources":["../src/gatewardenRounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAEhE,wGAAwG;AACxG,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,eAAe,wBAAwB,CAAC;AACrD,eAAO,MAAM,eAAe;;;CAA8B,CAAC;AAE3D,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,iHAAiH;AACjH,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,oBAAgG,CAAC;AAC9H,eAAO,MAAM,cAAc,EAAE,oBAAgG,CAAC;AAC9H,eAAO,MAAM,aAAa,EAAE,oBAA6F,CAAC;AAE1H,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,EAAoD,CAAC;AAEvH,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlE,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D"}
@@ -0,0 +1,31 @@
1
+ export const GATEWARDEN_ROUNDS_ID = 'gatewardenRounds';
2
+ export const GATEWARDEN_ROUNDS_NAME = "The Gatewarden's Rounds";
3
+ /** The warden, outside the Dreadwoods east gate (the gate is at x 687, z 666) on the Calverton road. */
4
+ export const GATEWARDEN_KIND = 'gatewarden';
5
+ export const GATEWARDEN_NAME = 'Gatewarden Brannock';
6
+ export const GATEWARDEN_SPOT = { x: 693, z: 669 };
7
+ /** The combat level the warden asks for (the lairs run 22-35). */
8
+ export const GATEWARDEN_ROUNDS_COMBAT = 22;
9
+ /** The tally pages (questprop entities, style `<prop>:<lair>`). One per boss lair, nailed up beside the boss. */
10
+ export const GW_PROP = {
11
+ crypt: 'gwcrypt',
12
+ grove: 'gwgrove',
13
+ mire: 'gwmire',
14
+ };
15
+ export const GW_TALLY_CRYPT = { id: 'gw-tally-crypt', x: 318, z: 635, style: `${GW_PROP.crypt}:crypt` };
16
+ export const GW_TALLY_GROVE = { id: 'gw-tally-grove', x: 326, z: 380, style: `${GW_PROP.grove}:grove` };
17
+ export const GW_TALLY_MIRE = { id: 'gw-tally-mire', x: 595, z: 521, style: `${GW_PROP.mire}:mire` };
18
+ export const GATEWARDEN_TALLY_PROPS = [GW_TALLY_CRYPT, GW_TALLY_GROVE, GW_TALLY_MIRE];
19
+ /** What the game calls each page (hover name, guide). */
20
+ export const GATEWARDEN_PROP_NAMES = {
21
+ [GW_TALLY_CRYPT.style]: "Gatewarden's Tally Page (Crypt Grounds)",
22
+ [GW_TALLY_GROVE.style]: "Gatewarden's Tally Page (Rotwood Grove)",
23
+ [GW_TALLY_MIRE.style]: "Gatewarden's Tally Page (Blood Mire)",
24
+ };
25
+ /** The model a tally page draws with, or null if the prop is not one of them. */
26
+ export function gatewardenPropModel(prop) {
27
+ if (prop === GW_PROP.crypt || prop === GW_PROP.grove || prop === GW_PROP.mire)
28
+ return 'questdiarypage';
29
+ return null;
30
+ }
31
+ //# sourceMappingURL=gatewardenRounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatewardenRounds.js","sourceRoot":"","sources":["../src/gatewardenRounds.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAEhE,wGAAwG;AACxG,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAW,CAAC;AAE3D,kEAAkE;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,iHAAiH;AACjH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAyB,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;AAC9H,MAAM,CAAC,MAAM,cAAc,GAAyB,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;AAC9H,MAAM,CAAC,MAAM,aAAa,GAAyB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;AAE1H,MAAM,CAAC,MAAM,sBAAsB,GAAoC,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAEvH,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,yCAAyC;IACjE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,yCAAyC;IACjE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,sCAAsC;CAC9D,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,gBAAgB,CAAC;IACvG,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -73,6 +73,7 @@ export * from './charcoal.js';
73
73
  export * from './dragonfire.js';
74
74
  export * from './hoardChest.js';
75
75
  export * from './worldBossRing.js';
76
+ export * from './explorerLedger.js';
76
77
  export * from './bearFloes.js';
77
78
  export * from './potionMaking.js';
78
79
  export * from './animation.js';
@@ -116,6 +117,7 @@ export * from './brindlecross.js';
116
117
  export * from './brindlecrossFolk.js';
117
118
  export * from './brindlecrossQuest.js';
118
119
  export * from './brindlecrossWildlife.js';
120
+ export * from './gatewardenRounds.js';
119
121
  export * from './lanternWakeTown.js';
120
122
  export * from './lanternWakeGallery.js';
121
123
  export * from './lanternWakeWildlife.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -73,6 +73,7 @@ export * from './charcoal.js';
73
73
  export * from './dragonfire.js';
74
74
  export * from './hoardChest.js';
75
75
  export * from './worldBossRing.js';
76
+ export * from './explorerLedger.js';
76
77
  export * from './bearFloes.js';
77
78
  export * from './potionMaking.js';
78
79
  export * from './animation.js';
@@ -116,6 +117,7 @@ export * from './brindlecross.js';
116
117
  export * from './brindlecrossFolk.js';
117
118
  export * from './brindlecrossQuest.js';
118
119
  export * from './brindlecrossWildlife.js';
120
+ export * from './gatewardenRounds.js';
119
121
  export * from './lanternWakeTown.js';
120
122
  export * from './lanternWakeGallery.js';
121
123
  export * from './lanternWakeWildlife.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { EmoteKind } from './emotes.js';
2
+ import type { LedgerSnapshot } from './explorerLedger.js';
2
3
  import type { WardId } from './wards.js';
3
4
  import type { AquariumHabitat, AquariumState, AquariumXp } from './aquarium.js';
4
5
  import type { ChunkCoord, ChunkData, NpcKind, WorldEntity } from './constants.js';
@@ -616,6 +617,10 @@ export type ClientMessage = {
616
617
  } | {
617
618
  type: 'identify';
618
619
  kind: string;
620
+ }
621
+ /** Ask for the Explorer's Ledger again (the book was opened, or the client lost it). */
622
+ | {
623
+ type: 'ledger_request';
619
624
  } | {
620
625
  type: 'fish_start';
621
626
  /**
@@ -1269,6 +1274,11 @@ export type ServerMessage = {
1269
1274
  hour: number;
1270
1275
  done: string[];
1271
1276
  }
1277
+ /** The Explorer's Ledger (explorerLedger.ts): the lines earned and the achievements they unlock. At join and after any change. */
1278
+ | {
1279
+ type: 'ledger';
1280
+ ledger: LedgerSnapshot;
1281
+ }
1272
1282
  /** The Great Aquarium (aquarium.ts): this character's collection, at join and after every donation. */
1273
1283
  | {
1274
1284
  type: 'aquarium';