warscript 0.0.1-dev.a4deb44 → 0.0.1-dev.a5a2f5e

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 (319) hide show
  1. package/attributes.d.ts +18 -0
  2. package/attributes.lua +32 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +164 -23
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/item.d.ts +1 -0
  16. package/core/types/item.lua +1 -0
  17. package/core/types/missile.d.ts +2 -2
  18. package/core/types/missile.lua +8 -2
  19. package/core/types/player.d.ts +17 -1
  20. package/core/types/player.lua +70 -24
  21. package/core/types/playerCamera.d.ts +2 -0
  22. package/core/types/playerCamera.lua +123 -5
  23. package/core/types/sound.d.ts +17 -24
  24. package/core/types/sound.lua +100 -25
  25. package/core/types/tileCell.d.ts +11 -1
  26. package/core/types/tileCell.lua +97 -0
  27. package/core/types/timer.d.ts +9 -8
  28. package/core/types/timer.lua +45 -23
  29. package/core/types/unit.lua +8 -0
  30. package/core/util.d.ts +1 -1
  31. package/core/util.lua +18 -1
  32. package/decl/index.d.ts +1 -0
  33. package/decl/native.d.ts +846 -790
  34. package/destroyable.d.ts +1 -0
  35. package/destroyable.lua +9 -0
  36. package/engine/ability.d.ts +1 -1
  37. package/engine/behavior.d.ts +24 -11
  38. package/engine/behavior.lua +233 -73
  39. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  40. package/engine/behaviour/ability/always-enabled.lua +31 -0
  41. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  42. package/engine/behaviour/ability/apply-buff.lua +36 -4
  43. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  44. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  45. package/engine/behaviour/ability/damage.d.ts +42 -11
  46. package/engine/behaviour/ability/damage.lua +89 -37
  47. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  48. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  49. package/engine/behaviour/ability/heal.d.ts +33 -6
  50. package/engine/behaviour/ability/heal.lua +89 -10
  51. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  52. package/engine/behaviour/ability/instant-impact.lua +4 -15
  53. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  54. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  55. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  56. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  57. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  58. package/engine/behaviour/ability/restore-mana.lua +29 -0
  59. package/engine/behaviour/ability.d.ts +35 -7
  60. package/engine/behaviour/ability.lua +183 -27
  61. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  62. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  63. package/engine/behaviour/unit.d.ts +48 -4
  64. package/engine/behaviour/unit.lua +292 -2
  65. package/engine/buff.d.ts +160 -53
  66. package/engine/buff.lua +711 -269
  67. package/engine/game-map.d.ts +7 -0
  68. package/engine/game-map.lua +32 -0
  69. package/engine/internal/ability.d.ts +23 -14
  70. package/engine/internal/ability.lua +129 -85
  71. package/engine/internal/item/ability.lua +162 -4
  72. package/engine/internal/item/fields.d.ts +12 -0
  73. package/engine/internal/item/fields.lua +33 -0
  74. package/engine/internal/item+owner.lua +12 -6
  75. package/engine/internal/item.d.ts +16 -19
  76. package/engine/internal/item.lua +174 -94
  77. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  78. package/engine/internal/mechanics/ability-duration.lua +3 -1
  79. package/engine/internal/mechanics/cast-ability.lua +89 -0
  80. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  81. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  82. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  83. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  84. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  85. package/engine/internal/misc/frame-coordinates.lua +21 -0
  86. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  87. package/engine/internal/misc/get-terrain-z.lua +11 -0
  88. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  89. package/engine/internal/misc/player-local-handle.lua +5 -0
  90. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  91. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  92. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  93. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  94. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  95. package/engine/internal/object-data/evasion-probability.lua +16 -0
  96. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  97. package/engine/internal/object-data/health-bonus.lua +16 -0
  98. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  99. package/engine/internal/object-data/mana-bonus.lua +16 -0
  100. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  101. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  102. package/engine/internal/unit/ability.d.ts +45 -1
  103. package/engine/internal/unit/ability.lua +128 -17
  104. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  105. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  106. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  107. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  108. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  109. package/engine/internal/unit/allowed-targets.lua +9 -1
  110. package/engine/internal/unit/attributes.d.ts +17 -0
  111. package/engine/internal/unit/attributes.lua +46 -0
  112. package/engine/internal/unit/bonus.d.ts +17 -8
  113. package/engine/internal/unit/bonus.lua +56 -4
  114. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  115. package/engine/internal/unit/detach-missiles.lua +30 -0
  116. package/engine/internal/unit/fly-height.d.ts +7 -0
  117. package/engine/internal/unit/fly-height.lua +20 -0
  118. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  119. package/engine/internal/unit/ignore-events-items.lua +5 -0
  120. package/engine/internal/unit/interrupts.d.ts +12 -0
  121. package/engine/internal/unit/interrupts.lua +28 -0
  122. package/engine/internal/unit/item.d.ts +24 -0
  123. package/engine/internal/unit/item.lua +78 -0
  124. package/engine/internal/unit/main-selected.d.ts +13 -0
  125. package/engine/internal/unit/main-selected.lua +36 -0
  126. package/engine/internal/unit/order.d.ts +20 -0
  127. package/engine/internal/unit/order.lua +136 -0
  128. package/engine/internal/unit/range-event.d.ts +12 -0
  129. package/engine/internal/unit/range-event.lua +90 -0
  130. package/engine/internal/unit/scale.d.ts +7 -0
  131. package/engine/internal/unit/scale.lua +20 -0
  132. package/engine/internal/unit+ability.lua +12 -3
  133. package/engine/internal/unit+bonus.lua +3 -3
  134. package/engine/internal/unit+damage.d.ts +2 -11
  135. package/engine/internal/unit+damage.lua +10 -14
  136. package/engine/internal/unit+spellSteal.lua +1 -2
  137. package/engine/internal/unit+transport.lua +4 -10
  138. package/engine/internal/unit-missile-launch.lua +70 -13
  139. package/engine/internal/unit.d.ts +97 -36
  140. package/engine/internal/unit.lua +701 -336
  141. package/engine/internal/utility.lua +12 -0
  142. package/engine/lightning.d.ts +12 -5
  143. package/engine/lightning.lua +48 -14
  144. package/engine/local-client.d.ts +14 -2
  145. package/engine/local-client.lua +168 -1
  146. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  147. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  148. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  149. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  150. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  151. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  152. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  153. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  154. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  155. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  156. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  157. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  158. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  159. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  160. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  161. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  162. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  163. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  164. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  165. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  166. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  167. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  168. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  169. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  170. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  171. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  172. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  173. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  174. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  175. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  176. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  177. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  178. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  179. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  180. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  181. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  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/mana-bonus.d.ts +8 -0
  185. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  186. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  187. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  188. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  189. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  190. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  191. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  192. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  193. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  194. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  195. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  196. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  197. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  198. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  199. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  200. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  201. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  202. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  203. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  204. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  205. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  206. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  207. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/web.lua +52 -0
  209. package/engine/object-data/entry/ability-type.d.ts +21 -18
  210. package/engine/object-data/entry/ability-type.lua +177 -40
  211. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  212. package/engine/object-data/entry/buff-type/applicable.lua +143 -202
  213. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  214. package/engine/object-data/entry/buff-type.d.ts +6 -13
  215. package/engine/object-data/entry/buff-type.lua +13 -29
  216. package/engine/object-data/entry/destructible-type.d.ts +28 -3
  217. package/engine/object-data/entry/destructible-type.lua +155 -0
  218. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  219. package/engine/object-data/entry/item-type.d.ts +15 -2
  220. package/engine/object-data/entry/item-type.lua +93 -2
  221. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  222. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  223. package/engine/object-data/entry/sound-preset.lua +140 -0
  224. package/engine/object-data/entry/unit-type.d.ts +65 -5
  225. package/engine/object-data/entry/unit-type.lua +555 -62
  226. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  227. package/engine/object-data/entry/upgrade.d.ts +1 -2
  228. package/engine/object-data/entry/upgrade.lua +4 -4
  229. package/engine/object-data/entry.d.ts +18 -17
  230. package/engine/object-data/entry.lua +60 -32
  231. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  232. package/engine/object-field/ability.d.ts +28 -5
  233. package/engine/object-field/ability.lua +61 -7
  234. package/engine/object-field/item.d.ts +22 -0
  235. package/engine/object-field/item.lua +118 -0
  236. package/engine/object-field/unit.d.ts +72 -3
  237. package/engine/object-field/unit.lua +268 -7
  238. package/engine/object-field.d.ts +26 -8
  239. package/engine/object-field.lua +362 -117
  240. package/engine/random.d.ts +11 -0
  241. package/engine/random.lua +30 -0
  242. package/engine/standard/entries/buff-type.d.ts +3 -0
  243. package/engine/standard/entries/buff-type.lua +3 -0
  244. package/engine/standard/entries/sound-preset.d.ts +10 -0
  245. package/engine/standard/entries/sound-preset.lua +10 -0
  246. package/engine/standard/entries/unit-type.d.ts +42 -1
  247. package/engine/standard/entries/unit-type.lua +42 -1
  248. package/engine/standard/fields/ability.d.ts +5 -3
  249. package/engine/standard/fields/ability.lua +5 -3
  250. package/engine/standard/fields/item.d.ts +4 -0
  251. package/engine/standard/fields/item.lua +6 -0
  252. package/engine/standard/fields/unit.d.ts +12 -0
  253. package/engine/standard/fields/unit.lua +20 -0
  254. package/engine/synchronization.d.ts +11 -0
  255. package/engine/synchronization.lua +77 -0
  256. package/engine/text-tag.d.ts +36 -2
  257. package/engine/text-tag.lua +250 -10
  258. package/engine/unit.d.ts +10 -0
  259. package/engine/unit.lua +19 -2
  260. package/event.d.ts +2 -3
  261. package/event.lua +9 -5
  262. package/global/vec2.lua +1 -0
  263. package/index.d.ts +1 -0
  264. package/index.lua +1 -0
  265. package/lualib_bundle.lua +147 -43
  266. package/math/vec2.d.ts +2 -9
  267. package/math.d.ts +2 -2
  268. package/math.lua +14 -0
  269. package/net/socket.d.ts +7 -1
  270. package/net/socket.lua +45 -4
  271. package/network.d.ts +1 -0
  272. package/network.lua +3 -2
  273. package/objutil/ability.d.ts +0 -1
  274. package/objutil/buff.d.ts +0 -1
  275. package/objutil/buff.lua +12 -11
  276. package/objutil/object.d.ts +0 -1
  277. package/objutil/object.lua +1 -1
  278. package/objutil/unit.d.ts +0 -1
  279. package/objutil/unit.lua +8 -0
  280. package/operation.lua +1 -4
  281. package/package.json +13 -14
  282. package/patch-lua.d.ts +0 -0
  283. package/patch-lua.lua +25 -0
  284. package/patch-lualib.lua +1 -1
  285. package/property.d.ts +55 -0
  286. package/property.lua +374 -0
  287. package/string.d.ts +30 -0
  288. package/string.lua +14 -0
  289. package/util/stream.d.ts +0 -1
  290. package/utility/arrays.d.ts +13 -5
  291. package/utility/arrays.lua +45 -3
  292. package/utility/bit-set.d.ts +0 -2
  293. package/utility/callback-array.d.ts +17 -0
  294. package/utility/callback-array.lua +61 -0
  295. package/utility/functions.d.ts +8 -0
  296. package/utility/functions.lua +13 -0
  297. package/utility/lazy.d.ts +2 -0
  298. package/utility/lazy.lua +14 -0
  299. package/utility/linked-map.d.ts +35 -0
  300. package/utility/linked-map.lua +107 -0
  301. package/utility/linked-set.d.ts +16 -4
  302. package/utility/linked-set.lua +54 -3
  303. package/utility/lua-maps.d.ts +16 -4
  304. package/utility/lua-maps.lua +53 -2
  305. package/utility/lua-sets.d.ts +3 -2
  306. package/utility/lua-sets.lua +7 -0
  307. package/utility/records.lua +20 -1
  308. package/utility/reflection.lua +11 -7
  309. package/utility/types.d.ts +6 -2
  310. package/utility/unordered-map.d.ts +27 -0
  311. package/utility/unordered-map.lua +99 -0
  312. package/core/mapbounds.d.ts +0 -8
  313. package/core/mapbounds.lua +0 -12
  314. package/core/types/order.d.ts +0 -25
  315. package/core/types/order.lua +0 -55
  316. /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.d.ts} +0 -0
  317. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  318. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  319. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -0,0 +1,21 @@
