warscript 0.0.1-dev.8bfb72f → 0.0.1-dev.8d8d605

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 (372) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.d.ts +1 -0
  8. package/core/types/frame.lua +136 -58
  9. package/core/types/handle.lua +9 -9
  10. package/core/types/item.d.ts +1 -0
  11. package/core/types/item.lua +1 -0
  12. package/core/types/player.d.ts +18 -1
  13. package/core/types/player.lua +76 -26
  14. package/core/types/playerCamera.d.ts +2 -0
  15. package/core/types/playerCamera.lua +123 -5
  16. package/core/types/playerColor.lua +4 -3
  17. package/core/types/sound.d.ts +18 -25
  18. package/core/types/sound.lua +113 -33
  19. package/core/types/tileCell.d.ts +11 -1
  20. package/core/types/tileCell.lua +97 -0
  21. package/core/types/timer.d.ts +9 -8
  22. package/core/types/timer.lua +45 -23
  23. package/core/types/unit.d.ts +4 -0
  24. package/core/types/unit.lua +4 -0
  25. package/core/util.lua +6 -1
  26. package/decl/native.d.ts +1718 -964
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/behavior.d.ts +14 -1
  30. package/engine/behavior.lua +230 -70
  31. package/engine/behaviour/ability/apply-buff.lua +5 -5
  32. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  33. package/engine/behaviour/ability/damage.d.ts +12 -3
  34. package/engine/behaviour/ability/damage.lua +40 -49
  35. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  36. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  37. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  38. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  39. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  40. package/engine/behaviour/ability/restore-mana.lua +6 -6
  41. package/engine/behaviour/ability.d.ts +16 -6
  42. package/engine/behaviour/ability.lua +67 -21
  43. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  44. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  45. package/engine/behaviour/unit.d.ts +41 -2
  46. package/engine/behaviour/unit.lua +270 -6
  47. package/engine/buff.d.ts +117 -60
  48. package/engine/buff.lua +587 -303
  49. package/engine/index.d.ts +2 -1
  50. package/engine/internal/ability.d.ts +11 -1
  51. package/engine/internal/ability.lua +100 -41
  52. package/engine/internal/item/ability.lua +63 -11
  53. package/engine/internal/item/fields.d.ts +12 -0
  54. package/engine/internal/item/fields.lua +33 -0
  55. package/engine/internal/item+owner.d.ts +1 -0
  56. package/engine/internal/item+owner.lua +19 -6
  57. package/engine/internal/item.d.ts +28 -16
  58. package/engine/internal/item.lua +265 -83
  59. package/engine/internal/mechanics/ability-duration.lua +1 -1
  60. package/engine/internal/mechanics/cast-ability.lua +6 -3
  61. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  62. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  63. package/engine/internal/misc/frame-coordinates.lua +21 -0
  64. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  65. package/engine/internal/misc/get-terrain-z.lua +11 -0
  66. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  67. package/engine/internal/misc/player-local-handle.lua +5 -0
  68. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  69. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  70. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  71. package/engine/internal/object-data/health-bonus.lua +16 -0
  72. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  73. package/engine/internal/object-data/mana-bonus.lua +16 -0
  74. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  75. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  76. package/engine/internal/unit/ability.d.ts +35 -0
  77. package/engine/internal/unit/ability.lua +113 -12
  78. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  79. package/engine/internal/unit/allowed-targets.lua +9 -1
  80. package/engine/internal/unit/appearance.d.ts +15 -0
  81. package/engine/internal/unit/appearance.lua +85 -0
  82. package/engine/internal/unit/attributes.d.ts +17 -0
  83. package/engine/internal/unit/attributes.lua +46 -0
  84. package/engine/internal/unit/bag.d.ts +18 -0
  85. package/engine/internal/unit/bag.lua +63 -0
  86. package/engine/internal/unit/bonus.d.ts +6 -0
  87. package/engine/internal/unit/bonus.lua +33 -3
  88. package/engine/internal/unit/buff.d.ts +2 -2
  89. package/engine/internal/unit/buff.lua +34 -19
  90. package/engine/internal/unit/equipment.d.ts +36 -0
  91. package/engine/internal/unit/equipment.lua +169 -0
  92. package/engine/internal/unit/fly-height.d.ts +7 -0
  93. package/engine/internal/unit/fly-height.lua +20 -0
  94. package/engine/internal/unit/interrupts.d.ts +12 -0
  95. package/engine/internal/unit/interrupts.lua +28 -0
  96. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
  97. package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
  98. package/engine/internal/unit/main-selected.lua +12 -27
  99. package/engine/internal/unit/order.d.ts +20 -0
  100. package/engine/internal/unit/order.lua +136 -0
  101. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  102. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  103. package/engine/internal/unit/range-event.d.ts +12 -0
  104. package/engine/internal/unit/range-event.lua +90 -0
  105. package/engine/internal/unit/scale.d.ts +7 -0
  106. package/engine/internal/unit/scale.lua +20 -0
  107. package/engine/internal/unit+ability.lua +10 -1
  108. package/engine/internal/unit+bonus.lua +3 -3
  109. package/engine/internal/unit+damage.d.ts +11 -11
  110. package/engine/internal/unit+damage.lua +43 -14
  111. package/engine/internal/unit+spellSteal.lua +1 -2
  112. package/engine/internal/unit-missile-data.lua +58 -32
  113. package/engine/internal/unit-missile-launch.lua +52 -14
  114. package/engine/internal/unit.d.ts +42 -25
  115. package/engine/internal/unit.lua +384 -265
  116. package/engine/lightning.d.ts +4 -3
  117. package/engine/lightning.lua +21 -12
  118. package/engine/local-client.d.ts +27 -0
  119. package/engine/local-client.lua +343 -54
  120. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  121. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  122. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  123. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  124. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  125. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  126. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  127. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  128. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  129. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  130. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  131. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  132. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  133. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  134. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  135. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  136. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  137. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  138. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  139. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  140. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  141. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  142. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  143. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  144. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  145. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  146. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  147. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  148. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  149. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  150. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  151. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  152. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  153. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  154. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  155. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  156. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  157. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  158. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  159. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  160. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  161. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  162. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  163. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  164. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  165. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  166. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  167. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  168. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  169. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  170. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  171. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  172. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  173. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  174. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  175. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  176. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  177. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  178. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  179. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  180. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  181. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  182. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  183. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  184. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  185. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  186. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  187. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  188. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  189. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  190. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  191. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  192. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  193. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  194. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  195. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  196. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  197. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  198. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  199. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  200. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  201. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  202. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  203. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  204. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  205. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  206. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  207. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  209. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  210. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  211. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  212. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  213. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  214. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  215. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  216. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  217. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  218. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  219. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  220. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  221. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  222. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  223. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  224. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  225. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  226. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  227. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  228. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  229. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  230. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  231. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  232. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  233. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  234. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  235. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  236. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  237. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  238. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  239. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  240. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  241. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  242. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  243. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  244. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  245. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  246. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  247. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  248. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  250. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  251. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  252. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  253. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  254. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  255. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  256. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  257. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  258. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  259. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  260. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  261. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  262. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  263. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  264. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  265. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  266. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  267. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  268. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  269. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  270. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  271. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  272. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  273. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  274. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  275. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  276. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  277. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  278. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  279. package/engine/object-data/entry/ability-type/web.lua +52 -0
  280. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  281. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  282. package/engine/object-data/entry/ability-type.d.ts +30 -19
  283. package/engine/object-data/entry/ability-type.lua +222 -28
  284. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  285. package/engine/object-data/entry/buff-type.d.ts +10 -12
  286. package/engine/object-data/entry/buff-type.lua +39 -29
  287. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  288. package/engine/object-data/entry/destructible-type.lua +181 -0
  289. package/engine/object-data/entry/item-type.d.ts +12 -3
  290. package/engine/object-data/entry/item-type.lua +56 -4
  291. package/engine/object-data/entry/lightning-type.d.ts +2 -2
  292. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  293. package/engine/object-data/entry/sound-preset.lua +140 -0
  294. package/engine/object-data/entry/unit-type.d.ts +71 -6
  295. package/engine/object-data/entry/unit-type.lua +592 -93
  296. package/engine/object-data/entry/upgrade.d.ts +2 -2
  297. package/engine/object-data/entry/upgrade.lua +4 -4
  298. package/engine/object-data/entry.d.ts +19 -14
  299. package/engine/object-data/entry.lua +60 -32
  300. package/engine/object-field/ability.d.ts +4 -4
  301. package/engine/object-field/ability.lua +9 -8
  302. package/engine/object-field/item.d.ts +22 -0
  303. package/engine/object-field/item.lua +118 -0
  304. package/engine/object-field/unit.d.ts +72 -3
  305. package/engine/object-field/unit.lua +268 -7
  306. package/engine/object-field.d.ts +26 -7
  307. package/engine/object-field.lua +360 -119
  308. package/engine/random.d.ts +10 -0
  309. package/engine/random.lua +21 -0
  310. package/engine/standard/entries/ability-type.d.ts +3102 -7
  311. package/engine/standard/entries/ability-type.lua +0 -6
  312. package/engine/standard/entries/buff-type.d.ts +3 -0
  313. package/engine/standard/entries/buff-type.lua +3 -0
  314. package/engine/standard/entries/item-type.d.ts +1299 -0
  315. package/engine/standard/entries/item-type.lua +2 -0
  316. package/engine/standard/entries/sound-preset.d.ts +10 -0
  317. package/engine/standard/entries/sound-preset.lua +10 -0
  318. package/engine/standard/entries/unit-type.d.ts +5 -0
  319. package/engine/standard/entries/unit-type.lua +5 -0
  320. package/engine/standard/fields/ability.d.ts +2 -2
  321. package/engine/standard/fields/ability.lua +2 -2
  322. package/engine/standard/fields/item.d.ts +4 -0
  323. package/engine/standard/fields/item.lua +6 -0
  324. package/engine/standard/fields/unit.d.ts +12 -0
  325. package/engine/standard/fields/unit.lua +20 -0
  326. package/engine/synchronization.d.ts +11 -0
  327. package/engine/synchronization.lua +77 -0
  328. package/engine/text-tag.d.ts +36 -2
  329. package/engine/text-tag.lua +250 -10
  330. package/engine/unit.d.ts +10 -1
  331. package/engine/unit.lua +10 -1
  332. package/event.d.ts +1 -1
  333. package/lualib_bundle.lua +1 -1
  334. package/math.d.ts +2 -0
  335. package/math.lua +14 -0
  336. package/net/socket.lua +1 -1
  337. package/network.lua +25 -1
  338. package/objutil/buff.lua +11 -10
  339. package/objutil/object.lua +1 -1
  340. package/objutil/unit.lua +8 -0
  341. package/operation.d.ts +8 -1
  342. package/operation.lua +38 -18
  343. package/package.json +3 -23
  344. package/patch-lua.lua +15 -0
  345. package/patch-lualib.lua +1 -1
  346. package/utility/arrays.d.ts +2 -0
  347. package/utility/arrays.lua +11 -0
  348. package/utility/callback-array.d.ts +17 -0
  349. package/utility/callback-array.lua +61 -0
  350. package/utility/functions.d.ts +8 -0
  351. package/utility/functions.lua +13 -0
  352. package/utility/linked-map.d.ts +35 -0
  353. package/utility/linked-map.lua +107 -0
  354. package/utility/linked-set.d.ts +5 -1
  355. package/utility/linked-set.lua +49 -1
  356. package/utility/lua-maps.d.ts +15 -2
  357. package/utility/lua-maps.lua +53 -2
  358. package/utility/lua-sets.d.ts +2 -0
  359. package/utility/lua-sets.lua +7 -0
  360. package/utility/random.d.ts +102 -0
  361. package/utility/random.lua +273 -0
  362. package/utility/records.lua +20 -1
  363. package/utility/reflection.lua +11 -7
  364. package/utility/types.d.ts +3 -0
  365. package/utility/unordered-map.d.ts +27 -0
  366. package/utility/unordered-map.lua +99 -0
  367. package/core/types/order.d.ts +0 -25
  368. package/core/types/order.lua +0 -55
  369. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  370. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  371. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  372. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.d.ts CHANGED
