warscript 0.0.1-dev.48e5280 → 0.0.1-dev.4b6e45a

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