@v12-engine/engine 0.1.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (951) hide show
  1. package/dist/abilities/amounts.d.ts +28 -0
  2. package/dist/abilities/amounts.js +74 -0
  3. package/dist/abilities/amounts.js.map +1 -0
  4. package/dist/abilities/buffs.d.ts +106 -6
  5. package/dist/abilities/buffs.js +443 -0
  6. package/dist/abilities/buffs.js.map +1 -0
  7. package/dist/abilities/castTold.d.ts +2 -0
  8. package/dist/abilities/castTold.js +66 -0
  9. package/dist/abilities/castTold.js.map +1 -0
  10. package/dist/abilities/chance.d.ts +38 -0
  11. package/dist/abilities/chance.js +77 -0
  12. package/dist/abilities/chance.js.map +1 -0
  13. package/dist/abilities/charges.d.ts +18 -0
  14. package/dist/abilities/charges.js +101 -0
  15. package/dist/abilities/charges.js.map +1 -0
  16. package/dist/abilities/control.d.ts +28 -0
  17. package/dist/abilities/control.js +113 -0
  18. package/dist/abilities/control.js.map +1 -0
  19. package/dist/abilities/dispel.js +51 -0
  20. package/dist/abilities/dispel.js.map +1 -0
  21. package/dist/abilities/effectFields.d.ts +1 -1
  22. package/dist/abilities/effectFields.js +676 -0
  23. package/dist/abilities/effectFields.js.map +1 -0
  24. package/dist/abilities/effectIndex.d.ts +27 -0
  25. package/dist/abilities/effectIndex.js +64 -0
  26. package/dist/abilities/effectIndex.js.map +1 -0
  27. package/dist/abilities/effects/buff.d.ts +9 -3
  28. package/dist/abilities/effects/buff.js +84 -0
  29. package/dist/abilities/effects/buff.js.map +1 -0
  30. package/dist/abilities/effects/conditions.d.ts +2 -0
  31. package/dist/abilities/effects/conditions.js +41 -0
  32. package/dist/abilities/effects/conditions.js.map +1 -0
  33. package/dist/abilities/effects/core.js +54 -0
  34. package/dist/abilities/effects/core.js.map +1 -0
  35. package/dist/abilities/effects/damage.d.ts +1 -1
  36. package/dist/abilities/effects/damage.js +43 -0
  37. package/dist/abilities/effects/damage.js.map +1 -0
  38. package/dist/abilities/effects/heal.d.ts +2 -2
  39. package/dist/abilities/effects/heal.js +51 -0
  40. package/dist/abilities/effects/heal.js.map +1 -0
  41. package/dist/abilities/effects/missile.d.ts +13 -1
  42. package/dist/abilities/effects/missile.js +104 -0
  43. package/dist/abilities/effects/missile.js.map +1 -0
  44. package/dist/abilities/effects/morph.d.ts +5 -0
  45. package/dist/abilities/effects/morph.js +43 -0
  46. package/dist/abilities/effects/morph.js.map +1 -0
  47. package/dist/abilities/effects/moves.d.ts +16 -4
  48. package/dist/abilities/effects/moves.js +212 -0
  49. package/dist/abilities/effects/moves.js.map +1 -0
  50. package/dist/abilities/effects/passives.d.ts +19 -9
  51. package/dist/abilities/effects/passives.js +131 -0
  52. package/dist/abilities/effects/passives.js.map +1 -0
  53. package/dist/abilities/effects/proxy.d.ts +5 -0
  54. package/dist/abilities/effects/proxy.js +60 -0
  55. package/dist/abilities/effects/proxy.js.map +1 -0
  56. package/dist/abilities/effects/sight.d.ts +2 -2
  57. package/dist/abilities/effects/sight.js +39 -0
  58. package/dist/abilities/effects/sight.js.map +1 -0
  59. package/dist/abilities/effects/spawn.d.ts +5 -2
  60. package/dist/abilities/effects/spawn.js +40 -0
  61. package/dist/abilities/effects/spawn.js.map +1 -0
  62. package/dist/abilities/effects/timed.d.ts +2 -2
  63. package/dist/abilities/effects/timed.js +96 -0
  64. package/dist/abilities/effects/timed.js.map +1 -0
  65. package/dist/abilities/effects/trade.d.ts +1 -1
  66. package/dist/abilities/effects/trade.js +25 -0
  67. package/dist/abilities/effects/trade.js.map +1 -0
  68. package/dist/abilities/effects.d.ts +97 -23
  69. package/dist/abilities/effects.js +860 -0
  70. package/dist/abilities/effects.js.map +1 -0
  71. package/dist/abilities/land.d.ts +38 -4
  72. package/dist/abilities/land.js +189 -0
  73. package/dist/abilities/land.js.map +1 -0
  74. package/dist/abilities/recast.d.ts +45 -0
  75. package/dist/abilities/recast.js +118 -0
  76. package/dist/abilities/recast.js.map +1 -0
  77. package/dist/abilities/scaled.js +40 -0
  78. package/dist/abilities/scaled.js.map +1 -0
  79. package/dist/abilities/screen.d.ts +6 -0
  80. package/dist/abilities/screen.js +83 -0
  81. package/dist/abilities/screen.js.map +1 -0
  82. package/dist/abilities/shapes.d.ts +66 -0
  83. package/dist/abilities/shapes.js +122 -0
  84. package/dist/abilities/shapes.js.map +1 -0
  85. package/dist/abilities/text.d.ts +14 -2
  86. package/dist/abilities/text.js +204 -0
  87. package/dist/abilities/text.js.map +1 -0
  88. package/dist/abilities/triggers.d.ts +98 -0
  89. package/dist/abilities/triggers.js +351 -0
  90. package/dist/abilities/triggers.js.map +1 -0
  91. package/dist/abilityChanges.d.ts +131 -0
  92. package/dist/abilityChanges.js +345 -0
  93. package/dist/abilityChanges.js.map +1 -0
  94. package/dist/ai/area.d.ts +4 -1
  95. package/dist/ai/brain.d.ts +4 -1
  96. package/dist/ai/brain.js +844 -0
  97. package/dist/ai/brain.js.map +1 -0
  98. package/dist/ai/budget.js +74 -0
  99. package/dist/ai/budget.js.map +1 -0
  100. package/dist/ai/checks.d.ts +9 -1
  101. package/dist/ai/checks.js +242 -0
  102. package/dist/ai/checks.js.map +1 -0
  103. package/dist/ai/computer.d.ts +11 -4
  104. package/dist/ai/computer.js +251 -0
  105. package/dist/ai/computer.js.map +1 -0
  106. package/dist/ai/defence.d.ts +4 -0
  107. package/dist/ai/defence.js +430 -0
  108. package/dist/ai/defence.js.map +1 -0
  109. package/dist/ai/define.d.ts +3 -2
  110. package/dist/ai/define.js +31 -0
  111. package/dist/ai/define.js.map +1 -0
  112. package/dist/ai/economy.d.ts +10 -7
  113. package/dist/ai/economy.js +780 -0
  114. package/dist/ai/economy.js.map +1 -0
  115. package/dist/ai/geometry.js +38 -0
  116. package/dist/ai/geometry.js.map +1 -0
  117. package/dist/ai/goals.d.ts +1 -0
  118. package/dist/ai/goals.js +560 -0
  119. package/dist/ai/goals.js.map +1 -0
  120. package/dist/ai/knowledge.d.ts +72 -7
  121. package/dist/ai/knowledge.js +804 -0
  122. package/dist/ai/knowledge.js.map +1 -0
  123. package/dist/ai/lanes.d.ts +10 -2
  124. package/dist/ai/lanes.js +715 -0
  125. package/dist/ai/lanes.js.map +1 -0
  126. package/dist/ai/melee/build.js +264 -0
  127. package/dist/ai/melee/build.js.map +1 -0
  128. package/dist/ai/melee/goals.d.ts +7 -0
  129. package/dist/ai/melee/goals.js +720 -0
  130. package/dist/ai/melee/goals.js.map +1 -0
  131. package/dist/ai/melee/heroes.js +68 -0
  132. package/dist/ai/melee/heroes.js.map +1 -0
  133. package/dist/ai/melee/index.d.ts +1 -1
  134. package/dist/ai/melee/index.js +51 -0
  135. package/dist/ai/melee/index.js.map +1 -0
  136. package/dist/ai/melee/production.js +29 -0
  137. package/dist/ai/melee/production.js.map +1 -0
  138. package/dist/ai/melee/surrender.js +64 -0
  139. package/dist/ai/melee/surrender.js.map +1 -0
  140. package/dist/ai/micro.d.ts +9 -0
  141. package/dist/ai/micro.js +1316 -0
  142. package/dist/ai/micro.js.map +1 -0
  143. package/dist/ai/mission.d.ts +9 -2
  144. package/dist/ai/mission.js +538 -0
  145. package/dist/ai/mission.js.map +1 -0
  146. package/dist/ai/missionRules.d.ts +1 -1
  147. package/dist/ai/missionRules.js +26 -0
  148. package/dist/ai/missionRules.js.map +1 -0
  149. package/dist/ai/module.d.ts +6 -2
  150. package/dist/ai/module.js +37 -0
  151. package/dist/ai/module.js.map +1 -0
  152. package/dist/ai/options.d.ts +3 -3
  153. package/dist/ai/plans/build.d.ts +20 -1
  154. package/dist/ai/plans/build.js +608 -0
  155. package/dist/ai/plans/build.js.map +1 -0
  156. package/dist/ai/plans/placement.d.ts +4 -1
  157. package/dist/ai/plans/placement.js +295 -0
  158. package/dist/ai/plans/placement.js.map +1 -0
  159. package/dist/ai/plans/plans.d.ts +9 -0
  160. package/dist/ai/plans/plans.js +110 -0
  161. package/dist/ai/plans/plans.js.map +1 -0
  162. package/dist/ai/plans/production.d.ts +14 -2
  163. package/dist/ai/plans/production.js +434 -0
  164. package/dist/ai/plans/production.js.map +1 -0
  165. package/dist/ai/plans/purse.d.ts +6 -3
  166. package/dist/ai/plans/purse.js +139 -0
  167. package/dist/ai/plans/purse.js.map +1 -0
  168. package/dist/ai/plans/tech.d.ts +6 -0
  169. package/dist/ai/plans/tech.js +122 -0
  170. package/dist/ai/plans/tech.js.map +1 -0
  171. package/dist/ai/profiles.d.ts +4 -4
  172. package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
  173. package/dist/ai/profiles.js.map +1 -0
  174. package/dist/ai/reach.js +54 -0
  175. package/dist/ai/reach.js.map +1 -0
  176. package/dist/ai/report.d.ts +8 -0
  177. package/dist/ai/report.js +87 -0
  178. package/dist/ai/report.js.map +1 -0
  179. package/dist/ai/roles.d.ts +4 -0
  180. package/dist/ai/roles.js +207 -0
  181. package/dist/ai/roles.js.map +1 -0
  182. package/dist/ai/rules.d.ts +8 -2
  183. package/dist/ai/rules.js +416 -0
  184. package/dist/ai/rules.js.map +1 -0
  185. package/dist/ai/scouting.d.ts +6 -0
  186. package/dist/ai/scouting.js +324 -0
  187. package/dist/ai/scouting.js.map +1 -0
  188. package/dist/ai/settings.js +99 -0
  189. package/dist/ai/settings.js.map +1 -0
  190. package/dist/ai/squads.d.ts +21 -2
  191. package/dist/ai/squads.js +916 -0
  192. package/dist/ai/squads.js.map +1 -0
  193. package/dist/ai/strength.js +320 -0
  194. package/dist/ai/strength.js.map +1 -0
  195. package/dist/ai/task.d.ts +3 -1
  196. package/dist/ai/task.js +17 -0
  197. package/dist/ai/task.js.map +1 -0
  198. package/dist/ai/tasks/attack.js +24 -0
  199. package/dist/ai/tasks/attack.js.map +1 -0
  200. package/dist/ai/tasks/capture.d.ts +3 -3
  201. package/dist/ai/tasks/capture.js +37 -0
  202. package/dist/ai/tasks/capture.js.map +1 -0
  203. package/dist/ai/tasks/creep.js +29 -0
  204. package/dist/ai/tasks/creep.js.map +1 -0
  205. package/dist/ai/tasks/defend.js +61 -0
  206. package/dist/ai/tasks/defend.js.map +1 -0
  207. package/dist/ai/tasks/drop.js +81 -0
  208. package/dist/ai/tasks/drop.js.map +1 -0
  209. package/dist/ai/tasks/escort.js +59 -0
  210. package/dist/ai/tasks/escort.js.map +1 -0
  211. package/dist/ai/tasks/gather.js +48 -0
  212. package/dist/ai/tasks/gather.js.map +1 -0
  213. package/dist/ai/tasks/harass.js +39 -0
  214. package/dist/ai/tasks/harass.js.map +1 -0
  215. package/dist/ai/tasks/hold.js +32 -0
  216. package/dist/ai/tasks/hold.js.map +1 -0
  217. package/dist/ai/tasks/index.js +34 -0
  218. package/dist/ai/tasks/index.js.map +1 -0
  219. package/dist/ai/tasks/move.js +26 -0
  220. package/dist/ai/tasks/move.js.map +1 -0
  221. package/dist/ai/tasks/patrol.js +59 -0
  222. package/dist/ai/tasks/patrol.js.map +1 -0
  223. package/dist/ai/tasks/retreat.js +28 -0
  224. package/dist/ai/tasks/retreat.js.map +1 -0
  225. package/dist/ai/tasks/scout.js +73 -0
  226. package/dist/ai/tasks/scout.js.map +1 -0
  227. package/dist/ai/tasks/shared.d.ts +1 -1
  228. package/dist/ai/tasks/shared.js +137 -0
  229. package/dist/ai/tasks/shared.js.map +1 -0
  230. package/dist/ai/team.d.ts +18 -1
  231. package/dist/ai/team.js +492 -0
  232. package/dist/ai/team.js.map +1 -0
  233. package/dist/ai/threat.d.ts +6 -0
  234. package/dist/ai/threat.js +206 -0
  235. package/dist/ai/threat.js.map +1 -0
  236. package/dist/ai/view.d.ts +21 -7
  237. package/dist/ai/view.js +677 -0
  238. package/dist/ai/view.js.map +1 -0
  239. package/dist/ai/waves.d.ts +6 -0
  240. package/dist/ai/waves.js +410 -0
  241. package/dist/ai/waves.js.map +1 -0
  242. package/dist/ai.js +54 -6239
  243. package/dist/aiTesting.d.ts +6 -3
  244. package/dist/aiTesting.js +229 -0
  245. package/dist/aiTesting.js.map +1 -0
  246. package/dist/areas.d.ts +4 -1
  247. package/dist/areas.js +295 -0
  248. package/dist/areas.js.map +1 -0
  249. package/dist/attacks.d.ts +3 -3
  250. package/dist/attacks.js +127 -0
  251. package/dist/attacks.js.map +1 -0
  252. package/dist/burning.d.ts +267 -0
  253. package/dist/burning.js +795 -0
  254. package/dist/burning.js.map +1 -0
  255. package/dist/bytes.js +21 -0
  256. package/dist/bytes.js.map +1 -0
  257. package/dist/callings.d.ts +71 -0
  258. package/dist/callings.js +157 -0
  259. package/dist/callings.js.map +1 -0
  260. package/dist/cameraOrders.d.ts +78 -0
  261. package/dist/cameraOrders.js +114 -0
  262. package/dist/cameraOrders.js.map +1 -0
  263. package/dist/camps.d.ts +70 -4
  264. package/dist/camps.js +501 -0
  265. package/dist/camps.js.map +1 -0
  266. package/dist/capture.d.ts +15 -3
  267. package/dist/capture.js +304 -0
  268. package/dist/capture.js.map +1 -0
  269. package/dist/cellLayers.d.ts +78 -13
  270. package/dist/cellLayers.js +275 -0
  271. package/dist/cellLayers.js.map +1 -0
  272. package/dist/cellPatches.d.ts +24 -0
  273. package/dist/cellPatches.js +73 -0
  274. package/dist/cellPatches.js.map +1 -0
  275. package/dist/cinematics.d.ts +10 -5
  276. package/dist/cinematics.js +161 -0
  277. package/dist/cinematics.js.map +1 -0
  278. package/dist/clock.d.ts +2 -2
  279. package/dist/clock.js +78 -0
  280. package/dist/clock.js.map +1 -0
  281. package/dist/commands.d.ts +36 -4
  282. package/dist/commands.js +636 -0
  283. package/dist/commands.js.map +1 -0
  284. package/dist/components.d.ts +31 -10
  285. package/dist/components.js +74 -0
  286. package/dist/components.js.map +1 -0
  287. package/dist/computers.d.ts +4 -4
  288. package/dist/computers.js +194 -0
  289. package/dist/computers.js.map +1 -0
  290. package/dist/concealment.d.ts +25 -2
  291. package/dist/concealment.js +409 -0
  292. package/dist/concealment.js.map +1 -0
  293. package/dist/coreComponents.js +130 -0
  294. package/dist/coreComponents.js.map +1 -0
  295. package/dist/createGame.d.ts +306 -0
  296. package/dist/createGame.js +405 -0
  297. package/dist/createGame.js.map +1 -0
  298. package/dist/dashing.d.ts +18 -2
  299. package/dist/dashing.js +41 -0
  300. package/dist/dashing.js.map +1 -0
  301. package/dist/debug.d.ts +8 -0
  302. package/dist/debug.js +5 -3
  303. package/dist/debug2.js +76 -0
  304. package/dist/debug2.js.map +1 -0
  305. package/dist/debugCommands.d.ts +6 -6
  306. package/dist/debugCommands.js +537 -0
  307. package/dist/debugCommands.js.map +1 -0
  308. package/dist/debugging.d.ts +1 -0
  309. package/dist/defaultSets.d.ts +183 -0
  310. package/dist/defaultSets.js +216 -0
  311. package/dist/defaultSets.js.map +1 -0
  312. package/dist/definitions.d.ts +6 -0
  313. package/dist/definitions.js +78 -0
  314. package/dist/definitions.js.map +1 -0
  315. package/dist/defs.d.ts +1895 -165
  316. package/dist/defs.js +380 -0
  317. package/dist/defs.js.map +1 -0
  318. package/dist/denying.d.ts +4 -4
  319. package/dist/denying.js +106 -0
  320. package/dist/denying.js.map +1 -0
  321. package/dist/destructibles.d.ts +2 -2
  322. package/dist/destructibles.js +36 -0
  323. package/dist/destructibles.js.map +1 -0
  324. package/dist/determinism.d.ts +4 -4
  325. package/dist/determinism.js +247 -0
  326. package/dist/determinism.js.map +1 -0
  327. package/dist/dialog.d.ts +17 -2
  328. package/dist/dialog.js +108 -0
  329. package/dist/dialog.js.map +1 -0
  330. package/dist/effectRefs.js +28 -0
  331. package/dist/effectRefs.js.map +1 -0
  332. package/dist/effects.d.ts +27 -11
  333. package/dist/effects.js +110 -0
  334. package/dist/effects.js.map +1 -0
  335. package/dist/endings.d.ts +1 -1
  336. package/dist/endings.js +78 -0
  337. package/dist/endings.js.map +1 -0
  338. package/dist/engagement.d.ts +40 -6
  339. package/dist/engagement.js +530 -0
  340. package/dist/engagement.js.map +1 -0
  341. package/dist/engineEvents.d.ts +72 -9
  342. package/dist/engineEvents.js +520 -0
  343. package/dist/engineEvents.js.map +1 -0
  344. package/dist/entity.d.ts +275 -26
  345. package/dist/entity.js +441 -0
  346. package/dist/entity.js.map +1 -0
  347. package/dist/entityIndex.d.ts +10 -3
  348. package/dist/entityIndex.js +149 -0
  349. package/dist/entityIndex.js.map +1 -0
  350. package/dist/errors.d.ts +6 -2
  351. package/dist/errors.js +59 -0
  352. package/dist/errors.js.map +1 -0
  353. package/dist/events.d.ts +11 -5
  354. package/dist/events.js +158 -0
  355. package/dist/events.js.map +1 -0
  356. package/dist/exactMath.js +273 -0
  357. package/dist/exactMath.js.map +1 -0
  358. package/dist/features.d.ts +1 -1
  359. package/dist/features.js +127 -0
  360. package/dist/features.js.map +1 -0
  361. package/dist/fields.d.ts +25 -5
  362. package/dist/fields.js +140 -0
  363. package/dist/fields.js.map +1 -0
  364. package/dist/fixture.d.ts +3 -3
  365. package/dist/fixture.js +512 -0
  366. package/dist/fixture.js.map +1 -0
  367. package/dist/fog.d.ts +26 -3
  368. package/dist/fog.js +333 -0
  369. package/dist/fog.js.map +1 -0
  370. package/dist/foliage.d.ts +476 -0
  371. package/dist/foliage.js +1478 -0
  372. package/dist/foliage.js.map +1 -0
  373. package/dist/foliageDebug.d.ts +57 -0
  374. package/dist/foliageDebug.js +172 -0
  375. package/dist/foliageDebug.js.map +1 -0
  376. package/dist/foliageRegrowth.d.ts +20 -0
  377. package/dist/foliageRegrowth.js +332 -0
  378. package/dist/foliageRegrowth.js.map +1 -0
  379. package/dist/formState.d.ts +67 -0
  380. package/dist/formState.js +65 -0
  381. package/dist/formState.js.map +1 -0
  382. package/dist/formation.d.ts +46 -8
  383. package/dist/formation.js +297 -0
  384. package/dist/formation.js.map +1 -0
  385. package/dist/forms.d.ts +58 -0
  386. package/dist/forms.js +146 -0
  387. package/dist/forms.js.map +1 -0
  388. package/dist/friendlyFire.d.ts +2 -2
  389. package/dist/friendlyFire.js +37 -0
  390. package/dist/friendlyFire.js.map +1 -0
  391. package/dist/game.d.ts +141 -48
  392. package/dist/game.js +834 -0
  393. package/dist/game.js.map +1 -0
  394. package/dist/gameData.d.ts +96 -22
  395. package/dist/gameData.js +1690 -0
  396. package/dist/gameData.js.map +1 -0
  397. package/dist/gameFiles.d.ts +3 -3
  398. package/dist/gameFiles.js +14 -0
  399. package/dist/gameFiles.js.map +1 -0
  400. package/dist/gates.js +92 -0
  401. package/dist/gates.js.map +1 -0
  402. package/dist/generate.d.ts +28 -1
  403. package/dist/generate.js +1062 -0
  404. package/dist/generate.js.map +1 -0
  405. package/dist/generateWorker.d.ts +7 -3
  406. package/dist/generateWorker.js +86 -0
  407. package/dist/generateWorker.js.map +1 -0
  408. package/dist/grid.d.ts +9 -0
  409. package/dist/grid.js +102 -0
  410. package/dist/grid.js.map +1 -0
  411. package/dist/ground.d.ts +17 -1
  412. package/dist/ground.js +375 -0
  413. package/dist/ground.js.map +1 -0
  414. package/dist/groundObjects.d.ts +70 -0
  415. package/dist/groundObjects.js +371 -0
  416. package/dist/groundObjects.js.map +1 -0
  417. package/dist/groundSpeed.d.ts +20 -3
  418. package/dist/groundSpeed.js +117 -0
  419. package/dist/groundSpeed.js.map +1 -0
  420. package/dist/hero.d.ts +126 -10
  421. package/dist/hero.js +432 -0
  422. package/dist/hero.js.map +1 -0
  423. package/dist/holds.d.ts +94 -0
  424. package/dist/holds.js +305 -0
  425. package/dist/holds.js.map +1 -0
  426. package/dist/home.d.ts +1 -1
  427. package/dist/home.js +30 -0
  428. package/dist/home.js.map +1 -0
  429. package/dist/hooks.d.ts +339 -57
  430. package/dist/hooks.js +105 -0
  431. package/dist/hooks.js.map +1 -0
  432. package/dist/hotReload.d.ts +6 -5
  433. package/dist/hotReload.js +145 -0
  434. package/dist/hotReload.js.map +1 -0
  435. package/dist/ids.d.ts +3 -3
  436. package/dist/ids.js +30 -0
  437. package/dist/ids.js.map +1 -0
  438. package/dist/idsFile.d.ts +36 -0
  439. package/dist/idsFile.js +134 -0
  440. package/dist/idsFile.js.map +1 -0
  441. package/dist/index.d.ts +105 -68
  442. package/dist/index.js +194 -4701
  443. package/dist/inspect.d.ts +29 -2
  444. package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
  445. package/dist/inspect.js.map +1 -0
  446. package/dist/inventory.d.ts +14 -1
  447. package/dist/inventory.js +84 -0
  448. package/dist/inventory.js.map +1 -0
  449. package/dist/items.d.ts +136 -8
  450. package/dist/items.js +585 -0
  451. package/dist/items.js.map +1 -0
  452. package/dist/lanes.d.ts +12 -3
  453. package/dist/lanes.js +496 -0
  454. package/dist/lanes.js.map +1 -0
  455. package/dist/life.d.ts +6 -2
  456. package/dist/life.js +287 -0
  457. package/dist/life.js.map +1 -0
  458. package/dist/log.d.ts +26 -3
  459. package/dist/log.js +192 -0
  460. package/dist/log.js.map +1 -0
  461. package/dist/manaBurn.d.ts +2 -2
  462. package/dist/manaBurn.js +75 -0
  463. package/dist/manaBurn.js.map +1 -0
  464. package/dist/map/file.d.ts +56 -3
  465. package/dist/map/file.js +264 -0
  466. package/dist/map/file.js.map +1 -0
  467. package/dist/map/images.js +61 -0
  468. package/dist/map/images.js.map +1 -0
  469. package/dist/map/look.d.ts +1 -1
  470. package/dist/map/look.js +30 -0
  471. package/dist/map/look.js.map +1 -0
  472. package/dist/map/pathProfile.js +183 -0
  473. package/dist/map/pathProfile.js.map +1 -0
  474. package/dist/map/resize.d.ts +4 -0
  475. package/dist/map/resize.js +136 -0
  476. package/dist/map/resize.js.map +1 -0
  477. package/dist/map/schema.js +257 -0
  478. package/dist/map/schema.js.map +1 -0
  479. package/dist/map/terrain.js +214 -0
  480. package/dist/map/terrain.js.map +1 -0
  481. package/dist/map/types.d.ts +92 -13
  482. package/dist/map/types.js +251 -0
  483. package/dist/map/types.js.map +1 -0
  484. package/dist/mapCheck/cells.js +94 -0
  485. package/dist/mapCheck/cells.js.map +1 -0
  486. package/dist/mapCheck/rules/foliage.d.ts +9 -0
  487. package/dist/mapCheck/rules/foliage.js +83 -0
  488. package/dist/mapCheck/rules/foliage.js.map +1 -0
  489. package/dist/mapCheck/rules/names.js +39 -0
  490. package/dist/mapCheck/rules/names.js.map +1 -0
  491. package/dist/mapCheck/rules/objects.d.ts +1 -1
  492. package/dist/mapCheck/rules/objects.js +56 -0
  493. package/dist/mapCheck/rules/objects.js.map +1 -0
  494. package/dist/mapCheck/rules/paths.js +32 -0
  495. package/dist/mapCheck/rules/paths.js.map +1 -0
  496. package/dist/mapCheck/rules/players.js +20 -0
  497. package/dist/mapCheck/rules/players.js.map +1 -0
  498. package/dist/mapCheck/rules/races.js +56 -0
  499. package/dist/mapCheck/rules/races.js.map +1 -0
  500. package/dist/mapCheck/rules/random.js +47 -0
  501. package/dist/mapCheck/rules/random.js.map +1 -0
  502. package/dist/mapCheck/rules/regions.js +30 -0
  503. package/dist/mapCheck/rules/regions.js.map +1 -0
  504. package/dist/mapCheck/rules/targets.js +31 -0
  505. package/dist/mapCheck/rules/targets.js.map +1 -0
  506. package/dist/mapCheck/rules/walking.js +45 -0
  507. package/dist/mapCheck/rules/walking.js.map +1 -0
  508. package/dist/mapCheck.d.ts +2 -2
  509. package/dist/mapCheck.js +63 -0
  510. package/dist/mapCheck.js.map +1 -0
  511. package/dist/mapFields.d.ts +25 -2
  512. package/dist/mapFields.js +134 -0
  513. package/dist/mapFields.js.map +1 -0
  514. package/dist/mapFile.js +176 -0
  515. package/dist/mapFile.js.map +1 -0
  516. package/dist/mapMeasure.d.ts +8 -0
  517. package/dist/mapMeasure.js +283 -0
  518. package/dist/mapMeasure.js.map +1 -0
  519. package/dist/mapMerge.d.ts +1 -0
  520. package/dist/mapMerge.js +172 -0
  521. package/dist/mapMerge.js.map +1 -0
  522. package/dist/mapObjectives.js +138 -0
  523. package/dist/mapObjectives.js.map +1 -0
  524. package/dist/mapObjects.js +80 -0
  525. package/dist/mapObjects.js.map +1 -0
  526. package/dist/math.d.ts +37 -7
  527. package/dist/math.js +155 -0
  528. package/dist/math.js.map +1 -0
  529. package/dist/messages.d.ts +71 -4
  530. package/dist/messages.js +29 -0
  531. package/dist/messages.js.map +1 -0
  532. package/dist/missionRules.d.ts +10 -2
  533. package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
  534. package/dist/missionRules.js.map +1 -0
  535. package/dist/mods.d.ts +39 -20
  536. package/dist/mods.js +271 -0
  537. package/dist/mods.js.map +1 -0
  538. package/dist/moves.d.ts +87 -0
  539. package/dist/moves.js +539 -0
  540. package/dist/moves.js.map +1 -0
  541. package/dist/names.d.ts +7 -0
  542. package/dist/names.js +122 -0
  543. package/dist/names.js.map +1 -0
  544. package/dist/navigation/agentParams.js +14 -0
  545. package/dist/navigation/agentParams.js.map +1 -0
  546. package/dist/navigation/air.d.ts +7 -3
  547. package/dist/navigation/air.js +401 -0
  548. package/dist/navigation/air.js.map +1 -0
  549. package/dist/navigation/builds.d.ts +34 -2
  550. package/dist/navigation/builds.js +287 -0
  551. package/dist/navigation/builds.js.map +1 -0
  552. package/dist/navigation/groundAreas.d.ts +59 -1
  553. package/dist/navigation/groundAreas.js +407 -0
  554. package/dist/navigation/groundAreas.js.map +1 -0
  555. package/dist/navigation/navigation.d.ts +98 -9
  556. package/dist/navigation/recast.d.ts +194 -18
  557. package/dist/navigation/recast.js +1379 -0
  558. package/dist/navigation/recast.js.map +1 -0
  559. package/dist/navigation/sidePaths.d.ts +8 -3
  560. package/dist/navigation/sidePaths.js +241 -0
  561. package/dist/navigation/sidePaths.js.map +1 -0
  562. package/dist/navigation/sized.js +243 -0
  563. package/dist/navigation/sized.js.map +1 -0
  564. package/dist/nearest.js +32 -0
  565. package/dist/nearest.js.map +1 -0
  566. package/dist/noise.js +59 -0
  567. package/dist/noise.js.map +1 -0
  568. package/dist/objectives.d.ts +12 -3
  569. package/dist/objectives.js +144 -0
  570. package/dist/objectives.js.map +1 -0
  571. package/dist/orders/basic.d.ts +5 -5
  572. package/dist/orders/basic.js +417 -0
  573. package/dist/orders/basic.js.map +1 -0
  574. package/dist/orders/build.js +278 -0
  575. package/dist/orders/build.js.map +1 -0
  576. package/dist/orders/cast.d.ts +13 -3
  577. package/dist/orders/cast.js +558 -0
  578. package/dist/orders/cast.js.map +1 -0
  579. package/dist/orders/facts.js +16 -0
  580. package/dist/orders/facts.js.map +1 -0
  581. package/dist/orders/harvest.d.ts +21 -5
  582. package/dist/orders/harvest.js +540 -0
  583. package/dist/orders/harvest.js.map +1 -0
  584. package/dist/orders/idle.d.ts +3 -1
  585. package/dist/orders/idle.js +234 -0
  586. package/dist/orders/idle.js.map +1 -0
  587. package/dist/orders/items.js +92 -0
  588. package/dist/orders/items.js.map +1 -0
  589. package/dist/orders/queue.js +108 -0
  590. package/dist/orders/queue.js.map +1 -0
  591. package/dist/orders/waiting.d.ts +39 -0
  592. package/dist/orders/waiting.js +149 -0
  593. package/dist/orders/waiting.js.map +1 -0
  594. package/dist/pack.schema.js +13 -0
  595. package/dist/pack.schema.js.map +1 -0
  596. package/dist/pack.schema.json +7622 -841
  597. package/dist/packs/director/index.d.ts +13 -5
  598. package/dist/packs/director/index.js +204 -0
  599. package/dist/packs/director/index.js.map +1 -0
  600. package/dist/packs/heroes/campaign.d.ts +3 -2
  601. package/dist/packs/heroes/campaign.js +241 -0
  602. package/dist/packs/heroes/campaign.js.map +1 -0
  603. package/dist/packs/heroes/carry.d.ts +6 -0
  604. package/dist/packs/heroes/carry.js +112 -0
  605. package/dist/packs/heroes/carry.js.map +1 -0
  606. package/dist/packs/heroes/commands.js +115 -0
  607. package/dist/packs/heroes/commands.js.map +1 -0
  608. package/dist/packs/heroes/fallen.d.ts +43 -0
  609. package/dist/packs/heroes/fallen.js +61 -0
  610. package/dist/packs/heroes/fallen.js.map +1 -0
  611. package/dist/packs/heroes/hire.js +60 -0
  612. package/dist/packs/heroes/hire.js.map +1 -0
  613. package/dist/packs/heroes/index.d.ts +7 -6
  614. package/dist/packs/heroes/index.js +130 -0
  615. package/dist/packs/heroes/index.js.map +1 -0
  616. package/dist/packs/heroes/loop.d.ts +95 -0
  617. package/dist/packs/heroes/loop.js +250 -0
  618. package/dist/packs/heroes/loop.js.map +1 -0
  619. package/dist/packs/heroes/making.d.ts +6 -3
  620. package/dist/packs/heroes/making.js +55 -0
  621. package/dist/packs/heroes/making.js.map +1 -0
  622. package/dist/packs/heroes/respawn.d.ts +3 -3
  623. package/dist/packs/heroes/respawn.js +87 -0
  624. package/dist/packs/heroes/respawn.js.map +1 -0
  625. package/dist/packs/heroes/sets.d.ts +32 -0
  626. package/dist/packs/heroes/sets.js +51 -0
  627. package/dist/packs/heroes/sets.js.map +1 -0
  628. package/dist/packs/heroes/spells.d.ts +16 -0
  629. package/dist/packs/heroes/spells.js +269 -0
  630. package/dist/packs/heroes/spells.js.map +1 -0
  631. package/dist/packs/items/defaults.d.ts +43 -0
  632. package/dist/packs/items/defaults.js +1504 -0
  633. package/dist/packs/items/defaults.js.map +1 -0
  634. package/dist/packs/items/index.d.ts +27 -0
  635. package/dist/packs/items/index.js +214 -0
  636. package/dist/packs/items/index.js.map +1 -0
  637. package/dist/packs/moba/index.d.ts +3 -3
  638. package/dist/packs/moba/index.js +174 -0
  639. package/dist/packs/moba/index.js.map +1 -0
  640. package/dist/packs/pack.d.ts +15 -15
  641. package/dist/packs/pack.js +14 -0
  642. package/dist/packs/pack.js.map +1 -0
  643. package/dist/packs.d.ts +15 -7
  644. package/dist/packs.js +222 -0
  645. package/dist/packs.js.map +1 -0
  646. package/dist/paths.d.ts +2 -0
  647. package/dist/paths.js +109 -0
  648. package/dist/paths.js.map +1 -0
  649. package/dist/plain.js +57 -0
  650. package/dist/plain.js.map +1 -0
  651. package/dist/player.d.ts +33 -10
  652. package/dist/player.js +159 -0
  653. package/dist/player.js.map +1 -0
  654. package/dist/portals.d.ts +1 -1
  655. package/dist/portals.js +194 -0
  656. package/dist/portals.js.map +1 -0
  657. package/dist/prefabs.d.ts +25 -2
  658. package/dist/prefabs.js +239 -0
  659. package/dist/prefabs.js.map +1 -0
  660. package/dist/presetBuildings.js +58 -0
  661. package/dist/presetBuildings.js.map +1 -0
  662. package/dist/presetFoliage.d.ts +27 -0
  663. package/dist/presetFoliage.js +98 -0
  664. package/dist/presetFoliage.js.map +1 -0
  665. package/dist/presetGround.js +65 -0
  666. package/dist/presetGround.js.map +1 -0
  667. package/dist/proxies.d.ts +12 -0
  668. package/dist/proxies.js +79 -0
  669. package/dist/proxies.js.map +1 -0
  670. package/dist/query.d.ts +56 -0
  671. package/dist/query.js +88 -0
  672. package/dist/query.js.map +1 -0
  673. package/dist/races.d.ts +15 -14
  674. package/dist/races.js +172 -0
  675. package/dist/races.js.map +1 -0
  676. package/dist/randomGroups.js +91 -0
  677. package/dist/randomGroups.js.map +1 -0
  678. package/dist/registry.d.ts +117 -53
  679. package/dist/registry.js +323 -0
  680. package/dist/registry.js.map +1 -0
  681. package/dist/remains.d.ts +11 -9
  682. package/dist/remains.js +188 -0
  683. package/dist/remains.js.map +1 -0
  684. package/dist/replication.d.ts +12 -7
  685. package/dist/replication.js +100 -0
  686. package/dist/replication.js.map +1 -0
  687. package/dist/rng.d.ts +2 -0
  688. package/dist/rng.js +40 -0
  689. package/dist/rng.js.map +1 -0
  690. package/dist/rules.d.ts +186 -99
  691. package/dist/rules.js +179 -0
  692. package/dist/rules.js.map +1 -0
  693. package/dist/rulesCheck.d.ts +5 -4
  694. package/dist/rulesCheck.js +693 -0
  695. package/dist/rulesCheck.js.map +1 -0
  696. package/dist/runes.d.ts +2 -2
  697. package/dist/runes.js +80 -0
  698. package/dist/runes.js.map +1 -0
  699. package/dist/save.d.ts +37 -12
  700. package/dist/save.js +532 -0
  701. package/dist/save.js.map +1 -0
  702. package/dist/scenario.d.ts +2 -2
  703. package/dist/scenario.js +99 -0
  704. package/dist/scenario.js.map +1 -0
  705. package/dist/scheduler.d.ts +3 -0
  706. package/dist/scheduler.js +156 -0
  707. package/dist/scheduler.js.map +1 -0
  708. package/dist/score.d.ts +19 -19
  709. package/dist/score.js +709 -0
  710. package/dist/score.js.map +1 -0
  711. package/dist/sequences.d.ts +10 -6
  712. package/dist/sequences.js +206 -0
  713. package/dist/sequences.js.map +1 -0
  714. package/dist/server/doorman.js +154 -0
  715. package/dist/server/doorman.js.map +1 -0
  716. package/dist/server/gameServer.d.ts +16 -1
  717. package/dist/server/gameServer.js +643 -0
  718. package/dist/server/gameServer.js.map +1 -0
  719. package/dist/server/index.d.ts +1 -1
  720. package/dist/server/lobby.js +199 -0
  721. package/dist/server/lobby.js.map +1 -0
  722. package/dist/server/log.js +18 -0
  723. package/dist/server/log.js.map +1 -0
  724. package/dist/server/match.js +267 -0
  725. package/dist/server/match.js.map +1 -0
  726. package/dist/server/mode.d.ts +18 -9
  727. package/dist/server/mode.js +220 -0
  728. package/dist/server/mode.js.map +1 -0
  729. package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
  730. package/dist/server/navigation-worker.js.map +1 -0
  731. package/dist/server/navigation.js +39 -0
  732. package/dist/server/navigation.js.map +1 -0
  733. package/dist/server/ops.d.ts +4 -0
  734. package/dist/server/ops.js +137 -0
  735. package/dist/server/ops.js.map +1 -0
  736. package/dist/server/packs.d.ts +3 -3
  737. package/dist/server/packs.js +32 -0
  738. package/dist/server/packs.js.map +1 -0
  739. package/dist/server/ratings.d.ts +5 -0
  740. package/dist/server/ratings.js +104 -0
  741. package/dist/server/ratings.js.map +1 -0
  742. package/dist/server/relay.d.ts +12 -2
  743. package/dist/server/relay.js +144 -0
  744. package/dist/server/relay.js.map +1 -0
  745. package/dist/server/rooms.d.ts +9 -2
  746. package/dist/server/rooms.js +442 -0
  747. package/dist/server/rooms.js.map +1 -0
  748. package/dist/server/seat.js +116 -0
  749. package/dist/server/seat.js.map +1 -0
  750. package/dist/server/seatSettings.d.ts +3 -3
  751. package/dist/server/seatSettings.js +63 -0
  752. package/dist/server/seatSettings.js.map +1 -0
  753. package/dist/server/secret.js +13 -0
  754. package/dist/server/secret.js.map +1 -0
  755. package/dist/server/start.d.ts +13 -6
  756. package/dist/server/start.js +76 -0
  757. package/dist/server/start.js.map +1 -0
  758. package/dist/server/websocket.d.ts +9 -1
  759. package/dist/server/websocket.js +306 -0
  760. package/dist/server/websocket.js.map +1 -0
  761. package/dist/server.js +15 -2861
  762. package/dist/session/can.js +26 -0
  763. package/dist/session/can.js.map +1 -0
  764. package/dist/session/commandReplay.d.ts +8 -2
  765. package/dist/session/commandReplay.js +293 -0
  766. package/dist/session/commandReplay.js.map +1 -0
  767. package/dist/session/debug.js +151 -0
  768. package/dist/session/debug.js.map +1 -0
  769. package/dist/session/delay.js +62 -0
  770. package/dist/session/delay.js.map +1 -0
  771. package/dist/session/delta.d.ts +14 -1
  772. package/dist/session/delta.js +407 -0
  773. package/dist/session/delta.js.map +1 -0
  774. package/dist/session/entityState.js +415 -0
  775. package/dist/session/entityState.js.map +1 -0
  776. package/dist/session/local.d.ts +47 -5
  777. package/dist/session/local.js +670 -0
  778. package/dist/session/local.js.map +1 -0
  779. package/dist/session/memory.d.ts +20 -2
  780. package/dist/session/memory.js +131 -0
  781. package/dist/session/memory.js.map +1 -0
  782. package/dist/session/protocol.d.ts +325 -31
  783. package/dist/session/protocol.js +55 -0
  784. package/dist/session/protocol.js.map +1 -0
  785. package/dist/session/remote.d.ts +74 -12
  786. package/dist/session/remote.js +1394 -0
  787. package/dist/session/remote.js.map +1 -0
  788. package/dist/session/replay.d.ts +11 -2
  789. package/dist/session/replay.js +160 -0
  790. package/dist/session/replay.js.map +1 -0
  791. package/dist/session/seed.js +12 -0
  792. package/dist/session/seed.js.map +1 -0
  793. package/dist/session/share.d.ts +5 -1
  794. package/dist/session/share.js +94 -0
  795. package/dist/session/share.js.map +1 -0
  796. package/dist/session/socket.d.ts +1 -1
  797. package/dist/session/socket.js +29 -0
  798. package/dist/session/socket.js.map +1 -0
  799. package/dist/session/wire.d.ts +5 -0
  800. package/dist/session/wire.js +84 -0
  801. package/dist/session/wire.js.map +1 -0
  802. package/dist/session/worker.d.ts +77 -12
  803. package/dist/session/worker.js +499 -0
  804. package/dist/session/worker.js.map +1 -0
  805. package/dist/shared.d.ts +31 -5
  806. package/dist/shared.js +166 -0
  807. package/dist/shared.js.map +1 -0
  808. package/dist/sides.d.ts +9 -3
  809. package/dist/sides.js +149 -0
  810. package/dist/sides.js.map +1 -0
  811. package/dist/sight.js +85 -0
  812. package/dist/sight.js.map +1 -0
  813. package/dist/simulate-worker.js +1 -1
  814. package/dist/simulate.d.ts +12 -8
  815. package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
  816. package/dist/simulate.js.map +1 -0
  817. package/dist/smart.js +77 -0
  818. package/dist/smart.js.map +1 -0
  819. package/dist/spatial.d.ts +32 -16
  820. package/dist/spatial.js +234 -0
  821. package/dist/spatial.js.map +1 -0
  822. package/dist/spawning.d.ts +1 -0
  823. package/dist/spawning.js +224 -0
  824. package/dist/spawning.js.map +1 -0
  825. package/dist/stances.d.ts +6 -3
  826. package/dist/stances.js +169 -0
  827. package/dist/stances.js.map +1 -0
  828. package/dist/start.d.ts +10 -10
  829. package/dist/start.js +75 -0
  830. package/dist/start.js.map +1 -0
  831. package/dist/stats.d.ts +42 -16
  832. package/dist/stats.js +290 -0
  833. package/dist/stats.js.map +1 -0
  834. package/dist/summoned.d.ts +52 -0
  835. package/dist/summoned.js +38 -0
  836. package/dist/summoned.js.map +1 -0
  837. package/dist/summons.d.ts +10 -13
  838. package/dist/summons.js +271 -0
  839. package/dist/summons.js.map +1 -0
  840. package/dist/systems/abilities.js +224 -0
  841. package/dist/systems/abilities.js.map +1 -0
  842. package/dist/systems/combat.d.ts +35 -1
  843. package/dist/systems/combat.js +677 -0
  844. package/dist/systems/combat.js.map +1 -0
  845. package/dist/systems/combatTold.d.ts +3 -1
  846. package/dist/systems/combatTold.js +85 -0
  847. package/dist/systems/combatTold.js.map +1 -0
  848. package/dist/systems/construction.js +80 -0
  849. package/dist/systems/construction.js.map +1 -0
  850. package/dist/systems/economy.d.ts +0 -6
  851. package/dist/systems/economy.js +128 -0
  852. package/dist/systems/economy.js.map +1 -0
  853. package/dist/systems/fog.d.ts +1 -1
  854. package/dist/systems/fog.js +120 -0
  855. package/dist/systems/fog.js.map +1 -0
  856. package/dist/systems/life.js +32 -0
  857. package/dist/systems/life.js.map +1 -0
  858. package/dist/systems/movement.d.ts +24 -12
  859. package/dist/systems/movement.js +1247 -0
  860. package/dist/systems/movement.js.map +1 -0
  861. package/dist/systems/orders.js +64 -0
  862. package/dist/systems/orders.js.map +1 -0
  863. package/dist/systems/production.js +322 -0
  864. package/dist/systems/production.js.map +1 -0
  865. package/dist/systems/productionQueue.js +120 -0
  866. package/dist/systems/productionQueue.js.map +1 -0
  867. package/dist/systems/victory.d.ts +1 -1
  868. package/dist/systems/victory.js +56 -0
  869. package/dist/systems/victory.js.map +1 -0
  870. package/dist/talk.d.ts +6 -6
  871. package/dist/talk.js +153 -0
  872. package/dist/talk.js.map +1 -0
  873. package/dist/targeting.d.ts +142 -0
  874. package/dist/targeting.js +49 -0
  875. package/dist/targeting.js.map +1 -0
  876. package/dist/tech.d.ts +20 -3
  877. package/dist/tech.js +239 -0
  878. package/dist/tech.js.map +1 -0
  879. package/dist/techTree.d.ts +7 -0
  880. package/dist/techTree.js +90 -0
  881. package/dist/techTree.js.map +1 -0
  882. package/dist/terrain.d.ts +59 -7
  883. package/dist/terrain.js +389 -0
  884. package/dist/terrain.js.map +1 -0
  885. package/dist/terrainSave.d.ts +6 -0
  886. package/dist/terrainSave.js +74 -0
  887. package/dist/terrainSave.js.map +1 -0
  888. package/dist/testing.d.ts +8 -7
  889. package/dist/testing.js +13 -739
  890. package/dist/testing.js.map +1 -1
  891. package/dist/tiles.d.ts +1 -1
  892. package/dist/tiles.js +43 -0
  893. package/dist/tiles.js.map +1 -0
  894. package/dist/timers.d.ts +29 -4
  895. package/dist/timers.js +242 -0
  896. package/dist/timers.js.map +1 -0
  897. package/dist/tomes.d.ts +4 -4
  898. package/dist/tomes.js +94 -0
  899. package/dist/tomes.js.map +1 -0
  900. package/dist/trade.js +103 -0
  901. package/dist/trade.js.map +1 -0
  902. package/dist/transport.d.ts +6 -1
  903. package/dist/transport.js +281 -0
  904. package/dist/transport.js.map +1 -0
  905. package/dist/tunables.d.ts +10 -3
  906. package/dist/tunables.js +56 -0
  907. package/dist/tunables.js.map +1 -0
  908. package/dist/unitResources.d.ts +67 -0
  909. package/dist/unitResources.js +266 -0
  910. package/dist/unitResources.js.map +1 -0
  911. package/dist/upkeep.d.ts +6 -1
  912. package/dist/upkeep.js +26 -0
  913. package/dist/upkeep.js.map +1 -0
  914. package/dist/veterancy.d.ts +8 -3
  915. package/dist/veterancy.js +131 -0
  916. package/dist/veterancy.js.map +1 -0
  917. package/dist/vision.d.ts +36 -0
  918. package/dist/vision.js +133 -0
  919. package/dist/vision.js.map +1 -0
  920. package/dist/walls.d.ts +1 -1
  921. package/dist/walls.js +278 -0
  922. package/dist/walls.js.map +1 -0
  923. package/dist/world.d.ts +606 -88
  924. package/dist/world.js +1263 -0
  925. package/dist/world.js.map +1 -0
  926. package/package.json +2 -2
  927. package/dist/ai.js.map +0 -1
  928. package/dist/attributes.d.ts +0 -66
  929. package/dist/brain-BvVdUhX8.js +0 -7659
  930. package/dist/brain-BvVdUhX8.js.map +0 -1
  931. package/dist/builds-C6LfgvEU.js +0 -460
  932. package/dist/builds-C6LfgvEU.js.map +0 -1
  933. package/dist/coreComponents-syuh2fPG.js +0 -5149
  934. package/dist/coreComponents-syuh2fPG.js.map +0 -1
  935. package/dist/debugCommands-CzjrSm66.js +0 -14739
  936. package/dist/debugCommands-CzjrSm66.js.map +0 -1
  937. package/dist/determinism-BCymQwiE.js +0 -518
  938. package/dist/determinism-BCymQwiE.js.map +0 -1
  939. package/dist/game-DiJEN-Ks.js +0 -5800
  940. package/dist/game-DiJEN-Ks.js.map +0 -1
  941. package/dist/index.js.map +0 -1
  942. package/dist/inspect-D9dWHmZ0.js.map +0 -1
  943. package/dist/local-Dkovq42k.js +0 -1379
  944. package/dist/local-Dkovq42k.js.map +0 -1
  945. package/dist/missionRules-C-bGxm0Q.js.map +0 -1
  946. package/dist/navigation-worker.js.map +0 -1
  947. package/dist/packs-g5thvmGn.js +0 -3199
  948. package/dist/packs-g5thvmGn.js.map +0 -1
  949. package/dist/profiles-B3NS9jwk.js.map +0 -1
  950. package/dist/server.js.map +0 -1
  951. package/dist/simulate-oXBiw1Ff.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cinematics.js","names":["cinematicCueEvent","cinematicCuedEvent","cinematicEndedEvent","cinematicChoiceEvent"],"sources":["../src/cinematics.ts"],"sourcesContent":["import {\n\tcinematicChoice as cinematicChoiceEvent,\n\tcinematicCue as cinematicCueEvent,\n\tcinematicCued as cinematicCuedEvent,\n\tcinematicEnded as cinematicEndedEvent,\n\tenteredArea\n} from '#engine/engineEvents'\nimport { defineComponent } from './components'\nimport { defineListener } from './events'\nimport type { Audience } from './dialog'\nimport type { PlayerId } from './entity'\nimport { plain } from './plain'\nimport { type Step, waitUntil } from './sequences'\nimport type { World } from './world'\nimport { replicateEvent } from './replication'\n\n/**\n * Cinematics are the screen's: the camera, the HUD making way, the player's hands off. What they are is in a game's\n * view, by id (`GameView.cinematics.defs`). The rules say when one plays, so that it comes at the moment of the game it is\n * about (the start of the mission, a boss coming, the last wave beaten), the same moment for everyone, and a save\n * knows it was played: `playCinematic` now, or `cinematic` as a step of a sequence.\n *\n * The rules and the screen talk both ways. The rules cue a cinematic playing (`cueCinematic`: the gate is open, go on)\n * and a script or the data waits for the cue (`cut.untilCue`, a hook `cue:<name>`). The screen tells the rules when one\n * they played is over, and how (the `cinematic` command, as the player who saw it): the engine says so as\n * `cinematicEnded`, which a sequence waits for (`waitFor(cinematicEndedEvent)`, or `cinematic(id, { wait: 'ended' })`).\n * Being a command, it is in a replay, so what a story does after a cinematic is the same on every screen and every\n * time; the screen's cinematic is not in a replay, as screens are not\n */\n\n/**\n * A cinematic the rules play, as the engine's `cinematic` event carries it to the screens\n *\n * @beta\n */\nexport interface CinematicCue {\n\t/** Which of the view's cinematics */\n\tid: string\n\t/** Who sees it. Everyone when left out */\n\tto?: PlayerId[]\n\t/**\n\t * The game waits while it plays. Only where the simulation runs on the player's machine (single player): a screen\n\t * whose game runs elsewhere plays it with the game going on, as a server does not stop for one player\n\t */\n\thold: boolean\n\t/** The player may skip it */\n\tskippable: boolean\n\t/** What the rules hand the cinematic: the road of this map to fly down. Plain data, as it goes to every screen */\n\tparams?: Record<string, unknown>\n}\n\n/**\n * How a cinematic the rules played ended on a player's screen: played to its end, skipped, stopped (the game left, code\n * stopped it), made way for another, or never played (one already playing would not make way)\n *\n * @beta\n */\nexport type CinematicOutcome = 'ended' | 'skipped' | 'stopped' | 'replaced' | 'ignored'\n\n/** The outcomes a screen may report, for the command's check */\nexport const CINEMATIC_OUTCOMES = ['ended', 'skipped', 'stopped', 'replaced', 'ignored'] as const\n\n/**\n * A cue the rules send to the cinematic playing on some screens (`cueCinematic`), as the engine's `cinematicCued` event\n * carries it\n *\n * @beta\n */\nexport interface CinematicCueSent {\n\t/** Its name, as the cinematic waits for it (`cut.untilCue('gate')`, a hook `cue:gate`) */\n\tcue: string\n\t/** Who it goes to. Everyone when left out */\n\tto?: PlayerId[]\n\t/** What it carries to the cinematic. Plain data */\n\tparams?: Record<string, unknown>\n}\n\n/**\n * A cinematic the rules played is over on a player's screen (the engine's `cinematicEnded` event), as that player's\n * screen said with the `cinematic` command\n *\n * @beta\n */\nexport interface CinematicEnded {\n\t/** Whose screen it ended on */\n\tplayer: PlayerId\n\t/** Which of the view's cinematics */\n\tcinematic: string\n\t/** How it ended there */\n\toutcome: CinematicOutcome\n}\n\n/**\n * How a cinematic is played when a rule calls for it: who sees it, whether the game waits and whether it can be skipped\n *\n * @beta\n */\nexport interface CinematicOptions {\n\t/** Who sees it: a player, some, or everyone. Everyone when left out */\n\tto?: Audience\n\t/** The game waits while it plays, in single player. False when left out */\n\thold?: boolean\n\t/** The player may skip it. True when left out */\n\tskippable?: boolean\n\t/**\n\t * What the cinematic is handed (`Cinematic` is given it): what the rules know and the screen does not, like the\n\t * road of the map being played. Plain data\n\t */\n\tparams?: Record<string, unknown>\n}\n\n/**\n * Plays one of the view's cinematics on the screens of the players it is for, now\n *\n * @beta\n */\nexport function playCinematic(world: World, id: string, options: CinematicOptions = {}): void {\n\tconst { to = 'everyone', hold = false, skippable = true, params } = options\n\tworld.events.emit(cinematicCueEvent, {\n\t\tid,\n\t\tto: audience(to),\n\t\thold,\n\t\tskippable,\n\t\t...(params && { params: plain(params, `params of the cinematic \"${id}\"`, 'Cinematic') as Record<string, unknown> })\n\t})\n}\n\n/** Who a cue or a cinematic goes to, as a list: everyone's is left out */\nconst audience = (to: Audience): PlayerId[] | undefined => (to === 'everyone' ? undefined : Array.isArray(to) ? to : [to])\n\n/**\n * Cues the cinematic playing on the screens of the players it is for (everyone when left out): one waiting for it\n * (`cut.untilCue(name)`) goes on, and the view's hooks of it (`cue:<name>`) run. Nothing happens where none plays, or\n * the one playing does not listen for it. `params` is plain data the cue carries\n *\n * @beta\n */\nexport function cueCinematic(world: World, cue: string, options: { to?: Audience; params?: Record<string, unknown> } = {}): void {\n\tconst { to = 'everyone', params } = options\n\tworld.events.emit(cinematicCuedEvent, {\n\t\tcue,\n\t\tto: audience(to),\n\t\t...(params && { params: plain(params, `params of the cue \"${cue}\"`, 'Cinematic') as Record<string, unknown> })\n\t})\n}\n\n/**\n * A step of a sequence that cues the cinematic playing (see `cueCinematic`): `[wait(4), cinematicCue('gateOpen')]`\n *\n * @beta\n */\nexport const cinematicCue =\n\t<D = undefined>(cue: string, options?: { to?: Audience; params?: Record<string, unknown> }): Step<D> =>\n\t(world) =>\n\t\tcueCinematic(world, cue, options)\n\n/**\n * What a sequence waits for after a cinematic it played: its end for the player it was for (`ended`), the first of the\n * players' ends (`any`), or every player's (`all`). `ended` for a cinematic of several players is `all`\n *\n * @beta\n */\nexport type CinematicWait = 'ended' | 'any' | 'all'\n\n/** The sequences waiting for a cinematic to end on players' screens: in the world, so that a save keeps the count */\nexport const waits = defineComponent<{ list: { run: number; cinematic: string; waiting: PlayerId[]; any: boolean }[] }>({ id: 'core.cinematicWaits', default: () => ({ list: [] }) })\n\n/**\n * A player's screen says a cinematic the rules played is over (the `cinematic` command): the engine says so to the rules\n * (`cinematicEnded`), and a sequence that waits for it counts it\n */\nexport function cinematicEnded(world: World, player: PlayerId, cinematic: string, outcome: CinematicOutcome): void {\n\tif (world.states.has(waits)) {\n\t\tfor (const entry of world.state(waits).list) {\n\t\t\tif (entry.cinematic !== cinematic || !entry.waiting.includes(player)) continue\n\t\t\tentry.waiting = entry.any ? [] : entry.waiting.filter((other) => other !== player)\n\t\t}\n\t}\n\tworld.events.emit(cinematicEndedEvent, { player, cinematic, outcome })\n}\n\n/**\n * A player picked an answer of a choice of a cinematic on their screen (the engine's `cinematicChoice` event), as their\n * screen said with the `cinematicChoice` command: the rules branch on it (`waitFor(cinematicChoiceEvent, ...)`), so that\n * the story's branch is the same on every screen and in a replay\n *\n * @beta\n */\nexport interface CinematicChoice {\n\t/** Whose screen it was picked on */\n\tplayer: PlayerId\n\t/** Which of the view's cinematics */\n\tcinematic: string\n\t/** The choice's name in the cinematic (`choice` when it gave none), and the answer's id */\n\tquestion: string\n\t/** The id of the answer picked */\n\tchoice: string\n\t/** Whether nobody picked and the time ran out on its default */\n\ttimedOut: boolean\n}\n\n/** A player's pick of a choice of a cinematic, as their screen said: heard by the rules as `cinematicChoice` */\nexport function cinematicChose(world: World, choice: CinematicChoice): void {\n\tworld.events.emit(cinematicChoiceEvent, choice)\n}\n\n/**\n * The players a cinematic goes to that have a screen to say it ended: the ones of `to` (everyone's when left out) the\n * computer does not play, and not the neutral ones\n */\nfunction screensOf(world: World, to: PlayerId[] | undefined): PlayerId[] {\n\tconst computers = new Set(world.computers.list())\n\tconst out: PlayerId[] = []\n\tfor (const player of world.players.values()) {\n\t\tif (player.neutral || computers.has(player.id) || (to && !to.includes(player.id))) continue\n\t\tout.push(player.id)\n\t}\n\treturn out\n}\n\n/**\n * A step of a sequence that plays one of the view's cinematics: `defineSequence({ id: 'td.start', steps: [cinematic('td.intro', {\n * hold: true }), ...talk(...)] })`. It does not wait for it (with `hold`, the game, and the sequence with it, waits),\n * unless told to: `wait: 'ended'` goes on once the player it was for has seen it end (or skipped it), `any` once one\n * of the players it went to has, `all` once every one of them has. Only players with a screen are waited for (not the\n * computer's); one who left a game of several never says, so a sequence for many waits for `any` where that matters.\n * With a wait it is two steps, which `defineSequence` takes as they are\n *\n * @public\n */\nexport function cinematic<D = undefined>(id: string, options?: CinematicOptions & { wait?: undefined }): Step<D>\n/**\n * With `wait`: the cinematic played, then a wait for its end (see the other form), as two steps\n *\n * @public\n */\nexport function cinematic<D = undefined>(id: string, options: CinematicOptions & { wait: CinematicWait }): Step<D>[]\nexport function cinematic<D = undefined>(id: string, options: CinematicOptions & { wait?: CinematicWait } = {}): Step<D> | Step<D>[] {\n\tconst { wait, ...rest } = options\n\tconst play: Step<D> = (world) => playCinematic(world, id, rest)\n\tif (!wait) return play\n\tconst begin: Step<D> = (world, _data, run) => {\n\t\tconst state = world.state(waits)\n\t\t// what a sequence stopped before its cinematic ended left behind goes\n\t\tstate.list = state.list.filter((entry) => entry.run !== run && world.sequences.running(entry.run))\n\t\tstate.list.push({ run, cinematic: id, waiting: screensOf(world, audience(rest.to ?? 'everyone')), any: wait === 'any' })\n\t\tplayCinematic(world, id, rest)\n\t}\n\tconst over = waitUntil<D>((world, _data, run) => {\n\t\tconst state = world.state(waits)\n\t\tconst entry = state.list.find((candidate) => candidate.run === run)\n\t\tif (entry && entry.waiting.length > 0) return false\n\t\tstate.list = state.list.filter((candidate) => candidate !== entry)\n\t\treturn true\n\t})\n\treturn [begin, over]\n}\n\n/** A cinematic played, to whom it is for: everyone when it names nobody */\nexport const toldCinematic = replicateEvent(cinematicCueEvent, 'cinematic', ({ id, to, hold, skippable, params }, view) =>\n\t!to || to.includes(view.player) ? { type: 'cinematic', cinematic: id, hold, skippable, ...(params && { params }) } : undefined\n)\n\n/** A cue of the rules to a cinematic playing, to whom it is for */\nexport const toldCinematicCue = replicateEvent(cinematicCuedEvent, 'cinematicCue', ({ cue, to, params }, view) =>\n\t!to || to.includes(view.player) ? { type: 'cinematicCue', cue, ...(params && { params }) } : undefined\n)\n\n/**\n * The regions whose cinematic has played (`MapRegion.cinematic`), by name: kept in the world, so that a save knows\n *\n * @internal\n */\nexport const regionCinematicsPlayed = defineComponent<Record<string, true>>({ id: 'core.regionCinematics', default: () => ({}) })\n\n/**\n * A region of the map with a cinematic (`MapRegion.cinematic`, ED4) plays it for everyone, once, the first time a unit\n * of a player (not the neutral, nor a building) walks in, unless the game plays it its own way (`play: 'code'`)\n *\n * @beta\n */\nexport const regionCinematic = defineListener({\n\tid: 'core.regionCinematic',\n\tevent: enteredArea,\n\trun(world, { area, entity }) {\n\t\tconst region = world.map.regions.find((each) => each.name === area)\n\t\tconst cinematic = region?.cinematic\n\t\tif (!cinematic || cinematic.play === 'code' || world.player(entity.owner).neutral) return\n\t\tconst played = world.state(regionCinematicsPlayed)\n\t\tif (played[area]) return\n\t\tworld.setState(regionCinematicsPlayed, { ...played, [area]: true })\n\t\tplayCinematic(world, cinematic.id)\n\t}\n})\n"],"mappings":";;;;;;;;AA4DA,IAAa,qBAAqB;CAAC;CAAS;CAAW;CAAW;CAAY;AAAS;;;;;;AAwDvF,SAAgB,cAAc,OAAc,IAAY,UAA4B,CAAC,GAAS;CAC7F,MAAM,EAAE,KAAK,YAAY,OAAO,OAAO,YAAY,MAAM,WAAW;CACpE,MAAM,OAAO,KAAKA,gBAAmB;EACpC;EACA,IAAI,SAAS,EAAE;EACf;EACA;EACA,GAAI,UAAU,EAAE,QAAQ,MAAM,QAAQ,4BAA4B,GAAG,IAAI,WAAW,EAA6B;CAClH,CAAC;AACF;;AAGA,IAAM,YAAY,OAA0C,OAAO,aAAa,KAAA,IAAY,MAAM,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAE;;;;;;;;AASxH,SAAgB,aAAa,OAAc,KAAa,UAA+D,CAAC,GAAS;CAChI,MAAM,EAAE,KAAK,YAAY,WAAW;CACpC,MAAM,OAAO,KAAKC,eAAoB;EACrC;EACA,IAAI,SAAS,EAAE;EACf,GAAI,UAAU,EAAE,QAAQ,MAAM,QAAQ,sBAAsB,IAAI,IAAI,WAAW,EAA6B;CAC7G,CAAC;AACF;;;;;;AAOA,IAAa,gBACI,KAAa,aAC5B,UACA,aAAa,OAAO,KAAK,OAAO;;AAWlC,IAAa,QAAQ,gBAAmG;CAAE,IAAI;CAAuB,gBAAgB,EAAE,MAAM,CAAC,EAAE;AAAG,CAAC;;;;;AAMpL,SAAgB,eAAe,OAAc,QAAkB,WAAmB,SAAiC;CAClH,IAAI,MAAM,OAAO,IAAI,KAAK,GACzB,KAAK,MAAM,SAAS,MAAM,MAAM,KAAK,CAAC,CAAC,MAAM;EAC5C,IAAI,MAAM,cAAc,aAAa,CAAC,MAAM,QAAQ,SAAS,MAAM,GAAG;EACtE,MAAM,UAAU,MAAM,MAAM,CAAC,IAAI,MAAM,QAAQ,QAAQ,UAAU,UAAU,MAAM;CAClF;CAED,MAAM,OAAO,KAAKC,kBAAqB;EAAE;EAAQ;EAAW;CAAQ,CAAC;AACtE;;AAuBA,SAAgB,eAAe,OAAc,QAA+B;CAC3E,MAAM,OAAO,KAAKC,iBAAsB,MAAM;AAC/C;;;;;AAMA,SAAS,UAAU,OAAc,IAAwC;CACxE,MAAM,YAAY,IAAI,IAAI,MAAM,UAAU,KAAK,CAAC;CAChD,MAAM,MAAkB,CAAC;CACzB,KAAK,MAAM,UAAU,MAAM,QAAQ,OAAO,GAAG;EAC5C,IAAI,OAAO,WAAW,UAAU,IAAI,OAAO,EAAE,KAAM,MAAM,CAAC,GAAG,SAAS,OAAO,EAAE,GAAI;EACnF,IAAI,KAAK,OAAO,EAAE;CACnB;CACA,OAAO;AACR;AAmBA,SAAgB,UAAyB,IAAY,UAAuD,CAAC,GAAwB;CACpI,MAAM,EAAE,MAAM,GAAG,SAAS;CAC1B,MAAM,QAAiB,UAAU,cAAc,OAAO,IAAI,IAAI;CAC9D,IAAI,CAAC,MAAM,OAAO;CAClB,MAAM,SAAkB,OAAO,OAAO,QAAQ;EAC7C,MAAM,QAAQ,MAAM,MAAM,KAAK;EAE/B,MAAM,OAAO,MAAM,KAAK,QAAQ,UAAU,MAAM,QAAQ,OAAO,MAAM,UAAU,QAAQ,MAAM,GAAG,CAAC;EACjG,MAAM,KAAK,KAAK;GAAE;GAAK,WAAW;GAAI,SAAS,UAAU,OAAO,SAAS,KAAK,MAAM,UAAU,CAAC;GAAG,KAAK,SAAS;EAAM,CAAC;EACvH,cAAc,OAAO,IAAI,IAAI;CAC9B;CAQA,OAAO,CAAC,OAPK,WAAc,OAAO,OAAO,QAAQ;EAChD,MAAM,QAAQ,MAAM,MAAM,KAAK;EAC/B,MAAM,QAAQ,MAAM,KAAK,MAAM,cAAc,UAAU,QAAQ,GAAG;EAClE,IAAI,SAAS,MAAM,QAAQ,SAAS,GAAG,OAAO;EAC9C,MAAM,OAAO,MAAM,KAAK,QAAQ,cAAc,cAAc,KAAK;EACjE,OAAO;CACR,CACe,CAAI;AACpB;;AAGA,IAAa,gBAAgB,eAAeH,gBAAmB,cAAc,EAAE,IAAI,IAAI,MAAM,WAAW,UAAU,SACjH,CAAC,MAAM,GAAG,SAAS,KAAK,MAAM,IAAI;CAAE,MAAM;CAAa,WAAW;CAAI;CAAM;CAAW,GAAI,UAAU,EAAE,OAAO;AAAG,IAAI,KAAA,CACtH;;AAGA,IAAa,mBAAmB,eAAeC,eAAoB,iBAAiB,EAAE,KAAK,IAAI,UAAU,SACxG,CAAC,MAAM,GAAG,SAAS,KAAK,MAAM,IAAI;CAAE,MAAM;CAAgB;CAAK,GAAI,UAAU,EAAE,OAAO;AAAG,IAAI,KAAA,CAC9F;;;;;;AAOA,IAAa,yBAAyB,gBAAsC;CAAE,IAAI;CAAyB,gBAAgB,CAAC;AAAG,CAAC;;;;;;;AAQhI,IAAa,kBAAkB,eAAe;CAC7C,IAAI;CACJ,OAAO;CACP,IAAI,OAAO,EAAE,MAAM,UAAU;EAE5B,MAAM,YADS,MAAM,IAAI,QAAQ,MAAM,SAAS,KAAK,SAAS,IAC5C,CAAA,EAAQ;EAC1B,IAAI,CAAC,aAAa,UAAU,SAAS,UAAU,MAAM,OAAO,OAAO,KAAK,CAAC,CAAC,SAAS;EACnF,MAAM,SAAS,MAAM,MAAM,sBAAsB;EACjD,IAAI,OAAO,OAAO;EAClB,MAAM,SAAS,wBAAwB;GAAE,GAAG;IAAS,OAAO;EAAK,CAAC;EAClE,cAAc,OAAO,UAAU,EAAE;CAClC;AACD,CAAC"}
package/dist/clock.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { World } from './world';
2
2
  /**
3
- * The time of day of a world: what its day (`GameModule.day`) and the time played make of it, turned forward or stopped
3
+ * The time of day of a world: what its day (`Rules.day`) and the time played make of it, turned forward or stopped
4
4
  * by a map or a script. Kept in a save (`WorldInternals.clockShift`, `stillHour`)
5
5
  *
6
6
  * @beta
@@ -29,4 +29,4 @@ export declare class Clock {
29
29
  get night(): boolean;
30
30
  }
31
31
  /** The hour of the day, in a game with one (`Snapshot.hour`) */
32
- export declare const hourPart: import("./replication").SnapshotPart<keyof import(".").Snapshot>;
32
+ export declare const hourPart: import("./replication").SnapshotField<keyof import(".").Snapshot>;
package/dist/clock.js ADDED
@@ -0,0 +1,78 @@
1
+ import { hourOf, isNight } from "./defs.js";
2
+ import { snapshotField } from "./replication.js";
3
+ //#region src/clock.ts
4
+ /**
5
+ * The time of day of a world (`world.clock`): the hour, whether it is night, turned forward to an hour or stopped at one.
6
+ * The world's clock of ticks is the world's (`world.time`); this is the day's, which a map and a script move
7
+ */
8
+ /**
9
+ * The time of day of a world: what its day (`Rules.day`) and the time played make of it, turned forward or stopped
10
+ * by a map or a script. Kept in a save (`WorldInternals.clockShift`, `stillHour`)
11
+ *
12
+ * @beta
13
+ */
14
+ var Clock = class {
15
+ world;
16
+ /** Seconds the time of day is ahead of the time played */
17
+ shift = 0;
18
+ /** The hour, when the clock does not move (`stop`) */
19
+ still = void 0;
20
+ /** Whether it was night, and when that was worked out: asked many times a tick, worked out once */
21
+ seen = {
22
+ day: void 0,
23
+ time: NaN,
24
+ shift: 0,
25
+ still: void 0,
26
+ night: false
27
+ };
28
+ constructor(world) {
29
+ this.world = world;
30
+ }
31
+ /** Hour of the day, 0..24. Noon in a game without days */
32
+ get hour() {
33
+ if (this.still !== void 0 && this.world.registry.day) return this.still;
34
+ return hourOf(this.world.registry.day, this.world.time + this.shift);
35
+ }
36
+ /** Turns the clock forward to an hour, for a map that wants to start at night or a debug tool */
37
+ setHour(hour) {
38
+ const { day } = this.world.registry;
39
+ if (this.still !== void 0) this.still = hour;
40
+ else if (day) this.shift += ((hour - this.hour) % 24 + 24) % 24 / 24 * day.length;
41
+ }
42
+ /** Stops the clock at the hour it is, for a map that is always night; `false` lets it go on from there */
43
+ stop(still = true) {
44
+ const { day } = this.world.registry;
45
+ if (still) this.still ??= this.hour;
46
+ else if (this.still !== void 0) {
47
+ const hour = this.still;
48
+ this.still = void 0;
49
+ if (day) this.setHour(hour);
50
+ }
51
+ }
52
+ /** Whether the clock stands still (`stop`) */
53
+ get stopped() {
54
+ return this.still !== void 0;
55
+ }
56
+ /**
57
+ * Whether the sun is down. Asked for every unit's sight and stats, many times a tick: kept for the moment it was
58
+ * worked out at (the day, the time, the clock's shift, an hour that stands still), so it is worked out once a tick
59
+ */
60
+ get night() {
61
+ const { seen } = this;
62
+ const { day } = this.world.registry;
63
+ const { time } = this.world;
64
+ if (seen.time === time && seen.shift === this.shift && seen.still === this.still && seen.day === day) return seen.night;
65
+ seen.day = day;
66
+ seen.time = time;
67
+ seen.shift = this.shift;
68
+ seen.still = this.still;
69
+ seen.night = isNight(day, this.hour);
70
+ return seen.night;
71
+ }
72
+ };
73
+ /** The hour of the day, in a game with one (`Snapshot.hour`) */
74
+ var hourPart = snapshotField("hour", ({ world }) => world.registry.day ? world.hour : void 0, true);
75
+ //#endregion
76
+ export { Clock, hourPart };
77
+
78
+ //# sourceMappingURL=clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","names":[],"sources":["../src/clock.ts"],"sourcesContent":["/**\n * The time of day of a world (`world.clock`): the hour, whether it is night, turned forward to an hour or stopped at one.\n * The world's clock of ticks is the world's (`world.time`); this is the day's, which a map and a script move\n */\nimport { hourOf, isNight } from './defs'\nimport type { World } from './world'\nimport { snapshotField } from './replication'\n\n/**\n * The time of day of a world: what its day (`Rules.day`) and the time played make of it, turned forward or stopped\n * by a map or a script. Kept in a save (`WorldInternals.clockShift`, `stillHour`)\n *\n * @beta\n */\nexport class Clock {\n\t/** Seconds the time of day is ahead of the time played */\n\tshift = 0\n\t/** The hour, when the clock does not move (`stop`) */\n\tstill: number | undefined = undefined\n\t/** Whether it was night, and when that was worked out: asked many times a tick, worked out once */\n\tprivate readonly seen: { day: unknown; time: number; shift: number; still: number | undefined; night: boolean } = {\n\t\tday: undefined,\n\t\ttime: Number.NaN,\n\t\tshift: 0,\n\t\tstill: undefined,\n\t\tnight: false\n\t}\n\n\tconstructor(private readonly world: World) {}\n\n\t/** Hour of the day, 0..24. Noon in a game without days */\n\tget hour(): number {\n\t\tif (this.still !== undefined && this.world.registry.day) return this.still\n\t\treturn hourOf(this.world.registry.day, this.world.time + this.shift)\n\t}\n\n\t/** Turns the clock forward to an hour, for a map that wants to start at night or a debug tool */\n\tsetHour(hour: number): void {\n\t\tconst { day } = this.world.registry\n\t\tif (this.still !== undefined) this.still = hour\n\t\telse if (day) this.shift += (((((hour - this.hour) % 24) + 24) % 24) / 24) * day.length\n\t}\n\n\t/** Stops the clock at the hour it is, for a map that is always night; `false` lets it go on from there */\n\tstop(still = true): void {\n\t\tconst { day } = this.world.registry\n\t\tif (still) this.still ??= this.hour\n\t\telse if (this.still !== undefined) {\n\t\t\tconst hour = this.still\n\t\t\tthis.still = undefined\n\t\t\tif (day) this.setHour(hour)\n\t\t}\n\t}\n\n\t/** Whether the clock stands still (`stop`) */\n\tget stopped(): boolean {\n\t\treturn this.still !== undefined\n\t}\n\n\t/**\n\t * Whether the sun is down. Asked for every unit's sight and stats, many times a tick: kept for the moment it was\n\t * worked out at (the day, the time, the clock's shift, an hour that stands still), so it is worked out once a tick\n\t */\n\tget night(): boolean {\n\t\tconst { seen } = this\n\t\tconst { day } = this.world.registry\n\t\tconst { time } = this.world\n\t\tif (seen.time === time && seen.shift === this.shift && seen.still === this.still && seen.day === day) return seen.night\n\t\tseen.day = day\n\t\tseen.time = time\n\t\tseen.shift = this.shift\n\t\tseen.still = this.still\n\t\tseen.night = isNight(day, this.hour)\n\t\treturn seen.night\n\t}\n}\n\n/** The hour of the day, in a game with one (`Snapshot.hour`) */\nexport const hourPart = snapshotField('hour', ({ world }) => (world.registry.day ? world.hour : undefined), true)\n"],"mappings":";;;;;;;;;;;;;AAcA,IAAa,QAAb,MAAmB;CAcW;;CAZ7B,QAAQ;;CAER,QAA4B,KAAA;;CAE5B,OAAkH;EACjH,KAAK,KAAA;EACL,MAAM;EACN,OAAO;EACP,OAAO,KAAA;EACP,OAAO;CACR;CAEA,YAAY,OAA+B;EAAd,KAAA,QAAA;CAAe;;CAG5C,IAAI,OAAe;EAClB,IAAI,KAAK,UAAU,KAAA,KAAa,KAAK,MAAM,SAAS,KAAK,OAAO,KAAK;EACrE,OAAO,OAAO,KAAK,MAAM,SAAS,KAAK,KAAK,MAAM,OAAO,KAAK,KAAK;CACpE;;CAGA,QAAQ,MAAoB;EAC3B,MAAM,EAAE,QAAQ,KAAK,MAAM;EAC3B,IAAI,KAAK,UAAU,KAAA,GAAW,KAAK,QAAQ;OACtC,IAAI,KAAK,KAAK,WAAc,OAAO,KAAK,QAAQ,KAAM,MAAM,KAAM,KAAM,IAAI;CAClF;;CAGA,KAAK,QAAQ,MAAY;EACxB,MAAM,EAAE,QAAQ,KAAK,MAAM;EAC3B,IAAI,OAAO,KAAK,UAAU,KAAK;OAC1B,IAAI,KAAK,UAAU,KAAA,GAAW;GAClC,MAAM,OAAO,KAAK;GAClB,KAAK,QAAQ,KAAA;GACb,IAAI,KAAK,KAAK,QAAQ,IAAI;EAC3B;CACD;;CAGA,IAAI,UAAmB;EACtB,OAAO,KAAK,UAAU,KAAA;CACvB;;;;;CAMA,IAAI,QAAiB;EACpB,MAAM,EAAE,SAAS;EACjB,MAAM,EAAE,QAAQ,KAAK,MAAM;EAC3B,MAAM,EAAE,SAAS,KAAK;EACtB,IAAI,KAAK,SAAS,QAAQ,KAAK,UAAU,KAAK,SAAS,KAAK,UAAU,KAAK,SAAS,KAAK,QAAQ,KAAK,OAAO,KAAK;EAClH,KAAK,MAAM;EACX,KAAK,OAAO;EACZ,KAAK,QAAQ,KAAK;EAClB,KAAK,QAAQ,KAAK;EAClB,KAAK,QAAQ,QAAQ,KAAK,KAAK,IAAI;EACnC,OAAO,KAAK;CACb;AACD;;AAGA,IAAa,WAAW,cAAc,SAAS,EAAE,YAAa,MAAM,SAAS,MAAM,MAAM,OAAO,KAAA,GAAY,IAAI"}
@@ -8,11 +8,12 @@ import type { World } from './world';
8
8
  *
9
9
  * A command type is a `CommandDef`: the fields it carries, and what it does. What arrives is checked against the
10
10
  * fields before anything happens, because on a server it is whatever anyone sends. The engine's own commands are
11
- * defined the same way as a game module's (`GameModule.commands`).
11
+ * defined the same way as a game module's (`Rules.commands`).
12
12
  *
13
13
  * @beta
14
14
  */
15
15
  export interface CommandDef<F extends Fields = Fields> {
16
+ /** The command's name, which a sent command carries as its `type` */
16
17
  type: string;
17
18
  /** What it carries, besides its type and the player who sent it. See `fields.ts` for the checkers */
18
19
  fields: F;
@@ -53,7 +54,7 @@ export type DefinedCommand<T extends string, F extends Fields> = CommandDef<F> &
53
54
  * session.send(sellTower.make({ tower: 12 }))
54
55
  * ```
55
56
  *
56
- * @beta
57
+ * @public
57
58
  */
58
59
  export declare function defineCommand<const T extends string, F extends Fields>(type: T, fields: F, execute: (world: World, player: PlayerId, command: Checked<F>) => void, options?: {
59
60
  outsideTick?: boolean;
@@ -63,9 +64,19 @@ type CommandOf<D> = D extends DefinedCommand<infer T, infer F> ? {
63
64
  type: T;
64
65
  player: PlayerId;
65
66
  } & Checked<F> : never;
67
+ /**
68
+ * Turns the player's missiles of an ability that are steered (`EffectFields.steer`) towards a point, as they fly
69
+ * (`steerMissile`): what the screen sends while one is in the air, for where the pointer is
70
+ *
71
+ * @beta
72
+ */
73
+ export declare const steerCommand: DefinedCommand<"steer", {
74
+ ability: import("./fields").Check<string>;
75
+ point: import("./fields").Check<Vec2>;
76
+ }>;
66
77
  /**
67
78
  * Stops what units are doing, as the classic Stop does: a plain interrupt. They fight what comes near again at once; a
68
- * unit that is to stand down and take no fights is put in a stance (`stanceCommand`, `withStances`)
79
+ * unit that is to stand down and take no fights is put in a stance (`stanceCommand`, `stancesPack`)
69
80
  *
70
81
  * @beta
71
82
  */
@@ -104,7 +115,22 @@ export declare const shareCommand: DefinedCommand<"share", {
104
115
  *
105
116
  * @beta
106
117
  */
107
- export declare const coreCommands: readonly [DefinedCommand<"order", {
118
+ export declare const coreCommands: readonly [DefinedCommand<"camera", {
119
+ pan: import("./fields").Check<Checked<{
120
+ x: import("./fields").Check<number>;
121
+ z: import("./fields").Check<number>;
122
+ seconds: import("./fields").Check<number | undefined>;
123
+ ease: import("./fields").Check<string | undefined>;
124
+ }> | undefined>;
125
+ lock: import("./fields").Check<import("./cameraOrders").CameraRect | null | undefined>;
126
+ bounds: import("./fields").Check<import("./cameraOrders").CameraRect | null | undefined>;
127
+ shake: import("./fields").Check<Checked<{
128
+ strength: import("./fields").Check<number>;
129
+ x: import("./fields").Check<number | undefined>;
130
+ z: import("./fields").Check<number | undefined>;
131
+ }> | undefined>;
132
+ seat: import("./fields").Check<number | undefined>;
133
+ }>, DefinedCommand<"order", {
108
134
  entities: import("./fields").Check<number[]>;
109
135
  order: import("./fields").Check<Checked<{
110
136
  type: import("./fields").Check<string>;
@@ -126,6 +152,7 @@ export declare const coreCommands: readonly [DefinedCommand<"order", {
126
152
  target: import("./fields").Check<number | undefined>;
127
153
  queue: import("./fields").Check<boolean | undefined>;
128
154
  formation: import("./fields").Check<string | undefined>;
155
+ facing: import("./fields").Check<number | undefined>;
129
156
  }>, DefinedCommand<"attack", {
130
157
  entities: import("./fields").Check<number[]>;
131
158
  point: import("./fields").Check<Vec2>;
@@ -136,8 +163,12 @@ export declare const coreCommands: readonly [DefinedCommand<"order", {
136
163
  entities: import("./fields").Check<number[]>;
137
164
  ability: import("./fields").Check<string>;
138
165
  point: import("./fields").Check<Vec2 | undefined>;
166
+ to: import("./fields").Check<Vec2 | undefined>;
139
167
  target: import("./fields").Check<number | undefined>;
140
168
  queue: import("./fields").Check<boolean | undefined>;
169
+ }>, DefinedCommand<"steer", {
170
+ ability: import("./fields").Check<string>;
171
+ point: import("./fields").Check<Vec2>;
141
172
  }>, DefinedCommand<"autocast", {
142
173
  entities: import("./fields").Check<number[]>;
143
174
  ability: import("./fields").Check<string>;
@@ -205,6 +236,7 @@ export declare const coreCommands: readonly [DefinedCommand<"order", {
205
236
  * @beta
206
237
  */
207
238
  export interface Commands {
239
+ /** The engine's commands, as a union of their types; a game or pack adds its own by merging into `Commands` */
208
240
  core: (typeof coreCommands)[number];
209
241
  }
210
242
  /**