@@ -13,6 +13,7 @@ import { UnitBehavior } from "./behaviour/unit";
13
13
  import type { Widget } from "../core/types/widget";
14
14
  import { Destructor } from "../destroyable";
15
15
  import { Event } from "../event";
16
+ import { AbilityBehavior } from "./behaviour/ability";
16
17
  export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
17
18
  type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
18
19
  type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
@@ -22,6 +23,13 @@ export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
22
23
  export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
23
24
  export declare class BuffUniqueGroup {
24
25
  }
26
+ export type BuffAbilityParameters = {
27
+ readonly fields?: [AbilityNumberField | AbilityNumberLevelField, NumberParameterValueType][];
28
+ /** Default `true`. */
29
+ readonly isButtonVisible?: boolean;
30
+ /** Default is the level of the source ability or 0 if it is absent. */
31
+ readonly level?: number;
32
+ };
25
33
  export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
26
34
  spellStealPriority?: number;
27
35
  level?: number;
@@ -29,14 +37,7 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
29
37
  learnLevelMinimum?: number;
30
38
  source?: Unit;
31
39
  behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
32
- abilityTypeIds?: Record<AbilityTypeId, {
33
- [numberField: (AbilityNumberField | AbilityNumberLevelField) & symbol]: NumberParameterValueType;
34
- } & {
35
- /** Default `true`. */
36
- readonly isButtonVisible?: boolean;
37
- /** Default is the level of the source ability or 0 if it is absent. */
38
- readonly level?: number;
39
- }>;
40
+ abilityTypeIds?: Partial<Record<AbilityTypeId, BuffAbilityParameters>>;
40
41
  damageUponDeathAllowedTargetCombatClassifications?: CombatClassifications | AbilityCombatClassificationsLevelField;
