ultimatedarktower 3.0.0 → 4.0.0

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +28 -15
  3. package/dist/esm/index.mjs +1039 -45
  4. package/dist/src/UltimateDarkTower.d.ts +42 -0
  5. package/dist/src/UltimateDarkTower.js +102 -2
  6. package/dist/src/UltimateDarkTower.js.map +1 -1
  7. package/dist/src/adapters/NodeBluetoothAdapter.js +9 -5
  8. package/dist/src/adapters/NodeBluetoothAdapter.js.map +1 -1
  9. package/dist/src/adapters/WebBluetoothAdapter.js +11 -8
  10. package/dist/src/adapters/WebBluetoothAdapter.js.map +1 -1
  11. package/dist/src/index.d.ts +8 -0
  12. package/dist/src/index.js +34 -1
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/sinks/IndexedDBSink.d.ts +26 -0
  15. package/dist/src/sinks/IndexedDBSink.js +165 -0
  16. package/dist/src/sinks/IndexedDBSink.js.map +1 -0
  17. package/dist/src/udtBleConnection.d.ts +24 -1
  18. package/dist/src/udtBleConnection.js +68 -2
  19. package/dist/src/udtBleConnection.js.map +1 -1
  20. package/dist/src/udtBluetoothAdapter.d.ts +6 -6
  21. package/dist/src/udtBluetoothAdapter.js.map +1 -1
  22. package/dist/src/udtCommandQueue.d.ts +4 -1
  23. package/dist/src/udtCommandQueue.js +26 -2
  24. package/dist/src/udtCommandQueue.js.map +1 -1
  25. package/dist/src/udtConstants.d.ts +2 -0
  26. package/dist/src/udtConstants.js +2 -0
  27. package/dist/src/udtConstants.js.map +1 -1
  28. package/dist/src/udtDiagnostics.d.ts +122 -0
  29. package/dist/src/udtDiagnostics.js +228 -0
  30. package/dist/src/udtDiagnostics.js.map +1 -0
  31. package/dist/src/udtGameBoard.d.ts +38 -0
  32. package/dist/src/udtGameBoard.js +86 -0
  33. package/dist/src/udtGameBoard.js.map +1 -0
  34. package/dist/src/udtLogger.d.ts +15 -0
  35. package/dist/src/udtLogger.js +17 -0
  36. package/dist/src/udtLogger.js.map +1 -1
  37. package/dist/src/udtSeedParser.d.ts +124 -0
  38. package/dist/src/udtSeedParser.js +369 -0
  39. package/dist/src/udtSeedParser.js.map +1 -0
  40. package/dist/src/udtSystemRandom.d.ts +58 -0
  41. package/dist/src/udtSystemRandom.js +154 -0
  42. package/dist/src/udtSystemRandom.js.map +1 -0
  43. package/dist/src/udtTowerCommands.d.ts +2 -0
  44. package/dist/src/udtTowerCommands.js +7 -29
  45. package/dist/src/udtTowerCommands.js.map +1 -1
  46. package/package.json +5 -1
@@ -3,6 +3,15 @@ export type LogLevel = 'all' | 'debug' | 'info' | 'warn' | 'error';
3
3
  export interface LogOutput {
4
4
  write(level: LogLevel, message: string, timestamp: Date): void;
5
5
  }
6
+ /**
7
+ * Subset of UdtDiagnosticsRecorder used by the logger to forward warn/error
8
+ * messages into the diagnostics ring buffer. Declared structurally to avoid
9
+ * a cyclic import.
10
+ */
11
+ export interface DiagnosticsLogTarget {
12
+ enabled: boolean;
13
+ recordLog(level: LogLevel, message: string, context?: string): void;
14
+ }
6
15
  export declare class ConsoleOutput implements LogOutput {
7
16
  write(level: LogLevel, message: string): void;
8
17
  }