1
+ local ____exports = {}
2
+ local getLocalClientWidth = BlzGetLocalClientWidth
3
+ local getLocalClientHeight = BlzGetLocalClientHeight
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.getFrameMinXMaxX = function()
7
+ local w = getLocalClientWidth()
8
+ local h = getLocalClientHeight()
9
+ local width4by3 = (w - h / 600 * 800) / 2
10
+ local pxtodpi = 0.6 / h
11
+ local minX = -width4by3 * pxtodpi
12
+ local maxX = minX + w * pxtodpi
13
+ return minX, maxX
14
+ end
15
+ ---
16
+ -- @internal For use by internal systems only.
17
+ ____exports.FRAME_MIN_Y = 0
18
+ ---
19
+ -- @internal For use by internal systems only.
20
+ ____exports.FRAME_MAX_Y = 0.6
21
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ local getLocationZ = GetLocationZ
3
+ local moveLocation = MoveLocation
4
+ local location = Location(0, 0)
5
+ ---
6
+ -- @internal For use by internal systems only.
7
+ ____exports.getTerrainZ = function(x, y)
8
+ moveLocation(location, x, y)
9
+ return getLocationZ(location)
10
+ end
11
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.PLAYER_LOCAL_HANDLE = GetLocalPlayer()
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
- local ____attribute_2Dincrease = require("engine.object-data.entry.ability-type.attribute-increase")
3
- local AttributeBonusAbilityType = ____attribute_2Dincrease.AttributeBonusAbilityType
2
+ local ____attribute_2Dbonus = require("engine.object-data.entry.ability-type.attribute-bonus")
3
+ local AttributeBonusAbilityType = ____attribute_2Dbonus.AttributeBonusAbilityType
4
4
  ---