41
42
  damageUponDeath?: NumberParameterValueType;
42
43
  damageUponDeathRange?: NumberParameterValueType;
@@ -53,16 +54,20 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
53
54
  damageIncrease?: NumberParameterValueType;
54
55
  damageIncreaseFactor?: NumberParameterValueType;
55
56
  armorIncrease?: NumberParameterValueType;
56
- armorIncreaseFactor?: NumberParameterValueType;
57
+ maxHealthIncrease?: NumberParameterValueType;
58
+ maxManaIncrease?: NumberParameterValueType;
57
59
  attackSpeedIncreaseFactor?: NumberParameterValueType;
58
60
  movementSpeedIncreaseFactor?: NumberParameterValueType;
61
+ manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
59
62
  evasionProbability?: NumberParameterValueType;
63
+ missProbability?: NumberParameterValueType;
60
64
  damageFactor?: NumberParameterValueType;
61
65
  receivedDamageFactor?: NumberParameterValueType;
62
66
  receivedMagicDamageFactor?: NumberParameterValueType;
63
67
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
64
68
  maximumRemainingDuration?: NumberParameterValueType;
65
69
  maximumDuration?: NumberParameterValueType;
70
+ turnsIntoGhost?: BooleanParameterValueType;
66
71
  stuns?: BooleanParameterValueType;
