warscript 0.0.1-dev.e1acea3 → 0.0.1-dev.e27e5b1

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 (281) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +2 -3
  6. package/core/types/effect.lua +95 -48
  7. package/core/types/frame.d.ts +1 -0
  8. package/core/types/frame.lua +136 -58
  9. package/core/types/handle.lua +6 -9
  10. package/core/types/item.d.ts +1 -0
  11. package/core/types/item.lua +1 -0
  12. package/core/types/player.d.ts +18 -1
  13. package/core/types/player.lua +76 -26
  14. package/core/types/playerCamera.d.ts +2 -0
  15. package/core/types/playerCamera.lua +123 -5
  16. package/core/types/playerColor.lua +4 -3
  17. package/core/types/sound.d.ts +18 -25
  18. package/core/types/sound.lua +113 -33
  19. package/core/types/tileCell.d.ts +11 -1
  20. package/core/types/tileCell.lua +97 -0
  21. package/core/types/timer.d.ts +9 -8
  22. package/core/types/timer.lua +45 -23
  23. package/core/types/unit.d.ts +4 -0
  24. package/core/types/unit.lua +4 -0
  25. package/core/util.d.ts +1 -1
  26. package/core/util.lua +12 -1
  27. package/decl/native.d.ts +1718 -964
  28. package/destroyable.d.ts +1 -0
  29. package/destroyable.lua +9 -0
  30. package/engine/behavior.d.ts +14 -1
  31. package/engine/behavior.lua +230 -70
  32. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  33. package/engine/behaviour/ability/always-enabled.lua +31 -0
  34. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  35. package/engine/behaviour/ability/apply-buff.lua +36 -4
  36. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  37. package/engine/behaviour/ability/damage.d.ts +12 -3
  38. package/engine/behaviour/ability/damage.lua +33 -39
  39. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  40. package/engine/behaviour/ability/emulate-impact.lua +21 -6
  41. package/engine/behaviour/ability/on-command-impact.lua +7 -0
  42. package/engine/behaviour/ability/remove-buffs.d.ts +13 -1
  43. package/engine/behaviour/ability/remove-buffs.lua +29 -2
  44. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  45. package/engine/behaviour/ability/restore-mana.lua +6 -6
  46. package/engine/behaviour/ability.d.ts +23 -6
  47. package/engine/behaviour/ability.lua +115 -22
  48. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  49. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  50. package/engine/behaviour/unit.d.ts +41 -2
  51. package/engine/behaviour/unit.lua +270 -6
  52. package/engine/buff.d.ts +113 -53
  53. package/engine/buff.lua +544 -288
  54. package/engine/internal/ability.d.ts +22 -2
  55. package/engine/internal/ability.lua +151 -27
  56. package/engine/internal/item/ability.lua +162 -4
  57. package/engine/internal/item/fields.d.ts +12 -0
  58. package/engine/internal/item/fields.lua +33 -0
  59. package/engine/internal/item+owner.d.ts +1 -0
  60. package/engine/internal/item+owner.lua +19 -6
  61. package/engine/internal/item.d.ts +30 -18
  62. package/engine/internal/item.lua +292 -102
  63. package/engine/internal/mechanics/ability-duration.lua +1 -1
  64. package/engine/internal/mechanics/cast-ability.lua +6 -3
  65. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  66. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  67. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  68. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  69. package/engine/internal/misc/frame-coordinates.lua +21 -0
  70. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  71. package/engine/internal/misc/get-terrain-z.lua +11 -0
  72. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  73. package/engine/internal/misc/player-local-handle.lua +5 -0
  74. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  75. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  76. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  77. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  78. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  79. package/engine/internal/object-data/evasion-probability.lua +16 -0
  80. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  81. package/engine/internal/object-data/health-bonus.lua +16 -0
  82. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  83. package/engine/internal/object-data/mana-bonus.lua +16 -0
  84. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  85. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  86. package/engine/internal/unit/ability.d.ts +35 -0
  87. package/engine/internal/unit/ability.lua +113 -12
  88. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  89. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  90. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  91. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  92. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  93. package/engine/internal/unit/allowed-targets.lua +9 -1
  94. package/engine/internal/unit/appearance.d.ts +15 -0
  95. package/engine/internal/unit/appearance.lua +85 -0
  96. package/engine/internal/unit/attributes.d.ts +17 -0
  97. package/engine/internal/unit/attributes.lua +46 -0
  98. package/engine/internal/unit/bag.d.ts +18 -0
  99. package/engine/internal/unit/bag.lua +63 -0
  100. package/engine/internal/unit/bonus.d.ts +8 -0
  101. package/engine/internal/unit/bonus.lua +50 -3
  102. package/engine/internal/unit/buff.d.ts +2 -2
  103. package/engine/internal/unit/buff.lua +32 -17
  104. package/engine/internal/unit/equipment.d.ts +36 -0
  105. package/engine/internal/unit/equipment.lua +169 -0
  106. package/engine/internal/unit/fly-height.d.ts +7 -0
  107. package/engine/internal/unit/fly-height.lua +20 -0
  108. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  109. package/engine/internal/unit/ignore-events-items.lua +5 -0
  110. package/engine/internal/unit/interrupts.d.ts +12 -0
  111. package/engine/internal/unit/interrupts.lua +28 -0
  112. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
  113. package/engine/internal/unit/inventory.lua +77 -0
  114. package/engine/internal/unit/main-selected.lua +12 -27
  115. package/engine/internal/unit/order.d.ts +20 -0
  116. package/engine/internal/unit/order.lua +136 -0
  117. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  118. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  119. package/engine/internal/unit/range-event.d.ts +12 -0
  120. package/engine/internal/unit/range-event.lua +90 -0
  121. package/engine/internal/unit/scale.d.ts +7 -0
  122. package/engine/internal/unit/scale.lua +20 -0
  123. package/engine/internal/unit+ability.lua +10 -1
  124. package/engine/internal/unit+bonus.lua +3 -3
  125. package/engine/internal/unit+damage.d.ts +2 -11
  126. package/engine/internal/unit+damage.lua +10 -14
  127. package/engine/internal/unit+spellSteal.lua +1 -2
  128. package/engine/internal/unit-missile-launch.lua +52 -14
  129. package/engine/internal/unit.d.ts +45 -26
  130. package/engine/internal/unit.lua +443 -274
  131. package/engine/internal/utility.lua +12 -0
  132. package/engine/lightning.d.ts +12 -5
  133. package/engine/lightning.lua +48 -14
  134. package/engine/local-client.d.ts +21 -0
  135. package/engine/local-client.lua +150 -7
  136. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  137. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  138. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  139. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  140. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  141. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  142. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  143. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  144. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  145. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  146. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  147. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  148. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  149. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  150. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  151. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  152. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  153. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  154. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  155. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  156. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  157. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  158. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  159. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  160. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  161. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  162. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  163. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  164. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  165. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  166. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  167. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  168. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  169. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  170. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  171. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  172. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  173. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  174. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  175. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  176. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  177. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  178. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  179. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  180. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  181. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  182. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  183. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  184. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  185. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  186. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  187. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  188. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  189. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  190. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  191. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  192. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  193. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  194. package/engine/object-data/entry/ability-type/web.lua +52 -0
  195. package/engine/object-data/entry/ability-type.d.ts +21 -17
  196. package/engine/object-data/entry/ability-type.lua +177 -40
  197. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  198. package/engine/object-data/entry/buff-type.d.ts +6 -12
  199. package/engine/object-data/entry/buff-type.lua +13 -29
  200. package/engine/object-data/entry/destructible-type.d.ts +28 -2
  201. package/engine/object-data/entry/destructible-type.lua +155 -0
  202. package/engine/object-data/entry/item-type.d.ts +3 -1
  203. package/engine/object-data/entry/item-type.lua +15 -2
  204. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  205. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  206. package/engine/object-data/entry/sound-preset.lua +140 -0
  207. package/engine/object-data/entry/unit-type.d.ts +25 -5
  208. package/engine/object-data/entry/unit-type.lua +258 -93
  209. package/engine/object-data/entry/upgrade.d.ts +1 -1
  210. package/engine/object-data/entry/upgrade.lua +4 -4
  211. package/engine/object-data/entry.d.ts +16 -14
  212. package/engine/object-data/entry.lua +60 -32
  213. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  214. package/engine/object-field/ability.d.ts +12 -6
  215. package/engine/object-field/ability.lua +10 -6
  216. package/engine/object-field/item.d.ts +22 -0
  217. package/engine/object-field/item.lua +118 -0
  218. package/engine/object-field/unit.d.ts +72 -3
  219. package/engine/object-field/unit.lua +268 -7
  220. package/engine/object-field.d.ts +26 -7
  221. package/engine/object-field.lua +362 -117
  222. package/engine/random.d.ts +10 -0
  223. package/engine/random.lua +21 -0
  224. package/engine/standard/entries/buff-type.d.ts +3 -0
  225. package/engine/standard/entries/buff-type.lua +3 -0
  226. package/engine/standard/entries/sound-preset.d.ts +10 -0
  227. package/engine/standard/entries/sound-preset.lua +10 -0
  228. package/engine/standard/fields/ability.d.ts +4 -2
  229. package/engine/standard/fields/ability.lua +4 -2
  230. package/engine/standard/fields/item.d.ts +4 -0
  231. package/engine/standard/fields/item.lua +6 -0
  232. package/engine/standard/fields/unit.d.ts +12 -0
  233. package/engine/standard/fields/unit.lua +20 -0
  234. package/engine/synchronization.d.ts +11 -0
  235. package/engine/synchronization.lua +77 -0
  236. package/engine/text-tag.d.ts +36 -2
  237. package/engine/text-tag.lua +250 -10
  238. package/engine/unit.d.ts +11 -1
  239. package/engine/unit.lua +11 -1
  240. package/event.d.ts +1 -1
  241. package/lualib_bundle.lua +1 -1
  242. package/math.d.ts +2 -0
  243. package/math.lua +14 -0
  244. package/net/socket.lua +1 -1
  245. package/network.lua +25 -1
  246. package/objutil/buff.lua +11 -10
  247. package/objutil/object.lua +1 -1
  248. package/objutil/unit.lua +8 -0
  249. package/operation.d.ts +8 -1
  250. package/operation.lua +38 -18
  251. package/package.json +5 -5
  252. package/patch-lua.lua +15 -0
  253. package/patch-lualib.lua +1 -1
  254. package/utility/arrays.d.ts +2 -0
  255. package/utility/arrays.lua +11 -0
  256. package/utility/callback-array.d.ts +17 -0
  257. package/utility/callback-array.lua +61 -0
  258. package/utility/functions.d.ts +8 -0
  259. package/utility/functions.lua +13 -0
  260. package/utility/linked-map.d.ts +35 -0
  261. package/utility/linked-map.lua +107 -0
  262. package/utility/linked-set.d.ts +5 -1
  263. package/utility/linked-set.lua +49 -1
  264. package/utility/lua-maps.d.ts +15 -2
  265. package/utility/lua-maps.lua +53 -2
  266. package/utility/lua-sets.d.ts +2 -0
  267. package/utility/lua-sets.lua +7 -0
  268. package/utility/random.d.ts +102 -0
  269. package/utility/random.lua +273 -0
  270. package/utility/records.lua +20 -1
  271. package/utility/reflection.lua +11 -7
  272. package/utility/types.d.ts +3 -0
  273. package/utility/unordered-map.d.ts +27 -0
  274. package/utility/unordered-map.lua +99 -0
  275. package/core/types/order.d.ts +0 -25
  276. package/core/types/order.lua +0 -55
  277. package/engine/internal/unit/item.lua +0 -84
  278. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  279. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  280. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  281. /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
