@v12-engine/engine 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (951) hide show
  1. package/dist/abilities/amounts.d.ts +28 -0
  2. package/dist/abilities/amounts.js +74 -0
  3. package/dist/abilities/amounts.js.map +1 -0
  4. package/dist/abilities/buffs.d.ts +106 -6
  5. package/dist/abilities/buffs.js +443 -0
  6. package/dist/abilities/buffs.js.map +1 -0
  7. package/dist/abilities/castTold.d.ts +2 -0
  8. package/dist/abilities/castTold.js +66 -0
  9. package/dist/abilities/castTold.js.map +1 -0
  10. package/dist/abilities/chance.d.ts +38 -0
  11. package/dist/abilities/chance.js +77 -0
  12. package/dist/abilities/chance.js.map +1 -0
  13. package/dist/abilities/charges.d.ts +18 -0
  14. package/dist/abilities/charges.js +101 -0
  15. package/dist/abilities/charges.js.map +1 -0
  16. package/dist/abilities/control.d.ts +28 -0
  17. package/dist/abilities/control.js +113 -0
  18. package/dist/abilities/control.js.map +1 -0
  19. package/dist/abilities/dispel.js +51 -0
  20. package/dist/abilities/dispel.js.map +1 -0
  21. package/dist/abilities/effectFields.d.ts +1 -1
  22. package/dist/abilities/effectFields.js +676 -0
  23. package/dist/abilities/effectFields.js.map +1 -0
  24. package/dist/abilities/effectIndex.d.ts +27 -0
  25. package/dist/abilities/effectIndex.js +64 -0
  26. package/dist/abilities/effectIndex.js.map +1 -0
  27. package/dist/abilities/effects/buff.d.ts +9 -3
  28. package/dist/abilities/effects/buff.js +84 -0
  29. package/dist/abilities/effects/buff.js.map +1 -0
  30. package/dist/abilities/effects/conditions.d.ts +2 -0
  31. package/dist/abilities/effects/conditions.js +41 -0
  32. package/dist/abilities/effects/conditions.js.map +1 -0
  33. package/dist/abilities/effects/core.js +54 -0
  34. package/dist/abilities/effects/core.js.map +1 -0
  35. package/dist/abilities/effects/damage.d.ts +1 -1
  36. package/dist/abilities/effects/damage.js +43 -0
  37. package/dist/abilities/effects/damage.js.map +1 -0
  38. package/dist/abilities/effects/heal.d.ts +2 -2
  39. package/dist/abilities/effects/heal.js +51 -0
  40. package/dist/abilities/effects/heal.js.map +1 -0
  41. package/dist/abilities/effects/missile.d.ts +13 -1
  42. package/dist/abilities/effects/missile.js +104 -0
  43. package/dist/abilities/effects/missile.js.map +1 -0
  44. package/dist/abilities/effects/morph.d.ts +5 -0
  45. package/dist/abilities/effects/morph.js +43 -0
  46. package/dist/abilities/effects/morph.js.map +1 -0
  47. package/dist/abilities/effects/moves.d.ts +16 -4
  48. package/dist/abilities/effects/moves.js +212 -0
  49. package/dist/abilities/effects/moves.js.map +1 -0
  50. package/dist/abilities/effects/passives.d.ts +19 -9
  51. package/dist/abilities/effects/passives.js +131 -0
  52. package/dist/abilities/effects/passives.js.map +1 -0
  53. package/dist/abilities/effects/proxy.d.ts +5 -0
  54. package/dist/abilities/effects/proxy.js +60 -0
  55. package/dist/abilities/effects/proxy.js.map +1 -0
  56. package/dist/abilities/effects/sight.d.ts +2 -2
  57. package/dist/abilities/effects/sight.js +39 -0
  58. package/dist/abilities/effects/sight.js.map +1 -0
  59. package/dist/abilities/effects/spawn.d.ts +5 -2
  60. package/dist/abilities/effects/spawn.js +40 -0
  61. package/dist/abilities/effects/spawn.js.map +1 -0
  62. package/dist/abilities/effects/timed.d.ts +2 -2
  63. package/dist/abilities/effects/timed.js +96 -0
  64. package/dist/abilities/effects/timed.js.map +1 -0
  65. package/dist/abilities/effects/trade.d.ts +1 -1
  66. package/dist/abilities/effects/trade.js +25 -0
  67. package/dist/abilities/effects/trade.js.map +1 -0
  68. package/dist/abilities/effects.d.ts +97 -23
  69. package/dist/abilities/effects.js +860 -0
  70. package/dist/abilities/effects.js.map +1 -0
  71. package/dist/abilities/land.d.ts +38 -4
  72. package/dist/abilities/land.js +189 -0
  73. package/dist/abilities/land.js.map +1 -0
  74. package/dist/abilities/recast.d.ts +45 -0
  75. package/dist/abilities/recast.js +118 -0
  76. package/dist/abilities/recast.js.map +1 -0
  77. package/dist/abilities/scaled.js +40 -0
  78. package/dist/abilities/scaled.js.map +1 -0
  79. package/dist/abilities/screen.d.ts +6 -0
  80. package/dist/abilities/screen.js +83 -0
  81. package/dist/abilities/screen.js.map +1 -0
  82. package/dist/abilities/shapes.d.ts +66 -0
  83. package/dist/abilities/shapes.js +122 -0
  84. package/dist/abilities/shapes.js.map +1 -0
  85. package/dist/abilities/text.d.ts +14 -2
  86. package/dist/abilities/text.js +204 -0
  87. package/dist/abilities/text.js.map +1 -0
  88. package/dist/abilities/triggers.d.ts +98 -0
  89. package/dist/abilities/triggers.js +351 -0
  90. package/dist/abilities/triggers.js.map +1 -0
  91. package/dist/abilityChanges.d.ts +131 -0
  92. package/dist/abilityChanges.js +345 -0
  93. package/dist/abilityChanges.js.map +1 -0
  94. package/dist/ai/area.d.ts +4 -1
  95. package/dist/ai/brain.d.ts +4 -1
  96. package/dist/ai/brain.js +844 -0
  97. package/dist/ai/brain.js.map +1 -0
  98. package/dist/ai/budget.js +74 -0
  99. package/dist/ai/budget.js.map +1 -0
  100. package/dist/ai/checks.d.ts +9 -1
  101. package/dist/ai/checks.js +242 -0
  102. package/dist/ai/checks.js.map +1 -0
  103. package/dist/ai/computer.d.ts +11 -4
  104. package/dist/ai/computer.js +251 -0
  105. package/dist/ai/computer.js.map +1 -0
  106. package/dist/ai/defence.d.ts +4 -0
  107. package/dist/ai/defence.js +430 -0
  108. package/dist/ai/defence.js.map +1 -0
  109. package/dist/ai/define.d.ts +3 -2
  110. package/dist/ai/define.js +31 -0
  111. package/dist/ai/define.js.map +1 -0
  112. package/dist/ai/economy.d.ts +10 -7
  113. package/dist/ai/economy.js +780 -0
  114. package/dist/ai/economy.js.map +1 -0
  115. package/dist/ai/geometry.js +38 -0
  116. package/dist/ai/geometry.js.map +1 -0
  117. package/dist/ai/goals.d.ts +1 -0
  118. package/dist/ai/goals.js +560 -0
  119. package/dist/ai/goals.js.map +1 -0
  120. package/dist/ai/knowledge.d.ts +72 -7
  121. package/dist/ai/knowledge.js +804 -0
  122. package/dist/ai/knowledge.js.map +1 -0
  123. package/dist/ai/lanes.d.ts +10 -2
  124. package/dist/ai/lanes.js +715 -0
  125. package/dist/ai/lanes.js.map +1 -0
  126. package/dist/ai/melee/build.js +264 -0
  127. package/dist/ai/melee/build.js.map +1 -0
  128. package/dist/ai/melee/goals.d.ts +7 -0
  129. package/dist/ai/melee/goals.js +720 -0
  130. package/dist/ai/melee/goals.js.map +1 -0
  131. package/dist/ai/melee/heroes.js +68 -0
  132. package/dist/ai/melee/heroes.js.map +1 -0
  133. package/dist/ai/melee/index.d.ts +1 -1
  134. package/dist/ai/melee/index.js +51 -0
  135. package/dist/ai/melee/index.js.map +1 -0
  136. package/dist/ai/melee/production.js +29 -0
  137. package/dist/ai/melee/production.js.map +1 -0
  138. package/dist/ai/melee/surrender.js +64 -0
  139. package/dist/ai/melee/surrender.js.map +1 -0
  140. package/dist/ai/micro.d.ts +9 -0
  141. package/dist/ai/micro.js +1316 -0
  142. package/dist/ai/micro.js.map +1 -0
  143. package/dist/ai/mission.d.ts +9 -2
  144. package/dist/ai/mission.js +538 -0
  145. package/dist/ai/mission.js.map +1 -0
  146. package/dist/ai/missionRules.d.ts +1 -1
  147. package/dist/ai/missionRules.js +26 -0
  148. package/dist/ai/missionRules.js.map +1 -0
  149. package/dist/ai/module.d.ts +6 -2
  150. package/dist/ai/module.js +37 -0
  151. package/dist/ai/module.js.map +1 -0
  152. package/dist/ai/options.d.ts +3 -3
  153. package/dist/ai/plans/build.d.ts +20 -1
  154. package/dist/ai/plans/build.js +608 -0
  155. package/dist/ai/plans/build.js.map +1 -0
  156. package/dist/ai/plans/placement.d.ts +4 -1
  157. package/dist/ai/plans/placement.js +295 -0
  158. package/dist/ai/plans/placement.js.map +1 -0
  159. package/dist/ai/plans/plans.d.ts +9 -0
  160. package/dist/ai/plans/plans.js +110 -0
  161. package/dist/ai/plans/plans.js.map +1 -0
  162. package/dist/ai/plans/production.d.ts +14 -2
  163. package/dist/ai/plans/production.js +434 -0
  164. package/dist/ai/plans/production.js.map +1 -0
  165. package/dist/ai/plans/purse.d.ts +6 -3
  166. package/dist/ai/plans/purse.js +139 -0
  167. package/dist/ai/plans/purse.js.map +1 -0
  168. package/dist/ai/plans/tech.d.ts +6 -0
  169. package/dist/ai/plans/tech.js +122 -0
  170. package/dist/ai/plans/tech.js.map +1 -0
  171. package/dist/ai/profiles.d.ts +4 -4
  172. package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
  173. package/dist/ai/profiles.js.map +1 -0
  174. package/dist/ai/reach.js +54 -0
  175. package/dist/ai/reach.js.map +1 -0
  176. package/dist/ai/report.d.ts +8 -0
  177. package/dist/ai/report.js +87 -0
  178. package/dist/ai/report.js.map +1 -0
  179. package/dist/ai/roles.d.ts +4 -0
  180. package/dist/ai/roles.js +207 -0
  181. package/dist/ai/roles.js.map +1 -0
  182. package/dist/ai/rules.d.ts +8 -2
  183. package/dist/ai/rules.js +416 -0
  184. package/dist/ai/rules.js.map +1 -0
  185. package/dist/ai/scouting.d.ts +6 -0
  186. package/dist/ai/scouting.js +324 -0
  187. package/dist/ai/scouting.js.map +1 -0
  188. package/dist/ai/settings.js +99 -0
  189. package/dist/ai/settings.js.map +1 -0
  190. package/dist/ai/squads.d.ts +21 -2
  191. package/dist/ai/squads.js +916 -0
  192. package/dist/ai/squads.js.map +1 -0
  193. package/dist/ai/strength.js +320 -0
  194. package/dist/ai/strength.js.map +1 -0
  195. package/dist/ai/task.d.ts +3 -1
  196. package/dist/ai/task.js +17 -0
  197. package/dist/ai/task.js.map +1 -0
  198. package/dist/ai/tasks/attack.js +24 -0
  199. package/dist/ai/tasks/attack.js.map +1 -0
  200. package/dist/ai/tasks/capture.d.ts +3 -3
  201. package/dist/ai/tasks/capture.js +37 -0
  202. package/dist/ai/tasks/capture.js.map +1 -0
  203. package/dist/ai/tasks/creep.js +29 -0
  204. package/dist/ai/tasks/creep.js.map +1 -0
  205. package/dist/ai/tasks/defend.js +61 -0
  206. package/dist/ai/tasks/defend.js.map +1 -0
  207. package/dist/ai/tasks/drop.js +81 -0
  208. package/dist/ai/tasks/drop.js.map +1 -0
  209. package/dist/ai/tasks/escort.js +59 -0
  210. package/dist/ai/tasks/escort.js.map +1 -0
  211. package/dist/ai/tasks/gather.js +48 -0
  212. package/dist/ai/tasks/gather.js.map +1 -0
  213. package/dist/ai/tasks/harass.js +39 -0
  214. package/dist/ai/tasks/harass.js.map +1 -0
  215. package/dist/ai/tasks/hold.js +32 -0
  216. package/dist/ai/tasks/hold.js.map +1 -0
  217. package/dist/ai/tasks/index.js +34 -0
  218. package/dist/ai/tasks/index.js.map +1 -0
  219. package/dist/ai/tasks/move.js +26 -0
  220. package/dist/ai/tasks/move.js.map +1 -0
  221. package/dist/ai/tasks/patrol.js +59 -0
  222. package/dist/ai/tasks/patrol.js.map +1 -0
  223. package/dist/ai/tasks/retreat.js +28 -0
  224. package/dist/ai/tasks/retreat.js.map +1 -0
  225. package/dist/ai/tasks/scout.js +73 -0
  226. package/dist/ai/tasks/scout.js.map +1 -0
  227. package/dist/ai/tasks/shared.d.ts +1 -1
  228. package/dist/ai/tasks/shared.js +137 -0
  229. package/dist/ai/tasks/shared.js.map +1 -0
  230. package/dist/ai/team.d.ts +18 -1
  231. package/dist/ai/team.js +492 -0
  232. package/dist/ai/team.js.map +1 -0
  233. package/dist/ai/threat.d.ts +6 -0
  234. package/dist/ai/threat.js +206 -0
  235. package/dist/ai/threat.js.map +1 -0
  236. package/dist/ai/view.d.ts +21 -7
  237. package/dist/ai/view.js +677 -0
  238. package/dist/ai/view.js.map +1 -0
  239. package/dist/ai/waves.d.ts +6 -0
  240. package/dist/ai/waves.js +410 -0
  241. package/dist/ai/waves.js.map +1 -0
  242. package/dist/ai.js +54 -6239
  243. package/dist/aiTesting.d.ts +6 -3
  244. package/dist/aiTesting.js +229 -0
  245. package/dist/aiTesting.js.map +1 -0
  246. package/dist/areas.d.ts +4 -1
  247. package/dist/areas.js +295 -0
  248. package/dist/areas.js.map +1 -0
  249. package/dist/attacks.d.ts +3 -3
  250. package/dist/attacks.js +127 -0
  251. package/dist/attacks.js.map +1 -0
  252. package/dist/burning.d.ts +267 -0
  253. package/dist/burning.js +795 -0
  254. package/dist/burning.js.map +1 -0
  255. package/dist/bytes.js +21 -0
  256. package/dist/bytes.js.map +1 -0
  257. package/dist/callings.d.ts +71 -0
  258. package/dist/callings.js +157 -0
  259. package/dist/callings.js.map +1 -0
  260. package/dist/cameraOrders.d.ts +78 -0
  261. package/dist/cameraOrders.js +114 -0
  262. package/dist/cameraOrders.js.map +1 -0
  263. package/dist/camps.d.ts +70 -4
  264. package/dist/camps.js +501 -0
  265. package/dist/camps.js.map +1 -0
  266. package/dist/capture.d.ts +15 -3
  267. package/dist/capture.js +304 -0
  268. package/dist/capture.js.map +1 -0
  269. package/dist/cellLayers.d.ts +78 -13
  270. package/dist/cellLayers.js +275 -0
  271. package/dist/cellLayers.js.map +1 -0
  272. package/dist/cellPatches.d.ts +24 -0
  273. package/dist/cellPatches.js +73 -0
  274. package/dist/cellPatches.js.map +1 -0
  275. package/dist/cinematics.d.ts +10 -5
  276. package/dist/cinematics.js +161 -0
  277. package/dist/cinematics.js.map +1 -0
  278. package/dist/clock.d.ts +2 -2
  279. package/dist/clock.js +78 -0
  280. package/dist/clock.js.map +1 -0
  281. package/dist/commands.d.ts +36 -4
  282. package/dist/commands.js +636 -0
  283. package/dist/commands.js.map +1 -0
  284. package/dist/components.d.ts +31 -10
  285. package/dist/components.js +74 -0
  286. package/dist/components.js.map +1 -0
  287. package/dist/computers.d.ts +4 -4
  288. package/dist/computers.js +194 -0
  289. package/dist/computers.js.map +1 -0
  290. package/dist/concealment.d.ts +25 -2
  291. package/dist/concealment.js +409 -0
  292. package/dist/concealment.js.map +1 -0
  293. package/dist/coreComponents.js +130 -0
  294. package/dist/coreComponents.js.map +1 -0
  295. package/dist/createGame.d.ts +306 -0
  296. package/dist/createGame.js +405 -0
  297. package/dist/createGame.js.map +1 -0
  298. package/dist/dashing.d.ts +18 -2
  299. package/dist/dashing.js +41 -0
  300. package/dist/dashing.js.map +1 -0
  301. package/dist/debug.d.ts +8 -0
  302. package/dist/debug.js +5 -3
  303. package/dist/debug2.js +76 -0
  304. package/dist/debug2.js.map +1 -0
  305. package/dist/debugCommands.d.ts +6 -6
  306. package/dist/debugCommands.js +537 -0
  307. package/dist/debugCommands.js.map +1 -0
  308. package/dist/debugging.d.ts +1 -0
  309. package/dist/defaultSets.d.ts +183 -0
  310. package/dist/defaultSets.js +216 -0
  311. package/dist/defaultSets.js.map +1 -0
  312. package/dist/definitions.d.ts +6 -0
  313. package/dist/definitions.js +78 -0
  314. package/dist/definitions.js.map +1 -0
  315. package/dist/defs.d.ts +1895 -165
  316. package/dist/defs.js +380 -0
  317. package/dist/defs.js.map +1 -0
  318. package/dist/denying.d.ts +4 -4
  319. package/dist/denying.js +106 -0
  320. package/dist/denying.js.map +1 -0
  321. package/dist/destructibles.d.ts +2 -2
  322. package/dist/destructibles.js +36 -0
  323. package/dist/destructibles.js.map +1 -0
  324. package/dist/determinism.d.ts +4 -4
  325. package/dist/determinism.js +247 -0
  326. package/dist/determinism.js.map +1 -0
  327. package/dist/dialog.d.ts +17 -2
  328. package/dist/dialog.js +108 -0
  329. package/dist/dialog.js.map +1 -0
  330. package/dist/effectRefs.js +28 -0
  331. package/dist/effectRefs.js.map +1 -0
  332. package/dist/effects.d.ts +27 -11
  333. package/dist/effects.js +110 -0
  334. package/dist/effects.js.map +1 -0
  335. package/dist/endings.d.ts +1 -1
  336. package/dist/endings.js +78 -0
  337. package/dist/endings.js.map +1 -0
  338. package/dist/engagement.d.ts +40 -6
  339. package/dist/engagement.js +530 -0
  340. package/dist/engagement.js.map +1 -0
  341. package/dist/engineEvents.d.ts +72 -9
  342. package/dist/engineEvents.js +520 -0
  343. package/dist/engineEvents.js.map +1 -0
  344. package/dist/entity.d.ts +275 -26
  345. package/dist/entity.js +441 -0
  346. package/dist/entity.js.map +1 -0
  347. package/dist/entityIndex.d.ts +10 -3
  348. package/dist/entityIndex.js +149 -0
  349. package/dist/entityIndex.js.map +1 -0
  350. package/dist/errors.d.ts +6 -2
  351. package/dist/errors.js +59 -0
  352. package/dist/errors.js.map +1 -0
  353. package/dist/events.d.ts +11 -5
  354. package/dist/events.js +158 -0
  355. package/dist/events.js.map +1 -0
  356. package/dist/exactMath.js +273 -0
  357. package/dist/exactMath.js.map +1 -0
  358. package/dist/features.d.ts +1 -1
  359. package/dist/features.js +127 -0
  360. package/dist/features.js.map +1 -0
  361. package/dist/fields.d.ts +25 -5
  362. package/dist/fields.js +140 -0
  363. package/dist/fields.js.map +1 -0
  364. package/dist/fixture.d.ts +3 -3
  365. package/dist/fixture.js +512 -0
  366. package/dist/fixture.js.map +1 -0
  367. package/dist/fog.d.ts +26 -3
  368. package/dist/fog.js +333 -0
  369. package/dist/fog.js.map +1 -0
  370. package/dist/foliage.d.ts +476 -0
  371. package/dist/foliage.js +1478 -0
  372. package/dist/foliage.js.map +1 -0
  373. package/dist/foliageDebug.d.ts +57 -0
  374. package/dist/foliageDebug.js +172 -0
  375. package/dist/foliageDebug.js.map +1 -0
  376. package/dist/foliageRegrowth.d.ts +20 -0
  377. package/dist/foliageRegrowth.js +332 -0
  378. package/dist/foliageRegrowth.js.map +1 -0
  379. package/dist/formState.d.ts +67 -0
  380. package/dist/formState.js +65 -0
  381. package/dist/formState.js.map +1 -0
  382. package/dist/formation.d.ts +46 -8
  383. package/dist/formation.js +297 -0
  384. package/dist/formation.js.map +1 -0
  385. package/dist/forms.d.ts +58 -0
  386. package/dist/forms.js +146 -0
  387. package/dist/forms.js.map +1 -0
  388. package/dist/friendlyFire.d.ts +2 -2
  389. package/dist/friendlyFire.js +37 -0
  390. package/dist/friendlyFire.js.map +1 -0
  391. package/dist/game.d.ts +141 -48
  392. package/dist/game.js +834 -0
  393. package/dist/game.js.map +1 -0
  394. package/dist/gameData.d.ts +96 -22
  395. package/dist/gameData.js +1690 -0
  396. package/dist/gameData.js.map +1 -0
  397. package/dist/gameFiles.d.ts +3 -3
  398. package/dist/gameFiles.js +14 -0
  399. package/dist/gameFiles.js.map +1 -0
  400. package/dist/gates.js +92 -0
  401. package/dist/gates.js.map +1 -0
  402. package/dist/generate.d.ts +28 -1
  403. package/dist/generate.js +1062 -0
  404. package/dist/generate.js.map +1 -0
  405. package/dist/generateWorker.d.ts +7 -3
  406. package/dist/generateWorker.js +86 -0
  407. package/dist/generateWorker.js.map +1 -0
  408. package/dist/grid.d.ts +9 -0
  409. package/dist/grid.js +102 -0
  410. package/dist/grid.js.map +1 -0
  411. package/dist/ground.d.ts +17 -1
  412. package/dist/ground.js +375 -0
  413. package/dist/ground.js.map +1 -0
  414. package/dist/groundObjects.d.ts +70 -0
  415. package/dist/groundObjects.js +371 -0
  416. package/dist/groundObjects.js.map +1 -0
  417. package/dist/groundSpeed.d.ts +20 -3
  418. package/dist/groundSpeed.js +117 -0
  419. package/dist/groundSpeed.js.map +1 -0
  420. package/dist/hero.d.ts +126 -10
  421. package/dist/hero.js +432 -0
  422. package/dist/hero.js.map +1 -0
  423. package/dist/holds.d.ts +94 -0
  424. package/dist/holds.js +305 -0
  425. package/dist/holds.js.map +1 -0
  426. package/dist/home.d.ts +1 -1
  427. package/dist/home.js +30 -0
  428. package/dist/home.js.map +1 -0
  429. package/dist/hooks.d.ts +339 -57
  430. package/dist/hooks.js +105 -0
  431. package/dist/hooks.js.map +1 -0
  432. package/dist/hotReload.d.ts +6 -5
  433. package/dist/hotReload.js +145 -0
  434. package/dist/hotReload.js.map +1 -0
  435. package/dist/ids.d.ts +3 -3
  436. package/dist/ids.js +30 -0
  437. package/dist/ids.js.map +1 -0
  438. package/dist/idsFile.d.ts +36 -0
  439. package/dist/idsFile.js +134 -0
  440. package/dist/idsFile.js.map +1 -0
  441. package/dist/index.d.ts +105 -68
  442. package/dist/index.js +194 -4701
  443. package/dist/inspect.d.ts +29 -2
  444. package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
  445. package/dist/inspect.js.map +1 -0
  446. package/dist/inventory.d.ts +14 -1
  447. package/dist/inventory.js +84 -0
  448. package/dist/inventory.js.map +1 -0
  449. package/dist/items.d.ts +136 -8
  450. package/dist/items.js +585 -0
  451. package/dist/items.js.map +1 -0
  452. package/dist/lanes.d.ts +12 -3
  453. package/dist/lanes.js +496 -0
  454. package/dist/lanes.js.map +1 -0
  455. package/dist/life.d.ts +6 -2
  456. package/dist/life.js +287 -0
  457. package/dist/life.js.map +1 -0
  458. package/dist/log.d.ts +26 -3
  459. package/dist/log.js +192 -0
  460. package/dist/log.js.map +1 -0
  461. package/dist/manaBurn.d.ts +2 -2
  462. package/dist/manaBurn.js +75 -0
  463. package/dist/manaBurn.js.map +1 -0
  464. package/dist/map/file.d.ts +56 -3
  465. package/dist/map/file.js +264 -0
  466. package/dist/map/file.js.map +1 -0
  467. package/dist/map/images.js +61 -0
  468. package/dist/map/images.js.map +1 -0
  469. package/dist/map/look.d.ts +1 -1
  470. package/dist/map/look.js +30 -0
  471. package/dist/map/look.js.map +1 -0
  472. package/dist/map/pathProfile.js +183 -0
  473. package/dist/map/pathProfile.js.map +1 -0
  474. package/dist/map/resize.d.ts +4 -0
  475. package/dist/map/resize.js +136 -0
  476. package/dist/map/resize.js.map +1 -0
  477. package/dist/map/schema.js +257 -0
  478. package/dist/map/schema.js.map +1 -0
  479. package/dist/map/terrain.js +214 -0
  480. package/dist/map/terrain.js.map +1 -0
  481. package/dist/map/types.d.ts +92 -13
  482. package/dist/map/types.js +251 -0
  483. package/dist/map/types.js.map +1 -0
  484. package/dist/mapCheck/cells.js +94 -0
  485. package/dist/mapCheck/cells.js.map +1 -0
  486. package/dist/mapCheck/rules/foliage.d.ts +9 -0
  487. package/dist/mapCheck/rules/foliage.js +83 -0
  488. package/dist/mapCheck/rules/foliage.js.map +1 -0
  489. package/dist/mapCheck/rules/names.js +39 -0
  490. package/dist/mapCheck/rules/names.js.map +1 -0
  491. package/dist/mapCheck/rules/objects.d.ts +1 -1
  492. package/dist/mapCheck/rules/objects.js +56 -0
  493. package/dist/mapCheck/rules/objects.js.map +1 -0
  494. package/dist/mapCheck/rules/paths.js +32 -0
  495. package/dist/mapCheck/rules/paths.js.map +1 -0
  496. package/dist/mapCheck/rules/players.js +20 -0
  497. package/dist/mapCheck/rules/players.js.map +1 -0
  498. package/dist/mapCheck/rules/races.js +56 -0
  499. package/dist/mapCheck/rules/races.js.map +1 -0
  500. package/dist/mapCheck/rules/random.js +47 -0
  501. package/dist/mapCheck/rules/random.js.map +1 -0
  502. package/dist/mapCheck/rules/regions.js +30 -0
  503. package/dist/mapCheck/rules/regions.js.map +1 -0
  504. package/dist/mapCheck/rules/targets.js +31 -0
  505. package/dist/mapCheck/rules/targets.js.map +1 -0
  506. package/dist/mapCheck/rules/walking.js +45 -0
  507. package/dist/mapCheck/rules/walking.js.map +1 -0
  508. package/dist/mapCheck.d.ts +2 -2
  509. package/dist/mapCheck.js +63 -0
  510. package/dist/mapCheck.js.map +1 -0
  511. package/dist/mapFields.d.ts +25 -2
  512. package/dist/mapFields.js +134 -0
  513. package/dist/mapFields.js.map +1 -0
  514. package/dist/mapFile.js +176 -0
  515. package/dist/mapFile.js.map +1 -0
  516. package/dist/mapMeasure.d.ts +8 -0
  517. package/dist/mapMeasure.js +283 -0
  518. package/dist/mapMeasure.js.map +1 -0
  519. package/dist/mapMerge.d.ts +1 -0
  520. package/dist/mapMerge.js +172 -0
  521. package/dist/mapMerge.js.map +1 -0
  522. package/dist/mapObjectives.js +138 -0
  523. package/dist/mapObjectives.js.map +1 -0
  524. package/dist/mapObjects.js +80 -0
  525. package/dist/mapObjects.js.map +1 -0
  526. package/dist/math.d.ts +37 -7
  527. package/dist/math.js +155 -0
  528. package/dist/math.js.map +1 -0
  529. package/dist/messages.d.ts +71 -4
  530. package/dist/messages.js +29 -0
  531. package/dist/messages.js.map +1 -0
  532. package/dist/missionRules.d.ts +10 -2
  533. package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
  534. package/dist/missionRules.js.map +1 -0
  535. package/dist/mods.d.ts +39 -20
  536. package/dist/mods.js +271 -0
  537. package/dist/mods.js.map +1 -0
  538. package/dist/moves.d.ts +87 -0
  539. package/dist/moves.js +539 -0
  540. package/dist/moves.js.map +1 -0
  541. package/dist/names.d.ts +7 -0
  542. package/dist/names.js +122 -0
  543. package/dist/names.js.map +1 -0
  544. package/dist/navigation/agentParams.js +14 -0
  545. package/dist/navigation/agentParams.js.map +1 -0
  546. package/dist/navigation/air.d.ts +7 -3
  547. package/dist/navigation/air.js +401 -0
  548. package/dist/navigation/air.js.map +1 -0
  549. package/dist/navigation/builds.d.ts +34 -2
  550. package/dist/navigation/builds.js +287 -0
  551. package/dist/navigation/builds.js.map +1 -0
  552. package/dist/navigation/groundAreas.d.ts +59 -1
  553. package/dist/navigation/groundAreas.js +407 -0
  554. package/dist/navigation/groundAreas.js.map +1 -0
  555. package/dist/navigation/navigation.d.ts +98 -9
  556. package/dist/navigation/recast.d.ts +194 -18
  557. package/dist/navigation/recast.js +1379 -0
  558. package/dist/navigation/recast.js.map +1 -0
  559. package/dist/navigation/sidePaths.d.ts +8 -3
  560. package/dist/navigation/sidePaths.js +241 -0
  561. package/dist/navigation/sidePaths.js.map +1 -0
  562. package/dist/navigation/sized.js +243 -0
  563. package/dist/navigation/sized.js.map +1 -0
  564. package/dist/nearest.js +32 -0
  565. package/dist/nearest.js.map +1 -0
  566. package/dist/noise.js +59 -0
  567. package/dist/noise.js.map +1 -0
  568. package/dist/objectives.d.ts +12 -3
  569. package/dist/objectives.js +144 -0
  570. package/dist/objectives.js.map +1 -0
  571. package/dist/orders/basic.d.ts +5 -5
  572. package/dist/orders/basic.js +417 -0
  573. package/dist/orders/basic.js.map +1 -0
  574. package/dist/orders/build.js +278 -0
  575. package/dist/orders/build.js.map +1 -0
  576. package/dist/orders/cast.d.ts +13 -3
  577. package/dist/orders/cast.js +558 -0
  578. package/dist/orders/cast.js.map +1 -0
  579. package/dist/orders/facts.js +16 -0
  580. package/dist/orders/facts.js.map +1 -0
  581. package/dist/orders/harvest.d.ts +21 -5
  582. package/dist/orders/harvest.js +540 -0
  583. package/dist/orders/harvest.js.map +1 -0
  584. package/dist/orders/idle.d.ts +3 -1
  585. package/dist/orders/idle.js +234 -0
  586. package/dist/orders/idle.js.map +1 -0
  587. package/dist/orders/items.js +92 -0
  588. package/dist/orders/items.js.map +1 -0
  589. package/dist/orders/queue.js +108 -0
  590. package/dist/orders/queue.js.map +1 -0
  591. package/dist/orders/waiting.d.ts +39 -0
  592. package/dist/orders/waiting.js +149 -0
  593. package/dist/orders/waiting.js.map +1 -0
  594. package/dist/pack.schema.js +13 -0
  595. package/dist/pack.schema.js.map +1 -0
  596. package/dist/pack.schema.json +7622 -841
  597. package/dist/packs/director/index.d.ts +13 -5
  598. package/dist/packs/director/index.js +204 -0
  599. package/dist/packs/director/index.js.map +1 -0
  600. package/dist/packs/heroes/campaign.d.ts +3 -2
  601. package/dist/packs/heroes/campaign.js +241 -0
  602. package/dist/packs/heroes/campaign.js.map +1 -0
  603. package/dist/packs/heroes/carry.d.ts +6 -0
  604. package/dist/packs/heroes/carry.js +112 -0
  605. package/dist/packs/heroes/carry.js.map +1 -0
  606. package/dist/packs/heroes/commands.js +115 -0
  607. package/dist/packs/heroes/commands.js.map +1 -0
  608. package/dist/packs/heroes/fallen.d.ts +43 -0
  609. package/dist/packs/heroes/fallen.js +61 -0
  610. package/dist/packs/heroes/fallen.js.map +1 -0
  611. package/dist/packs/heroes/hire.js +60 -0
  612. package/dist/packs/heroes/hire.js.map +1 -0
  613. package/dist/packs/heroes/index.d.ts +7 -6
  614. package/dist/packs/heroes/index.js +130 -0
  615. package/dist/packs/heroes/index.js.map +1 -0
  616. package/dist/packs/heroes/loop.d.ts +95 -0
  617. package/dist/packs/heroes/loop.js +250 -0
  618. package/dist/packs/heroes/loop.js.map +1 -0
  619. package/dist/packs/heroes/making.d.ts +6 -3
  620. package/dist/packs/heroes/making.js +55 -0
  621. package/dist/packs/heroes/making.js.map +1 -0
  622. package/dist/packs/heroes/respawn.d.ts +3 -3
  623. package/dist/packs/heroes/respawn.js +87 -0
  624. package/dist/packs/heroes/respawn.js.map +1 -0
  625. package/dist/packs/heroes/sets.d.ts +32 -0
  626. package/dist/packs/heroes/sets.js +51 -0
  627. package/dist/packs/heroes/sets.js.map +1 -0
  628. package/dist/packs/heroes/spells.d.ts +16 -0
  629. package/dist/packs/heroes/spells.js +269 -0
  630. package/dist/packs/heroes/spells.js.map +1 -0
  631. package/dist/packs/items/defaults.d.ts +43 -0
  632. package/dist/packs/items/defaults.js +1504 -0
  633. package/dist/packs/items/defaults.js.map +1 -0
  634. package/dist/packs/items/index.d.ts +27 -0
  635. package/dist/packs/items/index.js +214 -0
  636. package/dist/packs/items/index.js.map +1 -0
  637. package/dist/packs/moba/index.d.ts +3 -3
  638. package/dist/packs/moba/index.js +174 -0
  639. package/dist/packs/moba/index.js.map +1 -0
  640. package/dist/packs/pack.d.ts +15 -15
  641. package/dist/packs/pack.js +14 -0
  642. package/dist/packs/pack.js.map +1 -0
  643. package/dist/packs.d.ts +15 -7
  644. package/dist/packs.js +222 -0
  645. package/dist/packs.js.map +1 -0
  646. package/dist/paths.d.ts +2 -0
  647. package/dist/paths.js +109 -0
  648. package/dist/paths.js.map +1 -0
  649. package/dist/plain.js +57 -0
  650. package/dist/plain.js.map +1 -0
  651. package/dist/player.d.ts +33 -10
  652. package/dist/player.js +159 -0
  653. package/dist/player.js.map +1 -0
  654. package/dist/portals.d.ts +1 -1
  655. package/dist/portals.js +194 -0
  656. package/dist/portals.js.map +1 -0
  657. package/dist/prefabs.d.ts +25 -2
  658. package/dist/prefabs.js +239 -0
  659. package/dist/prefabs.js.map +1 -0
  660. package/dist/presetBuildings.js +58 -0
  661. package/dist/presetBuildings.js.map +1 -0
  662. package/dist/presetFoliage.d.ts +27 -0
  663. package/dist/presetFoliage.js +98 -0
  664. package/dist/presetFoliage.js.map +1 -0
  665. package/dist/presetGround.js +65 -0
  666. package/dist/presetGround.js.map +1 -0
  667. package/dist/proxies.d.ts +12 -0
  668. package/dist/proxies.js +79 -0
  669. package/dist/proxies.js.map +1 -0
  670. package/dist/query.d.ts +56 -0
  671. package/dist/query.js +88 -0
  672. package/dist/query.js.map +1 -0
  673. package/dist/races.d.ts +15 -14
  674. package/dist/races.js +172 -0
  675. package/dist/races.js.map +1 -0
  676. package/dist/randomGroups.js +91 -0
  677. package/dist/randomGroups.js.map +1 -0
  678. package/dist/registry.d.ts +117 -53
  679. package/dist/registry.js +323 -0
  680. package/dist/registry.js.map +1 -0
  681. package/dist/remains.d.ts +11 -9
  682. package/dist/remains.js +188 -0
  683. package/dist/remains.js.map +1 -0
  684. package/dist/replication.d.ts +12 -7
  685. package/dist/replication.js +100 -0
  686. package/dist/replication.js.map +1 -0
  687. package/dist/rng.d.ts +2 -0
  688. package/dist/rng.js +40 -0
  689. package/dist/rng.js.map +1 -0
  690. package/dist/rules.d.ts +186 -99
  691. package/dist/rules.js +179 -0
  692. package/dist/rules.js.map +1 -0
  693. package/dist/rulesCheck.d.ts +5 -4
  694. package/dist/rulesCheck.js +693 -0
  695. package/dist/rulesCheck.js.map +1 -0
  696. package/dist/runes.d.ts +2 -2
  697. package/dist/runes.js +80 -0
  698. package/dist/runes.js.map +1 -0
  699. package/dist/save.d.ts +37 -12
  700. package/dist/save.js +532 -0
  701. package/dist/save.js.map +1 -0
  702. package/dist/scenario.d.ts +2 -2
  703. package/dist/scenario.js +99 -0
  704. package/dist/scenario.js.map +1 -0
  705. package/dist/scheduler.d.ts +3 -0
  706. package/dist/scheduler.js +156 -0
  707. package/dist/scheduler.js.map +1 -0
  708. package/dist/score.d.ts +19 -19
  709. package/dist/score.js +709 -0
  710. package/dist/score.js.map +1 -0
  711. package/dist/sequences.d.ts +10 -6
  712. package/dist/sequences.js +206 -0
  713. package/dist/sequences.js.map +1 -0
  714. package/dist/server/doorman.js +154 -0
  715. package/dist/server/doorman.js.map +1 -0
  716. package/dist/server/gameServer.d.ts +16 -1
  717. package/dist/server/gameServer.js +643 -0
  718. package/dist/server/gameServer.js.map +1 -0
  719. package/dist/server/index.d.ts +1 -1
  720. package/dist/server/lobby.js +199 -0
  721. package/dist/server/lobby.js.map +1 -0
  722. package/dist/server/log.js +18 -0
  723. package/dist/server/log.js.map +1 -0
  724. package/dist/server/match.js +267 -0
  725. package/dist/server/match.js.map +1 -0
  726. package/dist/server/mode.d.ts +18 -9
  727. package/dist/server/mode.js +220 -0
  728. package/dist/server/mode.js.map +1 -0
  729. package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
  730. package/dist/server/navigation-worker.js.map +1 -0
  731. package/dist/server/navigation.js +39 -0
  732. package/dist/server/navigation.js.map +1 -0
  733. package/dist/server/ops.d.ts +4 -0
  734. package/dist/server/ops.js +137 -0
  735. package/dist/server/ops.js.map +1 -0
  736. package/dist/server/packs.d.ts +3 -3
  737. package/dist/server/packs.js +32 -0
  738. package/dist/server/packs.js.map +1 -0
  739. package/dist/server/ratings.d.ts +5 -0
  740. package/dist/server/ratings.js +104 -0
  741. package/dist/server/ratings.js.map +1 -0
  742. package/dist/server/relay.d.ts +12 -2
  743. package/dist/server/relay.js +144 -0
  744. package/dist/server/relay.js.map +1 -0
  745. package/dist/server/rooms.d.ts +9 -2
  746. package/dist/server/rooms.js +442 -0
  747. package/dist/server/rooms.js.map +1 -0
  748. package/dist/server/seat.js +116 -0
  749. package/dist/server/seat.js.map +1 -0
  750. package/dist/server/seatSettings.d.ts +3 -3
  751. package/dist/server/seatSettings.js +63 -0
  752. package/dist/server/seatSettings.js.map +1 -0
  753. package/dist/server/secret.js +13 -0
  754. package/dist/server/secret.js.map +1 -0
  755. package/dist/server/start.d.ts +13 -6
  756. package/dist/server/start.js +76 -0
  757. package/dist/server/start.js.map +1 -0
  758. package/dist/server/websocket.d.ts +9 -1
  759. package/dist/server/websocket.js +306 -0
  760. package/dist/server/websocket.js.map +1 -0
  761. package/dist/server.js +15 -2861
  762. package/dist/session/can.js +26 -0
  763. package/dist/session/can.js.map +1 -0
  764. package/dist/session/commandReplay.d.ts +8 -2
  765. package/dist/session/commandReplay.js +293 -0
  766. package/dist/session/commandReplay.js.map +1 -0
  767. package/dist/session/debug.js +151 -0
  768. package/dist/session/debug.js.map +1 -0
  769. package/dist/session/delay.js +62 -0
  770. package/dist/session/delay.js.map +1 -0
  771. package/dist/session/delta.d.ts +14 -1
  772. package/dist/session/delta.js +407 -0
  773. package/dist/session/delta.js.map +1 -0
  774. package/dist/session/entityState.js +415 -0
  775. package/dist/session/entityState.js.map +1 -0
  776. package/dist/session/local.d.ts +47 -5
  777. package/dist/session/local.js +670 -0
  778. package/dist/session/local.js.map +1 -0
  779. package/dist/session/memory.d.ts +20 -2
  780. package/dist/session/memory.js +131 -0
  781. package/dist/session/memory.js.map +1 -0
  782. package/dist/session/protocol.d.ts +325 -31
  783. package/dist/session/protocol.js +55 -0
  784. package/dist/session/protocol.js.map +1 -0
  785. package/dist/session/remote.d.ts +74 -12
  786. package/dist/session/remote.js +1394 -0
  787. package/dist/session/remote.js.map +1 -0
  788. package/dist/session/replay.d.ts +11 -2
  789. package/dist/session/replay.js +160 -0
  790. package/dist/session/replay.js.map +1 -0
  791. package/dist/session/seed.js +12 -0
  792. package/dist/session/seed.js.map +1 -0
  793. package/dist/session/share.d.ts +5 -1
  794. package/dist/session/share.js +94 -0
  795. package/dist/session/share.js.map +1 -0
  796. package/dist/session/socket.d.ts +1 -1
  797. package/dist/session/socket.js +29 -0
  798. package/dist/session/socket.js.map +1 -0
  799. package/dist/session/wire.d.ts +5 -0
  800. package/dist/session/wire.js +84 -0
  801. package/dist/session/wire.js.map +1 -0
  802. package/dist/session/worker.d.ts +77 -12
  803. package/dist/session/worker.js +499 -0
  804. package/dist/session/worker.js.map +1 -0
  805. package/dist/shared.d.ts +31 -5
  806. package/dist/shared.js +166 -0
  807. package/dist/shared.js.map +1 -0
  808. package/dist/sides.d.ts +9 -3
  809. package/dist/sides.js +149 -0
  810. package/dist/sides.js.map +1 -0
  811. package/dist/sight.js +85 -0
  812. package/dist/sight.js.map +1 -0
  813. package/dist/simulate-worker.js +1 -1
  814. package/dist/simulate.d.ts +12 -8
  815. package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
  816. package/dist/simulate.js.map +1 -0
  817. package/dist/smart.js +77 -0
  818. package/dist/smart.js.map +1 -0
  819. package/dist/spatial.d.ts +32 -16
  820. package/dist/spatial.js +234 -0
  821. package/dist/spatial.js.map +1 -0
  822. package/dist/spawning.d.ts +1 -0
  823. package/dist/spawning.js +224 -0
  824. package/dist/spawning.js.map +1 -0
  825. package/dist/stances.d.ts +6 -3
  826. package/dist/stances.js +169 -0
  827. package/dist/stances.js.map +1 -0
  828. package/dist/start.d.ts +10 -10
  829. package/dist/start.js +75 -0
  830. package/dist/start.js.map +1 -0
  831. package/dist/stats.d.ts +42 -16
  832. package/dist/stats.js +290 -0
  833. package/dist/stats.js.map +1 -0
  834. package/dist/summoned.d.ts +52 -0
  835. package/dist/summoned.js +38 -0
  836. package/dist/summoned.js.map +1 -0
  837. package/dist/summons.d.ts +10 -13
  838. package/dist/summons.js +271 -0
  839. package/dist/summons.js.map +1 -0
  840. package/dist/systems/abilities.js +224 -0
  841. package/dist/systems/abilities.js.map +1 -0
  842. package/dist/systems/combat.d.ts +35 -1
  843. package/dist/systems/combat.js +677 -0
  844. package/dist/systems/combat.js.map +1 -0
  845. package/dist/systems/combatTold.d.ts +3 -1
  846. package/dist/systems/combatTold.js +85 -0
  847. package/dist/systems/combatTold.js.map +1 -0
  848. package/dist/systems/construction.js +80 -0
  849. package/dist/systems/construction.js.map +1 -0
  850. package/dist/systems/economy.d.ts +0 -6
  851. package/dist/systems/economy.js +128 -0
  852. package/dist/systems/economy.js.map +1 -0
  853. package/dist/systems/fog.d.ts +1 -1
  854. package/dist/systems/fog.js +120 -0
  855. package/dist/systems/fog.js.map +1 -0
  856. package/dist/systems/life.js +32 -0
  857. package/dist/systems/life.js.map +1 -0
  858. package/dist/systems/movement.d.ts +24 -12
  859. package/dist/systems/movement.js +1247 -0
  860. package/dist/systems/movement.js.map +1 -0
  861. package/dist/systems/orders.js +64 -0
  862. package/dist/systems/orders.js.map +1 -0
  863. package/dist/systems/production.js +322 -0
  864. package/dist/systems/production.js.map +1 -0
  865. package/dist/systems/productionQueue.js +120 -0
  866. package/dist/systems/productionQueue.js.map +1 -0
  867. package/dist/systems/victory.d.ts +1 -1
  868. package/dist/systems/victory.js +56 -0
  869. package/dist/systems/victory.js.map +1 -0
  870. package/dist/talk.d.ts +6 -6
  871. package/dist/talk.js +153 -0
  872. package/dist/talk.js.map +1 -0
  873. package/dist/targeting.d.ts +142 -0
  874. package/dist/targeting.js +49 -0
  875. package/dist/targeting.js.map +1 -0
  876. package/dist/tech.d.ts +20 -3
  877. package/dist/tech.js +239 -0
  878. package/dist/tech.js.map +1 -0
  879. package/dist/techTree.d.ts +7 -0
  880. package/dist/techTree.js +90 -0
  881. package/dist/techTree.js.map +1 -0
  882. package/dist/terrain.d.ts +59 -7
  883. package/dist/terrain.js +389 -0
  884. package/dist/terrain.js.map +1 -0
  885. package/dist/terrainSave.d.ts +6 -0
  886. package/dist/terrainSave.js +74 -0
  887. package/dist/terrainSave.js.map +1 -0
  888. package/dist/testing.d.ts +8 -7
  889. package/dist/testing.js +13 -739
  890. package/dist/testing.js.map +1 -1
  891. package/dist/tiles.d.ts +1 -1
  892. package/dist/tiles.js +43 -0
  893. package/dist/tiles.js.map +1 -0
  894. package/dist/timers.d.ts +29 -4
  895. package/dist/timers.js +242 -0
  896. package/dist/timers.js.map +1 -0
  897. package/dist/tomes.d.ts +4 -4
  898. package/dist/tomes.js +94 -0
  899. package/dist/tomes.js.map +1 -0
  900. package/dist/trade.js +103 -0
  901. package/dist/trade.js.map +1 -0
  902. package/dist/transport.d.ts +6 -1
  903. package/dist/transport.js +281 -0
  904. package/dist/transport.js.map +1 -0
  905. package/dist/tunables.d.ts +10 -3
  906. package/dist/tunables.js +56 -0
  907. package/dist/tunables.js.map +1 -0
  908. package/dist/unitResources.d.ts +67 -0
  909. package/dist/unitResources.js +266 -0
  910. package/dist/unitResources.js.map +1 -0
  911. package/dist/upkeep.d.ts +6 -1
  912. package/dist/upkeep.js +26 -0
  913. package/dist/upkeep.js.map +1 -0
  914. package/dist/veterancy.d.ts +8 -3
  915. package/dist/veterancy.js +131 -0
  916. package/dist/veterancy.js.map +1 -0
  917. package/dist/vision.d.ts +36 -0
  918. package/dist/vision.js +133 -0
  919. package/dist/vision.js.map +1 -0
  920. package/dist/walls.d.ts +1 -1
  921. package/dist/walls.js +278 -0
  922. package/dist/walls.js.map +1 -0
  923. package/dist/world.d.ts +606 -88
  924. package/dist/world.js +1263 -0
  925. package/dist/world.js.map +1 -0
  926. package/package.json +2 -2
  927. package/dist/ai.js.map +0 -1
  928. package/dist/attributes.d.ts +0 -66
  929. package/dist/brain-BvVdUhX8.js +0 -7659
  930. package/dist/brain-BvVdUhX8.js.map +0 -1
  931. package/dist/builds-C6LfgvEU.js +0 -460
  932. package/dist/builds-C6LfgvEU.js.map +0 -1
  933. package/dist/coreComponents-syuh2fPG.js +0 -5149
  934. package/dist/coreComponents-syuh2fPG.js.map +0 -1
  935. package/dist/debugCommands-CzjrSm66.js +0 -14739
  936. package/dist/debugCommands-CzjrSm66.js.map +0 -1
  937. package/dist/determinism-BCymQwiE.js +0 -518
  938. package/dist/determinism-BCymQwiE.js.map +0 -1
  939. package/dist/game-DiJEN-Ks.js +0 -5800
  940. package/dist/game-DiJEN-Ks.js.map +0 -1
  941. package/dist/index.js.map +0 -1
  942. package/dist/inspect-D9dWHmZ0.js.map +0 -1
  943. package/dist/local-Dkovq42k.js +0 -1379
  944. package/dist/local-Dkovq42k.js.map +0 -1
  945. package/dist/missionRules-C-bGxm0Q.js.map +0 -1
  946. package/dist/navigation-worker.js.map +0 -1
  947. package/dist/packs-g5thvmGn.js +0 -3199
  948. package/dist/packs-g5thvmGn.js.map +0 -1
  949. package/dist/profiles-B3NS9jwk.js.map +0 -1
  950. package/dist/server.js.map +0 -1
  951. package/dist/simulate-oXBiw1Ff.js.map +0 -1
