warscript 0.0.1-dev.459629d → 0.0.1-dev.45a73a4

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 (254) 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 +15 -2
  5. package/core/types/frame.lua +16 -30
  6. package/core/types/handle.lua +3 -0
  7. package/core/types/player.d.ts +1 -0
  8. package/core/types/player.lua +6 -2
  9. package/core/types/playerColor.lua +4 -3
  10. package/core/types/sound.d.ts +1 -1
  11. package/core/types/sound.lua +13 -8
  12. package/core/types/tileCell.d.ts +7 -2
  13. package/core/types/tileCell.lua +11 -0
  14. package/core/types/unit.d.ts +5 -0
  15. package/core/types/unit.lua +5 -0
  16. package/core/util.d.ts +3 -1
  17. package/core/util.lua +109 -3
  18. package/decl/native.d.ts +705 -7
  19. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  20. package/engine/ability-type-extended-tooltip.lua +44 -0
  21. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  22. package/engine/behaviour/ability/damage.d.ts +1 -0
  23. package/engine/behaviour/ability/damage.lua +12 -14
  24. package/engine/behaviour/ability/emulate-impact.lua +1 -1
  25. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  26. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  27. package/engine/behaviour/ability.d.ts +2 -0
  28. package/engine/behaviour/ability.lua +25 -0
  29. package/engine/behaviour/unit.d.ts +1 -0
  30. package/engine/behaviour/unit.lua +1 -0
  31. package/engine/buff.d.ts +12 -10
  32. package/engine/buff.lua +64 -16
  33. package/engine/index.d.ts +2 -1
  34. package/engine/internal/ability.d.ts +7 -0
  35. package/engine/internal/ability.lua +60 -31
  36. package/engine/internal/item/owner-cache.d.ts +5 -0
  37. package/engine/internal/item/owner-cache.lua +4 -0
  38. package/engine/internal/item+owner.d.ts +2 -0
  39. package/engine/internal/item+owner.lua +27 -4
  40. package/engine/internal/item.d.ts +17 -1
  41. package/engine/internal/item.lua +115 -23
  42. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  43. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  44. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  45. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  46. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  47. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  48. package/engine/internal/unit/appearance.d.ts +15 -0
  49. package/engine/internal/unit/appearance.lua +85 -0
  50. package/engine/internal/unit/bonus.d.ts +8 -0
  51. package/engine/internal/unit/bonus.lua +69 -5
  52. package/engine/internal/unit/buff.d.ts +2 -2
  53. package/engine/internal/unit/buff.lua +34 -19
  54. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  55. package/engine/internal/unit/equipment-inventory.lua +233 -0
  56. package/engine/internal/unit/expiration-timer.lua +1 -1
  57. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  58. package/engine/internal/unit/extended-inventory.lua +99 -0
  59. package/engine/internal/unit/ignore-events-items.lua +10 -1
  60. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  61. package/engine/internal/unit/inventory.lua +87 -0
  62. package/engine/internal/unit/item-container.d.ts +25 -0
  63. package/engine/internal/unit/item-container.lua +11 -0
  64. package/engine/internal/unit/item-order-events.d.ts +17 -0
  65. package/engine/internal/unit/item-order-events.lua +67 -0
  66. package/engine/internal/unit/item-slot.d.ts +27 -0
  67. package/engine/internal/unit/item-slot.lua +92 -0
  68. package/engine/internal/unit/order.d.ts +3 -3
  69. package/engine/internal/unit/order.lua +10 -10
  70. package/engine/internal/unit+ability.d.ts +2 -1
  71. package/engine/internal/unit+ability.lua +63 -2
  72. package/engine/internal/unit+damage.d.ts +9 -0
  73. package/engine/internal/unit+damage.lua +33 -0
  74. package/engine/internal/unit+rally.lua +9 -31
  75. package/engine/internal/unit-missile-data.lua +58 -32
  76. package/engine/internal/unit-missile-launch.lua +13 -13
  77. package/engine/internal/unit.d.ts +2 -10
  78. package/engine/internal/unit.lua +50 -100
  79. package/engine/local-client.d.ts +21 -0
  80. package/engine/local-client.lua +242 -57
  81. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
  82. package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
  83. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  84. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  85. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  86. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  87. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  88. package/engine/object-data/auxiliary/item-class.lua +2 -0
  89. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  90. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  91. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  92. package/engine/object-data/auxiliary/order-type.lua +2 -0
  93. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  94. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  95. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  96. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  97. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  98. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  99. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  100. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  101. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  102. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  103. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  104. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  105. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  106. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  107. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  108. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  109. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  110. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  111. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  112. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  113. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  114. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  115. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  116. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  117. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  118. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  119. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  120. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  121. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  122. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  123. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  124. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  125. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  126. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  127. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  128. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  129. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  130. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  131. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  132. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  133. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  134. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  135. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  136. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  137. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  138. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  139. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  140. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  141. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  142. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  143. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  144. package/engine/object-data/entry/ability-type/healing-modifier.d.ts +9 -0
  145. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  146. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  147. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  148. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  149. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  150. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  151. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  152. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  153. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  154. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  155. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  156. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  157. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  158. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  159. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  160. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  161. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  162. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  163. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  164. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  165. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  166. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  167. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  168. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  169. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  170. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  171. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  172. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  173. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  174. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  175. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  176. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  177. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  178. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  179. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  180. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  181. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  182. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  183. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  184. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  185. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  186. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  187. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  188. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  189. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  190. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  191. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  192. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  193. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  194. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  195. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  196. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  197. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  198. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  199. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  200. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  201. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  202. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  203. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  204. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  205. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  206. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  207. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  208. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  209. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  210. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  211. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  212. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  213. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  214. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  215. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  216. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  217. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  218. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  219. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  220. package/engine/object-data/entry/ability-type.d.ts +29 -6
  221. package/engine/object-data/entry/ability-type.lua +240 -45
  222. package/engine/object-data/entry/buff-type.d.ts +6 -2
  223. package/engine/object-data/entry/buff-type.lua +26 -0
  224. package/engine/object-data/entry/destructible-type.d.ts +6 -2
  225. package/engine/object-data/entry/destructible-type.lua +26 -0
  226. package/engine/object-data/entry/item-type.d.ts +18 -3
  227. package/engine/object-data/entry/item-type.lua +84 -0
  228. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  229. package/engine/object-data/entry/lightning-type.lua +1 -1
  230. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  231. package/engine/object-data/entry/unit-type.d.ts +47 -2
  232. package/engine/object-data/entry/unit-type.lua +383 -49
  233. package/engine/object-data/entry/upgrade.d.ts +2 -2
  234. package/engine/object-data/entry.d.ts +6 -1
  235. package/engine/object-data/entry.lua +8 -0
  236. package/engine/random.lua +1 -1
  237. package/engine/standard/entries/ability-type.d.ts +3102 -7
  238. package/engine/standard/entries/ability-type.lua +0 -6
  239. package/engine/standard/entries/buff-type.d.ts +45 -0
  240. package/engine/standard/entries/buff-type.lua +43 -0
  241. package/engine/standard/entries/item-type.d.ts +1299 -0
  242. package/engine/standard/entries/item-type.lua +2 -0
  243. package/engine/standard/entries/lightning-type.d.ts +42 -15
  244. package/engine/standard/entries/lightning-type.lua +0 -14
  245. package/engine/standard/entries/unit-type.d.ts +5 -0
  246. package/engine/standard/entries/unit-type.lua +5 -0
  247. package/engine/unit.d.ts +5 -1
  248. package/engine/unit.lua +5 -1
  249. package/event.d.ts +1 -1
  250. package/objutil/buff.lua +1 -1
  251. package/package.json +2 -22
  252. package/utility/arrays.d.ts +7 -1
  253. package/utility/arrays.lua +17 -0
  254. package/engine/internal/unit/item.lua +0 -78
