@v12-engine/engine 0.1.1 → 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,206 @@
1
+ import { distSq } from "../math.js";
2
+ import { attackStat } from "../attacks.js";
3
+ import "./reach.js";
4
+ //#region src/ai/threat.ts
5
+ /** Seconds of movement that count towards a unit's reach: what it could be hitting within a moment */
6
+ var SPREAD = 1.5;
7
+ /**
8
+ * How much of a unit's strength a cell `d` away gets, for an attack reaching `range` (its size in): all of it within, fading
9
+ * to nothing over `spread` past it
10
+ */
11
+ function reachWeight(d, range, spread) {
12
+ const half = 4;
13
+ const reach = range + spread;
14
+ const fade = reach - range;
15
+ if (d <= range + half) return 1;
16
+ return fade > 0 && d < reach + half ? (reach + half - d) / fade : 0;
17
+ }
18
+ var ZERO = Object.freeze({
19
+ friendly: 0,
20
+ enemy: 0,
21
+ net: 0
22
+ });
23
+ /**
24
+ * Where the strength is, on a coarse grid over the map (`AiView.threat`, `Brain.threat`): `at(point)` reads a place,
25
+ * `around(point, radius)` the worst cell near it, `hot()` the cells where the enemy is strongest near what is one's
26
+ * own, `cells()` every cell with something in it (for a drawing of it). Made from the view's picture when first asked,
27
+ * once a think; all zeros for no point, or one off the map, so that a question about "the first base known" needs no
28
+ * guard
29
+ *
30
+ * @beta
31
+ */
32
+ var ThreatMap = class {
33
+ view;
34
+ /** Cells across and down, and the side of one */
35
+ cols;
36
+ /** How many cells down the grid has */
37
+ rows;
38
+ /** The side of a cell in cells of the map */
39
+ cell = 8;
40
+ seen;
41
+ withRemembered;
42
+ constructor(view) {
43
+ this.view = view;
44
+ const { terrain } = view.session;
45
+ this.cols = Math.max(1, Math.ceil(terrain.width / 8));
46
+ this.rows = Math.max(1, Math.ceil(terrain.depth / 8));
47
+ }
48
+ /** The grids of a reading, made when first asked */
49
+ grids(remembered) {
50
+ if (remembered) return this.withRemembered ??= this.build(true);
51
+ return this.seen ??= this.build(false);
52
+ }
53
+ /** One pass over the picture: each fighter painted onto the cells it reaches, on the layers it can hit */
54
+ build(remembered) {
55
+ const size = this.cols * this.rows;
56
+ const grids = {
57
+ friendly: {
58
+ ground: new Float64Array(size),
59
+ air: new Float64Array(size)
60
+ },
61
+ enemy: {
62
+ ground: new Float64Array(size),
63
+ air: new Float64Array(size)
64
+ }
65
+ };
66
+ const { view } = this;
67
+ for (const entity of view.mine) this.paint(grids.friendly, entity);
68
+ for (const entity of view.allies) this.paint(grids.friendly, entity);
69
+ const hostile = remembered ? view.hostile.known() : view.hostile;
70
+ for (const entity of hostile) this.paint(grids.enemy, entity);
71
+ return grids;
72
+ }
73
+ /** A unit's strength onto the cells within its reach: in full within its range, fading to nothing at the edge */
74
+ paint(side, entity) {
75
+ if (entity.health <= 0) return;
76
+ const { view } = this;
77
+ const def = view.def(entity);
78
+ const attacks = def.attacks;
79
+ if (!attacks?.length) return;
80
+ const strength = view.strength.of(entity);
81
+ if (!(strength > 0)) return;
82
+ const stats = view.strength.statsOf(entity, def);
83
+ let ground = -1;
84
+ let air = -1;
85
+ for (const attack of attacks) {
86
+ const { targets } = attack;
87
+ const range = attackStat(stats, attack, "range");
88
+ if (!targets || targets.some((entry) => entry !== "air")) ground = Math.max(ground, range);
89
+ if (targets?.includes("air")) air = Math.max(air, range);
90
+ }
91
+ if (ground < 0 && air < 0) return;
92
+ const spread = stats.moveSpeed * SPREAD;
93
+ const far = Math.max(ground, air) + def.radius + spread;
94
+ const c0 = this.col(entity.x - far);
95
+ const c1 = this.col(entity.x + far);
96
+ const r0 = this.row(entity.z - far);
97
+ const r1 = this.row(entity.z + far);
98
+ for (let r = r0; r <= r1; r++) for (let c = c0; c <= c1; c++) {
99
+ const nx = Math.max(c * 8, Math.min(entity.x, (c + 1) * 8));
100
+ const nz = Math.max(r * 8, Math.min(entity.z, (r + 1) * 8));
101
+ const d = Math.sqrt(distSq({
102
+ x: nx,
103
+ z: nz
104
+ }, entity));
105
+ const index = r * this.cols + c;
106
+ if (ground >= 0) side.ground[index] += strength * reachWeight(d, ground + def.radius, spread);
107
+ if (air >= 0) side.air[index] += strength * reachWeight(d, air + def.radius, spread);
108
+ }
109
+ }
110
+ col(x) {
111
+ return Math.min(this.cols - 1, Math.max(0, Math.floor(x / 8)));
112
+ }
113
+ row(z) {
114
+ return Math.min(this.rows - 1, Math.max(0, Math.floor(z / 8)));
115
+ }
116
+ /** Whether a point is on the map */
117
+ onMap(point) {
118
+ const { terrain } = this.view.session;
119
+ return point.x >= 0 && point.z >= 0 && point.x < terrain.width && point.z < terrain.depth;
120
+ }
121
+ read(grids, layer, index) {
122
+ const friendly = grids.friendly[layer][index];
123
+ const enemy = grids.enemy[layer][index];
124
+ return {
125
+ friendly,
126
+ enemy,
127
+ net: friendly - enemy
128
+ };
129
+ }
130
+ /**
131
+ * What reaches a place: the friendly and the enemy strength at its cell, on a layer (`ground` when left out). All
132
+ * zeros for no point or one off the map
133
+ */
134
+ at(point, query = {}) {
135
+ if (!point || !this.onMap(point)) return ZERO;
136
+ const grids = this.grids(!!query.remembered);
137
+ return this.read(grids, query.layer ?? "ground", this.row(point.z) * this.cols + this.col(point.x));
138
+ }
139
+ /** The worst cell within a distance of a point: the one the most enemy strength reaches. Zeros off the map */
140
+ around(point, radius, query = {}) {
141
+ if (!point || !this.onMap(point)) return ZERO;
142
+ const grids = this.grids(!!query.remembered);
143
+ const layer = query.layer ?? "ground";
144
+ let worst = ZERO;
145
+ const c0 = this.col(point.x - radius);
146
+ const c1 = this.col(point.x + radius);
147
+ const r0 = this.row(point.z - radius);
148
+ const r1 = this.row(point.z + radius);
149
+ for (let r = r0; r <= r1; r++) for (let c = c0; c <= c1; c++) {
150
+ const found = this.read(grids, layer, r * this.cols + c);
151
+ if (found.enemy > worst.enemy || worst === ZERO && found.friendly > 0) worst = found;
152
+ }
153
+ return worst;
154
+ }
155
+ /**
156
+ * Where the enemy is strongest near what is one's own: the cells that enemy strength reaches and that hold a unit or
157
+ * building of the player's (an ally's with `owner`), the hottest first. A raid at an expansion reads here while the
158
+ * main is quiet
159
+ */
160
+ hot(query = {}) {
161
+ const grids = this.grids(!!query.remembered);
162
+ const layer = query.layer ?? "ground";
163
+ const own = query.owner === void 0 ? this.view.mine : this.view.all.ofOwner(query.owner);
164
+ const held = /* @__PURE__ */ new Set();
165
+ for (const entity of own) held.add(this.row(entity.z) * this.cols + this.col(entity.x));
166
+ const cells = [];
167
+ for (let index = 0; index < this.cols * this.rows; index++) {
168
+ if (!held.has(index)) continue;
169
+ const found = this.read(grids, layer, index);
170
+ if (found.enemy > 0) cells.push(this.cellOf(index, found));
171
+ }
172
+ return cells.sort((a, b) => b.enemy - a.enemy);
173
+ }
174
+ /** Every cell that any strength reaches on a layer, in the grid's order: for a drawing of the map */
175
+ cells(query = {}) {
176
+ const grids = this.grids(!!query.remembered);
177
+ const layer = query.layer ?? "ground";
178
+ const cells = [];
179
+ for (let index = 0; index < this.cols * this.rows; index++) {
180
+ const found = this.read(grids, layer, index);
181
+ if (found.friendly > 0 || found.enemy > 0) cells.push(this.cellOf(index, found));
182
+ }
183
+ return cells;
184
+ }
185
+ cellOf(index, found) {
186
+ const col = index % this.cols;
187
+ const row = Math.floor(index / this.cols);
188
+ return {
189
+ ...found,
190
+ at: {
191
+ x: (col + .5) * 8,
192
+ z: (row + .5) * 8
193
+ },
194
+ col,
195
+ row
196
+ };
197
+ }
198
+ /** Whether a reading has been made this think: for the timing and the debug tools */
199
+ get built() {
200
+ return this.seen !== void 0 || this.withRemembered !== void 0;
201
+ }
202
+ };
203
+ //#endregion
204
+ export { ThreatMap };
205
+
206
+ //# sourceMappingURL=threat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threat.js","names":[],"sources":["../../src/ai/threat.ts"],"sourcesContent":["import type { Layer } from '#engine/defs'\nimport { attackStat } from '#engine/attacks'\nimport { distSq, type Vec2 } from '#engine/math'\nimport type { EntityState } from '#engine/session/protocol'\nimport type { AiView } from './view'\nimport { CELL } from './reach'\n\n/*\n * The threat map: where the strength is (AI plan, A4). An **influence map**, the standard idea written plainly: a\n * coarse grid over the map where each cell holds the strength of the friendly units and of the enemy units that can\n * reach it. A brain's questions about places become reads of a few cells: \"is my expansion in danger\" is the enemy\n * strength at its cell, \"where is it safe\" is where the net is friendly, \"where are they raiding\" is the hot cells\n * near what is mine. It is cheap to make (one pass over what is in sight, each unit painted onto the cells it reaches)\n * and made only when something asks, once a think (`AiView.threat`): the view is of one think, and so is this.\n *\n * Reach is the unit's range, and a little more for its speed: what it could be hitting within a moment. Strength is\n * painted in full within range and fades to nothing at the edge of reach. Two layers are kept, for what a unit can\n * hit: `ground` holds the strength of what reaches things on the ground, `air` of what reaches things in the air, so\n * that gryphons over footmen read as safe in the air and a tower reads on both. Built from what is in sight only;\n * `remembered: true` adds the enemy structures seen before and out of sight (their towers), which may be gone\n */\n\n/** Seconds of movement that count towards a unit's reach: what it could be hitting within a moment */\nconst SPREAD = 1.5\n\n/**\n * How much of a unit's strength a cell `d` away gets, for an attack reaching `range` (its size in): all of it within, fading\n * to nothing over `spread` past it\n */\nfunction reachWeight(d: number, range: number, spread: number): number {\n\tconst half = CELL / 2\n\tconst reach = range + spread\n\tconst fade = reach - range\n\tif (d <= range + half) return 1\n\treturn fade > 0 && d < reach + half ? (reach + half - d) / fade : 0\n}\n\n/**\n * What the threat map reads at a place: the strength of the friendly units (one's own and allies') and of the enemy\n * units (rivals' and creeps') that can reach it, and the difference\n *\n * @beta\n */\nexport interface Threat {\n\t/** The strength of one's own and allies' units that reach the place */\n\tfriendly: number\n\t/** The strength of rivals' and creeps' units that reach it */\n\tenemy: number\n\t/** `friendly - enemy`: above 0 where one's own side is stronger */\n\tnet: number\n}\n\n/**\n * A cell of the threat map with what it reads (`ThreatMap.hot`, `cells`)\n *\n * @beta\n */\nexport interface ThreatCell extends Threat {\n\t/** The middle of the cell */\n\tat: Vec2\n\t/** The cell's column on the grid, counted from 0 */\n\tcol: number\n\t/** The cell's row on the grid, counted from 0 */\n\trow: number\n}\n\n/**\n * What a read of the map is for: the layer the thing asked about is on (`ground` when left out: what can reach things\n * on the ground), and whether the enemy structures remembered and out of sight count too (a tower seen before)\n *\n * @beta\n */\nexport interface ThreatQuery {\n\t/** The layer the thing asked about is on; `ground` when left out */\n\tlayer?: Layer\n\t/** Whether enemy structures remembered but out of sight count too */\n\tremembered?: boolean\n}\n\nconst ZERO: Threat = Object.freeze({ friendly: 0, enemy: 0, net: 0 })\n\n/** The two grids of one reading: what can reach the ground, what can reach the air */\ninterface Grids {\n\tfriendly: Record<Layer, Float64Array>\n\tenemy: Record<Layer, Float64Array>\n}\n\n/**\n * Where the strength is, on a coarse grid over the map (`AiView.threat`, `Brain.threat`): `at(point)` reads a place,\n * `around(point, radius)` the worst cell near it, `hot()` the cells where the enemy is strongest near what is one's\n * own, `cells()` every cell with something in it (for a drawing of it). Made from the view's picture when first asked,\n * once a think; all zeros for no point, or one off the map, so that a question about \"the first base known\" needs no\n * guard\n *\n * @beta\n */\nexport class ThreatMap {\n\t/** Cells across and down, and the side of one */\n\treadonly cols: number\n\t/** How many cells down the grid has */\n\treadonly rows: number\n\t/** The side of a cell in cells of the map */\n\treadonly cell = CELL\n\tprivate seen: Grids | undefined\n\tprivate withRemembered: Grids | undefined\n\n\tconstructor(\n\t\t/** The picture it is made from */\n\t\treadonly view: AiView\n\t) {\n\t\tconst { terrain } = view.session\n\t\tthis.cols = Math.max(1, Math.ceil(terrain.width / CELL))\n\t\tthis.rows = Math.max(1, Math.ceil(terrain.depth / CELL))\n\t}\n\n\t/** The grids of a reading, made when first asked */\n\tprivate grids(remembered: boolean): Grids {\n\t\tif (remembered) return (this.withRemembered ??= this.build(true))\n\t\treturn (this.seen ??= this.build(false))\n\t}\n\n\t/** One pass over the picture: each fighter painted onto the cells it reaches, on the layers it can hit */\n\tprivate build(remembered: boolean): Grids {\n\t\tconst size = this.cols * this.rows\n\t\tconst grids: Grids = {\n\t\t\tfriendly: { ground: new Float64Array(size), air: new Float64Array(size) },\n\t\t\tenemy: { ground: new Float64Array(size), air: new Float64Array(size) }\n\t\t}\n\t\tconst { view } = this\n\t\tfor (const entity of view.mine) this.paint(grids.friendly, entity)\n\t\tfor (const entity of view.allies) this.paint(grids.friendly, entity)\n\t\tconst hostile = remembered ? view.hostile.known() : view.hostile\n\t\tfor (const entity of hostile) this.paint(grids.enemy, entity)\n\t\treturn grids\n\t}\n\n\t/** A unit's strength onto the cells within its reach: in full within its range, fading to nothing at the edge */\n\tprivate paint(side: Record<Layer, Float64Array>, entity: EntityState): void {\n\t\tif (entity.health <= 0) return\n\t\tconst { view } = this\n\t\tconst def = view.def(entity)\n\t\tconst attacks = def.attacks\n\t\tif (!attacks?.length) return\n\t\tconst strength = view.strength.of(entity)\n\t\tif (!(strength > 0)) return\n\t\tconst stats = view.strength.statsOf(entity, def)\n\t\t// how far it reaches each layer: the farthest of its attacks that hit there, -1 for none\n\t\tlet ground = -1\n\t\tlet air = -1\n\t\tfor (const attack of attacks) {\n\t\t\tconst { targets } = attack\n\t\t\tconst range = attackStat(stats, attack, 'range')\n\t\t\tif (!targets || targets.some((entry) => entry !== 'air')) ground = Math.max(ground, range)\n\t\t\tif (targets?.includes('air')) air = Math.max(air, range)\n\t\t}\n\t\tif (ground < 0 && air < 0) return\n\t\tconst spread = stats.moveSpeed * SPREAD\n\t\tconst far = Math.max(ground, air) + def.radius + spread\n\t\tconst c0 = this.col(entity.x - far)\n\t\tconst c1 = this.col(entity.x + far)\n\t\tconst r0 = this.row(entity.z - far)\n\t\tconst r1 = this.row(entity.z + far)\n\t\tfor (let r = r0; r <= r1; r++) {\n\t\t\tfor (let c = c0; c <= c1; c++) {\n\t\t\t\t// the nearest point of the cell to the unit: a cell it stands in or touches with its range is within it in full\n\t\t\t\tconst nx = Math.max(c * CELL, Math.min(entity.x, (c + 1) * CELL))\n\t\t\t\tconst nz = Math.max(r * CELL, Math.min(entity.z, (r + 1) * CELL))\n\t\t\t\tconst d = Math.sqrt(distSq({ x: nx, z: nz }, entity))\n\t\t\t\tconst index = r * this.cols + c\n\t\t\t\tif (ground >= 0) side.ground[index] += strength * reachWeight(d, ground + def.radius, spread)\n\t\t\t\tif (air >= 0) side.air[index] += strength * reachWeight(d, air + def.radius, spread)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate col(x: number): number {\n\t\treturn Math.min(this.cols - 1, Math.max(0, Math.floor(x / CELL)))\n\t}\n\n\tprivate row(z: number): number {\n\t\treturn Math.min(this.rows - 1, Math.max(0, Math.floor(z / CELL)))\n\t}\n\n\t/** Whether a point is on the map */\n\tprivate onMap(point: Vec2): boolean {\n\t\tconst { terrain } = this.view.session\n\t\treturn point.x >= 0 && point.z >= 0 && point.x < terrain.width && point.z < terrain.depth\n\t}\n\n\tprivate read(grids: Grids, layer: Layer, index: number): Threat {\n\t\tconst friendly = grids.friendly[layer][index]\n\t\tconst enemy = grids.enemy[layer][index]\n\t\treturn { friendly, enemy, net: friendly - enemy }\n\t}\n\n\t/**\n\t * What reaches a place: the friendly and the enemy strength at its cell, on a layer (`ground` when left out). All\n\t * zeros for no point or one off the map\n\t */\n\tat(point: Vec2 | undefined, query: ThreatQuery = {}): Threat {\n\t\tif (!point || !this.onMap(point)) return ZERO\n\t\tconst grids = this.grids(!!query.remembered)\n\t\treturn this.read(grids, query.layer ?? 'ground', this.row(point.z) * this.cols + this.col(point.x))\n\t}\n\n\t/** The worst cell within a distance of a point: the one the most enemy strength reaches. Zeros off the map */\n\taround(point: Vec2 | undefined, radius: number, query: ThreatQuery = {}): Threat {\n\t\tif (!point || !this.onMap(point)) return ZERO\n\t\tconst grids = this.grids(!!query.remembered)\n\t\tconst layer = query.layer ?? 'ground'\n\t\tlet worst = ZERO\n\t\tconst c0 = this.col(point.x - radius)\n\t\tconst c1 = this.col(point.x + radius)\n\t\tconst r0 = this.row(point.z - radius)\n\t\tconst r1 = this.row(point.z + radius)\n\t\tfor (let r = r0; r <= r1; r++) {\n\t\t\tfor (let c = c0; c <= c1; c++) {\n\t\t\t\tconst found = this.read(grids, layer, r * this.cols + c)\n\t\t\t\tif (found.enemy > worst.enemy || (worst === ZERO && found.friendly > 0)) worst = found\n\t\t\t}\n\t\t}\n\t\treturn worst\n\t}\n\n\t/**\n\t * Where the enemy is strongest near what is one's own: the cells that enemy strength reaches and that hold a unit or\n\t * building of the player's (an ally's with `owner`), the hottest first. A raid at an expansion reads here while the\n\t * main is quiet\n\t */\n\thot(query: ThreatQuery & { owner?: number } = {}): ThreatCell[] {\n\t\tconst grids = this.grids(!!query.remembered)\n\t\tconst layer = query.layer ?? 'ground'\n\t\tconst own = query.owner === undefined ? this.view.mine : this.view.all.ofOwner(query.owner)\n\t\tconst held = new Set<number>()\n\t\tfor (const entity of own) held.add(this.row(entity.z) * this.cols + this.col(entity.x))\n\t\tconst cells: ThreatCell[] = []\n\t\t// in the grid's order, so that equals come out the same every time\n\t\tfor (let index = 0; index < this.cols * this.rows; index++) {\n\t\t\tif (!held.has(index)) continue\n\t\t\tconst found = this.read(grids, layer, index)\n\t\t\tif (found.enemy > 0) cells.push(this.cellOf(index, found))\n\t\t}\n\t\treturn cells.sort((a, b) => b.enemy - a.enemy)\n\t}\n\n\t/** Every cell that any strength reaches on a layer, in the grid's order: for a drawing of the map */\n\tcells(query: ThreatQuery = {}): ThreatCell[] {\n\t\tconst grids = this.grids(!!query.remembered)\n\t\tconst layer = query.layer ?? 'ground'\n\t\tconst cells: ThreatCell[] = []\n\t\tfor (let index = 0; index < this.cols * this.rows; index++) {\n\t\t\tconst found = this.read(grids, layer, index)\n\t\t\tif (found.friendly > 0 || found.enemy > 0) cells.push(this.cellOf(index, found))\n\t\t}\n\t\treturn cells\n\t}\n\n\tprivate cellOf(index: number, found: Threat): ThreatCell {\n\t\tconst col = index % this.cols\n\t\tconst row = Math.floor(index / this.cols)\n\t\treturn { ...found, at: { x: (col + 0.5) * CELL, z: (row + 0.5) * CELL }, col, row }\n\t}\n\n\t/** Whether a reading has been made this think: for the timing and the debug tools */\n\tget built(): boolean {\n\t\treturn this.seen !== undefined || this.withRemembered !== undefined\n\t}\n}\n"],"mappings":"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"}
package/dist/ai/view.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Component } from '#engine/components';
2
- import type { ResourceKind, UnitTypeDef } from '#engine/defs';
2
+ import type { ResourceId, UnitTypeDef } from '#engine/defs';
3
3
  import type { PlayerId } from '#engine/entity';