5
5
  -- @internal For use by internal systems.
6
6
  ____exports.ATTRIBUTE_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
@@ -1,2 +1,2 @@
1
1
  /** @noSelfInFile */
2
- export declare const AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD: jabilityreallevelfield;
2
+ export {};
@@ -10,5 +10,7 @@ ____exports.AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID = compiletime(funct
10
10
  abilityType.autoAttackSpeedIncreaseFactor = 0
11
11
  return abilityType.id
12
12
  end)
13
+ ---
14
+ -- @internal For use by internal systems.
13
15
  ____exports.AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_ATTACK_SPEED_INCREASE_ISX1
14
16
  return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____evasion = require("engine.object-data.entry.ability-type.evasion")
3
+ local EvasionAbilityType = ____evasion.EvasionAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.EVASION_PROBABILITY_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = EvasionAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.evasionProbability = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.EVASION_PROBABILITY_ABILITY_FIELD = ABILITY_RLF_CHANCE_TO_EVADE_EEV1
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____health_2Dbonus = require("engine.object-data.entry.ability-type.health-bonus")
3
+ local HealthBonusAbilityType = ____health_2Dbonus.HealthBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = HealthBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.healthBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_LIFE_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dbonus = require("engine.object-data.entry.ability-type.mana-bonus")
3
+ local ManaBonusAbilityType = ____mana_2Dbonus.ManaBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.MANA_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.MANA_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_MANA_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dregeneration = require("engine.object-data.entry.ability-type.mana-regeneration")
3
+ local ManaRegenerationAbilityType = ____mana_2Dregeneration.ManaRegenerationAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaRegenerationAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaRegenerationRateIncreaseFactor = 4
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_MANA_REGENERATION_BONUS_AS_FRACTION_OF_NORMAL
16
+ return ____exports
@@ -3,7 +3,7 @@ import { Ability } from "../ability";
3
3
  import { Destructable } from "../../../core/types/destructable";