package/core/dummy.lua CHANGED
@@ -15,6 +15,8 @@ local ____preconditions = require("utility.preconditions")
15
15
  local checkNotNull = ____preconditions.checkNotNull
16
16
  local ____ability = require("engine.internal.ability")
17
17
  local getOrderIdByAbilityTypeId = ____ability.getOrderIdByAbilityTypeId
18
+ local ____unit_2Dability_2Dlevel_2Dnatives = require("engine.internal.misc.unit-ability-level-natives")
19
+ local rawSetUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawSetUnitAbilityLevel
18
20
  local neutralVictim = Player.neutralVictim.handle
19
21
  ____exports.InstantDummyCaster = __TS__Class()
20
22
  local InstantDummyCaster = ____exports.InstantDummyCaster
@@ -42,7 +44,7 @@ function InstantDummyCaster.prototype.prepare(self, owner, abilityId, level)
42
44
  if type(abilityId) == "number" then
43
45
  UnitAddAbility(dummy, abilityId)
44
46
  if type(level) == "number" then
45
- SetUnitAbilityLevel(dummy, abilityId, level + 1)
47
+ rawSetUnitAbilityLevel(dummy, abilityId, level + 1)
46
48
  else
47
49
  level(UnitAbility:of(
48
50
  checkNotNull(BlzGetUnitAbility(dummy, abilityId)),
@@ -56,7 +58,7 @@ function InstantDummyCaster.prototype.prepare(self, owner, abilityId, level)
56
58
  end
57
59
  if __TS__ArrayIsArray(level) then
58
60
  for i = 1, #abilityId do
59
- SetUnitAbilityLevel(dummy, abilityId[i], level[i] + 1)
61
+ rawSetUnitAbilityLevel(dummy, abilityId[i], level[i] + 1)
60
62
  end
61
63
  else
62
64
  local abilities = {}
@@ -5,7 +5,9 @@ import { PlayerColor } from "./playerColor";
5
5
  declare const enum EffectPropertyKey {
6
6
  COLOR = 100,
7
7
  PITCH = 101,
8
- ROLL = 102
8
+ ROLL = 102,
9
+ BLEND_TIME = 103,
10
+ TIME_SCALE = 104
9
11
  }
10
12
  export type EffectParameters = {
11
13
  readonly delay?: number;
@@ -21,7 +23,15 @@ export declare class Effect extends Handle<jeffect> {
21
23
  private [EffectPropertyKey.COLOR]?;
22
24
  private [EffectPropertyKey.PITCH]?;
23
25
  private [EffectPropertyKey.ROLL]?;
26
+ private [EffectPropertyKey.BLEND_TIME]?;
27
+ private [EffectPropertyKey.TIME_SCALE]?;
24
28
  protected onDestroy(): HandleDestructor;
29
+ setAnimation(animation: string): void;
30
+ queueAnimation(animation: string): void;
31
+ get blendTime(): number;
32
+ set blendTime(blendTime: number);
33
+ get timeScale(): number;
34
+ set timeScale(timeScale: number);
25
35
  get color(): PlayerColor;
26
36
  set color(color: PlayerColor);
27
37
  get scale(): number;
@@ -15,25 +15,22 @@ local ____timer = require("core.types.timer")
15
15
  local Timer = ____timer.Timer
16
16
  local ____unit = require("engine.internal.unit")
17
17
  local Unit = ____unit.Unit
18
- local ____pairs = _G.pairs
19
- local select = _G.select
20
- local mathRad = math.rad
21
18
  local addSpecialEffect = AddSpecialEffect
22
19
  local addSpecialEffectTarget = AddSpecialEffectTarget
23
20
  local destroyEffect = DestroyEffect
21
+ local getLocationZ = GetLocationZ
24
22
  local getSpecialEffectScale = BlzGetSpecialEffectScale
25
- local playSpecialEffect = BlzPlaySpecialEffect
26
- local setSpecialEffectScale = BlzSetSpecialEffectScale
23
+ local moveLocation = MoveLocation
24
+ local queueSpecialEffectAnimation = BlzQueueSpecialEffectAnimation
25
+ local setSpecialEffectAnimation = BlzSetSpecialEffectAnimation
26
+ local setSpecialEffectAnimationBlendTime = BlzSetSpecialEffectAnimationBlendTime
27
+ local setSpecialEffectTimeScale = BlzSetSpecialEffectTimeScale
28
+ local setSpecialEffectColorByPlayer = BlzSetSpecialEffectColorByPlayer
27
29
  local setSpecialEffectPitch = BlzSetSpecialEffectPitch
28
30
  local setSpecialEffectRoll = BlzSetSpecialEffectRoll
29
- local setSpecialEffectColorByPlayer = BlzSetSpecialEffectColorByPlayer
30
- local specialEffectAddSubAnimation = BlzSpecialEffectAddSubAnimation
31
- local specialEffectClearSubAnimations = BlzSpecialEffectClearSubAnimations
32
- local specialEffectRemoveSubAnimation = BlzSpecialEffectRemoveSubAnimation
31
+ local setSpecialEffectScale = BlzSetSpecialEffectScale
33
32
  local setSpecialEffectZ = BlzSetSpecialEffectZ
34
- local getLocationZ = GetLocationZ
35
- local getUnitZ = BlzGetUnitZ
36
- local moveLocation = MoveLocation
33
+ local mathRad = math.rad
37
34
  local location = Location(0, 0)
38
35
  local function setSpecialEffectPitchDegrees(effect, pitch)
39
36
  setSpecialEffectPitch(
@@ -47,71 +44,6 @@ local function setSpecialEffectRollDegrees(effect, roll)
47
44
  -mathRad(roll)
48
45
  )
49
46
  end
50
- local animTypeByAnimationName = {
51
- attack = ANIM_TYPE_ATTACK,
52
- birth = ANIM_TYPE_BIRTH,
53
- death = ANIM_TYPE_DEATH,
54
- decay = ANIM_TYPE_DECAY,
55
- dissipate = ANIM_TYPE_DISSIPATE,
56
- morph = ANIM_TYPE_MORPH,
57
- portrait = ANIM_TYPE_PORTRAIT,
58
- sleep = ANIM_TYPE_SLEEP,
59
- spell = ANIM_TYPE_SPELL,
60
- stand = ANIM_TYPE_STAND,
61
- walk = ANIM_TYPE_WALK
62
- }
63
- local subAnimTypeByAnimationQualifier = {
64
- alternate = SUBANIM_TYPE_ROOTED,
65
- alternateex = SUBANIM_TYPE_ALTERNATE_EX,
66
- chain = SUBANIM_TYPE_CHAINLIGHTNING,
67
- channel = SUBANIM_TYPE_CHANNEL,
68
- complete = SUBANIM_TYPE_COMPLETE,
69
- critical = SUBANIM_TYPE_CRITICAL,
70
- defend = SUBANIM_TYPE_DEFEND,
71
- drain = SUBANIM_TYPE_DRAIN,
72
- eattree = SUBANIM_TYPE_EATTREE,
73
- fast = SUBANIM_TYPE_FAST,
74
- fill = SUBANIM_TYPE_FILL,
75
- flail = SUBANIM_TYPE_FLAIL,
76
- flesh = SUBANIM_TYPE_FLESH,
77
- fifth = SUBANIM_TYPE_FIFTH,
78
- fire = SUBANIM_TYPE_FIRE,
79
- first = SUBANIM_TYPE_FIRST,
80
- five = SUBANIM_TYPE_FIVE,
81
- four = SUBANIM_TYPE_FOUR,
82
- fourth = SUBANIM_TYPE_FOURTH,
83
- gold = SUBANIM_TYPE_GOLD,
84
- hit = SUBANIM_TYPE_HIT,
85
- large = SUBANIM_TYPE_LARGE,
86
- left = SUBANIM_TYPE_LEFT,
87
- light = SUBANIM_TYPE_LIGHT,
88
- looping = SUBANIM_TYPE_LOOPING,
89
- lumber = SUBANIM_TYPE_LUMBER,
90
- medium = SUBANIM_TYPE_MEDIUM,
91
- moderate = SUBANIM_TYPE_MODERATE,
92
- off = SUBANIM_TYPE_OFF,
93
- one = SUBANIM_TYPE_ONE,
94
- puke = SUBANIM_TYPE_PUKE,
95
- ready = SUBANIM_TYPE_READY,
96
- right = SUBANIM_TYPE_RIGHT,
97
- second = SUBANIM_TYPE_SECOND,
98
- severe = SUBANIM_TYPE_SEVERE,
99
- slam = SUBANIM_TYPE_SLAM,
100
- small = SUBANIM_TYPE_SMALL,
101
- spiked = SUBANIM_TYPE_SPIKED,
102
- spin = SUBANIM_TYPE_SPIN,
103
- swim = SUBANIM_TYPE_SWIM,
104
- talk = SUBANIM_TYPE_TALK,
105
- third = SUBANIM_TYPE_THIRD,
106
- three = SUBANIM_TYPE_THREE,
107
- throw = SUBANIM_TYPE_THROW,
108
- two = SUBANIM_TYPE_TWO,
109
- turn = SUBANIM_TYPE_TURN,
110
- victory = SUBANIM_TYPE_VICTORY,
111
- work = SUBANIM_TYPE_WORK,
112
- wounded = SUBANIM_TYPE_WOUNDED,
113
- upgrade = SUBANIM_TYPE_UPGRADE
114
- }
115
47
  local function setSpecialEffectColor(effect, color)
116
48
  local dummyColor = dummyPlayer.color
117
49
  dummyPlayer.color = color
@@ -178,6 +110,12 @@ function Effect.prototype.onDestroy(self)
178
110
  destroyEffect(self.handle)
179
111
  return Handle.prototype.onDestroy(self)
180
112
  end
113
+ function Effect.prototype.setAnimation(self, animation)
114
+ setSpecialEffectAnimation(self.handle, animation)
115
+ end
116
+ function Effect.prototype.queueAnimation(self, animation)
117
+ queueSpecialEffectAnimation(self.handle, animation)
118
+ end
181
119
  function Effect.create(self, modelPath, xOrWidget, yOrAttachmentPoint, parameters)
182
120
  local effect = self:of(addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters))
183
121
  if parameters ~= nil then
@@ -210,6 +148,34 @@ function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, paramete
210
148
  parameters
211
149
  )
212
150
  end
151
+ __TS__SetDescriptor(
152
+ Effect.prototype,
153
+ "blendTime",
154
+ {
155
+ get = function(self)
156
+ return self[103] or 0
157
+ end,
158
+ set = function(self, blendTime)
159
+ setSpecialEffectAnimationBlendTime(self.handle, blendTime)
160
+ self[103] = blendTime
161
+ end
162
+ },
163
+ true
164
+ )
165
+ __TS__SetDescriptor(
166
+ Effect.prototype,
167
+ "timeScale",
168
+ {
169
+ get = function(self)
170
+ return self[104] or 1
171
+ end,
172
+ set = function(self, timeScale)
173
+ setSpecialEffectTimeScale(self.handle, timeScale)
174
+ self[104] = timeScale
175
+ end
176
+ },
177
+ true
178
+ )
213
179
  __TS__SetDescriptor(
214
180
  Effect.prototype,
215
181
  "color",
@@ -137,8 +137,21 @@ export declare class Frame extends Handle<jframehandle> {
137
137
  static get onMouseUp(): Event<[Player, jmousebuttontype, number, number]>;
138
138
  private static onMouseDownEvent?;
139
139
  static get onMouseDown(): Event<[Player, jmousebuttontype, number, number]>;
140
- static get onMouseMove(): Event<[player: Player, x: number, y: number]>;
141
- static get onMouseMoveLocal(): Event<[x: number, y: number]>;
140
+ /**
141
+ * Synchronized native mouse movement of every player. Each movement of every player's
142
+ * cursor is sent over the network, so with several players moving their mice this floods
143
+ * the network and raises the latency for everyone. Prefer {@link mouseMoveLocalEvent} and
144
+ * synchronize the needed coordinates explicitly, only when they matter (e.g. on a click).
145
+ */
146
+ static get mouseMoveEvent(): Event<[player: Player, x: number, y: number]>;
147
+ /**
148
+ * Fires on the local client when the world point under the cursor changes, whether the
149
+ * cursor or the camera moved. Polls the local cursor position every 1/64 second and sends
150
+ * nothing over the network. The point is the camera ray's intersection with the terrain,
151
+ * so it ignores units and doodads under the cursor. It is also computed while the cursor
152
+ * is over the UI; check {@link isMouseOnWorld} where that matters.
153
+ */
154
+ static get mouseMoveLocalEvent(): Event<[x: number, y: number]>;
142
155
  static createSimple<T extends Frame>(this: FrameSubclass<T>, name: string, parent?: Frame, createContext?: number): T;
143
156
  static create<T extends Frame>(this: FrameSubclass<T>, name: string, parent: Frame, priority?: number, createContext?: number): T;
144
157
  static createByType<T extends Frame>(this: FrameSubclass<T>, typeName: "BACKDROP" | "BUTTON" | "CHATDISPLAY" | "CHECKBOX" | "CONTROL" | "DIALOG" | "EDITBOX" | "FRAME" | "GLUEBUTTON" | "GLUECHECKBOX" | "GLUETEXTBUTTON" | "HIGHLIGHT" | "LISTBOX" | "MENU" | "POPUPMENU" | "SCROLLBAR" | "SLIDER" | "TEXT" | "TEXTAREA" | "TEXTBUTTON", name: string, parent: Frame, inherits?: string, createContext?: number): T;
@@ -21,9 +21,6 @@ local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
21
21
  local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
22
22
  local ____playerCamera = require("core.types.playerCamera")
23
23
  local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
24
- local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
25
- local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
26
- local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
27
24
  local ____lua_2Dsets = require("utility.lua-sets")
28
25
  local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
29
26
  local ____socket = require("net.socket")
@@ -39,8 +36,13 @@ local frameIsVisible = BlzFrameIsVisible
39
36
  local frameSetEnable = BlzFrameSetEnable
40
37
  local frameSetScale = BlzFrameSetScale
41
38
  local getHandleId = GetHandleId
39
+ local getLocalClientHeight = BlzGetLocalClientHeight
40
+ local getMouseScreenPosX = BlzGetMouseScreenPosX
41
+ local getMouseScreenPosY = BlzGetMouseScreenPosY
42
42
  local getOriginFrame = BlzGetOriginFrame
43
43
  local location = Location
44
+ local pixelToFrameX = BlzPixelToFrameX
45
+ local pixelToFrameY = BlzPixelToFrameY
44
46
  local ____rawget = _G.rawget
45
47
  local rawset = _G.rawset
46
48
  local invoke = Event.invoke
@@ -988,7 +990,7 @@ __TS__ObjectDefineProperty(
988
990
  )
989
991
  __TS__ObjectDefineProperty(
990
992
  Frame,
991
- "onMouseMove",
993
+ "mouseMoveEvent",
992
994
  {get = function(self)
993
995
  local event = __TS__New(
994
996
  TriggerEvent,
@@ -1002,48 +1004,32 @@ __TS__ObjectDefineProperty(
1002
1004
  ) end,
1003
1005
  function() return Player:of(GetTriggerPlayer()), BlzGetTriggerPlayerMouseX(), BlzGetTriggerPlayerMouseY() end
1004
1006
  )
1005
- rawset(____exports.Frame, "onMouseMove", event)
1007
+ rawset(____exports.Frame, "mouseMoveEvent", event)
1006
1008
  return event
1007
1009
  end}
1008
1010
  )
1009
1011
  __TS__ObjectDefineProperty(
1010
1012
  Frame,
1011
- "onMouseMoveLocal",
1013
+ "mouseMoveLocalEvent",
1012
1014
  {get = function(self)
1013
- local invoke = Event.invoke
1014
1015
  local event = __TS__New(Event)
1015
- local syncX = 0
1016
- local syncY = 0
1017
- local syncFrameX = 0
1018
- local syncFrameY = 0
1019
- local lastX = syncX
1020
- local lastY = syncY
1021
- self.onMouseMove:addListener(function(player, x, y)
1022
- if player.isLocal then
1023
- syncX = x
1024
- syncY = y
1025
- syncFrameX, syncFrameY = worldCoordinatesToFrame(
1026
- x,
1027
- y,
1028
- getTerrainZ(x, y)
1029
- )
1030
- lastX = x
1031
- lastY = y
1032
- invoke(event, x, y)
1033
- end
1034
- end)
1016
+ local lastX = 0
1017
+ local lastY = 0
1035
1018
  Timer.onPeriod[1 / 64]:addListener(function()
1036
- if syncX == 0 and syncY == 0 then
1019
+ if getLocalClientHeight() == 0 then
1037
1020
  return
1038
1021
  end
1039
- local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
1022
+ local x, y, ____, isDefinite = frameCoordinatesToWorld(
1023
+ pixelToFrameX(getMouseScreenPosX()),
1024
+ pixelToFrameY(getMouseScreenPosY())
1025
+ )
1040
1026
  if isDefinite and (x ~= lastX or y ~= lastY) then
1041
1027
  lastX = x
1042
1028
  lastY = y
1043
1029
  invoke(event, x, y)
1044
1030
  end
1045
1031
  end)
1046
- rawset(____exports.Frame, "onMouseMoveLocal", event)
1032
+ rawset(____exports.Frame, "mouseMoveLocalEvent", event)
1047
1033
  return event
1048
1034
  end}
1049
1035
  )
@@ -60,6 +60,9 @@ function Handle.invokeOnCreateEvent(self, clazz, handle)
60
60
  Event.invoke(onCreateEvent, handle)
61
61
  end
62
62
  end
63
+ function Handle.isWrapped(self, handle)
64
+ return self.memoized[getHandleId(handle)] ~= nil
65
+ end
63
66
  function Handle.prototype.__tostring(self)
64
67
  return (self.constructor.name .. "@") .. tostring(getHandleId(self.handle))
65
68
  end
@@ -50,6 +50,7 @@ export declare class Player extends Handle<jplayer> {
50
50
  selectSingle(unit: Unit): void;
51
51
  select(unit: Unit): void;
52
52
  deselect(unit: Unit): void;
53
+ setRaceSkin(racePreference: jracepreference): void;
53
54
  forceUIKey(key: string): void;
54
55
  forceUICancel(): void;
55
56
  isAllyOf(other: Player): boolean;
@@ -31,12 +31,13 @@ local getPlayerName = GetPlayerName
31
31
  local getPlayerTechCount = GetPlayerTechCount
32
32
  local getPlayerTechMaxAllowed = GetPlayerTechMaxAllowed
33
33
  local getTriggerPlayer = GetTriggerPlayer
34
+ local playerNative = _G.Player
35
+ local setPlayerAbilityAvailable = SetPlayerAbilityAvailable
34
36
  local setPlayerAlliance = SetPlayerAlliance
37
+ local setPlayerRaceSkin = SetPlayerRaceSkin
35
38
  local setPlayerTechMaxAllowed = SetPlayerTechMaxAllowed
36
39
  local setPlayerTechResearched = SetPlayerTechResearched
37
- local setPlayerAbilityAvailable = SetPlayerAbilityAvailable
38
40
  local triggerRegisterPlayerAllianceChange = TriggerRegisterPlayerAllianceChange
39
- local playerNative = _G.Player
40
41
  local nativeByPlayerAllianceType = {
41
42
  [0] = ALLIANCE_PASSIVE,
42
43
  [1] = ALLIANCE_RESCUABLE,
@@ -89,6 +90,9 @@ function Player.prototype.deselect(self, unit)
89
90
  SelectUnit(unit.handle, false)
90
91
  end
91
92
  end
93
+ function Player.prototype.setRaceSkin(self, racePreference)
94
+ setPlayerRaceSkin(self.handle, racePreference)
95
+ end
92
96
  function Player.prototype.forceUIKey(self, key)
93
97
  if self.isLocal then
94
98
  ForceUIKey(key)
@@ -10,6 +10,7 @@ local ____color = require("core.types.color")
10
10
  local Color = ____color.Color
11
11
  local ____exception = require("exception")
12
12
  local IllegalStateException = ____exception.IllegalStateException
13
+ local getHandleId = GetHandleId
13
14
  local byId = {}
14
15
  local byName = {}
15
16
  ____exports.PlayerColor = __TS__Class()
@@ -81,7 +82,7 @@ PlayerColor.data = util.contextFn(
81
82
  PLAYER_COLOR_SNOW,
82
83
  PLAYER_COLOR_EMERALD,
83
84
  PLAYER_COLOR_PEANUT,
84
- ConvertPlayerColor(PLAYER_NEUTRAL_AGGRESSIVE)
85
+ PLAYER_COLOR_BLACK
85
86
  }
86
87
  local rgbaColors = {
87
88
  Color:of(255, 2, 2),
@@ -141,7 +142,7 @@ PlayerColor.data = util.contextFn(
141
142
  do
142
143
  local i = 0
143
144
  while i < #handles do
144
- data[GetHandleId(handles[i + 1])] = {rgba = rgbaColors[i + 1], name = names[i + 1]}
145
+ data[getHandleId(handles[i + 1])] = {rgba = rgbaColors[i + 1], name = names[i + 1]}
145
146
  i = i + 1
146
147
  end
147
148
  end
@@ -172,7 +173,7 @@ PlayerColor.coal = ____exports.PlayerColor:of(PLAYER_COLOR_COAL)
172
173
  PlayerColor.snow = ____exports.PlayerColor:of(PLAYER_COLOR_SNOW)
173
174
  PlayerColor.emerald = ____exports.PlayerColor:of(PLAYER_COLOR_EMERALD)
174
175
  PlayerColor.peanut = ____exports.PlayerColor:of(PLAYER_COLOR_PEANUT)
175
- PlayerColor.black = ____exports.PlayerColor:of(ConvertPlayerColor(PLAYER_NEUTRAL_AGGRESSIVE))
176
+ PlayerColor.black = ____exports.PlayerColor:of(PLAYER_COLOR_BLACK)
176
177
  PlayerColor.all = {
177
178
  ____exports.PlayerColor.red,
178
179
  ____exports.PlayerColor.blue,
@@ -47,7 +47,7 @@ export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
47
47
  protected onDestroy(fadeOut?: boolean): HandleDestructor;
48
48
  get volume(): number;
49
49
  set volume(v: number);
50
- start(milliseconds?: number): void;
50
+ start(milliseconds?: number, fadeIn?: boolean): void;
51
51
  stop(fadeOut?: boolean): void;
52
52
  restart(milliseconds?: number): void;
53
53
  static play(fileName: string, preset: SoundSettings): void;
@@ -9,19 +9,20 @@ local ____sound_2Dpreset = require("engine.object-data.entry.sound-preset")
9
9
  local SoundPreset = ____sound_2Dpreset.SoundPreset
10
10
  local ____random = require("engine.random")
11
11
  local randomInteger = ____random.randomInteger
12
+ local attachSoundToUnit = AttachSoundToUnit
12
13
  local createSound = CreateSound
13
14
  local createSoundFromLabel = CreateSoundFromLabel
14
- local setSoundPitch = SetSoundPitch
15
+ local killSoundWhenDone = KillSoundWhenDone
15
16
  local setSoundChannel = SetSoundChannel
17
+ local setSoundDistanceCutoff = SetSoundDistanceCutoff
18
+ local setSoundDistances = SetSoundDistances
19
+ local setSoundPitch = SetSoundPitch
20
+ local setSoundPlayPosition = SetSoundPlayPosition
16
21
  local setSoundPosition = SetSoundPosition
17
22
  local setSoundVolume = SetSoundVolume
18
- local setSoundDistances = SetSoundDistances
19
- local setSoundDistanceCutoff = SetSoundDistanceCutoff
20
23
  local startSound = StartSound
21
- local setSoundPlayPosition = SetSoundPlayPosition
24
+ local startSoundEx = StartSoundEx
22
25
  local stopSound = StopSound
23
- local attachSoundToUnit = AttachSoundToUnit
24
- local killSoundWhenDone = KillSoundWhenDone
25
26
  ____exports.SoundChannel = ____exports.SoundChannel or ({})
26
27
  ____exports.SoundChannel.General = 0
27
28
  ____exports.SoundChannel[____exports.SoundChannel.General] = "General"
@@ -226,8 +227,12 @@ function Sound.prototype.onDestroy(self, fadeOut)
226
227
  stopSound(self.handle, true, fadeOut or false)
227
228
  return Handle.prototype.onDestroy(self)
228
229
  end
229
- function Sound.prototype.start(self, milliseconds)
230
- startSound(self.handle)
230
+ function Sound.prototype.start(self, milliseconds, fadeIn)
231
+ if fadeIn == nil then
232
+ startSound(self.handle)
233
+ else
234
+ startSoundEx(self.handle, fadeIn)
235
+ end
231
236
  if milliseconds then
232
237
  setSoundPlayPosition(self.handle, milliseconds)
233
238
  end
@@ -1,11 +1,14 @@
1
1
  /** @noSelfInFile */
2
2
  import { AttributesHolder } from "../../attributes";
3
3
  export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
4
- private readonly id;
4
+ /** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
5
+ readonly id: number;
5
6
  readonly x: number;
6
7
  readonly y: number;
7
8
  readonly z: undefined;
8
- protected constructor(id: number, x: number, y: number, z: undefined);
9
+ protected constructor(
10
+ /** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
11
+ id: number, x: number, y: number, z: undefined);
9
12
  get up(): TileCell;
10
13
  get down(): TileCell;
11
14
  get left(): TileCell;
@@ -20,4 +23,6 @@ export declare class TileCell extends AttributesHolder implements Readonly<Vec2>
20
23
  static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
21
24
  static getInRange(x: number, y: number, range: number): TileCell[];
22
25
  static of(this: void, x: number, y: number): TileCell;
26
+ /** The cell with the given {@link id}, e.g. one received over the network. */
27
+ static getById(this: void, id: number): TileCell;
23
28
  }
@@ -118,6 +118,17 @@ function TileCell.of(x, y)
118
118
  nil
119
119
  )
120
120
  end
121
+ function TileCell.getById(id)
122
+ local yId = (id + 16384) // 32768
123
+ local xId = id - yId * 32768
124
+ return tileCellById[id] or __TS__New(
125
+ ____exports.TileCell,
126
+ id,
127
+ xId * 128,
128
+ yId * 128,
129
+ nil
130
+ )
131
+ end
121
132
  __TS__SetDescriptor(
122
133
  TileCell.prototype,
123
134
  "up",
@@ -1,6 +1,11 @@
1
1
  /** @noSelfInFile */
2
2
  import "../../engine/internal/unit";
3
3
  import "../../engine/internal/unit/ability";
4
+ import "../../engine/internal/unit/appearance";
5
+ import "../../engine/internal/unit/extended-inventory";
6
+ import "../../engine/internal/unit/equipment-inventory";
7
+ import "../../engine/internal/unit/inventory";
8
+ import "../../engine/internal/unit/item-order-events";
4
9
  import "../../engine/internal/unit+damage";
5
10
  import "../../engine/internal/unit+rally";
6
11
  import "../../engine/internal/unit+spellSteal";
@@ -1,6 +1,11 @@
1
1
  local ____exports = {}
2
2
  require("engine.internal.unit")
3
3
  require("engine.internal.unit.ability")
4
+ require("engine.internal.unit.appearance")
5
+ require("engine.internal.unit.extended-inventory")
6
+ require("engine.internal.unit.equipment-inventory")
7
+ require("engine.internal.unit.inventory")
8
+ require("engine.internal.unit.item-order-events")
4
9
  require("engine.internal.unit+damage")
5
10
  require("engine.internal.unit+rally")
6
11
  require("engine.internal.unit+spellSteal")
package/core/util.d.ts CHANGED
@@ -54,9 +54,11 @@ declare global {
54
54
  function fourCC(id: string): number;
55
55
  }
56
56
  declare namespace inner {
57
- const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "channel" | "charm" | "chemicalrage" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "moveslot0" | "moveslot1" | "moveslot2" | "moveslot3" | "moveslot4" | "moveslot5" | "useslot0" | "useslot1" | "useslot2" | "useslot3" | "useslot4" | "useslot5" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "harvest" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "moveAI" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "patrolAI" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unholyfrenzy" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest") => number;
57
+ /** @deprecated Use the {@link OrderType} const enum from `warscript/engine/object-data/auxiliary/order-type` instead. */
58
+ const orderId: (id: "blink" | "stop" | "load" | "sleep" | "absorb" | "acidbomb" | "acolyteharvest" | "AImove" | "ambush" | "ancestralspirit" | "ancestralspirittarget" | "animatedead" | "antimagicshell" | "attack" | "attackground" | "attackonce" | "attributemodskill" | "auracalltoarms" | "auraunholy" | "auravampiric" | "autodispel" | "autodispeloff" | "autodispelon" | "autoentangle" | "autoentangleinstant" | "autoharvestgold" | "autoharvestlumber" | "avatar" | "avengerform" | "awaken" | "banish" | "barkskin" | "barkskinoff" | "barkskinon" | "batteringram" | "battleroar" | "battlestations" | "bearform" | "berserk" | "blackarrow" | "blackarrowoff" | "blackarrowon" | "bladedance" | "blight" | "blizzard" | "bloodlust" | "bloodlustoff" | "bloodluston" | "board" | "breathoffire" | "breathoffrost" | "build" | "burrow" | "cannibalize" | "carrionscarabs" | "carrionscarabsinstant" | "carrionscarabsoff" | "carrionscarabson" | "carrionswarm" | "chainlightning" | "challengingcall" | "channel" | "charm" | "chemicalrage" | "cleansingfire" | "cloudoffog" | "clusterrockets" | "coldarrows" | "coldarrowstarg" | "consecration" | "controlmagic" | "corporealform" | "corrosivebreath" | "coupleinstant" | "coupletarget" | "creepanimatedead" | "creepdevour" | "creepheal" | "creephealoff" | "creephealon" | "creepthunderbolt" | "creepthunderclap" | "cripple" | "curse" | "curseoff" | "curseon" | "cyclone" | "darkconversion" | "darkportal" | "darkritual" | "darksummoning" | "deathanddecay" | "deathcoil" | "deathpact" | "deathseekerbow" | "decouple" | "defend" | "detectaoe" | "detonate" | "devour" | "devourmagic" | "disassociate" | "disenchant" | "dismount" | "dispel" | "divineshield" | "doom" | "drain" | "dreadlordinferno" | "dropitem" | "moveslot0" | "moveslot1" | "moveslot2" | "moveslot3" | "moveslot4" | "moveslot5" | "useslot0" | "useslot1" | "useslot2" | "useslot3" | "useslot4" | "useslot5" | "moveslotext0" | "moveslotext1" | "moveslotext2" | "moveslotext3" | "moveslotext4" | "moveslotext5" | "moveslotext6" | "moveslotext7" | "moveslotext8" | "moveslotext9" | "moveslotext10" | "moveslotext11" | "moveslotext12" | "moveslotext13" | "moveslotext14" | "moveslotext15" | "moveslotext16" | "moveslotext17" | "moveslotext18" | "moveslotext19" | "moveslotext20" | "moveslotext21" | "moveslotext22" | "moveslotext23" | "moveslotext24" | "moveslotext25" | "moveslotext26" | "moveslotext27" | "moveslotext28" | "moveslotext29" | "moveslotequip0" | "moveslotequip1" | "moveslotequip2" | "moveslotequip3" | "moveslotequip4" | "moveslotequip5" | "moveslotequip6" | "moveslotequip7" | "moveslotequip8" | "useslotext0" | "useslotext1" | "useslotext2" | "useslotext3" | "useslotext4" | "useslotext5" | "useslotext6" | "useslotext7" | "useslotext8" | "useslotext9" | "useslotext10" | "useslotext11" | "useslotext12" | "useslotext13" | "useslotext14" | "useslotext15" | "useslotext16" | "useslotext17" | "useslotext18" | "useslotext19" | "useslotext20" | "useslotext21" | "useslotext22" | "useslotext23" | "useslotext24" | "useslotext25" | "useslotext26" | "useslotext27" | "useslotext28" | "useslotext29" | "useslotequip0" | "useslotequip1" | "useslotequip2" | "useslotequip3" | "useslotequip4" | "useslotequip5" | "useslotequip6" | "useslotequip7" | "useslotequip8" | "drunkenhaze" | "earthquake" | "eattree" | "elementalfury" | "ensnare" | "ensnareaoe" | "ensnareoff" | "ensnareon" | "entangle" | "entangleinstant" | "entanglingroots" | "etherealform" | "evileye" | "faeriefire" | "faeriefireoff" | "faeriefireon" | "fanofknives" | "farsight" | "fingerofdeath" | "firebolt" | "flamestrike" | "flamingarrows" | "flamingarrowstarg" | "flamingattack" | "flamingattacktarg" | "flare" | "forceboard" | "forceofnature" | "forkedlightning" | "freezingbreath" | "frenzy" | "frenzyoff" | "frenzyon" | "frostarmor" | "frostarmoroff" | "frostarmoron" | "frostnova" | "getitem" | "gold2lumber" | "grabtree" | "grit" | "guidinghand" | "harvest" | "headsplitter" | "heal" | "healingspray" | "healingward" | "healingwave" | "healoff" | "healon" | "heroicchallenge" | "heroicslash" | "hex" | "holdposition" | "holybolt" | "howlofterror" | "humanbuild" | "immolation" | "impale" | "incineratearrow" | "incineratearrowoff" | "incineratearrowon" | "inferno" | "innerfire" | "innerfireoff" | "innerfireon" | "inspirecourage" | "instant" | "invisibility" | "lavamonster" | "lightningshield" | "loadarcher" | "loadcorpse" | "loadcorpseinstant" | "locustswarm" | "lumber2gold" | "magicdefense" | "magicleash" | "magicundefense" | "manaburn" | "manaflareoff" | "manaflareon" | "manashieldoff" | "manashieldon" | "massteleport" | "mechanicalcritter" | "metamorphosis" | "militia" | "militiaconvert" | "militiaoff" | "militiaunconvert" | "mindrot" | "mirrorimage" | "monsoon" | "mount" | "mounthippogryph" | "move" | "nagabuild" | "neutraldetectaoe" | "neutralinteract" | "neutralspell" | "nightelfbuild" | "orcbuild" | "parasite" | "parasiteoff" | "parasiteon" | "patrol" | "AIpatrol" | "phaseshift" | "phaseshiftinstant" | "phaseshiftoff" | "phaseshifton" | "phoenixfire" | "phoenixmorph" | "poisonarrows" | "poisonarrowstarg" | "polymorph" | "possession" | "preservation" | "purge" | "purifierblade" | "rainofchaos" | "rainoffire" | "raisedead" | "raisedeadoff" | "raisedeadon" | "ravenform" | "recharge" | "rechargeoff" | "rechargeon" | "rejuvination" | "renew" | "renewoff" | "renewon" | "repair" | "repairoff" | "repairon" | "replenish" | "replenishlife" | "replenishlifeoff" | "replenishlifeon" | "replenishmana" | "replenishmanaoff" | "replenishmanaon" | "replenishoff" | "replenishon" | "request_hero" | "requestsacrifice" | "restoration" | "restorationoff" | "restorationon" | "resumebuild" | "resumeharvesting" | "resurrection" | "returnresources" | "revenge" | "revive" | "righteousfury" | "ritualdagger" | "roar" | "robogoblin" | "root" | "sacrifice" | "sanctuary" | "scout" | "selfdestruct" | "selfdestructoff" | "selfdestructon" | "sentinel" | "follow" | "smart" | "setrally" | "shadowsight" | "shadowstrike" | "shockwave" | "silence" | "slow" | "slowoff" | "slowon" | "soulburn" | "soullantern" | "soulpreservation" | "spellshield" | "spellshieldaoe" | "spellsteal" | "spellstealoff" | "spellstealon" | "spies" | "spiritlink" | "spiritofvengeance" | "spirittroll" | "spiritwolf" | "stampede" | "standdown" | "starfall" | "stasistrap" | "steal" | "stomp" | "stoneform" | "stunned" | "submerge" | "summonfactory" | "summongrizzly" | "summonphoenix" | "summonquillbeast" | "summonwareagle" | "sweepingstrike" | "tankdroppilot" | "tankloadpilot" | "tankpilot" | "taunt" | "thunderbolt" | "thunderclap" | "tornado" | "townbelloff" | "townbellon" | "tranquility" | "transmute" | "unavatar" | "unavengerform" | "unbearform" | "unburrow" | "uncoldarrows" | "uncorporealform" | "undeadbuild" | "undeadvengeance" | "undefend" | "undivineshield" | "unetherealform" | "unflamingarrows" | "unflamingattack" | "unguidinghand" | "unholyfrenzy" | "unholyfrenzyaoe" | "unimmolation" | "unload" | "unloadall" | "unloadallcorpses" | "unloadallinstant" | "unpoisonarrows" | "unravenform" | "unrobogoblin" | "unroot" | "unsoullantern" | "unstableconcoction" | "unstoneform" | "unsubmerge" | "unsummon" | "unwindwalk" | "valiantcharge" | "vengeance" | "vengeanceinstant" | "vengeanceoff" | "vengeanceon" | "volcano" | "voodoo" | "warcry" | "ward" | "waterelemental" | "wateryminion" | "web" | "weboff" | "webon" | "whirlwind" | "windwalk" | "wispharvest" | "witheringfire") => number;
58
59
  }
59
60
  declare global {
61
+ /** @deprecated Use the {@link OrderType} const enum from `warscript/engine/object-data/auxiliary/order-type` instead. */
60
62
  function orderId(...args: Parameters<typeof inner.orderId>): ReturnType<typeof inner.orderId>;
61
63
  }
62
64
  export {};