warscript 0.0.1-dev.5abc199 → 0.0.1-dev.5bc80ec

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 (312) hide show
  1. package/core/dummy.lua +4 -2
  2. package/core/types/effect.d.ts +11 -1
  3. package/core/types/effect.lua +43 -77
  4. package/core/types/frame.d.ts +16 -2
  5. package/core/types/frame.lua +128 -67
  6. package/core/types/handle.lua +9 -9
  7. package/core/types/item.d.ts +1 -0
  8. package/core/types/item.lua +1 -0
  9. package/core/types/missile.lua +7 -6
  10. package/core/types/player.d.ts +2 -1
  11. package/core/types/player.lua +18 -13
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +14 -9
  15. package/core/types/tileCell.d.ts +7 -2
  16. package/core/types/tileCell.lua +11 -0
  17. package/core/types/unit.d.ts +5 -0
  18. package/core/types/unit.lua +5 -0
  19. package/core/util.d.ts +3 -1
  20. package/core/util.lua +109 -3
  21. package/decl/native.d.ts +706 -7
  22. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  23. package/engine/ability-type-extended-tooltip.lua +44 -0
  24. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  25. package/engine/behaviour/ability/damage.d.ts +4 -0
  26. package/engine/behaviour/ability/damage.lua +19 -15
  27. package/engine/behaviour/ability/emulate-impact.d.ts +14 -0
  28. package/engine/behaviour/ability/emulate-impact.lua +79 -5
  29. package/engine/behaviour/ability/instant-impact.d.ts +12 -1
  30. package/engine/behaviour/ability/instant-impact.lua +17 -2
  31. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  32. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  33. package/engine/behaviour/ability.d.ts +13 -5
  34. package/engine/behaviour/ability.lua +89 -8
  35. package/engine/behaviour/unit.d.ts +1 -0
  36. package/engine/behaviour/unit.lua +1 -0
  37. package/engine/buff.d.ts +92 -53
  38. package/engine/buff.lua +427 -246
  39. package/engine/index.d.ts +2 -1
  40. package/engine/internal/ability.d.ts +7 -0
  41. package/engine/internal/ability.lua +65 -36
  42. package/engine/internal/item/fields.d.ts +12 -0
  43. package/engine/internal/item/fields.lua +33 -0
  44. package/engine/internal/item/owner-cache.d.ts +5 -0
  45. package/engine/internal/item/owner-cache.lua +4 -0
  46. package/engine/internal/item+owner.d.ts +2 -0
  47. package/engine/internal/item+owner.lua +27 -4
  48. package/engine/internal/item.d.ts +20 -5
  49. package/engine/internal/item.lua +146 -57
  50. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  51. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  52. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  53. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  54. package/engine/internal/object-data/health-bonus.lua +16 -0
  55. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  56. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  57. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  58. package/engine/internal/object-data/mana-bonus.lua +16 -0
  59. package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
  60. package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
  61. package/engine/internal/unit/ability.lua +16 -0
  62. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  63. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  64. package/engine/internal/unit/appearance.d.ts +15 -0
  65. package/engine/internal/unit/appearance.lua +85 -0
  66. package/engine/internal/unit/bonus.d.ts +15 -0
  67. package/engine/internal/unit/bonus.lua +103 -8
  68. package/engine/internal/unit/buff.d.ts +2 -2
  69. package/engine/internal/unit/buff.lua +34 -19
  70. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  71. package/engine/internal/unit/equipment-inventory.lua +233 -0
  72. package/engine/internal/unit/expiration-timer.lua +1 -1
  73. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  74. package/engine/internal/unit/extended-inventory.lua +99 -0
  75. package/engine/internal/unit/ignore-events-items.lua +10 -1
  76. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  77. package/engine/internal/unit/inventory.lua +87 -0
  78. package/engine/internal/unit/item-container.d.ts +25 -0
  79. package/engine/internal/unit/item-container.lua +11 -0
  80. package/engine/internal/unit/item-order-events.d.ts +17 -0
  81. package/engine/internal/unit/item-order-events.lua +67 -0
  82. package/engine/internal/unit/item-slot.d.ts +27 -0
  83. package/engine/internal/unit/item-slot.lua +92 -0
  84. package/engine/internal/unit/order.d.ts +3 -3
  85. package/engine/internal/unit/order.lua +10 -10
  86. package/engine/internal/unit+ability.d.ts +2 -1
  87. package/engine/internal/unit+ability.lua +73 -2
  88. package/engine/internal/unit+bonus.lua +3 -3
  89. package/engine/internal/unit+damage.d.ts +9 -0
  90. package/engine/internal/unit+damage.lua +33 -0
  91. package/engine/internal/unit+rally.lua +9 -31
  92. package/engine/internal/unit-missile-data.lua +58 -32
  93. package/engine/internal/unit-missile-launch.lua +13 -13
  94. package/engine/internal/unit.d.ts +2 -10
  95. package/engine/internal/unit.lua +53 -100
  96. package/engine/local-client.d.ts +26 -0
  97. package/engine/local-client.lua +294 -54
  98. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  99. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  100. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  101. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  102. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  103. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  104. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  105. package/engine/object-data/auxiliary/item-class.lua +2 -0
  106. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  107. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  108. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  109. package/engine/object-data/auxiliary/order-type.lua +2 -0
  110. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  111. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  112. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  113. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  114. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  115. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  116. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  117. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  118. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  119. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  120. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  121. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  122. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  123. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  124. package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
  125. package/engine/object-data/entry/ability-type/barrage.lua +52 -0
  126. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  127. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  128. package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
  129. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  130. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  131. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  132. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  133. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  134. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  135. package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
  136. package/engine/object-data/entry/ability-type/channel.lua +3 -3
  137. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  138. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  139. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  140. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  141. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  142. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  143. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  144. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  145. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  146. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  147. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  148. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  149. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  150. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  151. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  152. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  153. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  154. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  155. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  156. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  157. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  158. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  159. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  160. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  161. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  162. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  163. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  164. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  165. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  166. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  167. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  168. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  169. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  170. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  171. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  172. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  173. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  174. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  175. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  176. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  177. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  178. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  179. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  180. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  181. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  182. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  183. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  184. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  185. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  186. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  187. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  188. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  189. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  190. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  191. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  192. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  193. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  194. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  195. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  196. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  197. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  198. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  199. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  200. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  201. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  202. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  203. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  204. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  205. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  206. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  207. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  209. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  210. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  211. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  212. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  213. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  214. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  215. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  216. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  217. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  218. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  219. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  220. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  221. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  222. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  223. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  224. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  225. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  226. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  227. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  228. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  229. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  230. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  231. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  232. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  233. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  234. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  235. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  236. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  237. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  238. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  239. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  240. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  241. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  242. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  243. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  244. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  245. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  246. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  247. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  248. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  249. package/engine/object-data/entry/ability-type.d.ts +33 -8
  250. package/engine/object-data/entry/ability-type.lua +259 -47
  251. package/engine/object-data/entry/buff-type/applicable.lua +122 -111
  252. package/engine/object-data/entry/buff-type.d.ts +6 -2
  253. package/engine/object-data/entry/buff-type.lua +26 -0
  254. package/engine/object-data/entry/destructible-type.d.ts +6 -2
  255. package/engine/object-data/entry/destructible-type.lua +26 -0
  256. package/engine/object-data/entry/item-type.d.ts +18 -3
  257. package/engine/object-data/entry/item-type.lua +84 -0
  258. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  259. package/engine/object-data/entry/lightning-type.lua +1 -1
  260. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  261. package/engine/object-data/entry/unit-type.d.ts +57 -2
  262. package/engine/object-data/entry/unit-type.lua +412 -64
  263. package/engine/object-data/entry/upgrade.d.ts +2 -2
  264. package/engine/object-data/entry.d.ts +6 -1
  265. package/engine/object-data/entry.lua +8 -0
  266. package/engine/object-field/ability.lua +2 -2
  267. package/engine/object-field/item.d.ts +22 -0
  268. package/engine/object-field/item.lua +118 -0
  269. package/engine/object-field.d.ts +1 -1
  270. package/engine/object-field.lua +9 -7
  271. package/engine/random.lua +1 -1
  272. package/engine/standard/entries/ability-type.d.ts +3102 -7
  273. package/engine/standard/entries/ability-type.lua +0 -6
  274. package/engine/standard/entries/buff-type.d.ts +45 -0
  275. package/engine/standard/entries/buff-type.lua +43 -0
  276. package/engine/standard/entries/item-type.d.ts +1299 -0
  277. package/engine/standard/entries/item-type.lua +2 -0
  278. package/engine/standard/entries/lightning-type.d.ts +42 -15
  279. package/engine/standard/entries/lightning-type.lua +0 -14
  280. package/engine/standard/entries/unit-type.d.ts +5 -0
  281. package/engine/standard/entries/unit-type.lua +5 -0
  282. package/engine/standard/fields/ability.d.ts +2 -2
  283. package/engine/standard/fields/ability.lua +2 -2
  284. package/engine/standard/fields/item.d.ts +4 -0
  285. package/engine/standard/fields/item.lua +6 -0
  286. package/engine/unit.d.ts +5 -1
  287. package/engine/unit.lua +5 -1
  288. package/event.d.ts +1 -1
  289. package/lualib_bundle.lua +1 -1
  290. package/math.d.ts +2 -0
  291. package/math.lua +14 -0
  292. package/network.lua +25 -1
  293. package/objutil/buff.lua +1 -1
  294. package/objutil/object.lua +1 -1
  295. package/operation.d.ts +8 -1
  296. package/operation.lua +38 -18
  297. package/package.json +3 -23
  298. package/utility/arrays.d.ts +7 -1
  299. package/utility/arrays.lua +17 -0
  300. package/utility/linked-map.d.ts +2 -1
  301. package/utility/linked-map.lua +6 -0
  302. package/utility/linked-set.d.ts +1 -0
  303. package/utility/linked-set.lua +6 -0
  304. package/utility/random.d.ts +102 -0
  305. package/utility/random.lua +273 -0
  306. package/utility/unordered-map.d.ts +27 -0
  307. package/utility/unordered-map.lua +99 -0
  308. package/engine/internal/unit/item.lua +0 -78
  309. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  310. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  311. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  312. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.d.ts CHANGED
