@kbve/laser 0.0.8 → 0.1.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 (69) hide show
  1. package/README.md +40 -10
  2. package/laser.es.js +376 -0
  3. package/package.json +54 -24
  4. package/src/index.d.ts +0 -19
  5. package/src/index.js +0 -37
  6. package/src/index.js.map +0 -1
  7. package/src/lib/animations/TypewriterComponent.d.ts +0 -8
  8. package/src/lib/animations/TypewriterComponent.js +0 -53
  9. package/src/lib/animations/TypewriterComponent.js.map +0 -1
  10. package/src/lib/constants.d.ts +0 -2
  11. package/src/lib/constants.js +0 -6
  12. package/src/lib/constants.js.map +0 -1
  13. package/src/lib/eventhandler.d.ts +0 -31
  14. package/src/lib/eventhandler.js +0 -45
  15. package/src/lib/eventhandler.js.map +0 -1
  16. package/src/lib/icon/CollapseIcon.d.ts +0 -4
  17. package/src/lib/icon/CollapseIcon.js +0 -10
  18. package/src/lib/icon/CollapseIcon.js.map +0 -1
  19. package/src/lib/icon/ExpandIcon.d.ts +0 -4
  20. package/src/lib/icon/ExpandIcon.js +0 -10
  21. package/src/lib/icon/ExpandIcon.js.map +0 -1
  22. package/src/lib/laser.d.ts +0 -1
  23. package/src/lib/laser.js +0 -8
  24. package/src/lib/laser.js.map +0 -1
  25. package/src/lib/localdb.d.ts +0 -55
  26. package/src/lib/localdb.js +0 -592
  27. package/src/lib/localdb.js.map +0 -1
  28. package/src/lib/minigame/dice/MinigameDice.d.ts +0 -4
  29. package/src/lib/minigame/dice/MinigameDice.js +0 -85
  30. package/src/lib/minigame/dice/MinigameDice.js.map +0 -1
  31. package/src/lib/phaser/map/mapdatabase.d.ts +0 -1
  32. package/src/lib/phaser/map/mapdatabase.js +0 -175
  33. package/src/lib/phaser/map/mapdatabase.js.map +0 -1
  34. package/src/lib/phaser/monster/bird.d.ts +0 -7
  35. package/src/lib/phaser/monster/bird.js +0 -44
  36. package/src/lib/phaser/monster/bird.js.map +0 -1
  37. package/src/lib/phaser/npc/chatbubble.d.ts +0 -10
  38. package/src/lib/phaser/npc/chatbubble.js +0 -78
  39. package/src/lib/phaser/npc/chatbubble.js.map +0 -1
  40. package/src/lib/phaser/npc/npcdatabase.d.ts +0 -59
  41. package/src/lib/phaser/npc/npcdatabase.js +0 -550
  42. package/src/lib/phaser/npc/npcdatabase.js.map +0 -1
  43. package/src/lib/phaser/npc/npchandler.d.ts +0 -21
  44. package/src/lib/phaser/npc/npchandler.js +0 -123
  45. package/src/lib/phaser/npc/npchandler.js.map +0 -1
  46. package/src/lib/phaser/npc/tooltipmenu.d.ts +0 -17
  47. package/src/lib/phaser/npc/tooltipmenu.js +0 -68
  48. package/src/lib/phaser/npc/tooltipmenu.js.map +0 -1
  49. package/src/lib/phaser/player/playercontroller.d.ts +0 -24
  50. package/src/lib/phaser/player/playercontroller.js +0 -219
  51. package/src/lib/phaser/player/playercontroller.js.map +0 -1
  52. package/src/lib/quadtree.d.ts +0 -23
  53. package/src/lib/quadtree.js +0 -123
  54. package/src/lib/quadtree.js.map +0 -1
  55. package/src/lib/regex.d.ts +0 -1
  56. package/src/lib/regex.js +0 -6
  57. package/src/lib/regex.js.map +0 -1
  58. package/src/lib/utils/debug.d.ts +0 -8
  59. package/src/lib/utils/debug.js +0 -46
  60. package/src/lib/utils/debug.js.map +0 -1
  61. package/src/lib/utils/loader.d.ts +0 -3
  62. package/src/lib/utils/loader.js +0 -87
  63. package/src/lib/utils/loader.js.map +0 -1
  64. package/src/lib/utils/ulid.d.ts +0 -1
  65. package/src/lib/utils/ulid.js +0 -38
  66. package/src/lib/utils/ulid.js.map +0 -1
  67. package/src/types.d.ts +0 -423
  68. package/src/types.js +0 -14
  69. package/src/types.js.map +0 -1
