@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,28 @@
1
+ import { defineTask } from "../task.js";
2
+ import { arrive } from "./shared.js";
3
+ //#region src/ai/tasks/retreat.ts
4
+ /**
5
+ * Falls back to a place: done `retreated`
6
+ *
7
+ * @beta
8
+ */
9
+ var RETREAT = defineTask({
10
+ id: "retreat",
11
+ fighting: false,
12
+ start(ai, squad, state) {
13
+ state.phase = "going";
14
+ state.phaseSince = ai.tick;
15
+ const at = state.data.at;
16
+ if (at) squad.order({
17
+ type: "move",
18
+ point: at
19
+ });
20
+ },
21
+ think: arrive("retreated"),
22
+ where: (_ai, _squad, state) => state.data.at,
23
+ handles: ["retreat", "regroup"]
24
+ });
25
+ //#endregion
26
+ export { RETREAT };
27
+
28
+ //# sourceMappingURL=retreat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retreat.js","names":[],"sources":["../../../src/ai/tasks/retreat.ts"],"sourcesContent":["/**\n * The kit's `retreat` task (design review B10): falls back to a place: done `retreated`\n */\nimport type { Vec2 } from '#engine/math'\nimport { defineTask, type TaskMemory } from '../task'\nimport { arrive } from './shared'\n\n/**\n * What the `retreat` task is given: where to (home when left out), and why, for the report\n *\n * @beta\n */\nexport type RetreatData = {\n\tat?: Vec2\n\twhy?: string\n}\n\n/**\n * Falls back to a place: done `retreated`\n *\n * @beta\n */\nexport const RETREAT = defineTask<RetreatData, TaskMemory>({ id: 'retreat', fighting: false,\n\tstart(ai, squad, state) {\n\t\tstate.phase = 'going'\n\t\tstate.phaseSince = ai.tick\n\t\tconst at = state.data.at\n\t\tif (at) squad.order({ type: 'move', point: at })\n\t},\n\tthink: arrive('retreated'),\n\twhere: (_ai, _squad, state) => state.data.at,\n\thandles: ['retreat', 'regroup'] })\n"],"mappings":";;;;;;;;AAsBA,IAAa,UAAU,WAAoC;CAAE,IAAI;CAAW,UAAU;CACrF,MAAM,IAAI,OAAO,OAAO;EACvB,MAAM,QAAQ;EACd,MAAM,aAAa,GAAG;EACtB,MAAM,KAAK,MAAM,KAAK;EACtB,IAAI,IAAI,MAAM,MAAM;GAAE,MAAM;GAAQ,OAAO;EAAG,CAAC;CAChD;CACA,OAAO,OAAO,WAAW;CACzB,QAAQ,KAAK,QAAQ,UAAU,MAAM,KAAK;CAC1C,SAAS,CAAC,WAAW,SAAS;AAAE,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { distSq } from "../../math.js";
2
+ import { defineTask } from "../task.js";
3
+ //#region src/ai/tasks/scout.ts
4
+ /**
5
+ * The kit's `scout` task (design review B10): looks at places in turn: done `arrived` after the last
6
+ */
7
+ /**
8
+ * Looks at places in turn: done `arrived` after the last
9
+ *
10
+ * @beta
11
+ */
12
+ var SCOUT_TASK = defineTask({
13
+ id: "scout",
14
+ fighting: false,
15
+ start(ai, squad, state) {
16
+ const points = state.data.points;
17
+ const next = state.memory.next ?? 0;
18
+ state.memory.next = next;
19
+ state.phase = "going";
20
+ state.phaseSince = ai.tick;
21
+ if (points[next]) squad.order({
22
+ type: "move",
23
+ point: points[next]
24
+ });
25
+ },
26
+ think(ai, squad, state) {
27
+ const points = state.data.points;
28
+ let next = state.memory.next ?? 0;
29
+ const knows = ai.def.knowledge !== false;
30
+ const at = points[next];
31
+ if (!at) {
32
+ squad.finish("arrived");
33
+ return;
34
+ }
35
+ const seen = knows && ai.knowledge.map.inSight(at);
36
+ const stopped = ai.tick > state.phaseSince && squad.idleUnits().length === squad.data.units.length;
37
+ if (!seen && !stopped) return;
38
+ if (!seen) {
39
+ const middle = squad.centre();
40
+ if (!(!!middle && distSq(middle, at) <= 256)) {
41
+ const tries = (state.memory.tries ?? 0) + 1;
42
+ if (tries <= 2 && ai.tick - state.phaseSince <= 5 * ai.session.tickRate) return;
43
+ state.memory.tries = tries;
44
+ if (tries <= 2) {
45
+ state.phaseSince = ai.tick;
46
+ squad.order({
47
+ type: "move",
48
+ point: at
49
+ });
50
+ return;
51
+ }
52
+ } else if (knows) ai.knowledge.map.look(at);
53
+ }
54
+ delete state.memory.tries;
55
+ next++;
56
+ state.memory.next = next;
57
+ if (next >= points.length) {
58
+ squad.finish("arrived");
59
+ return;
60
+ }
61
+ state.phaseSince = ai.tick;
62
+ squad.order({
63
+ type: "move",
64
+ point: points[next]
65
+ });
66
+ },
67
+ where: (_ai, _squad, state) => state.data.points[state.memory.next ?? 0],
68
+ handles: ["regroup", "retreat"]
69
+ });
70
+ //#endregion
71
+ export { SCOUT_TASK };
72
+
73
+ //# sourceMappingURL=scout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scout.js","names":[],"sources":["../../../src/ai/tasks/scout.ts"],"sourcesContent":["/**\n * The kit's `scout` task (design review B10): looks at places in turn: done `arrived` after the last\n */\nimport { distSq, type Vec2 } from '#engine/math'\nimport { CHURN_WINDOW } from '../checks'\nimport { defineTask } from '../task'\nimport { SCOUT_NEAR } from './shared'\n\n/**\n * What the `scout` task is given\n *\n * @beta\n */\nexport type RoundData = {\n\tpoints: Vec2[]\n}\n\n/**\n * What the `scout` task remembers\n *\n * @beta\n */\nexport type RoundMemory = {\n\t/** The place of the round it is on */\n\tnext?: number\n\t/** Times it was sent again to a place it stopped short of */\n\ttries?: number\n}\n\n/**\n * Looks at places in turn: done `arrived` after the last\n *\n * @beta\n */\nexport const SCOUT_TASK = defineTask<RoundData, RoundMemory>({ id: 'scout', fighting: false,\n\tstart(ai, squad, state) {\n\t\tconst points = state.data.points\n\t\tconst next = state.memory.next ?? 0\n\t\tstate.memory.next = next\n\t\tstate.phase = 'going'\n\t\tstate.phaseSince = ai.tick\n\t\tif (points[next]) squad.order({ type: 'move', point: points[next] })\n\t},\n\tthink(ai, squad, state) {\n\t\tconst points = state.data.points\n\t\tlet next = state.memory.next ?? 0\n\t\tconst knows = ai.def.knowledge !== false\n\t\tconst at = points[next]\n\t\tif (!at) {\n\t\t\tsquad.finish('arrived')\n\t\t\treturn\n\t\t}\n\t\t// in sight now, or as near as the ground let it go: that is as looked at as it gets, and on to the next. Stopped\n\t\t// far from it (stuck on the way), it is sent again twice (once a few seconds have gone since it was last sent), then\n\t\t// the place is passed over, not counted as looked at\n\t\tconst seen = knows && ai.knowledge.map.inSight(at)\n\t\tconst stopped = ai.tick > state.phaseSince && squad.idleUnits().length === squad.data.units.length\n\t\tif (!seen && !stopped) return\n\t\tif (!seen) {\n\t\t\tconst middle = squad.centre()\n\t\t\tconst near = !!middle && distSq(middle, at) <= SCOUT_NEAR * SCOUT_NEAR\n\t\t\tif (!near) {\n\t\t\t\tconst tries = (state.memory.tries ?? 0) + 1\n\t\t\t\t// not sooner than a unit may be told the same again without its stopping and starting (`AiStats.churn`)\n\t\t\t\tif (tries <= 2 && ai.tick - state.phaseSince <= CHURN_WINDOW * ai.session.tickRate) return\n\t\t\t\tstate.memory.tries = tries\n\t\t\t\tif (tries <= 2) {\n\t\t\t\t\tstate.phaseSince = ai.tick\n\t\t\t\t\tsquad.order({ type: 'move', point: at })\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else if (knows) ai.knowledge.map.look(at)\n\t\t}\n\t\tdelete state.memory.tries\n\t\tnext++\n\t\tstate.memory.next = next\n\t\tif (next >= points.length) {\n\t\t\tsquad.finish('arrived')\n\t\t\treturn\n\t\t}\n\t\tstate.phaseSince = ai.tick\n\t\tsquad.order({ type: 'move', point: points[next] })\n\t},\n\twhere: (_ai, _squad, state) => state.data.points[state.memory.next ?? 0],\n\t// it goes to look, not to fight: it does not turn back at the sight of them\n\thandles: ['regroup', 'retreat'] })\n"],"mappings":";;;;;;;;;;;AAkCA,IAAa,aAAa,WAAmC;CAAE,IAAI;CAAS,UAAU;CACrF,MAAM,IAAI,OAAO,OAAO;EACvB,MAAM,SAAS,MAAM,KAAK;EAC1B,MAAM,OAAO,MAAM,OAAO,QAAQ;EAClC,MAAM,OAAO,OAAO;EACpB,MAAM,QAAQ;EACd,MAAM,aAAa,GAAG;EACtB,IAAI,OAAO,OAAO,MAAM,MAAM;GAAE,MAAM;GAAQ,OAAO,OAAO;EAAM,CAAC;CACpE;CACA,MAAM,IAAI,OAAO,OAAO;EACvB,MAAM,SAAS,MAAM,KAAK;EAC1B,IAAI,OAAO,MAAM,OAAO,QAAQ;EAChC,MAAM,QAAQ,GAAG,IAAI,cAAc;EACnC,MAAM,KAAK,OAAO;EAClB,IAAI,CAAC,IAAI;GACR,MAAM,OAAO,SAAS;GACtB;EACD;EAIA,MAAM,OAAO,SAAS,GAAG,UAAU,IAAI,QAAQ,EAAE;EACjD,MAAM,UAAU,GAAG,OAAO,MAAM,cAAc,MAAM,UAAU,CAAC,CAAC,WAAW,MAAM,KAAK,MAAM;EAC5F,IAAI,CAAC,QAAQ,CAAC,SAAS;EACvB,IAAI,CAAC,MAAM;GACV,MAAM,SAAS,MAAM,OAAO;GAE5B,IAAI,EADS,CAAC,CAAC,UAAU,OAAO,QAAQ,EAAE,KAAA,MAC/B;IACV,MAAM,SAAS,MAAM,OAAO,SAAS,KAAK;IAE1C,IAAI,SAAS,KAAK,GAAG,OAAO,MAAM,cAAA,IAA6B,GAAG,QAAQ,UAAU;IACpF,MAAM,OAAO,QAAQ;IACrB,IAAI,SAAS,GAAG;KACf,MAAM,aAAa,GAAG;KACtB,MAAM,MAAM;MAAE,MAAM;MAAQ,OAAO;KAAG,CAAC;KACvC;IACD;GACD,OAAO,IAAI,OAAO,GAAG,UAAU,IAAI,KAAK,EAAE;EAC3C;EACA,OAAO,MAAM,OAAO;EACpB;EACA,MAAM,OAAO,OAAO;EACpB,IAAI,QAAQ,OAAO,QAAQ;GAC1B,MAAM,OAAO,SAAS;GACtB;EACD;EACA,MAAM,aAAa,GAAG;EACtB,MAAM,MAAM;GAAE,MAAM;GAAQ,OAAO,OAAO;EAAM,CAAC;CAClD;CACA,QAAQ,KAAK,QAAQ,UAAU,MAAM,KAAK,OAAO,MAAM,OAAO,QAAQ;CAEtE,SAAS,CAAC,WAAW,SAAS;AAAE,CAAC"}
@@ -58,7 +58,7 @@ export declare function watchFight(ai: Brain, squad: Squad, state: TaskState<Fig
58
58
  export declare function inSight(ai: Brain, state: TaskState<FightData, FightMemory>): number | undefined;
59
59
  /** Works out the way round for a task that avoids, as it begins: kept in its memory, said in the decision log */
60
60
  export declare function planRoute(ai: Brain, squad: Squad, state: TaskState<FightData, FightMemory>): void;
61
- /** The capture points of the game (`withCapture`), as the report tells the brain: none for a game without them */
61
+ /** The capture points of the game (`capturePack`), as the report tells the brain: none for a game without them */
62
62
  export declare function capturePointsOf(ai: Brain): {
63
63
  id: string;
64
64
  owner: number | null;
@@ -0,0 +1,137 @@
1
+ import { distSq } from "../../math.js";
2
+ import "../reach.js";
3
+ import { point, where } from "../geometry.js";
4
+ /** Where a task's data says it goes: its target where it is in sight, else its place */
5
+ function placeOf(ai, state) {
6
+ const target = typeof state.data.target === "number" ? ai.view.byId(state.data.target) : void 0;
7
+ if (target) return point(target);
8
+ return state.data.at;
9
+ }
10
+ /** Whether a place is on the map */
11
+ function onMap(ai, at) {
12
+ const { width, depth } = ai.session.terrain;
13
+ return at.x >= 0 && at.z >= 0 && at.x < width && at.z < depth;
14
+ }
15
+ /** What is hostile and alive near a place: what a squad there fights */
16
+ function foesNear(ai, at, radius = 14) {
17
+ return ai.view.hostile.alive().near(at, radius);
18
+ }
19
+ /**
20
+ * Sets a task on its way to fight at its place: by the waypoints of a way round (`avoid`) where there are any, walking
21
+ * them, then attack-moving there; else attack-moving, or attacking its target
22
+ */
23
+ function goFight(ai, squad, state) {
24
+ const at = placeOf(ai, state);
25
+ if (!at) return;
26
+ state.phase = "going";
27
+ state.phaseSince = ai.tick;
28
+ const waypoints = state.memory.waypoints ?? [];
29
+ const target = inSight(ai, state);
30
+ const units = squad.data.units;
31
+ if (waypoints.length) {
32
+ const middle = squad.centre();
33
+ const next = middle ? waypoints.findIndex((each) => distSq(each, middle) > 64) : 0;
34
+ const left = next < 0 ? [] : waypoints.slice(next);
35
+ left.forEach((each, i) => squad.order({
36
+ type: "move",
37
+ point: each
38
+ }, units, i > 0));
39
+ if (left.length) {
40
+ squad.fight(at, units, target, true);
41
+ return;
42
+ }
43
+ }
44
+ squad.fight(at, units, target);
45
+ }
46
+ /**
47
+ * Watches a squad on its way to fight or fighting: done once there with nothing left to fight, or once its target is
48
+ * gone; the units that stand idle short of it sent again
49
+ */
50
+ function watchFight(ai, squad, state) {
51
+ const target = typeof state.data.target === "number" ? state.data.target : void 0;
52
+ if (target !== void 0 && !ai.view.byId(target)) {
53
+ squad.finish("lost");
54
+ return;
55
+ }
56
+ const at = placeOf(ai, state);
57
+ if (!at || !onMap(ai, at)) {
58
+ squad.finish("lost");
59
+ return;
60
+ }
61
+ const middle = squad.centre();
62
+ if (!middle) return;
63
+ const fighting = foesNear(ai, middle).length > 0;
64
+ if (state.phase !== "regrouping") {
65
+ const phase = fighting ? "fighting" : "going";
66
+ if (phase !== state.phase) {
67
+ state.phase = phase;
68
+ state.phaseSince = ai.tick;
69
+ }
70
+ }
71
+ if (!fighting && distSq(middle, at) < 64 && !foesNear(ai, at).length) {
72
+ squad.finish("cleared");
73
+ return;
74
+ }
75
+ if (state.phase === "regrouping" || !squad.mayResend()) return;
76
+ const idle = squad.idleUnits().filter((unit) => distSq(unit, at) >= 64 || foesNear(ai, at).length > 0);
77
+ if (idle.length) squad.fight(at, idle.map((unit) => unit.id), inSight(ai, state));
78
+ }
79
+ /**
80
+ * A task's target where it is in sight, to attack it by name: a building remembered out of sight (`visible: false`)
81
+ * cannot be told to be attacked, and is attack-moved to instead
82
+ */
83
+ function inSight(ai, state) {
84
+ if (typeof state.data.target !== "number") return void 0;
85
+ const entity = ai.view.byId(state.data.target);
86
+ return entity && entity.visible ? entity.id : void 0;
87
+ }
88
+ /** Works out the way round for a task that avoids, as it begins: kept in its memory, said in the decision log */
89
+ function planRoute(ai, squad, state) {
90
+ const via = state.data.via;
91
+ if (via && !state.memory.routed) {
92
+ state.memory.routed = true;
93
+ state.memory.waypoints = [point(via)];
94
+ return;
95
+ }
96
+ if (state.data.avoid !== "army" || state.memory.routed) return;
97
+ state.memory.routed = true;
98
+ const from = squad.centre();
99
+ const to = placeOf(ai, state);
100
+ if (!from || !to) return;
101
+ const { waypoints, note } = ai.squads.route(from, to, squad);
102
+ if (waypoints.length) state.memory.waypoints = waypoints;
103
+ if (note) ai.decide(`squad ${squad.name} ${state.kind}s ${where(to)}: ${note}`, { kind: "squad" });
104
+ }
105
+ /** The capture points of the game (`capturePack`), as the report tells the brain: none for a game without them */
106
+ function capturePointsOf(ai) {
107
+ const listed = ai.view.report?.captures;
108
+ return Array.isArray(listed) ? listed : [];
109
+ }
110
+ /**
111
+ * A walk's think: done (as `done` says) once its middle is near the place, or once all of it stands idle as near as the
112
+ * ground let it go; what stands idle short of it, while others walk on, is sent again
113
+ */
114
+ function arrive(done) {
115
+ return (ai, squad, state) => {
116
+ const at = state.data.at;
117
+ const middle = squad.centre();
118
+ if (!at || !middle) {
119
+ squad.finish(done);
120
+ return;
121
+ }
122
+ const near = Math.max(4, squad.spread() / 2);
123
+ const idle = squad.idleUnits();
124
+ if (distSq(middle, at) <= near * near || ai.tick > state.phaseSince && idle.length === squad.data.units.length && distSq(middle, at) <= squad.spread() * squad.spread() * 4) {
125
+ squad.finish(done);
126
+ return;
127
+ }
128
+ if (idle.length && squad.mayResend()) squad.order({
129
+ type: "move",
130
+ point: at
131
+ }, idle.map((unit) => unit.id));
132
+ };
133
+ }
134
+ //#endregion
135
+ export { arrive, capturePointsOf, foesNear, goFight, inSight, onMap, placeOf, planRoute, watchFight };
136
+
137
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","names":[],"sources":["../../../src/ai/tasks/shared.ts"],"sourcesContent":["/**\n * What the kit's tasks share (design review B10): where a task's data says it goes, what is fighting near a place, how a\n * fight is gone to and watched, a way round, a walk's end\n */\nimport { distSq, type Vec2 } from '#engine/math'\nimport type { Brain } from '../brain'\nimport { point, where } from '../geometry'\nimport { FIGHT_REACH } from '../reach'\nimport type { Squad } from '../squads'\nimport type { TaskDone, TaskState } from '../task'\nimport type { UnitSet } from '../view'\n\n/** How near the place it was sent to a squad is there */\nexport const ARRIVE = 8\n/** How near a place of its round a patrol is there, and a little more for each of its units (they stand round it) */\nexport const PATROL_ARRIVE = 4\n/** How near the place it was sent to look at a scout that stopped short is as near as the ground lets it: further is stuck */\nexport const SCOUT_NEAR = 16\n\n/**\n * What a task that fights somewhere is given (`attack`, `harass`, `creep`): a place, or a target (an entity, as it\n * goes), a way round their army (`avoid: 'army'`) or by a place (`via`)\n *\n * @beta\n */\nexport type FightData = {\n\tat?: Vec2\n\ttarget?: number\n\tavoid?: 'army' | false\n\tvia?: Vec2\n}\n\n/**\n * What a task that fights remembers: its way round, and the worker it hunts (`harass`)\n *\n * @beta\n */\nexport type FightMemory = {\n\trouted?: boolean\n\twaypoints?: Vec2[]\n\tprey?: number\n}\n\n/** Where a task's data says it goes: its target where it is in sight, else its place */\nexport function placeOf(ai: Brain, state: TaskState<FightData, FightMemory>): Vec2 | undefined {\n\tconst target = typeof state.data.target === 'number' ? ai.view.byId(state.data.target) : undefined\n\tif (target) return point(target)\n\treturn state.data.at\n}\n\n/** Whether a place is on the map */\nexport function onMap(ai: Brain, at: Vec2): boolean {\n\tconst { width, depth } = ai.session.terrain\n\treturn at.x >= 0 && at.z >= 0 && at.x < width && at.z < depth\n}\n\n/** What is hostile and alive near a place: what a squad there fights */\nexport function foesNear(ai: Brain, at: Vec2, radius = FIGHT_REACH): UnitSet {\n\treturn ai.view.hostile.alive().near(at, radius)\n}\n\n/**\n * Sets a task on its way to fight at its place: by the waypoints of a way round (`avoid`) where there are any, walking\n * them, then attack-moving there; else attack-moving, or attacking its target\n */\nexport function goFight(ai: Brain, squad: Squad, state: TaskState<FightData, FightMemory>): void {\n\tconst at = placeOf(ai, state)\n\tif (!at) return\n\tstate.phase = 'going'\n\tstate.phaseSince = ai.tick\n\tconst waypoints = state.memory.waypoints ?? []\n\tconst target = inSight(ai, state)\n\tconst units = squad.data.units\n\tif (waypoints.length) {\n\t\t// a waypoint already passed is not gone back to: the squad goes on from the next\n\t\tconst middle = squad.centre()\n\t\tconst next = middle ? waypoints.findIndex((each) => distSq(each, middle) > ARRIVE * ARRIVE) : 0\n\t\tconst left = next < 0 ? [] : waypoints.slice(next)\n\t\tleft.forEach((each, i) => squad.order({ type: 'move', point: each }, units, i > 0))\n\t\tif (left.length) {\n\t\t\tsquad.fight(at, units, target, true)\n\t\t\treturn\n\t\t}\n\t}\n\tsquad.fight(at, units, target)\n}\n\n/**\n * Watches a squad on its way to fight or fighting: done once there with nothing left to fight, or once its target is\n * gone; the units that stand idle short of it sent again\n */\nexport function watchFight(ai: Brain, squad: Squad, state: TaskState<FightData, FightMemory>): void {\n\tconst target = typeof state.data.target === 'number' ? state.data.target : undefined\n\tif (target !== undefined && !ai.view.byId(target)) {\n\t\tsquad.finish('lost')\n\t\treturn\n\t}\n\tconst at = placeOf(ai, state)\n\tif (!at || !onMap(ai, at)) {\n\t\tsquad.finish('lost')\n\t\treturn\n\t}\n\tconst middle = squad.centre()\n\tif (!middle) return\n\tconst fighting = foesNear(ai, middle).length > 0\n\tif (state.phase !== 'regrouping') {\n\t\tconst phase = fighting ? 'fighting' : 'going'\n\t\tif (phase !== state.phase) {\n\t\t\tstate.phase = phase\n\t\t\tstate.phaseSince = ai.tick\n\t\t}\n\t}\n\tif (!fighting && distSq(middle, at) < ARRIVE * ARRIVE && !foesNear(ai, at).length) {\n\t\tsquad.finish('cleared')\n\t\treturn\n\t}\n\tif (state.phase === 'regrouping' || !squad.mayResend()) return\n\t// what stands idle short of the place lost its order (a target fell, a path ended): on to the place again\n\tconst idle = squad.idleUnits().filter((unit) => distSq(unit, at) >= ARRIVE * ARRIVE || foesNear(ai, at).length > 0)\n\tif (idle.length)\n\t\tsquad.fight(\n\t\t\tat,\n\t\t\tidle.map((unit) => unit.id),\n\t\t\tinSight(ai, state)\n\t\t)\n}\n\n/**\n * A task's target where it is in sight, to attack it by name: a building remembered out of sight (`visible: false`)\n * cannot be told to be attacked, and is attack-moved to instead\n */\nexport function inSight(ai: Brain, state: TaskState<FightData, FightMemory>): number | undefined {\n\tif (typeof state.data.target !== 'number') return undefined\n\tconst entity = ai.view.byId(state.data.target)\n\treturn entity && entity.visible ? entity.id : undefined\n}\n\n/** Works out the way round for a task that avoids, as it begins: kept in its memory, said in the decision log */\nexport function planRoute(ai: Brain, squad: Squad, state: TaskState<FightData, FightMemory>): void {\n\t// a way of its own, given: by that place\n\tconst via = state.data.via\n\tif (via && !state.memory.routed) {\n\t\tstate.memory.routed = true\n\t\tstate.memory.waypoints = [point(via)]\n\t\treturn\n\t}\n\tif (state.data.avoid !== 'army' || state.memory.routed) return\n\tstate.memory.routed = true\n\tconst from = squad.centre()\n\tconst to = placeOf(ai, state)\n\tif (!from || !to) return\n\tconst { waypoints, note } = ai.squads.route(from, to, squad)\n\tif (waypoints.length) state.memory.waypoints = waypoints\n\tif (note) ai.decide(`squad ${squad.name} ${state.kind}s ${where(to)}: ${note}`, { kind: 'squad' })\n}\n\n/** The capture points of the game (`capturePack`), as the report tells the brain: none for a game without them */\nexport function capturePointsOf(ai: Brain): { id: string; owner: number | null; x: number; z: number }[] {\n\tconst listed = (ai.view.report as { captures?: unknown } | undefined)?.captures\n\treturn Array.isArray(listed) ? (listed as { id: string; owner: number | null; x: number; z: number }[]) : []\n}\n\n/**\n * A walk's think: done (as `done` says) once its middle is near the place, or once all of it stands idle as near as the\n * ground let it go; what stands idle short of it, while others walk on, is sent again\n */\nexport function arrive(done: TaskDone): (ai: Brain, squad: Squad, state: TaskState<{ at?: Vec2 }>) => void {\n\treturn (ai, squad, state) => {\n\t\tconst at = state.data.at\n\t\tconst middle = squad.centre()\n\t\tif (!at || !middle) {\n\t\t\tsquad.finish(done)\n\t\t\treturn\n\t\t}\n\t\tconst near = Math.max(ARRIVE / 2, squad.spread() / 2)\n\t\tconst idle = squad.idleUnits()\n\t\tif (\n\t\t\tdistSq(middle, at) <= near * near ||\n\t\t\t(ai.tick > state.phaseSince && idle.length === squad.data.units.length && distSq(middle, at) <= squad.spread() * squad.spread() * 4)\n\t\t) {\n\t\t\tsquad.finish(done)\n\t\t\treturn\n\t\t}\n\t\tif (idle.length && squad.mayResend())\n\t\t\tsquad.order(\n\t\t\t\t{ type: 'move', point: at },\n\t\t\t\tidle.map((unit) => unit.id)\n\t\t\t)\n\t}\n}\n"],"mappings":"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"}
package/dist/ai/team.d.ts CHANGED
@@ -9,9 +9,11 @@ import { type AiModuleDef } from './module';
9
9
  export interface TeamRequest {
10
10
  /** Its number on the board */
11
11
  id: number;
12
+ /** What is asked: help, an attack, a defence or a rally */
12
13
  kind: 'help' | 'attack' | 'defend' | 'rally';
13
14
  /** Who asks: a computer of the team, or a person whose ping or plight it is */
14
15
  from: PlayerId;
16
+ /** Where the help is asked, in cells */
15
17
  at: Vec2;
16
18
  /** The enemy strength seen there as it was asked (0 for none seen: a ping on a place) */
17
19
  strength: number;
@@ -28,11 +30,15 @@ export interface TeamRequest {
28
30
  * @beta
29
31
  */
30
32
  export interface AttackPlan {
33
+ /** Where the attack goes, in cells */
31
34
  target: Vec2;
32
35
  /** The tick the waves go at */
33
36
  at: number;
37
+ /** The player who proposed the attack */
34
38
  by: PlayerId;
39
+ /** The computers that joined the attack */
35
40
  joined: PlayerId[];
41
+ /** The computers that declined it */
36
42
  declined: PlayerId[];
37
43
  /** The tick it was proposed at */
38
44
  since: number;
@@ -43,8 +49,11 @@ export interface AttackPlan {
43
49
  * @beta
44
50
  */
45
51
  export interface TeamBoard {
52
+ /** The version of the board's format: 1 so far */
46
53
  v: 1;
54
+ /** The requests on the board */
47
55
  requests: TeamRequest[];
56
+ /** The attack the computers agreed on; nothing when there is none */
48
57
  plan?: AttackPlan;
49
58
  /** What each computer of the team remembers of the enemy's bases, and when it last thought */
50
59
  known: Record<string, {
@@ -68,7 +77,7 @@ export interface TeamOptions {
68
77
  /** Whether it helps its allies, people and computers, where asked (the classic Defend Users): yes when left out */
69
78
  defendUsers?: boolean;
70
79
  /**
71
- * Whether it does what an ally's ping asks besides help (`GameRules.talk.pings.meanings`): a squad sent to fight at
80
+ * Whether it does what an ally's ping asks besides help (`RuleSettings.talk.pings.meanings`): a squad sent to fight at
72
81
  * an `attack` (a push), one to hold a place at a `defend` (a hold), its squads out brought home at a `rally` (a
73
82
  * retreat). Yes when left out
74
83
  */
@@ -95,8 +104,11 @@ export interface TeamOptions {
95
104
  * @beta
96
105
  */
97
106
  export interface TeamPlayMemory {
107
+ /** The version of the memory's format: 1 so far */
98
108
  v: 1;
109
+ /** Up to which board request, by number, it heard */
99
110
  heard: number;
111
+ /** When it last said each line, by line */
100
112
  said: Record<string, number>;
101
113
  }
102
114
  /**
@@ -106,8 +118,11 @@ export interface TeamPlayMemory {
106
118
  * @beta
107
119
  */
108
120
  export interface TeamReport {
121
+ /** The team's number */
109
122
  team: number;
123
+ /** The computer players of the team */
110
124
  computers: PlayerId[];
125
+ /** The requests on the board, each with its number, kind, who asked, where, strength, source, who answered and how long is left */
111
126
  requests: {
112
127
  id: number;
113
128
  kind: TeamRequest['kind'];
@@ -118,6 +133,7 @@ export interface TeamReport {
118
133
  answered: PlayerId[];
119
134
  left: number;
120
135
  }[];
136
+ /** The attack together, with its target, how many seconds off it is, who proposed it, who joined and who declined */
121
137
  plan?: {
122
138
  target: [number, number];
123
139
  in: number;
@@ -125,6 +141,7 @@ export interface TeamReport {
125
141
  joined: PlayerId[];
126
142
  declined: PlayerId[];
127
143
  };
144
+ /** How many enemy bases the team knows */
128
145
  enemyBases: number;
129
146
  }
130
147
  /**