@@ -150,3 +150,38 @@ declare module "../unit" {
150
150
  };
151
151
  }
152
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
+ }
@@ -21,6 +21,16 @@ local ____preconditions = require("utility.preconditions")
21
21
  local checkNotNull = ____preconditions.checkNotNull
22
22
  local ____lazy = require("utility.lazy")
23
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 ____pseudo_2Dpassive_2Dabilities = require("engine.internal.unit.pseudo-passive-abilities")
32
+ local pseudoPassiveAbilityOrderTypeStringId = ____pseudo_2Dpassive_2Dabilities.pseudoPassiveAbilityOrderTypeStringId
33
+ local pseudoPassiveAbilityTypeIds = ____pseudo_2Dpassive_2Dabilities.pseudoPassiveAbilityTypeIds
24
34
  local eventInvoke = Event.invoke
25
35
  local condition = Condition
26
36
  local createTrigger = CreateTrigger
@@ -83,7 +93,7 @@ local function createCommonEvent(underlyingEvent)
83
93
  underlyingEvent,
84
94
  3,
85
95
  function(caster, ability)
86
- return true, caster, ability
96
+ return not (pseudoPassiveAbilityTypeIds[ability.typeId] ~= nil), caster, ability
87
97
  end
88
98
  )
89
99
  end
