@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
package/dist/attacks.d.ts CHANGED
@@ -18,7 +18,7 @@ export declare function reaches(targets: AttackDef['targets'], target: {
18
18
  export declare function attackStat(stats: Readonly<Stats>, attack: AttackDef | undefined, which: keyof AttackStats): number;
19
19
  /**
20
20
  * The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:
21
- * the engine's `GameRules.combat.pickAttack`
21
+ * the engine's `RuleSettings.combat.pickAttack`
22
22
  *
23
23
  * @beta
24
24
  */
@@ -32,14 +32,14 @@ export declare function defaultPickAttack(world: World, attacker: Entity, target
32
32
  export declare function tooNear(attacker: Entity, target: Entity, weapon: number): boolean;
33
33
  /**
34
34
  * Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick
35
- * it (`GameRules.combat.pickAttack`): -1 for none, its attacks reach not where the target is
35
+ * it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is
36
36
  *
37
37
  * @beta
38
38
  */
39
39
  export declare function pickAttack(world: World, attacker: Entity, target: Entity): number;
40
40
  /**
41
41
  * The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's
42
- * `GameRules.combat.acquisitionRange`. 0 for what does not attack
42
+ * `RuleSettings.combat.acquisitionRange`. 0 for what does not attack
43
43
  *
44
44
  * @beta
45
45
  */
@@ -0,0 +1,127 @@
1
+ import { statsOf } from "./stats.js";
2
+ import { edgeDistance } from "./entity.js";
3
+ import { layerOf } from "./abilities/buffs.js";
4
+ //#region src/attacks.ts
5
+ var KINDS = [
6
+ "unit",
7
+ "building",
8
+ "resource"
9
+ ];
10
+ /**
11
+ * Whether an attack that is for these targets is for this one
12
+ *
13
+ * @beta
14
+ */
15
+ function reaches(targets, target, layer) {
16
+ const flying = layer ? layer === "air" : target.def.flying === true;
17
+ if (!targets) return !flying;
18
+ if (flying ? !targets.includes("air") : targets.includes("air") && !targets.includes("ground")) return false;
19
+ return targets.includes(target.def.kind) || !targets.some((entry) => KINDS.includes(entry));
20
+ }
21
+ /**
22
+ * The stats an attack reads when it names none of its own (`AttackDef.stats`)
23
+ *
24
+ * @internal
25
+ */
26
+ var ATTACK_STATS = Object.freeze({
27
+ damage: "attackDamage",
28
+ speed: "attackSpeed",
29
+ range: "attackRange"
30
+ });
31
+ /**
32
+ * How hard, how fast or how far an attack hits, from the attacker's stats: the stat the attack names
33
+ * (`AttackDef.stats`), or the unit's own (`attackDamage`, `attackSpeed`, `attackRange`). The unit's own for no attack
34
+ *
35
+ * @beta
36
+ */
37
+ function attackStat(stats, attack, which) {
38
+ return stats[attack?.stats?.[which] ?? ATTACK_STATS[which]] ?? 0;
39
+ }
40
+ /**
41
+ * The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:
42
+ * the engine's `RuleSettings.combat.pickAttack`
43
+ *
44
+ * @beta
45
+ */
46
+ function defaultPickAttack(world, attacker, target) {
47
+ const attacks = attacker.def.attacks;
48
+ if (!attacks) return -1;
49
+ const layer = target.flying ? layerOf(world, target) : "ground";
50
+ let reaching = -1;
51
+ let distance = -1;
52
+ for (let i = 0; i < attacks.length; i++) {
53
+ if (!reaches(attacks[i].targets, target, layer)) continue;
54
+ const near = attacks[i].minRange;
55
+ if (!near) return i;
56
+ if (distance < 0) distance = edgeDistance(attacker, target);
57
+ if (distance >= near) return i;
58
+ if (reaching < 0) reaching = i;
59
+ }
60
+ return reaching;
61
+ }
62
+ /**
63
+ * Whether a target is too near for one of an attacker's attacks (`AttackDef.minRange`), by place in its attacks: within
64
+ * its dead zone, edge to edge
65
+ *
66
+ * @beta
67
+ */
68
+ function tooNear(attacker, target, weapon) {
69
+ const near = attacker.def.attacks?.[weapon]?.minRange;
70
+ return !!near && edgeDistance(attacker, target) < near;
71
+ }
72
+ /**
73
+ * Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick
74
+ * it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is
75
+ *
76
+ * @beta
77
+ */
78
+ function pickAttack(world, attacker, target) {
79
+ return attacker.def.attacks?.length ? world.settings.combat.pickAttack(world, attacker, target) : -1;
80
+ }
81
+ /**
82
+ * The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's
83
+ * `RuleSettings.combat.acquisitionRange`. 0 for what does not attack
84
+ *
85
+ * @beta
86
+ */
87
+ function farthestAcquisition(def) {
88
+ let most = 0;
89
+ for (const attack of def.attacks ?? []) if (attack.acquisitionRange > most) most = attack.acquisitionRange;
90
+ return most;
91
+ }
92
+ /**
93
+ * How far the farthest of a unit's attacks reaches, by its stats (its `attackRange`, or a stat an attack names): what
94
+ * it may hit anything from. 0 for what does not attack
95
+ *
96
+ * @beta
97
+ */
98
+ function farthestReach(def, stats) {
99
+ const attacks = def.attacks;
100
+ if (!attacks?.length) return 0;
101
+ let most = attackStat(stats, attacks[0], "range");
102
+ for (let i = 1; i < attacks.length; i++) most = Math.max(most, attackStat(stats, attacks[i], "range"));
103
+ return most;
104
+ }
105
+ /**
106
+ * How far an attacker's attack reaches a target: the range of the one it uses against it (`pickAttack`), the first's
107
+ * when none does
108
+ *
109
+ * @beta
110
+ */
111
+ function rangeAgainst(world, attacker, target) {
112
+ const attacks = attacker.def.attacks;
113
+ const attack = attacks && attacks.length > 1 ? attacks[Math.max(pickAttack(world, attacker, target), 0)] : attacks?.[0];
114
+ return attackStat(statsOf(world, attacker), attack, "range");
115
+ }
116
+ /**
117
+ * The first of a type's attacks that can be told to attack the ground (`AttackDef.ground`), by place, or -1 for none
118
+ *
119
+ * @beta
120
+ */
121
+ function groundAttack(def) {
122
+ return def.attacks?.findIndex((attack) => attack.ground) ?? -1;
123
+ }
124
+ //#endregion
125
+ export { ATTACK_STATS, attackStat, defaultPickAttack, farthestAcquisition, farthestReach, groundAttack, pickAttack, rangeAgainst, reaches, tooNear };
126
+
127
+ //# sourceMappingURL=attacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attacks.js","names":[],"sources":["../src/attacks.ts"],"sourcesContent":["import { layerOf } from '#engine/abilities/buffs'\nimport type { AttackDef, AttackStats, Layer, Stats, UnitTypeDef } from '#engine/defs'\nimport { edgeDistance, type Entity } from '#engine/entity'\nimport { statsOf } from '#engine/stats'\nimport type { World } from '#engine/world'\n\n/*\n * A unit's attacks (`UnitTypeDef.attacks`, the classic RTS two weapons): what each reaches, which one it uses against\n * a target, and its numbers by the stats it reads. Apart from the combat system, for what counts room and reach\n * (`engagement.ts`, the stances pack) to ask without loading it\n */\n\nconst KINDS = ['unit', 'building', 'resource']\n\n/**\n * Whether an attack that is for these targets is for this one\n *\n * @beta\n */\nexport function reaches(targets: AttackDef['targets'], target: { def: UnitTypeDef }, layer?: Layer): boolean {\n\tconst flying = layer ? layer === 'air' : target.def.flying === true\n\tif (!targets) return !flying\n\tif (flying ? !targets.includes('air') : targets.includes('air') && !targets.includes('ground')) return false\n\t// kinds only count when some are named\n\treturn targets.includes(target.def.kind) || !targets.some((entry) => KINDS.includes(entry))\n}\n\n/**\n * The stats an attack reads when it names none of its own (`AttackDef.stats`)\n *\n * @internal\n */\nexport const ATTACK_STATS: Readonly<Required<AttackStats>> = Object.freeze({ damage: 'attackDamage', speed: 'attackSpeed', range: 'attackRange' })\n\n/**\n * How hard, how fast or how far an attack hits, from the attacker's stats: the stat the attack names\n * (`AttackDef.stats`), or the unit's own (`attackDamage`, `attackSpeed`, `attackRange`). The unit's own for no attack\n *\n * @beta\n */\nexport function attackStat(stats: Readonly<Stats>, attack: AttackDef | undefined, which: keyof AttackStats): number {\n\treturn stats[attack?.stats?.[which] ?? ATTACK_STATS[which]] ?? 0\n}\n\n/**\n * The first of an attacker's attacks that reaches the target where it is (its `targets`), by place, or -1 for none:\n * the engine's `RuleSettings.combat.pickAttack`\n *\n * @beta\n */\nexport function defaultPickAttack(world: World, attacker: Entity, target: Entity): number {\n\tconst attacks = attacker.def.attacks\n\tif (!attacks) return -1\n\tconst layer = target.flying ? layerOf(world, target) : 'ground'\n\t// the first that reaches where it is and of which it is not too near (`AttackDef.minRange`); else the first that\n\t// reaches where it is, too near or not (the unit steps back to use it)\n\tlet reaching = -1\n\tlet distance = -1\n\tfor (let i = 0; i < attacks.length; i++) {\n\t\tif (!reaches(attacks[i].targets, target, layer)) continue\n\t\tconst near = attacks[i].minRange\n\t\tif (!near) return i\n\t\tif (distance < 0) distance = edgeDistance(attacker, target)\n\t\tif (distance >= near) return i\n\t\tif (reaching < 0) reaching = i\n\t}\n\treturn reaching\n}\n\n/**\n * Whether a target is too near for one of an attacker's attacks (`AttackDef.minRange`), by place in its attacks: within\n * its dead zone, edge to edge\n *\n * @beta\n */\nexport function tooNear(attacker: Entity, target: Entity, weapon: number): boolean {\n\tconst near = attacker.def.attacks?.[weapon]?.minRange\n\treturn !!near && edgeDistance(attacker, target) < near\n}\n\n/**\n * Which of an attacker's attacks it uses against a target, by place in `UnitTypeDef.attacks`, as the game's rules pick\n * it (`RuleSettings.combat.pickAttack`): -1 for none, its attacks reach not where the target is\n *\n * @beta\n */\nexport function pickAttack(world: World, attacker: Entity, target: Entity): number {\n\treturn attacker.def.attacks?.length ? world.settings.combat.pickAttack(world, attacker, target) : -1\n}\n\n/**\n * The farthest any attack of a type looks for enemies by itself (`AttackDef.acquisitionRange`): the engine's\n * `RuleSettings.combat.acquisitionRange`. 0 for what does not attack\n *\n * @beta\n */\nexport function farthestAcquisition(def: UnitTypeDef): number {\n\tlet most = 0\n\tfor (const attack of def.attacks ?? []) if (attack.acquisitionRange > most) most = attack.acquisitionRange\n\treturn most\n}\n\n/**\n * How far the farthest of a unit's attacks reaches, by its stats (its `attackRange`, or a stat an attack names): what\n * it may hit anything from. 0 for what does not attack\n *\n * @beta\n */\nexport function farthestReach(def: UnitTypeDef, stats: Readonly<Stats>): number {\n\tconst attacks = def.attacks\n\tif (!attacks?.length) return 0\n\tlet most = attackStat(stats, attacks[0], 'range')\n\tfor (let i = 1; i < attacks.length; i++) most = Math.max(most, attackStat(stats, attacks[i], 'range'))\n\treturn most\n}\n\n/**\n * How far an attacker's attack reaches a target: the range of the one it uses against it (`pickAttack`), the first's\n * when none does\n *\n * @beta\n */\nexport function rangeAgainst(world: World, attacker: Entity, target: Entity): number {\n\tconst attacks = attacker.def.attacks\n\tconst attack = attacks && attacks.length > 1 ? attacks[Math.max(pickAttack(world, attacker, target), 0)] : attacks?.[0]\n\treturn attackStat(statsOf(world, attacker), attack, 'range')\n}\n\n/**\n * The first of a type's attacks that can be told to attack the ground (`AttackDef.ground`), by place, or -1 for none\n *\n * @beta\n */\nexport function groundAttack(def: UnitTypeDef): number {\n\treturn def.attacks?.findIndex((attack) => attack.ground) ?? -1\n}\n"],"mappings":";;;;AAYA,IAAM,QAAQ;CAAC;CAAQ;CAAY;AAAU;;;;;;AAO7C,SAAgB,QAAQ,SAA+B,QAA8B,OAAwB;CAC5G,MAAM,SAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,WAAW;CAC/D,IAAI,CAAC,SAAS,OAAO,CAAC;CACtB,IAAI,SAAS,CAAC,QAAQ,SAAS,KAAK,IAAI,QAAQ,SAAS,KAAK,KAAK,CAAC,QAAQ,SAAS,QAAQ,GAAG,OAAO;CAEvG,OAAO,QAAQ,SAAS,OAAO,IAAI,IAAI,KAAK,CAAC,QAAQ,MAAM,UAAU,MAAM,SAAS,KAAK,CAAC;AAC3F;;;;;;AAOA,IAAa,eAAgD,OAAO,OAAO;CAAE,QAAQ;CAAgB,OAAO;CAAe,OAAO;AAAc,CAAC;;;;;;;AAQjJ,SAAgB,WAAW,OAAwB,QAA+B,OAAkC;CACnH,OAAO,MAAM,QAAQ,QAAQ,UAAU,aAAa,WAAW;AAChE;;;;;;;AAQA,SAAgB,kBAAkB,OAAc,UAAkB,QAAwB;CACzF,MAAM,UAAU,SAAS,IAAI;CAC7B,IAAI,CAAC,SAAS,OAAO;CACrB,MAAM,QAAQ,OAAO,SAAS,QAAQ,OAAO,MAAM,IAAI;CAGvD,IAAI,WAAW;CACf,IAAI,WAAW;CACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACxC,IAAI,CAAC,QAAQ,QAAQ,EAAE,CAAC,SAAS,QAAQ,KAAK,GAAG;EACjD,MAAM,OAAO,QAAQ,EAAE,CAAC;EACxB,IAAI,CAAC,MAAM,OAAO;EAClB,IAAI,WAAW,GAAG,WAAW,aAAa,UAAU,MAAM;EAC1D,IAAI,YAAY,MAAM,OAAO;EAC7B,IAAI,WAAW,GAAG,WAAW;CAC9B;CACA,OAAO;AACR;;;;;;;AAQA,SAAgB,QAAQ,UAAkB,QAAgB,QAAyB;CAClF,MAAM,OAAO,SAAS,IAAI,UAAU,OAAO,EAAE;CAC7C,OAAO,CAAC,CAAC,QAAQ,aAAa,UAAU,MAAM,IAAI;AACnD;;;;;;;AAQA,SAAgB,WAAW,OAAc,UAAkB,QAAwB;CAClF,OAAO,SAAS,IAAI,SAAS,SAAS,MAAM,SAAS,OAAO,WAAW,OAAO,UAAU,MAAM,IAAI;AACnG;;;;;;;AAQA,SAAgB,oBAAoB,KAA0B;CAC7D,IAAI,OAAO;CACX,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,GAAG,IAAI,OAAO,mBAAmB,MAAM,OAAO,OAAO;CAC1F,OAAO;AACR;;;;;;;AAQA,SAAgB,cAAc,KAAkB,OAAgC;CAC/E,MAAM,UAAU,IAAI;CACpB,IAAI,CAAC,SAAS,QAAQ,OAAO;CAC7B,IAAI,OAAO,WAAW,OAAO,QAAQ,IAAI,OAAO;CAChD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,OAAO,KAAK,IAAI,MAAM,WAAW,OAAO,QAAQ,IAAI,OAAO,CAAC;CACrG,OAAO;AACR;;;;;;;AAQA,SAAgB,aAAa,OAAc,UAAkB,QAAwB;CACpF,MAAM,UAAU,SAAS,IAAI;CAC7B,MAAM,SAAS,WAAW,QAAQ,SAAS,IAAI,QAAQ,KAAK,IAAI,WAAW,OAAO,UAAU,MAAM,GAAG,CAAC,KAAK,UAAU;CACrH,OAAO,WAAW,QAAQ,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAC5D;;;;;;AAOA,SAAgB,aAAa,KAA0B;CACtD,OAAO,IAAI,SAAS,WAAW,WAAW,OAAO,MAAM,KAAK;AAC7D"}
@@ -0,0 +1,267 @@
1
+ import type { DamageType } from './defs';
2
+ import { type Entity, type EntityId } from './entity';
3
+ import { type Cancellable } from './hooks';
4
+ import type { GamePack } from './packs/pack';
5
+ import type { World } from './world';
6
+ /**
7
+ * The burning pack's id (`burningPack`), for `hasPack`
8
+ *
9
+ * @beta
10
+ */
11
+ export declare const BURNING = "burning";
12
+ /**
13
+ * How a thing burns (`UnitTypeDef.burns`, `BurningOptions`): for how long, what is left of it, whether its wood is kept,
14
+ * and what kind of burning it is. What a type does not say is the pack's, then what each field says it is when left
15
+ * out. Plain data: the editor writes it
16
+ *
17
+ * @beta
18
+ */
19
+ export interface BurnsDef {
20
+ /** Seconds it burns before it is burnt down: 20 when left out */
21
+ seconds?: number;
22
+ /**
23
+ * What is left once it has burnt down: `felled` (it comes down, as a tree a blast brings down: the death's reason is
24
+ * `felled`), `nothing` (it burns away: the reason is `burnt`), or the id of a unit type put down where it stood (a
25
+ * charred stump, a heap of ash: the reason `burnt` too). `felled` when left out
26
+ */
27
+ leaves?: 'felled' | 'nothing' | (string & {});
28
+ /**
29
+ * Whether what it leaves keeps its wood: a resource left in its place (`leaves` a type with `resource`) holds what
30
+ * it had left of its own. No when left out, and what is left holds what its type says
31
+ */
32
+ wood?: boolean;
33
+ /**
34
+ * What kind of burning it is, for the screen (the look's `burning.how`) and its death (`death.how`): `burnt` when
35
+ * left out. Another word for another kind: a blight that withers it, frost that shatters it
36
+ */
37
+ how?: string;
38
+ }
39
+ /**
40
+ * How fire passes from a burning thing to what burns about it (`BurningOptions.spread`): how far, how likely, how much
41
+ * the wind decides, how often it tries. It passes to what stands (trees, buildings, a wall): a unit that burns is set
42
+ * alight by a call or an ability alone
43
+ *
44
+ * @beta
45
+ */
46
+ export interface BurningSpread {
47
+ /** How far it reaches, edge to edge, in cells: 1.5 when left out */
48
+ reach?: number;
49
+ /** How likely a try is to light one thing within reach in still air, 0 to 1: 0.15 when left out */
50
+ chance?: number;
51
+ /** How much the wind decides which way it goes (`MapEnvironment.wind`), 0 (not at all) and up: 1 when left out */
52
+ wind?: number;
53
+ /** Seconds between a burning thing's tries: 1 when left out */
54
+ every?: number;
55
+ }
56
+ /**
57
+ * What the burning pack is made with (`burningPack`): what burns, how (the defaults of `BurnsDef`, under what a type
58
+ * says), whether fire passes from one thing to the next, what it does to those who stand by, and how much may burn
59
+ *
60
+ * @beta
61
+ */
62
+ export interface BurningOptions extends BurnsDef {
63
+ /**
64
+ * What burns, and how, in code: `true` (as its type and the pack say), a `BurnsDef` over those, or `false`. Where it
65
+ * says nothing, its type's `burns`; where that says nothing, what can be felled (`fellable`: trees)
66
+ */
67
+ burns?: (world: World, entity: Entity) => boolean | BurnsDef | undefined;
68
+ /** Whether a burning thing lights what burns about it (`BurningSpread`): `true` for the defaults. Never when left out */
69
+ spread?: BurningSpread | boolean;
70
+ /**
71
+ * Damage a second to units on the ground within `damageReach` of a burning thing, by whoever lit it (the first of
72
+ * those about it, in order of their ids): none when left out. Dealt twice a second, each unit on a turn of its own
73
+ */
74
+ damage?: number;
75
+ /** How far its heat hurts, edge to edge, in cells: 1 when left out */
76
+ damageReach?: number;
77
+ /** The type that damage is dealt as: magic when left out */
78
+ damageType?: DamageType;
79
+ /** The most things that burn at once: past it, nothing more catches until something has burnt down. 2000 when left out */
80
+ maxBurning?: number;
81
+ /**
82
+ * Whether a burning thing may set alight the grass about it, in a game with the foliage pack too (`foliagePack`):
83
+ * the cells under it and one cell round, of every layer of that pack, or of those named. No when left out. It
84
+ * passes as fire does, not at once: once a second while it burns, each cell by a chance of its own (0.2 for a style
85
+ * of `flammable` 1 in still, dry air, likelier downwind), asked of the game (`foliageIgnite`, `cause: 'burning'`),
86
+ * under the most that may burn there (`FoliageFire.maxBurning`). What caught is set alight at the end of this pack's
87
+ * turn, and tries nothing before its own next turn. The other way is that pack's to say (`FoliageFire.lights`)
88
+ */
89
+ lightsFoliage?: boolean | readonly string[];
90
+ }
91
+ /**
92
+ * What sets a thing alight: set alight by a call or an ability (`light`), caught from a burning thing about it
93
+ * (`spread`), or from burning grass (`foliage`)
94
+ *
95
+ * @beta
96
+ */
97
+ export type BurnCause = 'light' | 'spread' | 'foliage';
98
+ /**
99
+ * A thing about to catch fire (the `burnStart` hook): `cancel()` keeps it from catching; `chance` is a handler's to
100
+ * change (a wet grove, a building that does not burn while it is being built). Asked once a try
101
+ *
102
+ * @beta
103
+ */
104
+ export interface BurnStart extends Cancellable {
105
+ /** What is about to catch */
106
+ readonly entity: Entity;
107
+ /** How it catches */
108
+ readonly cause: BurnCause;
109
+ /** The burning thing it catches from, for a spread */
110
+ readonly from?: Entity;
111
+ /** The layer of grass of the burning cell it catches from, for one caught from grass (`foliage`) */
112
+ readonly layer?: string;
113
+ /** The burning cell it catches from, by its index in that layer, for one caught from grass (`foliage`) */
114
+ readonly cell?: number;
115
+ /** Who set alight the fire it is of, where someone did */
116
+ readonly by?: Entity;
117
+ /** What kind of burning it is (`BurnsDef.how`) */
118
+ readonly how: string;
119
+ /**
120
+ * How likely it is to catch, 0 to 1: 1 for one set alight, the spread's chance in the wind for one caught from a
121
+ * burning thing, the grass's for one caught from grass (`FoliageFire.lights`). What a handler leaves it at is held
122
+ * to 0 to 1 (more than 1 is sure, less than 0 never)
123
+ */
124
+ chance: number;
125
+ }
126
+ /**
127
+ * Asked before a thing catches fire (`BurnStart`): a handler refuses it or changes its chance. Once for every try:
128
+ * of a call, a spread, or grass burning beside it; so a handler does little
129
+ *
130
+ * @beta
131
+ */
132
+ export declare const burnStart: import("./hooks").HookKey<BurnStart>;
133
+ /**
134
+ * Something caught fire: how, who lit the fire it is of, what kind of burning it is. What a game's rules and its computer
135
+ * players hear; the screens are told by what burns (`onFire`)
136
+ *
137
+ * @beta
138
+ */
139
+ export declare const burnStarted: import("./events").EventKey<{
140
+ entity: EntityId;
141
+ cause: BurnCause;
142
+ how: string;
143
+ by?: EntityId;
144
+ }>;
145
+ /**
146
+ * Something burnt down: what kind of burning it was, who lit it, and what it left where it stood (`BurnsDef.leaves`), where
147
+ * it left a thing
148
+ *
149
+ * @beta
150
+ */
151
+ export declare const burnt: import("./events").EventKey<{
152
+ entity: EntityId;
153
+ how: string;
154
+ by?: EntityId;
155
+ left?: EntityId;
156
+ }>;
157
+ /**
158
+ * Something that burnt was put out (`putOut`, an ability): it stands, charred as far as it burnt
159
+ *
160
+ * @beta
161
+ */
162
+ export declare const burnPutOut: import("./events").EventKey<{
163
+ entity: EntityId;
164
+ }>;
165
+ /**
166
+ * What burns, as everyone who sees it is told (`onFire`): the kind of burning, the tick it started and the tick it burns
167
+ * down at; `out`, the tick it was put out at, for one that burns no more (charred as far as it came: `(out - since) /
168
+ * (ends - since)`). A screen draws how far it has burnt from these and its own tick, with nothing sent as it goes
169
+ *
170
+ * @beta
171
+ */
172
+ export interface FireShown {
173
+ /** What kind of burning it is (`BurnsDef.how`) */
174
+ how: string;
175
+ /** The tick it started to burn at: as far back as it had burnt already, for one lit again */
176
+ since: number;
177
+ /** The tick it burns down at */
178
+ ends: number;
179
+ /** The tick it was put out at, for one that burns no more */
180
+ out?: number;
181
+ }
182
+ /**
183
+ * What burns or burnt and was put out, on the thing itself (`FireShown`): told to everyone who sees it as it is (no
184
+ * part of it one player's, so that what a team remembers of a tree is the same for each of them), kept by a save.
185
+ * `snapshotOf(entity.state, onFire)` on a screen; `isBurning` and `burningOf` in the rules
186
+ *
187
+ * @beta
188
+ */
189
+ export declare const onFire: import("./components").Component<FireShown, FireShown>;
190
+ /**
191
+ * Sets a thing alight: it burns for its time (`BurnsDef.seconds`), then burns down and leaves what it leaves
192
+ * (`BurnsDef.leaves`). `by`: who lit it, whom its damage and its kill are by; `how`: another kind of burning than its
193
+ * own; `seconds`: another time. The game is asked first (`burnStart`). One that burns already, does not burn, or is
194
+ * past the most that may burn at once (`BurningOptions.maxBurning`) does not catch. One put out before goes on from
195
+ * as far as it had burnt. Whether it caught
196
+ *
197
+ * @beta
198
+ */
199
+ export declare function setAlight(world: World, entity: Entity, options?: {
200
+ by?: Entity;
201
+ how?: string;
202
+ seconds?: number;
203
+ }): boolean;
204
+ /**
205
+ * Puts out a thing that burns: it stands, charred as far as it burnt, and may be set alight again. Whether it burnt
206
+ *
207
+ * @beta
208
+ */
209
+ export declare function putOut(world: World, entity: Entity): boolean;
210
+ /**
211
+ * Whether a thing burns now: not one put out, nor one burnt down (or killed by other means while it burnt)
212
+ *
213
+ * @beta
214
+ */
215
+ export declare function isBurning(entity: Entity): boolean;
216
+ /**
217
+ * What the rules know of a thing that burns, or burnt and was put out (`burningOf`)
218
+ *
219
+ * @beta
220
+ */
221
+ export interface BurningInfo {
222
+ /** Whether it burns now (`isBurning`): false for one put out, or burnt down */
223
+ burning: boolean;
224
+ /** What kind of burning it is (`BurnsDef.how`) */
225
+ how: string;
226
+ /** How far it has burnt, 0 (just caught) to 1 (about to burn down) */
227
+ share: number;
228
+ /** Seconds it still burns: 0 for one put out, or burnt down */
229
+ left: number;
230
+ /** Who set alight the fire it is of, where someone did */
231
+ by?: EntityId;
232
+ }
233
+ /**
234
+ * What the rules know of a thing that burns or burnt (`BurningInfo`): none for one that never caught
235
+ *
236
+ * @beta
237
+ */
238
+ export declare function burningOf(world: World, entity: Entity): BurningInfo | undefined;
239
+ /**
240
+ * The ids of what burns now, in order: for a game's rules and its computer players (one killed by other means, a
241
+ * catapult's blast, is taken out within a second). Not to be kept or changed: the pack's own list
242
+ *
243
+ * @beta
244
+ */
245
+ export declare function burningThings(world: World): readonly EntityId[];
246
+ /**
247
+ * Whether a thing burns at all in a world's game (`BurningOptions.burns`, `UnitTypeDef.burns`, trees): false in a game
248
+ * without the burning pack
249
+ *
250
+ * @beta
251
+ */
252
+ export declare function canBurn(world: World, entity: Entity): boolean;
253
+ /**
254
+ * Things that burn (`BurningOptions`): trees by default (what can be felled), any type that says `burns`
255
+ * (`UnitTypeDef.burns`: a wooden wall, a hut), or what the game decides in code. Set alight by `setAlight`, an ability
256
+ * (`{ type: 'burn', act: 'light' }`), the grass's fire (`FoliageFire.lights`) or one another (`spread`), a thing burns
257
+ * for its seconds and burns down: felled, burnt away, or leaving a thing of its own (a charred stump), with or
258
+ * without its wood. Put out with `putOut`. Its look says what plays on it while it burns (`UnitLook.burning`: fire
259
+ * by default, or a game's own effect for its own kind of burning, `how`). Off unless a game turns it on:
260
+ *
261
+ * export const rules = { ...myGame, packs: [burningPack({ spread: { chance: 0.2 }, damage: 10 })] }
262
+ *
263
+ * What burns is not woken (`world.wake`): a forest costs nothing a tick while nothing in it burns
264
+ *
265
+ * @beta
266
+ */
267
+ export declare function burningPack(options?: BurningOptions): GamePack;