67
72
  ignoresStunImmunity?: BooleanParameterValueType;
68
73
  providesStunImmunity?: BooleanParameterValueType;
@@ -73,59 +78,72 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
73
78
  maximumAutoAttackCount?: IntegerParameterValueType;
74
79
  maximumDamageDealtEventCount?: IntegerParameterValueType;
75
80
  maximumDamageReceivedEventCount?: IntegerParameterValueType;
81
+ absorbedDamageFactor?: NumberParameterValueType;
82
+ maximumDamageAbsorbed?: NumberParameterValueType;
83
+ destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
76
84
  damageOnExpiration?: NumberParameterValueType;
77
85
  healingOnExpiration?: NumberParameterValueType;
78
86
  killsOnExpiration?: BooleanParameterValueType;
79
87
  explodesOnExpiration?: BooleanParameterValueType;
88
+ abilityCooldownFactor?: NumberParameterValueType;
80
89
  uniqueGroup?: BuffUniqueGroup;
81
90
  } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
82
91
  declare const enum BuffPropertyKey {
83
- UNIT = 100,
84
- SOURCE = 101,
85
- DURATION = 102,
86
- UNIQUE_GROUP = 103,
87
- EFFECT_MODEL_PATH = 104,
88
- SPECIAL_EFFECT_MODEL_PATH = 105,
89
- DURATION_INCREASE_ON_AUTO_ATTACK = 106,
90
- MAXIMUM_DURATION = 107,
91
- MAXIMUM_REMAINING_DURATION = 108,
92
- DAMAGE_OVER_DURATION = 109,
93
- DAMAGE_PER_INTERVAL = 110,
94
- DAMAGE_INTERVAL = 111,
95
- REMAINING_DAMAGE_OVER_DURATION = 112,
96
- DAMAGE_INTERVAL_TIMER = 113,
97
- HEALING_OVER_DURATION = 114,
98
- HEALING_PER_INTERVAL = 115,
99
- HEALING_INTERVAL = 116,
100
- REMAINING_HEALING_OVER_DURATION = 117,
101
- HEALING_INTERVAL_TIMER = 118,
102
- DAMAGE_ON_EXPIRATION = 119,
103
- HEALING_ON_EXPIRATION = 120,
104
- DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
105
- DAMAGE_UPON_DEATH = 122,
106
- DAMAGE_UPON_DEATH_RANGE = 123,
107
- MEDIUM_DAMAGE_UPON_DEATH = 124,
108
- MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
109
- SMALL_DAMAGE_UPON_DEATH = 126,
110
- SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
111
- AUTO_ATTACK_COUNT = 128,
112
- MAXIMUM_AUTO_ATTACK_COUNT = 129,
113
- DAMAGE_DEALT_EVENT_COUNT = 130,
114
- MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
115
- DAMAGE_RECEIVED_EVENT_COUNT = 132,
116
- MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
117
- STUNS = 134,
118
- IGNORES_STUN_IMMUNITY = 135,
119
- DISABLES_AUTO_ATTACK = 136,
120
- PROVIDES_INVULNERABILITY = 137,
121
- KILLS_ON_EXPIRATION = 138,
122
- EXPLODES_ON_EXPIRATION = 139
92
+ STATE = 100,
93
+ UNIT = 101,
94
+ SOURCE = 102,
95
+ DURATION = 103,
96
+ UNIQUE_GROUP = 104,
97
+ EFFECT_MODEL_PATH = 105,
98
+ SPECIAL_EFFECT_MODEL_PATH = 106,
99
+ DURATION_INCREASE_ON_AUTO_ATTACK = 107,
100
+ MAXIMUM_DURATION = 108,
101
+ MAXIMUM_REMAINING_DURATION = 109,
102
+ DAMAGE_OVER_DURATION = 110,
103
+ DAMAGE_PER_INTERVAL = 111,
104
+ DAMAGE_INTERVAL = 112,
105
+ REMAINING_DAMAGE_OVER_DURATION = 113,
106
+ DAMAGE_INTERVAL_TIMER = 114,
107
+ HEALING_OVER_DURATION = 115,
108
+ HEALING_PER_INTERVAL = 116,
109
+ HEALING_INTERVAL = 117,
110
+ REMAINING_HEALING_OVER_DURATION = 118,
111
+ HEALING_INTERVAL_TIMER = 119,
112
+ DAMAGE_ON_EXPIRATION = 120,
113
+ HEALING_ON_EXPIRATION = 121,
114
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
115
+ DAMAGE_UPON_DEATH = 123,
116
+ DAMAGE_UPON_DEATH_RANGE = 124,
117
+ MEDIUM_DAMAGE_UPON_DEATH = 125,
118
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
119
+ SMALL_DAMAGE_UPON_DEATH = 127,
120
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
121
+ AUTO_ATTACK_COUNT = 129,
122
+ MAXIMUM_AUTO_ATTACK_COUNT = 130,
123
+ DAMAGE_DEALT_EVENT_COUNT = 131,
124
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
125
+ DAMAGE_RECEIVED_EVENT_COUNT = 133,
126
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
127
+ ABSORBED_DAMAGE_FACTOR = 135,
128
+ MAXIMUM_DAMAGE_ABSORBED = 136,
129
+ DAMAGE_ABSORBED = 137,
130
+ DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 138,
131
+ TURNS_INTO_GHOST = 139,
132
+ STUNS = 140,
133
+ IGNORES_STUN_IMMUNITY = 141,
134
+ DISABLES_AUTO_ATTACK = 142,
135
+ PROVIDES_INVULNERABILITY = 143,
136
+ KILLS_ON_EXPIRATION = 144,
137
+ EXPLODES_ON_EXPIRATION = 145,
138
+ MISS_PROBABILITY = 146,
139
+ ABILITY_COOLDOWN_FACTOR = 147,
140
+ ABILITY_COOLDOWN_MODIFIER = 148
123
141
  }
