@v12-engine/engine 0.1.0 → 0.4.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 (951) hide show
  1. package/dist/abilities/amounts.d.ts +28 -0
  2. package/dist/abilities/amounts.js +74 -0
  3. package/dist/abilities/amounts.js.map +1 -0
  4. package/dist/abilities/buffs.d.ts +106 -6
  5. package/dist/abilities/buffs.js +443 -0
  6. package/dist/abilities/buffs.js.map +1 -0
  7. package/dist/abilities/castTold.d.ts +2 -0
  8. package/dist/abilities/castTold.js +66 -0
  9. package/dist/abilities/castTold.js.map +1 -0
  10. package/dist/abilities/chance.d.ts +38 -0
  11. package/dist/abilities/chance.js +77 -0
  12. package/dist/abilities/chance.js.map +1 -0
  13. package/dist/abilities/charges.d.ts +18 -0
  14. package/dist/abilities/charges.js +101 -0
  15. package/dist/abilities/charges.js.map +1 -0
  16. package/dist/abilities/control.d.ts +28 -0
  17. package/dist/abilities/control.js +113 -0
  18. package/dist/abilities/control.js.map +1 -0
  19. package/dist/abilities/dispel.js +51 -0
  20. package/dist/abilities/dispel.js.map +1 -0
  21. package/dist/abilities/effectFields.d.ts +1 -1
  22. package/dist/abilities/effectFields.js +676 -0
  23. package/dist/abilities/effectFields.js.map +1 -0
  24. package/dist/abilities/effectIndex.d.ts +27 -0
  25. package/dist/abilities/effectIndex.js +64 -0
  26. package/dist/abilities/effectIndex.js.map +1 -0
  27. package/dist/abilities/effects/buff.d.ts +9 -3
  28. package/dist/abilities/effects/buff.js +84 -0
  29. package/dist/abilities/effects/buff.js.map +1 -0
  30. package/dist/abilities/effects/conditions.d.ts +2 -0
  31. package/dist/abilities/effects/conditions.js +41 -0
  32. package/dist/abilities/effects/conditions.js.map +1 -0
  33. package/dist/abilities/effects/core.js +54 -0
  34. package/dist/abilities/effects/core.js.map +1 -0
  35. package/dist/abilities/effects/damage.d.ts +1 -1
  36. package/dist/abilities/effects/damage.js +43 -0
  37. package/dist/abilities/effects/damage.js.map +1 -0
  38. package/dist/abilities/effects/heal.d.ts +2 -2
  39. package/dist/abilities/effects/heal.js +51 -0
  40. package/dist/abilities/effects/heal.js.map +1 -0
  41. package/dist/abilities/effects/missile.d.ts +13 -1
  42. package/dist/abilities/effects/missile.js +104 -0
  43. package/dist/abilities/effects/missile.js.map +1 -0
  44. package/dist/abilities/effects/morph.d.ts +5 -0
  45. package/dist/abilities/effects/morph.js +43 -0
  46. package/dist/abilities/effects/morph.js.map +1 -0
  47. package/dist/abilities/effects/moves.d.ts +16 -4
  48. package/dist/abilities/effects/moves.js +212 -0
  49. package/dist/abilities/effects/moves.js.map +1 -0
  50. package/dist/abilities/effects/passives.d.ts +19 -9
  51. package/dist/abilities/effects/passives.js +131 -0
  52. package/dist/abilities/effects/passives.js.map +1 -0
  53. package/dist/abilities/effects/proxy.d.ts +5 -0
  54. package/dist/abilities/effects/proxy.js +60 -0
  55. package/dist/abilities/effects/proxy.js.map +1 -0
  56. package/dist/abilities/effects/sight.d.ts +2 -2
  57. package/dist/abilities/effects/sight.js +39 -0
  58. package/dist/abilities/effects/sight.js.map +1 -0
  59. package/dist/abilities/effects/spawn.d.ts +5 -2
  60. package/dist/abilities/effects/spawn.js +40 -0
  61. package/dist/abilities/effects/spawn.js.map +1 -0
  62. package/dist/abilities/effects/timed.d.ts +2 -2
  63. package/dist/abilities/effects/timed.js +96 -0
  64. package/dist/abilities/effects/timed.js.map +1 -0
  65. package/dist/abilities/effects/trade.d.ts +1 -1
  66. package/dist/abilities/effects/trade.js +25 -0
  67. package/dist/abilities/effects/trade.js.map +1 -0
  68. package/dist/abilities/effects.d.ts +97 -23
  69. package/dist/abilities/effects.js +860 -0
  70. package/dist/abilities/effects.js.map +1 -0
  71. package/dist/abilities/land.d.ts +38 -4
  72. package/dist/abilities/land.js +189 -0
  73. package/dist/abilities/land.js.map +1 -0
  74. package/dist/abilities/recast.d.ts +45 -0
  75. package/dist/abilities/recast.js +118 -0
  76. package/dist/abilities/recast.js.map +1 -0
  77. package/dist/abilities/scaled.js +40 -0
  78. package/dist/abilities/scaled.js.map +1 -0
  79. package/dist/abilities/screen.d.ts +6 -0
  80. package/dist/abilities/screen.js +83 -0
  81. package/dist/abilities/screen.js.map +1 -0
  82. package/dist/abilities/shapes.d.ts +66 -0
  83. package/dist/abilities/shapes.js +122 -0
  84. package/dist/abilities/shapes.js.map +1 -0
  85. package/dist/abilities/text.d.ts +14 -2
  86. package/dist/abilities/text.js +204 -0
  87. package/dist/abilities/text.js.map +1 -0
  88. package/dist/abilities/triggers.d.ts +98 -0
  89. package/dist/abilities/triggers.js +351 -0
  90. package/dist/abilities/triggers.js.map +1 -0
  91. package/dist/abilityChanges.d.ts +131 -0
  92. package/dist/abilityChanges.js +345 -0
  93. package/dist/abilityChanges.js.map +1 -0
  94. package/dist/ai/area.d.ts +4 -1
  95. package/dist/ai/brain.d.ts +4 -1
  96. package/dist/ai/brain.js +844 -0
  97. package/dist/ai/brain.js.map +1 -0
  98. package/dist/ai/budget.js +74 -0
  99. package/dist/ai/budget.js.map +1 -0
  100. package/dist/ai/checks.d.ts +9 -1
  101. package/dist/ai/checks.js +242 -0
  102. package/dist/ai/checks.js.map +1 -0
  103. package/dist/ai/computer.d.ts +11 -4
  104. package/dist/ai/computer.js +251 -0
  105. package/dist/ai/computer.js.map +1 -0
  106. package/dist/ai/defence.d.ts +4 -0
  107. package/dist/ai/defence.js +430 -0
  108. package/dist/ai/defence.js.map +1 -0
  109. package/dist/ai/define.d.ts +3 -2
  110. package/dist/ai/define.js +31 -0
  111. package/dist/ai/define.js.map +1 -0
  112. package/dist/ai/economy.d.ts +10 -7
  113. package/dist/ai/economy.js +780 -0
  114. package/dist/ai/economy.js.map +1 -0
  115. package/dist/ai/geometry.js +38 -0
  116. package/dist/ai/geometry.js.map +1 -0
  117. package/dist/ai/goals.d.ts +1 -0
  118. package/dist/ai/goals.js +560 -0
  119. package/dist/ai/goals.js.map +1 -0
  120. package/dist/ai/knowledge.d.ts +72 -7
  121. package/dist/ai/knowledge.js +804 -0
  122. package/dist/ai/knowledge.js.map +1 -0
  123. package/dist/ai/lanes.d.ts +10 -2
  124. package/dist/ai/lanes.js +715 -0
  125. package/dist/ai/lanes.js.map +1 -0
  126. package/dist/ai/melee/build.js +264 -0
  127. package/dist/ai/melee/build.js.map +1 -0
  128. package/dist/ai/melee/goals.d.ts +7 -0
  129. package/dist/ai/melee/goals.js +720 -0
  130. package/dist/ai/melee/goals.js.map +1 -0
  131. package/dist/ai/melee/heroes.js +68 -0
  132. package/dist/ai/melee/heroes.js.map +1 -0
  133. package/dist/ai/melee/index.d.ts +1 -1
  134. package/dist/ai/melee/index.js +51 -0
  135. package/dist/ai/melee/index.js.map +1 -0
  136. package/dist/ai/melee/production.js +29 -0
  137. package/dist/ai/melee/production.js.map +1 -0
  138. package/dist/ai/melee/surrender.js +64 -0
  139. package/dist/ai/melee/surrender.js.map +1 -0
  140. package/dist/ai/micro.d.ts +9 -0
  141. package/dist/ai/micro.js +1316 -0
  142. package/dist/ai/micro.js.map +1 -0
  143. package/dist/ai/mission.d.ts +9 -2
  144. package/dist/ai/mission.js +538 -0
  145. package/dist/ai/mission.js.map +1 -0
  146. package/dist/ai/missionRules.d.ts +1 -1
  147. package/dist/ai/missionRules.js +26 -0
  148. package/dist/ai/missionRules.js.map +1 -0
  149. package/dist/ai/module.d.ts +6 -2
  150. package/dist/ai/module.js +37 -0
  151. package/dist/ai/module.js.map +1 -0
  152. package/dist/ai/options.d.ts +3 -3
  153. package/dist/ai/plans/build.d.ts +20 -1
  154. package/dist/ai/plans/build.js +608 -0
  155. package/dist/ai/plans/build.js.map +1 -0
  156. package/dist/ai/plans/placement.d.ts +4 -1
  157. package/dist/ai/plans/placement.js +295 -0
  158. package/dist/ai/plans/placement.js.map +1 -0
  159. package/dist/ai/plans/plans.d.ts +9 -0
  160. package/dist/ai/plans/plans.js +110 -0
  161. package/dist/ai/plans/plans.js.map +1 -0
  162. package/dist/ai/plans/production.d.ts +14 -2
  163. package/dist/ai/plans/production.js +434 -0
  164. package/dist/ai/plans/production.js.map +1 -0
  165. package/dist/ai/plans/purse.d.ts +6 -3
  166. package/dist/ai/plans/purse.js +139 -0
  167. package/dist/ai/plans/purse.js.map +1 -0
  168. package/dist/ai/plans/tech.d.ts +6 -0
  169. package/dist/ai/plans/tech.js +122 -0
  170. package/dist/ai/plans/tech.js.map +1 -0
  171. package/dist/ai/profiles.d.ts +4 -4
  172. package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
  173. package/dist/ai/profiles.js.map +1 -0
  174. package/dist/ai/reach.js +54 -0
  175. package/dist/ai/reach.js.map +1 -0
  176. package/dist/ai/report.d.ts +8 -0
  177. package/dist/ai/report.js +87 -0
  178. package/dist/ai/report.js.map +1 -0
  179. package/dist/ai/roles.d.ts +4 -0
  180. package/dist/ai/roles.js +207 -0
  181. package/dist/ai/roles.js.map +1 -0
  182. package/dist/ai/rules.d.ts +8 -2
  183. package/dist/ai/rules.js +416 -0
  184. package/dist/ai/rules.js.map +1 -0
  185. package/dist/ai/scouting.d.ts +6 -0
  186. package/dist/ai/scouting.js +324 -0
  187. package/dist/ai/scouting.js.map +1 -0
  188. package/dist/ai/settings.js +99 -0
  189. package/dist/ai/settings.js.map +1 -0
  190. package/dist/ai/squads.d.ts +21 -2
  191. package/dist/ai/squads.js +916 -0
  192. package/dist/ai/squads.js.map +1 -0
  193. package/dist/ai/strength.js +320 -0
  194. package/dist/ai/strength.js.map +1 -0
  195. package/dist/ai/task.d.ts +3 -1
  196. package/dist/ai/task.js +17 -0
  197. package/dist/ai/task.js.map +1 -0
  198. package/dist/ai/tasks/attack.js +24 -0
  199. package/dist/ai/tasks/attack.js.map +1 -0
  200. package/dist/ai/tasks/capture.d.ts +3 -3
  201. package/dist/ai/tasks/capture.js +37 -0
  202. package/dist/ai/tasks/capture.js.map +1 -0
  203. package/dist/ai/tasks/creep.js +29 -0
  204. package/dist/ai/tasks/creep.js.map +1 -0
  205. package/dist/ai/tasks/defend.js +61 -0
  206. package/dist/ai/tasks/defend.js.map +1 -0
  207. package/dist/ai/tasks/drop.js +81 -0
  208. package/dist/ai/tasks/drop.js.map +1 -0
  209. package/dist/ai/tasks/escort.js +59 -0
  210. package/dist/ai/tasks/escort.js.map +1 -0
  211. package/dist/ai/tasks/gather.js +48 -0
  212. package/dist/ai/tasks/gather.js.map +1 -0
  213. package/dist/ai/tasks/harass.js +39 -0
  214. package/dist/ai/tasks/harass.js.map +1 -0
  215. package/dist/ai/tasks/hold.js +32 -0
  216. package/dist/ai/tasks/hold.js.map +1 -0
  217. package/dist/ai/tasks/index.js +34 -0
  218. package/dist/ai/tasks/index.js.map +1 -0
  219. package/dist/ai/tasks/move.js +26 -0
  220. package/dist/ai/tasks/move.js.map +1 -0
  221. package/dist/ai/tasks/patrol.js +59 -0
  222. package/dist/ai/tasks/patrol.js.map +1 -0
  223. package/dist/ai/tasks/retreat.js +28 -0
  224. package/dist/ai/tasks/retreat.js.map +1 -0
  225. package/dist/ai/tasks/scout.js +73 -0
  226. package/dist/ai/tasks/scout.js.map +1 -0
  227. package/dist/ai/tasks/shared.d.ts +1 -1
  228. package/dist/ai/tasks/shared.js +137 -0
  229. package/dist/ai/tasks/shared.js.map +1 -0
  230. package/dist/ai/team.d.ts +18 -1
  231. package/dist/ai/team.js +492 -0
  232. package/dist/ai/team.js.map +1 -0
  233. package/dist/ai/threat.d.ts +6 -0
  234. package/dist/ai/threat.js +206 -0
  235. package/dist/ai/threat.js.map +1 -0
  236. package/dist/ai/view.d.ts +21 -7
  237. package/dist/ai/view.js +677 -0
  238. package/dist/ai/view.js.map +1 -0
  239. package/dist/ai/waves.d.ts +6 -0
  240. package/dist/ai/waves.js +410 -0
  241. package/dist/ai/waves.js.map +1 -0
  242. package/dist/ai.js +54 -6239
  243. package/dist/aiTesting.d.ts +6 -3
  244. package/dist/aiTesting.js +229 -0
  245. package/dist/aiTesting.js.map +1 -0
  246. package/dist/areas.d.ts +4 -1
  247. package/dist/areas.js +295 -0
  248. package/dist/areas.js.map +1 -0
  249. package/dist/attacks.d.ts +3 -3
  250. package/dist/attacks.js +127 -0
  251. package/dist/attacks.js.map +1 -0
  252. package/dist/burning.d.ts +267 -0
  253. package/dist/burning.js +795 -0
  254. package/dist/burning.js.map +1 -0
  255. package/dist/bytes.js +21 -0
  256. package/dist/bytes.js.map +1 -0
  257. package/dist/callings.d.ts +71 -0
  258. package/dist/callings.js +157 -0
  259. package/dist/callings.js.map +1 -0
  260. package/dist/cameraOrders.d.ts +78 -0
  261. package/dist/cameraOrders.js +114 -0
  262. package/dist/cameraOrders.js.map +1 -0
  263. package/dist/camps.d.ts +70 -4
  264. package/dist/camps.js +501 -0
  265. package/dist/camps.js.map +1 -0
  266. package/dist/capture.d.ts +15 -3
  267. package/dist/capture.js +304 -0
  268. package/dist/capture.js.map +1 -0
  269. package/dist/cellLayers.d.ts +78 -13
  270. package/dist/cellLayers.js +275 -0
  271. package/dist/cellLayers.js.map +1 -0
  272. package/dist/cellPatches.d.ts +24 -0
  273. package/dist/cellPatches.js +73 -0
  274. package/dist/cellPatches.js.map +1 -0
  275. package/dist/cinematics.d.ts +10 -5
  276. package/dist/cinematics.js +161 -0
  277. package/dist/cinematics.js.map +1 -0
  278. package/dist/clock.d.ts +2 -2
  279. package/dist/clock.js +78 -0
  280. package/dist/clock.js.map +1 -0
  281. package/dist/commands.d.ts +36 -4
  282. package/dist/commands.js +636 -0
  283. package/dist/commands.js.map +1 -0
  284. package/dist/components.d.ts +31 -10
  285. package/dist/components.js +74 -0
  286. package/dist/components.js.map +1 -0
  287. package/dist/computers.d.ts +4 -4
  288. package/dist/computers.js +194 -0
  289. package/dist/computers.js.map +1 -0
  290. package/dist/concealment.d.ts +25 -2
  291. package/dist/concealment.js +409 -0
  292. package/dist/concealment.js.map +1 -0
  293. package/dist/coreComponents.js +130 -0
  294. package/dist/coreComponents.js.map +1 -0
  295. package/dist/createGame.d.ts +306 -0
  296. package/dist/createGame.js +405 -0
  297. package/dist/createGame.js.map +1 -0
  298. package/dist/dashing.d.ts +18 -2
  299. package/dist/dashing.js +41 -0
  300. package/dist/dashing.js.map +1 -0
  301. package/dist/debug.d.ts +8 -0
  302. package/dist/debug.js +5 -3
  303. package/dist/debug2.js +76 -0
  304. package/dist/debug2.js.map +1 -0
  305. package/dist/debugCommands.d.ts +6 -6
  306. package/dist/debugCommands.js +537 -0
  307. package/dist/debugCommands.js.map +1 -0
  308. package/dist/debugging.d.ts +1 -0
  309. package/dist/defaultSets.d.ts +183 -0
  310. package/dist/defaultSets.js +216 -0
  311. package/dist/defaultSets.js.map +1 -0
  312. package/dist/definitions.d.ts +6 -0
  313. package/dist/definitions.js +78 -0
  314. package/dist/definitions.js.map +1 -0
  315. package/dist/defs.d.ts +1895 -165
  316. package/dist/defs.js +380 -0
  317. package/dist/defs.js.map +1 -0
  318. package/dist/denying.d.ts +4 -4
  319. package/dist/denying.js +106 -0
  320. package/dist/denying.js.map +1 -0
  321. package/dist/destructibles.d.ts +2 -2
  322. package/dist/destructibles.js +36 -0
  323. package/dist/destructibles.js.map +1 -0
  324. package/dist/determinism.d.ts +4 -4
  325. package/dist/determinism.js +247 -0
  326. package/dist/determinism.js.map +1 -0
  327. package/dist/dialog.d.ts +17 -2
  328. package/dist/dialog.js +108 -0
  329. package/dist/dialog.js.map +1 -0
  330. package/dist/effectRefs.js +28 -0
  331. package/dist/effectRefs.js.map +1 -0
  332. package/dist/effects.d.ts +27 -11
  333. package/dist/effects.js +110 -0
  334. package/dist/effects.js.map +1 -0
  335. package/dist/endings.d.ts +1 -1
  336. package/dist/endings.js +78 -0
  337. package/dist/endings.js.map +1 -0
  338. package/dist/engagement.d.ts +40 -6
  339. package/dist/engagement.js +530 -0
  340. package/dist/engagement.js.map +1 -0
  341. package/dist/engineEvents.d.ts +72 -9
  342. package/dist/engineEvents.js +520 -0
  343. package/dist/engineEvents.js.map +1 -0
  344. package/dist/entity.d.ts +275 -26
  345. package/dist/entity.js +441 -0
  346. package/dist/entity.js.map +1 -0
  347. package/dist/entityIndex.d.ts +10 -3
  348. package/dist/entityIndex.js +149 -0
  349. package/dist/entityIndex.js.map +1 -0
  350. package/dist/errors.d.ts +6 -2
  351. package/dist/errors.js +59 -0
  352. package/dist/errors.js.map +1 -0
  353. package/dist/events.d.ts +11 -5
  354. package/dist/events.js +158 -0
  355. package/dist/events.js.map +1 -0
  356. package/dist/exactMath.js +273 -0
  357. package/dist/exactMath.js.map +1 -0
  358. package/dist/features.d.ts +1 -1
  359. package/dist/features.js +127 -0
  360. package/dist/features.js.map +1 -0
  361. package/dist/fields.d.ts +25 -5
  362. package/dist/fields.js +140 -0
  363. package/dist/fields.js.map +1 -0
  364. package/dist/fixture.d.ts +3 -3
  365. package/dist/fixture.js +512 -0
  366. package/dist/fixture.js.map +1 -0
  367. package/dist/fog.d.ts +26 -3
  368. package/dist/fog.js +333 -0
  369. package/dist/fog.js.map +1 -0
  370. package/dist/foliage.d.ts +476 -0
  371. package/dist/foliage.js +1478 -0
  372. package/dist/foliage.js.map +1 -0
  373. package/dist/foliageDebug.d.ts +57 -0
  374. package/dist/foliageDebug.js +172 -0
  375. package/dist/foliageDebug.js.map +1 -0
  376. package/dist/foliageRegrowth.d.ts +20 -0
  377. package/dist/foliageRegrowth.js +332 -0
  378. package/dist/foliageRegrowth.js.map +1 -0
  379. package/dist/formState.d.ts +67 -0
  380. package/dist/formState.js +65 -0
  381. package/dist/formState.js.map +1 -0
  382. package/dist/formation.d.ts +46 -8
  383. package/dist/formation.js +297 -0
  384. package/dist/formation.js.map +1 -0
  385. package/dist/forms.d.ts +58 -0
  386. package/dist/forms.js +146 -0
  387. package/dist/forms.js.map +1 -0
  388. package/dist/friendlyFire.d.ts +2 -2
  389. package/dist/friendlyFire.js +37 -0
  390. package/dist/friendlyFire.js.map +1 -0
  391. package/dist/game.d.ts +141 -48
  392. package/dist/game.js +834 -0
  393. package/dist/game.js.map +1 -0
  394. package/dist/gameData.d.ts +96 -22
  395. package/dist/gameData.js +1690 -0
  396. package/dist/gameData.js.map +1 -0
  397. package/dist/gameFiles.d.ts +3 -3
  398. package/dist/gameFiles.js +14 -0
  399. package/dist/gameFiles.js.map +1 -0
  400. package/dist/gates.js +92 -0
  401. package/dist/gates.js.map +1 -0
  402. package/dist/generate.d.ts +28 -1
  403. package/dist/generate.js +1062 -0
  404. package/dist/generate.js.map +1 -0
  405. package/dist/generateWorker.d.ts +7 -3
  406. package/dist/generateWorker.js +86 -0
  407. package/dist/generateWorker.js.map +1 -0
  408. package/dist/grid.d.ts +9 -0
  409. package/dist/grid.js +102 -0
  410. package/dist/grid.js.map +1 -0
  411. package/dist/ground.d.ts +17 -1
  412. package/dist/ground.js +375 -0
  413. package/dist/ground.js.map +1 -0
  414. package/dist/groundObjects.d.ts +70 -0
  415. package/dist/groundObjects.js +371 -0
  416. package/dist/groundObjects.js.map +1 -0
  417. package/dist/groundSpeed.d.ts +20 -3
  418. package/dist/groundSpeed.js +117 -0
  419. package/dist/groundSpeed.js.map +1 -0
  420. package/dist/hero.d.ts +126 -10
  421. package/dist/hero.js +432 -0
  422. package/dist/hero.js.map +1 -0
  423. package/dist/holds.d.ts +94 -0
  424. package/dist/holds.js +305 -0
  425. package/dist/holds.js.map +1 -0
  426. package/dist/home.d.ts +1 -1
  427. package/dist/home.js +30 -0
  428. package/dist/home.js.map +1 -0
  429. package/dist/hooks.d.ts +339 -57
  430. package/dist/hooks.js +105 -0
  431. package/dist/hooks.js.map +1 -0
  432. package/dist/hotReload.d.ts +6 -5
  433. package/dist/hotReload.js +145 -0
  434. package/dist/hotReload.js.map +1 -0
  435. package/dist/ids.d.ts +3 -3
  436. package/dist/ids.js +30 -0
  437. package/dist/ids.js.map +1 -0
  438. package/dist/idsFile.d.ts +36 -0
  439. package/dist/idsFile.js +134 -0
  440. package/dist/idsFile.js.map +1 -0
  441. package/dist/index.d.ts +105 -68
  442. package/dist/index.js +194 -4701
  443. package/dist/inspect.d.ts +29 -2
  444. package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
  445. package/dist/inspect.js.map +1 -0
  446. package/dist/inventory.d.ts +14 -1
  447. package/dist/inventory.js +84 -0
  448. package/dist/inventory.js.map +1 -0
  449. package/dist/items.d.ts +136 -8
  450. package/dist/items.js +585 -0
  451. package/dist/items.js.map +1 -0
  452. package/dist/lanes.d.ts +12 -3
  453. package/dist/lanes.js +496 -0
  454. package/dist/lanes.js.map +1 -0
  455. package/dist/life.d.ts +6 -2
  456. package/dist/life.js +287 -0
  457. package/dist/life.js.map +1 -0
  458. package/dist/log.d.ts +26 -3
  459. package/dist/log.js +192 -0
  460. package/dist/log.js.map +1 -0
  461. package/dist/manaBurn.d.ts +2 -2
  462. package/dist/manaBurn.js +75 -0
  463. package/dist/manaBurn.js.map +1 -0
  464. package/dist/map/file.d.ts +56 -3
  465. package/dist/map/file.js +264 -0
  466. package/dist/map/file.js.map +1 -0
  467. package/dist/map/images.js +61 -0
  468. package/dist/map/images.js.map +1 -0
  469. package/dist/map/look.d.ts +1 -1
  470. package/dist/map/look.js +30 -0
  471. package/dist/map/look.js.map +1 -0
  472. package/dist/map/pathProfile.js +183 -0
  473. package/dist/map/pathProfile.js.map +1 -0
  474. package/dist/map/resize.d.ts +4 -0
  475. package/dist/map/resize.js +136 -0
  476. package/dist/map/resize.js.map +1 -0
  477. package/dist/map/schema.js +257 -0
  478. package/dist/map/schema.js.map +1 -0
  479. package/dist/map/terrain.js +214 -0
  480. package/dist/map/terrain.js.map +1 -0
  481. package/dist/map/types.d.ts +92 -13
  482. package/dist/map/types.js +251 -0
  483. package/dist/map/types.js.map +1 -0
  484. package/dist/mapCheck/cells.js +94 -0
  485. package/dist/mapCheck/cells.js.map +1 -0
  486. package/dist/mapCheck/rules/foliage.d.ts +9 -0
  487. package/dist/mapCheck/rules/foliage.js +83 -0
  488. package/dist/mapCheck/rules/foliage.js.map +1 -0
  489. package/dist/mapCheck/rules/names.js +39 -0
  490. package/dist/mapCheck/rules/names.js.map +1 -0
  491. package/dist/mapCheck/rules/objects.d.ts +1 -1
  492. package/dist/mapCheck/rules/objects.js +56 -0
  493. package/dist/mapCheck/rules/objects.js.map +1 -0
  494. package/dist/mapCheck/rules/paths.js +32 -0
  495. package/dist/mapCheck/rules/paths.js.map +1 -0
  496. package/dist/mapCheck/rules/players.js +20 -0
  497. package/dist/mapCheck/rules/players.js.map +1 -0
  498. package/dist/mapCheck/rules/races.js +56 -0
  499. package/dist/mapCheck/rules/races.js.map +1 -0
  500. package/dist/mapCheck/rules/random.js +47 -0
  501. package/dist/mapCheck/rules/random.js.map +1 -0
  502. package/dist/mapCheck/rules/regions.js +30 -0
  503. package/dist/mapCheck/rules/regions.js.map +1 -0
  504. package/dist/mapCheck/rules/targets.js +31 -0
  505. package/dist/mapCheck/rules/targets.js.map +1 -0
  506. package/dist/mapCheck/rules/walking.js +45 -0
  507. package/dist/mapCheck/rules/walking.js.map +1 -0
  508. package/dist/mapCheck.d.ts +2 -2
  509. package/dist/mapCheck.js +63 -0
  510. package/dist/mapCheck.js.map +1 -0
  511. package/dist/mapFields.d.ts +25 -2
  512. package/dist/mapFields.js +134 -0
  513. package/dist/mapFields.js.map +1 -0
  514. package/dist/mapFile.js +176 -0
  515. package/dist/mapFile.js.map +1 -0
  516. package/dist/mapMeasure.d.ts +8 -0
  517. package/dist/mapMeasure.js +283 -0
  518. package/dist/mapMeasure.js.map +1 -0
  519. package/dist/mapMerge.d.ts +1 -0
  520. package/dist/mapMerge.js +172 -0
  521. package/dist/mapMerge.js.map +1 -0
  522. package/dist/mapObjectives.js +138 -0
  523. package/dist/mapObjectives.js.map +1 -0
  524. package/dist/mapObjects.js +80 -0
  525. package/dist/mapObjects.js.map +1 -0
  526. package/dist/math.d.ts +37 -7
  527. package/dist/math.js +155 -0
  528. package/dist/math.js.map +1 -0
  529. package/dist/messages.d.ts +71 -4
  530. package/dist/messages.js +29 -0
  531. package/dist/messages.js.map +1 -0
  532. package/dist/missionRules.d.ts +10 -2
  533. package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
  534. package/dist/missionRules.js.map +1 -0
  535. package/dist/mods.d.ts +39 -20
  536. package/dist/mods.js +271 -0
  537. package/dist/mods.js.map +1 -0
  538. package/dist/moves.d.ts +87 -0
  539. package/dist/moves.js +539 -0
  540. package/dist/moves.js.map +1 -0
  541. package/dist/names.d.ts +7 -0
  542. package/dist/names.js +122 -0
  543. package/dist/names.js.map +1 -0
  544. package/dist/navigation/agentParams.js +14 -0
  545. package/dist/navigation/agentParams.js.map +1 -0
  546. package/dist/navigation/air.d.ts +7 -3
  547. package/dist/navigation/air.js +401 -0
  548. package/dist/navigation/air.js.map +1 -0
  549. package/dist/navigation/builds.d.ts +34 -2
  550. package/dist/navigation/builds.js +287 -0
  551. package/dist/navigation/builds.js.map +1 -0
  552. package/dist/navigation/groundAreas.d.ts +59 -1
  553. package/dist/navigation/groundAreas.js +407 -0
  554. package/dist/navigation/groundAreas.js.map +1 -0
  555. package/dist/navigation/navigation.d.ts +98 -9
  556. package/dist/navigation/recast.d.ts +194 -18
  557. package/dist/navigation/recast.js +1379 -0
  558. package/dist/navigation/recast.js.map +1 -0
  559. package/dist/navigation/sidePaths.d.ts +8 -3
  560. package/dist/navigation/sidePaths.js +241 -0
  561. package/dist/navigation/sidePaths.js.map +1 -0
  562. package/dist/navigation/sized.js +243 -0
  563. package/dist/navigation/sized.js.map +1 -0
  564. package/dist/nearest.js +32 -0
  565. package/dist/nearest.js.map +1 -0
  566. package/dist/noise.js +59 -0
  567. package/dist/noise.js.map +1 -0
  568. package/dist/objectives.d.ts +12 -3
  569. package/dist/objectives.js +144 -0
  570. package/dist/objectives.js.map +1 -0
  571. package/dist/orders/basic.d.ts +5 -5
  572. package/dist/orders/basic.js +417 -0
  573. package/dist/orders/basic.js.map +1 -0
  574. package/dist/orders/build.js +278 -0
  575. package/dist/orders/build.js.map +1 -0
  576. package/dist/orders/cast.d.ts +13 -3
  577. package/dist/orders/cast.js +558 -0
  578. package/dist/orders/cast.js.map +1 -0
  579. package/dist/orders/facts.js +16 -0
  580. package/dist/orders/facts.js.map +1 -0
  581. package/dist/orders/harvest.d.ts +21 -5
  582. package/dist/orders/harvest.js +540 -0
  583. package/dist/orders/harvest.js.map +1 -0
  584. package/dist/orders/idle.d.ts +3 -1
  585. package/dist/orders/idle.js +234 -0
  586. package/dist/orders/idle.js.map +1 -0
  587. package/dist/orders/items.js +92 -0
  588. package/dist/orders/items.js.map +1 -0
  589. package/dist/orders/queue.js +108 -0
  590. package/dist/orders/queue.js.map +1 -0
  591. package/dist/orders/waiting.d.ts +39 -0
  592. package/dist/orders/waiting.js +149 -0
  593. package/dist/orders/waiting.js.map +1 -0
  594. package/dist/pack.schema.js +13 -0
  595. package/dist/pack.schema.js.map +1 -0
  596. package/dist/pack.schema.json +7622 -841
  597. package/dist/packs/director/index.d.ts +13 -5
  598. package/dist/packs/director/index.js +204 -0
  599. package/dist/packs/director/index.js.map +1 -0
  600. package/dist/packs/heroes/campaign.d.ts +3 -2
  601. package/dist/packs/heroes/campaign.js +241 -0
  602. package/dist/packs/heroes/campaign.js.map +1 -0
  603. package/dist/packs/heroes/carry.d.ts +6 -0
  604. package/dist/packs/heroes/carry.js +112 -0
  605. package/dist/packs/heroes/carry.js.map +1 -0
  606. package/dist/packs/heroes/commands.js +115 -0
  607. package/dist/packs/heroes/commands.js.map +1 -0
  608. package/dist/packs/heroes/fallen.d.ts +43 -0
  609. package/dist/packs/heroes/fallen.js +61 -0
  610. package/dist/packs/heroes/fallen.js.map +1 -0
  611. package/dist/packs/heroes/hire.js +60 -0
  612. package/dist/packs/heroes/hire.js.map +1 -0
  613. package/dist/packs/heroes/index.d.ts +7 -6
  614. package/dist/packs/heroes/index.js +130 -0
  615. package/dist/packs/heroes/index.js.map +1 -0
  616. package/dist/packs/heroes/loop.d.ts +95 -0
  617. package/dist/packs/heroes/loop.js +250 -0
  618. package/dist/packs/heroes/loop.js.map +1 -0
  619. package/dist/packs/heroes/making.d.ts +6 -3
  620. package/dist/packs/heroes/making.js +55 -0
  621. package/dist/packs/heroes/making.js.map +1 -0
  622. package/dist/packs/heroes/respawn.d.ts +3 -3
  623. package/dist/packs/heroes/respawn.js +87 -0
  624. package/dist/packs/heroes/respawn.js.map +1 -0
  625. package/dist/packs/heroes/sets.d.ts +32 -0
  626. package/dist/packs/heroes/sets.js +51 -0
  627. package/dist/packs/heroes/sets.js.map +1 -0
  628. package/dist/packs/heroes/spells.d.ts +16 -0
  629. package/dist/packs/heroes/spells.js +269 -0
  630. package/dist/packs/heroes/spells.js.map +1 -0
  631. package/dist/packs/items/defaults.d.ts +43 -0
  632. package/dist/packs/items/defaults.js +1504 -0
  633. package/dist/packs/items/defaults.js.map +1 -0
  634. package/dist/packs/items/index.d.ts +27 -0
  635. package/dist/packs/items/index.js +214 -0
  636. package/dist/packs/items/index.js.map +1 -0
  637. package/dist/packs/moba/index.d.ts +3 -3
  638. package/dist/packs/moba/index.js +174 -0
  639. package/dist/packs/moba/index.js.map +1 -0
  640. package/dist/packs/pack.d.ts +15 -15
  641. package/dist/packs/pack.js +14 -0
  642. package/dist/packs/pack.js.map +1 -0
  643. package/dist/packs.d.ts +15 -7
  644. package/dist/packs.js +222 -0
  645. package/dist/packs.js.map +1 -0
  646. package/dist/paths.d.ts +2 -0
  647. package/dist/paths.js +109 -0
  648. package/dist/paths.js.map +1 -0
  649. package/dist/plain.js +57 -0
  650. package/dist/plain.js.map +1 -0
  651. package/dist/player.d.ts +33 -10
  652. package/dist/player.js +159 -0
  653. package/dist/player.js.map +1 -0
  654. package/dist/portals.d.ts +1 -1
  655. package/dist/portals.js +194 -0
  656. package/dist/portals.js.map +1 -0
  657. package/dist/prefabs.d.ts +25 -2
  658. package/dist/prefabs.js +239 -0
  659. package/dist/prefabs.js.map +1 -0
  660. package/dist/presetBuildings.js +58 -0
  661. package/dist/presetBuildings.js.map +1 -0
  662. package/dist/presetFoliage.d.ts +27 -0
  663. package/dist/presetFoliage.js +98 -0
  664. package/dist/presetFoliage.js.map +1 -0
  665. package/dist/presetGround.js +65 -0
  666. package/dist/presetGround.js.map +1 -0
  667. package/dist/proxies.d.ts +12 -0
  668. package/dist/proxies.js +79 -0
  669. package/dist/proxies.js.map +1 -0
  670. package/dist/query.d.ts +56 -0
  671. package/dist/query.js +88 -0
  672. package/dist/query.js.map +1 -0
  673. package/dist/races.d.ts +15 -14
  674. package/dist/races.js +172 -0
  675. package/dist/races.js.map +1 -0
  676. package/dist/randomGroups.js +91 -0
  677. package/dist/randomGroups.js.map +1 -0
  678. package/dist/registry.d.ts +117 -53
  679. package/dist/registry.js +323 -0
  680. package/dist/registry.js.map +1 -0
  681. package/dist/remains.d.ts +11 -9
  682. package/dist/remains.js +188 -0
  683. package/dist/remains.js.map +1 -0
  684. package/dist/replication.d.ts +12 -7
  685. package/dist/replication.js +100 -0
  686. package/dist/replication.js.map +1 -0
  687. package/dist/rng.d.ts +2 -0
  688. package/dist/rng.js +40 -0
  689. package/dist/rng.js.map +1 -0
  690. package/dist/rules.d.ts +186 -99
  691. package/dist/rules.js +179 -0
  692. package/dist/rules.js.map +1 -0
  693. package/dist/rulesCheck.d.ts +5 -4
  694. package/dist/rulesCheck.js +693 -0
  695. package/dist/rulesCheck.js.map +1 -0
  696. package/dist/runes.d.ts +2 -2
  697. package/dist/runes.js +80 -0
  698. package/dist/runes.js.map +1 -0
  699. package/dist/save.d.ts +37 -12
  700. package/dist/save.js +532 -0
  701. package/dist/save.js.map +1 -0
  702. package/dist/scenario.d.ts +2 -2
  703. package/dist/scenario.js +99 -0
  704. package/dist/scenario.js.map +1 -0
  705. package/dist/scheduler.d.ts +3 -0
  706. package/dist/scheduler.js +156 -0
  707. package/dist/scheduler.js.map +1 -0
  708. package/dist/score.d.ts +19 -19
  709. package/dist/score.js +709 -0
  710. package/dist/score.js.map +1 -0
  711. package/dist/sequences.d.ts +10 -6
  712. package/dist/sequences.js +206 -0
  713. package/dist/sequences.js.map +1 -0
  714. package/dist/server/doorman.js +154 -0
  715. package/dist/server/doorman.js.map +1 -0
  716. package/dist/server/gameServer.d.ts +16 -1
  717. package/dist/server/gameServer.js +643 -0
  718. package/dist/server/gameServer.js.map +1 -0
  719. package/dist/server/index.d.ts +1 -1
  720. package/dist/server/lobby.js +199 -0
  721. package/dist/server/lobby.js.map +1 -0
  722. package/dist/server/log.js +18 -0
  723. package/dist/server/log.js.map +1 -0
  724. package/dist/server/match.js +267 -0
  725. package/dist/server/match.js.map +1 -0
  726. package/dist/server/mode.d.ts +18 -9
  727. package/dist/server/mode.js +220 -0
  728. package/dist/server/mode.js.map +1 -0
  729. package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
  730. package/dist/server/navigation-worker.js.map +1 -0
  731. package/dist/server/navigation.js +39 -0
  732. package/dist/server/navigation.js.map +1 -0
  733. package/dist/server/ops.d.ts +4 -0
  734. package/dist/server/ops.js +137 -0
  735. package/dist/server/ops.js.map +1 -0
  736. package/dist/server/packs.d.ts +3 -3
  737. package/dist/server/packs.js +32 -0
  738. package/dist/server/packs.js.map +1 -0
  739. package/dist/server/ratings.d.ts +5 -0
  740. package/dist/server/ratings.js +104 -0
  741. package/dist/server/ratings.js.map +1 -0
  742. package/dist/server/relay.d.ts +12 -2
  743. package/dist/server/relay.js +144 -0
  744. package/dist/server/relay.js.map +1 -0
  745. package/dist/server/rooms.d.ts +9 -2
  746. package/dist/server/rooms.js +442 -0
  747. package/dist/server/rooms.js.map +1 -0
  748. package/dist/server/seat.js +116 -0
  749. package/dist/server/seat.js.map +1 -0
  750. package/dist/server/seatSettings.d.ts +3 -3
  751. package/dist/server/seatSettings.js +63 -0
  752. package/dist/server/seatSettings.js.map +1 -0
  753. package/dist/server/secret.js +13 -0
  754. package/dist/server/secret.js.map +1 -0
  755. package/dist/server/start.d.ts +13 -6
  756. package/dist/server/start.js +76 -0
  757. package/dist/server/start.js.map +1 -0
  758. package/dist/server/websocket.d.ts +9 -1
  759. package/dist/server/websocket.js +306 -0
  760. package/dist/server/websocket.js.map +1 -0
  761. package/dist/server.js +15 -2861
  762. package/dist/session/can.js +26 -0
  763. package/dist/session/can.js.map +1 -0
  764. package/dist/session/commandReplay.d.ts +8 -2
  765. package/dist/session/commandReplay.js +293 -0
  766. package/dist/session/commandReplay.js.map +1 -0
  767. package/dist/session/debug.js +151 -0
  768. package/dist/session/debug.js.map +1 -0
  769. package/dist/session/delay.js +62 -0
  770. package/dist/session/delay.js.map +1 -0
  771. package/dist/session/delta.d.ts +14 -1
  772. package/dist/session/delta.js +407 -0
  773. package/dist/session/delta.js.map +1 -0
  774. package/dist/session/entityState.js +415 -0
  775. package/dist/session/entityState.js.map +1 -0
  776. package/dist/session/local.d.ts +47 -5
  777. package/dist/session/local.js +670 -0
  778. package/dist/session/local.js.map +1 -0
  779. package/dist/session/memory.d.ts +20 -2
  780. package/dist/session/memory.js +131 -0
  781. package/dist/session/memory.js.map +1 -0
  782. package/dist/session/protocol.d.ts +325 -31
  783. package/dist/session/protocol.js +55 -0
  784. package/dist/session/protocol.js.map +1 -0
  785. package/dist/session/remote.d.ts +74 -12
  786. package/dist/session/remote.js +1394 -0
  787. package/dist/session/remote.js.map +1 -0
  788. package/dist/session/replay.d.ts +11 -2
  789. package/dist/session/replay.js +160 -0
  790. package/dist/session/replay.js.map +1 -0
  791. package/dist/session/seed.js +12 -0
  792. package/dist/session/seed.js.map +1 -0
  793. package/dist/session/share.d.ts +5 -1
  794. package/dist/session/share.js +94 -0
  795. package/dist/session/share.js.map +1 -0
  796. package/dist/session/socket.d.ts +1 -1
  797. package/dist/session/socket.js +29 -0
  798. package/dist/session/socket.js.map +1 -0
  799. package/dist/session/wire.d.ts +5 -0
  800. package/dist/session/wire.js +84 -0
  801. package/dist/session/wire.js.map +1 -0
  802. package/dist/session/worker.d.ts +77 -12
  803. package/dist/session/worker.js +499 -0
  804. package/dist/session/worker.js.map +1 -0
  805. package/dist/shared.d.ts +31 -5
  806. package/dist/shared.js +166 -0
  807. package/dist/shared.js.map +1 -0
  808. package/dist/sides.d.ts +9 -3
  809. package/dist/sides.js +149 -0
  810. package/dist/sides.js.map +1 -0
  811. package/dist/sight.js +85 -0
  812. package/dist/sight.js.map +1 -0
  813. package/dist/simulate-worker.js +1 -1
  814. package/dist/simulate.d.ts +12 -8
  815. package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
  816. package/dist/simulate.js.map +1 -0
  817. package/dist/smart.js +77 -0
  818. package/dist/smart.js.map +1 -0
  819. package/dist/spatial.d.ts +32 -16
  820. package/dist/spatial.js +234 -0
  821. package/dist/spatial.js.map +1 -0
  822. package/dist/spawning.d.ts +1 -0
  823. package/dist/spawning.js +224 -0
  824. package/dist/spawning.js.map +1 -0
  825. package/dist/stances.d.ts +6 -3
  826. package/dist/stances.js +169 -0
  827. package/dist/stances.js.map +1 -0
  828. package/dist/start.d.ts +10 -10
  829. package/dist/start.js +75 -0
  830. package/dist/start.js.map +1 -0
  831. package/dist/stats.d.ts +42 -16
  832. package/dist/stats.js +290 -0
  833. package/dist/stats.js.map +1 -0
  834. package/dist/summoned.d.ts +52 -0
  835. package/dist/summoned.js +38 -0
  836. package/dist/summoned.js.map +1 -0
  837. package/dist/summons.d.ts +10 -13
  838. package/dist/summons.js +271 -0
  839. package/dist/summons.js.map +1 -0
  840. package/dist/systems/abilities.js +224 -0
  841. package/dist/systems/abilities.js.map +1 -0
  842. package/dist/systems/combat.d.ts +35 -1
  843. package/dist/systems/combat.js +677 -0
  844. package/dist/systems/combat.js.map +1 -0
  845. package/dist/systems/combatTold.d.ts +3 -1
  846. package/dist/systems/combatTold.js +85 -0
  847. package/dist/systems/combatTold.js.map +1 -0
  848. package/dist/systems/construction.js +80 -0
  849. package/dist/systems/construction.js.map +1 -0
  850. package/dist/systems/economy.d.ts +0 -6
  851. package/dist/systems/economy.js +128 -0
  852. package/dist/systems/economy.js.map +1 -0
  853. package/dist/systems/fog.d.ts +1 -1
  854. package/dist/systems/fog.js +120 -0
  855. package/dist/systems/fog.js.map +1 -0
  856. package/dist/systems/life.js +32 -0
  857. package/dist/systems/life.js.map +1 -0
  858. package/dist/systems/movement.d.ts +24 -12
  859. package/dist/systems/movement.js +1247 -0
  860. package/dist/systems/movement.js.map +1 -0
  861. package/dist/systems/orders.js +64 -0
  862. package/dist/systems/orders.js.map +1 -0
  863. package/dist/systems/production.js +322 -0
  864. package/dist/systems/production.js.map +1 -0
  865. package/dist/systems/productionQueue.js +120 -0
  866. package/dist/systems/productionQueue.js.map +1 -0
  867. package/dist/systems/victory.d.ts +1 -1
  868. package/dist/systems/victory.js +56 -0
  869. package/dist/systems/victory.js.map +1 -0
  870. package/dist/talk.d.ts +6 -6
  871. package/dist/talk.js +153 -0
  872. package/dist/talk.js.map +1 -0
  873. package/dist/targeting.d.ts +142 -0
  874. package/dist/targeting.js +49 -0
  875. package/dist/targeting.js.map +1 -0
  876. package/dist/tech.d.ts +20 -3
  877. package/dist/tech.js +239 -0
  878. package/dist/tech.js.map +1 -0
  879. package/dist/techTree.d.ts +7 -0
  880. package/dist/techTree.js +90 -0
  881. package/dist/techTree.js.map +1 -0
  882. package/dist/terrain.d.ts +59 -7
  883. package/dist/terrain.js +389 -0
  884. package/dist/terrain.js.map +1 -0
  885. package/dist/terrainSave.d.ts +6 -0
  886. package/dist/terrainSave.js +74 -0
  887. package/dist/terrainSave.js.map +1 -0
  888. package/dist/testing.d.ts +8 -7
  889. package/dist/testing.js +13 -739
  890. package/dist/testing.js.map +1 -1
  891. package/dist/tiles.d.ts +1 -1
  892. package/dist/tiles.js +43 -0
  893. package/dist/tiles.js.map +1 -0
  894. package/dist/timers.d.ts +29 -4
  895. package/dist/timers.js +242 -0
  896. package/dist/timers.js.map +1 -0
  897. package/dist/tomes.d.ts +4 -4
  898. package/dist/tomes.js +94 -0
  899. package/dist/tomes.js.map +1 -0
  900. package/dist/trade.js +103 -0
  901. package/dist/trade.js.map +1 -0
  902. package/dist/transport.d.ts +6 -1
  903. package/dist/transport.js +281 -0
  904. package/dist/transport.js.map +1 -0
  905. package/dist/tunables.d.ts +10 -3
  906. package/dist/tunables.js +56 -0
  907. package/dist/tunables.js.map +1 -0
  908. package/dist/unitResources.d.ts +67 -0
  909. package/dist/unitResources.js +266 -0
  910. package/dist/unitResources.js.map +1 -0
  911. package/dist/upkeep.d.ts +6 -1
  912. package/dist/upkeep.js +26 -0
  913. package/dist/upkeep.js.map +1 -0
  914. package/dist/veterancy.d.ts +8 -3
  915. package/dist/veterancy.js +131 -0
  916. package/dist/veterancy.js.map +1 -0
  917. package/dist/vision.d.ts +36 -0
  918. package/dist/vision.js +133 -0
  919. package/dist/vision.js.map +1 -0
  920. package/dist/walls.d.ts +1 -1
  921. package/dist/walls.js +278 -0
  922. package/dist/walls.js.map +1 -0
  923. package/dist/world.d.ts +606 -88
  924. package/dist/world.js +1263 -0
  925. package/dist/world.js.map +1 -0
  926. package/package.json +2 -2
  927. package/dist/ai.js.map +0 -1
  928. package/dist/attributes.d.ts +0 -66
  929. package/dist/brain-BvVdUhX8.js +0 -7659
  930. package/dist/brain-BvVdUhX8.js.map +0 -1
  931. package/dist/builds-C6LfgvEU.js +0 -460
  932. package/dist/builds-C6LfgvEU.js.map +0 -1
  933. package/dist/coreComponents-syuh2fPG.js +0 -5149
  934. package/dist/coreComponents-syuh2fPG.js.map +0 -1
  935. package/dist/debugCommands-CzjrSm66.js +0 -14739
  936. package/dist/debugCommands-CzjrSm66.js.map +0 -1
  937. package/dist/determinism-BCymQwiE.js +0 -518
  938. package/dist/determinism-BCymQwiE.js.map +0 -1
  939. package/dist/game-DiJEN-Ks.js +0 -5800
  940. package/dist/game-DiJEN-Ks.js.map +0 -1
  941. package/dist/index.js.map +0 -1
  942. package/dist/inspect-D9dWHmZ0.js.map +0 -1
  943. package/dist/local-Dkovq42k.js +0 -1379
  944. package/dist/local-Dkovq42k.js.map +0 -1
  945. package/dist/missionRules-C-bGxm0Q.js.map +0 -1
  946. package/dist/navigation-worker.js.map +0 -1
  947. package/dist/packs-g5thvmGn.js +0 -3199
  948. package/dist/packs-g5thvmGn.js.map +0 -1
  949. package/dist/profiles-B3NS9jwk.js.map +0 -1
  950. package/dist/server.js.map +0 -1
  951. package/dist/simulate-oXBiw1Ff.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engineEvents.js","names":[],"sources":["../src/engineEvents.ts"],"sourcesContent":["/**\n * The engine's events (design review E7): a key each, as a game's own are (`defineEvent`), emitted on `world.events`\n * and listened to with `defineListener` the same way. What each says is its payload, typed by the key; its id is its\n * name, as the debug tools' event log shows it\n */\nimport { engineEvent } from './events'\nimport type { WorldEvents } from './world'\n\n/**\n * Something was made in the world: a unit trained or spawned, a building put down, a tree of the map\n *\n * @beta\n */\nexport const entitySpawned = engineEvent<WorldEvents['entitySpawned']>('entitySpawned')\n\n/**\n * Something left the world for good: a corpse gone, a building taken down, a unit removed by the rules\n *\n * @beta\n */\nexport const entityRemoved = engineEvent<WorldEvents['entityRemoved']>('entityRemoved')\n\n/**\n * Something died: what killed it, and how. `cause`: the blow, for what died of damage. `how`: what the rules made\n * of the death in the `death` hook, for the screen to show (`'exploded'`, `'burned'`)\n *\n * @public\n */\nexport const entityDied = engineEvent<WorldEvents['entityDied']>('entityDied')\n\n/**\n * A buff was put on, or put on again (`renewed`, with the level it had before: `previousLevel`)\n *\n * @beta\n */\nexport const buffApplied = engineEvent<WorldEvents['buffApplied']>('buffApplied')\n\n/**\n * A buff came off: it ran out (`expired`), or was taken off. Not for the buffs of something that dies\n *\n * @beta\n */\nexport const buffRemoved = engineEvent<WorldEvents['buffRemoved']>('buffRemoved')\n\n/**\n * Something took damage: who dealt it, how much, of which type, whether a critical strike, and by an attack or an ability\n *\n * @beta\n */\nexport const damaged = engineEvent<WorldEvents['damaged']>('damaged')\n\n/**\n * An attack went wide. Where it would have landed, and whom it was for\n *\n * @beta\n */\nexport const missed = engineEvent<WorldEvents['missed']>('missed')\n\n/**\n * Something was given health back, and by whom\n *\n * @beta\n */\nexport const healed = engineEvent<WorldEvents['healed']>('healed')\n\n/**\n * A unit began an attack: its swing, at its target where it has one\n *\n * @beta\n */\nexport const attackStarted = engineEvent<WorldEvents['attackStarted']>('attackStarted')\n\n/**\n * A unit's swing was called off before its blow landed (moved away, told something else, its target gone, stunned):\n * told to the players as `attackCancelled`, for the screen to cut the attack to the walk\n *\n * @beta\n */\nexport const swingCancelled = engineEvent<WorldEvents['swingCancelled']>('swingCancelled')\n\n/**\n * An attack's projectile set off\n *\n * @beta\n */\nexport const projectileSpawned = engineEvent<WorldEvents['projectileSpawned']>('projectileSpawned')\n\n/**\n * An attack's projectile landed or was taken away\n *\n * @beta\n */\nexport const projectileRemoved = engineEvent<WorldEvents['projectileRemoved']>('projectileRemoved')\n\n/**\n * An attack that hits an area came down\n *\n * @beta\n */\nexport const impact = engineEvent<WorldEvents['impact']>('impact')\n\n/**\n * A building's site was put down: what it will be, while it goes up\n *\n * @beta\n */\nexport const constructionStarted = engineEvent<WorldEvents['constructionStarted']>('constructionStarted')\n\n/**\n * A building went up whole and works\n *\n * @beta\n */\nexport const constructionFinished = engineEvent<WorldEvents['constructionFinished']>('constructionFinished')\n\n/**\n * A construction was called off by its owner: it dies next, with the reason `cancelled`\n *\n * @beta\n */\nexport const constructionCancelled = engineEvent<WorldEvents['constructionCancelled']>('constructionCancelled')\n\n/**\n * A building started to turn into another type (`UnitTypeDef.upgradesTo`), over `time` seconds\n *\n * @beta\n */\nexport const morphStarted = engineEvent<WorldEvents['morphStarted']>('morphStarted')\n\n/**\n * That was called off, or the building died before it was done\n *\n * @beta\n */\nexport const morphCancelled = engineEvent<WorldEvents['morphCancelled']>('morphCancelled')\n\n/**\n * A building trained a unit: the building, and the unit made\n *\n * @beta\n */\nexport const unitTrained = engineEvent<WorldEvents['unitTrained']>('unitTrained')\n\n/**\n * An entity became another type: `from`, what it was\n *\n * @beta\n */\nexport const entityMorphed = engineEvent<WorldEvents['entityMorphed']>('entityMorphed')\n\n/**\n * A hero in a form turned back into what it was (`leaveForm`): the form it was in, and what turned it back (its\n * ability cast again, its time, its death; none when it took another form or code did it)\n *\n * @beta\n */\nexport const morphedBack = engineEvent<WorldEvents['morphedBack']>('morphedBack')\n\n/**\n * A player lost: their units and buildings are gone, or the rules said so\n *\n * @beta\n */\nexport const playerDefeated = engineEvent<WorldEvents['playerDefeated']>('playerDefeated')\n\n/**\n * A player gave up (see `surrender`): `playerDefeated` follows\n *\n * @beta\n */\nexport const playerSurrendered = engineEvent<WorldEvents['playerSurrendered']>('playerSurrendered')\n\n/**\n * A player asked for a pause, and the rules let them (see `askPause`): whoever runs the world pauses it, for `seconds` at most\n *\n * @beta\n */\nexport const pauseAsked = engineEvent<WorldEvents['pauseAsked']>('pauseAsked')\n\n/**\n * The game ended, with the winning team (`0` for none)\n *\n * @beta\n */\nexport const gameOver = engineEvent<WorldEvents['gameOver']>('gameOver')\n\n/**\n * The game ended on an error in its rules (`world.failure`): it is not stepped again\n *\n * @beta\n */\nexport const worldFailed = engineEvent<WorldEvents['worldFailed']>('worldFailed')\n\n/**\n * A unit got into a transport (`UnitTypeDef.transport`), or out of one\n *\n * @beta\n */\nexport const boarded = engineEvent<WorldEvents['boarded']>('boarded')\n\n/**\n * A unit was hired at a place that hires (`UnitTypeDef.hires`)\n *\n * @beta\n */\nexport const unitHired = engineEvent<WorldEvents['unitHired']>('unitHired')\n\n/**\n * A passenger left its transport\n *\n * @beta\n */\nexport const unloaded = engineEvent<WorldEvents['unloaded']>('unloaded')\n\n/**\n * A hero went up a level\n *\n * @beta\n */\nexport const heroLevelUp = engineEvent<WorldEvents['heroLevelUp']>('heroLevelUp')\n\n/**\n * A hero earned experience (`grantXp`): how much, after `beforeXp`, and the level it is at after it\n *\n * @beta\n */\nexport const xpGained = engineEvent<WorldEvents['xpGained']>('xpGained')\n\n/**\n * A unit's mana changed by something it did or was given: spent on a cast (`amount` below 0, `ability` the one cast)\n * or given by an effect (above 0). Not its regeneration, which would be every tick\n *\n * @beta\n */\nexport const manaChanged = engineEvent<WorldEvents['manaChanged']>('manaChanged')\n\n/**\n * A pool of a game's own on a unit (rage, energy, charges) changed: emitted by the game's rules\n * (`world.events.emit('resourceChanged', …)`), heard by the screens of the unit's owner and allies (`resource`)\n *\n * @beta\n */\nexport const resourceChanged = engineEvent<WorldEvents['resourceChanged']>('resourceChanged')\n\n/**\n * A hero came back to life (at an altar, or by the rules)\n *\n * @beta\n */\nexport const heroRevived = engineEvent<WorldEvents['heroRevived']>('heroRevived')\n\n/**\n * A unit began casting an ability, at a point where it has one. `duration`: seconds of the wind-up\n *\n * @beta\n */\nexport const castStarted = engineEvent<WorldEvents['castStarted']>('castStarted')\n\n/**\n * A wind-up called off before it went off (`castStarted` with no cast after it): stunned, killed, ordered elsewhere\n *\n * @beta\n */\nexport const castCancelled = engineEvent<WorldEvents['castCancelled']>('castCancelled')\n\n/**\n * A channelled ability started to be kept up, or ended: done, or `interrupted`\n *\n * @beta\n */\nexport const channelStarted = engineEvent<WorldEvents['channelStarted']>('channelStarted')\n\n/**\n * A channelled ability stopped: run to its end, or broken off (`interrupted`)\n *\n * @beta\n */\nexport const channelEnded = engineEvent<WorldEvents['channelEnded']>('channelEnded')\n\n/**\n * An ability's missile set off\n *\n * @beta\n */\nexport const missileSpawned = engineEvent<WorldEvents['missileSpawned']>('missileSpawned')\n\n/**\n * An ability's missile reached what it was sent at\n *\n * @beta\n */\nexport const missileHit = engineEvent<WorldEvents['missileHit']>('missileHit')\n\n/**\n * An ability's missile is gone: it hit, or ran out\n *\n * @beta\n */\nexport const missileRemoved = engineEvent<WorldEvents['missileRemoved']>('missileRemoved')\n\n/**\n * An ability went off: who cast it, at what level, at whom or where\n *\n * @beta\n */\nexport const abilityCast = engineEvent<WorldEvents['abilityCast']>('abilityCast')\n\n/**\n * What an ability set off arrived: a missile hit, a rush ended, the time was up\n *\n * @beta\n */\nexport const abilityImpact = engineEvent<WorldEvents['abilityImpact']>('abilityImpact')\n\n/**\n * A building finished researching an upgrade: which, and its level now\n *\n * @beta\n */\nexport const researchFinished = engineEvent<WorldEvents['researchFinished']>('researchFinished')\n\n/**\n * An item was put on the ground\n *\n * @beta\n */\nexport const itemDropped = engineEvent<WorldEvents['itemDropped']>('itemDropped')\n\n/**\n * An item was picked up from the ground\n *\n * @beta\n */\nexport const itemPicked = engineEvent<WorldEvents['itemPicked']>('itemPicked')\n\n/**\n * A hero took a purchase back at a shop (`undoBuy`)\n *\n * @beta\n */\nexport const itemUndone = engineEvent<WorldEvents['itemUndone']>('itemUndone')\n\n/**\n * Every creep of a camp is gone. It comes back after a while, when it says so (see `Camp.respawn`)\n *\n * @beta\n */\nexport const campCleared = engineEvent<WorldEvents['campCleared']>('campCleared')\n\n/**\n * A camp cleared came back, its creeps where they stood (see `respawnCamp`)\n *\n * @beta\n */\nexport const campReturned = engineEvent<WorldEvents['campReturned']>('campReturned')\n\n/**\n * A player marked a spot for their allies, or for everyone (see `ping`)\n *\n * @beta\n */\nexport const pinged = engineEvent<WorldEvents['pinged']>('pinged')\n\n/**\n * A player gave an ally resources (see `give`): how much went, and how much came after the tax\n *\n * @beta\n */\nexport const traded = engineEvent<WorldEvents['traded']>('traded')\n\n/**\n * A player traded one resource for another at a rate (see `exchange`): how much of what went, and how much of what came\n *\n * @beta\n */\nexport const exchanged = engineEvent<WorldEvents['exchanged']>('exchanged')\n\n/**\n * A player said a line (see `chat`): to their side, or to everyone\n *\n * @beta\n */\nexport const chatted = engineEvent<WorldEvents['chatted']>('chatted')\n\n/**\n * What a unit carries changed: an item given, taken, bought, sold, used up, or a hero carried in with theirs\n *\n * @beta\n */\nexport const inventoryChanged = engineEvent<WorldEvents['inventoryChanged']>('inventoryChanged')\n\n/**\n * A player was paid for a kill: the unit killed, who was paid, how much\n *\n * @beta\n */\nexport const bounty = engineEvent<WorldEvents['bounty']>('bounty')\n\n/**\n * A worker struck what it is mending\n *\n * @beta\n */\nexport const worked = engineEvent<WorldEvents['worked']>('worked')\n\n/**\n * A worker struck the tree it is working on\n *\n * @beta\n */\nexport const chopped = engineEvent<WorldEvents['chopped']>('chopped')\n\n/**\n * A worker handed in what it carried: `amount` as it went into the purse, `upkeep` what upkeep took of it at the door\n *\n * @beta\n */\nexport const resourcesDeposited = engineEvent<WorldEvents['resourcesDeposited']>('resourcesDeposited')\n\n/**\n * A player paid for something (`spend`), or was given back what they paid (`refund`, `giveBack`): `on` what (`unit`,\n * `upgrade`, `structure`, `item`, `hire`, `repair`... or a game's own word), and its id\n *\n * @beta\n */\nexport const resourcesSpent = engineEvent<WorldEvents['resourcesSpent']>('resourcesSpent')\n\n/**\n * A command, or a part of one, that a player's own client never sends: not what it says it is (an unknown type, a\n * field missing or of the wrong kind), or naming another player's unit, or a unit there never was. What a race makes\n * (an order to a unit that has just died) is not one. A server counts these against whoever sent them (`onCheat`);\n * a game's own commands may emit it too\n */\n/**\n * A command turned away (`RejectedKind`: why, for what counts them, as a server's cheat counter does), with the\n * reason in words for the log\n *\n * @beta\n */\nexport const commandRejected = engineEvent<WorldEvents['commandRejected']>('commandRejected')\n\n/**\n * A command that came with a number of its sender's (`seq`) was carried out: refused with the first error the player was told, or not\n *\n * @beta\n */\nexport const commandHandled = engineEvent<WorldEvents['commandHandled']>('commandHandled')\n\n/**\n * Feedback for a player, like \"Not enough gold\": what the client finds the words for\n *\n * @beta\n */\nexport const messageSent = engineEvent<WorldEvents['messageSent']>('messageSent')\n\n/**\n * A unit walked into an area of the game (`Rules.areas`)\n *\n * @public\n */\nexport const enteredArea = engineEvent<WorldEvents['enteredArea']>('enteredArea')\n\n/**\n * A unit walked out of one. What dies in an area is not said to leave it\n *\n * @beta\n */\nexport const leftArea = engineEvent<WorldEvents['leftArea']>('leftArea')\n\n/**\n * An objective of a player was given (`was` undefined), got further along, was done or failed\n *\n * @beta\n */\nexport const objectiveChanged = engineEvent<WorldEvents['objectiveChanged']>('objectiveChanged')\n\n/**\n * Someone said a line, to some players or everyone (see `world.dialog`)\n *\n * @beta\n */\nexport const lineSaid = engineEvent<WorldEvents['lineSaid']>('lineSaid')\n\n/**\n * A line was skipped by whom it was said to: it ends early for them\n *\n * @beta\n */\nexport const lineEnded = engineEvent<WorldEvents['lineEnded']>('lineEnded')\n\n/**\n * A player went over to another team (`setTeam`)\n *\n * @beta\n */\nexport const teamChanged = engineEvent<WorldEvents['teamChanged']>('teamChanged')\n\n/**\n * The rules marked a moment to start again from, like the start of a wave: a session keeps a save of it\n *\n * @beta\n */\nexport const checkpoint = engineEvent<WorldEvents['checkpoint']>('checkpoint')\n\n/**\n * The rules play one of the view's cinematics on the screens of some players, or everyone's (see `playCinematic`)\n *\n * @beta\n */\nexport const cinematicCue = engineEvent<WorldEvents['cinematicCue']>('cinematicCue')\n\n/**\n * The rules cue the cinematic playing on some screens, or everyone's (see `cueCinematic`)\n *\n * @beta\n */\nexport const cinematicCued = engineEvent<WorldEvents['cinematicCued']>('cinematicCued')\n\n/**\n * The rules pan or shake one player's camera (see `cameraFor`)\n *\n * @beta\n */\nexport const cameraOrdered = engineEvent<WorldEvents['cameraOrdered']>('cameraOrdered')\n\n/**\n * A cinematic the rules played is over on a player's screen, as their screen said (see `cinematic`'s `wait`)\n *\n * @beta\n */\nexport const cinematicEnded = engineEvent<WorldEvents['cinematicEnded']>('cinematicEnded')\n\n/**\n * A player picked an answer of a cinematic's choice, as their screen said (see `cinematicChose`)\n *\n * @beta\n */\nexport const cinematicChoice = engineEvent<WorldEvents['cinematicChoice']>('cinematicChoice')\n\n/**\n * The rules play one of the view's effects at a place or on an entity, for everyone who sees it (see `world.fx`)\n *\n * @beta\n */\nexport const fxStarted = engineEvent<WorldEvents['fxStarted']>('fxStarted')\n\n/**\n * The rules stop an effect they played (see `world.stopFx`)\n *\n * @beta\n */\nexport const fxStopped = engineEvent<WorldEvents['fxStopped']>('fxStopped')\n\n/**\n * One hidden in a layer of cells moved in it, or stepped into it (`ConcealmentOptions.rustle`): told to the teams\n * it names that do not see it (all of them, where none are named), where they see the ground, as a shake of what the\n * layer draws there\n *\n * @beta\n */\nexport const rustled = engineEvent<WorldEvents['rustled']>('rustled')\n\n/**\n * A gust of wind blew at a place (`gust`, `WindGust`): where, and the gust. Told to the players who see the place, as\n * a `gust` message, for their screens to bend the grass and bushes there. Nothing of the world changes by it\n *\n * @beta\n */\nexport const gusted = engineEvent<WorldEvents['gusted']>('gusted')\n\n/**\n * Cells of a layer (`Terrain.cells`) were set to a value (`setCells`): told to the players who see them, the others as\n * they come into sight (`cellsSeen`)\n *\n * @beta\n */\nexport const cellsChanged = engineEvent<WorldEvents['cellsChanged']>('cellsChanged')\n\n/**\n * A part of the ground was reshaped (`World.reshapeGround`): told to every player\n *\n * @beta\n */\nexport const groundReshaped = engineEvent<WorldEvents['groundReshaped']>('groundReshaped')\n\n/**\n * Cells of a layer that changed out of a team's sight came into it (`TeamMemory.cells`): told to that team's players\n *\n * @beta\n */\nexport const cellsSeen = engineEvent<WorldEvents['cellsSeen']>('cellsSeen')\n\n/** What the map looks like beyond its ground changed (`setEnvironment`): as it is now, told to every player */\n/** `over`: the seconds the screens ease into it over, where the rules said\n *\n * @beta\n */\nexport const environmentChanged = engineEvent<WorldEvents['environmentChanged']>('environmentChanged')\n"],"mappings":";;;;;;;;;;;;AAaA,IAAa,gBAAgB,YAA0C,eAAe;;;;;;AAOtF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;;AAQtF,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,UAAU,YAAoC,SAAS;;;;;;AAOpE,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,gBAAgB,YAA0C,eAAe;;;;;;;AAQtF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,oBAAoB,YAA8C,mBAAmB;;;;;;AAOlG,IAAa,oBAAoB,YAA8C,mBAAmB;;;;;;AAOlG,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,sBAAsB,YAAgD,qBAAqB;;;;;;AAOxG,IAAa,uBAAuB,YAAiD,sBAAsB;;;;;;AAO3G,IAAa,wBAAwB,YAAkD,uBAAuB;;;;;;AAO9G,IAAa,eAAe,YAAyC,cAAc;;;;;;AAOnF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;;AAQtF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,oBAAoB,YAA8C,mBAAmB;;;;;;AAOlG,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,WAAW,YAAqC,UAAU;;;;;;AAOvE,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,UAAU,YAAoC,SAAS;;;;;;AAOpE,IAAa,YAAY,YAAsC,WAAW;;;;;;AAO1E,IAAa,WAAW,YAAqC,UAAU;;;;;;AAOvE,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,WAAW,YAAqC,UAAU;;;;;;;AAQvE,IAAa,cAAc,YAAwC,aAAa;;;;;;;AAQhF,IAAa,kBAAkB,YAA4C,iBAAiB;;;;;;AAO5F,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;AAOtF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,eAAe,YAAyC,cAAc;;;;;;AAOnF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;AAOtF,IAAa,mBAAmB,YAA6C,kBAAkB;;;;;;AAO/F,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,eAAe,YAAyC,cAAc;;;;;;AAOnF,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,YAAY,YAAsC,WAAW;;;;;;AAO1E,IAAa,UAAU,YAAoC,SAAS;;;;;;AAOpE,IAAa,mBAAmB,YAA6C,kBAAkB;;;;;;AAO/F,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,SAAS,YAAmC,QAAQ;;;;;;AAOjE,IAAa,UAAU,YAAoC,SAAS;;;;;;AAOpE,IAAa,qBAAqB,YAA+C,oBAAoB;;;;;;;AAQrG,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;;;;;;;;AAczF,IAAa,kBAAkB,YAA4C,iBAAiB;;;;;;AAO5F,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,WAAW,YAAqC,UAAU;;;;;;AAOvE,IAAa,mBAAmB,YAA6C,kBAAkB;;;;;;AAO/F,IAAa,WAAW,YAAqC,UAAU;;;;;;AAOvE,IAAa,YAAY,YAAsC,WAAW;;;;;;AAO1E,IAAa,cAAc,YAAwC,aAAa;;;;;;AAOhF,IAAa,aAAa,YAAuC,YAAY;;;;;;AAO7E,IAAa,eAAe,YAAyC,cAAc;;;;;;AAOnF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;AAOtF,IAAa,gBAAgB,YAA0C,eAAe;;;;;;AAOtF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,kBAAkB,YAA4C,iBAAiB;;;;;;AAO5F,IAAa,YAAY,YAAsC,WAAW;;;;;;AAO1E,IAAa,YAAY,YAAsC,WAAW;;;;;;;;AAS1E,IAAa,UAAU,YAAoC,SAAS;;;;;;;AAQpE,IAAa,SAAS,YAAmC,QAAQ;;;;;;;AAQjE,IAAa,eAAe,YAAyC,cAAc;;;;;;AAOnF,IAAa,iBAAiB,YAA2C,gBAAgB;;;;;;AAOzF,IAAa,YAAY,YAAsC,WAAW;;;;;;AAO1E,IAAa,qBAAqB,YAA+C,oBAAoB"}
