@datamoc/mw_games 0.7.4 → 0.7.7

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 (288) hide show
  1. package/CHANGELOG.md +287 -2
  2. package/README.md +15 -2
  3. package/dist/actors/Inventory.d.ts +7 -1
  4. package/dist/actors/Inventory.d.ts.map +1 -1
  5. package/dist/actors/Inventory.js.map +1 -1
  6. package/dist/actors/craft.d.ts +35 -14
  7. package/dist/actors/craft.d.ts.map +1 -1
  8. package/dist/actors/craft.js +56 -24
  9. package/dist/actors/craft.js.map +1 -1
  10. package/dist/actors/index.d.ts +1 -1
  11. package/dist/actors/index.d.ts.map +1 -1
  12. package/dist/ai/Heuristics.d.ts +232 -0
  13. package/dist/ai/Heuristics.d.ts.map +1 -0
  14. package/dist/ai/Heuristics.js +298 -0
  15. package/dist/ai/Heuristics.js.map +1 -0
  16. package/dist/ai/index.d.ts +4 -0
  17. package/dist/ai/index.d.ts.map +1 -1
  18. package/dist/ai/index.js +2 -0
  19. package/dist/ai/index.js.map +1 -1
  20. package/dist/ai/score.d.ts +126 -0
  21. package/dist/ai/score.d.ts.map +1 -0
  22. package/dist/ai/score.js +121 -0
  23. package/dist/ai/score.js.map +1 -0
  24. package/dist/assets/loader.d.ts +18 -4
  25. package/dist/assets/loader.d.ts.map +1 -1
  26. package/dist/assets/loader.js +40 -11
  27. package/dist/assets/loader.js.map +1 -1
  28. package/dist/audio/Positional.d.ts +125 -0
  29. package/dist/audio/Positional.d.ts.map +1 -0
  30. package/dist/audio/Positional.js +135 -0
  31. package/dist/audio/Positional.js.map +1 -0
  32. package/dist/audio/Sound.d.ts +7 -1
  33. package/dist/audio/Sound.d.ts.map +1 -1
  34. package/dist/audio/Sound.js +8 -2
  35. package/dist/audio/Sound.js.map +1 -1
  36. package/dist/audio/index.d.ts +2 -0
  37. package/dist/audio/index.d.ts.map +1 -1
  38. package/dist/audio/index.js +1 -0
  39. package/dist/audio/index.js.map +1 -1
  40. package/dist/battle/AttackDialog.d.ts +75 -0
  41. package/dist/battle/AttackDialog.d.ts.map +1 -0
  42. package/dist/battle/AttackDialog.js +115 -0
  43. package/dist/battle/AttackDialog.js.map +1 -0
  44. package/dist/battle/AttackPreview.d.ts +70 -0
  45. package/dist/battle/AttackPreview.d.ts.map +1 -0
  46. package/dist/battle/AttackPreview.js +78 -0
  47. package/dist/battle/AttackPreview.js.map +1 -0
  48. package/dist/battle/BattleStats.d.ts +45 -0
  49. package/dist/battle/BattleStats.d.ts.map +1 -0
  50. package/dist/battle/BattleStats.js +63 -0
  51. package/dist/battle/BattleStats.js.map +1 -0
  52. package/dist/battle/UnitSelector.d.ts +72 -0
  53. package/dist/battle/UnitSelector.d.ts.map +1 -0
  54. package/dist/battle/UnitSelector.js +117 -0
  55. package/dist/battle/UnitSelector.js.map +1 -0
  56. package/dist/battle/Whiteboard.d.ts +50 -0
  57. package/dist/battle/Whiteboard.d.ts.map +1 -0
  58. package/dist/battle/Whiteboard.js +94 -0
  59. package/dist/battle/Whiteboard.js.map +1 -0
  60. package/dist/battle/index.d.ts +10 -0
  61. package/dist/battle/index.d.ts.map +1 -1
  62. package/dist/battle/index.js +5 -0
  63. package/dist/battle/index.js.map +1 -1
  64. package/dist/board/FogOfWar.d.ts +32 -2
  65. package/dist/board/FogOfWar.d.ts.map +1 -1
  66. package/dist/board/FogOfWar.js +70 -6
  67. package/dist/board/FogOfWar.js.map +1 -1
  68. package/dist/core/Achievements.d.ts +40 -7
  69. package/dist/core/Achievements.d.ts.map +1 -1
  70. package/dist/core/Achievements.js +51 -7
  71. package/dist/core/Achievements.js.map +1 -1
  72. package/dist/core/Blob.d.ts +13 -2
  73. package/dist/core/Blob.d.ts.map +1 -1
  74. package/dist/core/Blob.js +16 -2
  75. package/dist/core/Blob.js.map +1 -1
  76. package/dist/core/Hex.d.ts +26 -6
  77. package/dist/core/Hex.d.ts.map +1 -1
  78. package/dist/core/Hex.js +40 -13
  79. package/dist/core/Hex.js.map +1 -1
  80. package/dist/core/Input.d.ts +36 -0
  81. package/dist/core/Input.d.ts.map +1 -1
  82. package/dist/core/Input.js +63 -1
  83. package/dist/core/Input.js.map +1 -1
  84. package/dist/core/Random.d.ts +93 -0
  85. package/dist/core/Random.d.ts.map +1 -1
  86. package/dist/core/Random.js +177 -0
  87. package/dist/core/Random.js.map +1 -1
  88. package/dist/core/SyncGuard.d.ts +57 -0
  89. package/dist/core/SyncGuard.d.ts.map +1 -0
  90. package/dist/core/SyncGuard.js +116 -0
  91. package/dist/core/SyncGuard.js.map +1 -0
  92. package/dist/core/index.d.ts +3 -1
  93. package/dist/core/index.d.ts.map +1 -1
  94. package/dist/core/index.js +2 -1
  95. package/dist/core/index.js.map +1 -1
  96. package/dist/i18n/Po.d.ts +51 -0
  97. package/dist/i18n/Po.d.ts.map +1 -0
  98. package/dist/i18n/Po.js +176 -0
  99. package/dist/i18n/Po.js.map +1 -0
  100. package/dist/i18n/index.d.ts +2 -0
  101. package/dist/i18n/index.d.ts.map +1 -1
  102. package/dist/i18n/index.js +1 -0
  103. package/dist/i18n/index.js.map +1 -1
  104. package/dist/mw_games.global.js +104 -98
  105. package/dist/mwl/MapFile.d.ts +41 -0
  106. package/dist/mwl/MapFile.d.ts.map +1 -0
  107. package/dist/mwl/MapFile.js +43 -0
  108. package/dist/mwl/MapFile.js.map +1 -0
  109. package/dist/mwl/campaign.d.ts +51 -0
  110. package/dist/mwl/campaign.d.ts.map +1 -0
  111. package/dist/mwl/campaign.js +58 -0
  112. package/dist/mwl/campaign.js.map +1 -0
  113. package/dist/mwl/carryover.d.ts +79 -0
  114. package/dist/mwl/carryover.d.ts.map +1 -0
  115. package/dist/mwl/carryover.js +63 -0
  116. package/dist/mwl/carryover.js.map +1 -0
  117. package/dist/mwl/content.d.ts +10 -0
  118. package/dist/mwl/content.d.ts.map +1 -1
  119. package/dist/mwl/content.js +8 -0
  120. package/dist/mwl/content.js.map +1 -1
  121. package/dist/mwl/hooks.d.ts +6 -5
  122. package/dist/mwl/hooks.d.ts.map +1 -1
  123. package/dist/mwl/hooks.js.map +1 -1
  124. package/dist/mwl/index.d.ts +8 -2
  125. package/dist/mwl/index.d.ts.map +1 -1
  126. package/dist/mwl/index.js +4 -1
  127. package/dist/mwl/index.js.map +1 -1
  128. package/dist/mwl/runtime.d.ts +140 -7
  129. package/dist/mwl/runtime.d.ts.map +1 -1
  130. package/dist/mwl/runtime.js +427 -33
  131. package/dist/mwl/runtime.js.map +1 -1
  132. package/dist/mwl/schema.d.ts.map +1 -1
  133. package/dist/mwl/schema.js +97 -18
  134. package/dist/mwl/schema.js.map +1 -1
  135. package/dist/roguelike/MultiTurnBeam.d.ts +50 -12
  136. package/dist/roguelike/MultiTurnBeam.d.ts.map +1 -1
  137. package/dist/roguelike/MultiTurnBeam.js +100 -53
  138. package/dist/roguelike/MultiTurnBeam.js.map +1 -1
  139. package/dist/roguelike/Targeting.d.ts +94 -0
  140. package/dist/roguelike/Targeting.d.ts.map +1 -1
  141. package/dist/roguelike/Targeting.js +123 -0
  142. package/dist/roguelike/Targeting.js.map +1 -1
  143. package/dist/roguelike/index.d.ts +3 -1
  144. package/dist/roguelike/index.d.ts.map +1 -1
  145. package/dist/roguelike/index.js +1 -0
  146. package/dist/roguelike/index.js.map +1 -1
  147. package/dist/simulation/CampaignSave.d.ts +68 -0
  148. package/dist/simulation/CampaignSave.d.ts.map +1 -0
  149. package/dist/simulation/CampaignSave.js +54 -0
  150. package/dist/simulation/CampaignSave.js.map +1 -0
  151. package/dist/simulation/EventPresentation.d.ts +111 -0
  152. package/dist/simulation/EventPresentation.d.ts.map +1 -0
  153. package/dist/simulation/EventPresentation.js +120 -0
  154. package/dist/simulation/EventPresentation.js.map +1 -0
  155. package/dist/simulation/index.d.ts +4 -0
  156. package/dist/simulation/index.d.ts.map +1 -1
  157. package/dist/simulation/index.js +2 -0
  158. package/dist/simulation/index.js.map +1 -1
  159. package/dist/two-d/pixi-interop.d.ts +18 -6
  160. package/dist/two-d/pixi-interop.d.ts.map +1 -1
  161. package/dist/two-d/pixi-interop.js +18 -6
  162. package/dist/two-d/pixi-interop.js.map +1 -1
  163. package/dist/two-d/render/AnimatedSprite.d.ts +74 -7
  164. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  165. package/dist/two-d/render/AnimatedSprite.js +88 -26
  166. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  167. package/dist/two-d/render/Camera.d.ts +64 -4
  168. package/dist/two-d/render/Camera.d.ts.map +1 -1
  169. package/dist/two-d/render/Camera.js +132 -11
  170. package/dist/two-d/render/Camera.js.map +1 -1
  171. package/dist/two-d/render/Halo.d.ts +58 -0
  172. package/dist/two-d/render/Halo.d.ts.map +1 -0
  173. package/dist/two-d/render/Halo.js +48 -0
  174. package/dist/two-d/render/Halo.js.map +1 -0
  175. package/dist/two-d/render/ImageModifiers.d.ts +174 -0
  176. package/dist/two-d/render/ImageModifiers.d.ts.map +1 -1
  177. package/dist/two-d/render/ImageModifiers.js +438 -1
  178. package/dist/two-d/render/ImageModifiers.js.map +1 -1
  179. package/dist/two-d/render/LightningArc.d.ts +57 -0
  180. package/dist/two-d/render/LightningArc.d.ts.map +1 -0
  181. package/dist/two-d/render/LightningArc.js +91 -0
  182. package/dist/two-d/render/LightningArc.js.map +1 -0
  183. package/dist/two-d/render/PaletteRemap.d.ts +135 -0
  184. package/dist/two-d/render/PaletteRemap.d.ts.map +1 -0
  185. package/dist/two-d/render/PaletteRemap.js +181 -0
  186. package/dist/two-d/render/PaletteRemap.js.map +1 -0
  187. package/dist/two-d/render/Particles.d.ts +26 -0
  188. package/dist/two-d/render/Particles.d.ts.map +1 -1
  189. package/dist/two-d/render/Particles.js +23 -2
  190. package/dist/two-d/render/Particles.js.map +1 -1
  191. package/dist/two-d/render/SpriteAttachment.d.ts +55 -0
  192. package/dist/two-d/render/SpriteAttachment.d.ts.map +1 -0
  193. package/dist/two-d/render/SpriteAttachment.js +60 -0
  194. package/dist/two-d/render/SpriteAttachment.js.map +1 -0
  195. package/dist/two-d/render/TerrainGraphics.d.ts +142 -0
  196. package/dist/two-d/render/TerrainGraphics.d.ts.map +1 -0
  197. package/dist/two-d/render/TerrainGraphics.js +161 -0
  198. package/dist/two-d/render/TerrainGraphics.js.map +1 -0
  199. package/dist/two-d/render/index.d.ts +13 -3
  200. package/dist/two-d/render/index.d.ts.map +1 -1
  201. package/dist/two-d/render/index.js +6 -1
  202. package/dist/two-d/render/index.js.map +1 -1
  203. package/dist/two-d/stage/StoryScreen.d.ts +110 -0
  204. package/dist/two-d/stage/StoryScreen.d.ts.map +1 -0
  205. package/dist/two-d/stage/StoryScreen.js +178 -0
  206. package/dist/two-d/stage/StoryScreen.js.map +1 -0
  207. package/dist/two-d/stage/index.d.ts +2 -0
  208. package/dist/two-d/stage/index.d.ts.map +1 -1
  209. package/dist/two-d/stage/index.js +1 -0
  210. package/dist/two-d/stage/index.js.map +1 -1
  211. package/dist/two-d/ui/Checkbox.d.ts +44 -0
  212. package/dist/two-d/ui/Checkbox.d.ts.map +1 -0
  213. package/dist/two-d/ui/Checkbox.js +89 -0
  214. package/dist/two-d/ui/Checkbox.js.map +1 -0
  215. package/dist/two-d/ui/DataTable.d.ts +79 -0
  216. package/dist/two-d/ui/DataTable.d.ts.map +1 -0
  217. package/dist/two-d/ui/DataTable.js +164 -0
  218. package/dist/two-d/ui/DataTable.js.map +1 -0
  219. package/dist/two-d/ui/Dropdown.d.ts +72 -0
  220. package/dist/two-d/ui/Dropdown.d.ts.map +1 -0
  221. package/dist/two-d/ui/Dropdown.js +126 -0
  222. package/dist/two-d/ui/Dropdown.js.map +1 -0
  223. package/dist/two-d/ui/FloatingText.d.ts +43 -4
  224. package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
  225. package/dist/two-d/ui/FloatingText.js +52 -5
  226. package/dist/two-d/ui/FloatingText.js.map +1 -1
  227. package/dist/two-d/ui/FloatingTextStack.d.ts +86 -13
  228. package/dist/two-d/ui/FloatingTextStack.d.ts.map +1 -1
  229. package/dist/two-d/ui/FloatingTextStack.js +89 -18
  230. package/dist/two-d/ui/FloatingTextStack.js.map +1 -1
  231. package/dist/two-d/ui/Layout.d.ts +105 -0
  232. package/dist/two-d/ui/Layout.d.ts.map +1 -0
  233. package/dist/two-d/ui/Layout.js +174 -0
  234. package/dist/two-d/ui/Layout.js.map +1 -0
  235. package/dist/two-d/ui/ScrollBox.d.ts +67 -0
  236. package/dist/two-d/ui/ScrollBox.d.ts.map +1 -0
  237. package/dist/two-d/ui/ScrollBox.js +127 -0
  238. package/dist/two-d/ui/ScrollBox.js.map +1 -0
  239. package/dist/two-d/ui/Skins.d.ts +59 -0
  240. package/dist/two-d/ui/Skins.d.ts.map +1 -0
  241. package/dist/two-d/ui/Skins.js +77 -0
  242. package/dist/two-d/ui/Skins.js.map +1 -0
  243. package/dist/two-d/ui/Slider.d.ts +91 -0
  244. package/dist/two-d/ui/Slider.d.ts.map +1 -0
  245. package/dist/two-d/ui/Slider.js +170 -0
  246. package/dist/two-d/ui/Slider.js.map +1 -0
  247. package/dist/two-d/ui/Spinner.d.ts +67 -0
  248. package/dist/two-d/ui/Spinner.d.ts.map +1 -0
  249. package/dist/two-d/ui/Spinner.js +137 -0
  250. package/dist/two-d/ui/Spinner.js.map +1 -0
  251. package/dist/two-d/ui/TabbedList.d.ts +118 -0
  252. package/dist/two-d/ui/TabbedList.d.ts.map +1 -0
  253. package/dist/two-d/ui/TabbedList.js +221 -0
  254. package/dist/two-d/ui/TabbedList.js.map +1 -0
  255. package/dist/two-d/ui/TextModel.d.ts +65 -0
  256. package/dist/two-d/ui/TextModel.d.ts.map +1 -0
  257. package/dist/two-d/ui/TextModel.js +126 -0
  258. package/dist/two-d/ui/TextModel.js.map +1 -0
  259. package/dist/two-d/ui/TreeView.d.ts +68 -0
  260. package/dist/two-d/ui/TreeView.d.ts.map +1 -0
  261. package/dist/two-d/ui/TreeView.js +133 -0
  262. package/dist/two-d/ui/TreeView.js.map +1 -0
  263. package/dist/two-d/ui/Window.d.ts +13 -0
  264. package/dist/two-d/ui/Window.d.ts.map +1 -1
  265. package/dist/two-d/ui/Window.js +23 -0
  266. package/dist/two-d/ui/Window.js.map +1 -1
  267. package/dist/two-d/ui/WindowStack.d.ts.map +1 -1
  268. package/dist/two-d/ui/WindowStack.js +2 -0
  269. package/dist/two-d/ui/WindowStack.js.map +1 -1
  270. package/dist/two-d/ui/index.d.ts +27 -3
  271. package/dist/two-d/ui/index.d.ts.map +1 -1
  272. package/dist/two-d/ui/index.js +14 -2
  273. package/dist/two-d/ui/index.js.map +1 -1
  274. package/dist/two-d/ui/markup.d.ts +127 -0
  275. package/dist/two-d/ui/markup.d.ts.map +1 -0
  276. package/dist/two-d/ui/markup.js +322 -0
  277. package/dist/two-d/ui/markup.js.map +1 -0
  278. package/dist/version.d.ts +1 -1
  279. package/dist/version.js +1 -1
  280. package/dist/world/SideTurns.d.ts +115 -0
  281. package/dist/world/SideTurns.d.ts.map +1 -0
  282. package/dist/world/SideTurns.js +138 -0
  283. package/dist/world/SideTurns.js.map +1 -0
  284. package/dist/world/index.d.ts +2 -0
  285. package/dist/world/index.d.ts.map +1 -1
  286. package/dist/world/index.js +1 -0
  287. package/dist/world/index.js.map +1 -1
  288. package/package.json +8 -3
