@datamoc/mw_games 0.7.7 → 0.7.9

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 (205) hide show
  1. package/CHANGELOG.md +183 -3
  2. package/README.md +28 -7
  3. package/dist/actors/Shop.d.ts.map +1 -1
  4. package/dist/actors/Shop.js +4 -1
  5. package/dist/actors/Shop.js.map +1 -1
  6. package/dist/ai/Heuristics.d.ts +8 -0
  7. package/dist/ai/Heuristics.d.ts.map +1 -1
  8. package/dist/ai/Heuristics.js.map +1 -1
  9. package/dist/ai/index.d.ts +2 -2
  10. package/dist/ai/index.d.ts.map +1 -1
  11. package/dist/ai/index.js +1 -1
  12. package/dist/ai/index.js.map +1 -1
  13. package/dist/ai/lua.d.ts +21 -0
  14. package/dist/ai/lua.d.ts.map +1 -1
  15. package/dist/ai/lua.js +21 -0
  16. package/dist/ai/lua.js.map +1 -1
  17. package/dist/ai/score.d.ts +36 -0
  18. package/dist/ai/score.d.ts.map +1 -1
  19. package/dist/ai/score.js +26 -0
  20. package/dist/ai/score.js.map +1 -1
  21. package/dist/assets/index.d.ts +1 -1
  22. package/dist/assets/index.d.ts.map +1 -1
  23. package/dist/assets/index.js +1 -1
  24. package/dist/assets/index.js.map +1 -1
  25. package/dist/assets/loader.d.ts.map +1 -1
  26. package/dist/assets/loader.js +10 -1
  27. package/dist/assets/loader.js.map +1 -1
  28. package/dist/assets/paths.d.ts +23 -0
  29. package/dist/assets/paths.d.ts.map +1 -1
  30. package/dist/assets/paths.js +29 -0
  31. package/dist/assets/paths.js.map +1 -1
  32. package/dist/battle/BattleStats.d.ts.map +1 -1
  33. package/dist/battle/BattleStats.js.map +1 -1
  34. package/dist/board/Classics.d.ts.map +1 -1
  35. package/dist/board/Classics.js +51 -39
  36. package/dist/board/Classics.js.map +1 -1
  37. package/dist/board/HexSkirmish.d.ts.map +1 -1
  38. package/dist/board/HexSkirmish.js +69 -20
  39. package/dist/board/HexSkirmish.js.map +1 -1
  40. package/dist/board/Tactics.d.ts +7 -0
  41. package/dist/board/Tactics.d.ts.map +1 -1
  42. package/dist/board/Tactics.js +2 -2
  43. package/dist/board/Tactics.js.map +1 -1
  44. package/dist/core/Achievements.d.ts.map +1 -1
  45. package/dist/core/Achievements.js +3 -1
  46. package/dist/core/Achievements.js.map +1 -1
  47. package/dist/core/Math.d.ts +14 -0
  48. package/dist/core/Math.d.ts.map +1 -0
  49. package/dist/core/Math.js +16 -0
  50. package/dist/core/Math.js.map +1 -0
  51. package/dist/core/index.d.ts +1 -0
  52. package/dist/core/index.d.ts.map +1 -1
  53. package/dist/core/index.js +1 -0
  54. package/dist/core/index.js.map +1 -1
  55. package/dist/mw_games.global.js +102 -102
  56. package/dist/mwl/actors.d.ts +46 -2
  57. package/dist/mwl/actors.d.ts.map +1 -1
  58. package/dist/mwl/actors.js +46 -2
  59. package/dist/mwl/actors.js.map +1 -1
  60. package/dist/mwl/carryover.d.ts +7 -0
  61. package/dist/mwl/carryover.d.ts.map +1 -1
  62. package/dist/mwl/carryover.js +7 -0
  63. package/dist/mwl/carryover.js.map +1 -1
  64. package/dist/mwl/catalog.d.ts +21 -1
  65. package/dist/mwl/catalog.d.ts.map +1 -1
  66. package/dist/mwl/catalog.js +0 -0
  67. package/dist/mwl/catalog.js.map +1 -1
  68. package/dist/mwl/compiler.d.ts +70 -3
  69. package/dist/mwl/compiler.d.ts.map +1 -1
  70. package/dist/mwl/compiler.js +70 -3
  71. package/dist/mwl/compiler.js.map +1 -1
  72. package/dist/mwl/conditions.d.ts +10 -1
  73. package/dist/mwl/conditions.d.ts.map +1 -1
  74. package/dist/mwl/conditions.js +10 -1
  75. package/dist/mwl/conditions.js.map +1 -1
  76. package/dist/mwl/content.d.ts +15 -0
  77. package/dist/mwl/content.d.ts.map +1 -1
  78. package/dist/mwl/content.js +13 -0
  79. package/dist/mwl/content.js.map +1 -1
  80. package/dist/mwl/expression.d.ts +21 -0
  81. package/dist/mwl/expression.d.ts.map +1 -1
  82. package/dist/mwl/expression.js +21 -0
  83. package/dist/mwl/expression.js.map +1 -1
  84. package/dist/mwl/fengari.d.ts +12 -1
  85. package/dist/mwl/fengari.d.ts.map +1 -1
  86. package/dist/mwl/fengari.js +12 -1
  87. package/dist/mwl/fengari.js.map +1 -1
  88. package/dist/mwl/grammar.d.ts +45 -1
  89. package/dist/mwl/grammar.d.ts.map +1 -1
  90. package/dist/mwl/grammar.js +45 -1
  91. package/dist/mwl/grammar.js.map +1 -1
  92. package/dist/mwl/hooks.d.ts +45 -1
  93. package/dist/mwl/hooks.d.ts.map +1 -1
  94. package/dist/mwl/hooks.js +45 -1
  95. package/dist/mwl/hooks.js.map +1 -1
  96. package/dist/mwl/index.d.ts +1 -1
  97. package/dist/mwl/index.d.ts.map +1 -1
  98. package/dist/mwl/index.js +1 -1
  99. package/dist/mwl/index.js.map +1 -1
  100. package/dist/mwl/persistence.d.ts +32 -0
  101. package/dist/mwl/persistence.d.ts.map +1 -1
  102. package/dist/mwl/persistence.js +32 -0
  103. package/dist/mwl/persistence.js.map +1 -1
  104. package/dist/mwl/readers.d.ts +24 -2
  105. package/dist/mwl/readers.d.ts.map +1 -1
  106. package/dist/mwl/readers.js +27 -4
  107. package/dist/mwl/readers.js.map +1 -1
  108. package/dist/mwl/report.d.ts +21 -2
  109. package/dist/mwl/report.d.ts.map +1 -1
  110. package/dist/mwl/report.js +21 -2
  111. package/dist/mwl/report.js.map +1 -1
  112. package/dist/mwl/runtime.d.ts +72 -0
  113. package/dist/mwl/runtime.d.ts.map +1 -1
  114. package/dist/mwl/runtime.js +274 -70
  115. package/dist/mwl/runtime.js.map +1 -1
  116. package/dist/mwl/schema.d.ts +57 -1
  117. package/dist/mwl/schema.d.ts.map +1 -1
  118. package/dist/mwl/schema.js +99 -9
  119. package/dist/mwl/schema.js.map +1 -1
  120. package/dist/mwl/scripts.d.ts +12 -1
  121. package/dist/mwl/scripts.d.ts.map +1 -1
  122. package/dist/mwl/scripts.js +12 -1
  123. package/dist/mwl/scripts.js.map +1 -1
  124. package/dist/mwl/utils.d.ts +2 -0
  125. package/dist/mwl/utils.d.ts.map +1 -1
  126. package/dist/mwl/utils.js +4 -1
  127. package/dist/mwl/utils.js.map +1 -1
  128. package/dist/rpg/Collision.d.ts.map +1 -1
  129. package/dist/rpg/Collision.js +1 -3
  130. package/dist/rpg/Collision.js.map +1 -1
  131. package/dist/rpg/GameState.d.ts +2 -2
  132. package/dist/rpg/GameState.js +2 -2
  133. package/dist/two-d/pixi-interop.d.ts +28 -10
  134. package/dist/two-d/pixi-interop.d.ts.map +1 -1
  135. package/dist/two-d/pixi-interop.js +36 -10
  136. package/dist/two-d/pixi-interop.js.map +1 -1
  137. package/dist/two-d/render/Camera.d.ts +11 -0
  138. package/dist/two-d/render/Camera.d.ts.map +1 -1
  139. package/dist/two-d/render/Camera.js +14 -3
  140. package/dist/two-d/render/Camera.js.map +1 -1
  141. package/dist/two-d/render/ColorTransformBatcher.d.ts +7 -1
  142. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  143. package/dist/two-d/render/ColorTransformBatcher.js +10 -1
  144. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  145. package/dist/two-d/render/ImageModifiers.d.ts +40 -0
  146. package/dist/two-d/render/ImageModifiers.d.ts.map +1 -1
  147. package/dist/two-d/render/ImageModifiers.js +67 -4
  148. package/dist/two-d/render/ImageModifiers.js.map +1 -1
  149. package/dist/two-d/render/PaletteRemap.d.ts.map +1 -1
  150. package/dist/two-d/render/PaletteRemap.js +12 -1
  151. package/dist/two-d/render/PaletteRemap.js.map +1 -1
  152. package/dist/two-d/render/Projectile.d.ts +16 -0
  153. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  154. package/dist/two-d/render/Projectile.js +14 -0
  155. package/dist/two-d/render/Projectile.js.map +1 -1
  156. package/dist/two-d/render/ScreenEffects.d.ts +42 -4
  157. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  158. package/dist/two-d/render/ScreenEffects.js +64 -9
  159. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  160. package/dist/two-d/render/Shape2D.d.ts +22 -2
  161. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  162. package/dist/two-d/render/Shape2D.js +31 -2
  163. package/dist/two-d/render/Shape2D.js.map +1 -1
  164. package/dist/two-d/render/StatusVisuals.d.ts +41 -23
  165. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  166. package/dist/two-d/render/StatusVisuals.js +65 -26
  167. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  168. package/dist/two-d/render/TerrainGraphics.d.ts.map +1 -1
  169. package/dist/two-d/render/TerrainGraphics.js.map +1 -1
  170. package/dist/two-d/render/TerrainGraphicsLayer.d.ts +55 -0
  171. package/dist/two-d/render/TerrainGraphicsLayer.d.ts.map +1 -0
  172. package/dist/two-d/render/TerrainGraphicsLayer.js +54 -0
  173. package/dist/two-d/render/TerrainGraphicsLayer.js.map +1 -0
  174. package/dist/two-d/render/TintedSprite.js +2 -2
  175. package/dist/two-d/render/TintedSprite.js.map +1 -1
  176. package/dist/two-d/render/index.d.ts +5 -3
  177. package/dist/two-d/render/index.d.ts.map +1 -1
  178. package/dist/two-d/render/index.js +3 -2
  179. package/dist/two-d/render/index.js.map +1 -1
  180. package/dist/two-d/ui/ListView.d.ts +9 -0
  181. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  182. package/dist/two-d/ui/ListView.js +16 -6
  183. package/dist/two-d/ui/ListView.js.map +1 -1
  184. package/dist/two-d/ui/MarkupText.d.ts +66 -0
  185. package/dist/two-d/ui/MarkupText.d.ts.map +1 -0
  186. package/dist/two-d/ui/MarkupText.js +156 -0
  187. package/dist/two-d/ui/MarkupText.js.map +1 -0
  188. package/dist/two-d/ui/RichLabel.d.ts +7 -1
  189. package/dist/two-d/ui/RichLabel.d.ts.map +1 -1
  190. package/dist/two-d/ui/RichLabel.js +20 -9
  191. package/dist/two-d/ui/RichLabel.js.map +1 -1
  192. package/dist/two-d/ui/index.d.ts +4 -2
  193. package/dist/two-d/ui/index.d.ts.map +1 -1
  194. package/dist/two-d/ui/index.js +2 -1
  195. package/dist/two-d/ui/index.js.map +1 -1
  196. package/dist/two-d/ui/markup.d.ts +63 -1
  197. package/dist/two-d/ui/markup.d.ts.map +1 -1
  198. package/dist/two-d/ui/markup.js +69 -4
  199. package/dist/two-d/ui/markup.js.map +1 -1
  200. package/dist/version.d.ts +1 -1
  201. package/dist/version.js +1 -1
  202. package/package.json +5 -1
  203. package/tools/classic-html.d.mts +6 -0
  204. package/tools/classic-html.mjs +61 -0
  205. package/tools/mwl.mjs +12 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,189 @@ All notable changes to `mwg` are documented here. Format follows