package/dist/hero.d.ts CHANGED
@@ -1,24 +1,25 @@
1
+ import { type CallingDef } from './callings';
1
2
  import type { Cost } from './defs';
2
- import { type Entity, type PlayerId } from './entity';
3
+ import { type Entity, type EntityId, type PlayerId } from './entity';
3
4
  import type { Vec2 } from './math';
4
5
  import type { World } from './world';
5
6
  import type { EntityState, LearnableInfo, XpInfo } from './session/protocol';
6
7
  import type { GamePack } from './packs/pack';
7
8
  import type { HeroSummary } from './session/protocol';
8
9
  /**
9
- * The id of the heroes pack (`withHeroes`): `hasPack(game, HEROES)`
10
+ * The id of the heroes pack (`heroesPack`): `hasPack(game, HEROES)`
10
11
  *
11
12
  * @beta
12
13
  */
13
14
  export declare const HEROES = "core.heroes";
14
15
  /**
15
- * The numbers and formulas of heroes, the heroes pack's (`withHeroes(rules)`): how many heroes a player may
16
+ * The numbers and formulas of heroes, the heroes pack's (`heroesPack(rules)`): how many heroes a player may
16
17
  * have, how much experience a level takes, what bringing one back costs. The classic RTS numbers for
17
18
  * those left out
18
19
  *
19
20
  * @beta
20
21
  */
