@v12-engine/engine 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (951) hide show
  1. package/dist/abilities/amounts.d.ts +28 -0
  2. package/dist/abilities/amounts.js +74 -0
  3. package/dist/abilities/amounts.js.map +1 -0
  4. package/dist/abilities/buffs.d.ts +106 -6
  5. package/dist/abilities/buffs.js +443 -0
  6. package/dist/abilities/buffs.js.map +1 -0
  7. package/dist/abilities/castTold.d.ts +2 -0
  8. package/dist/abilities/castTold.js +66 -0
  9. package/dist/abilities/castTold.js.map +1 -0
  10. package/dist/abilities/chance.d.ts +38 -0
  11. package/dist/abilities/chance.js +77 -0
  12. package/dist/abilities/chance.js.map +1 -0
  13. package/dist/abilities/charges.d.ts +18 -0
  14. package/dist/abilities/charges.js +101 -0
  15. package/dist/abilities/charges.js.map +1 -0
  16. package/dist/abilities/control.d.ts +28 -0
  17. package/dist/abilities/control.js +113 -0
  18. package/dist/abilities/control.js.map +1 -0
  19. package/dist/abilities/dispel.js +51 -0
  20. package/dist/abilities/dispel.js.map +1 -0
  21. package/dist/abilities/effectFields.d.ts +1 -1
  22. package/dist/abilities/effectFields.js +676 -0
  23. package/dist/abilities/effectFields.js.map +1 -0
  24. package/dist/abilities/effectIndex.d.ts +27 -0
  25. package/dist/abilities/effectIndex.js +64 -0
  26. package/dist/abilities/effectIndex.js.map +1 -0
  27. package/dist/abilities/effects/buff.d.ts +9 -3
  28. package/dist/abilities/effects/buff.js +84 -0
  29. package/dist/abilities/effects/buff.js.map +1 -0
  30. package/dist/abilities/effects/conditions.d.ts +2 -0
  31. package/dist/abilities/effects/conditions.js +41 -0
  32. package/dist/abilities/effects/conditions.js.map +1 -0
  33. package/dist/abilities/effects/core.js +54 -0
  34. package/dist/abilities/effects/core.js.map +1 -0
  35. package/dist/abilities/effects/damage.d.ts +1 -1
  36. package/dist/abilities/effects/damage.js +43 -0
  37. package/dist/abilities/effects/damage.js.map +1 -0
  38. package/dist/abilities/effects/heal.d.ts +2 -2
  39. package/dist/abilities/effects/heal.js +51 -0
  40. package/dist/abilities/effects/heal.js.map +1 -0
  41. package/dist/abilities/effects/missile.d.ts +13 -1
  42. package/dist/abilities/effects/missile.js +104 -0
  43. package/dist/abilities/effects/missile.js.map +1 -0
  44. package/dist/abilities/effects/morph.d.ts +5 -0
  45. package/dist/abilities/effects/morph.js +43 -0
  46. package/dist/abilities/effects/morph.js.map +1 -0
  47. package/dist/abilities/effects/moves.d.ts +16 -4
  48. package/dist/abilities/effects/moves.js +212 -0
  49. package/dist/abilities/effects/moves.js.map +1 -0
  50. package/dist/abilities/effects/passives.d.ts +19 -9
  51. package/dist/abilities/effects/passives.js +131 -0
  52. package/dist/abilities/effects/passives.js.map +1 -0
  53. package/dist/abilities/effects/proxy.d.ts +5 -0
  54. package/dist/abilities/effects/proxy.js +60 -0
  55. package/dist/abilities/effects/proxy.js.map +1 -0
  56. package/dist/abilities/effects/sight.d.ts +2 -2
  57. package/dist/abilities/effects/sight.js +39 -0
  58. package/dist/abilities/effects/sight.js.map +1 -0
  59. package/dist/abilities/effects/spawn.d.ts +5 -2
  60. package/dist/abilities/effects/spawn.js +40 -0
  61. package/dist/abilities/effects/spawn.js.map +1 -0
  62. package/dist/abilities/effects/timed.d.ts +2 -2
  63. package/dist/abilities/effects/timed.js +96 -0
  64. package/dist/abilities/effects/timed.js.map +1 -0
  65. package/dist/abilities/effects/trade.d.ts +1 -1
  66. package/dist/abilities/effects/trade.js +25 -0
  67. package/dist/abilities/effects/trade.js.map +1 -0
  68. package/dist/abilities/effects.d.ts +97 -23
  69. package/dist/abilities/effects.js +860 -0
  70. package/dist/abilities/effects.js.map +1 -0
  71. package/dist/abilities/land.d.ts +38 -4
  72. package/dist/abilities/land.js +189 -0
  73. package/dist/abilities/land.js.map +1 -0
  74. package/dist/abilities/recast.d.ts +45 -0
  75. package/dist/abilities/recast.js +118 -0
  76. package/dist/abilities/recast.js.map +1 -0
  77. package/dist/abilities/scaled.js +40 -0
  78. package/dist/abilities/scaled.js.map +1 -0
  79. package/dist/abilities/screen.d.ts +6 -0
  80. package/dist/abilities/screen.js +83 -0
  81. package/dist/abilities/screen.js.map +1 -0
  82. package/dist/abilities/shapes.d.ts +66 -0
  83. package/dist/abilities/shapes.js +122 -0
  84. package/dist/abilities/shapes.js.map +1 -0
  85. package/dist/abilities/text.d.ts +14 -2
  86. package/dist/abilities/text.js +204 -0
  87. package/dist/abilities/text.js.map +1 -0
  88. package/dist/abilities/triggers.d.ts +98 -0
  89. package/dist/abilities/triggers.js +351 -0
  90. package/dist/abilities/triggers.js.map +1 -0
  91. package/dist/abilityChanges.d.ts +131 -0
  92. package/dist/abilityChanges.js +345 -0
  93. package/dist/abilityChanges.js.map +1 -0
  94. package/dist/ai/area.d.ts +4 -1
  95. package/dist/ai/brain.d.ts +4 -1
  96. package/dist/ai/brain.js +844 -0
  97. package/dist/ai/brain.js.map +1 -0
  98. package/dist/ai/budget.js +74 -0
  99. package/dist/ai/budget.js.map +1 -0
  100. package/dist/ai/checks.d.ts +9 -1
  101. package/dist/ai/checks.js +242 -0
  102. package/dist/ai/checks.js.map +1 -0
  103. package/dist/ai/computer.d.ts +11 -4
  104. package/dist/ai/computer.js +251 -0
  105. package/dist/ai/computer.js.map +1 -0
  106. package/dist/ai/defence.d.ts +4 -0
  107. package/dist/ai/defence.js +430 -0
  108. package/dist/ai/defence.js.map +1 -0
  109. package/dist/ai/define.d.ts +3 -2
  110. package/dist/ai/define.js +31 -0
  111. package/dist/ai/define.js.map +1 -0
  112. package/dist/ai/economy.d.ts +10 -7
  113. package/dist/ai/economy.js +780 -0
  114. package/dist/ai/economy.js.map +1 -0
  115. package/dist/ai/geometry.js +38 -0
  116. package/dist/ai/geometry.js.map +1 -0
  117. package/dist/ai/goals.d.ts +1 -0
  118. package/dist/ai/goals.js +560 -0
  119. package/dist/ai/goals.js.map +1 -0
  120. package/dist/ai/knowledge.d.ts +72 -7
  121. package/dist/ai/knowledge.js +804 -0
  122. package/dist/ai/knowledge.js.map +1 -0
  123. package/dist/ai/lanes.d.ts +10 -2
  124. package/dist/ai/lanes.js +715 -0
  125. package/dist/ai/lanes.js.map +1 -0
  126. package/dist/ai/melee/build.js +264 -0
  127. package/dist/ai/melee/build.js.map +1 -0
  128. package/dist/ai/melee/goals.d.ts +7 -0
  129. package/dist/ai/melee/goals.js +720 -0
  130. package/dist/ai/melee/goals.js.map +1 -0
  131. package/dist/ai/melee/heroes.js +68 -0
  132. package/dist/ai/melee/heroes.js.map +1 -0
  133. package/dist/ai/melee/index.d.ts +1 -1
  134. package/dist/ai/melee/index.js +51 -0
  135. package/dist/ai/melee/index.js.map +1 -0
  136. package/dist/ai/melee/production.js +29 -0
  137. package/dist/ai/melee/production.js.map +1 -0
  138. package/dist/ai/melee/surrender.js +64 -0
  139. package/dist/ai/melee/surrender.js.map +1 -0
  140. package/dist/ai/micro.d.ts +9 -0
  141. package/dist/ai/micro.js +1316 -0
  142. package/dist/ai/micro.js.map +1 -0
  143. package/dist/ai/mission.d.ts +9 -2
  144. package/dist/ai/mission.js +538 -0
  145. package/dist/ai/mission.js.map +1 -0
  146. package/dist/ai/missionRules.d.ts +1 -1
  147. package/dist/ai/missionRules.js +26 -0
  148. package/dist/ai/missionRules.js.map +1 -0
  149. package/dist/ai/module.d.ts +6 -2
  150. package/dist/ai/module.js +37 -0
  151. package/dist/ai/module.js.map +1 -0
  152. package/dist/ai/options.d.ts +3 -3
  153. package/dist/ai/plans/build.d.ts +20 -1
  154. package/dist/ai/plans/build.js +608 -0
  155. package/dist/ai/plans/build.js.map +1 -0
  156. package/dist/ai/plans/placement.d.ts +4 -1
  157. package/dist/ai/plans/placement.js +295 -0
  158. package/dist/ai/plans/placement.js.map +1 -0
  159. package/dist/ai/plans/plans.d.ts +9 -0
  160. package/dist/ai/plans/plans.js +110 -0
  161. package/dist/ai/plans/plans.js.map +1 -0
  162. package/dist/ai/plans/production.d.ts +14 -2
  163. package/dist/ai/plans/production.js +434 -0
  164. package/dist/ai/plans/production.js.map +1 -0
  165. package/dist/ai/plans/purse.d.ts +6 -3
  166. package/dist/ai/plans/purse.js +139 -0
  167. package/dist/ai/plans/purse.js.map +1 -0
  168. package/dist/ai/plans/tech.d.ts +6 -0
  169. package/dist/ai/plans/tech.js +122 -0
  170. package/dist/ai/plans/tech.js.map +1 -0
  171. package/dist/ai/profiles.d.ts +4 -4
  172. package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
  173. package/dist/ai/profiles.js.map +1 -0
  174. package/dist/ai/reach.js +54 -0
  175. package/dist/ai/reach.js.map +1 -0
  176. package/dist/ai/report.d.ts +8 -0
  177. package/dist/ai/report.js +87 -0
  178. package/dist/ai/report.js.map +1 -0
  179. package/dist/ai/roles.d.ts +4 -0
  180. package/dist/ai/roles.js +207 -0
  181. package/dist/ai/roles.js.map +1 -0
  182. package/dist/ai/rules.d.ts +8 -2
  183. package/dist/ai/rules.js +416 -0
  184. package/dist/ai/rules.js.map +1 -0
  185. package/dist/ai/scouting.d.ts +6 -0
  186. package/dist/ai/scouting.js +324 -0
  187. package/dist/ai/scouting.js.map +1 -0
  188. package/dist/ai/settings.js +99 -0
  189. package/dist/ai/settings.js.map +1 -0
  190. package/dist/ai/squads.d.ts +21 -2
  191. package/dist/ai/squads.js +916 -0
  192. package/dist/ai/squads.js.map +1 -0
  193. package/dist/ai/strength.js +320 -0
  194. package/dist/ai/strength.js.map +1 -0
  195. package/dist/ai/task.d.ts +3 -1
  196. package/dist/ai/task.js +17 -0
  197. package/dist/ai/task.js.map +1 -0
  198. package/dist/ai/tasks/attack.js +24 -0
  199. package/dist/ai/tasks/attack.js.map +1 -0
  200. package/dist/ai/tasks/capture.d.ts +3 -3
  201. package/dist/ai/tasks/capture.js +37 -0
  202. package/dist/ai/tasks/capture.js.map +1 -0
  203. package/dist/ai/tasks/creep.js +29 -0
  204. package/dist/ai/tasks/creep.js.map +1 -0
  205. package/dist/ai/tasks/defend.js +61 -0
  206. package/dist/ai/tasks/defend.js.map +1 -0
  207. package/dist/ai/tasks/drop.js +81 -0
  208. package/dist/ai/tasks/drop.js.map +1 -0
  209. package/dist/ai/tasks/escort.js +59 -0
  210. package/dist/ai/tasks/escort.js.map +1 -0
  211. package/dist/ai/tasks/gather.js +48 -0
  212. package/dist/ai/tasks/gather.js.map +1 -0
  213. package/dist/ai/tasks/harass.js +39 -0
  214. package/dist/ai/tasks/harass.js.map +1 -0
  215. package/dist/ai/tasks/hold.js +32 -0
  216. package/dist/ai/tasks/hold.js.map +1 -0
  217. package/dist/ai/tasks/index.js +34 -0
  218. package/dist/ai/tasks/index.js.map +1 -0
  219. package/dist/ai/tasks/move.js +26 -0
  220. package/dist/ai/tasks/move.js.map +1 -0
  221. package/dist/ai/tasks/patrol.js +59 -0
  222. package/dist/ai/tasks/patrol.js.map +1 -0
  223. package/dist/ai/tasks/retreat.js +28 -0
  224. package/dist/ai/tasks/retreat.js.map +1 -0
  225. package/dist/ai/tasks/scout.js +73 -0
  226. package/dist/ai/tasks/scout.js.map +1 -0
  227. package/dist/ai/tasks/shared.d.ts +1 -1
  228. package/dist/ai/tasks/shared.js +137 -0
  229. package/dist/ai/tasks/shared.js.map +1 -0
  230. package/dist/ai/team.d.ts +18 -1
  231. package/dist/ai/team.js +492 -0
  232. package/dist/ai/team.js.map +1 -0
  233. package/dist/ai/threat.d.ts +6 -0
  234. package/dist/ai/threat.js +206 -0
  235. package/dist/ai/threat.js.map +1 -0
  236. package/dist/ai/view.d.ts +21 -7
  237. package/dist/ai/view.js +677 -0
  238. package/dist/ai/view.js.map +1 -0
  239. package/dist/ai/waves.d.ts +6 -0
  240. package/dist/ai/waves.js +410 -0
  241. package/dist/ai/waves.js.map +1 -0
  242. package/dist/ai.js +54 -6239
  243. package/dist/aiTesting.d.ts +6 -3
  244. package/dist/aiTesting.js +229 -0
  245. package/dist/aiTesting.js.map +1 -0
  246. package/dist/areas.d.ts +4 -1
  247. package/dist/areas.js +295 -0
  248. package/dist/areas.js.map +1 -0
  249. package/dist/attacks.d.ts +3 -3
  250. package/dist/attacks.js +127 -0
  251. package/dist/attacks.js.map +1 -0
  252. package/dist/burning.d.ts +267 -0
  253. package/dist/burning.js +795 -0
  254. package/dist/burning.js.map +1 -0
  255. package/dist/bytes.js +21 -0
  256. package/dist/bytes.js.map +1 -0
  257. package/dist/callings.d.ts +71 -0
  258. package/dist/callings.js +157 -0
  259. package/dist/callings.js.map +1 -0
  260. package/dist/cameraOrders.d.ts +78 -0
  261. package/dist/cameraOrders.js +114 -0
  262. package/dist/cameraOrders.js.map +1 -0
  263. package/dist/camps.d.ts +70 -4
  264. package/dist/camps.js +501 -0
  265. package/dist/camps.js.map +1 -0
  266. package/dist/capture.d.ts +15 -3
  267. package/dist/capture.js +304 -0
  268. package/dist/capture.js.map +1 -0
  269. package/dist/cellLayers.d.ts +78 -13
  270. package/dist/cellLayers.js +275 -0
  271. package/dist/cellLayers.js.map +1 -0
  272. package/dist/cellPatches.d.ts +24 -0
  273. package/dist/cellPatches.js +73 -0
  274. package/dist/cellPatches.js.map +1 -0
  275. package/dist/cinematics.d.ts +10 -5
  276. package/dist/cinematics.js +161 -0
  277. package/dist/cinematics.js.map +1 -0
  278. package/dist/clock.d.ts +2 -2
  279. package/dist/clock.js +78 -0
  280. package/dist/clock.js.map +1 -0
  281. package/dist/commands.d.ts +36 -4
  282. package/dist/commands.js +636 -0
  283. package/dist/commands.js.map +1 -0
  284. package/dist/components.d.ts +31 -10
  285. package/dist/components.js +74 -0
  286. package/dist/components.js.map +1 -0
  287. package/dist/computers.d.ts +4 -4
  288. package/dist/computers.js +194 -0
  289. package/dist/computers.js.map +1 -0
  290. package/dist/concealment.d.ts +25 -2
  291. package/dist/concealment.js +409 -0
  292. package/dist/concealment.js.map +1 -0
  293. package/dist/coreComponents.js +130 -0
  294. package/dist/coreComponents.js.map +1 -0
  295. package/dist/createGame.d.ts +306 -0
  296. package/dist/createGame.js +405 -0
  297. package/dist/createGame.js.map +1 -0
  298. package/dist/dashing.d.ts +18 -2
  299. package/dist/dashing.js +41 -0
  300. package/dist/dashing.js.map +1 -0
  301. package/dist/debug.d.ts +8 -0
  302. package/dist/debug.js +5 -3
  303. package/dist/debug2.js +76 -0
  304. package/dist/debug2.js.map +1 -0
  305. package/dist/debugCommands.d.ts +6 -6
  306. package/dist/debugCommands.js +537 -0
  307. package/dist/debugCommands.js.map +1 -0
  308. package/dist/debugging.d.ts +1 -0
  309. package/dist/defaultSets.d.ts +183 -0
  310. package/dist/defaultSets.js +216 -0
  311. package/dist/defaultSets.js.map +1 -0
  312. package/dist/definitions.d.ts +6 -0
  313. package/dist/definitions.js +78 -0
  314. package/dist/definitions.js.map +1 -0
  315. package/dist/defs.d.ts +1895 -165
  316. package/dist/defs.js +380 -0
  317. package/dist/defs.js.map +1 -0
  318. package/dist/denying.d.ts +4 -4
  319. package/dist/denying.js +106 -0
  320. package/dist/denying.js.map +1 -0
  321. package/dist/destructibles.d.ts +2 -2
  322. package/dist/destructibles.js +36 -0
  323. package/dist/destructibles.js.map +1 -0
  324. package/dist/determinism.d.ts +4 -4
  325. package/dist/determinism.js +247 -0
  326. package/dist/determinism.js.map +1 -0
  327. package/dist/dialog.d.ts +17 -2
  328. package/dist/dialog.js +108 -0
  329. package/dist/dialog.js.map +1 -0
  330. package/dist/effectRefs.js +28 -0
  331. package/dist/effectRefs.js.map +1 -0
  332. package/dist/effects.d.ts +27 -11
  333. package/dist/effects.js +110 -0
  334. package/dist/effects.js.map +1 -0
  335. package/dist/endings.d.ts +1 -1
  336. package/dist/endings.js +78 -0
  337. package/dist/endings.js.map +1 -0
  338. package/dist/engagement.d.ts +40 -6
  339. package/dist/engagement.js +530 -0
  340. package/dist/engagement.js.map +1 -0
  341. package/dist/engineEvents.d.ts +72 -9
  342. package/dist/engineEvents.js +520 -0
  343. package/dist/engineEvents.js.map +1 -0
  344. package/dist/entity.d.ts +275 -26
  345. package/dist/entity.js +441 -0
  346. package/dist/entity.js.map +1 -0
  347. package/dist/entityIndex.d.ts +10 -3
  348. package/dist/entityIndex.js +149 -0
  349. package/dist/entityIndex.js.map +1 -0
  350. package/dist/errors.d.ts +6 -2
  351. package/dist/errors.js +59 -0
  352. package/dist/errors.js.map +1 -0
  353. package/dist/events.d.ts +11 -5
  354. package/dist/events.js +158 -0
  355. package/dist/events.js.map +1 -0
  356. package/dist/exactMath.js +273 -0
  357. package/dist/exactMath.js.map +1 -0
  358. package/dist/features.d.ts +1 -1
  359. package/dist/features.js +127 -0
  360. package/dist/features.js.map +1 -0
  361. package/dist/fields.d.ts +25 -5
  362. package/dist/fields.js +140 -0
  363. package/dist/fields.js.map +1 -0
  364. package/dist/fixture.d.ts +3 -3
  365. package/dist/fixture.js +512 -0
  366. package/dist/fixture.js.map +1 -0
  367. package/dist/fog.d.ts +26 -3
  368. package/dist/fog.js +333 -0
  369. package/dist/fog.js.map +1 -0
  370. package/dist/foliage.d.ts +476 -0
  371. package/dist/foliage.js +1478 -0
  372. package/dist/foliage.js.map +1 -0
  373. package/dist/foliageDebug.d.ts +57 -0
  374. package/dist/foliageDebug.js +172 -0
  375. package/dist/foliageDebug.js.map +1 -0
  376. package/dist/foliageRegrowth.d.ts +20 -0
  377. package/dist/foliageRegrowth.js +332 -0
  378. package/dist/foliageRegrowth.js.map +1 -0
  379. package/dist/formState.d.ts +67 -0
  380. package/dist/formState.js +65 -0
  381. package/dist/formState.js.map +1 -0
  382. package/dist/formation.d.ts +46 -8
  383. package/dist/formation.js +297 -0
  384. package/dist/formation.js.map +1 -0
  385. package/dist/forms.d.ts +58 -0
  386. package/dist/forms.js +146 -0
  387. package/dist/forms.js.map +1 -0
  388. package/dist/friendlyFire.d.ts +2 -2
  389. package/dist/friendlyFire.js +37 -0
  390. package/dist/friendlyFire.js.map +1 -0
  391. package/dist/game.d.ts +141 -48
  392. package/dist/game.js +834 -0
  393. package/dist/game.js.map +1 -0
  394. package/dist/gameData.d.ts +96 -22
  395. package/dist/gameData.js +1690 -0
  396. package/dist/gameData.js.map +1 -0
  397. package/dist/gameFiles.d.ts +3 -3
  398. package/dist/gameFiles.js +14 -0
  399. package/dist/gameFiles.js.map +1 -0
  400. package/dist/gates.js +92 -0
  401. package/dist/gates.js.map +1 -0
  402. package/dist/generate.d.ts +28 -1
  403. package/dist/generate.js +1062 -0
  404. package/dist/generate.js.map +1 -0
  405. package/dist/generateWorker.d.ts +7 -3
  406. package/dist/generateWorker.js +86 -0
  407. package/dist/generateWorker.js.map +1 -0
  408. package/dist/grid.d.ts +9 -0
  409. package/dist/grid.js +102 -0
  410. package/dist/grid.js.map +1 -0
  411. package/dist/ground.d.ts +17 -1
  412. package/dist/ground.js +375 -0
  413. package/dist/ground.js.map +1 -0
  414. package/dist/groundObjects.d.ts +70 -0
  415. package/dist/groundObjects.js +371 -0
  416. package/dist/groundObjects.js.map +1 -0
  417. package/dist/groundSpeed.d.ts +20 -3
  418. package/dist/groundSpeed.js +117 -0
  419. package/dist/groundSpeed.js.map +1 -0
  420. package/dist/hero.d.ts +126 -10
  421. package/dist/hero.js +432 -0
  422. package/dist/hero.js.map +1 -0
  423. package/dist/holds.d.ts +94 -0
  424. package/dist/holds.js +305 -0
  425. package/dist/holds.js.map +1 -0
  426. package/dist/home.d.ts +1 -1
  427. package/dist/home.js +30 -0
  428. package/dist/home.js.map +1 -0
  429. package/dist/hooks.d.ts +339 -57
  430. package/dist/hooks.js +105 -0
  431. package/dist/hooks.js.map +1 -0
  432. package/dist/hotReload.d.ts +6 -5
  433. package/dist/hotReload.js +145 -0
  434. package/dist/hotReload.js.map +1 -0
  435. package/dist/ids.d.ts +3 -3
  436. package/dist/ids.js +30 -0
  437. package/dist/ids.js.map +1 -0
  438. package/dist/idsFile.d.ts +36 -0
  439. package/dist/idsFile.js +134 -0
  440. package/dist/idsFile.js.map +1 -0
  441. package/dist/index.d.ts +105 -68
  442. package/dist/index.js +194 -4701
  443. package/dist/inspect.d.ts +29 -2
  444. package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
  445. package/dist/inspect.js.map +1 -0
  446. package/dist/inventory.d.ts +14 -1
  447. package/dist/inventory.js +84 -0
  448. package/dist/inventory.js.map +1 -0
  449. package/dist/items.d.ts +136 -8
  450. package/dist/items.js +585 -0
  451. package/dist/items.js.map +1 -0
  452. package/dist/lanes.d.ts +12 -3
  453. package/dist/lanes.js +496 -0
  454. package/dist/lanes.js.map +1 -0
  455. package/dist/life.d.ts +6 -2
  456. package/dist/life.js +287 -0
  457. package/dist/life.js.map +1 -0
  458. package/dist/log.d.ts +26 -3
  459. package/dist/log.js +192 -0
  460. package/dist/log.js.map +1 -0
  461. package/dist/manaBurn.d.ts +2 -2
  462. package/dist/manaBurn.js +75 -0
  463. package/dist/manaBurn.js.map +1 -0
  464. package/dist/map/file.d.ts +56 -3
  465. package/dist/map/file.js +264 -0
  466. package/dist/map/file.js.map +1 -0
  467. package/dist/map/images.js +61 -0
  468. package/dist/map/images.js.map +1 -0
  469. package/dist/map/look.d.ts +1 -1
  470. package/dist/map/look.js +30 -0
  471. package/dist/map/look.js.map +1 -0
  472. package/dist/map/pathProfile.js +183 -0
  473. package/dist/map/pathProfile.js.map +1 -0
  474. package/dist/map/resize.d.ts +4 -0
  475. package/dist/map/resize.js +136 -0
  476. package/dist/map/resize.js.map +1 -0
  477. package/dist/map/schema.js +257 -0
  478. package/dist/map/schema.js.map +1 -0
  479. package/dist/map/terrain.js +214 -0
  480. package/dist/map/terrain.js.map +1 -0
  481. package/dist/map/types.d.ts +92 -13
  482. package/dist/map/types.js +251 -0
  483. package/dist/map/types.js.map +1 -0
  484. package/dist/mapCheck/cells.js +94 -0
  485. package/dist/mapCheck/cells.js.map +1 -0
  486. package/dist/mapCheck/rules/foliage.d.ts +9 -0
  487. package/dist/mapCheck/rules/foliage.js +83 -0
  488. package/dist/mapCheck/rules/foliage.js.map +1 -0
  489. package/dist/mapCheck/rules/names.js +39 -0
  490. package/dist/mapCheck/rules/names.js.map +1 -0
  491. package/dist/mapCheck/rules/objects.d.ts +1 -1
  492. package/dist/mapCheck/rules/objects.js +56 -0
  493. package/dist/mapCheck/rules/objects.js.map +1 -0
  494. package/dist/mapCheck/rules/paths.js +32 -0
  495. package/dist/mapCheck/rules/paths.js.map +1 -0
  496. package/dist/mapCheck/rules/players.js +20 -0
  497. package/dist/mapCheck/rules/players.js.map +1 -0
  498. package/dist/mapCheck/rules/races.js +56 -0
  499. package/dist/mapCheck/rules/races.js.map +1 -0
  500. package/dist/mapCheck/rules/random.js +47 -0
  501. package/dist/mapCheck/rules/random.js.map +1 -0
  502. package/dist/mapCheck/rules/regions.js +30 -0
  503. package/dist/mapCheck/rules/regions.js.map +1 -0
  504. package/dist/mapCheck/rules/targets.js +31 -0
  505. package/dist/mapCheck/rules/targets.js.map +1 -0
  506. package/dist/mapCheck/rules/walking.js +45 -0
  507. package/dist/mapCheck/rules/walking.js.map +1 -0
  508. package/dist/mapCheck.d.ts +2 -2
  509. package/dist/mapCheck.js +63 -0
  510. package/dist/mapCheck.js.map +1 -0
  511. package/dist/mapFields.d.ts +25 -2
  512. package/dist/mapFields.js +134 -0
  513. package/dist/mapFields.js.map +1 -0
  514. package/dist/mapFile.js +176 -0
  515. package/dist/mapFile.js.map +1 -0
  516. package/dist/mapMeasure.d.ts +8 -0
  517. package/dist/mapMeasure.js +283 -0
  518. package/dist/mapMeasure.js.map +1 -0
  519. package/dist/mapMerge.d.ts +1 -0
  520. package/dist/mapMerge.js +172 -0
  521. package/dist/mapMerge.js.map +1 -0
  522. package/dist/mapObjectives.js +138 -0
  523. package/dist/mapObjectives.js.map +1 -0
  524. package/dist/mapObjects.js +80 -0
  525. package/dist/mapObjects.js.map +1 -0
  526. package/dist/math.d.ts +37 -7
  527. package/dist/math.js +155 -0
  528. package/dist/math.js.map +1 -0
  529. package/dist/messages.d.ts +71 -4
  530. package/dist/messages.js +29 -0
  531. package/dist/messages.js.map +1 -0
  532. package/dist/missionRules.d.ts +10 -2
  533. package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
  534. package/dist/missionRules.js.map +1 -0
  535. package/dist/mods.d.ts +39 -20
  536. package/dist/mods.js +271 -0
  537. package/dist/mods.js.map +1 -0
  538. package/dist/moves.d.ts +87 -0
  539. package/dist/moves.js +539 -0
  540. package/dist/moves.js.map +1 -0
  541. package/dist/names.d.ts +7 -0
  542. package/dist/names.js +122 -0
  543. package/dist/names.js.map +1 -0
  544. package/dist/navigation/agentParams.js +14 -0
  545. package/dist/navigation/agentParams.js.map +1 -0
  546. package/dist/navigation/air.d.ts +7 -3
  547. package/dist/navigation/air.js +401 -0
  548. package/dist/navigation/air.js.map +1 -0
  549. package/dist/navigation/builds.d.ts +34 -2
  550. package/dist/navigation/builds.js +287 -0
  551. package/dist/navigation/builds.js.map +1 -0
  552. package/dist/navigation/groundAreas.d.ts +59 -1
  553. package/dist/navigation/groundAreas.js +407 -0
  554. package/dist/navigation/groundAreas.js.map +1 -0
  555. package/dist/navigation/navigation.d.ts +98 -9
  556. package/dist/navigation/recast.d.ts +194 -18
  557. package/dist/navigation/recast.js +1379 -0
  558. package/dist/navigation/recast.js.map +1 -0
  559. package/dist/navigation/sidePaths.d.ts +8 -3
  560. package/dist/navigation/sidePaths.js +241 -0
  561. package/dist/navigation/sidePaths.js.map +1 -0
  562. package/dist/navigation/sized.js +243 -0
  563. package/dist/navigation/sized.js.map +1 -0
  564. package/dist/nearest.js +32 -0
  565. package/dist/nearest.js.map +1 -0
  566. package/dist/noise.js +59 -0
  567. package/dist/noise.js.map +1 -0
  568. package/dist/objectives.d.ts +12 -3
  569. package/dist/objectives.js +144 -0
  570. package/dist/objectives.js.map +1 -0
  571. package/dist/orders/basic.d.ts +5 -5
  572. package/dist/orders/basic.js +417 -0
  573. package/dist/orders/basic.js.map +1 -0
  574. package/dist/orders/build.js +278 -0
  575. package/dist/orders/build.js.map +1 -0
  576. package/dist/orders/cast.d.ts +13 -3
  577. package/dist/orders/cast.js +558 -0
  578. package/dist/orders/cast.js.map +1 -0
  579. package/dist/orders/facts.js +16 -0
  580. package/dist/orders/facts.js.map +1 -0
  581. package/dist/orders/harvest.d.ts +21 -5
  582. package/dist/orders/harvest.js +540 -0
  583. package/dist/orders/harvest.js.map +1 -0
  584. package/dist/orders/idle.d.ts +3 -1
  585. package/dist/orders/idle.js +234 -0
  586. package/dist/orders/idle.js.map +1 -0
  587. package/dist/orders/items.js +92 -0
  588. package/dist/orders/items.js.map +1 -0
  589. package/dist/orders/queue.js +108 -0
  590. package/dist/orders/queue.js.map +1 -0
  591. package/dist/orders/waiting.d.ts +39 -0
  592. package/dist/orders/waiting.js +149 -0
  593. package/dist/orders/waiting.js.map +1 -0
  594. package/dist/pack.schema.js +13 -0
  595. package/dist/pack.schema.js.map +1 -0
  596. package/dist/pack.schema.json +7622 -841
  597. package/dist/packs/director/index.d.ts +13 -5
  598. package/dist/packs/director/index.js +204 -0
  599. package/dist/packs/director/index.js.map +1 -0
  600. package/dist/packs/heroes/campaign.d.ts +3 -2
  601. package/dist/packs/heroes/campaign.js +241 -0
  602. package/dist/packs/heroes/campaign.js.map +1 -0
  603. package/dist/packs/heroes/carry.d.ts +6 -0
  604. package/dist/packs/heroes/carry.js +112 -0
  605. package/dist/packs/heroes/carry.js.map +1 -0
  606. package/dist/packs/heroes/commands.js +115 -0
  607. package/dist/packs/heroes/commands.js.map +1 -0
  608. package/dist/packs/heroes/fallen.d.ts +43 -0
  609. package/dist/packs/heroes/fallen.js +61 -0
  610. package/dist/packs/heroes/fallen.js.map +1 -0
  611. package/dist/packs/heroes/hire.js +60 -0
  612. package/dist/packs/heroes/hire.js.map +1 -0
  613. package/dist/packs/heroes/index.d.ts +7 -6
  614. package/dist/packs/heroes/index.js +130 -0
  615. package/dist/packs/heroes/index.js.map +1 -0
  616. package/dist/packs/heroes/loop.d.ts +95 -0
  617. package/dist/packs/heroes/loop.js +250 -0
  618. package/dist/packs/heroes/loop.js.map +1 -0
  619. package/dist/packs/heroes/making.d.ts +6 -3
  620. package/dist/packs/heroes/making.js +55 -0
  621. package/dist/packs/heroes/making.js.map +1 -0
  622. package/dist/packs/heroes/respawn.d.ts +3 -3
  623. package/dist/packs/heroes/respawn.js +87 -0
  624. package/dist/packs/heroes/respawn.js.map +1 -0
  625. package/dist/packs/heroes/sets.d.ts +32 -0
  626. package/dist/packs/heroes/sets.js +51 -0
  627. package/dist/packs/heroes/sets.js.map +1 -0
  628. package/dist/packs/heroes/spells.d.ts +16 -0
  629. package/dist/packs/heroes/spells.js +269 -0
  630. package/dist/packs/heroes/spells.js.map +1 -0
  631. package/dist/packs/items/defaults.d.ts +43 -0
  632. package/dist/packs/items/defaults.js +1504 -0
  633. package/dist/packs/items/defaults.js.map +1 -0
  634. package/dist/packs/items/index.d.ts +27 -0
  635. package/dist/packs/items/index.js +214 -0
  636. package/dist/packs/items/index.js.map +1 -0
  637. package/dist/packs/moba/index.d.ts +3 -3
  638. package/dist/packs/moba/index.js +174 -0
  639. package/dist/packs/moba/index.js.map +1 -0
  640. package/dist/packs/pack.d.ts +15 -15
  641. package/dist/packs/pack.js +14 -0
  642. package/dist/packs/pack.js.map +1 -0
  643. package/dist/packs.d.ts +15 -7
  644. package/dist/packs.js +222 -0
  645. package/dist/packs.js.map +1 -0
  646. package/dist/paths.d.ts +2 -0
  647. package/dist/paths.js +109 -0
  648. package/dist/paths.js.map +1 -0
  649. package/dist/plain.js +57 -0
  650. package/dist/plain.js.map +1 -0
  651. package/dist/player.d.ts +33 -10
  652. package/dist/player.js +159 -0
  653. package/dist/player.js.map +1 -0
  654. package/dist/portals.d.ts +1 -1
  655. package/dist/portals.js +194 -0
  656. package/dist/portals.js.map +1 -0
  657. package/dist/prefabs.d.ts +25 -2
  658. package/dist/prefabs.js +239 -0
  659. package/dist/prefabs.js.map +1 -0
  660. package/dist/presetBuildings.js +58 -0
  661. package/dist/presetBuildings.js.map +1 -0
  662. package/dist/presetFoliage.d.ts +27 -0
  663. package/dist/presetFoliage.js +98 -0
  664. package/dist/presetFoliage.js.map +1 -0
  665. package/dist/presetGround.js +65 -0
  666. package/dist/presetGround.js.map +1 -0
  667. package/dist/proxies.d.ts +12 -0
  668. package/dist/proxies.js +79 -0
  669. package/dist/proxies.js.map +1 -0
  670. package/dist/query.d.ts +56 -0
  671. package/dist/query.js +88 -0
  672. package/dist/query.js.map +1 -0
  673. package/dist/races.d.ts +15 -14
  674. package/dist/races.js +172 -0
  675. package/dist/races.js.map +1 -0
  676. package/dist/randomGroups.js +91 -0
  677. package/dist/randomGroups.js.map +1 -0
  678. package/dist/registry.d.ts +117 -53
  679. package/dist/registry.js +323 -0
  680. package/dist/registry.js.map +1 -0
  681. package/dist/remains.d.ts +11 -9
  682. package/dist/remains.js +188 -0
  683. package/dist/remains.js.map +1 -0
  684. package/dist/replication.d.ts +12 -7
  685. package/dist/replication.js +100 -0
  686. package/dist/replication.js.map +1 -0
  687. package/dist/rng.d.ts +2 -0
  688. package/dist/rng.js +40 -0
  689. package/dist/rng.js.map +1 -0
  690. package/dist/rules.d.ts +186 -99
  691. package/dist/rules.js +179 -0
  692. package/dist/rules.js.map +1 -0
  693. package/dist/rulesCheck.d.ts +5 -4
  694. package/dist/rulesCheck.js +693 -0
  695. package/dist/rulesCheck.js.map +1 -0
  696. package/dist/runes.d.ts +2 -2
  697. package/dist/runes.js +80 -0
  698. package/dist/runes.js.map +1 -0
  699. package/dist/save.d.ts +37 -12
  700. package/dist/save.js +532 -0
  701. package/dist/save.js.map +1 -0
  702. package/dist/scenario.d.ts +2 -2
  703. package/dist/scenario.js +99 -0
  704. package/dist/scenario.js.map +1 -0
  705. package/dist/scheduler.d.ts +3 -0
  706. package/dist/scheduler.js +156 -0
  707. package/dist/scheduler.js.map +1 -0
  708. package/dist/score.d.ts +19 -19
  709. package/dist/score.js +709 -0
  710. package/dist/score.js.map +1 -0
  711. package/dist/sequences.d.ts +10 -6
  712. package/dist/sequences.js +206 -0
  713. package/dist/sequences.js.map +1 -0
  714. package/dist/server/doorman.js +154 -0
  715. package/dist/server/doorman.js.map +1 -0
  716. package/dist/server/gameServer.d.ts +16 -1
  717. package/dist/server/gameServer.js +643 -0
  718. package/dist/server/gameServer.js.map +1 -0
  719. package/dist/server/index.d.ts +1 -1
  720. package/dist/server/lobby.js +199 -0
  721. package/dist/server/lobby.js.map +1 -0
  722. package/dist/server/log.js +18 -0
  723. package/dist/server/log.js.map +1 -0
  724. package/dist/server/match.js +267 -0
  725. package/dist/server/match.js.map +1 -0
  726. package/dist/server/mode.d.ts +18 -9
  727. package/dist/server/mode.js +220 -0
  728. package/dist/server/mode.js.map +1 -0
  729. package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
  730. package/dist/server/navigation-worker.js.map +1 -0
  731. package/dist/server/navigation.js +39 -0
  732. package/dist/server/navigation.js.map +1 -0
  733. package/dist/server/ops.d.ts +4 -0
  734. package/dist/server/ops.js +137 -0
  735. package/dist/server/ops.js.map +1 -0
  736. package/dist/server/packs.d.ts +3 -3
  737. package/dist/server/packs.js +32 -0
  738. package/dist/server/packs.js.map +1 -0
  739. package/dist/server/ratings.d.ts +5 -0
  740. package/dist/server/ratings.js +104 -0
  741. package/dist/server/ratings.js.map +1 -0
  742. package/dist/server/relay.d.ts +12 -2
  743. package/dist/server/relay.js +144 -0
  744. package/dist/server/relay.js.map +1 -0
  745. package/dist/server/rooms.d.ts +9 -2
  746. package/dist/server/rooms.js +442 -0
  747. package/dist/server/rooms.js.map +1 -0
  748. package/dist/server/seat.js +116 -0
  749. package/dist/server/seat.js.map +1 -0
  750. package/dist/server/seatSettings.d.ts +3 -3
  751. package/dist/server/seatSettings.js +63 -0
  752. package/dist/server/seatSettings.js.map +1 -0
  753. package/dist/server/secret.js +13 -0
  754. package/dist/server/secret.js.map +1 -0
  755. package/dist/server/start.d.ts +13 -6
  756. package/dist/server/start.js +76 -0
  757. package/dist/server/start.js.map +1 -0
  758. package/dist/server/websocket.d.ts +9 -1
  759. package/dist/server/websocket.js +306 -0
  760. package/dist/server/websocket.js.map +1 -0
  761. package/dist/server.js +15 -2861
  762. package/dist/session/can.js +26 -0
  763. package/dist/session/can.js.map +1 -0
  764. package/dist/session/commandReplay.d.ts +8 -2
  765. package/dist/session/commandReplay.js +293 -0
  766. package/dist/session/commandReplay.js.map +1 -0
  767. package/dist/session/debug.js +151 -0
  768. package/dist/session/debug.js.map +1 -0
  769. package/dist/session/delay.js +62 -0
  770. package/dist/session/delay.js.map +1 -0
  771. package/dist/session/delta.d.ts +14 -1
  772. package/dist/session/delta.js +407 -0
  773. package/dist/session/delta.js.map +1 -0
  774. package/dist/session/entityState.js +415 -0
  775. package/dist/session/entityState.js.map +1 -0
  776. package/dist/session/local.d.ts +47 -5
  777. package/dist/session/local.js +670 -0
  778. package/dist/session/local.js.map +1 -0
  779. package/dist/session/memory.d.ts +20 -2
  780. package/dist/session/memory.js +131 -0
  781. package/dist/session/memory.js.map +1 -0
  782. package/dist/session/protocol.d.ts +325 -31
  783. package/dist/session/protocol.js +55 -0
  784. package/dist/session/protocol.js.map +1 -0
  785. package/dist/session/remote.d.ts +74 -12
  786. package/dist/session/remote.js +1394 -0
  787. package/dist/session/remote.js.map +1 -0
  788. package/dist/session/replay.d.ts +11 -2
  789. package/dist/session/replay.js +160 -0
  790. package/dist/session/replay.js.map +1 -0
  791. package/dist/session/seed.js +12 -0
  792. package/dist/session/seed.js.map +1 -0
  793. package/dist/session/share.d.ts +5 -1
  794. package/dist/session/share.js +94 -0
  795. package/dist/session/share.js.map +1 -0
  796. package/dist/session/socket.d.ts +1 -1
  797. package/dist/session/socket.js +29 -0
  798. package/dist/session/socket.js.map +1 -0
  799. package/dist/session/wire.d.ts +5 -0
  800. package/dist/session/wire.js +84 -0
  801. package/dist/session/wire.js.map +1 -0
  802. package/dist/session/worker.d.ts +77 -12
  803. package/dist/session/worker.js +499 -0
  804. package/dist/session/worker.js.map +1 -0
  805. package/dist/shared.d.ts +31 -5
  806. package/dist/shared.js +166 -0
  807. package/dist/shared.js.map +1 -0
  808. package/dist/sides.d.ts +9 -3
  809. package/dist/sides.js +149 -0
  810. package/dist/sides.js.map +1 -0
  811. package/dist/sight.js +85 -0
  812. package/dist/sight.js.map +1 -0
  813. package/dist/simulate-worker.js +1 -1
  814. package/dist/simulate.d.ts +12 -8
  815. package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
  816. package/dist/simulate.js.map +1 -0
  817. package/dist/smart.js +77 -0
  818. package/dist/smart.js.map +1 -0
  819. package/dist/spatial.d.ts +32 -16
  820. package/dist/spatial.js +234 -0
  821. package/dist/spatial.js.map +1 -0
  822. package/dist/spawning.d.ts +1 -0
  823. package/dist/spawning.js +224 -0
  824. package/dist/spawning.js.map +1 -0
  825. package/dist/stances.d.ts +6 -3
  826. package/dist/stances.js +169 -0
  827. package/dist/stances.js.map +1 -0
  828. package/dist/start.d.ts +10 -10
  829. package/dist/start.js +75 -0
  830. package/dist/start.js.map +1 -0
  831. package/dist/stats.d.ts +42 -16
  832. package/dist/stats.js +290 -0
  833. package/dist/stats.js.map +1 -0
  834. package/dist/summoned.d.ts +52 -0
  835. package/dist/summoned.js +38 -0
  836. package/dist/summoned.js.map +1 -0
  837. package/dist/summons.d.ts +10 -13
  838. package/dist/summons.js +271 -0
  839. package/dist/summons.js.map +1 -0
  840. package/dist/systems/abilities.js +224 -0
  841. package/dist/systems/abilities.js.map +1 -0
  842. package/dist/systems/combat.d.ts +35 -1
  843. package/dist/systems/combat.js +677 -0
  844. package/dist/systems/combat.js.map +1 -0
  845. package/dist/systems/combatTold.d.ts +3 -1
  846. package/dist/systems/combatTold.js +85 -0
  847. package/dist/systems/combatTold.js.map +1 -0
  848. package/dist/systems/construction.js +80 -0
  849. package/dist/systems/construction.js.map +1 -0
  850. package/dist/systems/economy.d.ts +0 -6
  851. package/dist/systems/economy.js +128 -0
  852. package/dist/systems/economy.js.map +1 -0
  853. package/dist/systems/fog.d.ts +1 -1
  854. package/dist/systems/fog.js +120 -0
  855. package/dist/systems/fog.js.map +1 -0
  856. package/dist/systems/life.js +32 -0
  857. package/dist/systems/life.js.map +1 -0
  858. package/dist/systems/movement.d.ts +24 -12
  859. package/dist/systems/movement.js +1247 -0
  860. package/dist/systems/movement.js.map +1 -0
  861. package/dist/systems/orders.js +64 -0
  862. package/dist/systems/orders.js.map +1 -0
  863. package/dist/systems/production.js +322 -0
  864. package/dist/systems/production.js.map +1 -0
  865. package/dist/systems/productionQueue.js +120 -0
  866. package/dist/systems/productionQueue.js.map +1 -0
  867. package/dist/systems/victory.d.ts +1 -1
  868. package/dist/systems/victory.js +56 -0
  869. package/dist/systems/victory.js.map +1 -0
  870. package/dist/talk.d.ts +6 -6
  871. package/dist/talk.js +153 -0
  872. package/dist/talk.js.map +1 -0
  873. package/dist/targeting.d.ts +142 -0
  874. package/dist/targeting.js +49 -0
  875. package/dist/targeting.js.map +1 -0
  876. package/dist/tech.d.ts +20 -3
  877. package/dist/tech.js +239 -0
  878. package/dist/tech.js.map +1 -0
  879. package/dist/techTree.d.ts +7 -0
  880. package/dist/techTree.js +90 -0
  881. package/dist/techTree.js.map +1 -0
  882. package/dist/terrain.d.ts +59 -7
  883. package/dist/terrain.js +389 -0
  884. package/dist/terrain.js.map +1 -0
  885. package/dist/terrainSave.d.ts +6 -0
  886. package/dist/terrainSave.js +74 -0
  887. package/dist/terrainSave.js.map +1 -0
  888. package/dist/testing.d.ts +8 -7
  889. package/dist/testing.js +13 -739
  890. package/dist/testing.js.map +1 -1
  891. package/dist/tiles.d.ts +1 -1
  892. package/dist/tiles.js +43 -0
  893. package/dist/tiles.js.map +1 -0
  894. package/dist/timers.d.ts +29 -4
  895. package/dist/timers.js +242 -0
  896. package/dist/timers.js.map +1 -0
  897. package/dist/tomes.d.ts +4 -4
  898. package/dist/tomes.js +94 -0
  899. package/dist/tomes.js.map +1 -0
  900. package/dist/trade.js +103 -0
  901. package/dist/trade.js.map +1 -0
  902. package/dist/transport.d.ts +6 -1
  903. package/dist/transport.js +281 -0
  904. package/dist/transport.js.map +1 -0
  905. package/dist/tunables.d.ts +10 -3
  906. package/dist/tunables.js +56 -0
  907. package/dist/tunables.js.map +1 -0
  908. package/dist/unitResources.d.ts +67 -0
  909. package/dist/unitResources.js +266 -0
  910. package/dist/unitResources.js.map +1 -0
  911. package/dist/upkeep.d.ts +6 -1
  912. package/dist/upkeep.js +26 -0
  913. package/dist/upkeep.js.map +1 -0
  914. package/dist/veterancy.d.ts +8 -3
  915. package/dist/veterancy.js +131 -0
  916. package/dist/veterancy.js.map +1 -0
  917. package/dist/vision.d.ts +36 -0
  918. package/dist/vision.js +133 -0
  919. package/dist/vision.js.map +1 -0
  920. package/dist/walls.d.ts +1 -1
  921. package/dist/walls.js +278 -0
  922. package/dist/walls.js.map +1 -0
  923. package/dist/world.d.ts +606 -88
  924. package/dist/world.js +1263 -0
  925. package/dist/world.js.map +1 -0
  926. package/package.json +2 -2
  927. package/dist/ai.js.map +0 -1
  928. package/dist/attributes.d.ts +0 -66
  929. package/dist/brain-BvVdUhX8.js +0 -7659
  930. package/dist/brain-BvVdUhX8.js.map +0 -1
  931. package/dist/builds-C6LfgvEU.js +0 -460
  932. package/dist/builds-C6LfgvEU.js.map +0 -1
  933. package/dist/coreComponents-syuh2fPG.js +0 -5149
  934. package/dist/coreComponents-syuh2fPG.js.map +0 -1
  935. package/dist/debugCommands-CzjrSm66.js +0 -14739
  936. package/dist/debugCommands-CzjrSm66.js.map +0 -1
  937. package/dist/determinism-BCymQwiE.js +0 -518
  938. package/dist/determinism-BCymQwiE.js.map +0 -1
  939. package/dist/game-DiJEN-Ks.js +0 -5800
  940. package/dist/game-DiJEN-Ks.js.map +0 -1
  941. package/dist/index.js.map +0 -1
  942. package/dist/inspect-D9dWHmZ0.js.map +0 -1
  943. package/dist/local-Dkovq42k.js +0 -1379
  944. package/dist/local-Dkovq42k.js.map +0 -1
  945. package/dist/missionRules-C-bGxm0Q.js.map +0 -1
  946. package/dist/navigation-worker.js.map +0 -1
  947. package/dist/packs-g5thvmGn.js +0 -3199
  948. package/dist/packs-g5thvmGn.js.map +0 -1
  949. package/dist/profiles-B3NS9jwk.js.map +0 -1
  950. package/dist/server.js.map +0 -1
  951. package/dist/simulate-oXBiw1Ff.js.map +0 -1