@@ -163,7 +173,7 @@ local function createNoTargetEvent(underlyingEvent)
163
173
  underlyingEvent,
164
174
  1,
165
175
  function(caster, ability, targetUnit, targetItem, targetDestructible, x, y)
166
- if x == 0 and y == 0 and targetUnit == nil and targetItem == nil and targetDestructible == nil then
176
+ if x == 0 and y == 0 and targetUnit == nil and targetItem == nil and targetDestructible == nil and not (pseudoPassiveAbilityTypeIds[ability.typeId] ~= nil) then
167
177
  return true, caster, ability
168
178
  else
169
179
  return false
@@ -345,21 +355,17 @@ rawset(
345
355
  extractAbilityTypeId
346
356
  )
347
357
  )
358
+ local internalAbilityChannelingFinishEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters)
348
359
  rawset(
349
360
  Unit,
350
361
  "abilityChannelingFinishEvent",
351
- createDispatchingEvent(
352
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_FINISH, collectUnitAbilityEventParameters),
353
- extractAbilityTypeId
354
- )
362
+ createDispatchingEvent(internalAbilityChannelingFinishEvent, extractAbilityTypeId)
355
363
  )
364
+ local internalAbilityStopEvent = __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters)
356
365
  rawset(
357
366
  Unit,
358
367
  "abilityStopEvent",
359
- createDispatchingEvent(
360
- __TS__New(UnitTriggerEvent, EVENT_PLAYER_UNIT_SPELL_ENDCAST, collectUnitAbilityEventParameters),
361
- extractAbilityTypeId
362
- )
368
+ createDispatchingEvent(internalAbilityStopEvent, extractAbilityTypeId)
363
369
  )