4
4
  import { Item } from "../item";
5
5
  import { Widget } from "../../../core/types/widget";
6
- import { DispatchingEvent } from "../../../event";
6
+ import { DispatchingEvent, Event } from "../../../event";
7
7
  declare module "../unit" {
8
8
  namespace Unit {
9
9
  const abilityCastingStartEvent: DispatchingEvent<[Unit, Ability]>;
@@ -141,3 +141,47 @@ declare module "../unit" {
141
141
  const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
142
142
  }
143
143
  }
144
+ declare module "../unit" {
145
+ namespace Unit {
146
+ const abilityCommandEvent: {
147
+ readonly [abilityTypeId: number]: {
148
+ readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
149
+ };
150
+ };
151
+ }
152
+ }
153
+ declare module "../unit" {
154
+ namespace Unit {
155
+ const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
156
+ }
157
+ }
158
+ declare module "../unit" {
159
+ namespace Unit {
160
+ const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
161
+ }
162
+ }
163
+ declare module "../unit" {
164
+ namespace Unit {
165
+ const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
166
+ }
167
+ }
168
+ declare module "../unit" {
169
+ namespace Unit {
170
+ const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
171
+ }
172
+ }
173
+ declare module "../unit" {
174
+ namespace Unit {
175
+ const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
176
+ }
177
+ }
178
+ declare module "../unit" {
179
+ namespace Unit {
180
+ const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
181
+ }
182
+ }
183
+ declare module "../unit" {
184
+ namespace Unit {
185
+ const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
186
+ }
187
+ }
@@ -15,8 +15,22 @@ local UnitTriggerEvent = ____unit.UnitTriggerEvent
15
15
  local ____event = require("event")
16
16
  local createDispatchingEvent = ____event.createDispatchingEvent
17
17
  local DependentInitializingEvent = ____event.DependentInitializingEvent
18
+ local Event = ____event.Event
19
+ local InitializingEvent = ____event.InitializingEvent
18
20
  local ____preconditions = require("utility.preconditions")
19
21
  local checkNotNull = ____preconditions.checkNotNull
22
+ local ____lazy = require("utility.lazy")
23
+ local lazyRecord = ____lazy.lazyRecord
24
+ local ____timer = require("core.types.timer")
25
+ local consumeZeroTimerCallback = ____timer.consumeZeroTimerCallback
26
+ local Timer = ____timer.Timer
27
+ local ____lua_2Dsets = require("utility.lua-sets")
28
+ local luaSetOf = ____lua_2Dsets.luaSetOf
29
+ local ____attributes = require("attributes")
30
+ local attribute = ____attributes.attribute
31
+ local eventInvoke = Event.invoke
32
+ local condition = Condition
33
+ local createTrigger = CreateTrigger
20
34
  local getItemAbility = BlzGetItemAbility
21
35
  local getSpellAbility = GetSpellAbility
22
36
  local getSpellAbilityId = GetSpellAbilityId
@@ -26,11 +40,10 @@ local getSpellTargetUnit = GetSpellTargetUnit
26
40
  local getSpellTargetX = GetSpellTargetX
27
41
  local getSpellTargetY = GetSpellTargetY
28
42
  local getTriggerUnit = GetTriggerUnit
29
- local getUnitAbility = BlzGetUnitAbility
30
- local unitAddAbility = UnitAddAbility
43
+ local triggerAddCondition = TriggerAddCondition
44
+ local triggerRegisterCommandEvent = TriggerRegisterCommandEvent
31
45
  local unitInventorySize = UnitInventorySize
32
46
  local unitItemInSlot = UnitItemInSlot
33
- local unitRemoveAbility = UnitRemoveAbility
34
47
  local function retrieveAbility(unit, ability, abilityId)
35
48
  if ability == nil then
36
49
  return __TS__New(
@@ -39,17 +52,6 @@ local function retrieveAbility(unit, ability, abilityId)
39
52
  Unit:of(unit)
40
53
  )
41
54
  end
42
- if not unitAddAbility(unit, abilityId) then
43
- if getUnitAbility(unit, abilityId) == ability then
44
- return UnitAbility:of(
45
- ability,
46
- abilityId,
47
- Unit:of(unit)
48
- )
49
- end
50
- else
51
- unitRemoveAbility(unit, abilityId)
52
- end
53
55
  for i = 0, unitInventorySize(unit) - 1 do
54
56
  local item = unitItemInSlot(unit, i)
55
57
  if getItemAbility(item, abilityId) == ability then
@@ -350,20 +352,129 @@ rawset(
350
352
  extractAbilityTypeId
351
353
  )
352
354
  )