@@ -0,0 +1,110 @@
1
+ import { defineComponent } from "./components.js";
2
+ import { fxStarted, fxStopped } from "./engineEvents.js";
3
+ import { replicateEvent } from "./replication.js";
4
+ import { plain } from "./plain.js";
5
+ //#region src/effects.ts
6
+ /** A number from a tick and a count, the same wherever the game runs */
7
+ var seedOf = (tick, count) => {
8
+ let h = Math.imul(tick ^ 2654435769, 2246822507) ^ Math.imul(count + 1, 3266489909);
9
+ h = Math.imul(h ^ h >>> 16, 2146121005);
10
+ return (h ^ h >>> 15) >>> 0;
11
+ };
12
+ /**
13
+ * How many effects a world played, for their ids and their seeds: the world's, and saved with it, so that the game
14
+ * loaded from a save gives its next effect the id and the seed the game that went on does (and a stop finds its start)
15
+ */
16
+ var played = defineComponent({
17
+ id: "core.effectsPlayed",
18
+ default: () => 0
19
+ });
20
+ /**
21
+ * Plays one of the view's effects on the screens of the players who see where it is (or those it is for), now. What it
22
+ * gives back stops it (`stopFx`). Not in the world's state but for its count: a save, and a player who joins later,
23
+ * know nothing of the effect itself
24
+ *
25
+ * @beta
26
+ */
27
+ function playFx(world, effect, options = {}) {
28
+ const count = world.state(played) + 1;
29
+ world.setState(played, count);
30
+ const { at, on, point, params, seed, to = "everyone", overFog, toward } = options;
31
+ const entity = typeof on === "number" ? world.get(on) : on;
32
+ if (on !== void 0 && !entity) return count;
33
+ const other = typeof toward === "number" ? world.get(toward) : toward && "pos" in toward ? toward : void 0;
34
+ if (typeof toward === "number" && !other) return count;
35
+ const cue = {
36
+ id: count,
37
+ effect,
38
+ seed: seed ?? seedOf(world.tick, count),
39
+ ...entity ? {
40
+ on: entity.id,
41
+ x: entity.pos.x,
42
+ z: entity.pos.z
43
+ } : at && {
44
+ x: at.x,
45
+ z: at.z,
46
+ ..."y" in at && { y: at.y }
47
+ },
48
+ ...point && { point },
49
+ ...params && { params: plain(params, `params of the effect "${effect}"`, "FxOptions") },
50
+ ...to !== "everyone" && { to: Array.isArray(to) ? to : [to] },
51
+ ...overFog && { overFog },
52
+ ...other ? { toward: other.id } : toward && {
53
+ tx: toward.x,
54
+ tz: toward.z
55
+ }
56
+ };
57
+ world.events.emit(fxStarted, cue);
58
+ return count;
59
+ }
60
+ /**
61
+ * Stops an effect the rules played (`playFx`), on every screen: as its own `stop` says, over `fade` seconds
62
+ *
63
+ * @beta
64
+ */
65
+ function stopFx(world, id, options = {}) {
66
+ world.events.emit(fxStopped, {
67
+ id,
68
+ ...options.fade !== void 0 && { fade: options.fade }
69
+ });
70
+ }
71
+ /** The effects of the rules a seat was shown, by id, for a stop to be told to whom saw the start: the latest so many */
72
+ var SHOWN = {};
73
+ /**
74
+ * The effects of the rules a seat was shown (`LocalSession.keptEffects`)
75
+ *
76
+ * @internal
77
+ */
78
+ var shownFx = (view) => view.keep(SHOWN, () => /* @__PURE__ */ new Set());
79
+ /** An effect the rules play: to whom it is for, who sees where it is (what is there to be noticed, over the fog) */
80
+ var toldFx = replicateEvent(fxStarted, "fx", ({ id, effect, to, overFog, on, toward, ...rest }, view) => {
81
+ if (to && !to.includes(view.player)) return void 0;
82
+ const entity = on === void 0 ? void 0 : view.world.get(on);
83
+ const other = toward === void 0 ? void 0 : view.world.get(toward);
84
+ const seenEnd = (one) => !!one && (view.knows(one) || !!overFog && !one.hidden);
85
+ const seen = entity ? seenEnd(entity) : rest.x === void 0 || overFog || view.sees(rest.x, rest.z);
86
+ const seenOther = other ? seenEnd(other) : rest.tx !== void 0 && (overFog || view.sees(rest.tx, rest.tz));
87
+ if (!seen && !seenOther) return void 0;
88
+ const shown = shownFx(view);
89
+ shown.add(id);
90
+ if (shown.size > view.mostEffects) shown.delete(shown.values().next().value);
91
+ return {
92
+ type: "fx",
93
+ id,
94
+ fx: effect,
95
+ ...rest,
96
+ ...on !== void 0 && { on },
97
+ ...overFog && { overFog },
98
+ ...other && view.knows(other) && { toward: other.id }
99
+ };
100
+ });
101
+ /** An effect stopped: to whom saw it start */
102
+ var toldFxStopped = replicateEvent(fxStopped, "fxStop", ({ id, fade }, view) => shownFx(view).delete(id) ? {
103
+ type: "fxStop",
104
+ id,
105
+ ...fade !== void 0 && { fade }
106
+ } : void 0);
107
+ //#endregion
108
+ export { playFx, played, shownFx, stopFx, toldFx, toldFxStopped };
109
+
110
+ //# sourceMappingURL=effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.js","names":[],"sources":["../src/effects.ts"],"sourcesContent":["import { fxStarted, fxStopped } from '#engine/engineEvents'\nimport { defineComponent } from './components'\nimport type { Audience } from './dialog'\nimport type { Entity, PlayerId } from './entity'\nimport type { Vec2 } from './math'\nimport { plain } from './plain'\nimport type { World } from './world'\nimport { replicateEvent } from './replication'\nimport type { SessionView } from './replication'\n\n/*\n * Effects are the screen's: fire, a blast, a glow, made and tuned in a game's view (`GameView.fx.defs`). The rules say when\n * one plays, and where, so that every player who sees the place sees it at the same moment (effects plan A3): a mine\n * going off, a shrine waking. Nothing an effect does decides anything in the game; it is not in the world's state, nor\n * in a save. What lasts is shown by what the world keeps (a building's damaged look, a map's own effects)\n */\n\n/**\n * An effect the rules play on the screens, as the engine's `effect` event carries it (`world.fx`)\n *\n * @beta\n */\nexport interface FxCue {\n\t/** The rules' handle on it, for `world.stopFx` */\n\tid: number\n\t/** Which of the view's effects, by name (`GameView.fx.defs`) */\n\teffect: string\n\t/** Where: a place, at a height or on the ground */\n\tx?: number\n\t/** The height it is at; on the ground when left out */\n\ty?: number\n\t/** The north-south place, in cells */\n\tz?: number\n\t/** Or on an entity, by its id: it follows it on the screen, at a point of its model */\n\ton?: number\n\t/** The point of the entity's model it follows, by name; the entity's middle when left out */\n\tpoint?: string\n\t/** Its knobs, over the effect's own: plain data, as it goes to every screen */\n\tparams?: Record<string, unknown>\n\t/** What its random parts go by: the same on every screen */\n\tseed: number\n\t/** Who sees it: everyone who sees the place when left out */\n\tto?: PlayerId[]\n\t/** Seen over the fog of war, by whom it is for: what is there to be noticed */\n\toverFog?: boolean\n\t/** The other end of one drawn between two (`FxOptions.toward`): an entity by its id */\n\ttoward?: number\n\t/** Or a place, east-west */\n\ttx?: number\n\t/** And north-south */\n\ttz?: number\n}\n\n/**\n * How the rules play an effect (`world.fx`)\n *\n * @beta\n */\nexport interface FxOptions {\n\t/** A place: on the ground (`{ x, z }`) or at a height (`{ x, y, z }`) */\n\tat?: Vec2 | { x: number; y: number; z: number }\n\t/** Or an entity: on the screen it follows it, and ends with it */\n\ton?: Entity | number\n\t/** A point of the entity's model (`ModelDef.points`) */\n\tpoint?: string\n\t/** Its knobs, over the effect's own (`EffectDef.params`): plain data */\n\tparams?: Record<string, unknown>\n\t/** What its random parts go by: one made from the tick when left out, the same on every screen all the same */\n\tseed?: number\n\t/** Who sees it: a player, some, or everyone who sees the place (when left out) */\n\tto?: Audience\n\t/** Seen over the fog of war by whom it is for, as what is there to be noticed. No when left out */\n\toverFog?: boolean\n\t/**\n\t * The other end, for an effect drawn between two (a beam, a tether, a link of a chain: the client's `linkFx`): an\n\t * entity it follows on the screen, or a place. It starts at `at` or `on`; seen by whoever sees either end\n\t *\n\t * @beta\n\t */\n\ttoward?: Entity | number | Vec2\n}\n\n/** A number from a tick and a count, the same wherever the game runs */\nconst seedOf = (tick: number, count: number): number => {\n\tlet h = Math.imul(tick ^ 0x9e3779b9, 0x85ebca6b) ^ Math.imul(count + 1, 0xc2b2ae35)\n\th = Math.imul(h ^ (h >>> 16), 0x7feb352d)\n\treturn (h ^ (h >>> 15)) >>> 0\n}\n\n/**\n * How many effects a world played, for their ids and their seeds: the world's, and saved with it, so that the game\n * loaded from a save gives its next effect the id and the seed the game that went on does (and a stop finds its start)\n */\nexport const played = defineComponent<number>({ id: 'core.effectsPlayed', default: () => 0 })\n\n/**\n * Plays one of the view's effects on the screens of the players who see where it is (or those it is for), now. What it\n * gives back stops it (`stopFx`). Not in the world's state but for its count: a save, and a player who joins later,\n * know nothing of the effect itself\n *\n * @beta\n */\nexport function playFx(world: World, effect: string, options: FxOptions = {}): number {\n\tconst count = world.state(played) + 1\n\tworld.setState(played, count)\n\tconst { at, on, point, params, seed, to = 'everyone', overFog, toward } = options\n\tconst entity = typeof on === 'number' ? world.get(on) : on\n\tif (on !== undefined && !entity) return count\n\tconst other = typeof toward === 'number' ? world.get(toward) : toward && 'pos' in toward ? (toward as Entity) : undefined\n\tif (typeof toward === 'number' && !other) return count\n\tconst cue: FxCue = {\n\t\tid: count,\n\t\teffect,\n\t\tseed: seed ?? seedOf(world.tick, count),\n\t\t...(entity ? { on: entity.id, x: entity.pos.x, z: entity.pos.z } : at && { x: at.x, z: at.z, ...('y' in at && { y: at.y }) }),\n\t\t...(point && { point }),\n\t\t...(params && { params: plain(params, `params of the effect \"${effect}\"`, 'FxOptions') as Record<string, unknown> }),\n\t\t...(to !== 'everyone' && { to: Array.isArray(to) ? to : [to] }),\n\t\t...(overFog && { overFog }),\n\t\t...(other ? { toward: other.id } : toward && { tx: (toward as Vec2).x, tz: (toward as Vec2).z })\n\t}\n\tworld.events.emit(fxStarted, cue)\n\treturn count\n}\n\n/**\n * Stops an effect the rules played (`playFx`), on every screen: as its own `stop` says, over `fade` seconds\n *\n * @beta\n */\nexport function stopFx(world: World, id: number, options: { fade?: number } = {}): void {\n\tworld.events.emit(fxStopped, { id, ...(options.fade !== undefined && { fade: options.fade }) })\n}\n\n/** The effects of the rules a seat was shown, by id, for a stop to be told to whom saw the start: the latest so many */\nconst SHOWN = {}\n\n/**\n * The effects of the rules a seat was shown (`LocalSession.keptEffects`)\n *\n * @internal\n */\nexport const shownFx = (view: SessionView): Set<number> => view.keep(SHOWN, () => new Set<number>())\n\n/** An effect the rules play: to whom it is for, who sees where it is (what is there to be noticed, over the fog) */\nexport const toldFx = replicateEvent(fxStarted, 'fx', ({ id, effect, to, overFog, on, toward, ...rest }, view) => {\n\tif (to && !to.includes(view.player)) return undefined\n\tconst entity = on === undefined ? undefined : view.world.get(on)\n\tconst other = toward === undefined ? undefined : view.world.get(toward)\n\tconst seenEnd = (one: typeof entity) => !!one && (view.knows(one) || (!!overFog && !one.hidden))\n\tconst seen = entity ? seenEnd(entity) : rest.x === undefined || overFog || view.sees(rest.x, rest.z!)\n\t// one drawn between two: by whoever sees either end\n\tconst seenOther = other ? seenEnd(other) : rest.tx !== undefined && (overFog || view.sees(rest.tx, rest.tz!))\n\tif (!seen && !seenOther) return undefined\n\tconst shown = shownFx(view)\n\tshown.add(id)\n\t// most are never stopped: the oldest are let go of, as a stop that late has nothing left to stop\n\tif (shown.size > view.mostEffects) shown.delete(shown.values().next().value!)\n\treturn {\n\t\ttype: 'fx',\n\t\tid,\n\t\tfx: effect,\n\t\t...rest,\n\t\t...(on !== undefined && { on }),\n\t\t...(overFog && { overFog }),\n\t\t...(other && view.knows(other) && { toward: other.id })\n\t}\n})\n\n/** An effect stopped: to whom saw it start */\nexport const toldFxStopped = replicateEvent(fxStopped, 'fxStop', ({ id, fade }, view) =>\n\tshownFx(view).delete(id) ? { type: 'fxStop', id, ...(fade !== undefined && { fade }) } : undefined\n)\n"],"mappings":";;;;;;AAmFA,IAAM,UAAU,MAAc,UAA0B;CACvD,IAAI,IAAI,KAAK,KAAK,OAAO,YAAY,UAAU,IAAI,KAAK,KAAK,QAAQ,GAAG,UAAU;CAClF,IAAI,KAAK,KAAK,IAAK,MAAM,IAAK,UAAU;CACxC,QAAQ,IAAK,MAAM,QAAS;AAC7B;;;;;AAMA,IAAa,SAAS,gBAAwB;CAAE,IAAI;CAAsB,eAAe;AAAE,CAAC;;;;;;;;AAS5F,SAAgB,OAAO,OAAc,QAAgB,UAAqB,CAAC,GAAW;CACrF,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;CACpC,MAAM,SAAS,QAAQ,KAAK;CAC5B,MAAM,EAAE,IAAI,IAAI,OAAO,QAAQ,MAAM,KAAK,YAAY,SAAS,WAAW;CAC1E,MAAM,SAAS,OAAO,OAAO,WAAW,MAAM,IAAI,EAAE,IAAI;CACxD,IAAI,OAAO,KAAA,KAAa,CAAC,QAAQ,OAAO;CACxC,MAAM,QAAQ,OAAO,WAAW,WAAW,MAAM,IAAI,MAAM,IAAI,UAAU,SAAS,SAAU,SAAoB,KAAA;CAChH,IAAI,OAAO,WAAW,YAAY,CAAC,OAAO,OAAO;CACjD,MAAM,MAAa;EAClB,IAAI;EACJ;EACA,MAAM,QAAQ,OAAO,MAAM,MAAM,KAAK;EACtC,GAAI,SAAS;GAAE,IAAI,OAAO;GAAI,GAAG,OAAO,IAAI;GAAG,GAAG,OAAO,IAAI;EAAE,IAAI,MAAM;GAAE,GAAG,GAAG;GAAG,GAAG,GAAG;GAAG,GAAI,OAAO,MAAM,EAAE,GAAG,GAAG,EAAE;EAAG;EAC3H,GAAI,SAAS,EAAE,MAAM;EACrB,GAAI,UAAU,EAAE,QAAQ,MAAM,QAAQ,yBAAyB,OAAO,IAAI,WAAW,EAA6B;EAClH,GAAI,OAAO,cAAc,EAAE,IAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE;EAC7D,GAAI,WAAW,EAAE,QAAQ;EACzB,GAAI,QAAQ,EAAE,QAAQ,MAAM,GAAG,IAAI,UAAU;GAAE,IAAK,OAAgB;GAAG,IAAK,OAAgB;EAAE;CAC/F;CACA,MAAM,OAAO,KAAK,WAAW,GAAG;CAChC,OAAO;AACR;;;;;;AAOA,SAAgB,OAAO,OAAc,IAAY,UAA6B,CAAC,GAAS;CACvF,MAAM,OAAO,KAAK,WAAW;EAAE;EAAI,GAAI,QAAQ,SAAS,KAAA,KAAa,EAAE,MAAM,QAAQ,KAAK;CAAG,CAAC;AAC/F;;AAGA,IAAM,QAAQ,CAAC;;;;;;AAOf,IAAa,WAAW,SAAmC,KAAK,KAAK,6BAAa,IAAI,IAAY,CAAC;;AAGnG,IAAa,SAAS,eAAe,WAAW,OAAO,EAAE,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,GAAG,QAAQ,SAAS;CACjH,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,MAAM,GAAG,OAAO,KAAA;CAC5C,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,KAAK,MAAM,IAAI,EAAE;CAC/D,MAAM,QAAQ,WAAW,KAAA,IAAY,KAAA,IAAY,KAAK,MAAM,IAAI,MAAM;CACtE,MAAM,WAAW,QAAuB,CAAC,CAAC,QAAQ,KAAK,MAAM,GAAG,KAAM,CAAC,CAAC,WAAW,CAAC,IAAI;CACxF,MAAM,OAAO,SAAS,QAAQ,MAAM,IAAI,KAAK,MAAM,KAAA,KAAa,WAAW,KAAK,KAAK,KAAK,GAAG,KAAK,CAAE;CAEpG,MAAM,YAAY,QAAQ,QAAQ,KAAK,IAAI,KAAK,OAAO,KAAA,MAAc,WAAW,KAAK,KAAK,KAAK,IAAI,KAAK,EAAG;CAC3G,IAAI,CAAC,QAAQ,CAAC,WAAW,OAAO,KAAA;CAChC,MAAM,QAAQ,QAAQ,IAAI;CAC1B,MAAM,IAAI,EAAE;CAEZ,IAAI,MAAM,OAAO,KAAK,aAAa,MAAM,OAAO,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAM;CAC5E,OAAO;EACN,MAAM;EACN;EACA,IAAI;EACJ,GAAG;EACH,GAAI,OAAO,KAAA,KAAa,EAAE,GAAG;EAC7B,GAAI,WAAW,EAAE,QAAQ;EACzB,GAAI,SAAS,KAAK,MAAM,KAAK,KAAK,EAAE,QAAQ,MAAM,GAAG;CACtD;AACD,CAAC;;AAGD,IAAa,gBAAgB,eAAe,WAAW,WAAW,EAAE,IAAI,QAAQ,SAC/E,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI;CAAE,MAAM;CAAU;CAAI,GAAI,SAAS,KAAA,KAAa,EAAE,KAAK;AAAG,IAAI,KAAA,CAC1F"}
package/dist/endings.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare const pauses: import("./components").Component<{
7
7
  used: Record<number, number>;
8
8
  }>;