364
370
  rawset(
365
371
  Unit,
@@ -376,9 +382,13 @@ rawset(
376
382
  condition(function()
377
383
  local unit = Unit:of(getTriggerUnit())
378
384
  if unit ~= nil then
379
- local ability = unit:getAbilityById(abilityTypeId)
385
+ local ability = unit:getAbility(abilityTypeId)
380
386
  if ability ~= nil then
381
- eventInvoke(event, unit, ability, orderTypeStringId)
387
+ if pseudoPassiveAbilityTypeIds[ability.typeId] ~= nil then
388
+ ability:interruptCast()
389
+ else
390
+ eventInvoke(event, unit, ability, orderTypeStringId)
391
+ end
382
392
  end
383
393
  end
384
394
  end)
@@ -388,4 +398,95 @@ rawset(
388
398
  end)
389
399
  end)
390
400
  )
401
+ local internalAbilityImpactEvent = __TS__New(Event)
402
+ local impactCallbackIdAttribute = attribute()
403
+ local function invokeImpactEvent(unit, ability, ...)
404
+ ability[impactCallbackIdAttribute] = nil
405
+ eventInvoke(internalAbilityImpactEvent, unit, ability, ...)
406
+ end
407
+ internalAbilityChannelingStartEvent:addListener(
408
+ 999999,
409
+ function(unit, ability, ...)
410
+ ability[impactCallbackIdAttribute] = Timer:run(invokeImpactEvent, unit, ability, ...)
411
+ end
412
+ )
413
+ local function consumeImpactCallback(_, ability)
414
+ local impactCallbackId = ability[impactCallbackIdAttribute]
415
+ if impactCallbackId ~= nil then
416
+ consumeZeroTimerCallback(impactCallbackId)
417
+ end
418
+ end
419
+ internalAbilityChannelingFinishEvent:addListener(999999, consumeImpactCallback)
420
+ internalAbilityStopEvent:addListener(999999, consumeImpactCallback)
421
+ rawset(
422
+ Unit,
423
+ "abilityImpactEvent",
424
+ createDispatchingEvent(
425
+ createCommonEvent(internalAbilityImpactEvent),
426
+ extractAbilityTypeId
427
+ )
428
+ )
429
+ rawset(
430
+ Unit,
431
+ "abilityWidgetTargetImpactEvent",
432
+ createDispatchingEvent(
433
+ createWidgetTargetEvent(internalAbilityImpactEvent),
434
+ extractAbilityTypeId
435
+ )
436
+ )
437
+ rawset(
438
+ Unit,
439
+ "abilityUnitTargetImpactEvent",
440
+ createDispatchingEvent(
441
+ createUnitTargetEvent(internalAbilityImpactEvent),
442
+ extractAbilityTypeId
443
+ )
444
+ )
445
+ rawset(
446
+ Unit,
447
+ "abilityItemTargetImpactEvent",
448
+ createDispatchingEvent(
449
+ createItemTargetEvent(internalAbilityImpactEvent),
450
+ extractAbilityTypeId
451
+ )
452
+ )
453
+ rawset(
454
+ Unit,
455
+ "abilityDestructibleTargetImpactEvent",
456
+ createDispatchingEvent(
457
+ createDestructibleTargetEvent(internalAbilityImpactEvent),
458
+ extractAbilityTypeId
459
+ )
460
+ )
461
+ rawset(
462
+ Unit,
463
+ "abilityPointTargetImpactEvent",
464
+ createDispatchingEvent(
465
+ createPointTargetEvent(internalAbilityImpactEvent),
466
+ extractAbilityTypeId
467
+ )
468
+ )
469
+ rawset(
470
+ Unit,
471
+ "abilityNoTargetImpactEvent",
472
+ createDispatchingEvent(
473
+ createNoTargetEvent(internalAbilityImpactEvent),
474
+ extractAbilityTypeId
475
+ )
476
+ )
477
+ local spellEffectOnlyAbilityTypeIds = luaSetOf(fourCC("AAns"))
478
+ internalAbilityChannelingStartEvent:addListener(
479
+ -999999,
480
+ function(unit, ability)
481
+ if spellEffectOnlyAbilityTypeIds[ability.parentTypeId] ~= nil then
482
+ eventInvoke(internalAbilityChannelingFinishEvent, unit, ability)
483
+ eventInvoke(internalAbilityStopEvent, unit, ability)
484
+ end
485
+ end
486
+ )
487
+ local function doNothing()
488
+ end
489
+ for pseudoPassiveAbilityTypeId in pairs(pseudoPassiveAbilityTypeIds) do
490
+ Unit.abilityCommandEvent[pseudoPassiveAbilityTypeId][pseudoPassiveAbilityOrderTypeStringId]:addListener(999999, doNothing)
491
+ end
391
492
  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,15 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ getAnimationDuration(this: Unit, animation: string | number): number;