355
+ local internalAbilityChannelingFinishEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters)
353
356
  rawset(
354
357
  Unit,
355
358
  "abilityChannelingFinishEvent",
359
+ createDispatchingEvent(internalAbilityChannelingFinishEvent, extractAbilityTypeId)
360
+ )
361
+ local internalAbilityStopEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters)
362
+ rawset(
363
+ Unit,
364
+ "abilityStopEvent",
365
+ createDispatchingEvent(internalAbilityStopEvent, extractAbilityTypeId)
366
+ )
367
+ rawset(
368
+ Unit,
369
+ "abilityCommandEvent",
370
+ lazyRecord(function(abilityTypeId)
371
+ return lazyRecord(function(orderTypeStringId)
372
+ return __TS__New(
373
+ InitializingEvent,
374
+ function(event)
375
+ local trigger = createTrigger()
376
+ triggerRegisterCommandEvent(trigger, abilityTypeId, orderTypeStringId)
377
+ triggerAddCondition(
378
+ trigger,
379
+ condition(function()
380
+ local unit = Unit:of(getTriggerUnit())
381
+ if unit ~= nil then
382
+ local ability = unit:getAbility(abilityTypeId)
383
+ if ability ~= nil then
384
+ eventInvoke(event, unit, ability, orderTypeStringId)
385
+ end
386
+ end
387
+ end)
388
+ )
389
+ end
390
+ )
391
+ end)
392
+ end)
393
+ )
394
+ local internalAbilityImpactEvent = __TS__New(Event)
395
+ local impactCallbackIdAttribute = attribute()
396
+ local function invokeImpactEvent(unit, ability, ...)
397
+ ability[impactCallbackIdAttribute] = nil
398
+ eventInvoke(internalAbilityImpactEvent, unit, ability, ...)
399
+ end
400
+ internalAbilityChannelingStartEvent:addListener(
401
+ 999999,
402
+ function(unit, ability, ...)
403
+ ability[impactCallbackIdAttribute] = Timer:run(invokeImpactEvent, unit, ability, ...)
404
+ end
405
+ )
406
+ local function consumeImpactCallback(_, ability)
407
+ local impactCallbackId = ability[impactCallbackIdAttribute]
408
+ if impactCallbackId ~= nil then
409
+ consumeZeroTimerCallback(impactCallbackId)
410
+ end
411
+ end
412
+ internalAbilityChannelingFinishEvent:addListener(999999, consumeImpactCallback)
413
+ internalAbilityStopEvent:addListener(999999, consumeImpactCallback)
414
+ rawset(
415
+ Unit,
416
+ "abilityImpactEvent",
356
417
  createDispatchingEvent(
357
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters),
418
+ createCommonEvent(internalAbilityImpactEvent),
358
419
  extractAbilityTypeId
359
420
  )
