@datamoc/mw_games 0.7.2 → 0.7.4
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.
- package/CHANGELOG.md +33 -0
- package/README.md +1 -1
- package/dist/board/FogOfWar.d.ts +6 -0
- package/dist/board/FogOfWar.d.ts.map +1 -1
- package/dist/board/FogOfWar.js +15 -0
- package/dist/board/FogOfWar.js.map +1 -1
- package/dist/core/ActionJournal.d.ts +36 -0
- package/dist/core/ActionJournal.d.ts.map +1 -0
- package/dist/core/ActionJournal.js +60 -0
- package/dist/core/ActionJournal.js.map +1 -0
- package/dist/core/Pathfinding.d.ts +41 -0
- package/dist/core/Pathfinding.d.ts.map +1 -0
- package/dist/core/Pathfinding.js +86 -0
- package/dist/core/Pathfinding.js.map +1 -0
- package/dist/core/State.d.ts +59 -0
- package/dist/core/State.d.ts.map +1 -0
- package/dist/core/State.js +100 -0
- package/dist/core/State.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -1
- package/dist/mw_games.global.js +97 -97
- package/dist/mwl/hooks.d.ts +3 -2
- package/dist/mwl/hooks.d.ts.map +1 -1
- package/dist/mwl/hooks.js.map +1 -1
- package/dist/mwl/index.d.ts +3 -3
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +1 -1
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/report.d.ts +17 -1
- package/dist/mwl/report.d.ts.map +1 -1
- package/dist/mwl/report.js +33 -0
- package/dist/mwl/report.js.map +1 -1
- package/dist/mwl/runtime.d.ts +46 -1
- package/dist/mwl/runtime.d.ts.map +1 -1
- package/dist/mwl/runtime.js +237 -19
- package/dist/mwl/runtime.js.map +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/schema.js +136 -1
- package/dist/mwl/schema.js.map +1 -1
- package/dist/roguelike/FieldOfView.d.ts +3 -2
- package/dist/roguelike/FieldOfView.d.ts.map +1 -1
- package/dist/roguelike/FieldOfView.js +3 -2
- package/dist/roguelike/FieldOfView.js.map +1 -1
- package/dist/roguelike/Level.d.ts +9 -1
- package/dist/roguelike/Level.d.ts.map +1 -1
- package/dist/roguelike/Level.js +6 -2
- package/dist/roguelike/Level.js.map +1 -1
- package/dist/roguelike/MultiTurnBeam.d.ts +70 -0
- package/dist/roguelike/MultiTurnBeam.d.ts.map +1 -0
- package/dist/roguelike/MultiTurnBeam.js +117 -0
- package/dist/roguelike/MultiTurnBeam.js.map +1 -0
- package/dist/roguelike/Scheduler.d.ts +5 -1
- package/dist/roguelike/Scheduler.d.ts.map +1 -1
- package/dist/roguelike/Scheduler.js +10 -3
- package/dist/roguelike/Scheduler.js.map +1 -1
- package/dist/roguelike/Targeting.d.ts +51 -0
- package/dist/roguelike/Targeting.d.ts.map +1 -1
- package/dist/roguelike/Targeting.js +87 -2
- package/dist/roguelike/Targeting.js.map +1 -1
- package/dist/roguelike/index.d.ts +4 -2
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +2 -1
- package/dist/roguelike/index.js.map +1 -1
- package/dist/rpg/automap.d.ts +4 -0
- package/dist/rpg/automap.d.ts.map +1 -1
- package/dist/rpg/automap.js +5 -2
- package/dist/rpg/automap.js.map +1 -1
- package/dist/simulation/Campaign.d.ts +60 -0
- package/dist/simulation/Campaign.d.ts.map +1 -0
- package/dist/simulation/Campaign.js +85 -0
- package/dist/simulation/Campaign.js.map +1 -0
- package/dist/simulation/Harness.d.ts +26 -0
- package/dist/simulation/Harness.d.ts.map +1 -0
- package/dist/simulation/Harness.js +25 -0
- package/dist/simulation/Harness.js.map +1 -0
- package/dist/simulation/index.d.ts +4 -0
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +2 -0
- package/dist/simulation/index.js.map +1 -1
- package/dist/two-d/render/ImageModifiers.d.ts +58 -0
- package/dist/two-d/render/ImageModifiers.d.ts.map +1 -0
- package/dist/two-d/render/ImageModifiers.js +145 -0
- package/dist/two-d/render/ImageModifiers.js.map +1 -0
- package/dist/two-d/render/Minimap.d.ts +24 -0
- package/dist/two-d/render/Minimap.d.ts.map +1 -1
- package/dist/two-d/render/Minimap.js +52 -14
- package/dist/two-d/render/Minimap.js.map +1 -1
- package/dist/two-d/render/Particles.d.ts +16 -0
- package/dist/two-d/render/Particles.d.ts.map +1 -1
- package/dist/two-d/render/Particles.js +15 -2
- package/dist/two-d/render/Particles.js.map +1 -1
- package/dist/two-d/render/index.d.ts +4 -2
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +2 -1
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/ui/Bar.d.ts +21 -2
- package/dist/two-d/ui/Bar.d.ts.map +1 -1
- package/dist/two-d/ui/Bar.js +27 -5
- package/dist/two-d/ui/Bar.js.map +1 -1
- package/dist/two-d/ui/FloatingText.d.ts +42 -1
- package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
- package/dist/two-d/ui/FloatingText.js +52 -4
- package/dist/two-d/ui/FloatingText.js.map +1 -1
- package/dist/two-d/ui/FloatingTextStack.d.ts +77 -0
- package/dist/two-d/ui/FloatingTextStack.d.ts.map +1 -0
- package/dist/two-d/ui/FloatingTextStack.js +99 -0
- package/dist/two-d/ui/FloatingTextStack.js.map +1 -0
- package/dist/two-d/ui/index.d.ts +3 -1
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +2 -1
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -1
package/dist/mwl/schema.js
CHANGED
|
@@ -178,6 +178,10 @@ export const schema01 = {
|
|
|
178
178
|
children: [
|
|
179
179
|
'condition',
|
|
180
180
|
'filter',
|
|
181
|
+
'filter_condition',
|
|
182
|
+
'while',
|
|
183
|
+
'foreach',
|
|
184
|
+
'switch',
|
|
181
185
|
'command',
|
|
182
186
|
'say',
|
|
183
187
|
'dialogue',
|
|
@@ -230,11 +234,24 @@ export const schema01 = {
|
|
|
230
234
|
value: 'integer',
|
|
231
235
|
},
|
|
232
236
|
},
|
|
233
|
-
condition: {
|
|
237
|
+
condition: {
|
|
238
|
+
attributes: {
|
|
239
|
+
variable: 'id',
|
|
240
|
+
equals: 'string',
|
|
241
|
+
not_equals: 'string',
|
|
242
|
+
in: 'string',
|
|
243
|
+
not_in: 'string',
|
|
244
|
+
less_than: 'string',
|
|
245
|
+
greater_than: 'string',
|
|
246
|
+
less_than_or_equal_to: 'string',
|
|
247
|
+
greater_than_or_equal_to: 'string',
|
|
248
|
+
},
|
|
249
|
+
},
|
|
234
250
|
filter: {
|
|
235
251
|
attributes: {
|
|
236
252
|
side: 'integer',
|
|
237
253
|
type: 'string',
|
|
254
|
+
not_type: 'string',
|
|
238
255
|
unit: 'string',
|
|
239
256
|
x: 'integer',
|
|
240
257
|
y: 'integer',
|
|
@@ -243,6 +260,30 @@ export const schema01 = {
|
|
|
243
260
|
can_recruit: 'boolean',
|
|
244
261
|
},
|
|
245
262
|
},
|
|
263
|
+
filter_condition: { children: ['variable', 'have_unit', 'predicate'] },
|
|
264
|
+
variable: {
|
|
265
|
+
attributes: {
|
|
266
|
+
name: 'id',
|
|
267
|
+
equals: 'string',
|
|
268
|
+
not_equals: 'string',
|
|
269
|
+
in: 'string',
|
|
270
|
+
not_in: 'string',
|
|
271
|
+
less_than: 'string',
|
|
272
|
+
greater_than: 'string',
|
|
273
|
+
less_than_or_equal_to: 'string',
|
|
274
|
+
greater_than_or_equal_to: 'string',
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
have_unit: {
|
|
278
|
+
attributes: {
|
|
279
|
+
id: 'string',
|
|
280
|
+
type: 'string',
|
|
281
|
+
side: 'integer',
|
|
282
|
+
x: 'integer',
|
|
283
|
+
y: 'integer',
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
predicate: { attributes: { name: 'id' }, openAttributes: 'string' },
|
|
246
287
|
command: {
|
|
247
288
|
attributes: {
|
|
248
289
|
name: 'id',
|
|
@@ -263,6 +304,11 @@ export const schema01 = {
|
|
|
263
304
|
attributes: { test: 'string' },
|
|
264
305
|
children: [
|
|
265
306
|
'condition',
|
|
307
|
+
'while',
|
|
308
|
+
'foreach',
|
|
309
|
+
'switch',
|
|
310
|
+
'if',
|
|
311
|
+
'else',
|
|
266
312
|
'command',
|
|
267
313
|
'message',
|
|
268
314
|
'move',
|
|
@@ -279,6 +325,11 @@ export const schema01 = {
|
|
|
279
325
|
else: {
|
|
280
326
|
children: [
|
|
281
327
|
'condition',
|
|
328
|
+
'while',
|
|
329
|
+
'foreach',
|
|
330
|
+
'switch',
|
|
331
|
+
'if',
|
|
332
|
+
'else',
|
|
282
333
|
'command',
|
|
283
334
|
'message',
|
|
284
335
|
'move',
|
|
@@ -292,6 +343,90 @@ export const schema01 = {
|
|
|
292
343
|
'hook',
|
|
293
344
|
],
|
|
294
345
|
},
|
|
346
|
+
while: {
|
|
347
|
+
attributes: { test: 'string', max_iterations: 'integer' },
|
|
348
|
+
children: [
|
|
349
|
+
'condition',
|
|
350
|
+
'while',
|
|
351
|
+
'foreach',
|
|
352
|
+
'switch',
|
|
353
|
+
'if',
|
|
354
|
+
'else',
|
|
355
|
+
'message',
|
|
356
|
+
'move',
|
|
357
|
+
'attack',
|
|
358
|
+
'spawn',
|
|
359
|
+
'kill',
|
|
360
|
+
'gold',
|
|
361
|
+
'set_variable',
|
|
362
|
+
'win',
|
|
363
|
+
'lose',
|
|
364
|
+
'hook',
|
|
365
|
+
],
|
|
366
|
+
},
|
|
367
|
+
foreach: {
|
|
368
|
+
attributes: { variable: 'id', item: 'id', index: 'id' },
|
|
369
|
+
children: [
|
|
370
|
+
'while',
|
|
371
|
+
'foreach',
|
|
372
|
+
'switch',
|
|
373
|
+
'if',
|
|
374
|
+
'else',
|
|
375
|
+
'message',
|
|
376
|
+
'move',
|
|
377
|
+
'attack',
|
|
378
|
+
'spawn',
|
|
379
|
+
'kill',
|
|
380
|
+
'gold',
|
|
381
|
+
'set_variable',
|
|
382
|
+
'win',
|
|
383
|
+
'lose',
|
|
384
|
+
'hook',
|
|
385
|
+
],
|
|
386
|
+
},
|
|
387
|
+
switch: {
|
|
388
|
+
attributes: { variable: 'id' },
|
|
389
|
+
children: ['case', 'default'],
|
|
390
|
+
},
|
|
391
|
+
case: {
|
|
392
|
+
attributes: { equals: 'string' },
|
|
393
|
+
children: [
|
|
394
|
+
'while',
|
|
395
|
+
'foreach',
|
|
396
|
+
'switch',
|
|
397
|
+
'if',
|
|
398
|
+
'else',
|
|
399
|
+
'message',
|
|
400
|
+
'move',
|
|
401
|
+
'attack',
|
|
402
|
+
'spawn',
|
|
403
|
+
'kill',
|
|
404
|
+
'gold',
|
|
405
|
+
'set_variable',
|
|
406
|
+
'win',
|
|
407
|
+
'lose',
|
|
408
|
+
'hook',
|
|
409
|
+
],
|
|
410
|
+
},
|
|
411
|
+
default: {
|
|
412
|
+
children: [
|
|
413
|
+
'while',
|
|
414
|
+
'foreach',
|
|
415
|
+
'switch',
|
|
416
|
+
'if',
|
|
417
|
+
'else',
|
|
418
|
+
'message',
|
|
419
|
+
'move',
|
|
420
|
+
'attack',
|
|
421
|
+
'spawn',
|
|
422
|
+
'kill',
|
|
423
|
+
'gold',
|
|
424
|
+
'set_variable',
|
|
425
|
+
'win',
|
|
426
|
+
'lose',
|
|
427
|
+
'hook',
|
|
428
|
+
],
|
|
429
|
+
},
|
|
295
430
|
message: {
|
|
296
431
|
// `speaker` is a display name, so it may contain spaces ("Orcish Grunt").
|
|
297
432
|
attributes: { speaker: 'string', text: 'string', value: 'string', portrait: 'string', side: 'integer' },
|
package/dist/mwl/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/mwl/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/mwl/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,8 @@ export declare class FieldOfView {
|
|
|
52
52
|
/**
|
|
53
53
|
* Recomputes what is visible from a point.
|
|
54
54
|
*
|
|
55
|
-
* @param radius how far light reaches, in cells
|
|
55
|
+
* @param radius how far light reaches, in cells. When omitted, the level's `viewDistance`
|
|
56
|
+
* is used, falling back to the larger level dimension.
|
|
56
57
|
* @param sight when given, sight is height-aware: every cell in range is
|
|
57
58
|
* tested along the straight line to it, blocked by opaque terrain or by a
|
|
58
59
|
* cell rising above viewer and target alike. That is line-of-sight per cell
|
|
@@ -61,7 +62,7 @@ export declare class FieldOfView {
|
|
|
61
62
|
* callback only ever sees the blocking cell, never the target, so the
|
|
62
63
|
* viewer-relative rule cannot live inside it.
|
|
63
64
|
*/
|
|
64
|
-
update(x: number, y: number, radius
|
|
65
|
+
update(x: number, y: number, radius?: number, sight?: HeightSight): void;
|
|
65
66
|
/** lights one visible cell with the usual distance falloff */
|
|
66
67
|
private lightCell;
|
|
67
68
|
/** height-aware sight for both shapes: one straight line per cell, one rule for cliffs */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldOfView.d.ts","sourceRoot":"","sources":["../../src/roguelike/FieldOfView.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;;;;;;;GAaG;AACH;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,KAAK,CAAQ;IAGrB,OAAO,CAAC,GAAG,CAAuD;IAElE,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,cAAqB;IAErC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,cAAqB;IAEtC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,sBAA6B;IAE3C,YAAY,KAAK,EAAE,KAAK,EAGvB;IAED
|
|
1
|
+
{"version":3,"file":"FieldOfView.d.ts","sourceRoot":"","sources":["../../src/roguelike/FieldOfView.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;;;;;;;GAaG;AACH;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,KAAK,CAAQ;IAGrB,OAAO,CAAC,GAAG,CAAuD;IAElE,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,cAAqB;IAErC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,cAAqB;IAEtC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,sBAA6B;IAE3C,YAAY,KAAK,EAAE,KAAK,EAGvB;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CACL,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,SAA2E,EACjF,KAAK,CAAC,EAAE,WAAW,GACjB,IAAI,CAmCN;IAED,8DAA8D;IAC9D,OAAO,CAAC,SAAS;IAOjB,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IA0BxB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAerB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvC;IAED,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExC;IAED,sDAAsD;IACtD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpC;IAED,gDAAgD;IAChD,KAAK,IAAI,IAAI,CAIZ;IAED,wEAAwE;IACxE,SAAS,IAAI,IAAI,CAEhB;CACD"}
|
|
@@ -28,7 +28,8 @@ export class FieldOfView {
|
|
|
28
28
|
/**
|
|
29
29
|
* Recomputes what is visible from a point.
|
|
30
30
|
*
|
|
31
|
-
* @param radius how far light reaches, in cells
|
|
31
|
+
* @param radius how far light reaches, in cells. When omitted, the level's `viewDistance`
|
|
32
|
+
* is used, falling back to the larger level dimension.
|
|
32
33
|
* @param sight when given, sight is height-aware: every cell in range is
|
|
33
34
|
* tested along the straight line to it, blocked by opaque terrain or by a
|
|
34
35
|
* cell rising above viewer and target alike. That is line-of-sight per cell
|
|
@@ -37,7 +38,7 @@ export class FieldOfView {
|
|
|
37
38
|
* callback only ever sees the blocking cell, never the target, so the
|
|
38
39
|
* viewer-relative rule cannot live inside it.
|
|
39
40
|
*/
|
|
40
|
-
update(x, y, radius, sight) {
|
|
41
|
+
update(x, y, radius = this.level.viewDistance ?? Math.max(this.level.width, this.level.height), sight) {
|
|
41
42
|
this.visible.clear();
|
|
42
43
|
this.light.clear();
|
|
43
44
|
if (sight) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldOfView.js","sourceRoot":"","sources":["../../src/roguelike/FieldOfView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA6B9D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAW;IAevB,YAAY,KAAY;QATxB,8BAA8B;QACrB,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,oDAAoD;QAC3C,aAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,6DAA6D;QACpD,UAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QAG1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"FieldOfView.js","sourceRoot":"","sources":["../../src/roguelike/FieldOfView.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,10 @@ export interface TerrainKind {
|
|
|
15
15
|
passable: boolean;
|
|
16
16
|
/** can something be seen through it */
|
|
17
17
|
transparent: boolean;
|
|
18
|
+
/** optional game-defined bit flags, carried without interpretation by MWG */
|
|
19
|
+
flags?: number;
|
|
20
|
+
/** optional game-defined boolean properties, carried without interpretation by MWG */
|
|
21
|
+
extras?: Readonly<Record<string, boolean>>;
|
|
18
22
|
}
|
|
19
23
|
/**
|
|
20
24
|
* The two terrain kinds every map needs; a game adds its own alongside.
|
|
@@ -40,12 +44,14 @@ export declare class Level {
|
|
|
40
44
|
readonly width: number;
|
|
41
45
|
readonly height: number;
|
|
42
46
|
readonly shape: LevelShape;
|
|
47
|
+
/** default sight radius for observers that do not provide one explicitly */
|
|
48
|
+
viewDistance?: number;
|
|
43
49
|
/** terrain id per cell, indexing into `kinds` */
|
|
44
50
|
readonly terrain: Uint8Array;
|
|
45
51
|
private kinds;
|
|
46
52
|
/** rooms the generator carved, for placing stairs, monsters and treasure */
|
|
47
53
|
rooms: Rect[];
|
|
48
|
-
constructor(width: number, height: number, kinds: TerrainKind[], fill?: number, shape?: LevelShape);
|
|
54
|
+
constructor(width: number, height: number, kinds: TerrainKind[], fill?: number, shape?: LevelShape, viewDistance?: number);
|
|
49
55
|
get cellCount(): number;
|
|
50
56
|
index(x: number, y: number): number;
|
|
51
57
|
xOf(cell: number): number;
|
|
@@ -95,6 +101,7 @@ export declare class Level {
|
|
|
95
101
|
shape: LevelShape;
|
|
96
102
|
terrain: number[];
|
|
97
103
|
rooms: Rect[];
|
|
104
|
+
viewDistance?: number;
|
|
98
105
|
};
|
|
99
106
|
/**
|
|
100
107
|
* Rebuilds a level from save data - the `kinds` table is supplied fresh (it holds a
|
|
@@ -107,6 +114,7 @@ export declare class Level {
|
|
|
107
114
|
shape: LevelShape;
|
|
108
115
|
terrain: number[];
|
|
109
116
|
rooms: Rect[];
|
|
117
|
+
viewDistance?: number;
|
|
110
118
|
}): Level;
|
|
111
119
|
}
|
|
112
120
|
export declare function rectCenter(rect: Rect): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Level.d.ts","sourceRoot":"","sources":["../../src/roguelike/Level.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAgD1C,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE1F;AAED,MAAM,WAAW,WAAW;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Level.d.ts","sourceRoot":"","sources":["../../src/roguelike/Level.ts"],"names":[],"mappings":"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"}
|
package/dist/roguelike/Level.js
CHANGED
|
@@ -60,12 +60,15 @@ export function neighbourOffsets(topology) {
|
|
|
60
60
|
export const WALL = { passable: false, transparent: false };
|
|
61
61
|
export const FLOOR = { passable: true, transparent: true };
|
|
62
62
|
export class Level {
|
|
63
|
-
constructor(width, height, kinds, fill = 0, shape = 'square') {
|
|
63
|
+
constructor(width, height, kinds, fill = 0, shape = 'square', viewDistance) {
|
|
64
64
|
/** rooms the generator carved, for placing stairs, monsters and treasure */
|
|
65
65
|
this.rooms = [];
|
|
66
66
|
this.width = width;
|
|
67
67
|
this.shape = shape;
|
|
68
68
|
this.height = height;
|
|
69
|
+
if (viewDistance !== undefined && (!Number.isFinite(viewDistance) || viewDistance < 0))
|
|
70
|
+
throw new Error('viewDistance must be a finite non-negative number');
|
|
71
|
+
this.viewDistance = viewDistance;
|
|
69
72
|
this.kinds = kinds;
|
|
70
73
|
this.terrain = new Uint8Array(width * height).fill(fill);
|
|
71
74
|
}
|
|
@@ -159,6 +162,7 @@ export class Level {
|
|
|
159
162
|
shape: this.shape,
|
|
160
163
|
terrain: [...this.terrain],
|
|
161
164
|
rooms: this.rooms.map((room) => ({ ...room })),
|
|
165
|
+
...(this.viewDistance === undefined ? {} : { viewDistance: this.viewDistance }),
|
|
162
166
|
};
|
|
163
167
|
}
|
|
164
168
|
/**
|
|
@@ -167,7 +171,7 @@ export class Level {
|
|
|
167
171
|
* so only the terrain ids and rooms are ever save data.
|
|
168
172
|
*/
|
|
169
173
|
static fromJSON(kinds, data) {
|
|
170
|
-
const level = new Level(data.width, data.height, kinds, 0, data.shape);
|
|
174
|
+
const level = new Level(data.width, data.height, kinds, 0, data.shape, data.viewDistance);
|
|
171
175
|
level.terrain.set(data.terrain.slice(0, level.terrain.length));
|
|
172
176
|
level.rooms = data.rooms.map((room) => ({ ...room }));
|
|
173
177
|
return level;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Level.js","sourceRoot":"","sources":["../../src/roguelike/Level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAc9C,2FAA2F;AAC3F,6FAA6F;AAC7F,MAAM,QAAQ,GAA6C;IAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACP,CAAC;AAEF,MAAM,QAAQ,GAA6C;IAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACR,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAA6C;IAClE,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC;CACN,CAAC;AAEF,MAAM,eAAe,GAA6C;IACjE,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC,CAAC;CACN,CAAC;AAEF,gGAAgG;AAChG,MAAM,UAAU,gBAAgB,CAAC,QAAe;IAC/C,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;
|
|
1
|
+
{"version":3,"file":"Level.js","sourceRoot":"","sources":["../../src/roguelike/Level.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Level } from './Level.ts';
|
|
2
|
+
import type { Step } from './Pathfinder.ts';
|
|
3
|
+
export interface BeamDamageContext {
|
|
4
|
+
cell: Step;
|
|
5
|
+
step: number;
|
|
6
|
+
/** the number of cells remaining after this one */
|
|
7
|
+
remaining: number;
|
|
8
|
+
}
|
|
9
|
+
export interface MultiTurnBeamOptions<T> {
|
|
10
|
+
level: Level;
|
|
11
|
+
from: Step;
|
|
12
|
+
target: Step;
|
|
13
|
+
damage: number | ((target: T, context: BeamDamageContext) => number);
|
|
14
|
+
/** Finds live targets at the cell when that cell is reached. */
|
|
15
|
+
targetsAt?: (cell: Step) => readonly T[];
|
|
16
|
+
/** Applies the resolved damage. The game owns health, resistances and effects. */
|
|
17
|
+
applyDamage?: (target: T, amount: number, context: BeamDamageContext) => void;
|
|
18
|
+
/** A dynamic blocker can stop a beam after it has started. */
|
|
19
|
+
isBlocked?: (cell: Step, context: BeamDamageContext) => boolean;
|
|
20
|
+
/** Whether the beam stops at opaque terrain. Defaults to true. */
|
|
21
|
+
stopAtOpaque?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface BeamStep<T> {
|
|
24
|
+
status: 'idle' | 'active' | 'done' | 'blocked' | 'cancelled';
|
|
25
|
+
cell: Step | null;
|
|
26
|
+
step: number;
|
|
27
|
+
remaining: number;
|
|
28
|
+
targets: readonly T[];
|
|
29
|
+
damage: number;
|
|
30
|
+
}
|
|
31
|
+
export interface MultiTurnBeamSave {
|
|
32
|
+
path: Step[];
|
|
33
|
+
index: number;
|
|
34
|
+
state: 'idle' | 'active' | 'done' | 'blocked' | 'cancelled';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Advances a straight beam one cell per turn.
|
|
38
|
+
*
|
|
39
|
+
* The framework owns traversal and timing. A game supplies target lookup and damage
|
|
40
|
+
* application, so this stays useful for hit points, shields, status effects and any other
|
|
41
|
+
* combat model. The path is captured at construction time, while blockers and targets are
|
|
42
|
+
* checked when each cell is reached. `advance` is deterministic when those callbacks are.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { Level, FLOOR, WALL, MultiTurnBeam } from '@datamoc/mw_games/roguelike';
|
|
47
|
+
*
|
|
48
|
+
* const level = new Level(8, 1, [WALL, FLOOR], 1);
|
|
49
|
+
* const beam = new MultiTurnBeam({ level, from: { x: 0, y: 0 }, target: { x: 3, y: 0 }, damage: 4 });
|
|
50
|
+
* beam.start();
|
|
51
|
+
* beam.advance(); // reaches x=1; call again on the next turn
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare class MultiTurnBeam<T = unknown> {
|
|
55
|
+
private options;
|
|
56
|
+
private path;
|
|
57
|
+
private index;
|
|
58
|
+
private state;
|
|
59
|
+
constructor(options: MultiTurnBeamOptions<T>);
|
|
60
|
+
get active(): boolean;
|
|
61
|
+
get done(): boolean;
|
|
62
|
+
get currentPath(): readonly Step[];
|
|
63
|
+
start(): boolean;
|
|
64
|
+
/** Resolves and applies one beam cell. Call once per game turn. */
|
|
65
|
+
advance(): BeamStep<T>;
|
|
66
|
+
cancel(): void;
|
|
67
|
+
toJSON(): MultiTurnBeamSave;
|
|
68
|
+
static fromJSON<T>(options: Omit<MultiTurnBeamOptions<T>, 'from' | 'target'>, data: MultiTurnBeamSave): MultiTurnBeam<T>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=MultiTurnBeam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiTurnBeam.d.ts","sourceRoot":"","sources":["../../src/roguelike/MultiTurnBeam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC,CAAC;IACrE,gEAAgE;IAChE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;IACzC,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9E,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAChE,kEAAkE;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IAC7D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAsC;IAEnD,YAAY,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAS3C;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,WAAW,IAAI,SAAS,IAAI,EAAE,CAEjC;IAED,KAAK,IAAI,OAAO,CAIf;IAED,mEAAmE;IACnE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAuDrB;IAED,MAAM,IAAI,IAAI,CAEb;IAED,MAAM,IAAI,iBAAiB,CAE1B;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAChB,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,EACzD,IAAI,EAAE,iBAAiB,GACrB,aAAa,CAAC,CAAC,CAAC,CAOlB;CACD"}
|