package/dist/entity.d.ts CHANGED
@@ -1,11 +1,19 @@
1
- import { type Cost, type EffectDef, type ResourceKind, type UnitTypeDef } from './defs';
1
+ import { type Cost, type EffectDef, type ResourceId, type UnitTypeDef } from './defs';
2
2
  import { type Component } from './components';
3
3
  import type { Rect, Vec2 } from './math';
4
4
  import type { StatsCache } from './stats';
5
- import type { OrderParams } from './registry';
6
- /** @beta */
5
+ import type { OrderInit, OrderParams } from './registry';
6
+ /**
7
+ * The number an entity has in its world, unique there
8
+ *
9
+ * @public
10
+ */
7
11
  export type EntityId = number;
8
- /** @beta */
12
+ /**
13
+ * The number of a player in a world
14
+ *
15
+ * @public
16
+ */
9
17
  export type PlayerId = number;
10
18
  /**
11
19
  * An order a unit carries out or has queued. `State` is what its behaviour keeps in it (`OrderBehavior<State>`): empty
@@ -14,18 +22,26 @@ export type PlayerId = number;
14
22
  * @beta
15
23
  */
16
24
  export interface Order<State extends object = Record<string, any>, Init extends object = OrderParams> {
25
+ /** The order's number, unique in its world */
17
26
  id: number;
27
+ /** The order's type, naming the behaviour that carries it out */
18
28
  type: string;
19
29
  /** What it was given, as its type takes it (`OrderInits`): plain data, saved with the order */
20
30
  init: Init;
21
31
  /** Shared by every unit that received the order from the same command */
22
32
  groupId: number;
33
+ /** Whether the order has begun being carried out */
23
34
  started: boolean;
24
35
  /** Scratch space owned by the order behavior: plain data, saved with the order */
25
36
  state: State;
26
37
  }