4
4
  import type { EventKey } from '#engine/events';
5
5
  import type { Lane } from '#engine/lanes';
@@ -40,6 +40,7 @@ export declare class UnitSet implements Iterable<EntityState> {
40
40
  items?: readonly EntityState[], remembered?: EntityState[]);
41
41
  /** How many */
42
42
  get length(): number;
43
+ /** Iterates the set's entities in order */
43
44
  [Symbol.iterator](): Iterator<EntityState>;
44
45
  /** The first of them: none in an empty set */
45
46
  first(): EntityState | undefined;
@@ -51,9 +52,13 @@ export declare class UnitSet implements Iterable<EntityState> {
51
52
  map<T>(fn: (entity: EntityState, index: number) => T): T[];
52
53
  /** As an array does: a plain array. `where` gives a set */
53
54
  filter(fn: (entity: EntityState, index: number) => unknown): EntityState[];
55
+ /** The first entity `fn` is true for, or nothing; `fn` is given the entity and its index */
54
56
  find(fn: (entity: EntityState, index: number) => unknown): EntityState | undefined;
57
+ /** Whether `fn` is true for any entity of the set */
55
58
  some(fn: (entity: EntityState, index: number) => unknown): boolean;
59
+ /** Whether `fn` is true for every entity of the set */
56
60
  every(fn: (entity: EntityState, index: number) => unknown): boolean;
61
+ /** Calls `fn` with each entity and its index, in order */
57
62
  forEach(fn: (entity: EntityState, index: number) => void): void;
58
63
  /** A set of these, of the same view */
59
64
  private make;
@@ -86,7 +91,7 @@ export declare class UnitSet implements Iterable<EntityState> {
86
91
  /** Those with health left */
87
92
  alive(): UnitSet;
88
93
  /** Deposits of a resource with something left in them (a gold mine, a tree): for the view's `resources` */
89
- ofResource(kind: ResourceKind): UnitSet;
94
+ ofResource(kind: ResourceId): UnitSet;
90
95
  /** Those of a player */
91
96
  ofOwner(player: PlayerId): UnitSet;
92
97
  /**
@@ -124,17 +129,23 @@ export declare class UnitSet implements Iterable<EntityState> {
124
129
  * @beta
125
130
  */
126
131
  export interface Me {
132
+ /** The player's id */
127
133
  id: PlayerId;
134
+ /** The player's name */
128
135
  name: string;
136
+ /** The player's team number */
129
137
  team: number;
130
138
  /** The race they play (`raceOf`): left out in a game without races */
131
139
  race?: string;
140
+ /** Whether the player is out of the game */
132
141
  defeated: boolean;
133
142
  /** What they have of each resource, by resource id */
134
- resources: Record<ResourceKind, number>;
143
+ resources: Record<ResourceId, number>;
144
+ /** How much supply the player's units and queues use */
135
145
  supplyUsed: number;
146
+ /** How much supply the player may use at most */
136
147
  supplyCap: number;
137
- /** The game's other pools of supply, by name (`GameRules.supply.pools`) */
148
+ /** The game's other pools of supply, by name (`RuleSettings.supply.pools`) */
138
149
  supplies?: Record<string, {
139
150
  used: number;
140
151
  cap: number;
@@ -145,10 +156,13 @@ export interface Me {
145
156
  name: string;
146
157
  income: number;
147
158
  };
159
+ /** The levels of the upgrades the player has, by upgrade id */
148
160
  upgrades: Record<string, number>;
161
+ /** The ids of the upgrades being researched */
149
162
  researching: string[];
150
163
  /** Types of the finished buildings the player has, with what those count as */
151
164
  tech: string[];
165
+ /** The player's heroes, each in short */
152
166
  heroes: HeroSummary[];
153
167
  /** What the player is set to do, in a mission. Empty in a game without objectives */
154
168
  objectives: ObjectiveState[];
@@ -160,12 +174,12 @@ export interface Me {
160
174
  * What the player gathers of each resource a minute, of late, as the brain's knowledge works it out
161
175
  * (`Knowledge.own.income`): set by the brain after the view is made; left out for a view of no brain's
162
176
  */
163
- income?: Record<ResourceKind, number>;
177
+ income?: Record<ResourceId, number>;
164
178
  /**
165
179
  * What is free to spend this think, by resource: the resources less what is promised and held, less what the think
166
180
  * spent so far (the brain's purse, `ai.purse`). Set by the brain after the view is made; left out for a view of no brain's
167
181
  */
168
- purse?: Readonly<Record<ResourceKind, number>>;
182
+ purse?: Readonly<Record<ResourceId, number>>;
169
183
  }
170
184
  /**
171
185
  * One of a player's bases, as the view clusters its buildings: around each building that takes deposits (a hall, what
@@ -294,7 +308,7 @@ export declare class AiView {
294
308
  get time(): number;
295
309
  /** Items lying on the ground where the player sees it */
296
310
  get items(): readonly GroundItemState[];
297
- /** What the game tells the player about itself (`GameModule.report`): a wave number, a score */
311
+ /** What the game tells the player about itself (`Rules.report`): a wave number, a score */
298
312
  get report(): Record<string, unknown> | undefined;
299
313
  /** An entity the player knows of, by id: none for one gone, or never seen */
300
314
  byId(id: number | undefined): EntityState | undefined;