5
5
  [Semantic Versioning](https://semver.org/) as of this first release - a 0.y.z version means
6
6
  the public API may still change between minor versions.
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ## [0.7.9] - 2026-09-12
11
+
12
+ ### Added
13
+
14
+ - `tools/sbom.mjs` with `npm run sbom`/`npm run sbom:check` (item 315): a CycloneDX 1.6 SBOM
15
+ (`sbom.cdx.json`) for the framework, built from `package.json` and `package-lock.json` alone
16
+ with no network access or added dependency, and checked in CI so a dependency change moves the
17
+ supply-chain document with it.
18
+ - `core.clamp`, replacing two byte-identical private `clamp` helpers in `rpg.Collision` and
19
+ `two-d.render.Camera`.
20
+ - `two-d/pixi-interop`'s `registerBuiltinPipes()` (item 297), plus re-exporting
21
+ `TilingSpritePipe`/`NineSliceSpritePipe` themselves, for a consumer bundler that tree-shook
22
+ a built-in Pixi pipe away despite importing the full `pixi.js` package.
23
+ - `ui.ListView.tapRow(index)` (item 299), the `IconGrid.tapCell`-shaped public method for the
24
+ select-and-confirm-in-one-step tap a row's own `pointerdown` handler already did.
25
+ - `assets.setAssetMap(map)` (item 300): hands `resolve`/`has`/`paths`/`isCompiled` a game's
26
+ own path-to-URI map directly, taking priority over `window.__MWG_ASSETS__` while set, for a
27
+ game whose own bundler compiles assets a different way than `tools/compile-resources`.
28
+ - `two-d.render.StatusVisuals.flash(color, strength, duration)` (item 301): a one-shot,
29
+ linearly-decaying additive pulse layered on top of whatever statuses are active.
30
+ - `two-d.render.ScreenEffects.sequence(steps)` and a new `hold` phase (item 302): chains
31
+ fade/hold/flash steps end to end as one call, for the hold-then-fade-back transition
32
+ `fadeOut`/`fadeIn`/`flash` alone cannot express; `update` keeps returning false at every
33
+ step boundary, true only once the whole sequence finishes.
34
+ - `two-d.render.Camera.shakeScreen(intensity, duration)` (item 303): `shake` taking screen
35
+ pixels instead of world units.
36
+ - `mwl.MwlValidationOptions.rowIdScope` (item 304): `'file'` scopes `MWL_DUPLICATE_ID`'s
37
+ `tag:id` key per source file instead of the whole compiled catalog, for a game whose id
38
+ convention reuses ids across files on purpose.
39
+ - `two-d.render.spriteColorMatrix(sprite, matrix)` (item 309): attaches any of
40
+ `blendMatrix`/`channelScaleMatrix`/`channelSwapMatrix`/`colorShiftMatrix` (or a game's own
41
+ matrix) to a sprite as a `ColorMatrixFilter`, without needing a direct `pixi.js` import just
42
+ to construct that one class.
43
+ - `assets.load` now supplies Pixi's `Assets.add` a `format` hint (the original path's own
44
+ extension) whenever the resolved `src` is a compiled build's `data:` URI (item 308), since
45
+ the URI itself carries no extension for Pixi's resolver to pick a parser from. No new
46
+ argument: a game still calls `load(['tiles.png'])` exactly as before.
47
+ - `[item]` accepts `image`/`icon` (item 307), carried through
48
+ `MwlItemDefinition.image`/`.icon`; both were already recognised as asset attributes by the
49
+ manifest scanner, so this closes the schema gate that was blocking them.
50
+ - `tools/classic-html.mjs`'s `toClassicScript(html)` (item 306), shipped in the npm package:
51
+ rewrites a bundler build's `<script type="module">` entry tag to a classic deferred one, so
52
+ the page opens via `file://`. `tools/emit-page.mjs` now uses it too, instead of its own copy
53
+ of the same rewrite.
54
+ - `two-d.render.applyAllImageModifiers(sprite, parsed, probe?, scale?)` (item 310): runs
55
+ `applyTextureModifiers`'s exact pixel-level baking and `applyImageModifiers`'s sprite-level
56
+ modifiers in the order a caller with a `~BLEND`/`~ROTATE` path needs, so the two no longer
57
+ have to be driven by hand.
58
+ - `two-d.render.createLayers(parent, names)` (item 312): builds one labeled `Node2D` per name,
59
+ attached to `parent` in the order given and returned keyed by name, for the conventionally
60
+ ordered layer stack (terrain, units, effects, UI, ...) a game otherwise hand-wires.
61
+ - `ui.RichLabel`/`ui.MarkupText` take `tagStyles` (item 313), the same custom-inline-tag option a
62
+ bare `Text2D` takes. `markup.parseMarkup` gained `MarkupOptions.tags` and a `MarkupSpan.tag`
63
+ field so the parser stays renderer-neutral: `MarkupText` applies each tag's Pixi style to its
64
+ run and measures under it, while `RichLabel` keeps a registered tag as a real element for
65
+ `HTMLText` and still escapes an unregistered one.
66
+ - `two-d.render.Projectile` takes an optional `animation` (item 311): the projectile advances
67
+ the flight frames with its own elapsed time and reports the current one through
68
+ `frame`/`frameOffset`, so a missile with `[missile_frame]` art no longer needs a parallel
69
+ animation and clock kept in step by the game.
70
+
71
+ ### Changed
72
+
73
+ - **Breaking:** `two-d.render.StatusVisuals` now composes every active status's colour
74
+ additively (each channel clipping at 1) instead of one status winning by declaration order,
75
+ and never writes the multiply `tint` any more, so a sprite's own identity tint survives
76
+ underneath (item 301). `TintTarget` is now just `{ colorAdd: number }`; `lerpTint`/
77
+ `resetColor` are no longer part of its contract.
78
+
79
+ ### Fixed
80
+
81
+ - Documented, in `tools/mwl.mjs` and README's MWL section, that a game needing more than
82
+ `mwl build`'s three standard files should write its own build script against the public MWL
83
+ library API rather than look for a CLI flag (item 305).
84
+ - Corrected two contradictory doc comments (item 298): `Shape2D.ts` claimed `Container2D` was
85
+ a type alias a game could not `new`, when it is a value re-export and always was; and
86
+ `pixi-interop.ts`'s "no registration needed" guarantee is `pixi.js`'s own `sideEffects` list
87
+ surviving the consumer's own bundler, not a universal property.
88
+ - `withTextureCanvas`'s pixel-level modifiers (`~BLIT`/`~MASK`/`~BLEND`/`~ROTATE` in
89
+ `applyTextureModifiers`, and `recolorTexture`) called a real
90
+ `CanvasRenderingContext2D.putImageData` with a plain `{data, width, height}` object, which a
91
+ real browser rejects (it needs an actual `ImageData`); a test-supplied `probe.createCanvas`
92
+ never hit the real canvas path, so the bug had no unit-test coverage. `withTextureCanvas` now
93
+ wraps the real context's `putImageData` to build a proper `ImageData` itself, so every
94
+ pixel-level modifier keeps writing the same plain object.
95
+ - `[filter]`/`[have_unit]` `x`/`y` now accept the comma-separated lists and inclusive ranges
96
+ (`x=1,2,4-5`) a moveto event's own `x`/`y` already did (item 314); the schema types them
97
+ `coordinate` and `unitMatchesFilter` reads them through the one `coordinateMatches`.
98
+
99
+ ## [0.7.8] - 2026-09-12
100
+
101
+ ### Added
102
+
103
+ - Unit identity usable by the AI. MWL units now carry their own `name`, `role`/function and
104
+ `can_recruit` leader flag: `[unit]` sets them, a side's own leader is `can_recruit`, `[role]`
105
+ stamps the role onto the units it matches, `[store_unit]`/save keep them, and `unitMatchesFilter`
106
+ reads all three - which also wires up the `can_recruit` the `[filter]` schema already allowed but
107
+ the runtime ignored. On the AI side, `ScoreSubject` and `HeuristicCandidate` carry
108
+ `type`/`role`/`can_recruit`/`name`, and the new `subjectsWhere`/`ScoreSubjectFilter` select a world
109
+ on any of them, so a mind can find "the enemy leader" without re-deriving it from ids.
110
+ - Leader identity on the unit (item 296). An autospawned `[side] leader=` unit carries `leader: true`
111
+ beside its `can_recruit`, `[store_unit]`/unstore and a save keep it, and `unitMatchesFilter` reads
112
+ it, so `[filter] leader=yes` finds the side's own leader without recomputing
113
+ `sides[id].leader === id`.
114
+ - One variable-path resolver for every reader (item 295). `$name` resolution, `[condition]`/
115
+ `[filter_condition]` variable reads, message interpolation and the bare `$name` copy all resolve
116
+ through the same path walker `set_variable` writes with, so a dotted name like `a.b` reads what
117
+ `[set_variable] name=a.b` wrote. Array indices are in scope (`a[0].b` reads the node `a.0.b` or
118
+ `a[0].b` wrote), an index that is not a whole number is refused by name rather than becoming a
119
+ literal key, and the `id` schema type accepts brackets so such a name compiles.
120
+ - `TerrainGraphicsLayer` (item 257): the renderer half of `[terrain_graphics]`, drawing
121
+ `resolveTerrainGraphics`'s placements as one `Sprite2D` per placement, in `layer` order (a stable
122
+ sort, so the rule pass's own row-major walk survives within a layer) at the pixel position a
123
+ caller-supplied `project` callback reports, with images resolved through the asset resolver.
124
+ `setPlacements` redraws in place.
125
+ - The canvas backend for inline markup, closing the three pieces item 258's acceptance still
126
+ named as open: `positionMarkupLines` places `layoutMarkupLines`'s lines into positioned
127
+ `PositionedMarkupSpan` runs under a `MarkupLayout`'s `direction`/`align`, so an `rtl` line flows
128
+ right to left and alignment defaults to the direction's own edge, and `MarkupText` draws them as
129
+ the counterpart to `RichLabel`'s HTML text - one `Text2D` per styled run, one `Sprite2D` per
130
+ `<img>` span resolved through the asset resolver, so an image is drawn rather than left to the
131
+ caller to position. An RTL sample is now covered by `tests/markup.test.ts`.
132
+
133
+ ### Fixed
134
+
135
+ - One rule for the `id` value type, shared by the schema and `mwl.readers`. The schema accepts a
136
+ bracketed path like `a[0].b` as an `id` (a variable name legitimately carries index brackets),
137
+ but `readAttributes`' `id` and `id-list` kept a stricter copy of the pattern, so an adapter
138
+ reading a variable-name attribute raised `MWL_FIELD_TYPE` for a name the compiler had already
139
+ accepted. Both now call the exported `isMwlId`. One test in `tests/mwl.test.ts`.
140
+ - `actors.sell` is transactional again. It ignored the result of `Inventory.add`, so selling into
141
+ a shop stock with no room paid the seller and lost the item: two potions sold into a
142
+ capacity-1 stock produced 10 gold from nothing and left the potions nowhere. It now rolls the
143
+ bag back and refuses, exactly as `buy` already did for a full bag. One test in
144
+ `tests/shop.test.ts`.
145
+ - `board.goScore` counts territory again. Its `group` helper returned nothing for an empty
146
+ square, so the area-scoring loop never saw an enclosed empty region and only stones were
147
+ scored: four stones ringing a 3x3 board reported 4 instead of 9. `group` now groups connected
148
+ cells by value with `null` included, which leaves `liberties`/`playGo` unchanged because they
149
+ only ever pass a stone. One test, plus new coverage for `rollBackgammonDice`, a foundation
150
+ move from a tableau column, and `DiceCup.clearKept`, in `tests/classics.test.ts`.
151
+ - `board.addTacticalUnit` remembers each unit's own action budget, so `endTacticalTurn` refreshes
152
+ `actions` to it instead of a hardcoded two. A unit created with `actions: 3` was silently reset
153
+ to 2 every turn; the per-turn maximum is now `TacticalUnit.maxActions`, filled from the initial
154
+ `actions` when the caller does not set it. Six tests in `tests/tactics.test.ts`, which also
155
+ cover the overwatch reaction and attack paths that had none.
156
+ - `board.backgammonMoves` follows the bearing-off rules. It offered a bear-off from any point
157
+ whose roll reached past the off edge, so at the opening position a 6 came off from point 18
158
+ while checkers still sat on 0, 11 and 16. A bear-off now needs every checker in the home
159
+ board with none on the bar; an exact roll still takes any home checker, and an over-roll takes
160
+ only the checker nearest the off edge, since a checker must never skip past another. Three
161
+ tests in `tests/classics.test.ts`.
162
+ - An `[if]` branch no longer tries to execute its own `[condition]` child. The schema allows a
163
+ branch to carry one, but the executor ran every child, so an `[if]` whose condition held threw
164
+ `unknown MWL command: condition` instead of running its body; a false condition hid it because
165
+ the body never ran. `[if]`/`[else]` now run their command children only, the same rule
166
+ `[while]` already followed. Two tests in `tests/mwl-conditions.test.ts`.
167
+ - An `[else]` following an `[if]` is that branch's other half, so only one of the two runs. A
168
+ taken `[if]` used to run its own body and then fall through to the `[else]` as well, so both
169
+ branches executed; the `[else]` is now skipped when the `[if]` was taken, and run as the
170
+ fallback when it was not. Independent pairs still work, and a free-standing `[else]` with no
171
+ `[if]` before it still runs. Two tests in `tests/mwl-conditions.test.ts`.
172
+ - `[while]` had the same defect as `[if]`, so a loop body carrying a `[condition]` child threw.
173
+ It now runs its command children too. One test in `tests/mwl-variables.test.ts`.
174
+ - The variable-path readers item 295 named are now complete, closing three that were still flat:
175
+ a dialogue `[choice]`'s `variable=` gate, `[store_unit]`/`[unstore_unit]`/`[recall]`'s stored
176
+ list, and the hook host's `setVariable`, plus the public `execute()`'s `set_variable`. An
177
+ indexed path now builds a real array (`a[0]`, `a[1]`), so a stored list and an indexed write
178
+ agree on their shape. One test each in `tests/mwl-dialogue.test.ts`, `tests/mwl-actions.test.ts`
179
+ and `tests/mwl.test.ts`, and the `a[0].b` test now asserts the array.
180
+
181
+ ### Changed
182
+
183
+ - `board.skirmishMoves` computes every reachable cell from one Dijkstra pass over the map
184
+ instead of one per candidate cell. The old per-cell search also re-sorted its own frontier
185
+ every step and `shift()`ed it, so it went quadratic in path length; the pass now uses a
186
+ binary min-heap. Behaviour is unchanged, verified by a differential run of the old and new
187
+ implementations over 58 randomised terrain maps. A `[complexity]` test keeps 20 calls on a
188
+ 40x40 map under a ceiling far below the old cost, and a test pins that a cell held by
189
+ another unit is never offered as a move.
190
+
8
191
  ## [0.7.7] - 2026-09-11