@@ -1,6 +1,7 @@
1
1
  import type { MwlCompiledGame, MwlCompiledNode } from './compiler.ts';
2
2
  import type { AiHook, CommandHook, GeneratorHook, MigrationHook, ModifierHook, PredicateHook } from './hooks.ts';
3
3
  import { type MwlPersistenceOptions } from './persistence.ts';
4
+ import type { MwlCarryover, MwlSideRef } from './carryover.ts';
4
5
  export interface MwlMapStart {
5
6
  readonly x: number;
6
7
  readonly y: number;
@@ -11,8 +12,8 @@ export interface MwlMap {
11
12
  readonly height: number;
12
13
  /** row-major terrain codes, keep markers stripped */
13
14
  readonly codes: readonly string[];
14
- /** side number -> keep/start positions */
15
- readonly starts: Readonly<Record<number, readonly MwlMapStart[]>>;
15
+ /** side id -> keep/start positions; the id a `<side> <code>` token names, number or not */
16
+ readonly starts: Readonly<Record<string, readonly MwlMapStart[]>>;
16
17
  }
17
18
  export type MwlValue = string | number | boolean | MwlValue[] | {
18
19
  [key: string]: MwlValue;
@@ -25,7 +26,7 @@ export interface MwlWorld {
25
26
  y: number;
26
27
  alive: boolean;
27
28
  type?: string;
28
- side?: number;
29
+ side?: string;
29
30
  moves?: number;
30
31
  }>;
31
32
  readonly sides: Record<string, {
@@ -34,6 +35,17 @@ export interface MwlWorld {
34
35
  leader?: string;
35
36
  controller?: string;
36
37
  recruit?: string;
38
+ /** the team a side belongs to, which is what `sideVisionGroups` reads */
39
+ teamName?: string;
40
+ /** `all`, `shroud` or `none`, as `[side]` wrote it */
41
+ shareVision?: string;
42
+ villageGold?: number;
43
+ heal?: boolean;
44
+ fog?: boolean;
45
+ shroud?: boolean;
46
+ hidden?: boolean;
47
+ flag?: string;
48
+ userTeamName?: string;
37
49
  }>;
38
50
  readonly maps: Record<string, {
39
51
  terrain: string;
@@ -42,6 +54,15 @@ export interface MwlWorld {
42
54
  gold: Record<string, number>;
43
55
  turn: number;
44
56
  status: 'playing' | 'won' | 'lost';
57
+ /**
58
+ * What each side's own `[victory]`/`[defeat]` conditions decided, keyed by the side id
59
+ * `[side]` declared. Only sides whose conditions fired appear here; a side that wrote none
60
+ * keeps no entry, the same "only what the content made" rule `world.sides` follows. The
61
+ * scenario-wide `status` is the aggregate: a side that won or lost ends it too.
62
+ */
63
+ sideStatus?: Record<string, 'playing' | 'won' | 'lost'>;
64
+ /** what `[endlevel]` decided this scenario hands to the next one, until it is applied */
65
+ carryover?: MwlCarryover;
45
66
  /** the primary map, when the content declares one */
46
67
  map?: MwlMap | null;
47
68
  /** the current schedule entry, by id */
@@ -53,13 +74,44 @@ export interface MwlWorld {
53
74
  id: string;
54
75
  choices: readonly MwlDialogueChoice[];
55
76
  };
77
+ /**
78
+ * Village ownership, keyed `"x,y"`: what `[capture_village]` records. The framework owns the
79
+ * fact of who holds a village; what holding one is worth stays the game's rule (income is
80
+ * `world.sides[id].villageGold` applied by the game, not minted here).
81
+ */
82
+ villages?: Record<string, {
83
+ x: number;
84
+ y: number;
85
+ side: string;
86
+ name?: string;
87
+ }>;
88
+ /** hexes `[clear_shroud]` has uncovered, by side id, as `"x,y"`; the fog itself is a game layer */
89
+ clearedShroud?: Record<string, string[]>;
90
+ /** unit ids `[role]` assigned to a named role, so a later event can say `role=courier` */
91
+ roles?: Record<string, string[]>;
92
+ /** scenario `[object]` placements, as data; what an object does on pickup is the game's */
93
+ objects?: Array<{
94
+ x: number;
95
+ y: number;
96
+ id?: string;
97
+ name?: string;
98
+ image?: string;
99
+ side?: string;
100
+ }>;
101
+ /** scenario `[story]` entries, as data; rendering them is the story-screen work (item 264) */
102
+ story?: Array<{
103
+ text: string;
104
+ title?: string;
105
+ image?: string;
106
+ music?: string;
107
+ }>;
56
108
  }
57
109
  /** One `[message]`: the text plus whatever a game needs to show it. */
58
110
  export interface MwlMessage {
59
111
  readonly text: string;
60
112
  readonly speaker?: string;
61
113
  readonly portrait?: string;
62
- readonly side?: number;
114
+ readonly side?: string;
63
115
  /** choices waiting on the player; answer with `answerDialogue` */
64
116
  readonly choices?: readonly MwlDialogueChoice[];
65
117
  /** identifies the pending dialogue this message's choices belong to */
@@ -129,17 +181,31 @@ export type MwlCommand = {
129
181
  readonly hp: number;
130
182
  } | {
131
183
  readonly name: 'kill';
132
- readonly target: string;
184
+ readonly target?: string;
185
+ readonly filter?: Readonly<Record<string, string>>;
133
186
  } | {
134
187
  readonly name: 'attack';
135
188
  readonly target: string;
136
189
  readonly amount: number;
137
190
  } | {
138
191
  readonly name: 'end_turn';
139
- } | {
192
+ }
193
+ /** `side` records which side won or lost in `world.sideStatus`; the scenario status follows */
194
+ | {
140
195
  readonly name: 'win';
196
+ readonly side?: string;
141
197
  } | {
142
198
  readonly name: 'lose';
199
+ readonly side?: string;
200
+ } | {
201
+ readonly name: 'endlevel';
202
+ readonly result: 'victory' | 'defeat';
203
+ /** whose gold and units are carried; without it, the result is recorded and nothing moves */
204
+ readonly side?: MwlSideRef;
205
+ readonly bonus?: number;
206
+ readonly carryoverPercentage?: number;
207
+ readonly carryoverAdd?: boolean;
208
+ readonly nextScenario?: string | null;
143
209
  };
144
210
  export declare function createWorld(): MwlWorld;
145
211
  /**
@@ -151,7 +217,7 @@ export declare function parseTerrain(text: string): {
151
217
  width: number;
152
218
  height: number;
153
219
  codes: string[];
154
- starts: Record<number, {
220
+ starts: Record<string, {
155
221
  x: number;
156
222
  y: number;
157
223
  }[]>;
@@ -225,6 +291,15 @@ export declare class MwlRuntime {
225
291
  private loadUnitTypes;
226
292
  private loadSchedule;
227
293
  private loadInitialContent;
294
+ /** Direct children of `[game]` with a tag, as opposed to `nodes` which searches the whole tree. */
295
+ private topLevelNodes;
296
+ /**
297
+ * Scenario-level data that is not a side, a map or a unit: `[object]` placements, the `[story]`
298
+ * beats, and the `[role]` table. Kept as plain data on the world - the framework sequences and
299
+ * serialises it, and the game decides what an object does, what a story beat looks like, and
300
+ * what a role is for.
301
+ */
302
+ private loadScenarioExtras;
228
303
  private buildMap;
229
304
  private loadInitialUnits;
230
305
  private loadLeaders;
@@ -245,8 +320,29 @@ export declare class MwlRuntime {
245
320
  private setVariableAt;
246
321
  private spawnUnit;
247
322
  private killUnit;
323
+ /**
324
+ * Live units a command's filter selects: its `[filter]` child when it has one, otherwise its
325
+ * own attributes, read by the same `unitMatchesFilter` an event filter and `[kill]` use. An
326
+ * empty filter matches every live unit, the rule `[kill]` already documents.
327
+ */
328
+ private matchingUnits;
329
+ /** The unit snapshots `[store_unit]` wrote into a world variable, or a named content error. */
330
+ private storedUnits;
331
+ /** Writes a stored snapshot back into the world, applying any placement overrides. */
332
+ private restoreUnit;
333
+ /** Changes one cell of the primary map, keeping the parsed grid and its size in step. */
334
+ private setTerrain;
248
335
  private addGold;
249
336
  private endTurn;
337
+ /**
338
+ * Wesnoth's "time over", as a framework native: once the scenario's `turn_limit` has passed,
339
+ * `time_over` becomes a variable content can test and an event trigger it can answer. The
340
+ * framework reports it rather than ending anything, because a turn limit is usually a defeat and
341
+ * occasionally the whole point of the scenario ("hold out until then"), so what it means is
342
+ * content's business - `[endlevel]` is right there for it. Fired once, and derived from the turn
343
+ * counter rather than kept in step with it.
344
+ */
345
+ private checkTimeOver;
250
346
  private advanceSchedule;
251
347
  private resetMoves;
252
348
  private filterMatches;
@@ -266,12 +362,49 @@ export declare class MwlRuntime {
266
362
  * hold for the event to fire.
267
363
  */
268
364
  private filterConditionMatches;
365
+ /**
366
+ * Whether one objective's condition holds. `defaultSide` is the side whose own
367
+ * `[victory]`/`[defeat]` node this is, so a condition that names no side (a side losing
368
+ * when its own units are gone) reads as that side rather than as nobody.
369
+ */
269
370
  private conditionMet;
371
+ /**
372
+ * Evaluates the scenario-wide `[objectives]` conditions first, exactly as before, then each
373
+ * side's own `[victory]`/`[defeat]` children. The scenario ends on the first side whose own
374
+ * condition fires, recording that side in `world.sideStatus`; a side's victory outranks
375
+ * another side's defeat when both fire in the same evaluation, which is the same precedence
376
+ * the scenario-wide pair has always had. A side condition with no `side`/`side_filter` reads
377
+ * as that side's own, so "this side loses when it has no units left" is written without
378
+ * repeating the id.
379
+ */
270
380
  private checkObjectives;
381
+ /** Records one side's own result; the scenario status is set by whichever side fired first. */
382
+ private markSideResult;
271
383
  private worldView;
272
384
  private emit;
273
385
  private attack;
274
386
  private nodes;
275
387
  }
276
388
  export declare function execute(world: MwlWorld, command: MwlCommand): void;
389
+ /**
390
+ * The sides a scenario's content says see together, as groups ready for `FactionFog.share`.
391
+ *
392
+ * Wesnoth groups sides into teams with `[side] team_name`, and `share_vision` says whether a side
393
+ * shares what it sees with its team. `none` does not; `all` and `shroud` are treated alike here
394
+ * because `FactionFog` shares sight and memory as one thing rather than keeping them apart, and a
395
+ * fog that separated them would be the place to tell the two apart. A side with no `team_name`
396
+ * shares with nobody, and a team of one is not returned, since sharing with nobody is what it
397
+ * already does.
398
+ *
399
+ * @example
400
+ * ```ts
401
+ * import { sideVisionGroups, type MwlWorld } from '@datamoc/mw_games/mwl';
402
+ *
403
+ * declare const world: MwlWorld;
404
+ *
405
+ * // sides 1 and 2 both wrote team_name=north, and side 3 asked for share_vision=none
406
+ * console.log(sideVisionGroups(world)); // [['1', '2']]
407
+ * ```
408
+ */
409
+ export declare function sideVisionGroups(world: MwlWorld): readonly (readonly string[])[];
277
410
  //# sourceMappingURL=runtime.d.ts.map
@@ -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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"}