warscript 0.0.1-dev.d6e2c10 → 0.0.1-dev.d77b529

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