@@ -14,6 +14,7 @@ import type { Widget } from "../core/types/widget";
14
14
  import { Destructor } from "../destroyable";
15
15
  import { Event } from "../event";
16
16
  import { AbilityBehavior } from "./behaviour/ability";
17
+ import { SoundPresetId } from "./object-data/entry/sound-preset";
17
18
  export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
18
19
  type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
19
20
  type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
@@ -23,6 +24,13 @@ export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
23
24
  export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
24
25
  export declare class BuffUniqueGroup {
25
26
  }
27
+ export type BuffAbilityParameters = {
28
+ readonly fields?: [AbilityNumberField | AbilityNumberLevelField, NumberParameterValueType][];
29
+ /** Default `true`. */
30
+ readonly isButtonVisible?: boolean;
31
+ /** Default is the level of the source ability or 0 if it is absent. */
32
+ readonly level?: number;
33
+ };
26
34
  export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
27
35
  spellStealPriority?: number;
28
36
  level?: number;
@@ -30,16 +38,7 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
30
38
  learnLevelMinimum?: number;
31
39
  source?: Unit;
32
40
  behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
33
- abilityTypeIds?: Record<AbilityTypeId, {
34
- readonly fields?: [
35
- AbilityNumberField | AbilityNumberLevelField,
36
- NumberParameterValueType
37
- ][];
38
- /** Default `true`. */
39
- readonly isButtonVisible?: boolean;
40
- /** Default is the level of the source ability or 0 if it is absent. */
41
- readonly level?: number;
42
- }>;
41
+ abilityTypeIds?: Partial<Record<AbilityTypeId, BuffAbilityParameters>>;
43
42
  damageUponDeathAllowedTargetCombatClassifications?: CombatClassifications | AbilityCombatClassificationsLevelField;