@@ -1,550 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.npcDatabase = exports.NPCDatabase = void 0;
4
- const tslib_1 = require("tslib");
5
- const dexie_1 = tslib_1.__importDefault(require("dexie"));
6
- const axios_1 = tslib_1.__importDefault(require("axios"));
7
- const npchandler_1 = require("./npchandler");
8
- const debug_1 = require("../../utils/debug");
9
- class NPCDatabase extends dexie_1.default {
10
- constructor() {
11
- super('NPCDatabase');
12
- this.version(3).stores({
13
- npcs: 'id,name',
14
- sprites: 'id',
15
- avatars: 'id',
16
- dialogues: 'id',
17
- });
18
- this.npcs = this.table('npcs');
19
- this.sprites = this.table('sprites');
20
- this.avatars = this.table('avatars');
21
- this.dialogues = this.table('dialogues');
22
- }
23
- addNPC(npcData) {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- yield this.npcs.put(npcData);
26
- });
27
- }
28
- getNPC(id) {
29
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
- return yield this.npcs.get(id);
31
- });
32
- }
33
- getNPCByName(name) {
34
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
- return yield this.npcs.where('name').equals(name).first();
36
- });
37
- }
38
- getAllNPCs() {
39
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
- return yield this.npcs.toArray();
41
- });
42
- }
43
- exportNPCs() {
44
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
- const npcs = yield this.getAllNPCs();
46
- return JSON.stringify(npcs, null, 2);
47
- });
48
- }
49
- importNPCs(jsonData) {
50
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
- const npcArray = JSON.parse(jsonData);
52
- yield this.npcs.bulkPut(npcArray);
53
- });
54
- }
55
- fetchNPCData(url) {
56
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
- try {
58
- const response = yield axios_1.default.get(url);
59
- return response.data;
60
- }
61
- catch (error) {
62
- debug_1.Debug.error(`Failed to fetch NPC data from ${url}:`, error);
63
- return undefined;
64
- }
65
- });
66
- }
67
- addSprite(sprite) {
68
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
69
- yield this.sprites.put(sprite);
70
- });
71
- }
72
- getSprite(id) {
73
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
- return yield this.sprites.get(id);
75
- });
76
- }
77
- getAllSprites() {
78
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
- return yield this.sprites.toArray();
80
- });
81
- }
82
- addAvatar(avatar) {
83
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
84
- yield this.avatars.put(avatar);
85
- });
86
- }
87
- getAvatar(id) {
88
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
- return yield this.avatars.get(id);
90
- });
91
- }
92
- getAllAvatars() {
93
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
94
- return yield this.avatars.toArray();
95
- });
96
- }
97
- urlToBlob(url) {
98
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
99
- try {
100
- const response = yield axios_1.default.get(url, { responseType: 'blob' });
101
- return response.data;
102
- }
103
- catch (error) {
104
- debug_1.Debug.error(`Failed to fetch blob from ${url}:`, error);
105
- return undefined;
106
- }
107
- });
108
- }
109
- addNewSprite(url, spriteDetails) {
110
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
111
- const spriteBlob = yield this.urlToBlob(url);
112
- if (spriteBlob) {
113
- const newSprite = Object.assign(Object.assign({}, spriteDetails), { spriteData: spriteBlob });
114
- yield this.addSprite(newSprite);
115
- return newSprite.id;
116
- }
117
- return undefined;
118
- });
119
- }
120
- addNewNPC(npcDetails, spriteImageId, avatarImageId) {
121
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
122
- const newNPC = Object.assign(Object.assign({}, npcDetails), { spriteImageId,
123
- avatarImageId });
124
- yield this.addNPC(newNPC);
125
- });
126
- }
127
- addNewAvatar(url, avatarDetails) {
128
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
129
- const avatarBlob = yield this.urlToBlob(url);
130
- if (avatarBlob) {
131
- const newAvatar = Object.assign(Object.assign({}, avatarDetails), { avatarData: avatarBlob });
132
- yield this.addAvatar(newAvatar);
133
- return newAvatar.id;
134
- }
135
- return undefined;
136
- });
137
- }
138
- fetchAvatars(url) {
139
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
140
- try {
141
- const response = yield axios_1.default.get(url);
142
- const avatars = response.data.key;
143
- for (const key in avatars) {
144
- const avatarDetails = avatars[key];
145
- let avatarBlob = yield this.urlToBlob(avatarDetails.avatarLocation);
146
- if (!avatarBlob) {
147
- avatarBlob = yield this.urlToBlob(`https://kbve.com${avatarDetails.avatarLocation}`);
148
- }
149
- if (avatarBlob) {
150
- const newAvatar = {
151
- id: avatarDetails.id,
152
- avatarName: avatarDetails.avatarName,
153
- avatarLocation: avatarDetails.avatarLocation,
154
- avatarData: avatarBlob,
155
- slug: avatarDetails.slug,
156
- };
157
- yield this.addAvatar(newAvatar);
158
- }
159
- }
160
- }
161
- catch (error) {
162
- debug_1.Debug.error(`Failed to fetch avatars from ${url}:`, error);
163
- }
164
- });
165
- }
166
- fetchSprites(url) {
167
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
168
- try {
169
- const response = yield axios_1.default.get(url);
170
- const sprites = response.data.key;
171
- for (const key in sprites) {
172
- const spriteDetails = sprites[key];
173
- let spriteBlob = yield this.urlToBlob(spriteDetails.assetLocation);
174
- if (!spriteBlob) {
175
- spriteBlob = yield this.urlToBlob(`https://kbve.com${spriteDetails.assetLocation}`);
176
- }
177
- if (spriteBlob) {
178
- const newSprite = {
179
- id: spriteDetails.id,
180
- spriteName: spriteDetails.spriteName,
181
- assetLocation: spriteDetails.assetLocation,
182
- frameWidth: spriteDetails.frameWidth,
183
- frameHeight: spriteDetails.frameHeight,
184
- scale: spriteDetails.scale,
185
- slug: spriteDetails.slug,
186
- spriteData: spriteBlob,
187
- };
188
- yield this.addSprite(newSprite);
189
- }
190
- }
191
- }
192
- catch (error) {
193
- debug_1.Debug.error(`Failed to fetch sprites from ${url}:`, error);
194
- }
195
- });
196
- }
197
- fetchNPCs(url) {
198
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
199
- try {
200
- const response = yield axios_1.default.get(url);
201
- const npcs = response.data.key;
202
- for (const key in npcs) {
203
- const npcDetails = npcs[key];
204
- const newNPC = {
205
- id: npcDetails.id,
206
- name: npcDetails.name,
207
- spriteKey: npcDetails.spriteKey,
208
- walkingAnimationMapping: npcDetails.walkingAnimationMapping,
209
- startPosition: npcDetails.startPosition,
210
- speed: npcDetails.speed,
211
- scale: npcDetails.scale,
212
- slug: npcDetails.slug,
213
- actions: npcDetails.actions,
214
- effects: npcDetails.effects,
215
- stats: npcDetails.stats,
216
- spriteImageId: npcDetails.spriteImageId,
217
- avatarImageId: npcDetails.avatarImageId,
218
- dialogues: npcDetails.dialogues || [],
219
- };
220
- yield this.addNPC(newNPC);
221
- }
222
- }
223
- catch (error) {
224
- debug_1.Debug.error(`Failed to fetch NPCs from ${url}:`, error);
225
- }
226
- });
227
- }
228
- initializeDatabase() {
229
- return tslib_1.__awaiter(this, arguments, void 0, function* (baseURL = 'https://kbve.com') {
230
- // Fetch, add and prepare.
231
- yield this.fetchAvatars(`${baseURL}/api/avatardb.json`);
232
- yield this.fetchSprites(`${baseURL}/api/spritedb.json`);
233
- yield this.fetchNPCs(`${baseURL}/api/npcdb.json`);
234
- // TODO: Fetch dialogues from the given URL
235
- yield this.fetchDialogues(`${baseURL}/api/dialogue.json`);
236
- });
237
- }
238
- loadNPC(scene, npcName, x, y) {
239
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
240
- try {
241
- debug_1.Debug.log(`Loading NPC with name: ${npcName}`);
242
- const npcData = yield this.getNPCByName(npcName);
243
- if (!npcData) {
244
- throw new Error(`NPC with name ${npcName} not found`);
245
- }
246
- debug_1.Debug.log(`NPC Data: ${JSON.stringify(npcData)}`);
247
- yield this.loadCharacter(scene, npcData.id, x, y);
248
- }
249
- catch (error) {
250
- if (error instanceof Error) {
251
- debug_1.Debug.error(`Failed to load NPC: ${error.message}`);
252
- }
253
- else {
254
- debug_1.Debug.error('Failed to load NPC:', error);
255
- }
256
- }
257
- });
258
- }
259
- loadCharacter(scene, npcId, x, y) {
260
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
261
- try {
262
- debug_1.Debug.log(`Loading NPC with ID: ${npcId}`);
263
- const npcData = yield this.getNPC(npcId);
264
- if (!npcData) {
265
- throw new Error(`NPC with ID ${npcId} not found`);
266
- }
267
- debug_1.Debug.log(`NPC Data: ${JSON.stringify(npcData)}`);
268
- const textureKey = npcData.spriteKey;
269
- // Ensure the texture is loaded
270
- if (!scene.textures.exists(textureKey)) {
271
- debug_1.Debug.log(`Texture with key ${textureKey} not found, attempting to load.`);
272
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
273
- const spriteData = yield this.getSprite(npcData.spriteImageId);
274
- if (spriteData && spriteData.spriteData) {
275
- debug_1.Debug.log(`Sprite Data: ${JSON.stringify(spriteData)}`);
276
- const url = URL.createObjectURL(spriteData.spriteData);
277
- // Load the spritesheet using frameWidth and frameHeight from spriteData
278
- scene.load.spritesheet(textureKey, url, {
279
- frameWidth: spriteData.frameWidth,
280
- frameHeight: spriteData.frameHeight,
281
- });
282
- scene.load.once('complete', () => {
283
- debug_1.Debug.log(`Texture ${textureKey} loaded successfully.`);
284
- this.addNPCToScene(scene, npcData, x, y);
285
- });
286
- scene.load.start();
287
- }
288
- else {
289
- throw new Error(`Sprite with ID ${npcData.spriteImageId} not found`);
290
- }
291
- }
292
- else {
293
- debug_1.Debug.log(`Texture with key ${textureKey} already loaded.`);
294
- this.addNPCToScene(scene, npcData, x, y);
295
- }
296
- }
297
- catch (error) {
298
- if (error instanceof Error) {
299
- debug_1.Debug.error(`Failed to load NPC: ${error.message}`);
300
- }
301
- else {
302
- debug_1.Debug.error('Failed to load NPC:', error);
303
- }
304
- }
305
- });
306
- }
307
- addNPCToScene(scene, npcData, x, y) {
308
- try {
309
- debug_1.Debug.log(`Adding NPC to scene: ${JSON.stringify(npcData)}`);
310
- debug_1.Debug.log(`Using sprite key: ${npcData.spriteKey}`);
311
- //const npcSprite = scene.add.sprite(x ?? npcData.startPosition.x, y ?? npcData.startPosition.y, npcData.spriteKey);
312
- const npcSprite = scene.add.sprite(0, 0, npcData.spriteKey);
313
- npcSprite.scale = npcData.scale || 1.5;
314
- npcSprite.name = npcData.id || 'Error Missing Name';
315
- debug_1.Debug.log(`NPC Sprite created with texture key ${npcData.spriteKey} at position (${npcData.startPosition.x}, ${npcData.startPosition.y})`);
316
- const gridEngineConfig = {
317
- id: npcData.id,
318
- sprite: npcSprite,
319
- walkingAnimationMapping: npcData.walkingAnimationMapping,
320
- startPosition: {
321
- x: x !== null && x !== void 0 ? x : npcData.startPosition.x,
322
- y: y !== null && y !== void 0 ? y : npcData.startPosition.y,
323
- },
324
- speed: npcData.speed,
325
- };
326
- debug_1.Debug.log(`Grid engine config: ${JSON.stringify(gridEngineConfig)}`);
327
- // Check if the texture is available before adding to grid engine
328
- if (!scene.textures.exists(npcData.spriteKey)) {
329
- throw new Error(`Texture with key ${npcData.spriteKey} does not exist in the scene`);
330
- }
331
- scene.gridEngine.addCharacter(gridEngineConfig);
332
- debug_1.Debug.log(`NPC added to grid engine with ID ${npcData.id}`);
333
- const attachNPCEventWithCoords = (sprite, title, actions) => {
334
- const position = scene.gridEngine.getPosition(sprite.name);
335
- debug_1.Debug.log(`Attaching NPC events to ${title} at position: ${JSON.stringify(position)}`);
336
- npchandler_1.npcHandler.attachNPCEvent(sprite, title, actions, { coords: position });
337
- };
338
- attachNPCEventWithCoords(npcSprite, npcData.name, npcData.actions.map((action) => ({ label: action })));
339
- debug_1.Debug.log(`NPC ${npcData.name} added to scene successfully`);
340
- }
341
- catch (error) {
342
- if (error instanceof Error) {
343
- debug_1.Debug.error(`Error adding NPC to scene from addNPCToScene: ${error.message}`);
344
- }
345
- else {
346
- debug_1.Debug.error('Error adding NPC to scene:', error);
347
- }
348
- }
349
- }
350
- //? Dialogue Scoped Functions
351
- addDialogue(dialogue) {
352
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
353
- yield this.dialogues.put(dialogue);
354
- });
355
- }
356
- getDialogue(id) {
357
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
358
- return yield this.dialogues.get(id);
359
- });
360
- }
361
- getAllDialogues() {
362
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
363
- return yield this.dialogues.toArray();
364
- });
365
- }
366
- getDialoguesForNPC(npcId) {
367
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
368
- const npc = yield this.getNPC(npcId);
369
- if (!npc)
370
- throw new Error(`NPC with ID ${npcId} not found`);
371
- const dialogues = yield Promise.all((npc.dialogues || []).map((dialogue) => this.getDialogue(dialogue.dialogueId)));
372
- return dialogues.filter((dialogue) => dialogue !== undefined);
373
- });
374
- }
375
- markDialogueAsRead(npcId, dialogueId) {
376
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
377
- var _a;
378
- const npc = yield this.getNPC(npcId);
379
- if (!npc)
380
- throw new Error(`NPC with ID ${npcId} not found`);
381
- const dialogue = (_a = npc.dialogues) === null || _a === void 0 ? void 0 : _a.find((d) => d.dialogueId === dialogueId);
382
- if (dialogue) {
383
- dialogue.read = true;
384
- yield this.addNPC(npc);
385
- }
386
- });
387
- }
388
- fetchDialogues(url) {
389
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
390
- try {
391
- const response = yield axios_1.default.get(url);
392
- const dialogues = response.data.key;
393
- const newDialogues = Object.values(dialogues).map(
394
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
395
- (dialogueDetails) => (Object.assign({}, dialogueDetails)));
396
- yield this.dialogues.bulkPut(newDialogues);
397
- }
398
- catch (error) {
399
- debug_1.Debug.error(`Failed to fetch dialogues from ${url}:`, error);
400
- }
401
- });
402
- }
403
- getPrioritizedDialoguesForNPC(npcId) {
404
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
405
- try {
406
- const npc = yield this.getNPC(npcId);
407
- if (!npc)
408
- throw new Error(`NPC with ID ${npcId} not found`);
409
- const dialoguesWithMetadata = yield Promise.all((npc.dialogues || []).map((dialogueMeta) => tslib_1.__awaiter(this, void 0, void 0, function* () {
410
- const dialogue = yield this.getDialogue(dialogueMeta.dialogueId);
411
- if (dialogue) {
412
- return Object.assign(Object.assign({}, dialogue), { priority: dialogueMeta.priority, read: dialogueMeta.read });
413
- }
414
- return null;
415
- })));
416
- // Filter out any null values
417
- const validDialogues = dialoguesWithMetadata.filter(dialogue => dialogue !== null);
418
- // Sort the dialogues by priority in descending order
419
- validDialogues.sort((a, b) => b.priority - a.priority);
420
- return validDialogues;
421
- }
422
- catch (error) {
423
- debug_1.Debug.error(`Failed to get prioritized dialogues for NPC with ID ${npcId}:`, error);
424
- return [];
425
- }
426
- });
427
- }
428
- getNPCNameById(npcId) {
429
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
430
- const npc = yield this.getNPC(npcId);
431
- return npc === null || npc === void 0 ? void 0 : npc.name;
432
- });
433
- }
434
- getNPCAvatarById(npcId) {
435
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
436
- const npc = yield this.getNPC(npcId);
437
- if (npc === null || npc === void 0 ? void 0 : npc.avatarImageId) {
438
- const avatar = yield this.getAvatar(npc.avatarImageId);
439
- return avatar === null || avatar === void 0 ? void 0 : avatar.avatarData;
440
- }
441
- return undefined;
442
- });
443
- }
444
- getNPCSlugById(npcId) {
445
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
446
- const npc = yield this.getNPC(npcId);
447
- return npc === null || npc === void 0 ? void 0 : npc.slug;
448
- });
449
- }
450
- getNPCHealthById(npcId) {
451
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
452
- var _a;
453
- try {
454
- const npc = yield this.getNPC(npcId);
455
- return (_a = npc === null || npc === void 0 ? void 0 : npc.stats) === null || _a === void 0 ? void 0 : _a.health;
456
- }
457
- catch (error) {
458
- debug_1.Debug.error(`Failed to get health for NPC with ID ${npcId}:`, error);
459
- return undefined;
460
- }
461
- });
462
- }
463
- getNPCManaById(npcId) {
464
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
465
- var _a;
466
- try {
467
- const npc = yield this.getNPC(npcId);
468
- return (_a = npc === null || npc === void 0 ? void 0 : npc.stats) === null || _a === void 0 ? void 0 : _a.mana;
469
- }
470
- catch (error) {
471
- debug_1.Debug.error(`Failed to get mana for NPC with ID ${npcId}:`, error);
472
- return undefined;
473
- }
474
- });
475
- }
476
- createNPCSession(SessionAtom, npcId) {
477
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
478
- try {
479
- const namePromise = this.getNPCNameById(npcId);
480
- const slugPromise = this.getNPCSlugById(npcId);
481
- const avatarPromise = this.getNPCAvatarById(npcId);
482
- const hpPromise = this.getNPCHealthById(npcId);
483
- const manaPromise = this.getNPCManaById(npcId);
484
- const [name, slug, avatar, hp, mana] = yield Promise.all([namePromise, slugPromise, avatarPromise, hpPromise, manaPromise]);
485
- const newSession = Object.assign(Object.assign({}, SessionAtom.get()), { [`${npcId}_name`]: name || 'Unknown', [`${npcId}_slug`]: slug || 'Unknown', [`${npcId}_avatar`]: avatar ? URL.createObjectURL(avatar) : 'Unknown', [`${npcId}_health`]: hp || '100', [`${npcId}_mana`]: mana || '100' });
486
- SessionAtom.set(newSession);
487
- }
488
- catch (error) {
489
- const newSession = Object.assign(Object.assign({}, SessionAtom.get()), { [`${npcId}_name`]: 'Unknown', [`${npcId}_slug`]: 'Unknown', [`${npcId}_avatar`]: 'Unknown', [`${npcId}_hp`]: '100', [`${npcId}_mana`]: '100' });
490
- SessionAtom.set(newSession);
491
- }
492
- });
493
- }
494
- getNPCDialogueOptionsByULID(dialogueId) {
495
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
496
- try {
497
- const dialogue = yield this.getDialogue(dialogueId);
498
- if (!dialogue || !dialogue.options)
499
- return '[]';
500
- const dialogueOptions = yield Promise.all(dialogue.options.map((optionId) => tslib_1.__awaiter(this, void 0, void 0, function* () {
501
- return this.getDialogue(optionId);
502
- })));
503
- return JSON.stringify(dialogueOptions.filter(option => option !== undefined));
504
- }
505
- catch (error) {
506
- debug_1.Debug.error(`Failed to get dialogue options for ID ${dialogueId}:`, error);
507
- return '[]';
508
- }
509
- });
510
- }
511
- getAllDialogueOptions(dialogueId) {
512
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
513
- const result = [];
514
- const visited = new Set();
515
- const traverseDialogueOptions = (id) => tslib_1.__awaiter(this, void 0, void 0, function* () {
516
- if (visited.has(id))
517
- return;
518
- visited.add(id);
519
- const dialogue = yield this.getDialogue(id);
520
- if (!dialogue)
521
- return;
522
- result.push(dialogue);
523
- if (dialogue.options && dialogue.options.length > 0) {
524
- for (const optionId of dialogue.options) {
525
- yield traverseDialogueOptions(optionId);
526
- }
527
- }
528
- });
529
- yield traverseDialogueOptions(dialogueId);
530
- return result;
531
- });
532
- }
533
- createDialogueSession(DialogueSessionAtom, dialogueId) {
534
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
535
- try {
536
- const dialogueOptions = yield this.getNPCDialogueOptionsByULID(dialogueId);
537
- const newDialogueSession = Object.assign(Object.assign({}, DialogueSessionAtom.get()), { [`${dialogueId}_options`]: dialogueOptions || '[]' });
538
- DialogueSessionAtom.set(newDialogueSession);
539
- }
540
- catch (error) {
541
- const newDialogueSession = Object.assign(Object.assign({}, DialogueSessionAtom.get()), { [`${dialogueId}_options`]: '[]' });
542
- DialogueSessionAtom.set(newDialogueSession);
543
- }
544
- });
545
- }
546
- }
547
- exports.NPCDatabase = NPCDatabase;
548
- // Export a singleton instance
549
- exports.npcDatabase = new NPCDatabase();
550
- //# sourceMappingURL=npcdatabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"npcdatabase.js","sourceRoot":"","sources":["../../../../../../../packages/laser/src/lib/phaser/npc/npcdatabase.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,0DAA0B;AAI1B,6CAA0C;AAE1C,6CAA0C;AAQ1C,MAAM,WAAY,SAAQ,eAAK;IAM7B;QACE,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEK,MAAM,CAAC,OAAiB;;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU;;YACrB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;KAAA;IAEK,YAAY,CAAC,IAAY;;YAC7B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;KAAA;IAEK,UAAU;;YACd,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;KAAA;IAEK,UAAU;;YACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;KAAA;IAEK,UAAU,CAAC,QAAgB;;YAC/B,MAAM,QAAQ,GAAe,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,YAAY,CAAC,GAAW;;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAW,GAAG,CAAC,CAAC;gBAChD,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,iCAAiC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5D,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;IAEK,SAAS,CAAC,MAAe;;YAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;KAAA;IAEK,SAAS,CAAC,EAAU;;YACxB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,aAAa;;YACjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;KAAA;IAEK,SAAS,CAAC,MAAe;;YAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;KAAA;IAEK,SAAS,CAAC,EAAU;;YACxB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,aAAa;;YACjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;KAAA;IAEK,SAAS,CAAC,GAAW;;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChE,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;IAEK,YAAY,CAChB,GAAW,EACX,aAA0C;;YAE1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,SAAS,mCACV,aAAa,KAChB,UAAU,EAAE,UAAU,GACvB,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,SAAS,CAAC,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEK,SAAS,CACb,UAA6D,EAC7D,aAAqB,EACrB,aAAqB;;YAErB,MAAM,MAAM,mCACP,UAAU,KACb,aAAa;gBACb,aAAa,GACd,CAAC;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;KAAA;IAEK,YAAY,CAChB,GAAW,EACX,aAA0C;;YAE1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,SAAS,mCACV,aAAa,KAChB,UAAU,EAAE,UAAU,GACvB,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,SAAS,CAAC,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEK,YAAY,CAAC,GAAW;;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAC/B,mBAAmB,aAAa,CAAC,cAAc,EAAE,CAClD,CAAC;oBACJ,CAAC;oBACD,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,SAAS,GAAY;4BACzB,EAAE,EAAE,aAAa,CAAC,EAAE;4BACpB,UAAU,EAAE,aAAa,CAAC,UAAU;4BACpC,cAAc,EAAE,aAAa,CAAC,cAAc;4BAC5C,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,aAAa,CAAC,IAAI;yBACzB,CAAC;wBACF,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KAAA;IAEK,YAAY,CAAC,GAAW;;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAC/B,mBAAmB,aAAa,CAAC,aAAa,EAAE,CACjD,CAAC;oBACJ,CAAC;oBACD,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,SAAS,GAAY;4BACzB,EAAE,EAAE,aAAa,CAAC,EAAE;4BACpB,UAAU,EAAE,aAAa,CAAC,UAAU;4BACpC,aAAa,EAAE,aAAa,CAAC,aAAa;4BAC1C,UAAU,EAAE,aAAa,CAAC,UAAU;4BACpC,WAAW,EAAE,aAAa,CAAC,WAAW;4BACtC,KAAK,EAAE,aAAa,CAAC,KAAK;4BAC1B,IAAI,EAAE,aAAa,CAAC,IAAI;4BACxB,UAAU,EAAE,UAAU;yBACvB,CAAC;wBACF,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KAAA;IAEK,SAAS,CAAC,GAAW;;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7B,MAAM,MAAM,GAAa;wBACvB,EAAE,EAAE,UAAU,CAAC,EAAE;wBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;wBAC3D,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;qBACtC,CAAC;oBACF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;KAAA;IAEK,kBAAkB;qEAAC,OAAO,GAAG,kBAAkB;YACnD,0BAA0B;YAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;YAElD,2CAA2C;YAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEK,OAAO,CACX,KAAoB,EACpB,OAAe,EACf,CAAU,EACV,CAAU;;YAEV,IAAI,CAAC;gBACH,aAAK,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,YAAY,CAAC,CAAC;gBACxD,CAAC;gBACD,aAAK,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAElD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,aAAK,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,aAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEK,aAAa,CACjB,KAAoB,EACpB,KAAa,EACb,CAAU,EACV,CAAU;;YAEV,IAAI,CAAC;gBACH,aAAK,CAAC,GAAG,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC;gBACpD,CAAC;gBACD,aAAK,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAElD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;gBAErC,+BAA+B;gBAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,aAAK,CAAC,GAAG,CACP,oBAAoB,UAAU,iCAAiC,CAChE,CAAC;oBACF,oEAAoE;oBACpE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAc,CAAC,CAAC;oBAChE,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;wBACxC,aAAK,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBACxD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAEvD,wEAAwE;wBACxE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE;4BACtC,UAAU,EAAE,UAAU,CAAC,UAAU;4BACjC,WAAW,EAAE,UAAU,CAAC,WAAW;yBACpC,CAAC,CAAC;wBAEH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;4BAC/B,aAAK,CAAC,GAAG,CAAC,WAAW,UAAU,uBAAuB,CAAC,CAAC;4BACxD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3C,CAAC,CAAC,CAAC;wBAEH,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,aAAa,YAAY,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAK,CAAC,GAAG,CAAC,oBAAoB,UAAU,kBAAkB,CAAC,CAAC;oBAC5D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,aAAK,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,aAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED,aAAa,CACX,KAAoB,EACpB,OAAiB,EACjB,CAAU,EACV,CAAU;QAEV,IAAI,CAAC;YACH,aAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7D,aAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAEpD,oHAAoH;YACpH,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAE5D,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;YACvC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,IAAI,oBAAoB,CAAC;YAEpD,aAAK,CAAC,GAAG,CACP,uCAAuC,OAAO,CAAC,SAAS,iBAAiB,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAChI,CAAC;YAEF,MAAM,gBAAgB,GAAG;gBACvB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,SAAS;gBACjB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;gBACxD,aAAa,EAAE;oBACb,CAAC,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,OAAO,CAAC,aAAa,CAAC,CAAC;oBAC/B,CAAC,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,OAAO,CAAC,aAAa,CAAC,CAAC;iBAChC;gBACD,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;YAEF,aAAK,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAErE,iEAAiE;YACjE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,CAAC,SAAS,8BAA8B,CACpE,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAEhD,aAAK,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5D,MAAM,wBAAwB,GAAG,CAC/B,MAAiC,EACjC,KAAa,EACb,OAA4B,EAC5B,EAAE;gBACF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3D,aAAK,CAAC,GAAG,CACP,2BAA2B,KAAK,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC5E,CAAC;gBACF,uBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC;YAEF,wBAAwB,CACtB,SAAS,EACT,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CACrD,CAAC;YAEF,aAAK,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,aAAK,CAAC,KAAK,CACT,iDAAiD,KAAK,CAAC,OAAO,EAAE,CACjE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,aAAK,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IACvB,WAAW,CAAC,QAAyB;;YACzC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;KAAA;IAEK,WAAW,CAAC,EAAU;;YAC1B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAEK,eAAe;;YACnB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;KAAA;IAEK,kBAAkB,CAAC,KAAa;;YACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CACtC,CACF,CAAC;YACF,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAChB,CAAC;QACzB,CAAC;KAAA;IAEK,kBAAkB,CAAC,KAAa,EAAE,UAAkB;;;YACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;gBACrB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;KAAA;IAEK,cAAc,CAAC,GAAW;;YAC9B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG;gBAC/C,8DAA8D;gBAC9D,CAAC,eAAoB,EAAE,EAAE,CAAC,mBAAM,eAAe,EAAG,CACnD,CAAC;gBACF,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,kCAAkC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;KAAA;IAEK,6BAA6B,CAAC,KAAa;;YAC/C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC;gBAE5D,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7C,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAM,YAAY,EAAC,EAAE;oBAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACjE,IAAI,QAAQ,EAAE,CAAC;wBACb,uCACK,QAAQ,KACX,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,IAAI,EAAE,YAAY,CAAC,IAAI,IACvB;oBACJ,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAA,CAAC,CACH,CAAC;gBAEF,6BAA6B;gBAC7B,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAA8D,CAAC;gBAEhJ,qDAAqD;gBACrD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAEvD,OAAO,cAAc,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,uDAAuD,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpF,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KAAA;IAGK,cAAc,CAAC,KAAa;;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC;QACnB,CAAC;KAAA;IAEK,gBAAgB,CAAC,KAAa;;YAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,aAAa,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvD,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC;YAC5B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEK,cAAc,CAAC,KAAa;;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC;QACnB,CAAC;KAAA;IAEK,gBAAgB,CAAC,KAAa;;;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,MAAM,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,wCAAwC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;IAEK,cAAc,CAAC,KAAa;;;YAChC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,IAAI,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,sCAAsC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnE,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;IAEK,gBAAgB,CAAC,WAAiD,EAAE,KAAa;;YACrF,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAG/C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;gBAE5H,MAAM,UAAU,mCACX,WAAW,CAAC,GAAG,EAAE,KACpB,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,SAAS,EACpC,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,SAAS,EACpC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EACrE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,EAAE,IAAI,KAAK,EAChC,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,KAAK,GAEjC,CAAC;gBAEF,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,mCACX,WAAW,CAAC,GAAG,EAAE,KACpB,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,SAAS,EAC5B,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,SAAS,EAC5B,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,SAAS,EAC9B,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,KAAK,EACtB,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,KAAK,GAEzB,CAAC;gBACF,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;KAAA;IAEK,2BAA2B,CAAC,UAAkB;;YAClD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC;gBAEhD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;oBACtC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAA,CAAC,CACH,CAAC;gBAEF,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAK,CAAC,KAAK,CAAC,yCAAyC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;QACL,CAAC;KAAA;IAGO,qBAAqB,CAAC,UAAkB;;YAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;YACrC,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;YAEvC,MAAM,uBAAuB,GAAG,CAAO,EAAU,EAAE,EAAE;gBACnD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEhB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAEtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEtB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACxC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC,CAAA,CAAC;YAEF,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAE1C,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,qBAAqB,CAAC,mBAAyD,EAAE,UAAkB;;YACvG,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC3E,MAAM,kBAAkB,mCACnB,mBAAmB,CAAC,GAAG,EAAE,KAC5B,CAAC,GAAG,UAAU,UAAU,CAAC,EAAE,eAAe,IAAI,IAAI,GACnD,CAAC;gBACF,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,kBAAkB,mCACnB,mBAAmB,CAAC,GAAG,EAAE,KAC5B,CAAC,GAAG,UAAU,UAAU,CAAC,EAAE,IAAI,GAChC,CAAC;gBACF,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;CAEF;AAGQ,kCAAW;AAEpB,8BAA8B;AACjB,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -1,21 +0,0 @@
1
- import { type NPCInteractionEventData, type NPCAction } from '../../../types';
2
- declare class NPCHandler {
3
- private actionHandlers;
4
- constructor();
5
- getActionHandler(action: NPCAction): (eventData: NPCInteractionEventData) => void;
6
- loreFromNPC(eventData: NPCInteractionEventData): void;
7
- questWithNPC(eventData: NPCInteractionEventData): void;
8
- healNPC(eventData: NPCInteractionEventData): void;
9
- oathFromNPC(eventData: NPCInteractionEventData): void;
10
- talkToNPC(eventData: NPCInteractionEventData): Promise<void>;
11
- tradeWithNPC(eventData: NPCInteractionEventData): void;
12
- moveToNPC(eventData: NPCInteractionEventData): void;
13
- stealFromNPC(eventData: NPCInteractionEventData): void;
14
- startCombat(eventData: NPCInteractionEventData): void;
15
- checkFish(eventData: NPCInteractionEventData): void;
16
- attachNPCEvent<T>(sprite: Phaser.GameObjects.Sprite, title: string, actions: {
17
- label: string;
18
- }[], data?: T): void;
19
- }
20
- export declare const npcHandler: NPCHandler;
21
- export {};