@v12-engine/engine 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/LICENSE +21 -0
  2. package/dist/abilities/buffs.d.ts +83 -0
  3. package/dist/abilities/castTold.d.ts +12 -0
  4. package/dist/abilities/charges.d.ts +28 -0
  5. package/dist/abilities/dispel.d.ts +9 -0
  6. package/dist/abilities/effectFields.d.ts +10 -0
  7. package/dist/abilities/effects/buff.d.ts +8 -0
  8. package/dist/abilities/effects/core.d.ts +1 -0
  9. package/dist/abilities/effects/damage.d.ts +1 -0
  10. package/dist/abilities/effects/heal.d.ts +2 -0
  11. package/dist/abilities/effects/missile.d.ts +1 -0
  12. package/dist/abilities/effects/moves.d.ts +11 -0
  13. package/dist/abilities/effects/passives.d.ts +15 -0
  14. package/dist/abilities/effects/sight.d.ts +4 -0
  15. package/dist/abilities/effects/spawn.d.ts +2 -0
  16. package/dist/abilities/effects/timed.d.ts +4 -0
  17. package/dist/abilities/effects/trade.d.ts +1 -0
  18. package/dist/abilities/effects.d.ts +122 -0
  19. package/dist/abilities/land.d.ts +21 -0
  20. package/dist/abilities/scaled.d.ts +21 -0
  21. package/dist/abilities/text.d.ts +113 -0
  22. package/dist/ai/area.d.ts +53 -0
  23. package/dist/ai/brain.d.ts +528 -0
  24. package/dist/ai/budget.d.ts +67 -0
  25. package/dist/ai/checks.d.ts +115 -0
  26. package/dist/ai/computer.d.ts +166 -0
  27. package/dist/ai/defence.d.ts +108 -0
  28. package/dist/ai/define.d.ts +21 -0
  29. package/dist/ai/economy.d.ts +129 -0
  30. package/dist/ai/geometry.d.ts +35 -0
  31. package/dist/ai/goals.d.ts +360 -0
  32. package/dist/ai/index.d.ts +38 -0
  33. package/dist/ai/knowledge.d.ts +418 -0
  34. package/dist/ai/lanes.d.ts +232 -0
  35. package/dist/ai/melee/build.d.ts +61 -0
  36. package/dist/ai/melee/goals.d.ts +299 -0
  37. package/dist/ai/melee/heroes.d.ts +27 -0
  38. package/dist/ai/melee/index.d.ts +14 -0
  39. package/dist/ai/melee/production.d.ts +8 -0
  40. package/dist/ai/melee/surrender.d.ts +24 -0
  41. package/dist/ai/micro.d.ts +278 -0
  42. package/dist/ai/mission.d.ts +195 -0
  43. package/dist/ai/missionRules.d.ts +18 -0
  44. package/dist/ai/module.d.ts +116 -0
  45. package/dist/ai/options.d.ts +61 -0
  46. package/dist/ai/plans/build.d.ts +280 -0
  47. package/dist/ai/plans/placement.d.ts +82 -0
  48. package/dist/ai/plans/plans.d.ts +105 -0
  49. package/dist/ai/plans/production.d.ts +210 -0
  50. package/dist/ai/plans/purse.d.ts +73 -0
  51. package/dist/ai/plans/tech.d.ts +37 -0
  52. package/dist/ai/profiles.d.ts +204 -0
  53. package/dist/ai/reach.d.ts +4 -0
  54. package/dist/ai/report.d.ts +203 -0
  55. package/dist/ai/roles.d.ts +133 -0
  56. package/dist/ai/rules.d.ts +288 -0
  57. package/dist/ai/scouting.d.ts +98 -0
  58. package/dist/ai/settings.d.ts +73 -0
  59. package/dist/ai/squads.d.ts +429 -0
  60. package/dist/ai/strength.d.ts +167 -0
  61. package/dist/ai/task.d.ts +118 -0
  62. package/dist/ai/tasks/attack.d.ts +7 -0
  63. package/dist/ai/tasks/capture.d.ts +21 -0
  64. package/dist/ai/tasks/creep.d.ts +16 -0
  65. package/dist/ai/tasks/defend.d.ts +29 -0
  66. package/dist/ai/tasks/drop.d.ts +34 -0
  67. package/dist/ai/tasks/escort.d.ts +16 -0
  68. package/dist/ai/tasks/gather.d.ts +23 -0
  69. package/dist/ai/tasks/harass.d.ts +7 -0
  70. package/dist/ai/tasks/hold.d.ts +20 -0
  71. package/dist/ai/tasks/index.d.ts +32 -0
  72. package/dist/ai/tasks/move.d.ts +19 -0
  73. package/dist/ai/tasks/patrol.d.ts +8 -0
  74. package/dist/ai/tasks/retreat.d.ts +20 -0
  75. package/dist/ai/tasks/scout.d.ts +29 -0
  76. package/dist/ai/tasks/shared.d.ts +74 -0
  77. package/dist/ai/team.d.ts +155 -0
  78. package/dist/ai/threat.d.ts +91 -0
  79. package/dist/ai/view.d.ts +366 -0
  80. package/dist/ai/waves.d.ts +126 -0
  81. package/dist/ai.js +6239 -0
  82. package/dist/ai.js.map +1 -0
  83. package/dist/aiTesting.d.ts +179 -0
  84. package/dist/areas.d.ts +149 -0
  85. package/dist/attacks.d.ts +66 -0
  86. package/dist/attributes.d.ts +66 -0
  87. package/dist/brain-BvVdUhX8.js +7659 -0
  88. package/dist/brain-BvVdUhX8.js.map +1 -0
  89. package/dist/builds-C6LfgvEU.js +460 -0
  90. package/dist/builds-C6LfgvEU.js.map +1 -0
  91. package/dist/bytes.d.ts +6 -0
  92. package/dist/camps.d.ts +95 -0
  93. package/dist/capture.d.ts +131 -0
  94. package/dist/cellLayers.d.ts +75 -0
  95. package/dist/cinematics.d.ts +194 -0
  96. package/dist/clock.d.ts +32 -0
  97. package/dist/commands.d.ts +235 -0
  98. package/dist/components.d.ts +184 -0
  99. package/dist/computers.d.ts +108 -0
  100. package/dist/concealment.d.ts +61 -0
  101. package/dist/coreComponents-syuh2fPG.js +5149 -0
  102. package/dist/coreComponents-syuh2fPG.js.map +1 -0
  103. package/dist/coreComponents.d.ts +1 -0
  104. package/dist/dashing.d.ts +8 -0
  105. package/dist/debug.d.ts +36 -0
  106. package/dist/debug.js +3 -0
  107. package/dist/debugCommands-CzjrSm66.js +14739 -0
  108. package/dist/debugCommands-CzjrSm66.js.map +1 -0
  109. package/dist/debugCommands.d.ts +213 -0
  110. package/dist/debugging.d.ts +10 -0
  111. package/dist/definitions.d.ts +43 -0
  112. package/dist/defs.d.ts +1162 -0
  113. package/dist/denying.d.ts +81 -0
  114. package/dist/destructibles.d.ts +27 -0
  115. package/dist/determinism-BCymQwiE.js +518 -0
  116. package/dist/determinism-BCymQwiE.js.map +1 -0
  117. package/dist/determinism.d.ts +121 -0
  118. package/dist/dialog.d.ts +94 -0
  119. package/dist/effectRefs.d.ts +16 -0
  120. package/dist/effects.d.ts +80 -0
  121. package/dist/endings.d.ts +22 -0
  122. package/dist/engagement.d.ts +108 -0
  123. package/dist/engineEvents.d.ts +710 -0
  124. package/dist/entity.d.ts +409 -0
  125. package/dist/entityIndex.d.ts +50 -0
  126. package/dist/errors.d.ts +85 -0
  127. package/dist/events.d.ts +97 -0
  128. package/dist/exactMath.d.ts +63 -0
  129. package/dist/features.d.ts +10 -0
  130. package/dist/fields.d.ts +114 -0
  131. package/dist/fixture.d.ts +17 -0
  132. package/dist/fog.d.ts +110 -0
  133. package/dist/formation.d.ts +111 -0
  134. package/dist/friendlyFire.d.ts +26 -0
  135. package/dist/game-DiJEN-Ks.js +5800 -0
  136. package/dist/game-DiJEN-Ks.js.map +1 -0
  137. package/dist/game.d.ts +501 -0
  138. package/dist/gameData.d.ts +325 -0
  139. package/dist/gameFiles.d.ts +26 -0
  140. package/dist/gates.d.ts +28 -0
  141. package/dist/generate.d.ts +403 -0
  142. package/dist/generateWorker.d.ts +39 -0
  143. package/dist/grid.d.ts +53 -0
  144. package/dist/ground.d.ts +127 -0
  145. package/dist/groundSpeed.d.ts +22 -0
  146. package/dist/hero.d.ts +177 -0
  147. package/dist/home.d.ts +14 -0
  148. package/dist/hooks.d.ts +780 -0
  149. package/dist/hotReload.d.ts +76 -0
  150. package/dist/ids.d.ts +26 -0
  151. package/dist/index.d.ts +227 -0
  152. package/dist/index.js +4701 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/inspect-D9dWHmZ0.js +491 -0
  155. package/dist/inspect-D9dWHmZ0.js.map +1 -0
  156. package/dist/inspect.d.ts +176 -0
  157. package/dist/inventory.d.ts +18 -0
  158. package/dist/items.d.ts +91 -0
  159. package/dist/lanes.d.ts +213 -0
  160. package/dist/life.d.ts +53 -0
  161. package/dist/local-Dkovq42k.js +1379 -0
  162. package/dist/local-Dkovq42k.js.map +1 -0
  163. package/dist/log.d.ts +140 -0
  164. package/dist/manaBurn.d.ts +39 -0
  165. package/dist/map/file.d.ts +114 -0
  166. package/dist/map/images.d.ts +18 -0
  167. package/dist/map/look.d.ts +47 -0
  168. package/dist/map/pathProfile.d.ts +13 -0
  169. package/dist/map/resize.d.ts +54 -0
  170. package/dist/map/schema.d.ts +10 -0
  171. package/dist/map/terrain.d.ts +32 -0
  172. package/dist/map/types.d.ts +613 -0
  173. package/dist/map.d.ts +7 -0
  174. package/dist/mapCheck/cells.d.ts +19 -0
  175. package/dist/mapCheck/rule.d.ts +30 -0
  176. package/dist/mapCheck/rules/names.d.ts +3 -0
  177. package/dist/mapCheck/rules/objects.d.ts +3 -0
  178. package/dist/mapCheck/rules/paths.d.ts +3 -0
  179. package/dist/mapCheck/rules/players.d.ts +3 -0
  180. package/dist/mapCheck/rules/races.d.ts +3 -0
  181. package/dist/mapCheck/rules/random.d.ts +3 -0
  182. package/dist/mapCheck/rules/regions.d.ts +3 -0
  183. package/dist/mapCheck/rules/targets.d.ts +3 -0
  184. package/dist/mapCheck/rules/walking.d.ts +3 -0
  185. package/dist/mapCheck.d.ts +23 -0
  186. package/dist/mapFields.d.ts +364 -0
  187. package/dist/mapFile.d.ts +23 -0
  188. package/dist/mapMeasure.d.ts +95 -0
  189. package/dist/mapMerge.d.ts +19 -0
  190. package/dist/mapObjectives.d.ts +82 -0
  191. package/dist/mapObjects.d.ts +1 -0
  192. package/dist/math.d.ts +44 -0
  193. package/dist/messages.d.ts +150 -0
  194. package/dist/missionRules-C-bGxm0Q.js +523 -0
  195. package/dist/missionRules-C-bGxm0Q.js.map +1 -0
  196. package/dist/missionRules.d.ts +179 -0
  197. package/dist/mods.d.ts +146 -0
  198. package/dist/names.d.ts +93 -0
  199. package/dist/navigation/agentParams.d.ts +4 -0
  200. package/dist/navigation/air.d.ts +89 -0
  201. package/dist/navigation/builds.d.ts +140 -0
  202. package/dist/navigation/groundAreas.d.ts +23 -0
  203. package/dist/navigation/navigation.d.ts +127 -0
  204. package/dist/navigation/recast.d.ts +214 -0
  205. package/dist/navigation/sidePaths.d.ts +69 -0
  206. package/dist/navigation/sized.d.ts +1 -0
  207. package/dist/navigation-worker.js +11 -0
  208. package/dist/navigation-worker.js.map +1 -0
  209. package/dist/nearest.d.ts +8 -0
  210. package/dist/noise.d.ts +12 -0
  211. package/dist/objectives.d.ts +93 -0
  212. package/dist/orders/basic.d.ts +96 -0
  213. package/dist/orders/build.d.ts +91 -0
  214. package/dist/orders/cast.d.ts +105 -0
  215. package/dist/orders/facts.d.ts +14 -0
  216. package/dist/orders/harvest.d.ts +94 -0
  217. package/dist/orders/idle.d.ts +7 -0
  218. package/dist/orders/items.d.ts +14 -0
  219. package/dist/orders/queue.d.ts +24 -0
  220. package/dist/pack.schema.json +6621 -0
  221. package/dist/packs/director/index.d.ts +81 -0
  222. package/dist/packs/heroes/campaign.d.ts +137 -0
  223. package/dist/packs/heroes/carry.d.ts +59 -0
  224. package/dist/packs/heroes/commands.d.ts +6 -0
  225. package/dist/packs/heroes/hire.d.ts +9 -0
  226. package/dist/packs/heroes/index.d.ts +12 -0
  227. package/dist/packs/heroes/making.d.ts +16 -0
  228. package/dist/packs/heroes/respawn.d.ts +42 -0
  229. package/dist/packs/moba/index.d.ts +34 -0
  230. package/dist/packs/pack.d.ts +84 -0
  231. package/dist/packs-g5thvmGn.js +3199 -0
  232. package/dist/packs-g5thvmGn.js.map +1 -0
  233. package/dist/packs.d.ts +84 -0
  234. package/dist/paths.d.ts +51 -0
  235. package/dist/plain.d.ts +17 -0
  236. package/dist/player.d.ts +117 -0
  237. package/dist/portals.d.ts +66 -0
  238. package/dist/prefabs.d.ts +139 -0
  239. package/dist/presetBuildings.d.ts +52 -0
  240. package/dist/presetGround.d.ts +22 -0
  241. package/dist/profiles-B3NS9jwk.js +335 -0
  242. package/dist/profiles-B3NS9jwk.js.map +1 -0
  243. package/dist/races.d.ts +136 -0
  244. package/dist/randomGroups.d.ts +2 -0
  245. package/dist/registry.d.ts +464 -0
  246. package/dist/remains.d.ts +119 -0
  247. package/dist/replication.d.ts +103 -0
  248. package/dist/rng.d.ts +17 -0
  249. package/dist/rules.d.ts +395 -0
  250. package/dist/rulesCheck.d.ts +37 -0
  251. package/dist/runes.d.ts +41 -0
  252. package/dist/save.d.ts +277 -0
  253. package/dist/scenario.d.ts +56 -0
  254. package/dist/scheduler.d.ts +67 -0
  255. package/dist/score.d.ts +306 -0
  256. package/dist/sequences.d.ts +132 -0
  257. package/dist/server/doorman.d.ts +21 -0
  258. package/dist/server/gameServer.d.ts +346 -0
  259. package/dist/server/index.d.ts +24 -0
  260. package/dist/server/lobby.d.ts +1 -0
  261. package/dist/server/log.d.ts +13 -0
  262. package/dist/server/match.d.ts +24 -0
  263. package/dist/server/mode.d.ts +168 -0
  264. package/dist/server/navigation-worker.d.ts +1 -0
  265. package/dist/server/navigation.d.ts +11 -0
  266. package/dist/server/ops.d.ts +78 -0
  267. package/dist/server/packs.d.ts +15 -0
  268. package/dist/server/ratings.d.ts +62 -0
  269. package/dist/server/relay.d.ts +34 -0
  270. package/dist/server/rooms.d.ts +162 -0
  271. package/dist/server/seat.d.ts +2 -0
  272. package/dist/server/seatSettings.d.ts +15 -0
  273. package/dist/server/secret.d.ts +5 -0
  274. package/dist/server/start.d.ts +54 -0
  275. package/dist/server/websocket.d.ts +74 -0
  276. package/dist/server.js +2861 -0
  277. package/dist/server.js.map +1 -0
  278. package/dist/session/can.d.ts +20 -0
  279. package/dist/session/commandReplay.d.ts +92 -0
  280. package/dist/session/debug.d.ts +65 -0
  281. package/dist/session/delay.d.ts +15 -0
  282. package/dist/session/delta.d.ts +98 -0
  283. package/dist/session/entityState.d.ts +1 -0
  284. package/dist/session/local.d.ts +214 -0
  285. package/dist/session/memory.d.ts +27 -0
  286. package/dist/session/protocol.d.ts +1155 -0
  287. package/dist/session/remote.d.ts +530 -0
  288. package/dist/session/replay.d.ts +114 -0
  289. package/dist/session/seed.d.ts +7 -0
  290. package/dist/session/share.d.ts +78 -0
  291. package/dist/session/socket.d.ts +8 -0
  292. package/dist/session/wire.d.ts +153 -0
  293. package/dist/session/worker.d.ts +227 -0
  294. package/dist/shared.d.ts +171 -0
  295. package/dist/sides.d.ts +75 -0
  296. package/dist/sight.d.ts +27 -0
  297. package/dist/simulate-oXBiw1Ff.js +167 -0
  298. package/dist/simulate-oXBiw1Ff.js.map +1 -0
  299. package/dist/simulate-worker.d.ts +1 -0
  300. package/dist/simulate-worker.js +28 -0
  301. package/dist/simulate-worker.js.map +1 -0
  302. package/dist/simulate.d.ts +154 -0
  303. package/dist/smart.d.ts +9 -0
  304. package/dist/spatial.d.ts +62 -0
  305. package/dist/spawning.d.ts +33 -0
  306. package/dist/stances.d.ts +76 -0
  307. package/dist/start.d.ts +71 -0
  308. package/dist/stats.d.ts +122 -0
  309. package/dist/summons.d.ts +63 -0
  310. package/dist/systems/abilities.d.ts +3 -0
  311. package/dist/systems/combat.d.ts +71 -0
  312. package/dist/systems/combatTold.d.ts +14 -0
  313. package/dist/systems/construction.d.ts +34 -0
  314. package/dist/systems/economy.d.ts +21 -0
  315. package/dist/systems/fog.d.ts +19 -0
  316. package/dist/systems/life.d.ts +3 -0
  317. package/dist/systems/movement.d.ts +105 -0
  318. package/dist/systems/orders.d.ts +7 -0
  319. package/dist/systems/production.d.ts +49 -0
  320. package/dist/systems/productionQueue.d.ts +40 -0
  321. package/dist/systems/victory.d.ts +14 -0
  322. package/dist/talk.d.ts +65 -0
  323. package/dist/tech.d.ts +62 -0
  324. package/dist/techTree.d.ts +38 -0
  325. package/dist/terrain.d.ts +173 -0
  326. package/dist/terrainSave.d.ts +29 -0
  327. package/dist/testing.d.ts +58 -0
  328. package/dist/testing.js +822 -0
  329. package/dist/testing.js.map +1 -0
  330. package/dist/tiles.d.ts +34 -0
  331. package/dist/timers.d.ts +146 -0
  332. package/dist/tomes.d.ts +48 -0
  333. package/dist/trade.d.ts +28 -0
  334. package/dist/transport.d.ts +76 -0
  335. package/dist/tunables.d.ts +45 -0
  336. package/dist/upkeep.d.ts +16 -0
  337. package/dist/veterancy.d.ts +80 -0
  338. package/dist/walls.d.ts +86 -0
  339. package/dist/world.d.ts +1118 -0
  340. package/package.json +80 -5
  341. package/README.md +0 -3