360
421
  )
361
422
  rawset(
362
423
  Unit,
363
- "abilityStopEvent",
424
+ "abilityWidgetTargetImpactEvent",
425
+ createDispatchingEvent(
426
+ createWidgetTargetEvent(internalAbilityImpactEvent),
427
+ extractAbilityTypeId
428
+ )
429
+ )
430
+ rawset(
431
+ Unit,
432
+ "abilityUnitTargetImpactEvent",
364
433
  createDispatchingEvent(
365
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters),
434
+ createUnitTargetEvent(internalAbilityImpactEvent),
366
435
  extractAbilityTypeId
367
436
  )
368
437
  )
438
+ rawset(
439
+ Unit,
440
+ "abilityItemTargetImpactEvent",
441
+ createDispatchingEvent(
442
+ createItemTargetEvent(internalAbilityImpactEvent),
443
+ extractAbilityTypeId
444
+ )
445
+ )
446
+ rawset(
447
+ Unit,
448
+ "abilityDestructibleTargetImpactEvent",
449
+ createDispatchingEvent(
450
+ createDestructibleTargetEvent(internalAbilityImpactEvent),
451
+ extractAbilityTypeId
452
+ )
453
+ )
454
+ rawset(
455
+ Unit,
456
+ "abilityPointTargetImpactEvent",
457
+ createDispatchingEvent(
458
+ createPointTargetEvent(internalAbilityImpactEvent),
459
+ extractAbilityTypeId
460
+ )
461
+ )
462
+ rawset(
463
+ Unit,
464
+ "abilityNoTargetImpactEvent",
465
+ createDispatchingEvent(
466
+ createNoTargetEvent(internalAbilityImpactEvent),
467
+ extractAbilityTypeId
468
+ )
469
+ )
470
+ local spellEffectOnlyAbilityTypeIds = luaSetOf(fourCC("AAns"))
471
+ internalAbilityChannelingStartEvent:addListener(
472
+ -999999,
473
+ function(unit, ability)
474
+ if spellEffectOnlyAbilityTypeIds[ability.parentTypeId] ~= nil then
475
+ eventInvoke(internalAbilityChannelingFinishEvent, unit, ability)
476
+ eventInvoke(internalAbilityStopEvent, unit, ability)
477
+ end
478
+ end
479
+ )
369
480
  return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,23 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