44
43
  damageUponDeath?: NumberParameterValueType;
45
44
  damageUponDeathRange?: NumberParameterValueType;
@@ -56,7 +55,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
56
55
  damageIncrease?: NumberParameterValueType;
57
56
  damageIncreaseFactor?: NumberParameterValueType;
58
57
  armorIncrease?: NumberParameterValueType;
59
- armorIncreaseFactor?: NumberParameterValueType;
58
+ maxHealthIncrease?: NumberParameterValueType;
59
+ maxManaIncrease?: NumberParameterValueType;
60
60
  attackSpeedIncreaseFactor?: NumberParameterValueType;
61
61
  movementSpeedIncreaseFactor?: NumberParameterValueType;
62
62
  manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
@@ -64,6 +64,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
64
64
  missProbability?: NumberParameterValueType;
65
65
  damageFactor?: NumberParameterValueType;
66
66
  receivedDamageFactor?: NumberParameterValueType;
67
+ /** The factor of melee attack damage returned to the attacker, as Spiked Carapace. */
68
+ returnedMeleeDamageFactor?: NumberParameterValueType;
67
69
  receivedMagicDamageFactor?: NumberParameterValueType;
68
70
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
69
71
  maximumRemainingDuration?: NumberParameterValueType;
@@ -79,12 +81,17 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
79
81
  maximumAutoAttackCount?: IntegerParameterValueType;