27
- /** @beta */
38
+ /**
39
+ * What a unit holds of one of its abilities: its level, cooldown, charges and autocast
40
+ *
41
+ * @beta
42
+ */
28
43
  export interface AbilityState {
44
+ /** The id of the ability this is the state of */
29
45
  id: string;
30
46
  /** 0 for an ability a hero has not learned yet */
31
47
  level: number;
@@ -38,17 +54,55 @@ export interface AbilityState {
38
54
  charges?: number;
39
55
  /** Seconds until the next use is back, while it holds fewer than it can */
40
56
  refill?: number;
57
+ /** Whether the ability is cast by itself when its conditions are met */
41
58
  autocast: boolean;
42
59
  /** Where it was last aimed */
43
60
  point?: Vec2;
61
+ /** For one aimed along two points (`vector`): the second, the way it went from `point` */
62
+ to?: Vec2;
63
+ /**
64
+ * The game's own state of the ability on this unit, plain data (numbers, text, lists and plain objects of them):
65
+ * ammo, a count of what it hit, a mark it left. Saved with the unit and told to its owner's screen with the rest of
66
+ * the ability (`AbilityInfo.data`), for a button to show. Nothing of the engine's reads it
67
+ *
68
+ * @beta
69
+ */
70
+ data?: Record<string, unknown>;
71
+ /**
72
+ * Its window to be cast again, while it is open (`AbilityDef.recast`): the next cast is a recast
73
+ *
74
+ * @beta
75
+ */
76
+ recast?: RecastWindow;
77
+ }
78
+ /**
79
+ * An ability's window to be cast again (`AbilityState.recast`, `AbilityDef.recast`)
80
+ *
81
+ * @beta
82
+ */
83
+ export interface RecastWindow {
84
+ /** Seconds left of it */
85
+ left: number;
86
+ /** Seconds it was open for in all, for a button to show how much is left */
87
+ total: number;
88
+ /** Recasts made in it so far */
89
+ used: number;
90
+ /** The cooldown that starts as it closes, for one whose cooldown waits for it (`after`) */
91
+ cooldown?: number;
44
92
  }
45
- /** @beta */
93
+ /**
94
+ * A buff on a unit: which, from what level, how long is left and who put it there
95
+ *
96
+ * @beta
97
+ */
46
98
  export interface BuffInstance {
99
+ /** The id of the buff */
47
100
  id: string;
48
101
  /** Level of the ability it came from */
49
102
  level: number;
50
103
  /** Seconds left. Infinity for buffs that stay */
51
104
  remaining: number;
105
+ /** Seconds the buff has been on */
52
106
  elapsed: number;
53
107
  /** Entity that put it there */
54
108
  source: EntityId;
@@ -72,12 +126,16 @@ export interface BuffInstance {
72
126
  * @beta
73
127
  */
74
128
  export interface ItemInstance {
129
+ /** The item instance's number, unique in its world */
75
130
  id: number;
131
+ /** The id of the item type */
76
132
  item: string;
77
133
  /** Uses left, for items that run out */
78
134
  charges: number;
79
135
  /** Cooldown of the ability the item gives */
80
136
  state?: AbilityState;
137
+ /** Seconds until its next charge comes back, for an item that refills over time (`ItemDef.refill`) while it is short */
138
+ refill?: number;
81
139
  /** State of the game's own about this one item: kills it has seen, what it has stored. Plain data: it is saved */
82
140
  data?: Record<string, unknown>;
83
141
  }
@@ -87,41 +145,57 @@ export interface ItemInstance {
87
145
  * @beta
88
146
  */
89
147
  export interface StockState {
148
+ /** The id of the item type for sale */
90
149
  item: string;
150
+ /** How many of it the shop has now */
91
151
  count: number;
92
152
  /** Seconds until the next one arrives */
93
153
  restock: number;
94
154
  }
95
- /** @beta */
155
+ /**
156
+ * How a unit's move is going: it is not moving, on its way, got there, or could not
157
+ *
158
+ * @beta
159
+ */
96
160
  export type MoveStatus = 'idle' | 'moving' | 'arrived' | 'failed';
97
- /** @beta */
161
+ /**
162
+ * What a unit keeps of its moving: speed, goal, status and the path's bookkeeping
163
+ *
164
+ * @beta
165
+ */
98
166
  export interface MovementState {
167
+ /** Units per second it goes at now */
99
168
  speed: number;
100
169
  /** The fastest it goes for now, whatever its speed: a group's slowest, as it moves together (`OrderParams.together`) */
101
170
  cap?: number;
171
+ /** Whether it is idle, on its way, arrived or failed to get there */
102
172
  status: MoveStatus;
173
+ /** Where it is heading, in cells */
103
174
  goal: Vec2;
104
175
  /** When set the goal follows this entity */
105
176
  goalEntity: EntityId;
106
177
  /** Arrive once this close to the goal (edge distance for entity goals) */
107
178
  range: number;
179
+ /** The group of units that were sent together; the same as the `groupId` of their order */
108
180
  groupId: number;
109
181
  /** Last destination handed to the navigation */
110
182
  navGoal: Vec2;
183
+ /** The version of the navigation when the goal was handed to it */
111
184
  navVersion: number;
112
185
  /** Corner of the path the unit is heading for. Progress is measured towards it, so a long way round is not mistaken for standing still */
113
186
  corner: Vec2;
114
187
  /** Closest the unit has been to its corner, used to detect that it stopped making progress */
115
188
  bestDistance: number;
189
+ /** Seconds it has made no progress towards its corner */
116
190
  stalledTime: number;
117
191
  /**
118
192
  * Seconds it has gone well under its speed on its way, held up by others (not counting getting going, or slowing
119
- * to arrive): what has those in its way asked to step aside (see `GameRules.movement.lookAhead`)
193
+ * to arrive): what has those in its way asked to step aside (see `RuleSettings.movement.lookAhead`)
120
194
  */
121
195
  slowTime?: number;
122
196
  /**
123
197
  * The point it goes round standing units by, on its way to the next corner of its path, when that is not much
124
- * longer (`GameRules.movement.goesAround`, the `detour` hook): none while it goes straight
198
+ * longer (`RuleSettings.movement.goesAround`, the `detour` hook): none while it goes straight
125
199
  */
126
200
  detour?: Vec2;
127
201
  /** Where it heads on from `detour`: the corner of its path it went round the knot towards */
@@ -130,14 +204,46 @@ export interface MovementState {
130
204
  aside?: boolean;
131
205
  /** Whether it was sent on past `detour`, towards its path, as it neared it */
132
206
  detourPast?: boolean;
207
+ /**
208
+ * The group of the formation it was last sent in (`OrderInit.formation`, the order's `groupId`): those of one swap
209
+ * places on the way, and keep the places they get to (`place`)
210
+ */
211
+ formation?: number;
212
+ /**
213
+ * Its place in its formation, once there. Stepped aside or pushed off it, it walks back once it has stood off it a
214
+ * while. None once it walks off on a move of its own, or is given another order
215
+ */
216
+ place?: Vec2;
217
+ /** How many times it went back to its place without getting there: it lets it go after a few */
218
+ backTries?: number;
219
+ /**
220
+ * How many times it tried again on this move, held up 3 seconds by others that may yet go (in a crowd, say): sent on
221
+ * anew, round the whole knot, those in it asked aside. It gives up after 4, or none when what holds it up is the
222
+ * ground or those holding their ground. Counted again once it gets 2 cells nearer
223
+ */
224
+ tries?: number;
225
+ /** How far it had left to go when it last tried again */
226
+ triedAt?: number;
227
+ /**
228
+ * On a step aside asked by one stepping aside itself: how far down that line it is (2, 3). One that far asks nobody
229
+ * aside in turn, so that a crowd parts a few deep and no further
230
+ */
231
+ asideDepth?: number;
133
232
  /** Whether the last move failed by getting stuck on the way (in a crowd, say), not for there being no way there */
134
233
  stuck?: boolean;
234
+ /** Whether the unit holds its ground in a fight, so that others come round it */
135
235
  anchored: boolean;
236
+ /** Whether the navigation lets it through others, as a ghost */
136
237
  ghost: boolean;
238
+ /**
239
+ * Whether a buff it carries has it walk through others now (`BuffDef.phasing`): a ghost to the navigation as well,
240
+ * whatever `ghost` says. Seen to every tick by the movement
241
+ */
242
+ phased?: boolean;
137
243
  /** Direction the unit turns to while it stands still. Null when it may face wherever it ended up */
138
244
  finalFacing: number | null;
139
245
  /**
140
- * The route its side planned to the goal, corner by corner, with what the side knows (`GameModule.paths: 'seen'`):
246
+ * The route its side planned to the goal, corner by corner, with what the side knows (`Rules.paths: 'seen'`):
141
247
  * walked a stretch at a time. None where routes know everything, or there is no route
142
248
  */
143
249
  route?: Vec2[];
@@ -156,20 +262,31 @@ export interface MovementState {
156
262
  * @beta
157
263
  */
158
264
  export declare const moving: Component<MovementState, MovementState>;
159
- /** @beta */
265
+ /**
266
+ * What a unit keeps of its fighting: cooldown, swing, targets and recovery
267
+ *
268
+ * @beta
269
+ */
160
270
  export interface CombatState {
161
271
  /** Seconds until the next attack may start */
162
272
  cooldown: number;
163
273
  /** Seconds until the running swing lands. 0 when not swinging */
164
274
  swing: number;
275
+ /** The entity the running swing is aimed at */
165
276
  swingTarget: EntityId;
166
277
  /**
167
278
  * Which of its attacks the running swing, or the last, is of, by place (`UnitTypeDef.attacks`): the first when left
168
279
  * out, as for every unit with one. It swings one at a time, and waits out the cooldown of the one that hit
169
280
  */
170
281
  weapon?: number;
282
+ /**
283
+ * Seconds left of the recovery after its last blow (`AttackDef.recovery`), while what it is told waits: none when
284
+ * it has none
285
+ */
286
+ recovery?: number;
171
287
  /** Target picked by the unit itself rather than by an order */
172
288
  autoTarget: EntityId;
289
+ /** The entity that last hit it */
173
290
  lastAttacker: EntityId;
174
291
  /** Where an idle unit returns to after chasing */
175
292
  guard: Vec2 | null;
@@ -181,6 +298,8 @@ export interface CombatState {
181
298
  slot?: number | null;
182
299
  /** Targets it left alone because it could not get at them, and until when, in world time */
183
300
  shunned?: [EntityId, number][];
301
+ /** The tick the allies of whoever it hit were last called to help (`RuleSettings.combat.helpRange`), so that they are asked once in a while, not by every blow. Unset until it hits someone */
302
+ helpedAt?: number;
184
303
  }
185
304
  /**
186
305
  * How an entity fights (`CombatState`): its cooldown, its swing, what it is engaged with. What attacks has it from its
@@ -189,17 +308,28 @@ export interface CombatState {
189
308
  * @beta
190
309
  */
191
310
  export declare const fighting: Component<CombatState, CombatState>;
192
- /** @beta */
311
+ /**
312
+ * What a worker keeps of its gathering: what it carries and where it gathered
313
+ *
314
+ * @beta
315
+ */
193
316
  export interface HarvesterState {
317
+ /** How much of the resource the worker carries */
194
318
  carrying: number;
195
319
  /** What it is that the worker carries, or last gathered. Null for one that has not gathered anything yet */
196
- kind: ResourceKind | null;
320
+ kind: ResourceId | null;
197
321
  /** Last resource this worker gathered from */
198
322
  resource: EntityId;
199
323
  }
200
- /** @beta */
324
+ /**
325
+ * What is left of a deposit and how many are at it
326
+ *
327
+ * @beta
328
+ */
201
329
  export interface ResourceState {
330
+ /** How much of the resource is left in it */
202
331
  amount: number;
332
+ /** How many workers are at it, inside or working on it */
203
333
  occupants: number;
204
334
  /** The building that stands on it (`UnitTypeDef.builtOn`), by id: none when nothing does */
205
335
  under?: EntityId;
@@ -211,18 +341,28 @@ export interface ResourceState {
211
341
  * @beta
212
342
  */
213
343
  export declare const deposit: Component<ResourceState, ResourceState>;
214
- /** @beta */
344
+ /**
345
+ * How far a building under construction has got
346
+ *
347
+ * @beta
348
+ */
215
349
  export interface ConstructionState {
216
350
  /** 0..1 */
217
351
  progress: number;
352
+ /** Seconds a single builder needs to finish it */
218
353
  buildTime: number;
219
354
  /** Builders that worked on it during the current tick */
220
355
  builders: number;
221
356
  /** What was paid for it, when that is not what its type costs. A cancelled site gives part of this back */
222
357
  paid?: Cost;
223
358
  }
224
- /** @beta */
359
+ /**
360
+ * One thing a building makes: a unit, an upgrade, a revive or a morph
361
+ *
362
+ * @beta
363
+ */
225
364
  export interface ProductionItem {
365
+ /** What it makes: a unit, an upgrade, a revived hero or a morph into another type */
226
366
  kind: 'unit' | 'upgrade' | 'revive' | 'morph';
227
367
  /** Unit type, upgrade id, the id of the hero to bring back, or the type the building turns into */
228
368
  id: string;
@@ -230,6 +370,7 @@ export interface ProductionItem {
230
370
  paid?: Cost;
231
371
  /** Seconds of work done */
232
372
  progress: number;
373
+ /** Seconds it takes in all */
233
374
  duration: number;
234
375
  }
235
376
  /**
@@ -246,36 +387,99 @@ export declare const exposure: Component<Map<number, number>, Map<number, number
246
387
  * @beta
247
388
  */
248
389
  export declare const detection: Component<Map<number, number>, Map<number, number>>;
390
+ /**
391
+ * Whose picture an entity wears: the type it is drawn as, and the owner whose colour it is drawn in. Nothing in the
392
+ * rules goes by it
393
+ *
394
+ * @beta
395
+ */
396
+ export interface Likeness {
397
+ /** The unit type whose picture the entity wears */
398
+ type: string;
399
+ /** The player whose colour the entity is drawn in */
400
+ owner: PlayerId;
401
+ }
249
402
  /**
250
403
  * A rush to a spot: nothing stops it, and what it does happens where it ends
251
404
  *
252
405
  * @beta
253
406
  */
254
407
  export interface Dash {
408
+ /** Where it ends, east-west in cells */
255
409
  x: number;
410
+ /** Where it ends, north-south in cells */
256
411
  z: number;
257
412
  /** Where it started */
258
413
  from: Vec2;
259
414
  /** Units per second */
260
415
  speed: number;
416
+ /** The id of the ability that sent it */
261
417
  ability: string;
418
+ /** The level of the ability it was cast at */
262
419
  level: number;
420
+ /**
421
+ * Which effect of the ability sent it, by its place there (`effectIndex`): what the screen draws it with
422
+ * (`AbilityLook.effects`). Nothing to the rules
423
+ *
424
+ * @beta
425
+ */
426
+ effect?: number;
427
+ /** The effects that happen where it ends */
263
428
  effects: EffectDef[];
264
429
  /** How high it rises on the way: a leap, over whatever is in between */
265
430
  height?: number;
266
431
  /** A buff it carries for as long as the rush lasts */
267
432
  buff?: string;
433
+ /**
434
+ * Dragged by someone (the effect `pull`): `by` whom, in whose name `effects` happen to it as it arrives, and whether
435
+ * it is dragged after them as they move (`follows`) or to the spot (`x`, `z`). It does nothing of its own meanwhile,
436
+ * and nothing else moves it
437
+ *
438
+ * @beta
439
+ */
440
+ pulled?: {
441
+ by: EntityId;
442
+ follows: boolean;
443
+ };
444
+ /**
445
+ * The unit it rushes to (a `dash` to a unit, in a game with the moves pack): its landing `effects` happen to it, where
446
+ * it still is in the world
447
+ *
448
+ * @beta
449
+ */
450
+ target?: EntityId;
268
451
  }
269
- /** @beta */
452
+ /**
453
+ * Where the units a building makes go: a point, or an entity they follow
454
+ *
455
+ * @beta
456
+ */
270
457
  export interface RallyPoint {
458
+ /** The place the units go to */
271
459
  point: Vec2;
460
+ /** The entity they follow; 0 for none */
272
461
  target: EntityId;
273
462
  }
274
- /** @beta */
463
+ /**
464
+ * What a building makes: the queue of what it is making, and its rally point
465
+ *
466
+ * @beta
467
+ */
275
468
  export interface ProductionState {
469
+ /** What it makes in turn, the first being worked on */
276
470
  queue: ProductionItem[];
471
+ /** Where the units it makes go, or null for none */
277
472
  rally: RallyPoint | null;
278
473
  }
474
+ /**
475
+ * How an order is given (`Entity.order`)
476
+ *
477
+ * @public
478
+ */
479
+ export interface OrderOptions {
480
+ /** After what it was told before, rather than in its place: Shift held */
481
+ queue?: boolean;
482
+ }
279
483
  /**
280
484
  * Anything in the world: a unit, a building, a tree.
281
485
  *
@@ -285,13 +489,16 @@ export interface ProductionState {
285
489
  * `retype`, `changeOwner`…). The rest, like health, mana or cooldowns, a game
286
490
  * module may change as it likes: nothing is worked out from them that would not notice.
287
491
  *
288
- * @beta
492
+ * @public
289
493
  */
290
494
  export declare class Entity {
495
+ /** The entity's number, unique in its world */
291
496
  readonly id: EntityId;
292
497
  /** Changes when a building is upgraded into another type */
293
498
  readonly def: UnitTypeDef;
499
+ /** The player it belongs to, changed through `World.setOwner` only */
294
500
  readonly owner: PlayerId;
501
+ /** Whether the entity is in the world; false once it died */
295
502
  readonly alive: boolean;
296
503
  /** Hidden entities are inside something (a gold mine) and do not take part in the world */
297
504
  readonly hidden: boolean;
@@ -300,17 +507,27 @@ export declare class Entity {
300
507
  * Becomes false for good once something gives it anything to do (`World.wake`)
301
508
  */
302
509
  readonly scenery: boolean;
510
+ /** Where it stands in cells (`x`, `z`), changed through the world's functions only */
303
511
  readonly pos: Readonly<Vec2>;
512
+ /** Where it stood at the last tick, for the screen to draw between */
304
513
  readonly prevPos: Vec2;
514
+ /** The way it faces in radians */
305
515
  facing: number;
516
+ /** The way it faced at the last tick, in radians, for the screen to draw between */
306
517
  prevFacing: number;
307
518
  /** How big it is drawn, for the look of a map. Nothing in the rules goes by it */
308
519
  scale: number;
309
520
  /** Which of the models of its type it is drawn with, for the look of a map. Nothing in the rules goes by it either */
310
521
  look?: string;
522
+ /**
523
+ * Drawn as another's type and owner: a soul in the fallen's shape (`SpawnOptions.looksLike`). Its own type and owner
524
+ * decide everything but the picture
525
+ */
526
+ likeness?: Likeness;
311
527
  /** Velocity of the last tick */
312
528
  readonly velocity: Vec2;
313
- hp: number;
529
+ /** Hit points it has now; it dies at 0 */
530
+ health: number;
314
531
  /** Teams that have seen this entity at least once, one bit per team as `FogOfWar.teamBit` hands them out. Ask `World.hasSeen` */
315
532
  seenBy: number;
316
533
  /** When it was last hurt, in seconds of the game. Long ago for what never was */
@@ -329,8 +546,11 @@ export declare class Entity {
329
546
  readonly orders: readonly Order[];
330
547
  /** Invisible to enemies right now, unless they have found it */
331
548
  get unseen(): boolean;
332
- maxHp: number;
549
+ /** The most hit points it can have */
550
+ maxHealth: number;
551
+ /** Mana it has now */
333
552
  mana: number;
553
+ /** The most mana it can have */
334
554
  maxMana: number;
335
555
  /** Does nothing by itself until something wakes it, and is drawn sleeping: creeps at night */
336
556
  asleep: boolean;
@@ -354,18 +574,36 @@ export declare class Entity {
354
574
  spatialStamp: number;
355
575
  /** Stats as last worked out, see `statsOf`. Derived from the rest, never saved or sent */
356
576
  statsCache: StatsCache | null;
357
- /** The index of the world it is in, told when it gets or loses a component. Not game state */
577
+ /**
578
+ * The index of the world it is in (`EntityIndex`), told when it gets or loses a component, and the way to its world
579
+ * (`order`). Not game state
580
+ */
358
581
  index: {
359
582
  componentChanged(entity: Entity, id: string, has: boolean): void;
360
583
  } | null;
361
- constructor(id: EntityId,
584
+ constructor(
585
+ /** The entity's number, unique in its world */
586
+ id: EntityId,
362
587
  /** Changes when a building is upgraded into another type */
363
- def: UnitTypeDef, owner: PlayerId, position: Vec2);
588
+ def: UnitTypeDef,
589
+ /** The player it belongs to, changed through `World.setOwner` only */
590
+ owner: PlayerId, position: Vec2);
591
+ /**
592
+ * Gives it an order, as its owner would: `unit.order('move', point)`, `unit.order('attack', enemy)`,
593
+ * `unit.order('cast', { ability: 'blink', point })`. What it is aimed at is a point (`point`), an entity (`target`)
594
+ * or the order's fields (`OrderInits`). It is the `order` command of its owner through its world (`World.issue`):
595
+ * taken up at the next tick, turned away as a player's would be (an order its type does not take, a target its owner
596
+ * does not know), and kept by a replay. `queue` puts it after what it was told before. Throws for an entity that is
597
+ * in no world (taken out of it)
598
+ */
599
+ order<Type extends string>(type: Type, aim?: Vec2 | Entity | Omit<OrderInit<Type>, 'type'>, options?: OrderOptions): void;
364
600
  /** A component of a game module or a mod, see `defineComponent` */
365
601
  get<T>(key: Component<T, unknown>): T | undefined;
602
+ /** Whether it holds the component */
366
603
  has(key: Component<unknown>): boolean;
367
604
  /** Gives it the component, or a new value of it. `undefined` takes it away (`remove`) */
368
605
  set<T>(key: Component<T, unknown>, value: T): void;
606
+ /** Takes the component away; nothing happens when it has none */
369
607
  remove(key: Component<unknown>): void;
370
608
  /** Its components, in the order it was given them: each one's value is `get(component)` */
371
609
  heldComponents(): readonly Component<unknown, unknown>[];
@@ -374,17 +612,26 @@ export declare class Entity {
374
612
  * by id now and then (a save, the inspector). What does it often goes through `heldComponents`
375
613
  */
376
614
  get components(): Readonly<Record<string, unknown>>;
615
+ /** Whether its type is a building */
377
616
  get isBuilding(): boolean;
617
+ /** Whether its type is a unit */
378
618
  get isUnit(): boolean;
619
+ /** Whether its type is a resource */
379
620
  get isResource(): boolean;
380
621
  /** Up in the air, where the ground and what stands on it are not in the way */
381
622
  get flying(): boolean;
623
+ /** Whether its type is a building or a resource: anything but a unit */
382
624
  get isStructure(): boolean;
383
625
  /** Completed and able to do its job */
384
626
  get operational(): boolean;
627
+ /** The order it carries out now, the first of its orders; nothing when it has none */
385
628
  get currentOrder(): Order | undefined;
386
- /** Ground area covered by a structure */
629
+ /** Ground area covered by a structure: a new rect each time, for who keeps it (an obstacle, a wall's reshape) */
387
630
  get rect(): Rect;
631
+ /** Half of what it covers across (`rect.hw`), with no rect made: what is asked all the time (is a structure in sight) */
632
+ get halfWidth(): number;
633
+ /** Half of what it covers from front to back (`rect.hd`), as `halfWidth` */
634
+ get halfDepth(): number;
388
635
  }
389
636
  /**
390
637
  * Anything with a place and a size: an entity, or what a client knows of one
@@ -392,7 +639,9 @@ export declare class Entity {
392
639
  * @beta
393
640
  */
394
641
  export interface Placed {
642
+ /** Where it stands in cells */
395
643
  pos: Vec2;
644
+ /** The definition of its type */
396
645
  def: UnitTypeDef;
397
646
  }
398
647
  /**