21
- export interface HeroRules {
22
+ export interface HeroSettings {
22
23
  /** Heroes a player can have at once, fallen ones and ones being trained included */
23
24
  maxHeroes: number;
24
25
  /** The level heroes stop at, unless their type says otherwise (`HeroDef.maxLevel`) */
@@ -36,15 +37,62 @@ export interface HeroRules {
36
37
  };
37
38
  /** Ability points a hero gets for reaching a level. One, when left out */
38
39
  pointsForLevel(level: number): number;
40
+ /** Seconds a fallen hero is remembered as it fell (`fallenHeroes`): 8 when left out */
41
+ fallenFor: number;
42
+ /**
43
+ * Seconds within which a hero that hurt a hero, or healed, shielded or buffed the hero that killed it, assists the
44
+ * kill (`heroAssists`): it shares the kill's experience wherever it is, and is paid `assistGold`. 10 when left out;
45
+ * 0 for no assists
46
+ */
47
+ assistTime: number;
48
+ /**
49
+ * Which heroes assist a hero's kill, of those the engine found (`foundAssists`: who hurt it and who helped its
50
+ * killer within `assistTime`): all of them when left out. A game's own rule (only those near, only damage)
51
+ */
52
+ assists(world: World, victim: Entity, killer: Entity | undefined, found: readonly Entity[]): readonly Entity[];
53
+ /**
54
+ * Gold the player of each hero that assists a hero's kill is paid. Half of what the kill is worth (its bounty's
55
+ * middle, or 100 and 25 a level of the victim's: `heroKillWorth`), shared out among them, when left out
56
+ */
57
+ assistGold(world: World, victim: Entity, killer: Entity | undefined, assists: readonly Entity[]): number;
58
+ /**
59
+ * Gold a hero's death pays its killer's player on top of the kill, for the kills it made in a row without dying
60
+ * (`streak`): the shutdown that ends a streak. None under 3, then 100, and 50 more for each kill past it, 500 at
61
+ * most, when left out
62
+ */
63
+ shutdownGold(world: World, victim: Entity, streak: number): number;
64
+ /**
65
+ * What buying a fallen hero back costs its player (`buyBack`): 100 and 40 a level of its, in the game's money, when
66
+ * left out. Nothing for a hero that cannot be bought back: a game without buyback says `() => undefined`
67
+ */
68
+ buybackCost(world: World, hero: Entity): Cost | undefined;
69
+ /** Seconds a hero bought back waits before it may be again: 120 when left out */
70
+ buybackCooldown: number;
71
+ /**
72
+ * The callings a hero may have (`HeroDef.callings`): the engine's when left out (`defaultCallings`), or a game's
73
+ * own, some of them, renamed or added to: `heroesPack({ callings: [...] })`
74
+ *
75
+ * @beta
76
+ */
77
+ callings: readonly CallingDef[];
39
78
  }
40
79
  /**
41
- * The heroes pack, as `withHeroes` makes it: its rules beside its parts
80
+ * What the kill of a hero is worth in the game's money, as the engine's rules have it (what assists share,
81
+ * `HeroSettings.assistGold`): the middle of its bounty (`UnitTypeDef.bounty`), or 100 and 25 a level
82
+ *
83
+ * @beta
84
+ */
85
+ export declare function heroKillWorth(victim: Entity): number;
86
+ /**
87
+ * The heroes pack, as `heroesPack` makes it: its rules beside its parts
42
88
  *
43
89
  * @beta
44
90
  */
45
91
  export interface HeroesPack extends GamePack {
46
- /** What the game says of heroes, over the engine's (`defaultHeroRules`): what the pack was made with (`GameRules.heroes`) */
47
- options: Partial<HeroRules>;
92
+ /** What the game says of heroes, over the engine's (`defaultHeroSettings`): what the pack was made with (`RuleSettings.heroes`) */
93
+ options: Partial<HeroSettings>;
94
+ /** The callings its heroes may have: the game's (`heroesPack({ callings })`) or the engine's (`defaultCallings`) @beta */
95
+ callings: readonly CallingDef[];
48
96
  }
49
97
  /**
50
98
  * What a hero has earned: its level, its experience, the points it has to put into abilities (`heroState`)
@@ -52,6 +100,7 @@ export interface HeroesPack extends GamePack {
52
100
  * @beta
53
101
  */
54
102
  export interface HeroState {
103
+ /** The hero's level */
55
104
  level: number;
56
105
  /** Experience in total */
57
106
  xp: number;
@@ -60,12 +109,13 @@ export interface HeroState {
60
109
  }
61
110
  /**
62
111
  * What a player is told of a hero (`heroState`): its level, to everyone who sees it; its experience to its side, and to
63
- * everyone where the rules share it (`GameRules.hud.shareXp`); the points it has to spend and what it can learn, to its
112
+ * everyone where the rules share it (`RuleSettings.hud.shareXp`); the points it has to spend and what it can learn, to its
64
113
  * side
65
114
  *
66
115
  * @beta
67
116
  */
68
117
  export interface HeroSent {
118
+ /** The hero's level, which everyone who sees the hero is told */
69
119
  level: number;
70
120
  /** Its experience: its side's, and everyone's where the rules share it */
71
121
  xp?: XpInfo;
@@ -85,7 +135,7 @@ export declare const heroState: import("./components").Component<HeroState, Hero
85
135
  /**
86
136
  * What a hero has earned: none for what is no hero (`heroState`)
87
137
  *
88
- * @beta
138
+ * @public
89
139
  */
90
140
  export declare const heroOf: (entity: Entity) => HeroState | undefined;
91
141
  /**
@@ -107,6 +157,20 @@ export declare const maxLevelOf: (world: World, entity: Entity) => number;
107
157
  * @beta
108
158
  */
109
159
  export declare function grantXp(world: World, entity: Entity, amount: number, from?: Entity): void;
160
+ /**
161
+ * The level of a hero's innate (`HeroDef.innate`) at a level of the hero: one for each of `innateLevels` it reached,
162
+ * or the hero's own level where it says none; never past the ability's `maxLevel` where it says one. 0 before the first
163
+ *
164
+ * @beta
165
+ */
166
+ export declare function innateLevel(world: World, entity: Entity, heroLevel?: number): number;
167
+ /**
168
+ * Gives a hero its innate (`HeroDef.innate`) where it has it not, at the level its own level says (`innateLevel`): as it
169
+ * is made, as it gains a level, as it takes another form. It costs no point, and is none of those it learns
170
+ *
171
+ * @beta
172
+ */
173
+ export declare function keepInnate(world: World, entity: Entity): void;
110
174
  /**
111
175
  * Puts a hero at a level as if it had got there: the points to spend, the stats that grew, the experience of that
112
176
  * level. No message, no event and no `beforeXp`: for a hero that starts a map at that level, not one that earns it.
@@ -133,7 +197,11 @@ export declare function levelNeeded(world: World, hero: Entity, ability: string)
133
197
  * @beta
134
198
  */
135
199
  export declare function canLearn(world: World, hero: Entity, ability: string): boolean;
136
- /** @beta */
200
+ /**
201
+ * Teaches the hero one level of an ability and spends a point on it; returns false when `canLearn` says it cannot
202
+ *
203
+ * @public
204
+ */
137
205
  export declare function learn(world: World, hero: Entity, ability: string): boolean;
138
206
  /**
139
207
  * Heroes a player has, fallen ones included
@@ -175,3 +243,51 @@ export declare const toldXp: import("./replication").ReplicatedEvent;
175
243
  * @beta
176
244
  */
177
245
  export declare function heroSummaries(world: World, player: PlayerId): HeroSummary[];
246
+ /**
247
+ * A hero shared a kill as an assist (`heroAssists`): who, of whom, who killed it, and the gold its player was paid for it
248
+ *
249
+ * @beta
250
+ */
251
+ export declare const heroAssisted: import("./events").EventKey<{
252
+ hero: EntityId;
253
+ type: string;
254
+ player: PlayerId;
255
+ victim: EntityId;
256
+ killer?: EntityId;
257
+ gold: number;
258
+ }>;
259
+ /**
260
+ * A hero killed another and is on a streak of this many since it last died
261
+ *
262
+ * @beta
263
+ */
264
+ export declare const killStreak: import("./events").EventKey<{
265
+ hero: EntityId;
266
+ type: string;
267
+ player: PlayerId;
268
+ streak: number;
269
+ }>;
270
+ /**
271
+ * A hero on a streak fell (`HeroSettings.shutdownGold`): whose streak of how many, and the gold its killer's player was
272
+ * paid on top of the kill for ending it
273
+ *
274
+ * @beta
275
+ */
276
+ export declare const heroShutdown: import("./events").EventKey<{
277
+ hero: EntityId;
278
+ streak: number;
279
+ killer?: EntityId;
280
+ player?: PlayerId;
281
+ gold: number;
282
+ }>;
283
+ /**
284
+ * A fallen hero was bought back (`buyBack`): who, for whom, at what cost
285
+ *
286
+ * @beta
287
+ */
288
+ export declare const boughtBack: import("./events").EventKey<{
289
+ hero: EntityId;
290
+ type: string;
291
+ player: PlayerId;
292
+ cost: Cost;
293
+ }>;
package/dist/hero.js ADDED
@@ -0,0 +1,432 @@
1
+ import { defineComponent, snapshotOf } from "./components.js";
2
+ import { refreshVitals, statsOf } from "./stats.js";
3
+ import { defineEngineEvent } from "./events.js";
4
+ import { heroLevelUp, heroRevived, xpGained } from "./engineEvents.js";
5
+ import { replicateEvent } from "./replication.js";
6
+ import { defaultCallings } from "./callings.js";
7
+ import { fighting, moving } from "./entity.js";
8
+ import { currencyOf } from "./player.js";
9
+ import { engineMessage } from "./messages.js";
10
+ import { readyAgain } from "./abilities/charges.js";
11
+ import { agentParamsOf } from "./navigation/agentParams.js";
12
+ import { productionOf } from "./systems/productionQueue.js";
13
+ import { learnedInForm, learnsOf } from "./formState.js";
14
+ //#region src/hero.ts
15
+ /**
16
+ * The id of the heroes pack (`heroesPack`): `hasPack(game, HEROES)`
17
+ *
18
+ * @beta
19
+ */
20
+ var HEROES = "core.heroes";
21
+ /**
22
+ * What the kill of a hero is worth in the game's money, as the engine's rules have it (what assists share,
23
+ * `HeroSettings.assistGold`): the middle of its bounty (`UnitTypeDef.bounty`), or 100 and 25 a level
24
+ *
25
+ * @beta
26
+ */
27
+ function heroKillWorth(victim) {
28
+ const bounty = victim.def.bounty;
29
+ if (bounty) return (bounty[0] + bounty[1]) / 2;
30
+ return 100 + 25 * (heroOf(victim)?.level ?? 1);
31
+ }
32
+ /**
33
+ * The heroes pack's rules where a game says nothing: the classic RTS numbers
34
+ *
35
+ * @internal
36
+ */
37
+ var defaultHeroSettings = Object.freeze({
38
+ maxHeroes: 3,
39
+ maxHeroLevel: 10,
40
+ xpRange: 20,
41
+ xpForLevel: (level) => 50 * (level - 1) * (level + 2),
42
+ killXp(world, dead) {
43
+ const hero = heroOf(dead);
44
+ if (hero) return 100 * hero.level;
45
+ if (!dead.isUnit) return 0;
46
+ return Math.max(Math.round(currencyOf(world.registry, dead.def.cost) / 4), 10);
47
+ },
48
+ revive(world, hero) {
49
+ const level = heroOf(hero)?.level ?? 1;
50
+ const { currency } = world.registry;
51
+ const paid = currencyOf(world.registry, hero.def.cost);
52
+ return {
53
+ cost: currency ? { [currency]: Math.min(Math.round(paid * (.4 + .1 * level)), 700) } : {},
54
+ time: Math.min((hero.def.buildTime ?? 30) * .5 + 4 * level, 110)
55
+ };
56
+ },
57
+ pointsForLevel: () => 1,
58
+ fallenFor: 8,
59
+ assistTime: 10,
60
+ assists: (_world, _victim, _killer, found) => found,
61
+ assistGold: (_world, victim, _killer, assists) => assists.length ? Math.round(heroKillWorth(victim) / 2 / assists.length) : 0,
62
+ shutdownGold: (_world, _victim, streak) => streak < 3 ? 0 : Math.min(100 + 50 * (streak - 3), 500),
63
+ buybackCost(world, hero) {
64
+ const { currency } = world.registry;
65
+ return currency ? { [currency]: 100 + 40 * (heroOf(hero)?.level ?? 1) } : void 0;
66
+ },
67
+ buybackCooldown: 120,
68
+ callings: Object.freeze(defaultCallings())
69
+ });
70
+ /** A hero's experience: what it has, what its level took and what the next takes */
71
+ function xpOf(world, entity, hero) {
72
+ return {
73
+ xp: Math.floor(hero.xp),
74
+ levelXp: world.settings.heroes.xpForLevel(hero.level),
75
+ nextXp: world.settings.heroes.xpForLevel(Math.min(hero.level + 1, maxLevelOf(world, entity)))
76
+ };
77
+ }
78
+ var sameXp = (a, b) => a === b || !!a && !!b && a.xp === b.xp && a.levelXp === b.levelXp && a.nextXp === b.nextXp;
79
+ /**
80
+ * A hero: what it has earned (`HeroState`). Set as a unit of a type that says it is one (`UnitTypeDef.hero`) is made,
81
+ * filed by owner (`world.index.with(heroState, player)`, `heroesOf`). What is a hero is what has it: a fallen hero stays
82
+ * in the world's entities, out of the world, to be brought back
83
+ *
84
+ * @beta
85
+ */
86
+ var heroState = defineComponent({
87
+ id: "core.hero",
88
+ replicate: "everyone",
89
+ index: "owner",
90
+ snapshot(hero, entity, { world, ally }) {
91
+ const sent = { level: hero.level };
92
+ if (!entity.def.hero) return sent;
93
+ const shareXp = world.settings.hud.shareXp;
94
+ const shared = shareXp !== void 0 && (typeof shareXp === "function" ? shareXp(world, entity) : shareXp);
95
+ if (ally || shared) sent.xp = xpOf(world, entity, hero);
96
+ if (!ally) return sent;
97
+ sent.points = hero.points;
98
+ sent.learnable = learnsOf(entity).map((id) => ({
99
+ id,
100
+ level: entity.abilities.find((ability) => ability.id === id)?.level ?? 0,
101
+ maxLevel: world.registry.ability(id).maxLevel ?? 3,
102
+ needs: levelNeeded(world, entity, id),
103
+ available: canLearn(world, entity, id)
104
+ }));
105
+ return sent;
106
+ },
107
+ same: (a, b) => a.level === b.level && sameXp(a.xp, b.xp) && a.points === b.points && (a.learnable === b.learnable || !!a.learnable && !!b.learnable && a.learnable.length === b.learnable.length && a.learnable.every((info, i) => {
108
+ const other = b.learnable[i];
109
+ return info.id === other.id && info.level === other.level && info.maxLevel === other.maxLevel && info.needs === other.needs && info.available === other.available;
110
+ }))
111
+ });
112
+ /**
113
+ * What a hero has earned: none for what is no hero (`heroState`)
114
+ *
115
+ * @public
116
+ */
117
+ var heroOf = (entity) => entity.get(heroState);
118
+ /**
119
+ * What a player was told of a hero in their snapshot (`heroState`): its level to everyone, its experience, points and
120
+ * what it can learn to its side. None for what is no hero
121
+ *
122
+ * @beta
123
+ */
124
+ var heroOfState = (state) => snapshotOf(state, heroState);
125
+ /**
126
+ * The level a hero stops at
127
+ *
128
+ * @beta
129
+ */
130
+ var maxLevelOf = (world, entity) => entity.def.hero?.maxLevel ?? world.settings.heroes.maxHeroLevel;
131
+ /**
132
+ * Gives a hero experience: `from` what was killed, when that is where it comes from. The `beforeXp` hook has its say
133
+ *
134
+ * @beta
135
+ */
136
+ function grantXp(world, entity, amount, from) {
137
+ const hero = heroOf(entity);
138
+ const max = maxLevelOf(world, entity);
139
+ const { xpForLevel, pointsForLevel } = world.settings.heroes;
140
+ if (!hero || !entity.alive || hero.level >= max) return;
141
+ if (world.hooks.has("beforeXp")) amount = world.hooks.run("beforeXp", {
142
+ hero: entity,
143
+ from,
144
+ amount
145
+ }).amount;
146
+ if (amount <= 0) return;
147
+ hero.xp += amount;
148
+ while (hero.level < max && hero.xp >= xpForLevel(hero.level + 1)) {
149
+ hero.level++;
150
+ hero.points += pointsForLevel(hero.level);
151
+ refreshVitals(world, entity);
152
+ keepInnate(world, entity);
153
+ world.events.emit(heroLevelUp, {
154
+ hero: entity,
155
+ level: hero.level
156
+ });
157
+ world.message(entity.owner, engineMessage("heroLevel", {
158
+ unit: entity.def.id,
159
+ level: hero.level
160
+ }), "info");
161
+ }
162
+ if (hero.level >= max) hero.xp = xpForLevel(max);
163
+ world.events.emit(xpGained, {
164
+ hero: entity,
165
+ amount,
166
+ level: hero.level,
167
+ from
168
+ });
169
+ }
170
+ /**
171
+ * The level of a hero's innate (`HeroDef.innate`) at a level of the hero: one for each of `innateLevels` it reached,
172
+ * or the hero's own level where it says none; never past the ability's `maxLevel` where it says one. 0 before the first
173
+ *
174
+ * @beta
175
+ */
176
+ function innateLevel(world, entity, heroLevel = heroOf(entity)?.level ?? 1) {
177
+ const def = entity.def.hero;
178
+ if (!def?.innate) return 0;
179
+ const own = def.innateLevels ? def.innateLevels.filter((at) => heroLevel >= at).length : heroLevel;
180
+ return Math.max(Math.min(own, world.registry.ability(def.innate).maxLevel ?? Infinity), 0);
181
+ }
182
+ /**
183
+ * Gives a hero its innate (`HeroDef.innate`) where it has it not, at the level its own level says (`innateLevel`): as it
184
+ * is made, as it gains a level, as it takes another form. It costs no point, and is none of those it learns
185
+ *
186
+ * @beta
187
+ */
188
+ function keepInnate(world, entity) {
189
+ const id = entity.def.hero?.innate;
190
+ if (!id || !entity.has(heroState)) return;
191
+ const level = innateLevel(world, entity);
192
+ const state = entity.abilities.find((each) => each.id === id);
193
+ if (!state) entity.addAbility({
194
+ id: world.registry.ability(id).id,
195
+ level,
196
+ cooldown: 0,
197
+ autocast: world.registry.ability(id).autocast ?? false
198
+ });
199
+ else if (state.level !== level) state.level = level;
200
+ }
201
+ /**
202
+ * Puts a hero at a level as if it had got there: the points to spend, the stats that grew, the experience of that
203
+ * level. No message, no event and no `beforeXp`: for a hero that starts a map at that level, not one that earns it.
204
+ * Never down
205
+ *
206
+ * @beta
207
+ */
208
+ function setHeroLevel(world, entity, level) {
209
+ const hero = heroOf(entity);
210
+ if (!hero) return;
211
+ const to = Math.min(Math.floor(level), maxLevelOf(world, entity));
212
+ if (to <= hero.level) return;
213
+ while (hero.level < to) {
214
+ hero.level++;
215
+ hero.points += world.settings.heroes.pointsForLevel(hero.level);
216
+ }
217
+ hero.xp = world.settings.heroes.xpForLevel(to);
218
+ refreshVitals(world, entity);
219
+ keepInnate(world, entity);
220
+ }
221
+ /**
222
+ * Experience a kill is worth
223
+ *
224
+ * @beta
225
+ */
226
+ function xpWorth(world, entity) {
227
+ return entity.def.xp ?? world.settings.heroes.killXp(world, entity);
228
+ }
229
+ /**
230
+ * Hero level needed to put the next point into an ability
231
+ *
232
+ * @beta
233
+ */
234
+ function levelNeeded(world, hero, ability) {
235
+ const def = world.registry.ability(ability);
236
+ const state = hero.abilities.find((a) => a.id === ability);
237
+ return (def.requiresLevel ?? (def.ultimate ? 6 : 1)) + (def.levelStep ?? 2) * (state?.level ?? 0);
238
+ }
239
+ /**
240
+ * Whether a hero may put a point into an ability now: by points, levels and its learning, and the `canLearn` hook
241
+ *
242
+ * @beta
243
+ */
244
+ function canLearn(world, hero, ability) {
245
+ const state = heroOf(hero);
246
+ if (!state || !hero.alive || state.points <= 0) return false;
247
+ if (!hero.def.hero || !learnsOf(hero).includes(ability) || !world.registry.abilities.has(ability)) return false;
248
+ const learned = hero.abilities.find((a) => a.id === ability);
249
+ if (!learned || learned.level >= (world.registry.ability(ability).maxLevel ?? 3)) return false;
250
+ const allowed = state.level >= levelNeeded(world, hero, ability);
251
+ return world.hooks.has("canLearn") ? !world.hooks.run("canLearn", {
252
+ hero,
253
+ ability,
254
+ cancelled: !allowed
255
+ }).cancelled : allowed;
256
+ }
257
+ /**
258
+ * Teaches the hero one level of an ability and spends a point on it; returns false when `canLearn` says it cannot
259
+ *
260
+ * @public
261
+ */
262
+ function learn(world, hero, ability) {
263
+ if (!canLearn(world, hero, ability)) return false;
264
+ const state = hero.abilities.find((a) => a.id === ability);
265
+ state.level++;
266
+ heroOf(hero).points--;
267
+ if (state.level === 1) state.autocast = world.registry.ability(ability).autocast ?? false;
268
+ learnedInForm(hero, ability);
269
+ return true;
270
+ }
271
+ /**
272
+ * Heroes a player has, fallen ones included
273
+ *
274
+ * @beta
275
+ */
276
+ function heroesOf(world, player) {
277
+ return [...world.index.with(heroState, player)];
278
+ }
279
+ /**
280
+ * What it costs to bring a hero back, in the game's money, and how long it takes
281
+ *
282
+ * @beta
283
+ */
284
+ function reviveCost(world, hero) {
285
+ return world.settings.heroes.revive(world, hero);
286
+ }
287
+ /**
288
+ * Puts a fallen hero back into the world
289
+ *
290
+ * @beta
291
+ */
292
+ function reviveHero(world, hero, at) {
293
+ if (hero.alive || !hero.has(heroState)) return;
294
+ const point = (hero.flying ? world.air : world.nav).closestPoint(at, 8) ?? at;
295
+ hero.setAlive(true);
296
+ hero.setInside(false);
297
+ hero.reviving = false;
298
+ hero.health = hero.maxHealth;
299
+ hero.mana = hero.maxMana;
300
+ hero.clearBuffs();
301
+ hero.keepOrders();
302
+ for (const ability of hero.abilities) readyAgain(ability);
303
+ hero.moveTo(point.x, point.z);
304
+ hero.prevPos.x = point.x;
305
+ hero.prevPos.z = point.z;
306
+ const m = hero.get(moving);
307
+ if (m) {
308
+ m.status = "idle";
309
+ m.anchored = false;
310
+ m.ghost = false;
311
+ delete m.phased;
312
+ m.finalFacing = null;
313
+ m.speed = statsOf(world, hero).moveSpeed;
314
+ world.nav.addAgent(hero.id, point, agentParamsOf(hero, m.speed));
315
+ }
316
+ if (hero.get(fighting)) Object.assign(hero.get(fighting), {
317
+ cooldown: 0,
318
+ swing: 0,
319
+ swingTarget: 0,
320
+ autoTarget: 0,
321
+ lastAttacker: 0,
322
+ guard: null,
323
+ passive: false
324
+ });
325
+ world.events.emit(heroRevived, hero);
326
+ }
327
+ /**
328
+ * A fallen hero waiting to come back: when it fell, and how long it waits, in seconds of the game
329
+ *
330
+ * @internal
331
+ */
332
+ var respawning = defineComponent({ id: "core.respawning" });
333
+ /**
334
+ * How long until a fallen hero comes back by itself, in seconds: none for one that is not waiting
335
+ *
336
+ * @beta
337
+ */
338
+ function respawnIn(world, hero) {
339
+ const waiting = hero.get(respawning);
340
+ return waiting && !hero.alive ? Math.max(0, waiting.since + waiting.wait - world.time) : void 0;
341
+ }
342
+ /** A hero back, to those who see it */
343
+ var toldRevived = replicateEvent(heroRevived, "revived", (hero, view) => view.knows(hero) ? {
344
+ type: "revived",
345
+ id: hero.id
346
+ } : void 0);
347
+ /** A hero's new level, to those who see it */
348
+ var toldLevelUp = replicateEvent(heroLevelUp, "levelUp", ({ hero, level }, view) => view.knows(hero) ? {
349
+ type: "levelUp",
350
+ id: hero.id,
351
+ level
352
+ } : void 0);
353
+ /** Experience gained: its side's alone, an enemy sees a bar move, not why */
354
+ var toldXp = replicateEvent(xpGained, "xp", ({ hero, amount, level }, view) => view.isAlly(hero.owner) ? {
355
+ type: "xp",
356
+ id: hero.id,
357
+ amount,
358
+ level
359
+ } : void 0);
360
+ /**
361
+ * A player's heroes, as their portraits show them (`PlayerState.own.heroes`): their level, health and mana, and how far
362
+ * a fallen one is through being brought back, at an altar or by itself
363
+ *
364
+ * @beta
365
+ */
366
+ function heroSummaries(world, player) {
367
+ const reviving = /* @__PURE__ */ new Map();
368
+ for (const entity of world.index.ownedBy(player)) {
369
+ const production = productionOf(entity);
370
+ if (!production) continue;
371
+ for (const item of production.queue) if (item.kind === "revive") reviving.set(Number(item.id), item.progress / item.duration);
372
+ }
373
+ return heroesOf(world, player).map((entity) => ({
374
+ id: entity.id,
375
+ type: entity.def.id,
376
+ level: heroOf(entity).level,
377
+ alive: entity.alive,
378
+ health: entity.alive ? entity.health / entity.maxHealth : 0,
379
+ mana: entity.alive && entity.maxMana > 0 ? entity.mana / entity.maxMana : 0,
380
+ points: heroOf(entity).points,
381
+ reviving: reviving.get(entity.id) ?? respawnProgress(world, entity),
382
+ ...respawnIn(world, entity) !== void 0 && { respawnIn: respawnIn(world, entity) },
383
+ reviveCost: entity.alive ? void 0 : reviveCost(world, entity).cost
384
+ }));
385
+ }
386
+ /** How far a fallen hero is through its wait to come back by itself, 0..1: none for one that is not waiting */
387
+ function respawnProgress(world, hero) {
388
+ const waiting = hero.get(respawning);
389
+ if (!waiting || hero.alive) return void 0;
390
+ return waiting.wait > 0 ? Math.min(1, (world.time - waiting.since) / waiting.wait) : 1;
391
+ }
392
+ /**
393
+ * A hero shared a kill as an assist (`heroAssists`): who, of whom, who killed it, and the gold its player was paid for it
394
+ *
395
+ * @beta
396
+ */
397
+ var heroAssisted = defineEngineEvent({
398
+ id: "core.heroAssisted",
399
+ replicate: "everyone"
400
+ });
401
+ /**
402
+ * A hero killed another and is on a streak of this many since it last died
403
+ *
404
+ * @beta
405
+ */
406
+ var killStreak = defineEngineEvent({
407
+ id: "core.killStreak",
408
+ replicate: "everyone"
409
+ });
410
+ /**
411
+ * A hero on a streak fell (`HeroSettings.shutdownGold`): whose streak of how many, and the gold its killer's player was
412
+ * paid on top of the kill for ending it
413
+ *
414
+ * @beta
415
+ */
416
+ var heroShutdown = defineEngineEvent({
417
+ id: "core.shutdown",
418
+ replicate: "everyone"
419
+ });
420
+ /**
421
+ * A fallen hero was bought back (`buyBack`): who, for whom, at what cost
422
+ *
423
+ * @beta
424
+ */
425
+ var boughtBack = defineEngineEvent({
426
+ id: "core.boughtBack",
427
+ replicate: "everyone"
428
+ });
429
+ //#endregion
430
+ export { HEROES, boughtBack, canLearn, defaultHeroSettings, grantXp, heroAssisted, heroKillWorth, heroOf, heroOfState, heroShutdown, heroState, heroSummaries, heroesOf, innateLevel, keepInnate, killStreak, learn, levelNeeded, maxLevelOf, respawnIn, respawning, reviveCost, reviveHero, setHeroLevel, toldLevelUp, toldRevived, toldXp, xpWorth };
431
+
432
+ //# sourceMappingURL=hero.js.map