5
+ setAurasEnabled(this: Unit, enabled: boolean, affectsUI?: boolean): void;
6
+ isHeroGlowAllowed: boolean;
7
+ maximumFlyHeight: number;
8
+ showsAirToGroundIndicator: boolean;
9
+ alwaysDisplaysHealth: boolean;
10
+ }
11
+ interface UnitWeapon {
12
+ resetAttack(this: UnitWeapon): void;
13
+ }
14
+ }
15
+ export {};
@@ -0,0 +1,85 @@
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 UnitWeapon = ____unit.UnitWeapon
7
+ local allowHeroGlowOnUnit = AllowHeroGlowOnUnit
8
+ local disallowHeroGlowOnUnit = DisallowHeroGlowOnUnit
9
+ local getUnitAnimationDuration = BlzGetUnitAnimationDuration
10
+ local getUnitAnimationDurationByIndex = BlzGetUnitAnimationDurationByIndex
11
+ local getUnitBooleanField = BlzGetUnitBooleanField
12
+ local getUnitRealField = BlzGetUnitRealField
13
+ local heroGlowIsAllowedOnUnit = HeroGlowIsAllowedOnUnit
14
+ local resetUnitAttack = BlzResetUnitAttack
15
+ local setUnitBooleanField = BlzSetUnitBooleanField
16
+ local setUnitRealField = BlzSetUnitRealField
17
+ local unitEnableAuras = BlzUnitEnableAuras
18
+ Unit.prototype.getAnimationDuration = function(self, animation)
19
+ if type(animation) == "number" then
20
+ return getUnitAnimationDurationByIndex(self.handle, animation)
21
+ end
22
+ return getUnitAnimationDuration(self.handle, animation)
23
+ end
24
+ Unit.prototype.setAurasEnabled = function(self, enabled, affectsUI)
25
+ if affectsUI == nil then
26
+ affectsUI = true
27
+ end
28
+ unitEnableAuras(self.handle, enabled, affectsUI)
29
+ end
30
+ __TS__ObjectDefineProperty(
31
+ Unit.prototype,
32
+ "isHeroGlowAllowed",
33
+ {
34
+ get = function(self)
35
+ return heroGlowIsAllowedOnUnit(self.handle)
36
+ end,
37
+ set = function(self, allowed)
38
+ if allowed then
39
+ allowHeroGlowOnUnit(self.handle)
40
+ else
41
+ disallowHeroGlowOnUnit(self.handle)
42
+ end
43
+ end
44
+ }
45
+ )
46
+ __TS__ObjectDefineProperty(
47
+ Unit.prototype,
48
+ "maximumFlyHeight",
49
+ {
50
+ get = function(self)
51
+ return getUnitRealField(self.handle, UNIT_RF_FLY_MAX_HEIGHT)
52
+ end,
53
+ set = function(self, height)
54
+ setUnitRealField(self.handle, UNIT_RF_FLY_MAX_HEIGHT, height)
55
+ end
56
+ }
57
+ )
58
+ __TS__ObjectDefineProperty(
59
+ Unit.prototype,
60
+ "showsAirToGroundIndicator",
61
+ {
62
+ get = function(self)
63
+ return getUnitBooleanField(self.handle, UNIT_BF_SHOW_AIR_TO_GROUND)
64
+ end,
65
+ set = function(self, show)
66
+ setUnitBooleanField(self.handle, UNIT_BF_SHOW_AIR_TO_GROUND, show)
67
+ end
68
+ }
69
+ )
70
+ __TS__ObjectDefineProperty(
71
+ Unit.prototype,
72
+ "alwaysDisplaysHealth",
73
+ {
74
+ get = function(self)
75
+ return getUnitBooleanField(self.handle, UNIT_BF_FORCE_DISPLAY_HP)
76
+ end,
77
+ set = function(self, show)
78
+ setUnitBooleanField(self.handle, UNIT_BF_FORCE_DISPLAY_HP, show)
79
+ end
80
+ }
81
+ )
82
+ UnitWeapon.prototype.resetAttack = function(self)
83
+ resetUnitAttack(self.unit.handle, self.index)
84
+ end
85
+ return ____exports
@@ -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