5
+ local fillerItems = ____add_2Ditem_2Dto_2Dslot.fillerItems
6
+ local unitsWithFillerItems = ____add_2Ditem_2Dto_2Dslot.unitsWithFillerItems
7
+ local setItemVisible = SetItemVisible
8
+ local unitRemoveItem = UnitRemoveItem
9
+ Unit.itemPickedUpEvent:addListener(
10
+ 4,
11
+ function(unit)
12
+ local handle = unit.handle
13
+ if unitsWithFillerItems[handle] ~= nil then
14
+ for previousSlot = 1, 6 do
15
+ local fillerItem = fillerItems[previousSlot]
16
+ unitRemoveItem(handle, fillerItem)
17
+ setItemVisible(fillerItem, false)
18
+ end
19
+ unitsWithFillerItems[handle] = nil
20
+ end
21
+ end
22
+ )
23
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,52 @@
1
+ local ____exports = {}
2
+ local ____blank = require("engine.object-data.entry.item-type.blank")
3
+ local BlankItemType = ____blank.BlankItemType
4
+ local ____arrays = require("utility.arrays")
5
+ local array = ____arrays.array
6
+ local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
7
+ local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
8
+ local setItemVisible = SetItemVisible
9
+ local unitAddItem = UnitAddItem
10
+ local unitItemInSlot = UnitItemInSlot
11
+ local unitRemoveItem = UnitRemoveItem
12
+ ---
13
+ -- @internal For use by internal systems only.
14
+ ____exports.SLOT_FILLER_ITEM_TYPE_ID = compiletime(function()
15
+ local itemType = BlankItemType:create()
16
+ itemType.name = "[Warscript/Dummy] Slot Filler"
17
+ return itemType.id
18
+ end)
19
+ ---
20
+ -- @internal For use by internal systems only.
21
+ ____exports.fillerItems = array(
22
+ 6,
23
+ function()
24
+ local item = CreateItem(____exports.SLOT_FILLER_ITEM_TYPE_ID, 0, 0)
25
+ setItemVisible(item, false)
26
+ ignoreEventsItems[item] = true
27
+ return item
28
+ end
29
+ )
30
+ ---
31
+ -- @internal For use by internal systems only.
32
+ ____exports.unitsWithFillerItems = {}
33
+ ---
34
+ -- @internal For use by internal systems only.
35
+ ____exports.unitAddItemToSlot = function(unit, item, slot)
36
+ for previousSlot = 0, slot - 1 do
37
+ if unitItemInSlot(unit, previousSlot) == nil then
38
+ unitAddItem(unit, ____exports.fillerItems[previousSlot + 1])
39
+ ____exports.unitsWithFillerItems[unit] = true
40
+ end
41
+ end
42
+ unitAddItem(unit, item)
43
+ if ____exports.unitsWithFillerItems[unit] ~= nil then
44
+ for previousSlot = 0, slot - 1 do
45
+ local fillerItem = ____exports.fillerItems[previousSlot + 1]
46
+ unitRemoveItem(unit, fillerItem)
47
+ setItemVisible(fillerItem, false)
48
+ end
49
+ ____exports.unitsWithFillerItems[unit] = nil
50
+ end
51
+ end
52
+ return ____exports
@@ -2,7 +2,7 @@
2
2
  import { CombatClassifications } from "../../object-data/auxiliary/combat-classification";
3
3
  declare module "../unit" {
4
4
  interface Unit {
5
- isAllowedTarget(this: Unit, source: Unit, allowedTargetCombatClassifications: CombatClassifications): boolean;
5
+ isAllowedTarget(this: Unit, source: Unit, allowedTargetCombatClassifications?: CombatClassifications): boolean;
6
6
  }
7
7
  }
8
8
  declare module "../unit" {
@@ -5,7 +5,15 @@ local initializeFilterTargetState = ____combat_2Dclassification.initializeFilter
5
5
  local ____unit = require("engine.internal.unit")
6
6
  local Unit = ____unit.Unit
7
7
  Unit.prototype.isAllowedTarget = function(self, source, allowedTargetCombatClassifications)
8
- initializeFilterTargetState(source, allowedTargetCombatClassifications)
8
+ if allowedTargetCombatClassifications ~= nil then
9
+ initializeFilterTargetState(source, allowedTargetCombatClassifications)
10
+ return filterTarget(self)
11
+ end
12
+ initializeFilterTargetState(source, source.firstWeapon.allowedTargetCombatClassifications)
13
+ if filterTarget(self) then
14
+ return true
15
+ end
16
+ initializeFilterTargetState(source, source.secondWeapon.allowedTargetCombatClassifications)
9
17
  return filterTarget(self)
10
18
  end
11
19
  Unit.getAllowedTargetsInRange = function(source, allowedTargetCombatClassifications, x, y, range)
@@ -0,0 +1,17 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ strengthBase: number;
5
+ }
6
+ }
7
+ declare module "../unit" {
8
+ interface Unit {
9
+ agilityBase: number;
10
+ }
11
+ }
12
+ declare module "../unit" {
13
+ interface Unit {
14
+ intelligenceBase: number;
15
+ }
16
+ }
17
+ export {};
@@ -0,0 +1,46 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____unit = require("engine.internal.unit")
5
+ local Unit = ____unit.Unit
6
+ local ____unit = require("engine.standard.fields.unit")
7
+ local AGILITY_UNIT_FIELD = ____unit.AGILITY_UNIT_FIELD
8
+ local INTELLIGENCE_UNIT_FIELD = ____unit.INTELLIGENCE_UNIT_FIELD
9
+ local STRENGTH_UNIT_FIELD = ____unit.STRENGTH_UNIT_FIELD
10
+ __TS__ObjectDefineProperty(
11
+ Unit.prototype,
12
+ "strengthBase",
13
+ {
14
+ get = function(self)
15
+ return STRENGTH_UNIT_FIELD:getValue(self)
16
+ end,
17
+ set = function(self, value)
18
+ STRENGTH_UNIT_FIELD:setValue(self, value)
19
+ end
20
+ }
21
+ )
22
+ __TS__ObjectDefineProperty(
23
+ Unit.prototype,
24
+ "agilityBase",
25
+ {
26
+ get = function(self)
27
+ return AGILITY_UNIT_FIELD:getValue(self)
28
+ end,
29
+ set = function(self, value)
30
+ AGILITY_UNIT_FIELD:setValue(self, value)
31
+ end
32
+ }
33
+ )
34
+ __TS__ObjectDefineProperty(
35
+ Unit.prototype,
36
+ "intelligenceBase",
37
+ {
38
+ get = function(self)
39
+ return INTELLIGENCE_UNIT_FIELD:getValue(self)
40
+ end,
41
+ set = function(self, value)
42
+ INTELLIGENCE_UNIT_FIELD:setValue(self, value)
43
+ end
44
+ }
45
+ )
46
+ return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Unit } from "../unit";
4
3
  import { AbilityTypeId } from "../../object-data/entry/ability-type";