9
9
  /**
10
- * How many pauses a player has left (`GameRules.talk.pauses.each`, less what they used)
10
+ * How many pauses a player has left (`RuleSettings.talk.pauses.each`, less what they used)
11
11
  *
12
12
  * @beta
13
13
  */
@@ -0,0 +1,78 @@
1
+ import { defineComponent } from "./components.js";
2
+ import { pauseAsked, playerSurrendered } from "./engineEvents.js";
3
+ import { engineMessage } from "./messages.js";
4
+ import { defeat } from "./systems/victory.js";
5
+ //#region src/endings.ts
6
+ /** How many pauses each player has used, by player */
7
+ var pauses = defineComponent({
8
+ id: "core.pauses",
9
+ default: () => ({ used: {} })
10
+ });
11
+ /**
12
+ * How many pauses a player has left (`RuleSettings.talk.pauses.each`, less what they used)
13
+ *
14
+ * @beta
15
+ */
16
+ function pausesLeft(world, player) {
17
+ return Math.max(0, world.settings.talk.pauses.each - (world.state(pauses).used[player] ?? 0));
18
+ }
19
+ /** Whether a player may give up or pause: one in the game, not out of it, in a game not over */
20
+ function playing(world, player) {
21
+ const who = world.player(player);
22
+ return !who.neutral && !who.creeps && !who.defeated && world.winner === null;
23
+ }
24
+ /**
25
+ * A player gives up: out of the game as if beaten, once the game's `beforeSurrender` lets them. The rest of their
26
+ * side plays on; a side with nobody left loses, as the game's own way to win says (`lastTeamStanding` counts one who
27
+ * gave up as one who was in the game)
28
+ *
29
+ * @beta
30
+ */
31
+ function surrender(world, player) {
32
+ if (!playing(world, player)) return;
33
+ const asked = {
34
+ player,
35
+ cancelled: false
36
+ };
37
+ if (world.hooks.has("beforeSurrender")) world.hooks.run("beforeSurrender", asked);
38
+ if (asked.cancelled) return world.message(player, asked.reason ?? engineMessage("cannotDoThat"));
39
+ const who = world.player(player);
40
+ who.established = true;
41
+ world.events.emit(playerSurrendered, { player });
42
+ defeat(world, player);
43
+ for (const other of world.players.values()) if (other.id !== player && !other.neutral) world.message(other.id, engineMessage("surrendered", { player: who.name }), "info");
44
+ }
45
+ /**
46
+ * A player asks for the game to be paused: one of their pauses (`RuleSettings.talk.pauses.each`), for at most
47
+ * `RuleSettings.talk.pauses.seconds`, once the game's `beforePause` lets them. Whoever runs the world pauses it on the event
48
+ * (`pauseAsked`): a server does; a game played in the page pauses with its menu instead
49
+ *
50
+ * @internal
51
+ */
52
+ function askPause(world, player) {
53
+ if (!playing(world, player)) return;
54
+ const left = pausesLeft(world, player);
55
+ if (left <= 0) return world.message(player, engineMessage("noPausesLeft"));
56
+ const asked = {
57
+ player,
58
+ left,
59
+ seconds: world.settings.talk.pauses.seconds,
60
+ cancelled: false
61
+ };
62
+ if (world.hooks.has("beforePause")) world.hooks.run("beforePause", asked);
63
+ if (asked.cancelled) return world.message(player, asked.reason ?? engineMessage("cannotDoThat"));
64
+ const { used } = world.state(pauses);
65
+ world.setState(pauses, { used: {
66
+ ...used,
67
+ [player]: (used[player] ?? 0) + 1
68
+ } });
69
+ world.events.emit(pauseAsked, {
70
+ player,
71
+ seconds: Math.max(0, asked.seconds),
72
+ left: left - 1
73
+ });
74
+ }
75
+ //#endregion
76
+ export { askPause, pauses, pausesLeft, surrender };
77
+
78
+ //# sourceMappingURL=endings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endings.js","names":["pauseAskedEvent"],"sources":["../src/endings.ts"],"sourcesContent":["import { pauseAsked as pauseAskedEvent, playerSurrendered } from '#engine/engineEvents'\nimport { defineComponent } from './components'\nimport type { PlayerId } from './entity'\nimport { type BeforePause, type BeforeSurrender, type Uncancelled } from './hooks'\nimport { engineMessage } from './messages'\nimport { defeat } from './systems/victory'\nimport type { World } from './world'\n\n/*\n * Giving up, and asking for a pause (S53). Giving up is the defeat there already is, reached another way: the player\n * is out, told so, and the others are told who gave up. A pause is asked of whoever runs the world (a server: its host\n * stops stepping it), as the world cannot stop itself and still hear that it is to go on; how many each player has\n * used is kept in the world, so in a save, and the game's hooks decide (`beforeSurrender`, `beforePause`).\n */\n\n/** How many pauses each player has used, by player */\nexport const pauses = defineComponent<{ used: Record<number, number> }>({ id: 'core.pauses', default: () => ({ used: {} }) })\n\n/**\n * How many pauses a player has left (`RuleSettings.talk.pauses.each`, less what they used)\n *\n * @beta\n */\nexport function pausesLeft(world: World, player: PlayerId): number {\n\treturn Math.max(0, world.settings.talk.pauses.each - (world.state(pauses).used[player] ?? 0))\n}\n\n/** Whether a player may give up or pause: one in the game, not out of it, in a game not over */\nfunction playing(world: World, player: PlayerId): boolean {\n\tconst who = world.player(player)\n\treturn !who.neutral && !who.creeps && !who.defeated && world.winner === null\n}\n\n/**\n * A player gives up: out of the game as if beaten, once the game's `beforeSurrender` lets them. The rest of their\n * side plays on; a side with nobody left loses, as the game's own way to win says (`lastTeamStanding` counts one who\n * gave up as one who was in the game)\n *\n * @beta\n */\nexport function surrender(world: World, player: PlayerId): void {\n\tif (!playing(world, player)) return\n\tconst asked: Uncancelled<BeforeSurrender> = { player, cancelled: false }\n\tif (world.hooks.has('beforeSurrender')) world.hooks.run('beforeSurrender', asked)\n\tif (asked.cancelled) return world.message(player, asked.reason ?? engineMessage('cannotDoThat'))\n\tconst who = world.player(player)\n\t// in the game, for the rule of the last side standing: one who never had a building is counted too\n\twho.established = true\n\tworld.events.emit(playerSurrendered, { player })\n\tdefeat(world, player)\n\tfor (const other of world.players.values()) {\n\t\tif (other.id !== player && !other.neutral) world.message(other.id, engineMessage('surrendered', { player: who.name }), 'info')\n\t}\n}\n\n/**\n * A player asks for the game to be paused: one of their pauses (`RuleSettings.talk.pauses.each`), for at most\n * `RuleSettings.talk.pauses.seconds`, once the game's `beforePause` lets them. Whoever runs the world pauses it on the event\n * (`pauseAsked`): a server does; a game played in the page pauses with its menu instead\n *\n * @internal\n */\nexport function askPause(world: World, player: PlayerId): void {\n\tif (!playing(world, player)) return\n\tconst left = pausesLeft(world, player)\n\tif (left <= 0) return world.message(player, engineMessage('noPausesLeft'))\n\tconst asked: Uncancelled<BeforePause> = { player, left, seconds: world.settings.talk.pauses.seconds, cancelled: false }\n\tif (world.hooks.has('beforePause')) world.hooks.run('beforePause', asked)\n\tif (asked.cancelled) return world.message(player, asked.reason ?? engineMessage('cannotDoThat'))\n\tconst { used } = world.state(pauses)\n\tworld.setState(pauses, { used: { ...used, [player]: (used[player] ?? 0) + 1 } })\n\tworld.events.emit(pauseAskedEvent, { player, seconds: Math.max(0, asked.seconds), left: left - 1 })\n}\n"],"mappings":";;;;;;AAgBA,IAAa,SAAS,gBAAkD;CAAE,IAAI;CAAe,gBAAgB,EAAE,MAAM,CAAC,EAAE;AAAG,CAAC;;;;;;AAO5H,SAAgB,WAAW,OAAc,QAA0B;CAClE,OAAO,KAAK,IAAI,GAAG,MAAM,SAAS,KAAK,OAAO,QAAQ,MAAM,MAAM,MAAM,CAAC,CAAC,KAAK,WAAW,EAAE;AAC7F;;AAGA,SAAS,QAAQ,OAAc,QAA2B;CACzD,MAAM,MAAM,MAAM,OAAO,MAAM;CAC/B,OAAO,CAAC,IAAI,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,YAAY,MAAM,WAAW;AACzE;;;;;;;;AASA,SAAgB,UAAU,OAAc,QAAwB;CAC/D,IAAI,CAAC,QAAQ,OAAO,MAAM,GAAG;CAC7B,MAAM,QAAsC;EAAE;EAAQ,WAAW;CAAM;CACvE,IAAI,MAAM,MAAM,IAAI,iBAAiB,GAAG,MAAM,MAAM,IAAI,mBAAmB,KAAK;CAChF,IAAI,MAAM,WAAW,OAAO,MAAM,QAAQ,QAAQ,MAAM,UAAU,cAAc,cAAc,CAAC;CAC/F,MAAM,MAAM,MAAM,OAAO,MAAM;CAE/B,IAAI,cAAc;CAClB,MAAM,OAAO,KAAK,mBAAmB,EAAE,OAAO,CAAC;CAC/C,OAAO,OAAO,MAAM;CACpB,KAAK,MAAM,SAAS,MAAM,QAAQ,OAAO,GACxC,IAAI,MAAM,OAAO,UAAU,CAAC,MAAM,SAAS,MAAM,QAAQ,MAAM,IAAI,cAAc,eAAe,EAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,MAAM;AAE/H;;;;;;;;AASA,SAAgB,SAAS,OAAc,QAAwB;CAC9D,IAAI,CAAC,QAAQ,OAAO,MAAM,GAAG;CAC7B,MAAM,OAAO,WAAW,OAAO,MAAM;CACrC,IAAI,QAAQ,GAAG,OAAO,MAAM,QAAQ,QAAQ,cAAc,cAAc,CAAC;CACzE,MAAM,QAAkC;EAAE;EAAQ;EAAM,SAAS,MAAM,SAAS,KAAK,OAAO;EAAS,WAAW;CAAM;CACtH,IAAI,MAAM,MAAM,IAAI,aAAa,GAAG,MAAM,MAAM,IAAI,eAAe,KAAK;CACxE,IAAI,MAAM,WAAW,OAAO,MAAM,QAAQ,QAAQ,MAAM,UAAU,cAAc,cAAc,CAAC;CAC/F,MAAM,EAAE,SAAS,MAAM,MAAM,MAAM;CACnC,MAAM,SAAS,QAAQ,EAAE,MAAM;EAAE,GAAG;GAAO,UAAU,KAAK,WAAW,KAAK;CAAE,EAAE,CAAC;CAC/E,MAAM,OAAO,KAAKA,YAAiB;EAAE;EAAQ,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO;EAAG,MAAM,OAAO;CAAE,CAAC;AACnG"}
@@ -1,5 +1,5 @@
1
- import type { Entity } from './entity';
2
- import type { Vec2 } from './math';
1
+ import { type Entity } from './entity';
2
+ import { type Vec2 } from './math';
3
3
  import type { World } from './world';