124
142
  export declare const enum BuffTypeIdSelectionPolicy {
125
143
  LEAST_DURATION = 0
126
144
  }
127
145
  export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
128
- export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
146
+ export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
129
147
  ...typeId: [ApplicableBuffTypeId] | [
130
148
  typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
131
149
  typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
@@ -133,13 +151,16 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
133
151
  polarity: BuffPolarityParameterType,
134
152
  resistanceType: BuffResistanceTypeParameterType,
135
153
  ...abilityOrParameters: [
136
- ability: Ability,
154
+ ability?: Ability | AbilityBehavior,
137
155
  parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
138
- ] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
139
- ];
156
+ ] | [
157
+ parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
158
+ ]
159
+ ] : never;
140
160
  export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
141
161
  private _unit;
142
162
  protected readonly __additionalParametersBrand?: AdditionalParameters;
163
+ private [BuffPropertyKey.STATE];
143
164
  private [BuffPropertyKey.UNIT];
144
165
  private [BuffPropertyKey.SOURCE]?;
145
166
  private [BuffPropertyKey.DURATION];
@@ -174,31 +195,37 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
174
195
  private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
175
196
  private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
176
197
  private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
198
+ private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
199
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
200
+ private [BuffPropertyKey.DAMAGE_ABSORBED]?;
201
+ private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
202
+ private [BuffPropertyKey.TURNS_INTO_GHOST]?;
177
203
  private [BuffPropertyKey.STUNS]?;