@@ -43,7 +52,13 @@ export declare class Logger {
43
52
  private outputs;
44
53
  private enabledLevels;
45
54
  private static instance;
55
+ private diagnosticsTarget;
46
56
  constructor();
57
+ /**
58
+ * Bridge warn/error log lines into a diagnostics recorder so they appear
59
+ * in the disconnect incident ring buffer in correct chronological order.
60
+ */
61
+ setDiagnosticsTarget(target: DiagnosticsLogTarget | null): void;
47
62
  static getInstance(): Logger;
48
63
  addOutput(output: LogOutput): void;
49
64
  clearOutputs(): void;
@@ -193,9 +193,17 @@ class Logger {
193
193
  constructor() {
194
194
  this.outputs = [];
195
195
  this.enabledLevels = new Set(['all']);
196
+ this.diagnosticsTarget = null;
196
197
  // Default to console output
197
198
  this.outputs.push(new ConsoleOutput());
198
199
  }
200
+ /**
201
+ * Bridge warn/error log lines into a diagnostics recorder so they appear
202
+ * in the disconnect incident ring buffer in correct chronological order.
203
+ */
204
+ setDiagnosticsTarget(target) {
205
+ this.diagnosticsTarget = target;
206
+ }
199
207
  static getInstance() {
200
208
  if (!Logger.instance) {
201
209
  Logger.instance = new Logger();
@@ -245,6 +253,7 @@ class Logger {
245
253
  return false;
246
254
  }
247
255
  log(level, message, context) {
256
+ var _a;
248
257
  if (!this.shouldLog(level))
249
258
  return;
250
259
  const contextPrefix = context ? `${context} ` : '';
@@ -258,6 +267,14 @@ class Logger {
258
267
  console.error('Logger output error:', error);
259
268
  }
260
269
  });
270
+ if ((level === 'warn' || level === 'error') && ((_a = this.diagnosticsTarget) === null || _a === void 0 ? void 0 : _a.enabled)) {
271
+ try {
272
+ this.diagnosticsTarget.recordLog(level, message, context);
273
+ }
274
+ catch (error) {
275
+ console.error('Diagnostics log bridge error:', error);
276
+ }
277
+ }
261
278
  }
262
279
  debug(message, context) {
263
280
  this.log('debug', message, context);
@@ -1 +1 @@
1
- {"version":3,"file":"udtLogger.js","sourceRoot":"","sources":["../../src/udtLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"udtLogger.js","sourceRoot":"","sources":["../../src/udtLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * udtSeedParser.ts — Encode and decode Return to Dark Tower game seeds.
3
+ *
4
+ * Seeds are 12-character base-34 strings formatted as XXXX-XXXX-XXXX.
5
+ * The alphabet uses 34 characters (excludes '0' and 'o' — visually identical in the game font).
6
+ *
7
+ * Structure:
8
+ * chars 0–5: Setup section — bitwise-encoded game configuration
9
+ * chars 6–11: RNG seed section — base-34 little-endian polynomial
10
+ *
11
+ * Ported from the official C# SeedParser implementation.
12
+ */
13
+ export type Tier1Foe = 'Brigands' | 'Oreks' | 'Shadow Wolves' | 'Spine Fiends';
14
+ export type Tier2Foe = 'Frost Trolls' | 'Clan of Neuri' | 'Lemures' | 'Widowmade Spiders';
15
+ export type Tier3Foe = 'Dragons' | 'Mormos' | 'Striga' | 'Titans';
16
+ export type Adversary = 'Ashstrider' | 'Bane of Omens' | 'Empress of Shades' | 'Gaze Eternal' | 'Gravemaw' | 'Isa the Exile' | 'Lingering Rot' | "Utuk'Ku";
17
+ export type Ally = 'Gleb' | 'Grigor' | 'Hakan' | 'Letha' | 'Miras' | 'Nimet' | 'Tomas' | 'Vasa' | 'Yana' | 'Zaida';
18
+ export type Difficulty = 'Heroic' | 'Gritty';
19
+ export type GameSource = 'Core' | 'Competitive';
20
+ export type ExpansionType = 'Alliances' | 'Monuments';
21
+ export type Confidence = 'confirmed' | 'suspected' | 'unknown';
22
+ export declare const TIER1_FOES: readonly Tier1Foe[];
23
+ export declare const TIER2_FOES: readonly Tier2Foe[];
24
+ export declare const TIER3_FOES: readonly Tier3Foe[];
25
+ export declare const ADVERSARIES: readonly Adversary[];
26
+ export declare const ALLIES: readonly Ally[];
27
+ export declare const DIFFICULTIES: readonly Difficulty[];
28
+ export declare const GAME_SOURCES: readonly GameSource[];
29
+ export interface SeedBank {
30
+ initializationSeed: number;
31
+ questSeed: number;
32
+ seedString: string;
33
+ }
34
+ export interface DecodedSeed {
35
+ /** Normalized seed string (XXXX-XXXX-XXXX, uppercase). */
36
+ seed: string;
37
+ tier1Foe: Tier1Foe;
38
+ tier2Foe: Tier2Foe;
39
+ tier3Foe: Tier3Foe;
40
+ adversary: Adversary;
41
+ ally: Ally;
42
+ difficulty: Difficulty;
43
+ source: GameSource;
44
+ expansions: ExpansionType[];
45
+ /** Player count (1–4). */
46
+ playerCount: number;
47
+ /** RNG seed integer (base-34 polynomial from chars 6–11). */
48
+ rngSeed: number;
49
+ seedBank: SeedBank;
50
+ /** Raw setup character values [0–5] for inspection. */
51
+ setup: number[];
52
+ }
53
+ export interface SeedConfig {
54
+ source: GameSource;
55
+ playerCount: number;
56
+ adversary: Adversary;
57
+ ally: Ally;
58
+ difficulty: Difficulty;
59
+ foes: [Tier1Foe, Tier2Foe, Tier3Foe];
60
+ expansions: ExpansionType[];
61
+ }
62
+ export interface CharDiff {
63
+ charIndex: number;
64
+ value1: number;
65
+ value2: number;
66
+ char1: string;
67
+ char2: string;
68
+ }
69
+ export interface SeedComparison {
70
+ seed1: string;
71
+ seed2: string;
72
+ diffs: CharDiff[];
73
+ setupDiffs: CharDiff[];
74
+ rngDiffs: CharDiff[];
75
+ }
76
+ export interface CharInfo {
77
+ index: number;
78
+ char: string;
79
+ value: number;
80
+ section: 'setup' | 'rng';
81
+ field?: string;
82
+ }
83
+ export interface CharDump {
84
+ seed: string;
85
+ chars: CharInfo[];
86
+ }
87
+ export declare function charToValue(c: string): number;
88
+ export declare function valueToChar(v: number): string;
89
+ /**
90
+ * Normalize and validate a seed string.
91
+ * Accepts with or without dashes, case-insensitive.
92
+ * Returns the normalized XXXX-XXXX-XXXX form (uppercase).
93
+ */
94
+ export declare function validateSeed(seed: string): string;
95
+ /**
96
+ * Decode a seed string into its component fields.
97
+ * Matches the C# ConvertSeedToGame implementation exactly.
98
+ */
99
+ export declare function decodeSeed(seed: string): DecodedSeed;
100
+ /**
101
+ * Extract just the RNG seed integer from a seed string.
102
+ */
103
+ export declare function decodeRngSeed(seed: string): number;
104
+ /**
105
+ * Encode a game configuration into a seed string.
106
+ * Matches the C# CreateSeed implementation.
107
+ * The RNG portion (chars 6–11) is randomly generated.
108
+ */
109
+ export declare function createSeed(config: SeedConfig): {
110
+ seed: string;
111
+ rngValue: number;
112
+ };
113
+ /**
114
+ * Encode a game configuration with a specific RNG value (deterministic).
115
+ */
116
+ export declare function encodeSeed(config: SeedConfig, rngValue: number): string;
117
+ /**
118
+ * Compare two seeds at the character level.
119
+ */
120
+ export declare function compareSeedsRaw(seed1: string, seed2: string): SeedComparison;
121
+ /**
122
+ * Dump all characters of a seed with section and field labels.
123
+ */
124
+ export declare function dumpSeedChars(seed: string): CharDump;
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ /**
3
+ * udtSeedParser.ts — Encode and decode Return to Dark Tower game seeds.
4
+ *
5
+ * Seeds are 12-character base-34 strings formatted as XXXX-XXXX-XXXX.
6
+ * The alphabet uses 34 characters (excludes '0' and 'o' — visually identical in the game font).
7
+ *
8
+ * Structure:
9
+ * chars 0–5: Setup section — bitwise-encoded game configuration
10
+ * chars 6–11: RNG seed section — base-34 little-endian polynomial
11
+ *
12
+ * Ported from the official C# SeedParser implementation.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.GAME_SOURCES = exports.DIFFICULTIES = exports.ALLIES = exports.ADVERSARIES = exports.TIER3_FOES = exports.TIER2_FOES = exports.TIER1_FOES = void 0;
16
+ exports.charToValue = charToValue;
17
+ exports.valueToChar = valueToChar;
18
+ exports.validateSeed = validateSeed;
19
+ exports.decodeSeed = decodeSeed;
20
+ exports.decodeRngSeed = decodeRngSeed;
21
+ exports.createSeed = createSeed;
22
+ exports.encodeSeed = encodeSeed;
23
+ exports.compareSeedsRaw = compareSeedsRaw;
24
+ exports.dumpSeedChars = dumpSeedChars;
25
+ // ── Base-34 Alphabet ───────────────────────────────────────────────────────
26
+ const ALPHABET = 'a123456789bcdefghijklmnpqrstuvwxyz';
27
+ const BASE = 34;
28
+ const SETUP_LENGTH = 6;
29
+ const RNG_SEED_LENGTH = 6;
30
+ const SEED_LENGTH = SETUP_LENGTH + RNG_SEED_LENGTH; // 12
31
+ // Build lookup maps
32
+ const CHAR_TO_VALUE = new Map();
33
+ const VALUE_TO_CHAR = new Map();
34
+ for (let i = 0; i < ALPHABET.length; i++) {
35
+ CHAR_TO_VALUE.set(ALPHABET[i], i);
36
+ VALUE_TO_CHAR.set(i, ALPHABET[i]);
37
+ }
38
+ // ── Lookup Arrays (index = encoded value) ──────────────────────────────────
39
+ exports.TIER1_FOES = ['Brigands', 'Oreks', 'Shadow Wolves', 'Spine Fiends'];
40
+ exports.TIER2_FOES = ['Frost Trolls', 'Clan of Neuri', 'Lemures', 'Widowmade Spiders'];
41
+ exports.TIER3_FOES = ['Dragons', 'Mormos', 'Striga', 'Titans'];
42
+ exports.ADVERSARIES = [
43
+ 'Ashstrider',
44
+ 'Bane of Omens',
45
+ 'Empress of Shades',
46
+ 'Gaze Eternal',
47
+ 'Gravemaw',
48
+ 'Isa the Exile',
49
+ 'Lingering Rot',
50
+ "Utuk'Ku",
51
+ ];
52
+ exports.ALLIES = [
53
+ 'Gleb', 'Grigor', 'Hakan', 'Letha', 'Miras',
54
+ 'Nimet', 'Tomas', 'Vasa', 'Yana', 'Zaida',
55
+ ];
56
+ exports.DIFFICULTIES = ['Heroic', 'Gritty'];
57
+ exports.GAME_SOURCES = ['Core', 'Competitive'];
58
+ // ── Character Conversion ───────────────────────────────────────────────────
59
+ function charToValue(c) {
60
+ const v = CHAR_TO_VALUE.get(c.toLowerCase());
61
+ if (v === undefined) {
62
+ throw new Error(`Invalid seed character: '${c}'`);
63
+ }
64
+ return v;
65
+ }
66
+ function valueToChar(v) {
67
+ const c = VALUE_TO_CHAR.get(v);
68
+ if (c === undefined) {
69
+ throw new Error(`Invalid seed value: ${v} (must be 0–${BASE - 1})`);
70
+ }
71
+ return c;
72
+ }
73
+ // ── Seed Validation ────────────────────────────────────────────────────────
74
+ /**
75
+ * Normalize and validate a seed string.
76
+ * Accepts with or without dashes, case-insensitive.
77
+ * Returns the normalized XXXX-XXXX-XXXX form (uppercase).
78
+ */
79
+ function validateSeed(seed) {
80
+ const stripped = seed.replace(/[-\s]/g, '').toLowerCase();
81
+ if (stripped.length !== SEED_LENGTH) {
82
+ throw new Error(`Invalid seed length: expected ${SEED_LENGTH} characters, got ${stripped.length}`);
83
+ }
84
+ for (const c of stripped) {
85
+ if (!CHAR_TO_VALUE.has(c)) {
86
+ throw new Error(`Invalid seed character: '${c}'`);
87
+ }
88
+ }
89
+ const upper = stripped.toUpperCase();
90
+ return `${upper.slice(0, 4)}-${upper.slice(4, 8)}-${upper.slice(8, 12)}`;
91
+ }
92
+ // ── Seed Decoding ──────────────────────────────────────────────────────────
93
+ /**
94
+ * Decode a seed string into its component fields.
95
+ * Matches the C# ConvertSeedToGame implementation exactly.
96
+ */
97
+ function decodeSeed(seed) {
98
+ const normalized = validateSeed(seed);
99
+ const stripped = normalized.replace(/-/g, '').toLowerCase();
100
+ // Decode setup section (chars 0–5)
101
+ const setup = [];
102
+ for (let i = 0; i < SETUP_LENGTH; i++) {
103
+ setup.push(charToValue(stripped[i]));
104
+ }
105
+ // Decode RNG section (chars 6–11) — base-34 little-endian polynomial
106
+ let rngSeed = 0;
107
+ for (let i = 0; i < RNG_SEED_LENGTH; i++) {
108
+ const value = charToValue(stripped[SETUP_LENGTH + i]);
109
+ rngSeed += value * Math.round(Math.pow(BASE, i));
110
+ }
111
+ // setup[0] = foeByteA: bits 0–1 = Tier 1, bits 2–3 = Tier 2, bit 4 = Tier 3 low bit
112
+ const foeByteA = setup[0];
113
+ const tier1 = foeByteA & 0b00011;
114
+ const tier2 = (foeByteA & 0b01100) >> 2;
115
+ // setup[1] = foeByteB: bits 0–3 = Adversary, bit 4 = Tier 3 high bit
116
+ const foeByteB = setup[1];
117
+ const tier3 = ((foeByteA & 0b10000) >> 4) | ((foeByteB & 0b10000) >> 3);
118
+ const adversaryIndex = foeByteB & 0b01111;
119
+ // setup[2] = allyByte
120
+ const allyIndex = setup[2];
121
+ // setup[3] = extraByte: bit 0 = Difficulty, bits 1–2 = Expansions, bit 3 = Source
122
+ const extra = setup[3];
123
+ const difficultyIndex = extra & 0b00001;
124
+ const expansionBits = (extra & 0b00110) >> 1;
125
+ const sourceBits = (extra & 0b01000) >> 2; // intentionally >> 2, not >> 3 (matches C#)
126
+ // setup[4] = versionByte (always 0, reserved)
127
+ // setup[5] = ancillaryByte: bits 0–1 = Player count
128
+ const playerCount = (setup[5] & 0b00011) + 1;
129
+ // Decode expansions
130
+ const expansions = [];
131
+ if (expansionBits & 0b01)
132
+ expansions.push('Monuments');
133
+ if (expansionBits & 0b10)
134
+ expansions.push('Alliances');
135
+ // Decode source — C# switch: 0b00 = Core, 0b10 = Competitive
136
+ let source;
137
+ switch (sourceBits) {
138
+ case 0b10:
139
+ source = 'Competitive';
140
+ break;
141
+ default:
142
+ source = 'Core';
143
+ break;
144
+ }
145
+ const seedBank = {
146
+ initializationSeed: rngSeed,
147
+ questSeed: rngSeed - 1,
148
+ seedString: normalized,
149
+ };
150
+ return {
151
+ seed: normalized,
152
+ tier1Foe: exports.TIER1_FOES[tier1],
153
+ tier2Foe: exports.TIER2_FOES[tier2],
154
+ tier3Foe: exports.TIER3_FOES[tier3],
155
+ adversary: exports.ADVERSARIES[adversaryIndex],
156
+ ally: exports.ALLIES[allyIndex],
157
+ difficulty: exports.DIFFICULTIES[difficultyIndex],
158
+ source,
159
+ expansions,
160
+ playerCount,
161
+ rngSeed,
162
+ seedBank,
163
+ setup,
164
+ };
165
+ }
166
+ /**
167
+ * Extract just the RNG seed integer from a seed string.
168
+ */
169
+ function decodeRngSeed(seed) {
170
+ const normalized = validateSeed(seed);
171
+ const stripped = normalized.replace(/-/g, '').toLowerCase();
172
+ let rngSeed = 0;
173
+ for (let i = 0; i < RNG_SEED_LENGTH; i++) {
174
+ const value = charToValue(stripped[SETUP_LENGTH + i]);
175
+ rngSeed += value * Math.round(Math.pow(BASE, i));
176
+ }
177
+ return rngSeed;
178
+ }
179
+ // ── Seed Encoding ──────────────────────────────────────────────────────────
180
+ /**
181
+ * Encode a game configuration into a seed string.
182
+ * Matches the C# CreateSeed implementation.
183
+ * The RNG portion (chars 6–11) is randomly generated.
184
+ */
185
+ function createSeed(config) {
186
+ // Encode foes into foeByteA and foeByteB
187
+ let foeByteA = 0;
188
+ let foeByteB = 0;
189
+ const tier1Index = exports.TIER1_FOES.indexOf(config.foes[0]);
190
+ const tier2Index = exports.TIER2_FOES.indexOf(config.foes[1]);
191
+ const tier3Index = exports.TIER3_FOES.indexOf(config.foes[2]);
192
+ if (tier1Index < 0)
193
+ throw new Error(`Invalid Tier 1 foe: ${config.foes[0]}`);
194
+ if (tier2Index < 0)
195
+ throw new Error(`Invalid Tier 2 foe: ${config.foes[1]}`);
196
+ if (tier3Index < 0)
197
+ throw new Error(`Invalid Tier 3 foe: ${config.foes[2]}`);
198
+ foeByteA = tier1Index & 0b00011;
199
+ foeByteA |= (tier2Index & 0b00011) << 2;
200
+ // Tier 3 split: low bit → foeByteA bit 4, high bit → foeByteB bit 4
201
+ foeByteA |= (tier3Index & 0b01) << 4;
202
+ foeByteB |= ((tier3Index >> 1) & 0b01) << 4;
203
+ // Encode adversary into foeByteB bits 0–3
204
+ const adversaryIndex = exports.ADVERSARIES.indexOf(config.adversary);
205
+ if (adversaryIndex < 0)
206
+ throw new Error(`Invalid adversary: ${config.adversary}`);
207
+ foeByteB |= adversaryIndex & 0b01111;
208
+ // Encode ally
209
+ const allyIndex = exports.ALLIES.indexOf(config.ally);
210
+ if (allyIndex < 0)
211
+ throw new Error(`Invalid ally: ${config.ally}`);
212
+ // Encode extra byte: bit 0 = difficulty, bits 1–2 = expansions, bit 3 = source
213
+ let extraByte = 0;
214
+ if (config.difficulty === 'Gritty')
215
+ extraByte |= 0b00001;
216
+ for (const expansion of config.expansions) {
217
+ switch (expansion) {
218
+ case 'Monuments':
219
+ extraByte |= 0b00010;
220
+ break;
221
+ case 'Alliances':
222
+ extraByte |= 0b00100;
223
+ break;
224
+ }
225
+ }
226
+ if (config.source === 'Competitive')
227
+ extraByte |= 0b01000;
228
+ // Version byte (always 0)
229
+ const versionByte = 0;
230
+ // Player count
231
+ const playerCountByte = Math.max(0, Math.min(3, config.playerCount - 1));
232
+ // Build setup string
233
+ let seedStr = valueToChar(foeByteA) +
234
+ valueToChar(foeByteB) +
235
+ valueToChar(allyIndex) +
236
+ valueToChar(extraByte) +
237
+ valueToChar(versionByte) +
238
+ valueToChar(playerCountByte);
239
+ // Generate random RNG portion
240
+ let rngValue = 0;
241
+ for (let i = 0; i < RNG_SEED_LENGTH; i++) {
242
+ const value = Math.floor(Math.random() * BASE);
243
+ seedStr += valueToChar(value);
244
+ rngValue += value * Math.round(Math.pow(BASE, i));
245
+ }
246
+ const upper = seedStr.toUpperCase();
247
+ const formatted = `${upper.slice(0, 4)}-${upper.slice(4, 8)}-${upper.slice(8, 12)}`;
248
+ return { seed: formatted, rngValue };
249
+ }
250
+ /**
251
+ * Encode a game configuration with a specific RNG value (deterministic).
252
+ */
253
+ function encodeSeed(config, rngValue) {
254
+ // Encode setup portion (same as createSeed)
255
+ let foeByteA = 0;
256
+ let foeByteB = 0;
257
+ const tier1Index = exports.TIER1_FOES.indexOf(config.foes[0]);
258
+ const tier2Index = exports.TIER2_FOES.indexOf(config.foes[1]);
259
+ const tier3Index = exports.TIER3_FOES.indexOf(config.foes[2]);
260
+ if (tier1Index < 0)
261
+ throw new Error(`Invalid Tier 1 foe: ${config.foes[0]}`);
262
+ if (tier2Index < 0)
263
+ throw new Error(`Invalid Tier 2 foe: ${config.foes[1]}`);
264
+ if (tier3Index < 0)
265
+ throw new Error(`Invalid Tier 3 foe: ${config.foes[2]}`);
266
+ foeByteA = tier1Index & 0b00011;
267
+ foeByteA |= (tier2Index & 0b00011) << 2;
268
+ foeByteA |= (tier3Index & 0b01) << 4;
269
+ foeByteB |= ((tier3Index >> 1) & 0b01) << 4;
270
+ const adversaryIndex = exports.ADVERSARIES.indexOf(config.adversary);
271
+ if (adversaryIndex < 0)
272
+ throw new Error(`Invalid adversary: ${config.adversary}`);
273
+ foeByteB |= adversaryIndex & 0b01111;
274
+ const allyIndex = exports.ALLIES.indexOf(config.ally);
275
+ if (allyIndex < 0)
276
+ throw new Error(`Invalid ally: ${config.ally}`);
277
+ let extraByte = 0;
278
+ if (config.difficulty === 'Gritty')
279
+ extraByte |= 0b00001;
280
+ for (const expansion of config.expansions) {
281
+ switch (expansion) {
282
+ case 'Monuments':
283
+ extraByte |= 0b00010;
284
+ break;
285
+ case 'Alliances':
286
+ extraByte |= 0b00100;
287
+ break;
288
+ }
289
+ }
290
+ if (config.source === 'Competitive')
291
+ extraByte |= 0b01000;
292
+ const versionByte = 0;
293
+ const playerCountByte = Math.max(0, Math.min(3, config.playerCount - 1));
294
+ let seedStr = valueToChar(foeByteA) +
295
+ valueToChar(foeByteB) +
296
+ valueToChar(allyIndex) +
297
+ valueToChar(extraByte) +
298
+ valueToChar(versionByte) +
299
+ valueToChar(playerCountByte);
300
+ // Encode RNG value as base-34 little-endian
301
+ let remaining = rngValue;
302
+ for (let i = 0; i < RNG_SEED_LENGTH; i++) {
303
+ const digit = remaining % BASE;
304
+ seedStr += valueToChar(digit);
305
+ remaining = Math.floor(remaining / BASE);
306
+ }
307
+ const upper = seedStr.toUpperCase();
308
+ return `${upper.slice(0, 4)}-${upper.slice(4, 8)}-${upper.slice(8, 12)}`;
309
+ }
310
+ // ── Seed Comparison ────────────────────────────────────────────────────────
311
+ /**
312
+ * Compare two seeds at the character level.
313
+ */
314
+ function compareSeedsRaw(seed1, seed2) {
315
+ const n1 = validateSeed(seed1);
316
+ const n2 = validateSeed(seed2);
317
+ const s1 = n1.replace(/-/g, '').toLowerCase();
318
+ const s2 = n2.replace(/-/g, '').toLowerCase();
319
+ const diffs = [];
320
+ for (let i = 0; i < SEED_LENGTH; i++) {
321
+ const v1 = charToValue(s1[i]);
322
+ const v2 = charToValue(s2[i]);
323
+ if (v1 !== v2) {
324
+ diffs.push({
325
+ charIndex: i,
326
+ value1: v1,
327
+ value2: v2,
328
+ char1: s1[i],
329
+ char2: s2[i],
330
+ });
331
+ }
332
+ }
333
+ return {
334
+ seed1: n1,
335
+ seed2: n2,
336
+ diffs,
337
+ setupDiffs: diffs.filter((d) => d.charIndex < SETUP_LENGTH),
338
+ rngDiffs: diffs.filter((d) => d.charIndex >= SETUP_LENGTH),
339
+ };
340
+ }
341
+ // ── Seed Dump ──────────────────────────────────────────────────────────────
342
+ const SETUP_FIELD_LABELS = {
343
+ 0: 'Tier1/Tier2/Tier3lo',
344
+ 1: 'Adversary/Tier3hi',
345
+ 2: 'Ally',
346
+ 3: 'Difficulty/Expansions/Source',
347
+ 4: 'Version',
348
+ 5: 'PlayerCount',
349
+ };
350
+ /**
351
+ * Dump all characters of a seed with section and field labels.
352
+ */
353
+ function dumpSeedChars(seed) {
354
+ const normalized = validateSeed(seed);
355
+ const stripped = normalized.replace(/-/g, '').toLowerCase();
356
+ const chars = [];
357
+ for (let i = 0; i < SEED_LENGTH; i++) {
358
+ const isSetup = i < SETUP_LENGTH;
359
+ chars.push({
360
+ index: i,
361
+ char: stripped[i],
362
+ value: charToValue(stripped[i]),
363
+ section: isSetup ? 'setup' : 'rng',
364
+ field: isSetup ? SETUP_FIELD_LABELS[i] : undefined,
365
+ });
366
+ }
367
+ return { seed: normalized, chars };
368
+ }
369
+ //# sourceMappingURL=udtSeedParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udtSeedParser.js","sourceRoot":"","sources":["../../src/udtSeedParser.ts"],"names":[],"mappings":"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"}