@datamoc/mw_games 0.30.0 → 0.33.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.
- package/CHANGELOG.md +86 -0
- package/README.md +1 -1
- package/api-surface.json +384 -0
- package/dist/assets/index.d.ts +2 -0
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +1 -0
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/svg.d.ts +87 -0
- package/dist/assets/svg.d.ts.map +1 -0
- package/dist/assets/svg.js +162 -0
- package/dist/assets/svg.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mw_games.global.js +41 -41
- package/dist/mwl/fengari.d.ts +12 -6
- package/dist/mwl/fengari.d.ts.map +1 -1
- package/dist/mwl/fengari.js +56 -70
- package/dist/mwl/fengari.js.map +1 -1
- package/dist/mwl/runtime.d.ts +13 -0
- package/dist/mwl/runtime.d.ts.map +1 -1
- package/dist/mwl/runtime.js +72 -4
- package/dist/mwl/runtime.js.map +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/schema.js +4 -1
- package/dist/mwl/schema.js.map +1 -1
- package/dist/roguelike/Cave.d.ts +109 -0
- package/dist/roguelike/Cave.d.ts.map +1 -0
- package/dist/roguelike/Cave.js +192 -0
- package/dist/roguelike/Cave.js.map +1 -0
- package/dist/roguelike/Overworld.d.ts +82 -0
- package/dist/roguelike/Overworld.d.ts.map +1 -0
- package/dist/roguelike/Overworld.js +306 -0
- package/dist/roguelike/Overworld.js.map +1 -0
- package/dist/roguelike/index.d.ts +4 -0
- package/dist/roguelike/index.d.ts.map +1 -1
- package/dist/roguelike/index.js +2 -0
- package/dist/roguelike/index.js.map +1 -1
- package/dist/skeleton/index.d.ts +131 -0
- package/dist/skeleton/index.d.ts.map +1 -0
- package/dist/skeleton/index.js +206 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/testing/SceneControls.d.ts +35 -0
- package/dist/testing/SceneControls.d.ts.map +1 -0
- package/dist/testing/SceneControls.js +49 -0
- package/dist/testing/SceneControls.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/two-d/render/Camera.d.ts +13 -3
- package/dist/two-d/render/Camera.d.ts.map +1 -1
- package/dist/two-d/render/Camera.js +35 -25
- package/dist/two-d/render/Camera.js.map +1 -1
- package/dist/two-d/render/SkeletalSprite.d.ts +118 -0
- package/dist/two-d/render/SkeletalSprite.d.ts.map +1 -0
- package/dist/two-d/render/SkeletalSprite.js +189 -0
- package/dist/two-d/render/SkeletalSprite.js.map +1 -0
- package/dist/two-d/render/SpriteMotion.d.ts +121 -0
- package/dist/two-d/render/SpriteMotion.d.ts.map +1 -0
- package/dist/two-d/render/SpriteMotion.js +193 -0
- package/dist/two-d/render/SpriteMotion.js.map +1 -0
- package/dist/two-d/render/index.d.ts +4 -0
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +2 -0
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -2
- package/sbom.cdx.json +222 -222
package/dist/mwl/fengari.d.ts
CHANGED
|
@@ -6,13 +6,19 @@ export interface FengariScriptHostOptions {
|
|
|
6
6
|
readonly seed?: number;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
* Optional Lua 5.
|
|
9
|
+
* Optional Lua 5.4 host. Fengari is loaded only by this subpath, never by `mwg/mwl`.
|
|
10
10
|
*
|
|
11
|
-
* Sandboxed for untrusted scripts:
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* Sandboxed for untrusted scripts: only the base, coroutine, math, string, table and utf8
|
|
12
|
+
* libraries are opened (`io`, `os`, `debug` and `package` with its `require` are never
|
|
13
|
+
* constructed, identically in Node and the browser), the base library's `load`, `loadfile`
|
|
14
|
+
* and `dofile` are removed, every chunk is compiled in text mode so binary bytecode is
|
|
15
|
+
* rejected, `math.random` is the host's seeded stream, and every call is bounded by
|
|
16
|
+
* `instructionLimit` and by `memoryLimit` (bytes of string and buffer data the call
|
|
17
|
+
* allocates, parsing included). The byte budget is enforced through the fork's per-state
|
|
18
|
+
* allocation hook, so a refused allocation surfaces to scripts as Lua's standard
|
|
19
|
+
* `not enough memory` even under a script-level `pcall`, but the host rejects the whole
|
|
20
|
+
* call regardless. Globals persist between calls on one host, so scripts that must not
|
|
21
|
+
* influence each other need a host each.
|
|
16
22
|
*
|
|
17
23
|
* @example
|
|
18
24
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fengari.d.ts","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fengari.d.ts","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA6B,UAAU,EAAe,MAAM,cAAc,CAAC;AAEvF,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,UAAU,CAuK1F"}
|
package/dist/mwl/fengari.js
CHANGED
|
@@ -1,71 +1,31 @@
|
|
|
1
|
-
//
|
|
2
|
-
// The checked subset is documented in fengari.d.ts.
|
|
1
|
+
// @datamoc/fengari intentionally ships JavaScript without TypeScript declarations.
|
|
3
2
|
// @ts-expect-error Fengari has no declarations in its npm package.
|
|
4
|
-
import
|
|
3
|
+
import fengari from '@datamoc/fengari';
|
|
4
|
+
const { lauxlib, lua, lualib } = fengari;
|
|
5
|
+
const to_luastring = (str) => new TextEncoder().encode(str);
|
|
5
6
|
const DEFAULT_INSTRUCTION_LIMIT = 100_000;
|
|
6
7
|
const DEFAULT_MEMORY_LIMIT = 32 * 1024 * 1024;
|
|
7
|
-
|
|
8
|
+
/** only the sandbox-safe standard libraries: `io`, `os`, `debug` and `package` are never opened */
|
|
9
|
+
const SAFE_LIBRARIES = lualib.LUA_GLIBK |
|
|
10
|
+
lualib.LUA_COLIBK |
|
|
11
|
+
lualib.LUA_MATHLIBK |
|
|
12
|
+
lualib.LUA_STRLIBK |
|
|
13
|
+
lualib.LUA_TABLIBK |
|
|
14
|
+
lualib.LUA_UTF8LIBK;
|
|
8
15
|
/**
|
|
9
|
-
*
|
|
10
|
-
* Lua string and buffer in a `Uint8Array` it constructs through the global name, so this is
|
|
11
|
-
* the one place a concatenation (`s = s .. s` doubles in one instruction), `string.rep`,
|
|
12
|
-
* `table.concat` or `string.gsub` can be bounded: the instruction limit alone let
|
|
13
|
-
* `string.rep("x", 2^28)` allocate 268 MB in a single instruction. Views (`subarray`) are
|
|
14
|
-
* not charged, since they allocate nothing.
|
|
15
|
-
*/
|
|
16
|
-
function withMemoryBudget(budget, work) {
|
|
17
|
-
let remaining = budget;
|
|
18
|
-
let exceeded = false;
|
|
19
|
-
class Counted extends NativeUint8Array {
|
|
20
|
-
static get [Symbol.species]() {
|
|
21
|
-
return NativeUint8Array;
|
|
22
|
-
}
|
|
23
|
-
//fengari's own `instanceof Uint8Array` checks resolve to this class while it is installed
|
|
24
|
-
static [Symbol.hasInstance](value) {
|
|
25
|
-
return value instanceof NativeUint8Array;
|
|
26
|
-
}
|
|
27
|
-
constructor(...args) {
|
|
28
|
-
super(...args);
|
|
29
|
-
remaining -= this.byteLength;
|
|
30
|
-
if (remaining < 0) {
|
|
31
|
-
exceeded = true;
|
|
32
|
-
throw new Error('Lua memory limit exceeded');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const previous = globalThis.Uint8Array;
|
|
37
|
-
globalThis.Uint8Array = Counted;
|
|
38
|
-
try {
|
|
39
|
-
return { result: work(), exceeded };
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (exceeded)
|
|
43
|
-
return { result: undefined, exceeded };
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
finally {
|
|
47
|
-
globalThis.Uint8Array = previous;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/** runs host-side code (a game's `emit` callback) outside the budget and with the real constructor */
|
|
51
|
-
function outsideBudget(work) {
|
|
52
|
-
const previous = globalThis.Uint8Array;
|
|
53
|
-
globalThis.Uint8Array = NativeUint8Array;
|
|
54
|
-
try {
|
|
55
|
-
return work();
|
|
56
|
-
}
|
|
57
|
-
finally {
|
|
58
|
-
globalThis.Uint8Array = previous;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Optional Lua 5.3 host. Fengari is loaded only by this subpath, never by `mwg/mwl`.
|
|
16
|
+
* Optional Lua 5.4 host. Fengari is loaded only by this subpath, never by `mwg/mwl`.
|
|
63
17
|
*
|
|
64
|
-
* Sandboxed for untrusted scripts:
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
18
|
+
* Sandboxed for untrusted scripts: only the base, coroutine, math, string, table and utf8
|
|
19
|
+
* libraries are opened (`io`, `os`, `debug` and `package` with its `require` are never
|
|
20
|
+
* constructed, identically in Node and the browser), the base library's `load`, `loadfile`
|
|
21
|
+
* and `dofile` are removed, every chunk is compiled in text mode so binary bytecode is
|
|
22
|
+
* rejected, `math.random` is the host's seeded stream, and every call is bounded by
|
|
23
|
+
* `instructionLimit` and by `memoryLimit` (bytes of string and buffer data the call
|
|
24
|
+
* allocates, parsing included). The byte budget is enforced through the fork's per-state
|
|
25
|
+
* allocation hook, so a refused allocation surfaces to scripts as Lua's standard
|
|
26
|
+
* `not enough memory` even under a script-level `pcall`, but the host rejects the whole
|
|
27
|
+
* call regardless. Globals persist between calls on one host, so scripts that must not
|
|
28
|
+
* influence each other need a host each.
|
|
69
29
|
*
|
|
70
30
|
* @example
|
|
71
31
|
* ```ts
|
|
@@ -78,7 +38,7 @@ function outsideBudget(work) {
|
|
|
78
38
|
*/
|
|
79
39
|
export function createFengariScriptHost(options = {}) {
|
|
80
40
|
const state = lauxlib.luaL_newstate();
|
|
81
|
-
lualib.
|
|
41
|
+
lualib.luaL_openselectedlibs(state, SAFE_LIBRARIES, 0);
|
|
82
42
|
const limit = options.instructionLimit ?? DEFAULT_INSTRUCTION_LIMIT;
|
|
83
43
|
if (!Number.isInteger(limit) || limit < 1)
|
|
84
44
|
throw new RangeError('instructionLimit must be a positive integer');
|
|
@@ -87,6 +47,21 @@ export function createFengariScriptHost(options = {}) {
|
|
|
87
47
|
throw new RangeError('memoryLimit must be a positive integer');
|
|
88
48
|
let randomState = (options.seed ?? 0x6d7767) >>> 0;
|
|
89
49
|
let emit;
|
|
50
|
+
//the per-call byte budget, charged by the fork's allocation hook: every internal string or
|
|
51
|
+
//buffer allocation decrements `remaining`, and the first to cross zero refuses the
|
|
52
|
+
//allocation exactly like a failing C allocator (LUA_ERRMEM, "not enough memory")
|
|
53
|
+
const budget = { remaining: memoryLimit, exceeded: false };
|
|
54
|
+
lua.lua_setallocf(state, (_ud, nsize) => {
|
|
55
|
+
budget.remaining -= nsize;
|
|
56
|
+
if (budget.remaining < 0) {
|
|
57
|
+
budget.exceeded = true;
|
|
58
|
+
throw new Error('Lua memory limit exceeded');
|
|
59
|
+
}
|
|
60
|
+
}, budget);
|
|
61
|
+
const resetBudget = () => {
|
|
62
|
+
budget.remaining = memoryLimit;
|
|
63
|
+
budget.exceeded = false;
|
|
64
|
+
};
|
|
90
65
|
const push = (value) => {
|
|
91
66
|
if (value === null)
|
|
92
67
|
return lua.lua_pushnil(state);
|
|
@@ -155,9 +130,11 @@ export function createFengariScriptHost(options = {}) {
|
|
|
155
130
|
lua.lua_error(state);
|
|
156
131
|
}
|
|
157
132
|
}, lua.LUA_MASKCOUNT, limit > 1000 ? 1000 : 1);
|
|
158
|
-
|
|
133
|
+
//the memory budget is reset by the caller (run/call), not here, so the parse of a
|
|
134
|
+
//chunk is charged against the same budget as its execution
|
|
135
|
+
const status = lua.lua_pcall(state, args, results, 0);
|
|
159
136
|
lua.lua_sethook(state, null, 0, 0);
|
|
160
|
-
if (exceeded) {
|
|
137
|
+
if (budget.exceeded) {
|
|
161
138
|
lua.lua_settop(state, 0);
|
|
162
139
|
throw new Error('Lua memory limit exceeded');
|
|
163
140
|
}
|
|
@@ -167,9 +144,16 @@ export function createFengariScriptHost(options = {}) {
|
|
|
167
144
|
};
|
|
168
145
|
const run = (source, results) => {
|
|
169
146
|
lua.lua_settop(state, 0);
|
|
170
|
-
|
|
171
|
-
|
|
147
|
+
resetBudget();
|
|
148
|
+
const bytes = to_luastring(source);
|
|
149
|
+
//'t' compiles text only: a '\x1bLua' binary dump must never reach the bytecode undumper
|
|
150
|
+
const loadStatus = lauxlib.luaL_loadbufferx(state, bytes, bytes.length, bytes, to_luastring('t'));
|
|
151
|
+
if (loadStatus !== lua.LUA_OK) {
|
|
152
|
+
//a budget exhausted by parsing itself is a limit error, not a syntax error
|
|
153
|
+
if (budget.exceeded)
|
|
154
|
+
throw new Error('Lua memory limit exceeded');
|
|
172
155
|
throw new Error(lua.lua_tojsstring(state, -1) ?? 'Lua syntax error');
|
|
156
|
+
}
|
|
173
157
|
return protectedCall(0, results);
|
|
174
158
|
};
|
|
175
159
|
const install = (context, callback) => {
|
|
@@ -178,7 +162,8 @@ export function createFengariScriptHost(options = {}) {
|
|
|
178
162
|
lua.lua_pushjsfunction(state, (currentState) => {
|
|
179
163
|
const name = lua.lua_tojsstring(currentState, 1) ?? '';
|
|
180
164
|
const payload = lua.lua_gettop(currentState) > 1 ? read(2) : undefined;
|
|
181
|
-
|
|
165
|
+
//host-side code: the allocation hook charges only the VM's own strings and buffers
|
|
166
|
+
emit?.(name, payload);
|
|
182
167
|
return 0;
|
|
183
168
|
});
|
|
184
169
|
lua.lua_setglobal(state, to_luastring('mwg_emit'));
|
|
@@ -188,7 +173,7 @@ export function createFengariScriptHost(options = {}) {
|
|
|
188
173
|
return 1;
|
|
189
174
|
});
|
|
190
175
|
lua.lua_setglobal(state, to_luastring('__mwg_random'));
|
|
191
|
-
const sandbox = '
|
|
176
|
+
const sandbox = 'load=nil; loadfile=nil; dofile=nil; math.random=__mwg_random; math.randomseed=function() end';
|
|
192
177
|
run(sandbox, 0);
|
|
193
178
|
};
|
|
194
179
|
//hides the string metatable (the `string` library itself) from `getmetatable("")`
|
|
@@ -205,6 +190,7 @@ export function createFengariScriptHost(options = {}) {
|
|
|
205
190
|
call(name, args = [], context = {}, callback) {
|
|
206
191
|
install(context, callback);
|
|
207
192
|
lua.lua_settop(state, 0);
|
|
193
|
+
resetBudget();
|
|
208
194
|
lua.lua_getglobal(state, to_luastring(name));
|
|
209
195
|
args.forEach(push);
|
|
210
196
|
return protectedCall(args.length, 1);
|
package/dist/mwl/fengari.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fengari.js","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fengari.js","sourceRoot":"","sources":["../../src/mwl/fengari.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/runtime.d.ts
CHANGED
|
@@ -168,6 +168,9 @@ export type MwlTraceEvent = {
|
|
|
168
168
|
readonly type: 'error';
|
|
169
169
|
readonly message: string;
|
|
170
170
|
readonly event?: string;
|
|
171
|
+
} | {
|
|
172
|
+
readonly type: 'while_limit';
|
|
173
|
+
readonly iterations: number;
|
|
171
174
|
};
|
|
172
175
|
/** One public MWL runtime operation, retained for deterministic replay and diagnostics. */
|
|
173
176
|
export type MwlRuntimeAction = {
|
|
@@ -311,6 +314,8 @@ export declare class MwlRuntime {
|
|
|
311
314
|
private readonly resolveMap?;
|
|
312
315
|
private readonly hooks?;
|
|
313
316
|
private readonly onTrace?;
|
|
317
|
+
private testHelpers?;
|
|
318
|
+
/** the helpers a `test=` expression may call, built once from the hook registry */
|
|
314
319
|
private readonly persistence;
|
|
315
320
|
private readonly random;
|
|
316
321
|
private readonly unitTypes;
|
|
@@ -494,6 +499,14 @@ export declare class MwlRuntime {
|
|
|
494
499
|
*/
|
|
495
500
|
private conditionMatches;
|
|
496
501
|
private nodeConditionMatches;
|
|
502
|
+
/**
|
|
503
|
+
* The helpers a `test=` expression may call (item 406): the built-in `have_unit` and
|
|
504
|
+
* `have_location` queries over this world, plus one entry per registered predicate
|
|
505
|
+
* hook, so a compound predicate no longer has to detour through `condition=hook` with
|
|
506
|
+
* a `[condition]` tree. Each argument is one `key=value` pair (a bare argument names
|
|
507
|
+
* `value`), matching the string-shaped context predicates already receive.
|
|
508
|
+
*/
|
|
509
|
+
private conditionHelpers;
|
|
497
510
|
/**
|
|
498
511
|
* A `filter_condition` child holds `variable` comparisons (same operators
|
|
499
512
|
* as `condition`) and `have_unit` existence checks (an alive unit matching
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/mwl/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/mwl/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/runtime.js
CHANGED
|
@@ -594,19 +594,24 @@ export class MwlRuntime {
|
|
|
594
594
|
const starts = this.world.map?.starts[sideId];
|
|
595
595
|
if (!starts?.length)
|
|
596
596
|
continue;
|
|
597
|
+
//a leader naming a declared [unit] is that unit, not a type to spawn a second one of
|
|
598
|
+
if (this.world.units[leader])
|
|
599
|
+
continue;
|
|
597
600
|
const stats = this.unitTypes.get(leader);
|
|
601
|
+
if (!stats)
|
|
602
|
+
throw new Error(`MWL side ${sideId} leader "${leader}" is neither a unit nor a unit type`);
|
|
598
603
|
for (const start of starts) {
|
|
599
604
|
if (this.unitAt(start.x, start.y))
|
|
600
605
|
continue;
|
|
601
606
|
const id = `${leader} ${sideId} (${start.x},${start.y})`;
|
|
602
607
|
this.world.units[id] = {
|
|
603
|
-
hp: stats
|
|
608
|
+
hp: stats.hitpoints,
|
|
604
609
|
x: start.x,
|
|
605
610
|
y: start.y,
|
|
606
611
|
alive: true,
|
|
607
612
|
type: leader,
|
|
608
613
|
side: sideId,
|
|
609
|
-
moves: stats
|
|
614
|
+
moves: stats.movement,
|
|
610
615
|
can_recruit: true,
|
|
611
616
|
leader: true,
|
|
612
617
|
};
|
|
@@ -770,8 +775,18 @@ export class MwlRuntime {
|
|
|
770
775
|
const limit = integer(node, 'max_iterations', 1000);
|
|
771
776
|
if (limit < 1 || limit > 100_000)
|
|
772
777
|
throw new Error('MWL while max_iterations must be between 1 and 100000');
|
|
773
|
-
|
|
778
|
+
let iteration = 0;
|
|
779
|
+
while (iteration < limit && this.nodeConditionMatches(node)) {
|
|
774
780
|
this.runBlock(this.commandChildren(node));
|
|
781
|
+
iteration++;
|
|
782
|
+
}
|
|
783
|
+
//the cap is observable: reaching it with the condition still true traces a
|
|
784
|
+
//while_limit, and on_limit=error turns that into a hard failure instead
|
|
785
|
+
if (iteration === limit && this.nodeConditionMatches(node)) {
|
|
786
|
+
if (node.attributes.on_limit === 'error')
|
|
787
|
+
throw new Error(`MWL while reached its max_iterations cap of ${limit}`);
|
|
788
|
+
this.onTrace?.({ type: 'while_limit', iterations: limit });
|
|
789
|
+
}
|
|
775
790
|
}
|
|
776
791
|
cmdForeach(node) {
|
|
777
792
|
const source = this.variableAt(required(node, 'variable'));
|
|
@@ -1116,9 +1131,62 @@ export class MwlRuntime {
|
|
|
1116
1131
|
}
|
|
1117
1132
|
nodeConditionMatches(node) {
|
|
1118
1133
|
if (node.attributes.test !== undefined)
|
|
1119
|
-
return evaluateCondition(node.attributes.test, primitiveVariables(this.world.variables)
|
|
1134
|
+
return evaluateCondition(node.attributes.test, primitiveVariables(this.world.variables), {
|
|
1135
|
+
helpers: this.conditionHelpers(),
|
|
1136
|
+
});
|
|
1120
1137
|
return this.conditionMatches(node);
|
|
1121
1138
|
}
|
|
1139
|
+
/**
|
|
1140
|
+
* The helpers a `test=` expression may call (item 406): the built-in `have_unit` and
|
|
1141
|
+
* `have_location` queries over this world, plus one entry per registered predicate
|
|
1142
|
+
* hook, so a compound predicate no longer has to detour through `condition=hook` with
|
|
1143
|
+
* a `[condition]` tree. Each argument is one `key=value` pair (a bare argument names
|
|
1144
|
+
* `value`), matching the string-shaped context predicates already receive.
|
|
1145
|
+
*/
|
|
1146
|
+
conditionHelpers() {
|
|
1147
|
+
if (this.testHelpers)
|
|
1148
|
+
return this.testHelpers;
|
|
1149
|
+
const filterFromArgs = (args) => {
|
|
1150
|
+
const filter = {};
|
|
1151
|
+
for (const arg of args) {
|
|
1152
|
+
const text = String(arg);
|
|
1153
|
+
const split = text.indexOf('=');
|
|
1154
|
+
if (split <= 0)
|
|
1155
|
+
filter.value = text;
|
|
1156
|
+
else
|
|
1157
|
+
filter[text.slice(0, split)] = text.slice(split + 1);
|
|
1158
|
+
}
|
|
1159
|
+
return filter;
|
|
1160
|
+
};
|
|
1161
|
+
const helpers = {
|
|
1162
|
+
have_unit: (...args) => {
|
|
1163
|
+
const filter = filterFromArgs(args);
|
|
1164
|
+
return Object.entries(this.world.units).some(([id, unit]) => unit.alive &&
|
|
1165
|
+
(filter.id === undefined || id === filter.id) &&
|
|
1166
|
+
unitMatchesFilter(unit, id, filter));
|
|
1167
|
+
},
|
|
1168
|
+
have_location: (...args) => {
|
|
1169
|
+
const filter = filterFromArgs(args);
|
|
1170
|
+
const map = this.world.map;
|
|
1171
|
+
const x = Number(filter.x);
|
|
1172
|
+
const y = Number(filter.y);
|
|
1173
|
+
if (!map ||
|
|
1174
|
+
!Number.isInteger(x) ||
|
|
1175
|
+
!Number.isInteger(y) ||
|
|
1176
|
+
x < 0 ||
|
|
1177
|
+
y < 0 ||
|
|
1178
|
+
x >= map.width ||
|
|
1179
|
+
y >= map.height)
|
|
1180
|
+
return false;
|
|
1181
|
+
const code = map.codes[y * map.width + x];
|
|
1182
|
+
return filter.terrain === undefined || code === filter.terrain;
|
|
1183
|
+
},
|
|
1184
|
+
};
|
|
1185
|
+
for (const [name, predicate] of Object.entries(this.hooks?.predicate ?? {}))
|
|
1186
|
+
helpers[name] = (...args) => Boolean(predicate(this.worldView(), filterFromArgs(args)));
|
|
1187
|
+
this.testHelpers = helpers;
|
|
1188
|
+
return helpers;
|
|
1189
|
+
}
|
|
1122
1190
|
/**
|
|
1123
1191
|
* A `filter_condition` child holds `variable` comparisons (same operators
|
|
1124
1192
|
* as `condition`) and `have_unit` existence checks (an alive unit matching
|