4
4
  /**
5
5
  * Where an attacker fights from: `ground`, `air` and `water` for the engine, any other name for a game's own
@@ -7,6 +7,13 @@ import type { World } from './world';
7
7
  * @beta
8
8
  */
9
9
  export type EngageLayer = 'ground' | 'air' | 'water' | (string & {});
10
+ /**
11
+ * How much farther an attack reaches a structure, whose edge is its footprint's: the navmesh keeps units a little away
12
+ * from walls (`engage`, the stances pack, and where an attacker stands by a building)
13
+ *
14
+ * @beta
15
+ */
16
+ export declare const STRUCTURE_REACH = 0.4;
10
17
  /**
11
18
  * Seconds a target that could not be got at is left alone (see `shun`)
12
19
  *
@@ -20,7 +27,7 @@ export declare const SHUN_TIME = 4;
20
27
  */
21
28
  export declare function bandOf(world: World, attacker: Entity): number;
22
29
  /**
23
- * The layer an attacker fights from, as the game's rules say (`GameRules.combat.engageLayer`)
30
+ * The layer an attacker fights from, as the game's rules say (`RuleSettings.combat.engageLayer`)
24
31
  *
25
32
  * @beta
26
33
  */
@@ -39,7 +46,7 @@ export declare function defaultEngageLayer(_world: World, attacker: Entity): Eng
39
46
  */
