warscript 0.0.1-dev.2ce63f3 → 0.0.1-dev.2d7cb44

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