warscript 0.0.1-dev.3324599 → 0.0.1-dev.33b52d0

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