40
47
  export declare function defaultEngageRoom(world: World, target: Entity, attacker: Entity): number;
41
48
  /**
42
- * How many attackers like this one may fight the target at once, as the game's rules say (`GameRules.combat.engageRoom`)
49
+ * How many attackers like this one may fight the target at once, as the game's rules say (`RuleSettings.combat.engageRoom`)
43
50
  *
44
51
  * @beta
45
52
  */
@@ -76,7 +83,8 @@ export declare function engagedWith(world: World, attacker: Entity): Entity | un
76
83
  */
77
84
  export declare function engageWith(world: World, attacker: Entity, target: Entity): void;
78
85
  /**
79
- * Lets go of whatever the attacker was engaged with, and of its spot there
86
+ * Lets go of whatever the attacker was engaged with, and of its spot there. Without the world, the rest of the tick
87
+ * still counts it there, with its spot
80
88
  *
81
89
  * @beta
82
90
  */
@@ -89,7 +97,7 @@ export declare function release(attacker: Entity, world?: World): void;
89
97
  */
90
98
  export declare function spotFor(world: World, attacker: Entity, target: Entity): Vec2;
91
99
  /**
92
- * Whether the attacker has been closing in on the target for longer than the game lets it (`GameRules.combat.giveUpChase`) without getting closer
100
+ * Whether the attacker has been closing in on the target for longer than the game lets it (`RuleSettings.combat.giveUpChase`) without getting closer
93
101
  *
94
102
  * @beta
95
103
  */