@@ -0,0 +1,76 @@
1
+ import { type GameModule } from './game';
2
+ import type { ModDef } from './mods';
3
+ import type { World } from './world';
4
+ /**
5
+ * A world took a new version of its game while it ran (`reloadGame`, hot reload): what the rules hear
6
+ * (`world.events.on(gameReloaded, …)`), and every screen (`GameView.on`), to make again what it made of the old one
7
+ *
8
+ * @beta
9
+ */
10
+ export declare const gameReloaded: import("./events").EventKey<{
11
+ game: string;
12
+ }>;
13
+ /**
14
+ * Puts a new version of a world's game into it while it runs, as a game's files are saved during development (hot
15
+ * reload): its unit types, abilities, buffs, items, upgrades and races, the code of their effects and of its orders,
16
+ * and its rules. What `world.redefine` changed while it ran stays over them, and its units take their types as they
17
+ * are now. What the world was made of otherwise (its systems, hooks, components, resources) is not: a change to those
18
+ * wants a new game, which is said (`hotRules` loads the page again for one). Throws for another game, or a module that is no game (as `createRegistry`)
19
+ *
20
+ * @beta
21
+ */
22
+ export declare function reloadGame(world: World, game: GameModule): void;
23
+ /**
24
+ * What a module's `import.meta.hot` gives for hot reload, as Vite has it: what loads the page again
25
+ *
26
+ * @beta
27
+ */
28
+ export interface HotContext {
29
+ invalidate(message?: string): void;
30
+ }
31
+ /**
32
+ * Hears of every new version of a game's rules taken in the page (`hotRules`). Returns what stops it
33
+ *
34
+ * @beta
35
+ */
36
+ export declare function onNewGameVersion(listener: (game: GameModule) => void): () => void;
37
+ /**
38
+ * Hears of every new version of a mod taken in the page (`hotMod`). Returns what stops it
39
+ *
40
+ * @beta
41
+ */
42
+ export declare function onNewModVersion(listener: (mod: ModDef) => void): () => void;
43
+ /**
44
+ * A mod's module's new version, taken while it runs (hot reload), as `hotRules` takes a game's: at its end,
45
+ *
46
+ * if (import.meta.hot) import.meta.hot.accept((module) => hotMod(import.meta.hot, goldRush, module?.goldRush))
47
+ *
48
+ * The mod given is made the new one in place, and every game of the page played with it is made again of its parts as
49
+ * they are now (`recompose`) and takes that. What does not go (no new module, another mod, mods that no longer go
50
+ * together) loads the page again
51
+ *
52
+ * @beta
53
+ */
54
+ export declare function hotMod(hot: HotContext | undefined, current: ModDef, next: unknown): void;
55
+ /**
56
+ * Puts what `next` has into `current`, in its place: everything that holds `current` has the new version
57
+ *
58
+ * @beta
59
+ */
60
+ export declare function replaceIn(current: object, next: object): void;
61
+ /**
62
+ * A game's entry module's new version, taken while it runs (hot reload). At the module's end, the call to Vite written
63
+ * out as it is (Vite finds a module that takes its own new versions by it):
64
+ *
65
+ * if (import.meta.hot) import.meta.hot.accept((module) => hotRules(import.meta.hot, melee, module?.melee))
66
+ *
67
+ * As it or a file it reads (its units, its `data.json`) is saved in the dev server, the module given is made the new
68
+ * one in place, so that what holds it has the new one, and the games and editors of the page playing it take its
69
+ * definitions and rules (`reloadGame`, through `onNewGameVersion`). What does not go loads the page again, saying why
70
+ * (`hot.invalidate(reason)`): no new module, another game, a component defined another way, or a change to what a
71
+ * running world keeps as it was made (its `systems`, `hooks`, `components`, `resources`, and `withoutSystems` and
72
+ * `withoutHooks`, compared by their code and values). No client is pulled into the rules, which a server reads too
73
+ *
74
+ * @beta
75
+ */
76
+ export declare function hotRules(hot: HotContext | undefined, current: GameModule, next: unknown): void;
package/dist/ids.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Ids the compiler knows. A game's ids are text to the engine (`world.spawn('skeleton', ...)`), and a slip of the
3
+ * finger in one is found when the game runs, if it is found. Named once with `defineIds`, they are checked as they are
4
+ * written, completed by the editor, and renamed in one place:
5
+ *
6
+ * export const UNIT = defineIds('skeleton', 'runner', 'brute')
7
+ * export type TdUnit = IdOf<typeof UNIT> // 'skeleton' | 'runner' | 'brute'
8
+ *
9
+ * { id: UNIT.skeleton, ... } // in the unit's definition
10
+ * world.spawn(UNIT.skeletn, ...) // does not compile
11
+ * const view: GameView<TdUnit> = { units: { looks: { skeletn: ... } } } // nor does this
12
+ *
13
+ * It is a help, not a rule: plain text works wherever an id goes, and what the compiler cannot see is checked when the
14
+ * game is put together (`defineGame`)
15
+ *
16
+ * @beta
17
+ */
18
+ export declare function defineIds<const T extends string>(...names: T[]): {
19
+ readonly [K in T]: K;
20
+ };
21
+ /**
22
+ * The ids of a list made with `defineIds`, as a type: `IdOf<typeof UNIT>`
23
+ *
24
+ * @beta
25
+ */
26
+ export type IdOf<T extends Readonly<Record<string, string>>> = keyof T & string;
@@ -0,0 +1,227 @@
1
+ /**
2
+ * The public API of the engine: everything a game module, a mod, a client or a server may use.
3
+ * Imported as `@v12-engine/engine`.
4
+ *
5
+ * What is not listed here is the engine's own business and can change at any time. Tests may reach
6
+ * further in; nothing else should, and the architecture tests check that.
7
+ */
8
+ export type { CreateWorldOptions, GameModule, GameResult, LobbySetting, MapWorldOptions, ServerHooks, ServerSeat } from './game';
9
+ export { spawnStart, type StartCode, type StartData, type StartDef, startingBase } from './start';
10
+ export type { LoadWorldOptions } from './game';
11
+ export type { Collection, GameBuilder, ModDef } from './mods';
12
+ export { composeGame, defineMod, isMadeOf, ModError, recompose, satisfies } from './mods';
13
+ export { type AssembledGame, assembleGame, coreSystems, createRegistry, createWorld, createWorldFromMap, loadWorld, maxPlayersOf } from './game';
14
+ export type { EntitySave, SaveHeader, SaveMigration, SaveMissing, SaveRefusal, SaveRules, WorldSave } from './save';
15
+ export { type TerrainSave } from './terrainSave';
16
+ export { decodeSave, encodeSave, SAVE_FORMAT, SaveError, saveHeader, saveProblem, saveWorld, type SaveWorldOptions, updateSave } from './save';
17
+ export { applyTerrainPatch, type GroundBase, type GroundChanges, type GroundLayer, groundDifference, groundHash, isGroundChanges, type SavedGround, terrainPatch, type TerrainPatch, terrainPatchProblem } from './ground';
18
+ export type { CampRules, FogRules, GameRules, HudShareRule, HudSharing, QueuedUnit, RulesInit } from './rules';
19
+ export { defaultRules } from './rules';
20
+ export type { EngineMessages, Message, MessageParams, MessageRef } from './messages';
21
+ export { engineMessage, toMessage } from './messages';
22
+ export type { OrderBehavior, OrderFact, OrderInit, OrderStatus, System, SystemDef, SystemOver, SystemPhase } from './registry';
23
+ export type { NoState, OrderInitOf, OrderInits, OrderParams, OrderStateOf, OrderStates } from './registry';
24
+ export type { AdvanceState, AlongPath, AttackGroundState, AttackState, FollowState, HoldState, PatrolState } from './orders/basic';
25
+ export type { BuildState, RepairState, WorkState } from './orders/build';
26
+ export type { CastChannel, CastState } from './orders/cast';
27
+ export type { HarvestGathering, HarvestKept, HarvestState, HarvestToDropOff, HarvestToResource } from './orders/harvest';
28
+ export type { ItemOrderState } from './orders/items';
29
+ export type { BoardState, LoadState, UnloadState } from './transport';
30
+ export type { SystemTiming } from './scheduler';
31
+ export { PHASES, Scheduler } from './scheduler';
32
+ export type { Available, CanHarvest, AfterCast, AfterDamage, BeforeBuff, BeforeCast, BeforeDamage, BeforeDeath, BeforeHeal, BeforeOrder, BeforePause, BeforeSurrender, SupplyCap, BeforeProduce, BuffEnd, CanPlace, Death, FromMap, FromMapCamp, FromMapObject, FallenHero, FromMapRegion, Morphed, AnyHook, HookDef, HookEvents, HookHandler, HookKey, HookName, Idle, Hooks, ProductionKind, TargetScore, MakeWay, Detour, Formation } from './hooks';
33
+ export { defineHook, defineHookType } from './hooks';
34
+ export type { EventAudience, EventKey, ListenerDef } from './events';
35
+ export { type ReplicatedEvent, replicateEvent, type SessionEventOf, SessionView, type SnapshotPart } from './replication';
36
+ export { defineEvent, defineListener } from './events';
37
+ /** The engine's events, a key each (design review E7) */
38
+ export * from './engineEvents';
39
+ export type { PrefabArea, PrefabCamp, PrefabContents, PrefabDef, PrefabInside, PrefabObject, SpawnedPrefab, SpawnPrefabOptions } from './prefabs';
40
+ export { definePrefab, nestedPartId, prefabsFrom, spawnPrefab } from './prefabs';
41
+ export type { AreaDef, AreaRef, AreaShape } from './areas';
42
+ export { Areas, areaShapeOf, defineArea, inShape, shapeArea, shapeAsBox, shapeAt, shapeBounds, shapeReach } from './areas';
43
+ export type { EveryOptions, ShownTimer, TimerDef, TimerInfo } from './timers';
44
+ export { defineTimer, Timers } from './timers';
45
+ export type { SequenceDef, Step } from './sequences';
46
+ export { defineSequence, Sequences, wait, waitFor, waitUntil } from './sequences';
47
+ export type { ObjectiveDef, ObjectiveState, ObjectiveStatus } from './objectives';
48
+ export { defineObjective, objectiveVictory, Objectives } from './objectives';
49
+ export type { MapObjective } from './mapObjectives';
50
+ export { checkMapObjectives, giveMapObjective, MAP_OBJECTIVES, MAP_OBJECTIVES_KEY, mapObjectivePlayers, mapObjectives, mapObjectivesOf } from './mapObjectives';
51
+ export type { MissionActionData, MissionRule, MissionRuleState } from './missionRules';
52
+ export { checkMissionRules, MAP_RULES_KEY, MISSION_RULES, missionRulesOf, missionRuleState, ruleFired, tellRules } from './missionRules';
53
+ export type { Audience as LineAudience, LineDef, SaidLine } from './dialog';
54
+ export { Dialog, talk } from './dialog';
55
+ export type { CinematicChoice, CinematicCue, CinematicCueSent, CinematicEnded, CinematicOptions, CinematicOutcome, CinematicWait } from './cinematics';
56
+ export type { DeathCause, DeathReason, PlayerRelation } from './world';
57
+ export { cinematic, cinematicCue, cueCinematic, playCinematic, regionCinematic } from './cinematics';
58
+ export type { EffectCue, EffectOptions } from './effects';
59
+ export { playEffect, stopEffect } from './effects';
60
+ export { coreHooks } from './features';
61
+ export { Registry, UnlistedError } from './registry';
62
+ export type { DamageOptions, Delayed, MessageKind, Missile, Projectile, Reveal, SpawnOptions, WorldEvents, WorldChecks, WorldOptions, WorldWatcher, Zone } from './world';
63
+ export { World } from './world';
64
+ export type { Camp, CampMember } from './camps';
65
+ export { campLayout, campMember, campNamed, camps, respawnCamp, spawnCamp } from './camps';
66
+ export type { MapInfo, MapPlayerInfo } from './names';
67
+ export { WorldMap } from './names';
68
+ export type { Spot } from './paths';
69
+ export { Path } from './paths';
70
+ export { mapFileStem, mapNamesSource, mapText } from './mapFile';
71
+ export { type MapMerge, mergeMaps } from './mapMerge';
72
+ export type { MapEditorDef, MapEraseKind, MapFieldDef, MapFieldKind, MapFieldOption, MapPaletteGroup, MapProblem, MapRef, MapRefTarget, MapRefUse, MapTarget, MapThing } from './mapFields';
73
+ export type { TileDef } from './tiles';
74
+ export { defineTile, MAX_TILES } from './tiles';
75
+ export { type CellLayerDef, cellLayerValues, cellsIn, defineCellLayer } from './cellLayers';
76
+ export { presetBlight, presetTiles } from './presetGround';
77
+ export { type MarketRate, presetFountain, presetMarket, type PresetMarketOptions } from './presetBuildings';
78
+ export { type ConcealmentOptions, patchAt, withConcealment } from './concealment';
79
+ export { homeOf } from './home';
80
+ export { recallAbility, type RespawnOptions, withRespawn } from './packs/heroes/respawn';
81
+ export { DEFAULT_STANCE, stance, stanceCommand, type StanceDef, stanceOf, STANCES, type StancesOptions, withStances } from './stances';
82
+ export { CAPTURE_FIELDS, CAPTURE_KIND, captured, captureOf, type CaptureOptions, capturePoint, type CapturePoint, captures, capturesOf, type CaptureState, capturing, type Contested, withCapture } from './capture';
83
+ export { FRIENDLY_FIRE, type FriendlyFireOptions, withFriendlyFire } from './friendlyFire';
84
+ export { denying, type DenyOptions, type LastHitOptions, lastHitsOf, mayDeny, withLastHits } from './denying';
85
+ export { checkLanes, coreVictory, defaultWave, heroStrike, type LaneWave, laneMinion, type LanesOptions, sendWave, wavesSent, withLanes, LANE_SPAWNER_KIND, LANE_SPAWNERS, type Lane, type LaneEnd, lanesOf, mapLanes } from './lanes';
86
+ export { campFields, DEFAULT_HEIGHTS, defineMapField, fieldOptions, mapFields, mapThings, objectFields, playerFields, regionFields } from './mapFields';
87
+ export type { IdOf } from './ids';
88
+ export { defineIds } from './ids';
89
+ export type { Audience, Component, ComponentFieldDef, ComponentOptions, SavedRefs, SnapshotView } from './components';
90
+ export { defineComponent, snapshotOf } from './components';
91
+ export type { AbilityState, BuffInstance, CombatState, ConstructionState, Dash, EntityId, HarvesterState, ItemInstance, MovementState, MoveStatus, Order, Placed, PlayerId, ProductionItem, ProductionState, RallyPoint, ResourceState, StockState } from './entity';
92
+ export { deposit, detection, distanceToEdge, edgeDistance, Entity, exposure, fighting, moving } from './entity';
93
+ export { dashing } from './dashing';
94
+ export { orderSays } from './orders/facts';
95
+ export { type DebugAsk, type GameHostMessage, type HostToPlayer, type LobbyServerMessage, type ServerToPlayer } from './session/wire';
96
+ export { defineGameFile, type GameFileDef } from './gameFiles';
97
+ export type { PlayerInit } from './player';
98
+ export type { Purse } from './player';
99
+ export { currencyOf, earn, giveBack, pay, Player, refund, shortOf, spend, type SpentOn } from './player';
100
+ export { defineStat, engineStats, presetScore, type PresetScoreOptions, Score, type ScoreAudience, type ScoreCount, type ScoreCounted, scoreData, type ScoreData, type ScoreFormat, type ScoreKind, type ScoreLineState, scoreOn, type ScoreRules, type ScoreSource, type ScoreState, type ScoreStatDef, type ResolvedScore } from './score';
101
+ export type { Command, CommandDef, Commands, DefinedCommand, IssuedCommand, ModCommand } from './commands';
102
+ export { coreCommands, defineCommand, stopCommand } from './commands';
103
+ export type { Check, Checked, Fields } from './fields';
104
+ export { bool, id, ids, index, Invalid, isObject, list, number, object, oneOf, optional, point, rgb, seconds, string, text } from './fields';
105
+ export type { AbilityDef, AbilityTarget, AimShape, AttackDef, AttackStats, BuffDef, Cost, DamageType, DayCycle, AnyEffect, EffectCommon, EffectDef, EffectFields, EffectOf, EffectTypes, EntityKind, HeroDef, ItemDef, ItemTier, Layer, ResourceDef, ResourceKind, Scaled, ScaledStatChange, Scaling, StatChange, StatDef, StatKey, Stats, CoreStats, StatSource, UnitTypeDef, UpgradeDef, UpgradeEffect, UpkeepTier } from './defs';
106
+ export { aimOf, at, baseStats, footprintOf, upgradesOf, hourOf, isNight, noStats, anyEffect } from './defs';
107
+ export { attackTiming, cooldownOf, mitigation, refreshVitals, type StatPart, type StatSum, statsOf, swingTiming } from './stats';
108
+ export { casterFacts, scaled } from './abilities/scaled';
109
+ export { AURA_LINGER, applyBuff, avoids, hasBuff, isRooted, isSilenced, isSpellImmune, isStunned, layerOf, removeBuff, shieldOf, silences } from './abilities/buffs';
110
+ export type { EffectContext, EffectHandler, EffectKind } from './abilities/effects';
111
+ export { defineEffect, type EffectKindOptions, effectTargets, startDash } from './abilities/effects';
112
+ export { buffEnded } from './abilities/land';
113
+ export { restoreCharges } from './abilities/charges';
114
+ export { castRange, castTimeOf, isSpell, notReady, validTarget } from './orders/cast';
115
+ export { attackReaches, canAttack, fireOnTheMove, shootsUphill } from './systems/combat';
116
+ export { attackStat, defaultPickAttack, farthestAcquisition, farthestReach, groundAttack, pickAttack, rangeAgainst, reaches, tooNear } from './attacks';
117
+ export type { EngageLayer } from './engagement';
118
+ export { attackersOf, bandOf, defaultEngageLayer, defaultEngageRoom, engagedLike, engagedWith, engageLayer, engageWith, isBlocked, isCrowded, isShunned, release, roomFor, SHUN_TIME, shun, spotFor } from './engagement';
119
+ export type { MoveOptions } from './systems/movement';
120
+ export { faceTowards, halt, lookAhead, makeWay, moveTo, moveToEntity, REPATH_SPREAD, setAnchored, setGhost, standsInWay, stepAside } from './systems/movement';
121
+ export type { FormationContext, FormationDef } from './formation';
122
+ export { circleFormation, coreFormations, fitToPlaces, FORMATION_GAP, formationPoints, noneFormation, rowsFormation, squareFormation } from './formation';
123
+ export { expose } from './systems/fog';
124
+ export { lastTeamStanding } from './systems/victory';
125
+ export { canPlaceStructure, canRepair, placementCells, placementProblem, siteOf } from './orders/build';
126
+ export { BuildGrid, footprintCell } from './grid';
127
+ export { playerFacts, upgradeLevel } from './systems/production';
128
+ export { productionOf, productionQueue, queueOf, upgradeOf } from './systems/productionQueue';
129
+ export { builtSoFar, constructionSite, underConstruction } from './systems/construction';
130
+ export type { PlayerFacts, ReadyFacts, Relation, TargetFacts } from './shared';
131
+ export { abilityReach, abilityRefusal, chargesLeft, costRefusal, availableTo, availableToPlayer, gathers, requirementRefusal, sellValue, targetRefusal, trainRefusal } from './shared';
132
+ export { targetFacts } from './orders/cast';
133
+ export { canLearn, grantXp, HEROES, heroesOf, heroOf, heroOfState, heroState, learn, levelNeeded, maxLevelOf, respawnIn, reviveCost, reviveHero, setHeroLevel, xpWorth } from './hero';
134
+ export type { HeroesPack, HeroRules, HeroSent, HeroState } from './hero';
135
+ export { hasPack, type GamePack } from './packs/pack';
136
+ export { withHeroes } from './packs/heroes';
137
+ export { cinematicPlayingCommand, DIRECTOR, DIRECTOR_ACTIONS, DIRECTOR_ORDERS, type DirectorAction, directorCommand, directorInvulnerable, type DirectorOptions, directing, withDirector } from './packs/director';
138
+ export { MOBA_STATS, type MobaStatsOptions, penetratingMitigation, withMobaStats } from './packs/moba';
139
+ export { makeHero } from './packs/heroes/making';
140
+ export type { GroundItem } from './items';
141
+ export { freeSlot, inventorySlots, slotsOf } from './inventory';
142
+ export { atShop, buy, createItem, dropOnGround, findItem, giveItem, pickUp, priceOf, sell, shopNear, spendCharge, takeItem, shopStock } from './items';
143
+ export { meets, missing, morph, techOf, unlocked, unlockRefusal } from './tech';
144
+ export { type TechEdge, type TechNode, techTree } from './techTree';
145
+ export { canHarvest, gathering, harvesterOf } from './orders/harvest';
146
+ export { checkRaces, defineRace, isAvailable, RANDOM_RACE, type RaceDef, type RaceHookDef, raceOf, setRace } from './races';
147
+ export type { Upkeep } from './upkeep';
148
+ export { upkeepOf } from './upkeep';
149
+ export { plain as plainData } from './plain';
150
+ export type { CellRect, GameMap, MapResize, MapResizer, MapSides, MapCamp, MapFile, MapMigration, MapCamera, MapDay, MapForce, MapItemTable, MapItemTableEntry, MapRandomGroup, MapDoodad, MapDetail, MapDetailLevel, MapDoodadDetail, MapEnvironment, MapObject, MapObjectOrder, MapPath, PathProfile, MapPlayer, MapPoint, MapRegion, MapRegionCinematic, MapDoodadLight, NewMapOptions } from './map';
151
+ export { cloneMap, createMap, withoutEditor, MAP_CREEPS, MAP_NEUTRAL, mapTerrain, blockByDoodads, BLOCKS_BUILD, BLOCKS_WALK, type MapTile, mapTileIds, playTileset, heightsFromPixels, heightsToPixels, MAX_MAP_SIZE, resizeMap, MAX_LEVEL, MAX_MAP_PLAYERS, adoptTileset, mapsFrom, migrateMap, parseMap, PLAYER_COLORS, PROFILE_SMOOTH, profileReach, playerSlot, serializeMap, updateMapTerrain } from './map';
152
+ export type { PlateauSpec, RampSpec, TerrainGenOptions, TerrainMesh, TerrainSurface } from './terrain';
153
+ export { generateTerrain, Terrain, WATER_DEEP, WATER_NONE, WATER_SHALLOW } from './terrain';
154
+ export { FogOfWar } from './fog';
155
+ export type { AgentSave, NavDebugGeometry, Navigation } from './navigation/navigation';
156
+ export type { AvoidanceLevel, AvoidanceParams, RecastNavigationOptions } from './navigation/recast';
157
+ export { AVOIDANCE_LEVELS } from './navigation/recast';
158
+ export type { AbilityInfo, SharedAbility, CampInfo, GameKindListing, GameListing, MineInfo, CarriedItem, GatheringInfo, ProductionInfo, InventoryInfo, EntityState, FogState, GameSession, CorpseState, GroundItemState, XpInfo, HeroSummary, LearnableInfo, MissileState, Outcome, OwnEntityState, PlayerCommand, PlayerState, ProjectileState, QueueItemState, RevealState, SessionEvent, SessionEvents, SessionCan, SessionDebug, SessionPace, SessionSaves, SessionTiming, SessionComputer, Snapshot, StockInfo } from './session/protocol';
159
+ export { isCommand, PROTOCOL_VERSION } from './session/protocol';
160
+ export { LocalSession } from './session/local';
161
+ export { type TeamMemory } from './session/memory';
162
+ export type { ConnectOptions, HostTiming, LoopbackEnd, LoopbackOptions, SessionHostOptions, Transport } from './session/remote';
163
+ export { connect, loopback, RemoteSession, SessionHost, SessionRefused } from './session/remote';
164
+ export { delayed } from './session/delay';
165
+ export { type ServeWorldOptions, serveWorld, type WorkerGame, WorkerSession, workerSession, type WorkerSessionOptions, type WorldPort, type WorldWorkerLike } from './session/worker';
166
+ export { openSocket } from './session/socket';
167
+ export { type RelayNotice, type SharedGame, shareGame, type ShareOptions } from './session/share';
168
+ export type { Delta, EntityChange, FogMessage, Frame, WirePatch } from './session/delta';
169
+ export { quantize } from './session/delta';
170
+ export type { AbilityAiView } from './ai/micro';
171
+ export type { AiHints, AiRole } from './ai/roles';
172
+ export type { Computers } from './computers';
173
+ export type { ComputerPlayer, ComputerSystem } from './ai/computer';
174
+ export type { BrainDef } from './ai/brain';
175
+ export type { Rect, Vec2 } from './math';
176
+ export { clamp, dist, distSq, hashInts, lerp, lerpAngle, smoothstep, vec2 } from './math';
177
+ export { exactMath } from './exactMath';
178
+ export { type KnownBuilding, SidePaths } from './navigation/sidePaths';
179
+ export { Rng } from './rng';
180
+ export { randomSeed } from './session/seed';
181
+ export { layeredNoise, type Noise2 } from './noise';
182
+ export { type GeneratedMap, type MapGenerating, mapGeneratorWorker, serveMapGenerator } from './generateWorker';
183
+ export { generateMap, type GeneratedWith, type GeneratorContext, type GeneratorOptions, type GeneratorParamDef, type GeneratorPass, type MapGenerator, type MapSymmetry, type GeneratorMark, presetGenerator, type PresetGeneratorOptions, resourcesPass, type ResourcesPassOptions, roadsPass, type RoadsPassOptions, scatterPass, type ScatterPassOptions, startsPass, type StartsPassOptions, symmetricPlaces, terrainPass, type TerrainPassOptions, tilesPass, type TilesPassOptions, basinShape, type BasinShapeOptions, clearGround, nearestDryGround } from './generate';
184
+ export { invalidateStats } from './stats';
185
+ export type { EntityRow, InspectedSection, Inspection, InspectTarget, LoggedEvent, PlayerRow, Trace, WorldListing } from './inspect';
186
+ export type { WaitingTimer } from './timers';
187
+ export { checkMap, MAP_RULES, type MapCheckContext, mapCells, type MapRule } from './mapCheck';
188
+ export { checkRules, editDistance, type RulesProblem } from './rulesCheck';
189
+ export { grantVeterancy, rankedUp, rankOf, veterancy, VETERANCY_RANKS, type VeterancyOptions, type VeterancyRank, type VeterancyState, withVeterancy } from './veterancy';
190
+ export { ATTRIBUTE_KEYS, type Attribute, ATTRIBUTES, attributesOf, type AttributesOptions, primaryAttribute, CLASSIC_ATTRIBUTES, withAttributes } from './attributes';
191
+ export { burnMana, type BurnOptions, MANA_BURN, withManaBurn } from './manaBurn';
192
+ export { DESTRUCTIBLES, type DestructiblesOptions, withDestructibles } from './destructibles';
193
+ export { portal, PORTALS, portalUsed, setWaygate, townPortal, waygate, waygateTarget, withPortals } from './portals';
194
+ export { RUNES, type RunesOptions, usePowerUp, withRunes } from './runes';
195
+ export { gainedStats, gainStats, type GainedStats, TOMES, withTomes } from './tomes';
196
+ export { pileOf, pileTaken, pileType, type RemainsOptions, type RemainsSpec, rubbleType, withRemains } from './remains';
197
+ export { buildLineCommand, setWallGate, wallGate, wallGateChanged, wallGateCommand, wallJoined, wallLine, type WallShape, withWalls } from './walls';
198
+ export { BUILD_REACH, type GameMeasure, type MapReport, measureMap, type StartMeasure, walkBetween, type Walk, walkingTime } from './mapMeasure';
199
+ export { defineTunable, type TunableDef, tunableChanged, tuneCommand, withTuning } from './tunables';
200
+ export { buildNavigationData, memoryNavigationCache, type NavigationBuild, type NavigationBuildConfig, type NavigationBuilder, type NavigationBuilds, type NavigationSpeeds, type NavigationCache, type NavigationPort, navigationWorker, type NavigationWorkerLike, serveNavigationBuilds } from './navigation/builds';
201
+ export { DATA_KINDS, type DataDefs, type DataField, type DataKind, type DataValue, type DataValues, COPY_OF, copyDefinition, type FieldValue, definitionChanged, definitionIn, definitionsIn, type EditableData, type EditableField, type EditableFields, editableFields, blankDefinition, effectFields, effectTypesOf, editableValues, fitValue, type GameData, mergeValues, nested, NEW_DEFINITION, redefineIn, redefinitions, removeDefinition, REQUIRED_FIELDS, valueAt, withData, withValues } from './gameData';
202
+ export { checkPack, checkPackSchema, PackError, packFromJson, packsOf } from './packs';
203
+ export type { DataRules } from './gameData';
204
+ export { dataRulesProblem } from './gameData';
205
+ export type { PackFile, PackMod } from './packs';
206
+ export { readScenario, SCENARIO_FORMAT, type ScenarioFile, scenarioOfMap, scenarioOfWorld, scenarioWorld } from './scenario';
207
+ export { gateChanged, isGateOpen, setGate } from './gates';
208
+ export { gameReloaded, type HotContext, hotMod, hotRules, onNewGameVersion, onNewModVersion, reloadGame, replaceIn } from './hotReload';
209
+ export { applyHeroRecord, heroFromRecord, type HeroItem, heroRecord, type HeroRecord, readHeroRecord } from './packs/heroes/carry';
210
+ export { type CampaignProgress, carryIn, carryOut, carryResearch, carryResources, carryUnits, giveResearch, giveResources, type MissionResult, missionWon, newCampaignProgress, placeUnits, readCampaignProgress, type UnitRecord } from './packs/heroes/campaign';
211
+ export { board, canBoard, type Cargo, cargo, roomIn, unload } from './transport';
212
+ export { hire } from './packs/heroes/hire';
213
+ export { allowed, chat, type ChatAudience, ping, PING_KINDS, pingKinds, type PingKind as PlayerPingKind } from './talk';
214
+ export { type Corpse, corpses, illusion, summoned, takeCorpses, worthless } from './summons';
215
+ export { dispelBuffs } from './abilities/dispel';
216
+ export { exchange, give, shareWith } from './trade';
217
+ export { pausesLeft, surrender } from './endings';
218
+ export { type FramesReplay, type RecordOptions, type Replay, type ReplayPlayer, type ReplayRecorder, playReplay, recordGame } from './session/replay';
219
+ export { type CommandRecorder, type CommandReplay, recordCommands, REPLAY_SLICE, runReplay } from './session/commandReplay';
220
+ export { type Apart, type Difference, saveDifference } from './determinism';
221
+ export type { AbilityTextContext, AbilityValue, AbilityValueDef, CasterFacts, TextSegment, ValuePart } from './abilities/text';
222
+ export { abilityText, abilityValues, describeAbility, formatNumber, STAT_WORDS, valueText } from './abilities/text';
223
+ export { consoleSink, createLogRing, errorFields, LOG_LEVELS, type LogContext, type LogEntry, Logger, type LoggerOptions, type LogLevel, logLine, type LogRing, type LogSink, rootConsole, rootLogger } from './log';
224
+ export { type ErrorAnswer, type ErrorPolicy, type ErrorSite, type RejectedKind, siteWords, type WorldFailure } from './errors';
225
+ /** The engine's orders that go along a path of the map, for a game's own to be made of (`followRoad` of the tower defense) */
226
+ export { checkDamageTable, type DamageTable, damageMultiplier } from './rules';
227
+ export { groundSpeedAt, groundSpeedOfCell } from './groundSpeed';