178
204
  private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
179
205
  private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
180
206
  private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
181
207
  private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
182
208
  private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
209
+ private [BuffPropertyKey.ABILITY_COOLDOWN_FACTOR]?;
210
+ private [BuffPropertyKey.ABILITY_COOLDOWN_MODIFIER]?;
183
211
  protected static readonly defaultParameters: BuffParameters;
184
212
  get source(): Unit;
185
213
  readonly typeId: ApplicableBuffTypeId;
186
214
  readonly polarity: BuffPolarity;
187
215
  readonly resistanceType: BuffResistanceType;
188
- readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : keyof AdditionalParameters extends never ? undefined : {
216
+ readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
189
217
  [K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
190
218
  };
191
219
  private readonly handle;
220
+ readonly previousBuff?: Buff;
192
221
  private _timer?;
193
222
  private readonly _level?;
194
223
  private readonly _spellStealPriority?;
195
224
  private readonly _learnLevelMinimum?;
196
- private _bonusIdByBonusType?;
225
+ private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
197
226
  private readonly _abilityTypeIds?;
198
227
  private _behaviors?;
199
- private getUnitBonus;
200
- private addOrUpdateOrRemoveUnitBonus;
201
- constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
228
+ constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
202
229
  get level(): number;
203
230
  get remainingDamageOverDuration(): number;
204
231
  set remainingDamageOverDuration(remainingDamageOverDuration: number);
@@ -226,6 +253,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
226
253
  set receivedDamageFactor(receivedDamageFactor: number);
227
254
  get armorIncrease(): number;
228
255
  set armorIncrease(armorIncrease: number);
256
+ get maxHealthIncrease(): number;
257
+ set maxHealthIncrease(maxHealthIncrease: number);
258
+ get maxManaIncrease(): number;
259
+ set maxManaIncrease(maxManaIncrease: number);
260
+ get turnsIntoGhost(): boolean;
261
+ set turnsIntoGhost(turnsIntoGhost: boolean);
229
262
  get stuns(): boolean;
230
263
  set stuns(stuns: boolean);
231
264
  get ignoresStunImmunity(): boolean;
@@ -252,22 +285,46 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
252
285
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
253
286
  get evasionProbability(): number;
254
287
  set evasionProbability(evasionProbability: number);
288
+ get manaRegenerationRateIncreaseFactor(): number;
289
+ set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
255
290
  get duration(): number;
291
+ set duration(duration: number);
256
292
  get remainingDuration(): number;
257
293
  set remainingDuration(remainingDuration: number);
294
+ get absorbedDamageFactor(): number;
295
+ set absorbedDamageFactor(absorbedDamageFactor: number);
296
+ get maximumDamageAbsorbed(): number;
297
+ set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
298
+ get damageAbsorbed(): number;
299
+ get destroysOnMaximumDamageAbsorbed(): boolean;
300
+ set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
301
+ get abilityCooldownFactor(): number;
302
+ set abilityCooldownFactor(abilityCooldownFactor: number);
303
+ onAbilityGained(ability: Ability): void;
304
+ onAbilityLost(ability: Ability): void;
258
305
  flashEffect(...parameters: [
259
306
  ...widgetOrXY: [] | [Widget] | [x: number, x: number],
260
307
  ...parametersOrDuration: [] | [EffectParameters] | [number]
261
308
  ]): void;
262
- flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
309
+ flashSpecialEffect(...parameters: [
310
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
311
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
312
+ ]): void;
313
+ private flash;
314
+ expire(): void;
315
+ /** Dispels this buff, invoking onDispel before removing it. */
316
+ dispel(source?: Unit): void;
263
317
  protected onCreate(): void;
264
318
  protected onDestroy(): Destructor;
265
319
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
266
320
  static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
321
+ /** Called for dispelling, never for a direct destroy() or replacement. */
322
+ onDispel(source: Unit | undefined): void;
267
323
  onExpiration(): void;
268
324
  onDeath(source: Unit | undefined): void;
269
325
  onDamageDealt(target: Unit, event: DamageEvent): void;
270
326
  onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
271
- static readonly destroyEvent: Event<[Buff<object>]>;
327
+ static readonly createdEvent: Event<[Buff<object>]>;
328
+ static readonly beingDestroyedEvent: Event<[Buff<object>]>;
272
329
  }
273
330
  export {};