80
82
  maximumDamageDealtEventCount?: IntegerParameterValueType;
81
83
  maximumDamageReceivedEventCount?: IntegerParameterValueType;
84
+ absorbedDamageFactor?: NumberParameterValueType;
85
+ maximumDamageAbsorbed?: NumberParameterValueType;
86
+ destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
82
87
  damageOnExpiration?: NumberParameterValueType;
83
88
  healingOnExpiration?: NumberParameterValueType;
84
89
  killsOnExpiration?: BooleanParameterValueType;
85
90
  explodesOnExpiration?: BooleanParameterValueType;
86
91
  abilityCooldownFactor?: NumberParameterValueType;
87
92
  uniqueGroup?: BuffUniqueGroup;
93
+ /** Played on the unit whenever the buff is destroyed, whatever the reason. */
94
+ destructionSoundPresetId?: SoundPresetId;
88
95
  } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
89
96
  declare const enum BuffPropertyKey {
90
97
  STATE = 100,
@@ -92,46 +99,51 @@ declare const enum BuffPropertyKey {
92
99
  SOURCE = 102,
93
100
  DURATION = 103,
94
101
  UNIQUE_GROUP = 104,
95
- EFFECT_MODEL_PATH = 105,
96
- SPECIAL_EFFECT_MODEL_PATH = 106,
97
- DURATION_INCREASE_ON_AUTO_ATTACK = 107,
98
- MAXIMUM_DURATION = 108,
99
- MAXIMUM_REMAINING_DURATION = 109,
100
- DAMAGE_OVER_DURATION = 110,
101
- DAMAGE_PER_INTERVAL = 111,
102
- DAMAGE_INTERVAL = 112,
103
- REMAINING_DAMAGE_OVER_DURATION = 113,
104
- DAMAGE_INTERVAL_TIMER = 114,
105
- HEALING_OVER_DURATION = 115,
106
- HEALING_PER_INTERVAL = 116,
107
- HEALING_INTERVAL = 117,
108
- REMAINING_HEALING_OVER_DURATION = 118,
109
- HEALING_INTERVAL_TIMER = 119,
110
- DAMAGE_ON_EXPIRATION = 120,
111
- HEALING_ON_EXPIRATION = 121,
112
- DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
113
- DAMAGE_UPON_DEATH = 123,
114
- DAMAGE_UPON_DEATH_RANGE = 124,
115
- MEDIUM_DAMAGE_UPON_DEATH = 125,
116
- MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
117
- SMALL_DAMAGE_UPON_DEATH = 127,
118
- SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
119
- AUTO_ATTACK_COUNT = 129,
120
- MAXIMUM_AUTO_ATTACK_COUNT = 130,
121
- DAMAGE_DEALT_EVENT_COUNT = 131,
122
- MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
123
- DAMAGE_RECEIVED_EVENT_COUNT = 133,
124
- MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
125
- TURNS_INTO_GHOST = 135,
126
- STUNS = 136,
127
- IGNORES_STUN_IMMUNITY = 137,
128
- DISABLES_AUTO_ATTACK = 138,
129
- PROVIDES_INVULNERABILITY = 139,
130
- KILLS_ON_EXPIRATION = 140,
131
- EXPLODES_ON_EXPIRATION = 141,
132
- MISS_PROBABILITY = 142,
133
- ABILITY_COOLDOWN_FACTOR = 143,
134
- ABILITY_COOLDOWN_MODIFIER = 144
102
+ DESTRUCTION_SOUND_PRESET_ID = 105,
103
+ EFFECT_MODEL_PATH = 106,
104
+ SPECIAL_EFFECT_MODEL_PATH = 107,
105
+ DURATION_INCREASE_ON_AUTO_ATTACK = 108,
106
+ MAXIMUM_DURATION = 109,
107
+ MAXIMUM_REMAINING_DURATION = 110,
108
+ DAMAGE_OVER_DURATION = 111,
109
+ DAMAGE_PER_INTERVAL = 112,
110
+ DAMAGE_INTERVAL = 113,
111
+ REMAINING_DAMAGE_OVER_DURATION = 114,
112
+ DAMAGE_INTERVAL_TIMER = 115,
113
+ HEALING_OVER_DURATION = 116,
114
+ HEALING_PER_INTERVAL = 117,
115
+ HEALING_INTERVAL = 118,
116
+ REMAINING_HEALING_OVER_DURATION = 119,
117
+ HEALING_INTERVAL_TIMER = 120,
118
+ DAMAGE_ON_EXPIRATION = 121,
119
+ HEALING_ON_EXPIRATION = 122,
120
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 123,
121
+ DAMAGE_UPON_DEATH = 124,
122
+ DAMAGE_UPON_DEATH_RANGE = 125,
123
+ MEDIUM_DAMAGE_UPON_DEATH = 126,
124
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 127,
125
+ SMALL_DAMAGE_UPON_DEATH = 128,
126
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 129,
127
+ AUTO_ATTACK_COUNT = 130,
128
+ MAXIMUM_AUTO_ATTACK_COUNT = 131,
129
+ DAMAGE_DEALT_EVENT_COUNT = 132,
130
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 133,
131
+ DAMAGE_RECEIVED_EVENT_COUNT = 134,
132
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 135,
133
+ ABSORBED_DAMAGE_FACTOR = 136,
134
+ MAXIMUM_DAMAGE_ABSORBED = 137,
135
+ DAMAGE_ABSORBED = 138,
136
+ DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 139,
137
+ TURNS_INTO_GHOST = 140,
138
+ STUNS = 141,
139
+ IGNORES_STUN_IMMUNITY = 142,
140
+ DISABLES_AUTO_ATTACK = 143,
141
+ PROVIDES_INVULNERABILITY = 144,
142
+ KILLS_ON_EXPIRATION = 145,
143
+ EXPLODES_ON_EXPIRATION = 146,
144
+ MISS_PROBABILITY = 147,
145
+ ABILITY_COOLDOWN_FACTOR = 148,
146
+ ABILITY_COOLDOWN_MODIFIER = 149
135
147
  }
136
148
  export declare const enum BuffTypeIdSelectionPolicy {
137
149
  LEAST_DURATION = 0
@@ -159,6 +171,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
159
171
  private [BuffPropertyKey.SOURCE]?;
160
172
  private [BuffPropertyKey.DURATION];
161
173
  private [BuffPropertyKey.UNIQUE_GROUP]?;
174
+ private [BuffPropertyKey.DESTRUCTION_SOUND_PRESET_ID]?;
162
175
  private [BuffPropertyKey.EFFECT_MODEL_PATH];
163
176
  private [BuffPropertyKey.SPECIAL_EFFECT_MODEL_PATH];
164
177
  private [BuffPropertyKey.DURATION_INCREASE_ON_AUTO_ATTACK]?;
@@ -189,6 +202,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
189
202
  private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
190
203
  private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
191
204
  private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
205
+ private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
206
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
207
+ private [BuffPropertyKey.DAMAGE_ABSORBED]?;
208
+ private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
192
209
  private [BuffPropertyKey.TURNS_INTO_GHOST]?;
193
210
  private [BuffPropertyKey.STUNS]?;
194
211
  private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
@@ -203,10 +220,11 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
203
220
  readonly typeId: ApplicableBuffTypeId;
204
221
  readonly polarity: BuffPolarity;
205
222
  readonly resistanceType: BuffResistanceType;
206
- readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : keyof AdditionalParameters extends never ? undefined : {
223
+ readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
207
224
  [K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
208
225
  };
209
226
  private readonly handle;
227
+ readonly previousBuff?: Buff;
210
228
  private _timer?;
211
229
  private readonly _level?;
212
230
  private readonly _spellStealPriority?;
@@ -240,8 +258,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
240
258
  set damageFactor(damageFactor: number);
241
259
  get receivedDamageFactor(): number;
242
260
  set receivedDamageFactor(receivedDamageFactor: number);
261
+ get returnedMeleeDamageFactor(): number;
262
+ set returnedMeleeDamageFactor(returnedMeleeDamageFactor: number);
243
263
  get armorIncrease(): number;
244
264
  set armorIncrease(armorIncrease: number);
265
+ get maxHealthIncrease(): number;
266
+ set maxHealthIncrease(maxHealthIncrease: number);
267
+ get maxManaIncrease(): number;
268
+ set maxManaIncrease(maxManaIncrease: number);
245
269
  get turnsIntoGhost(): boolean;
246
270
  set turnsIntoGhost(turnsIntoGhost: boolean);
247
271
  get stuns(): boolean;
@@ -276,6 +300,13 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
276
300
  set duration(duration: number);
277
301
  get remainingDuration(): number;
278
302
  set remainingDuration(remainingDuration: number);
303
+ get absorbedDamageFactor(): number;
304
+ set absorbedDamageFactor(absorbedDamageFactor: number);
305
+ get maximumDamageAbsorbed(): number;
306
+ set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
307
+ get damageAbsorbed(): number;
308
+ get destroysOnMaximumDamageAbsorbed(): boolean;
309
+ set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
279
310
  get abilityCooldownFactor(): number;
280
311
  set abilityCooldownFactor(abilityCooldownFactor: number);
281
312
  onAbilityGained(ability: Ability): void;
@@ -284,12 +315,20 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
284
315
  ...widgetOrXY: [] | [Widget] | [x: number, x: number],
285
316
  ...parametersOrDuration: [] | [EffectParameters] | [number]
286
317
  ]): void;
287
- flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
318
+ flashSpecialEffect(...parameters: [
319
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
320
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
321
+ ]): void;
322
+ private flash;
288
323
  expire(): void;
324
+ /** Dispels this buff, invoking onDispel before removing it. */
325
+ dispel(source?: Unit): void;
289
326
  protected onCreate(): void;
290
327
  protected onDestroy(): Destructor;
291
328
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
292
329
  static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
330
+ /** Called for dispelling, never for a direct destroy() or replacement. */
331
+ onDispel(source: Unit | undefined): void;
293
332
  onExpiration(): void;
294
333
  onDeath(source: Unit | undefined): void;
295
334
  onDamageDealt(target: Unit, event: DamageEvent): void;