@@ -106,3 +114,29 @@ export declare function shun(world: World, attacker: Entity, target: Entity, sec
106
114
  * @beta
107
115
  */
108
116
  export declare function isShunned(world: World, attacker: Entity, target: Entity): boolean;
117
+ /**
118
+ * The engine's distance from the middle of a target at which an attacker waits for room there
119
+ * (`RuleSettings.combat.queueDistance`): just behind those fighting it, the target's size, two of the attacker, its reach
120
+ * and half a cell out
121
+ *
122
+ * @beta
123
+ */
124
+ export declare function defaultQueueDistance(world: World, attacker: Entity, target: Entity): number;
125
+ /**
126
+ * Where an attacker waits for room at a target (`holdOff`): out at the game's queue distance
127
+ * (`RuleSettings.combat.queueDistance`) on its own side of it, or at `angle` (seen from the target, about the up axis), on
128
+ * ground it can stand on
129
+ *
130
+ * @beta
131
+ */
132
+ export declare function queuePoint(world: World, attacker: Entity, target: Entity, angle?: number): Vec2;
133
+ /**
134
+ * Where the attacker could fight the target from now: a place with room for it (`isCrowded`) where no one stands, nor
135
+ * is on the way to: round a unit on its ring, round a building by its sides, the nearest its own side first. `straight`
136
+ * (the default): only one it can walk straight to without pushing through those fighting a unit (round a building, the
137
+ * way round is the navigation's); false: any, however far round. None when there is no room for it or every place is
138
+ * taken; the target's own place for what flies. What an attacker waiting for room (`holdOff`) asks before it goes in
139
+ *
140
+ * @beta
141
+ */
142
+ export declare function freeSpot(world: World, attacker: Entity, target: Entity, straight?: boolean): Vec2 | undefined;