9
192
 
10
193
  ### Added
@@ -260,9 +443,6 @@ the public API may still change between minor versions.
260
443
  - A stack keys on `key` alone, as Java's `stacks.get(key)` does. The old rule wanted the same key
261
444
  *and* the same origin, which this framework had invented. A caller that reused one key for two
262
445
  different targets now sees their lines stacked together, and has to give each target its own key.
263
-
264
- ### Changed
265
-
266
446
  - One side identity in `MwlWorld` (item 277): `unit.side`, `MwlMessage.side`, `MwlMap.starts` keys
267
447
  and every `side`/`side_filter` attribute now hold the string `id` `[side]` declares, so a named
268
448
  side (`id=rebels`) works throughout. `MwlSideRef` is just that id. The `[side] id` and the other
package/README.md CHANGED
@@ -12,12 +12,12 @@ of their own; improvements to `mwg`'s own files are shared back.
12
12
  playable in the browser with no download, plus the generated API reference.
13
13
 
14
14
  **[AI project prompt](https://datamoc.github.io/mwg/ai-prompt/)**: a copy-ready prompt for
15
- planning or porting a demanding game with mwg, with links to the [mwg reference](REFERENCE.md)
15
+ planning or porting a demanding game with mwg, with links to the [mwg reference](https://github.com/datamoc/mwg/blob/main/REFERENCE.md)
16
16
  and the [mwg Pixel Dungeon study](https://datamoc.github.io/mwg-pixel-dungeon/).
17
17
 
18
- > **Status: pre-alpha (v0.7.4).** Every module in the shared floor below, plus optional
18
+ > **Status: pre-alpha (v0.7.7).** Every module in the shared floor below, plus optional
19
19
  > 3D, mobile (Capacitor) and desktop (WebView2) packaging, is built and tested - see
20
- > [ROADMAP.md](ROADMAP.md) for the full, numbered history.
20
+ > [ROADMAP.md](https://github.com/datamoc/mwg/blob/main/ROADMAP.md) for the full, numbered history.
21
21
  >
22
22
  > 0.4.0 was the reshaping release: the renderer moved out of `mwg/core`, `render`/`ui`/`stage`
23
23
  > became `mwg/two-d`, and a set of names that meant several things each were made to mean one.
@@ -29,8 +29,8 @@ and the [mwg Pixel Dungeon study](https://datamoc.github.io/mwg-pixel-dungeon/).
29
29
  > a name beginning with A, 2.0 one beginning with B, and so on. None of the names are chosen
30
30
  > yet, and nothing depends on them until they are.
31
31
  >
32
- > **API stability:** everything documented in [REFERENCE.md](REFERENCE.md) and
33
- > [API_REPORT.md](API_REPORT.md) is meant to be stable from 1.0 on. Anything that is not carries
32
+ > **API stability:** everything documented in [REFERENCE.md](https://github.com/datamoc/mwg/blob/main/REFERENCE.md) and
33
+ > [API_REPORT.md](https://github.com/datamoc/mwg/blob/main/API_REPORT.md) is meant to be stable from 1.0 on. Anything that is not carries
34
34
  > an `@experimental` tag in its own doc comment, and is called out as experimental in the release
35
35
  > notes that introduce it, so it can still change or disappear without a major version. A rename
36
36
  > or a removal is deprecated first: the old name keeps working, its doc comment carries
@@ -143,7 +143,17 @@ them rather than pretending otherwise:
143
143
  The practical effect: resources are **compiled at build time**, so at runtime every lookup
144
144
  is synchronous. Game code never awaits an asset. The developer-side scripts behind this
145
145
  and the other workflows (translation editing, benchmarks, packaging) are listed in
146
- [tools.md](tools.md).
146
+ [tools.md](https://github.com/datamoc/mwg/blob/main/tools.md).
147
+
148
+ A game built with its own bundler (Vite, say, rather than this repo's own `vite.lib.config.ts`
149
+ IIFE) hits the same ES-module block on its own entry tag - a bundler's default output is
150
+ `<script type="module" crossorigin src="...">`, which `file://` refuses the same way. Rather
151
+ than every such game reinventing that one rewrite (item 306),
152
+ `tools/classic-html.mjs`'s `toClassicScript(html)` does it: given the built page's HTML, it
153
+ returns the same HTML with that tag rewritten to `<script defer src="...">`, or `null` when it
154
+ finds no such tag - the guard against running it against an unbuilt dev template by mistake.
155
+ The bundle itself still has to already be a classic script (an IIFE or UMD build, not further
156
+ ES module output); this only rewrites the tag pointing at it.
147
157
 
148
158
  ## Capability spec
149
159
 
@@ -387,7 +397,7 @@ with `advanceToInput`.
387
397
 
388
398
  ## Roadmap
389
399
 
390
- See [ROADMAP.md](ROADMAP.md) for the full, numbered build order and implementation notes.
400
+ See [ROADMAP.md](https://github.com/datamoc/mwg/blob/main/ROADMAP.md) for the full, numbered build order and implementation notes.
391
401
  The optional 3D group is now implemented without changing the existing 2D entry point.
392
402
 
393
403
  ## MWL
@@ -425,6 +435,17 @@ saves. Asset attributes such as `image`, `image_icon`, `profile`, `icon`, `file`
425
435
  sound lists, Wesnoth sound ranges such as `human-hit-[1~5].ogg`, and image
426
436
  modifiers. Nested transform arguments are not mistaken for separate assets.
427
437
  Item slots, formulas, hooks, and business rules remain defined by the game.
438
+ `[item]` itself carries `image`/`icon` (item 307), so an inventory item can author its own
439
+ sprite or icon the same way `[monster]`/`[unit_type]`/`[object]`/`[story]` already could; the
440
+ manifest scanner recognised these names on any node before the schema let `[item]` use them,
441
+ so this only closes that one gate rather than adding new asset-collection behaviour.
442
+
443
+ A game needing more than `mwl build`'s three standard files - its own extra generated module,
444
+ or a cross-table check this CLI has no flag for - should not look for a flag to add: every
445
+ function that command calls (`compileSources`, `emitArtifacts`, `validateCatalog`,
446
+ `contentReport`) is public from `@datamoc/mw_games/mwl`, so that game's own small Node build
447
+ script, written against the same library API `tools/mwl.mjs` itself uses, is the extension
448
+ point (item 305).
428
449
 
429
450
  Campaign metadata can be authored with a `[campaign]` tag inside `[game]`. It requires an
430
451
  `id` and accepts `name`, `title`, `description`, and `start_scene`; scenario and extension
@@ -1 +1 @@
1
- {"version":3,"file":"Shop.d.ts","sourceRoot":"","sources":["../../src/actors/Shop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,KAAK;IACrB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACnC;AAED,kGAAkG;AAClG,wBAAgB,GAAG,CAClB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GAClB,OAAO,CAkBT;AAED,iGAAiG;AACjG,wBAAgB,IAAI,CACnB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GAClB,OAAO,CAWT"}
1
+ {"version":3,"file":"Shop.d.ts","sourceRoot":"","sources":["../../src/actors/Shop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,KAAK;IACrB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACnC;AAED,kGAAkG;AAClG,wBAAgB,GAAG,CAClB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GAClB,OAAO,CAkBT;AAED,iGAAiG;AACjG,wBAAgB,IAAI,CACnB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GAClB,OAAO,CAcT"}
@@ -26,7 +26,10 @@ export function sell(wallet, stock, bag, id, quantity, options) {
26
26
  if (!item || item.quantity < quantity)
27
27
  return false;
28
28
  bag.remove(id, quantity);
29
- stock.add({ ...item, quantity });
29
+ if (!stock.add({ ...item, quantity })) {
30
+ bag.add({ ...item, quantity }); //the shop's stock had no room - put the item back
31
+ return false;
32
+ }
30
33
  wallet.setBase(options.currency, wallet.base(options.currency) + price.sell * quantity);
31
34
  return true;
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Shop.js","sourceRoot":"","sources":["../../src/actors/Shop.ts"],"names":[],"mappings":"AAsCA,kGAAkG;AAClG,MAAM,UAAU,GAAG,CAClB,MAAiB,EACjB,KAAgB,EAChB,GAAc,EACd,EAAU,EACV,QAAgB,EAChB,OAAoB;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IAEvD,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,kDAAkD;QACvF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC;AACb,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,IAAI,CACnB,MAAiB,EACjB,KAAgB,EAChB,GAAc,EACd,EAAU,EACV,QAAgB,EAChB,OAAoB;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpD,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzB,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"Shop.js","sourceRoot":"","sources":["../../src/actors/Shop.ts"],"names":[],"mappings":"AAsCA,kGAAkG;AAClG,MAAM,UAAU,GAAG,CAClB,MAAiB,EACjB,KAAgB,EAChB,GAAc,EACd,EAAU,EACV,QAAgB,EAChB,OAAoB;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IAEvD,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,kDAAkD;QACvF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC;AACb,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,IAAI,CACnB,MAAiB,EACjB,KAAgB,EAChB,GAAc,EACd,EAAU,EACV,QAAgB,EAChB,OAAoB;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpD,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,kDAAkD;QAClF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -135,6 +135,14 @@ export interface HeuristicCandidate<A = unknown> {
135
135
  * `distance` is special: with a `keep_away` aspect it is penalised by `keepAwayScore`.
136
136
  */
137
137
  factors?: Readonly<Record<string, number>>;
138
+ /** the acting unit's type, when the candidate carries one */
139
+ type?: string;
140
+ /** the acting unit's role/function, e.g. `leader` or `courier` */
141
+ role?: string;
142
+ /** whether the acting unit can recruit */
143
+ can_recruit?: boolean;
144
+ /** the acting unit's own name */
145
+ name?: string;
138
146
  }
139
147
  export interface HeuristicContext {
140
148
  aspects: Aspects;
@@ -1 +1 @@
1
- {"version":3,"file":"Heuristics.d.ts","sourceRoot":"","sources":["../../src/ai/Heuristics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Heuristics.d.ts","sourceRoot":"","sources":["../../src/ai/Heuristics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Heuristics.js","sourceRoot":"","sources":["../../src/ai/Heuristics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Heuristics.js","sourceRoot":"","sources":["../../src/ai/Heuristics.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { AlphaBetaGame, AlphaBetaOptions, AlphaBetaResult } from './search.ts';
2
2
  export { alphaBetaSearch } from './search.ts';
3
3
  export type { AlphaBetaGame, AlphaBetaOptions, AlphaBetaResult, LuaAlphaBetaFunctions, LuaSearchValueAdapter, } from './search.ts';
4
- export { personalScoreView, scoreWith, sideScoreView } from './score.ts';
4
+ export { personalScoreView, scoreWith, sideScoreView, subjectsWhere } from './score.ts';
5
5
  export { Aspects, Difficulty, Goals, HeuristicAI, RecruitmentPattern, defaultWeigh, goalScore, keepAwayScore, } from './Heuristics.ts';
6
6
  export type { AspectValue, AspectValues, DifficultyLevel, Goal, GoalKind, HeuristicCandidate, HeuristicContext, HeuristicDecision, HeuristicStage, } from './Heuristics.ts';
7
- export type { ScorePersonality, ScoreSubject, ScoreView } from './score.ts';
7
+ export type { ScorePersonality, ScoreSubject, ScoreSubjectFilter, ScoreView } from './score.ts';
8
8
  /** JSON-shaped values are the only values that cross the AI boundary. */
9
9
  export type AIValue = null | boolean | number | string | AIValue[] | {
10
10
  readonly [key: string]: AIValue;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
package/dist/ai/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { alphaBetaSearch } from './search.js';
2
2
  export { alphaBetaSearch } from './search.js';
3
- export { personalScoreView, scoreWith, sideScoreView } from './score.js';
3
+ export { personalScoreView, scoreWith, sideScoreView, subjectsWhere } from './score.js';
4
4
  export { Aspects, Difficulty, Goals, HeuristicAI, RecruitmentPattern, defaultWeigh, goalScore, keepAwayScore, } from './Heuristics.js';
5
5
  const DEFAULT_MAX_STEPS = 10_000;
6
6
  const DEFAULT_MAX_MILLISECONDS = 16;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAS9C,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACN,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,aAAa,GACb,MAAM,iBAAiB,CAAC;AA6FzB,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IAKxB,YAAY,OAAO,GAAwB,EAAE;QAJ5B,WAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC9C,WAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;QAIpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,uBAAuB,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC3E,yBAAyB,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;IACnG,CAAC;IAED,QAAQ,CAAC,KAAwB;QAChC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACpG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,KAAsB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAC9E,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC;QAC1G,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,yBAAyB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,GAAS,EAAE;YAC7B,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,QAAQ,IAAI,cAAc,EAAE,GAAG,OAAO,GAAG,eAAe;gBAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACzG,CAAC,CAAC;QACF,MAAM,OAAO,GAAsB;YAClC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,KAAK;YACL,MAAM,EAAE,GAAG,EAAE;gBACZ,UAAU,EAAE,CAAC;gBACb,OAAO,MAAM,EAAE,CAAC;YACjB,CAAC;YACD,UAAU;YACV,IAAI,CAAC,IAAI,EAAE,OAAO;gBACjB,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC9D,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;SACD,CAAC;QAEF,IAAI,MAAM,GAAoB,IAAI,CAAC;QACnC,IAAI,UAA8B,CAAC;QACnC,IAAI,MAAM,GAAyB,MAAM,CAAC;QAC1C,IAAI,CAAC;YACJ,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxC,UAAU,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACvD,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpC,MAAM;YACP,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,MAAM,GAAG,WAAW,CAAC;iBACvD,IAAI,KAAK,YAAY,qBAAqB;gBAAE,MAAM,GAAG,iBAAiB,CAAC;;gBACvE,MAAM,KAAK,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAe;YAC5B,KAAK,EAAE,OAAO;YACd,MAAM;YACN,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK;YACL,MAAM;SACN,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,oFAAoF;IACpF,MAAM,CACL,IAAgC,EAChC,KAAY,EACZ,OAAyB;QAEzB,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACV,OAAO;YACN,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1F,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAyB;QACpC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACD;AAED,gFAAgF;AAChF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC1C;QACC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAED,mFAAmF;AACnF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/C;QACC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACrC,CAAC;CACD;AAED,SAAS,cAAc,CAAC,MAAuB;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IACC,CAAC,MAAM;QACP,OAAO,MAAM,KAAK,QAAQ;QAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,MAAM,CAAC,IAAI,EACX,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAa,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,UAAU,CAAC,KAAK,CAAY,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC/E,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,OAAO,GAAG,EAAE;QACX,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,GAAG,aAAa,CAAC;IAC9B,CAAC,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,IAAY;IAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,IAAY;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
package/dist/ai/lua.d.ts CHANGED
@@ -22,6 +22,15 @@ export interface LuaAIOptions extends FengariScriptHostOptions {
22
22
  * table or `{ action = action_table, state = state_table, events = {...} }`.
23
23
  * The host is supplied so games can choose their own VM policy and tests can
24
24
  * inject a fake without loading Fengari.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { LuaAI } from '@datamoc/mw_games/ai/lua';
29
+ *
30
+ * const ai = new LuaAI({ seed: 7 });
31
+ * ai.register({ id: 'guard', source: 'return { type = "wait" }' });
32
+ * console.log(ai.decide('guard', { perception: null }).action?.type); // 'wait'
33
+ * ```
25
34
  */
26
35
  export declare class LuaAI {
27
36
  private readonly host;
@@ -42,6 +51,18 @@ export declare class LuaAI {
42
51
  importState(envelope: AIStateEnvelope): void;
43
52
  dispose(): void;
44
53
  }
54
+ /**
55
+ * Convenience wrapper that builds a default `LuaAI`.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * import { createLuaAI } from '@datamoc/mw_games/ai/lua';
60
+ *
61
+ * const ai = createLuaAI({ seed: 7 });
62
+ * ai.register({ id: 'guard', source: 'return { type = "wait" }' });
63
+ * console.log(ai.decide('guard', { perception: null }).action?.type); // 'wait'
64
+ * ```
65
+ */
45
66
  export declare function createLuaAI(options?: LuaAIOptions): LuaAI;
46
67
  export type { AIAgentDefinition, AIDecision, AIDecisionInput, AIStateEnvelope } from './index.ts';
47
68
  //# sourceMappingURL=lua.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lua.d.ts","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;GAOG;AACH,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;IAC1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,OAAO,GAAE,YAAiB,EAQrC;IAED,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAK1C;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAkD1D;IAED;;;;OAIG;IACH,MAAM,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,YAAY,EAAE,OAAO,EACnC,OAAO,EAAE,gBAAgB,GACvB,eAAe,CAAC,OAAO,YAAY,EAAE,OAAO,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,CA4B7E;IAED,WAAW,IAAI,eAAe,CAE7B;IAED,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAM3C;IAED,OAAO,IAAI,IAAI,CAKd;CACD;AA0ED,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAE7D;AAED,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"lua.d.ts","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;IAC1F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,OAAO,GAAE,YAAiB,EAQrC;IAED,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAK1C;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,UAAU,CAkD1D;IAED;;;;OAIG;IACH,MAAM,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,YAAY,EAAE,OAAO,EACnC,OAAO,EAAE,gBAAgB,GACvB,eAAe,CAAC,OAAO,YAAY,EAAE,OAAO,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,CA4B7E;IAED,WAAW,IAAI,eAAe,CAE7B;IAED,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAM3C;IAED,OAAO,IAAI,IAAI,CAKd;CACD;AA0ED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAE7D;AAED,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
package/dist/ai/lua.js CHANGED
@@ -8,6 +8,15 @@ import { alphaBetaSearch } from './search.js';
8
8
  * table or `{ action = action_table, state = state_table, events = {...} }`.
9
9
  * The host is supplied so games can choose their own VM policy and tests can
10
10
  * inject a fake without loading Fengari.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { LuaAI } from '@datamoc/mw_games/ai/lua';
15
+ *
16
+ * const ai = new LuaAI({ seed: 7 });
17
+ * ai.register({ id: 'guard', source: 'return { type = "wait" }' });
18
+ * console.log(ai.decide('guard', { perception: null }).action?.type); // 'wait'
19
+ * ```
11
20
  */
12
21
  export class LuaAI {
13
22
  constructor(options = {}) {
@@ -189,6 +198,18 @@ function toNumber(value, name) {
189
198
  function clone(value) {
190
199
  return JSON.parse(JSON.stringify(value));
191
200
  }
201
+ /**
202
+ * Convenience wrapper that builds a default `LuaAI`.
203
+ *
204
+ * @example
205
+ * ```ts
206
+ * import { createLuaAI } from '@datamoc/mw_games/ai/lua';
207
+ *
208
+ * const ai = createLuaAI({ seed: 7 });
209
+ * ai.register({ id: 'guard', source: 'return { type = "wait" }' });
210
+ * console.log(ai.decide('guard', { perception: null }).action?.type); // 'wait'
211
+ * ```
212
+ */
192
213
  export function createLuaAI(options = {}) {
193
214
  return new LuaAI(options);
194
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lua.js","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lua.js","sourceRoot":"","sources":["../../src/ai/lua.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,43 @@ export interface ScoreSubject<T> {
20
20
  readonly side: string;
21
21
  readonly x: number;
22
22
  readonly y: number;
23
+ /** its unit type, when the game's world has one (a Wesnoth `[unit] type=`) */
24
+ readonly type?: string;
25
+ /** its role/function, e.g. `leader` or `courier` */
26
+ readonly role?: string;
27
+ /** whether it can recruit, i.e. is a leader; a missing value reads as `false` */
28
+ readonly can_recruit?: boolean;
29
+ /** its own name, when it has one */
30
+ readonly name?: string;
23
31
  }
32
+ /** What `subjectsWhere` selects on: the unit attributes a `ScoreSubject` may carry, each optional. */
33
+ export interface ScoreSubjectFilter {
34
+ readonly side?: string;
35
+ readonly type?: string;
36
+ readonly role?: string;
37
+ readonly can_recruit?: boolean;
38
+ readonly name?: string;
39
+ }
40
+ /**
41
+ * The subjects a filter selects, matching only the attributes the filter names.
42
+ *
43
+ * This is how a mind finds "the enemy leader" without re-deriving it from ids, the gap a bare
44
+ * `ScoreSubject` left: `subjectsWhere(world, { side: 'red', can_recruit: true })`. `can_recruit`
45
+ * reads a missing value as `false`, so `{ can_recruit: false }` selects everyone who is not a
46
+ * leader, and `{ role: 'courier' }` selects a named function.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * import { subjectsWhere } from '@datamoc/mw_games/ai';
51
+ *
52
+ * const world = [
53
+ * { id: 'hero', side: 'blue', x: 0, y: 0, role: 'leader', can_recruit: true },
54
+ * { id: 'grunt', side: 'blue', x: 1, y: 0 },
55
+ * ];
56
+ * console.log(subjectsWhere(world, { can_recruit: true }).map((subject) => subject.id)); // ['hero']
57
+ * ```
58
+ */
59
+ export declare function subjectsWhere<T>(world: readonly ScoreSubject<T>[], filter: ScoreSubjectFilter): ScoreSubject<T>[];
24
60
  /**
25
61
  * What one mind can see, and what it is worth.
26
62
  *