@@ -6,11 +5,16 @@ export type UnitBonusId<Brand extends string = any> = number & {
6
5
  readonly __unitBonusId: unique symbol;
7
6
  readonly __unitBonusIdBrand: Brand;
8
7
  };
8
+ export type UnitMaxHealthBonusId = UnitBonusId<"maxHealth">;
9
+ export type UnitMaxManaBonusId = UnitBonusId<"maxMana">;
9
10
  export type UnitArmorBonusId = UnitBonusId<"armor">;
10
11
  export type UnitAttackSpeedFactorBonusId = UnitBonusId<"attackSpeedFactor">;
11
12
  export type UnitMovementSpeedFactorBonusId = UnitBonusId<"movementSpeedFactor">;
12
- export type UnitDamageBonusId = UnitBonusId<"damage">;
13
+ export type UnitAutoAttackDamageBonusId = UnitBonusId<"autoAttackDamage">;
14
+ export type UnitDamageFactorBonusId = UnitBonusId<"damageFactor">;
13
15
  export type UnitReceivedDamageFactorBonusId = UnitBonusId<"receivedDamageFactor">;
16
+ export type UnitEvasionProbabilityBonusId = UnitBonusId<"evasionProbability">;
17
+ export type UnitManaRegenerationRateFactorBonusId = UnitBonusId<"manaRegenerationRateFactor">;
14
18
  export type UnitBonusType<Id extends UnitBonusId = UnitBonusId> = ({
15
19
  abilityTypeId: AbilityTypeId;
16
20
  field: jabilityintegerlevelfield;
@@ -28,14 +32,19 @@ export type UnitBonusType<Id extends UnitBonusId = UnitBonusId> = ({
28
32
  readonly __unitBonusTypeId?: Id;
29
33
  };
30
34
  export declare namespace UnitBonusType {
35
+ const HEALTH: UnitBonusType<UnitMaxHealthBonusId>;
36
+ const MANA: UnitBonusType<UnitMaxManaBonusId>;
31
37
  const ARMOR: UnitBonusType<UnitArmorBonusId>;
32
38
  const ATTACK_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
33
39
  const MOVEMENT_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
34
- const DAMAGE: UnitBonusType<UnitDamageBonusId>;
40
+ const AUTO_ATTACK_DAMAGE: UnitBonusType<UnitAutoAttackDamageBonusId>;
41
+ const DAMAGE_FACTOR: UnitBonusType<UnitReceivedDamageFactorBonusId>;
35
42
  const RECEIVED_DAMAGE_FACTOR: UnitBonusType<UnitReceivedDamageFactorBonusId>;
43
+ const EVASION_PROBABILITY: UnitBonusType<UnitEvasionProbabilityBonusId>;
44
+ const MANA_REGENERATION_RATE_FACTOR: UnitBonusType<UnitManaRegenerationRateFactorBonusId>;
36
45
  }
37
- export declare const addUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, value: number) => Id;
38
- export declare const removeUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => boolean;
39
- export declare const updateUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id, value: number) => boolean;
40
- export declare const addOrUpdateOrRemoveUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id | undefined, value: number) => Id | undefined;
41
- export declare const getUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => number;
46
+ export declare const addUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, value: number) => Id;
47
+ export declare const removeUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => boolean;
48
+ export declare const updateUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id, value: number) => boolean;
49
+ export declare const addOrUpdateOrRemoveUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id | undefined, value: number) => Id | undefined;
50
+ export declare const getUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => number;