@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,1504 @@
1
+ //#region src/packs/items/defaults.ts
2
+ /** A creep, in what a passive asks of its target: a unit that is neither a hero nor a structure */
3
+ var CREEP = {
4
+ hero: false,
5
+ structure: false
6
+ };
7
+ /** The stock of a shop of what is used up: a few at a time, one more every so many seconds */
8
+ var few = (max, restock) => ({
9
+ max,
10
+ restock
11
+ });
12
+ /** Move speed, in cells a second, of what the words call 25 (a hero arena game's units of move speed are 80 to a cell) */
13
+ var speed = (points) => points / 80;
14
+ /**
15
+ * The default tags of items, named and coloured: the shop's filters (`TagDef.filter`) and its words. A game adds to
16
+ * them or puts its own in their place (`Rules.tags`)
17
+ *
18
+ * @beta
19
+ */
20
+ var defaultItemTags = [
21
+ {
22
+ id: "attack",
23
+ name: "Attack",
24
+ description: "Attack damage",
25
+ color: "#e07a4f",
26
+ filter: true
27
+ },
28
+ {
29
+ id: "attack-speed",
30
+ name: "Attack speed",
31
+ description: "Attacks more often",
32
+ color: "#e0b04f",
33
+ filter: true
34
+ },
35
+ {
36
+ id: "crit",
37
+ name: "Critical strike",
38
+ description: "Critical strikes, and how hard they land",
39
+ color: "#e04f4f",
40
+ filter: true
41
+ },
42
+ {
43
+ id: "defence",
44
+ name: "Defence",
45
+ description: "Armor, against attacks",
46
+ color: "#9aa3ad",
47
+ filter: true
48
+ },
49
+ {
50
+ id: "magic",
51
+ name: "Magic",
52
+ description: "Ability power and magic penetration",
53
+ color: "#8f6fe0",
54
+ filter: true
55
+ },
56
+ {
57
+ id: "magic-resist",
58
+ name: "Magic resist",
59
+ description: "Against spells",
60
+ color: "#5fa0d8",
61
+ filter: true
62
+ },
63
+ {
64
+ id: "health",
65
+ name: "Health",
66
+ color: "#4fbf6a",
67
+ filter: true
68
+ },
69
+ {
70
+ id: "mana",
71
+ name: "Mana",
72
+ description: "Mana, and mana coming back",
73
+ color: "#4f7fe0",
74
+ filter: true
75
+ },
76
+ {
77
+ id: "sustain",
78
+ name: "Sustain",
79
+ description: "Health coming back: life steal, omnivamp, regeneration",
80
+ color: "#3fae8f",
81
+ filter: true
82
+ },
83
+ {
84
+ id: "anti-heal",
85
+ name: "Anti-heal",
86
+ description: "Less healing for the enemies it hurts",
87
+ color: "#a04060",
88
+ filter: true
89
+ },
90
+ {
91
+ id: "movement",
92
+ name: "Movement",
93
+ description: "Moving faster, or through units",
94
+ color: "#d8d06a",
95
+ filter: true
96
+ },
97
+ {
98
+ id: "vision",
99
+ name: "Vision",
100
+ description: "Wards, and finding what hides",
101
+ color: "#c9b8f0",
102
+ filter: true
103
+ },
104
+ {
105
+ id: "support",
106
+ name: "Support",
107
+ description: "Heals, shields and help for allies",
108
+ color: "#f0d890",
109
+ filter: true
110
+ },
111
+ {
112
+ id: "jungle",
113
+ name: "Jungle",
114
+ description: "Clearing creeps’ camps",
115
+ color: "#6f9f3f",
116
+ filter: true
117
+ },
118
+ {
119
+ id: "consumable",
120
+ name: "Consumable",
121
+ description: "Used up",
122
+ color: "#c8a070"
123
+ },
124
+ {
125
+ id: "early",
126
+ name: "Early",
127
+ description: "For the first minutes",
128
+ color: "#b0b0b0"
129
+ },
130
+ {
131
+ id: "late",
132
+ name: "Late",
133
+ description: "For a long game",
134
+ color: "#707070"
135
+ }
136
+ ];
137
+ /**
138
+ * The unit types the default items bring into the world: the Sight Ward's ward and the Wolfhide Charm's wolf. A game's
139
+ * own of the same id comes in their place
140
+ *
141
+ * @beta
142
+ */
143
+ var defaultItemUnits = [{
144
+ id: "ward",
145
+ name: "Sight Ward",
146
+ kind: "unit",
147
+ radius: .3,
148
+ stats: { health: 3 },
149
+ sight: 12,
150
+ sightNight: 12,
151
+ lifetime: 60,
152
+ invisible: { after: 2 },
153
+ bounty: [15, 15],
154
+ xp: 15
155
+ }, {
156
+ id: "spiritWolf",
157
+ name: "Spirit Wolf",
158
+ kind: "unit",
159
+ radius: .45,
160
+ stats: {
161
+ health: 420,
162
+ attackDamage: 18,
163
+ attackSpeed: 1.1,
164
+ attackRange: 1,
165
+ moveSpeed: 5,
166
+ armor: 2
167
+ },
168
+ sight: 10,
169
+ attacks: [{
170
+ damagePoint: .35,
171
+ acquisitionRange: 7
172
+ }],
173
+ corpse: false,
174
+ bounty: [10, 10],
175
+ xp: 20
176
+ }];
177
+ /**
178
+ * The buffs of the default items: what their abilities and passives put on, and what their passives keep on the
179
+ * carrier
180
+ *
181
+ * @beta
182
+ */
183
+ var defaultItemBuffs = [
184
+ {
185
+ id: "healingDraught",
186
+ name: "Healing Draught",
187
+ description: "Regaining 20 health a second",
188
+ duration: 12,
189
+ tags: ["heal"],
190
+ onTick: {
191
+ every: 1,
192
+ effects: [{
193
+ type: "heal",
194
+ amount: 20
195
+ }]
196
+ }
197
+ },
198
+ {
199
+ id: "elixirOfMight",
200
+ name: "Elixir of Might",
201
+ description: "+20 attack damage, +30 ability power, +200 health",
202
+ duration: 180,
203
+ tags: ["elixir"],
204
+ stats: {
205
+ attackDamage: 20,
206
+ abilityPower: 30,
207
+ health: 200
208
+ }
209
+ },
210
+ {
211
+ id: "stoneheartWound",
212
+ name: "Thornhide",
213
+ description: "Heals 40% less",
214
+ duration: 3,
215
+ harmful: true,
216
+ tags: ["anti-heal"],
217
+ stats: { incomingHealing: -.4 }
218
+ },
219
+ {
220
+ id: "oathhornRallied",
221
+ name: "Rallied",
222
+ description: "Runs 30% faster and takes 15% less damage",
223
+ duration: 3,
224
+ tags: ["haste"],
225
+ stats: { incomingDamage: -.15 },
226
+ percent: { moveSpeed: .3 }
227
+ },
228
+ {
229
+ id: "dawnStasis",
230
+ name: "Stasis",
231
+ description: "Held out of time: nothing reaches it, and it does nothing",
232
+ duration: 2,
233
+ tags: ["stasis"],
234
+ stun: true,
235
+ invulnerable: true,
236
+ untargetable: true,
237
+ dispellable: false
238
+ },
239
+ {
240
+ id: "secondDawnWard",
241
+ name: "Second Dawn",
242
+ description: "About to die, it is held in stasis instead",
243
+ tags: ["save"],
244
+ dispellable: false,
245
+ passive: [{
246
+ type: "onFatal",
247
+ health: .05,
248
+ effects: [{
249
+ type: "buff",
250
+ buff: "dawnStasis",
251
+ on: "caster"
252
+ }, {
253
+ type: "wardSpent",
254
+ buff: "secondDawnWard",
255
+ spent: "secondDawnSpent",
256
+ duration: 120
257
+ }]
258
+ }]
259
+ },
260
+ {
261
+ id: "secondDawnSpent",
262
+ name: "Second Dawn spent",
263
+ description: "Its Second Dawn comes back when this ends",
264
+ duration: 120,
265
+ tags: ["cooldown"],
266
+ dispellable: false
267
+ },
268
+ {
269
+ id: "rimeChill",
270
+ name: "Rime",
271
+ description: "Moves 20% slower",
272
+ duration: 1.5,
273
+ harmful: true,
274
+ tags: ["slow"],
275
+ percent: { moveSpeed: -.2 }
276
+ },
277
+ {
278
+ id: "bloodreaverFrenzy",
279
+ name: "Frenzy",
280
+ description: "The lower its health, the faster it attacks: up to 60% faster near death",
281
+ tags: ["attack-speed"],
282
+ dispellable: false,
283
+ change: (_world, carrier) => ({ percent: { attackSpeed: .6 * Math.max(0, 1 - carrier.health / Math.max(carrier.maxHealth, 1)) } }),
284
+ onTick: {
285
+ every: .25,
286
+ run: (_world, carrier) => carrier.statsCache = null
287
+ }
288
+ },
289
+ {
290
+ id: "shadowveilVeiled",
291
+ name: "Shadowveil",
292
+ description: "Unseen, and walks through units. Attacking or casting ends it",
293
+ duration: 2,
294
+ tags: ["invisible"],
295
+ invisible: true,
296
+ phasing: true,
297
+ breaksOn: ["attack", "cast"]
298
+ },
299
+ {
300
+ id: "emberBurn",
301
+ name: "Embers",
302
+ description: "Heals 40% less",
303
+ duration: 3,
304
+ harmful: true,
305
+ tags: ["fire", "anti-heal"],
306
+ stats: { incomingHealing: -.4 }
307
+ },
308
+ {
309
+ id: "voidglassSundered",
310
+ name: "Sundered",
311
+ description: "Takes 10% more magic damage",
312
+ duration: 4,
313
+ harmful: true,
314
+ tags: ["sunder"],
315
+ stats: { incomingMagicDamage: .1 }
316
+ },
317
+ {
318
+ id: "brambleBurn",
319
+ name: "Bramble",
320
+ description: "Burning: 8 damage a second",
321
+ duration: 3,
322
+ harmful: true,
323
+ tags: ["fire"],
324
+ onTick: {
325
+ every: 1,
326
+ effects: [{
327
+ type: "damage",
328
+ amount: 8,
329
+ damageType: "magic"
330
+ }]
331
+ }
332
+ },
333
+ {
334
+ id: "wanderersStride",
335
+ name: "Wandering",
336
+ description: "Out of fights: runs 25% faster",
337
+ tags: ["haste"],
338
+ percent: { moveSpeed: .25 }
339
+ },
340
+ {
341
+ id: "shadowCowlShroud",
342
+ name: "Shroud",
343
+ description: "Out of fights: runs 15% faster",
344
+ tags: ["haste"],
345
+ percent: { moveSpeed: .15 }
346
+ },
347
+ {
348
+ id: "kingsTithe",
349
+ name: "Old King’s Tithe",
350
+ description: "Dying near the Ring of the Old King pays its carrier 25 gold",
351
+ harmful: true,
352
+ tags: ["mark"],
353
+ dispellable: false,
354
+ onCarrierDeath: [{
355
+ type: "reward",
356
+ amount: 25
357
+ }]
358
+ },
359
+ {
360
+ id: "emberIdolBurst",
361
+ name: "Ember Idol",
362
+ description: "On death, a burst of fire hurts the enemies around for 250",
363
+ tags: ["fire"],
364
+ dispellable: false,
365
+ onCarrierDeath: [{
366
+ type: "damage",
367
+ amount: 250,
368
+ damageType: "magic",
369
+ radius: 5,
370
+ affects: "enemies"
371
+ }]
372
+ }
373
+ ];
374
+ /**
375
+ * The abilities of the default items: what using one does (`ItemDef.ability`), and their passives (`ItemDef.passive`)
376
+ *
377
+ * @beta
378
+ */
379
+ var defaultItemAbilities = [
380
+ {
381
+ id: "drinkHealingDraught",
382
+ name: "Drink",
383
+ description: "Regains 240 health over 12 seconds",
384
+ target: "none",
385
+ cooldown: 1,
386
+ effects: [{
387
+ type: "buff",
388
+ buff: "healingDraught",
389
+ on: "caster"
390
+ }]
391
+ },
392
+ {
393
+ id: "drinkManaDraught",
394
+ name: "Drink",
395
+ description: "Regains 150 mana",
396
+ target: "none",
397
+ cooldown: 1,
398
+ effects: [{
399
+ type: "mana",
400
+ amount: 150,
401
+ on: "caster"
402
+ }]
403
+ },
404
+ {
405
+ id: "drinkElixirOfMight",
406
+ name: "Drink",
407
+ description: "+20 attack damage, +30 ability power and +200 health for 3 minutes",
408
+ target: "none",
409
+ cooldown: 1,
410
+ effects: [{
411
+ type: "buff",
412
+ buff: "elixirOfMight",
413
+ on: "caster"
414
+ }]
415
+ },
416
+ {
417
+ id: "plantSightWard",
418
+ name: "Plant",
419
+ description: "Puts down a ward that sees around it for 60 seconds",
420
+ target: "point",
421
+ range: 6,
422
+ cooldown: 1,
423
+ effects: [{
424
+ type: "spawn",
425
+ unit: "ward"
426
+ }]
427
+ },
428
+ {
429
+ id: "scatterSeersDust",
430
+ name: "Scatter",
431
+ description: "Finds what is invisible around the hero: it can be seen, and struck, for 8 seconds",
432
+ target: "none",
433
+ cooldown: 4,
434
+ effects: [{
435
+ type: "detect",
436
+ radius: 10,
437
+ duration: 8
438
+ }]
439
+ },
440
+ {
441
+ id: "readReturnScroll",
442
+ name: "Read",
443
+ description: "After 4 seconds standing, the hero is home. Being hurt breaks it",
444
+ target: "none",
445
+ cooldown: 10,
446
+ effects: [],
447
+ channel: {
448
+ duration: 4,
449
+ breaksOnDamage: true,
450
+ finished: [{
451
+ type: "teleport",
452
+ to: "home"
453
+ }]
454
+ }
455
+ },
456
+ {
457
+ id: "rallyingHorn",
458
+ name: "Rallying Horn",
459
+ description: "Allies near run 30% faster and take 15% less damage for 3 seconds",
460
+ target: "none",
461
+ cooldown: 60,
462
+ effects: [{
463
+ type: "buff",
464
+ buff: "oathhornRallied",
465
+ radius: 8,
466
+ affects: "allies"
467
+ }]
468
+ },
469
+ {
470
+ id: "shadowveilVeil",
471
+ name: "Shadowveil",
472
+ description: "Unseen for 2 seconds, walking through units. Attacking or casting ends it",
473
+ target: "none",
474
+ cooldown: 45,
475
+ effects: [{
476
+ type: "buff",
477
+ buff: "shadowveilVeiled",
478
+ on: "caster"
479
+ }]
480
+ },
481
+ {
482
+ id: "huntersKnifePassive",
483
+ name: "Hunter",
484
+ description: "Attacks on creeps heal for 8% of their damage more",
485
+ target: "passive",
486
+ effects: [{
487
+ type: "onHit",
488
+ slot: "creeps",
489
+ priority: 1,
490
+ effects: [{
491
+ type: "if",
492
+ target: CREEP,
493
+ effects: [{
494
+ type: "heal",
495
+ byDamage: .08,
496
+ on: "caster"
497
+ }]
498
+ }]
499
+ }]
500
+ },
501
+ {
502
+ id: "brambleCharmPassive",
503
+ name: "Bramble",
504
+ description: "Attacks on creeps burn them for 24 over 3 seconds and heal for 8",
505
+ target: "passive",
506
+ effects: [{
507
+ type: "onHit",
508
+ slot: "creeps",
509
+ priority: 2,
510
+ effects: [{
511
+ type: "if",
512
+ target: CREEP,
513
+ effects: [{
514
+ type: "buff",
515
+ buff: "brambleBurn"
516
+ }, {
517
+ type: "heal",
518
+ amount: 8,
519
+ on: "caster"
520
+ }]
521
+ }]
522
+ }]
523
+ },
524
+ {
525
+ id: "shadowCowlShroud",
526
+ name: "Shroud",
527
+ description: "Out of fights for 5 seconds: runs 15% faster",
528
+ target: "passive",
529
+ effects: [{
530
+ type: "outOfFights",
531
+ buff: "shadowCowlShroud",
532
+ after: 5
533
+ }]
534
+ },
535
+ {
536
+ id: "wanderersBootsStride",
537
+ name: "Wanderer",
538
+ description: "Out of fights for 5 seconds: runs 25% faster",
539
+ target: "passive",
540
+ effects: [{
541
+ type: "outOfFights",
542
+ buff: "wanderersStride",
543
+ after: 5
544
+ }]
545
+ },
546
+ {
547
+ id: "stoneheartThornhide",
548
+ name: "Thornhide",
549
+ description: "Who strikes it takes 30 magic damage (more with its armor) and heals 40% less for 3 seconds",
550
+ target: "passive",
551
+ effects: [{
552
+ type: "onDamaged",
553
+ attack: true,
554
+ effects: [{
555
+ type: "damage",
556
+ amount: 30,
557
+ scaling: { armor: .25 },
558
+ damageType: "magic"
559
+ }, {
560
+ type: "buff",
561
+ buff: "stoneheartWound"
562
+ }]
563
+ }]
564
+ },
565
+ {
566
+ id: "dawnmenderSecondDawn",
567
+ name: "Second Dawn",
568
+ description: "An ally near about to die is held in stasis for 2 seconds instead. Once every 120 seconds",
569
+ target: "passive",
570
+ effects: [{
571
+ type: "allyWard",
572
+ buff: "secondDawnWard",
573
+ spent: "secondDawnSpent",
574
+ radius: 8
575
+ }]
576
+ },
577
+ {
578
+ id: "rimecallerRime",
579
+ name: "Rime",
580
+ description: "Harmful spells slow by 20% for 1.5 seconds",
581
+ target: "passive",
582
+ effects: [{
583
+ type: "onAbilityHit",
584
+ effects: [{
585
+ type: "buff",
586
+ buff: "rimeChill"
587
+ }]
588
+ }]
589
+ },
590
+ {
591
+ id: "bloodreaverFrenzy",
592
+ name: "Frenzy",
593
+ description: "The lower its health, the faster it attacks: up to 60% faster near death",
594
+ target: "passive",
595
+ effects: [{
596
+ type: "buff",
597
+ buff: "bloodreaverFrenzy"
598
+ }]
599
+ },
600
+ {
601
+ id: "nightfangHunt",
602
+ name: "Nightfang",
603
+ description: "Killing a hero makes its abilities ready again, but its ultimate",
604
+ target: "passive",
605
+ effects: [{
606
+ type: "onKill",
607
+ only: "heroes",
608
+ effects: [{ type: "refreshAbilities" }]
609
+ }]
610
+ },
611
+ {
612
+ id: "kingsedgeExecution",
613
+ name: "Execution",
614
+ description: "Attacks finish a unit left under 10% of its health",
615
+ target: "passive",
616
+ effects: [{
617
+ type: "onHit",
618
+ effects: [{
619
+ type: "if",
620
+ target: {
621
+ healthBelow: .1,
622
+ structure: false
623
+ },
624
+ effects: [{
625
+ type: "damage",
626
+ amount: 0,
627
+ byCurrentHealth: 1,
628
+ damageType: "true"
629
+ }]
630
+ }]
631
+ }]
632
+ },
633
+ {
634
+ id: "galeshotVolley",
635
+ name: "Galeshot",
636
+ description: "Every third attack strikes again",
637
+ target: "passive",
638
+ effects: [{
639
+ type: "onHit",
640
+ every: 3,
641
+ effects: [{
642
+ type: "damage",
643
+ amount: 0,
644
+ scaling: { attackDamage: 1 },
645
+ damageType: "physical"
646
+ }]
647
+ }]
648
+ },
649
+ {
650
+ id: "embercrownEmbers",
651
+ name: "Embers",
652
+ description: "Spells burn for 20 more magic damage, and who they burn heals 40% less for 3 seconds",
653
+ target: "passive",
654
+ effects: [{
655
+ type: "onAbilityHit",
656
+ effects: [{
657
+ type: "damage",
658
+ amount: 20,
659
+ scaling: { abilityPower: .05 },
660
+ damageType: "magic"
661
+ }, {
662
+ type: "buff",
663
+ buff: "emberBurn"
664
+ }]
665
+ }]
666
+ },
667
+ {
668
+ id: "voidglassSunder",
669
+ name: "Sunder",
670
+ description: "Spells sunder: who they hit takes 10% more magic damage for 4 seconds",
671
+ target: "passive",
672
+ effects: [{
673
+ type: "onAbilityHit",
674
+ effects: [{
675
+ type: "buff",
676
+ buff: "voidglassSundered"
677
+ }]
678
+ }]
679
+ },
680
+ {
681
+ id: "wildheartPassive",
682
+ name: "Wildheart",
683
+ description: "Attacks deal 40% more to creeps; Reap cools down half again as fast",
684
+ target: "passive",
685
+ effects: [{
686
+ type: "onHit",
687
+ slot: "creeps",
688
+ priority: 3,
689
+ effects: [{
690
+ type: "if",
691
+ target: CREEP,
692
+ effects: [{
693
+ type: "damage",
694
+ amount: 0,
695
+ scaling: { attackDamage: .4 },
696
+ damageType: "physical"
697
+ }]
698
+ }]
699
+ }, {
700
+ type: "quicken",
701
+ spell: "reap",
702
+ part: .5
703
+ }]
704
+ },
705
+ {
706
+ id: "oldKingsTithe",
707
+ name: "Old King’s Tithe",
708
+ description: "Each enemy unit that dies near pays 25 gold",
709
+ target: "passive",
710
+ effects: [{
711
+ type: "aura",
712
+ buff: "kingsTithe",
713
+ radius: 9,
714
+ affects: "enemies"
715
+ }]
716
+ },
717
+ {
718
+ id: "emberIdolBurst",
719
+ name: "Ember Idol",
720
+ description: "On death, a burst of fire hurts the enemies around for 250",
721
+ target: "passive",
722
+ effects: [{
723
+ type: "buff",
724
+ buff: "emberIdolBurst"
725
+ }]
726
+ },
727
+ {
728
+ id: "wolfhideCompanion",
729
+ name: "Wolfhide",
730
+ description: "At night a spirit wolf walks at its side",
731
+ target: "passive",
732
+ effects: [{
733
+ type: "nightCompanion",
734
+ unit: "spiritWolf"
735
+ }]
736
+ }
737
+ ];
738
+ /**
739
+ * The engine's default items: six consumables, three to start with, ten basic, twelve intermediate and four pairs of
740
+ * boots built of them, twelve legendaries, and three relics, found and never sold
741
+ *
742
+ * @beta
743
+ */
744
+ var defaultItems = [
745
+ {
746
+ id: "healingDraught",
747
+ name: "Healing Draught",
748
+ description: "Regains 240 health over 12 seconds. Five go in a slot",
749
+ tier: "consumable",
750
+ cost: { gold: 50 },
751
+ charges: 1,
752
+ stack: 5,
753
+ ability: "drinkHealingDraught",
754
+ stock: few(5, 30),
755
+ tags: [
756
+ "consumable",
757
+ "health",
758
+ "sustain",
759
+ "early"
760
+ ]
761
+ },
762
+ {
763
+ id: "manaDraught",
764
+ name: "Mana Draught",
765
+ description: "Regains 150 mana. Five go in a slot",
766
+ tier: "consumable",
767
+ cost: { gold: 75 },
768
+ charges: 1,
769
+ stack: 5,
770
+ ability: "drinkManaDraught",
771
+ stock: few(5, 30),
772
+ tags: [
773
+ "consumable",
774
+ "mana",
775
+ "early"
776
+ ]
777
+ },
778
+ {
779
+ id: "elixirOfMight",
780
+ name: "Elixir of Might",
781
+ description: "+20 attack damage, +30 ability power and +200 health for 3 minutes",
782
+ tier: "consumable",
783
+ cost: { gold: 500 },
784
+ charges: 1,
785
+ ability: "drinkElixirOfMight",
786
+ stock: few(2, 120),
787
+ tags: [
788
+ "consumable",
789
+ "attack",
790
+ "magic",
791
+ "health",
792
+ "late"
793
+ ]
794
+ },
795
+ {
796
+ id: "sightWard",
797
+ name: "Sight Ward",
798
+ description: "Puts down a ward that sees around it for 60 seconds. Its enemies see it put down, then only what finds it does. Three go in a slot",
799
+ tier: "consumable",
800
+ cost: { gold: 75 },
801
+ charges: 1,
802
+ stack: 3,
803
+ ability: "plantSightWard",
804
+ stock: few(3, 60),
805
+ tags: [
806
+ "consumable",
807
+ "vision",
808
+ "support"
809
+ ]
810
+ },
811
+ {
812
+ id: "seersDust",
813
+ name: "Seer’s Dust",
814
+ description: "Finds what is invisible around the hero for 8 seconds. Two uses",
815
+ tier: "consumable",
816
+ cost: { gold: 100 },
817
+ charges: 2,
818
+ ability: "scatterSeersDust",
819
+ stock: few(2, 60),
820
+ tags: ["consumable", "vision"]
821
+ },
822
+ {
823
+ id: "returnScroll",
824
+ name: "Return Scroll",
825
+ description: "After 4 seconds standing still, the hero is home. Being hurt breaks it. Three go in a slot",
826
+ tier: "consumable",
827
+ cost: { gold: 100 },
828
+ charges: 1,
829
+ stack: 3,
830
+ ability: "readReturnScroll",
831
+ stock: few(3, 60),
832
+ tags: ["consumable", "movement"]
833
+ },
834
+ {
835
+ id: "squiresBlade",
836
+ name: "Squire’s Blade",
837
+ description: "+10 attack damage, +80 health; 2.5% of all damage dealt comes back as health",
838
+ tier: "starter",
839
+ cost: { gold: 400 },
840
+ bonus: { stats: {
841
+ attackDamage: 10,
842
+ health: 80,
843
+ omnivamp: .025
844
+ } },
845
+ tags: [
846
+ "attack",
847
+ "health",
848
+ "sustain",
849
+ "early"
850
+ ],
851
+ suits: [
852
+ "reaver",
853
+ "stalker",
854
+ "ranger",
855
+ "roamer"
856
+ ]
857
+ },
858
+ {
859
+ id: "squiresShield",
860
+ name: "Squire’s Shield",
861
+ description: "+110 health, +6 armor, 1 health back a second",
862
+ tier: "starter",
863
+ cost: { gold: 400 },
864
+ bonus: { stats: {
865
+ health: 110,
866
+ armor: 6,
867
+ healthRegen: 1
868
+ } },
869
+ tags: [
870
+ "health",
871
+ "defence",
872
+ "sustain",
873
+ "early"
874
+ ],
875
+ suits: ["vanguard", "keeper"]
876
+ },
877
+ {
878
+ id: "squiresRing",
879
+ name: "Squire’s Ring",
880
+ description: "+18 ability power, +90 health, 1 mana back a second",
881
+ tier: "starter",
882
+ cost: { gold: 400 },
883
+ bonus: { stats: {
884
+ abilityPower: 18,
885
+ health: 90,
886
+ manaRegen: 1
887
+ } },
888
+ tags: [
889
+ "magic",
890
+ "health",
891
+ "mana",
892
+ "early"
893
+ ],
894
+ suits: [
895
+ "arcanist",
896
+ "binder",
897
+ "keeper"
898
+ ]
899
+ },
900
+ {
901
+ id: "ironSword",
902
+ name: "Iron Sword",
903
+ description: "+10 attack damage",
904
+ tier: "basic",
905
+ cost: { gold: 350 },
906
+ bonus: { stats: { attackDamage: 10 } },
907
+ tags: ["attack"]
908
+ },
909
+ {
910
+ id: "quickDagger",
911
+ name: "Quick Dagger",
912
+ description: "Attacks 12% faster",
913
+ tier: "basic",
914
+ cost: { gold: 300 },
915
+ bonus: { percent: { attackSpeed: .12 } },
916
+ tags: ["attack-speed"]
917
+ },
918
+ {
919
+ id: "paddedCoat",
920
+ name: "Padded Coat",
921
+ description: "+15 armor",
922
+ tier: "basic",
923
+ cost: { gold: 300 },
924
+ bonus: { stats: { armor: 15 } },
925
+ tags: ["defence"]
926
+ },
927
+ {
928
+ id: "wardingCloak",
929
+ name: "Warding Cloak",
930
+ description: "+25 magic resist",
931
+ tier: "basic",
932
+ cost: { gold: 450 },
933
+ bonus: { stats: { magicResist: 25 } },
934
+ tags: ["magic-resist"]
935
+ },
936
+ {
937
+ id: "rubyShard",
938
+ name: "Ruby Shard",
939
+ description: "+150 health",
940
+ tier: "basic",
941
+ cost: { gold: 400 },
942
+ bonus: { stats: { health: 150 } },
943
+ tags: ["health"]
944
+ },
945
+ {
946
+ id: "spellTome",
947
+ name: "Spell Tome",
948
+ description: "+20 ability power",
949
+ tier: "basic",
950
+ cost: { gold: 435 },
951
+ bonus: { stats: { abilityPower: 20 } },
952
+ tags: ["magic"]
953
+ },
954
+ {
955
+ id: "sapphire",
956
+ name: "Sapphire",
957
+ description: "+250 mana",
958
+ tier: "basic",
959
+ cost: { gold: 350 },
960
+ bonus: { stats: { mana: 250 } },
961
+ tags: ["mana"]
962
+ },
963
+ {
964
+ id: "keenGlass",
965
+ name: "Keen Glass",
966
+ description: "15% chance to strike critically",
967
+ tier: "basic",
968
+ cost: { gold: 600 },
969
+ bonus: { stats: { critChance: .15 } },
970
+ tags: ["crit"]
971
+ },
972
+ {
973
+ id: "faithCharm",
974
+ name: "Faith Charm",
975
+ description: "Mana comes back 50% faster; heals and shields 5% stronger",
976
+ tier: "basic",
977
+ cost: { gold: 250 },
978
+ bonus: {
979
+ stats: { healShieldPower: .05 },
980
+ percent: { manaRegen: .5 }
981
+ },
982
+ tags: ["mana", "support"]
983
+ },
984
+ {
985
+ id: "boots",
986
+ name: "Boots",
987
+ description: "+25 move speed. One pair at a time",
988
+ tier: "basic",
989
+ cost: { gold: 300 },
990
+ group: "boots",
991
+ bonus: { stats: { moveSpeed: speed(25) } },
992
+ tags: ["movement", "early"]
993
+ },
994
+ {
995
+ id: "huntersKnife",
996
+ name: "Hunter’s Knife",
997
+ description: "+15 attack damage, 8% life steal; on creeps, life steal twice over",
998
+ tier: "intermediate",
999
+ cost: { gold: 1e3 },
1000
+ from: ["ironSword", "ironSword"],
1001
+ bonus: { stats: {
1002
+ attackDamage: 15,
1003
+ lifeSteal: .08
1004
+ } },
1005
+ passive: "huntersKnifePassive",
1006
+ unique: "hunter",
1007
+ tags: [
1008
+ "attack",
1009
+ "sustain",
1010
+ "jungle"
1011
+ ],
1012
+ suits: ["reaver", "roamer"]
1013
+ },
1014
+ {
1015
+ id: "serratedEdge",
1016
+ name: "Serrated Edge",
1017
+ description: "+20 attack damage, ignores 10 armor",
1018
+ tier: "intermediate",
1019
+ cost: { gold: 1100 },
1020
+ from: ["ironSword", "ironSword"],
1021
+ bonus: { stats: {
1022
+ attackDamage: 20,
1023
+ lethality: 10
1024
+ } },
1025
+ tags: ["attack"],
1026
+ suits: ["stalker"]
1027
+ },
1028
+ {
1029
+ id: "recurveBow",
1030
+ name: "Recurve Bow",
1031
+ description: "Attacks 25% faster, +10 attack damage",
1032
+ tier: "intermediate",
1033
+ cost: { gold: 1e3 },
1034
+ from: ["quickDagger", "quickDagger"],
1035
+ bonus: {
1036
+ stats: { attackDamage: 10 },
1037
+ percent: { attackSpeed: .25 }
1038
+ },
1039
+ tags: ["attack-speed", "attack"],
1040
+ suits: ["ranger"]
1041
+ },
1042
+ {
1043
+ id: "chainVest",
1044
+ name: "Chain Vest",
1045
+ description: "+40 armor",
1046
+ tier: "intermediate",
1047
+ cost: { gold: 900 },
1048
+ from: ["paddedCoat"],
1049
+ bonus: { stats: { armor: 40 } },
1050
+ tags: ["defence"],
1051
+ suits: ["vanguard"]
1052
+ },
1053
+ {
1054
+ id: "spellwardMantle",
1055
+ name: "Spellward Mantle",
1056
+ description: "+40 magic resist, +200 health",
1057
+ tier: "intermediate",
1058
+ cost: { gold: 1250 },
1059
+ from: ["wardingCloak", "rubyShard"],
1060
+ bonus: { stats: {
1061
+ magicResist: 40,
1062
+ health: 200
1063
+ } },
1064
+ tags: ["magic-resist", "health"],
1065
+ suits: ["vanguard", "keeper"]
1066
+ },
1067
+ {
1068
+ id: "giantsBelt",
1069
+ name: "Giant’s Belt",
1070
+ description: "+350 health",
1071
+ tier: "intermediate",
1072
+ cost: { gold: 900 },
1073
+ from: ["rubyShard"],
1074
+ bonus: { stats: { health: 350 } },
1075
+ tags: ["health"],
1076
+ suits: ["vanguard", "reaver"]
1077
+ },
1078
+ {
1079
+ id: "brutalAxe",
1080
+ name: "Brutal Axe",
1081
+ description: "+20 attack damage, +200 health",
1082
+ tier: "intermediate",
1083
+ cost: { gold: 1100 },
1084
+ from: ["ironSword", "rubyShard"],
1085
+ bonus: { stats: {
1086
+ attackDamage: 20,
1087
+ health: 200
1088
+ } },
1089
+ tags: ["attack", "health"],
1090
+ suits: ["reaver", "roamer"]
1091
+ },
1092
+ {
1093
+ id: "arcaneLens",
1094
+ name: "Arcane Lens",
1095
+ description: "+25 ability power, ignores 13% of magic resist",
1096
+ tier: "intermediate",
1097
+ cost: { gold: 1100 },
1098
+ from: ["spellTome"],
1099
+ bonus: { stats: {
1100
+ abilityPower: 25,
1101
+ magicPenetrationPercent: .13
1102
+ } },
1103
+ tags: ["magic"],
1104
+ suits: ["arcanist", "binder"]
1105
+ },
1106
+ {
1107
+ id: "runeCodex",
1108
+ name: "Rune Codex",
1109
+ description: "+30 ability power, 10 ability haste",
1110
+ tier: "intermediate",
1111
+ cost: { gold: 1e3 },
1112
+ from: ["spellTome"],
1113
+ bonus: { stats: {
1114
+ abilityPower: 30,
1115
+ abilityHaste: 10
1116
+ } },
1117
+ tags: ["magic"],
1118
+ suits: ["arcanist", "keeper"]
1119
+ },
1120
+ {
1121
+ id: "mendersIdol",
1122
+ name: "Mender’s Idol",
1123
+ description: "Heals and shields 10% stronger, mana back twice as fast, 10 ability haste",
1124
+ tier: "intermediate",
1125
+ cost: { gold: 900 },
1126
+ from: ["faithCharm"],
1127
+ bonus: {
1128
+ stats: {
1129
+ healShieldPower: .1,
1130
+ abilityHaste: 10
1131
+ },
1132
+ percent: { manaRegen: 1 }
1133
+ },
1134
+ tags: ["support", "mana"],
1135
+ suits: ["keeper"]
1136
+ },
1137
+ {
1138
+ id: "brambleCharm",
1139
+ name: "Bramble Charm",
1140
+ description: "+10 attack damage; attacks on creeps burn them for 24 over 3 seconds and heal for 8",
1141
+ tier: "intermediate",
1142
+ cost: { gold: 950 },
1143
+ from: ["ironSword"],
1144
+ bonus: { stats: { attackDamage: 10 } },
1145
+ passive: "brambleCharmPassive",
1146
+ unique: "bramble",
1147
+ tags: [
1148
+ "jungle",
1149
+ "sustain",
1150
+ "attack"
1151
+ ],
1152
+ suits: ["roamer"]
1153
+ },
1154
+ {
1155
+ id: "shadowCowl",
1156
+ name: "Shadow Cowl",
1157
+ description: "+18 attack damage, ignores 6 armor; out of fights for 5 seconds, runs 15% faster",
1158
+ tier: "intermediate",
1159
+ cost: { gold: 1e3 },
1160
+ from: ["ironSword"],
1161
+ bonus: { stats: {
1162
+ attackDamage: 18,
1163
+ lethality: 6
1164
+ } },
1165
+ passive: "shadowCowlShroud",
1166
+ unique: "shroud",
1167
+ tags: ["attack", "movement"],
1168
+ suits: ["stalker", "roamer"]
1169
+ },
1170
+ {
1171
+ id: "greavesOfHaste",
1172
+ name: "Greaves of Haste",
1173
+ description: "+45 move speed, attacks 30% faster",
1174
+ tier: "intermediate",
1175
+ cost: { gold: 1100 },
1176
+ from: ["boots", "quickDagger"],
1177
+ group: "boots",
1178
+ bonus: {
1179
+ stats: { moveSpeed: speed(45) },
1180
+ percent: { attackSpeed: .3 }
1181
+ },
1182
+ tags: ["movement", "attack-speed"],
1183
+ suits: ["ranger", "stalker"]
1184
+ },
1185
+ {
1186
+ id: "ironTreads",
1187
+ name: "Iron Treads",
1188
+ description: "+45 move speed, +20 armor, stuns and slows 30% shorter",
1189
+ tier: "intermediate",
1190
+ cost: { gold: 1100 },
1191
+ from: ["boots", "paddedCoat"],
1192
+ group: "boots",
1193
+ bonus: { stats: {
1194
+ moveSpeed: speed(45),
1195
+ armor: 20,
1196
+ tenacity: .3
1197
+ } },
1198
+ tags: ["movement", "defence"],
1199
+ suits: [
1200
+ "vanguard",
1201
+ "reaver",
1202
+ "binder"
1203
+ ]
1204
+ },
1205
+ {
1206
+ id: "sorcerersSandals",
1207
+ name: "Sorcerer’s Sandals",
1208
+ description: "+45 move speed, ignores 18 magic resist",
1209
+ tier: "intermediate",
1210
+ cost: { gold: 1100 },
1211
+ from: ["boots"],
1212
+ group: "boots",
1213
+ bonus: { stats: {
1214
+ moveSpeed: speed(45),
1215
+ magicPenetration: 18
1216
+ } },
1217
+ tags: ["movement", "magic"],
1218
+ suits: ["arcanist", "binder"]
1219
+ },
1220
+ {
1221
+ id: "wanderersBoots",
1222
+ name: "Wanderer’s Boots",
1223
+ description: "+45 move speed; out of fights for 5 seconds, runs 25% faster",
1224
+ tier: "intermediate",
1225
+ cost: { gold: 900 },
1226
+ from: ["boots"],
1227
+ group: "boots",
1228
+ bonus: { stats: { moveSpeed: speed(45) } },
1229
+ passive: "wanderersBootsStride",
1230
+ tags: ["movement"],
1231
+ suits: ["roamer", "keeper"]
1232
+ },
1233
+ {
1234
+ id: "stoneheart",
1235
+ name: "Stoneheart",
1236
+ description: "+400 health, +60 armor. Thornhide: who strikes it takes magic damage and heals 40% less for 3 seconds",
1237
+ tier: "legendary",
1238
+ cost: { gold: 2700 },
1239
+ from: [
1240
+ "chainVest",
1241
+ "giantsBelt",
1242
+ "paddedCoat"
1243
+ ],
1244
+ bonus: { stats: {
1245
+ health: 400,
1246
+ armor: 60
1247
+ } },
1248
+ passive: "stoneheartThornhide",
1249
+ unique: "thornhide",
1250
+ tags: [
1251
+ "defence",
1252
+ "health",
1253
+ "anti-heal"
1254
+ ],
1255
+ suits: ["vanguard"]
1256
+ },
1257
+ {
1258
+ id: "oathhorn",
1259
+ name: "Oathhorn",
1260
+ description: "+450 health, +50 magic resist. Used: allies near run 30% faster and take 15% less damage for 3 seconds. Every 60 seconds",
1261
+ tier: "legendary",
1262
+ cost: { gold: 2600 },
1263
+ from: ["spellwardMantle", "giantsBelt"],
1264
+ bonus: { stats: {
1265
+ health: 450,
1266
+ magicResist: 50
1267
+ } },
1268
+ ability: "rallyingHorn",
1269
+ tags: [
1270
+ "health",
1271
+ "magic-resist",
1272
+ "support"
1273
+ ],
1274
+ suits: ["vanguard", "keeper"]
1275
+ },
1276
+ {
1277
+ id: "dawnmender",
1278
+ name: "Dawnmender",
1279
+ description: "+40 ability power, 20 ability haste, heals and shields 12% stronger. Second Dawn: an ally near about to die is held in stasis for 2 seconds instead, once every 120 seconds",
1280
+ tier: "legendary",
1281
+ cost: { gold: 2700 },
1282
+ from: ["mendersIdol", "runeCodex"],
1283
+ bonus: { stats: {
1284
+ abilityPower: 40,
1285
+ abilityHaste: 20,
1286
+ healShieldPower: .12
1287
+ } },
1288
+ passive: "dawnmenderSecondDawn",
1289
+ unique: "secondDawn",
1290
+ tags: ["magic", "support"],
1291
+ suits: ["keeper"]
1292
+ },
1293
+ {
1294
+ id: "rimecaller",
1295
+ name: "Rimecaller",
1296
+ description: "+60 ability power, +300 health. Rime: harmful spells slow by 20%",
1297
+ tier: "legendary",
1298
+ cost: { gold: 2600 },
1299
+ from: ["arcaneLens", "rubyShard"],
1300
+ bonus: { stats: {
1301
+ abilityPower: 60,
1302
+ health: 300
1303
+ } },
1304
+ passive: "rimecallerRime",
1305
+ unique: "rime",
1306
+ tags: ["magic", "health"],
1307
+ suits: ["binder", "arcanist"]
1308
+ },
1309
+ {
1310
+ id: "bloodreaver",
1311
+ name: "Bloodreaver",
1312
+ description: "+45 attack damage, +300 health, 10% of all damage back as health. Frenzy: the lower its health, the faster it attacks",
1313
+ tier: "legendary",
1314
+ cost: { gold: 3100 },
1315
+ from: ["brutalAxe", "huntersKnife"],
1316
+ bonus: { stats: {
1317
+ attackDamage: 45,
1318
+ health: 300,
1319
+ omnivamp: .1
1320
+ } },
1321
+ passive: "bloodreaverFrenzy",
1322
+ unique: "frenzy",
1323
+ tags: [
1324
+ "attack",
1325
+ "health",
1326
+ "sustain"
1327
+ ],
1328
+ suits: ["reaver"]
1329
+ },
1330
+ {
1331
+ id: "nightfang",
1332
+ name: "Nightfang",
1333
+ description: "+55 attack damage, ignores 18 armor. A hero killed makes its abilities ready again, but its ultimate",
1334
+ tier: "legendary",
1335
+ cost: { gold: 2900 },
1336
+ from: ["serratedEdge", "ironSword"],
1337
+ bonus: { stats: {
1338
+ attackDamage: 55,
1339
+ lethality: 18
1340
+ } },
1341
+ passive: "nightfangHunt",
1342
+ unique: "nightfang",
1343
+ tags: ["attack"],
1344
+ suits: ["stalker"]
1345
+ },
1346
+ {
1347
+ id: "shadowveil",
1348
+ name: "Shadowveil",
1349
+ description: "+50 attack damage, ignores 15 armor; out of fights, runs 15% faster. Used: unseen for 2 seconds, walking through units. Every 45 seconds",
1350
+ tier: "legendary",
1351
+ cost: { gold: 3e3 },
1352
+ from: ["shadowCowl", "serratedEdge"],
1353
+ bonus: { stats: {
1354
+ attackDamage: 50,
1355
+ lethality: 15
1356
+ } },
1357
+ ability: "shadowveilVeil",
1358
+ passive: "shadowCowlShroud",
1359
+ unique: "shroud",
1360
+ tags: ["attack", "movement"],
1361
+ suits: ["stalker", "roamer"]
1362
+ },
1363
+ {
1364
+ id: "kingsedge",
1365
+ name: "Kingsedge",
1366
+ description: "+55 attack damage, 25% critical chance, critical strikes deal 30% more. Execution: attacks finish a unit left under 10% of its health",
1367
+ tier: "legendary",
1368
+ cost: { gold: 3400 },
1369
+ from: [
1370
+ "recurveBow",
1371
+ "ironSword",
1372
+ "keenGlass"
1373
+ ],
1374
+ bonus: { stats: {
1375
+ attackDamage: 55,
1376
+ critChance: .25,
1377
+ critDamage: .3
1378
+ } },
1379
+ passive: "kingsedgeExecution",
1380
+ unique: "execution",
1381
+ tags: [
1382
+ "attack",
1383
+ "crit",
1384
+ "late"
1385
+ ],
1386
+ suits: ["ranger"]
1387
+ },
1388
+ {
1389
+ id: "galeshot",
1390
+ name: "Galeshot",
1391
+ description: "Attacks 40% faster, 20% critical chance, runs 7% faster. Every third attack strikes again",
1392
+ tier: "legendary",
1393
+ cost: { gold: 2800 },
1394
+ from: ["recurveBow", "quickDagger"],
1395
+ bonus: {
1396
+ stats: { critChance: .2 },
1397
+ percent: {
1398
+ attackSpeed: .4,
1399
+ moveSpeed: .07
1400
+ }
1401
+ },
1402
+ passive: "galeshotVolley",
1403
+ unique: "galeshot",
1404
+ tags: [
1405
+ "attack-speed",
1406
+ "crit",
1407
+ "movement"
1408
+ ],
1409
+ suits: ["ranger"]
1410
+ },
1411
+ {
1412
+ id: "embercrown",
1413
+ name: "Embercrown",
1414
+ description: "+70 ability power, +400 mana. Embers: spells burn, and who they burn heals 40% less for 3 seconds",
1415
+ tier: "legendary",
1416
+ cost: { gold: 2900 },
1417
+ from: ["runeCodex", "sapphire"],
1418
+ bonus: { stats: {
1419
+ abilityPower: 70,
1420
+ mana: 400
1421
+ } },
1422
+ passive: "embercrownEmbers",
1423
+ unique: "embers",
1424
+ tags: [
1425
+ "magic",
1426
+ "mana",
1427
+ "anti-heal"
1428
+ ],
1429
+ suits: ["arcanist"]
1430
+ },
1431
+ {
1432
+ id: "voidglass",
1433
+ name: "Voidglass",
1434
+ description: "+65 ability power, ignores 20% of magic resist. Sunder: who spells hit takes 10% more magic damage for 4 seconds",
1435
+ tier: "legendary",
1436
+ cost: { gold: 2800 },
1437
+ from: ["arcaneLens", "spellTome"],
1438
+ bonus: { stats: {
1439
+ abilityPower: 65,
1440
+ magicPenetrationPercent: .2
1441
+ } },
1442
+ passive: "voidglassSunder",
1443
+ unique: "sunder",
1444
+ tags: ["magic", "late"],
1445
+ suits: ["arcanist", "stalker"]
1446
+ },
1447
+ {
1448
+ id: "wildheart",
1449
+ name: "Wildheart",
1450
+ description: "+35 attack damage, +350 health. Attacks deal 40% more to creeps; Reap cools down half again as fast",
1451
+ tier: "legendary",
1452
+ cost: { gold: 2700 },
1453
+ from: ["brambleCharm", "brutalAxe"],
1454
+ bonus: { stats: {
1455
+ attackDamage: 35,
1456
+ health: 350
1457
+ } },
1458
+ passive: "wildheartPassive",
1459
+ unique: "bramble",
1460
+ tags: [
1461
+ "attack",
1462
+ "health",
1463
+ "jungle"
1464
+ ],
1465
+ suits: ["roamer"]
1466
+ },
1467
+ {
1468
+ id: "emberIdol",
1469
+ name: "Ember Idol",
1470
+ description: "+30 ability power. On death, a burst of fire hurts the enemies around for 250",
1471
+ tier: "relic",
1472
+ cost: { gold: 800 },
1473
+ bonus: { stats: { abilityPower: 30 } },
1474
+ passive: "emberIdolBurst",
1475
+ unique: "emberIdol",
1476
+ tags: ["magic"]
1477
+ },
1478
+ {
1479
+ id: "ringOfTheOldKing",
1480
+ name: "Ring of the Old King",
1481
+ description: "+5 armor. Each enemy unit that dies near pays 25 gold",
1482
+ tier: "relic",
1483
+ cost: { gold: 1e3 },
1484
+ bonus: { stats: { armor: 5 } },
1485
+ passive: "oldKingsTithe",
1486
+ unique: "oldKingsTithe",
1487
+ tags: ["defence"]
1488
+ },
1489
+ {
1490
+ id: "wolfhideCharm",
1491
+ name: "Wolfhide Charm",
1492
+ description: "+150 health. At night a spirit wolf walks at its side",
1493
+ tier: "relic",
1494
+ cost: { gold: 900 },
1495
+ bonus: { stats: { health: 150 } },
1496
+ passive: "wolfhideCompanion",
1497
+ unique: "wolfhide",
1498
+ tags: ["health", "jungle"]
1499
+ }
1500
+ ];
1501
+ //#endregion
1502
+ export { defaultItemAbilities, defaultItemBuffs, defaultItemTags, defaultItemUnits, defaultItems };
1503
+
1504
+ //# sourceMappingURL=defaults.js.map