warscript 0.0.1-dev.a45bc10 → 0.0.1-dev.a4646d1

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 (279) hide show
  1. package/attributes.d.ts +18 -0
  2. package/attributes.lua +32 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +117 -22
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/missile.d.ts +2 -2
  16. package/core/types/missile.lua +8 -2
  17. package/core/types/player.d.ts +16 -0
  18. package/core/types/player.lua +60 -15
  19. package/core/types/playerCamera.d.ts +2 -0
  20. package/core/types/playerCamera.lua +123 -5
  21. package/core/types/sound.d.ts +17 -24
  22. package/core/types/sound.lua +99 -24
  23. package/core/types/tileCell.d.ts +11 -1
  24. package/core/types/tileCell.lua +97 -0
  25. package/core/types/timer.d.ts +9 -8
  26. package/core/types/timer.lua +45 -23
  27. package/core/types/unit.lua +8 -0
  28. package/core/util.d.ts +1 -1
  29. package/core/util.lua +18 -1
  30. package/decl/index.d.ts +1 -0
  31. package/decl/native.d.ts +846 -790
  32. package/destroyable.d.ts +1 -0
  33. package/destroyable.lua +9 -0
  34. package/engine/ability.d.ts +1 -1
  35. package/engine/behavior.d.ts +24 -11
  36. package/engine/behavior.lua +233 -73
  37. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  38. package/engine/behaviour/ability/always-enabled.lua +31 -0
  39. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  40. package/engine/behaviour/ability/apply-buff.lua +36 -4
  41. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  42. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  43. package/engine/behaviour/ability/damage.d.ts +39 -11
  44. package/engine/behaviour/ability/damage.lua +83 -37
  45. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  46. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  47. package/engine/behaviour/ability/heal.d.ts +33 -6
  48. package/engine/behaviour/ability/heal.lua +89 -10
  49. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  50. package/engine/behaviour/ability/instant-impact.lua +4 -15
  51. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  52. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  53. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  54. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  55. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  56. package/engine/behaviour/ability/restore-mana.lua +29 -0
  57. package/engine/behaviour/ability.d.ts +29 -5
  58. package/engine/behaviour/ability.lua +154 -27
  59. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  60. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  61. package/engine/behaviour/unit.d.ts +48 -4
  62. package/engine/behaviour/unit.lua +292 -2
  63. package/engine/buff.d.ts +121 -46
  64. package/engine/buff.lua +567 -248
  65. package/engine/game-map.d.ts +7 -0
  66. package/engine/game-map.lua +32 -0
  67. package/engine/internal/ability.d.ts +23 -14
  68. package/engine/internal/ability.lua +129 -85
  69. package/engine/internal/item/ability.lua +162 -4
  70. package/engine/internal/item+owner.lua +12 -6
  71. package/engine/internal/item.d.ts +20 -19
  72. package/engine/internal/item.lua +191 -74
  73. package/engine/internal/mechanics/ability-duration.lua +1 -1
  74. package/engine/internal/mechanics/cast-ability.lua +6 -3
  75. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  76. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  77. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  78. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  79. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  80. package/engine/internal/misc/frame-coordinates.lua +21 -0
  81. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  82. package/engine/internal/misc/get-terrain-z.lua +11 -0
  83. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  84. package/engine/internal/misc/player-local-handle.lua +5 -0
  85. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  86. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  87. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  88. package/engine/internal/object-data/evasion-probability.lua +16 -0
  89. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  90. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  91. package/engine/internal/unit/ability.d.ts +45 -1
  92. package/engine/internal/unit/ability.lua +128 -17
  93. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  94. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  95. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  96. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  97. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  98. package/engine/internal/unit/allowed-targets.lua +9 -1
  99. package/engine/internal/unit/attributes.d.ts +17 -0
  100. package/engine/internal/unit/attributes.lua +46 -0
  101. package/engine/internal/unit/bonus.d.ts +13 -8
  102. package/engine/internal/unit/bonus.lua +33 -1
  103. package/engine/internal/unit/fly-height.d.ts +7 -0
  104. package/engine/internal/unit/fly-height.lua +20 -0
  105. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  106. package/engine/internal/unit/ignore-events-items.lua +5 -0
  107. package/engine/internal/unit/interrupts.d.ts +12 -0
  108. package/engine/internal/unit/interrupts.lua +28 -0
  109. package/engine/internal/unit/item.d.ts +24 -0
  110. package/engine/internal/unit/item.lua +78 -0
  111. package/engine/internal/unit/main-selected.d.ts +13 -0
  112. package/engine/internal/unit/main-selected.lua +36 -0
  113. package/engine/internal/unit/order.d.ts +20 -0
  114. package/engine/internal/unit/order.lua +136 -0
  115. package/engine/internal/unit/scale.d.ts +7 -0
  116. package/engine/internal/unit/scale.lua +20 -0
  117. package/engine/internal/unit+ability.lua +12 -3
  118. package/engine/internal/unit+damage.d.ts +2 -11
  119. package/engine/internal/unit+damage.lua +10 -14
  120. package/engine/internal/unit+spellSteal.lua +1 -2
  121. package/engine/internal/unit+transport.lua +4 -10
  122. package/engine/internal/unit-missile-launch.lua +70 -13
  123. package/engine/internal/unit.d.ts +96 -35
  124. package/engine/internal/unit.lua +694 -308
  125. package/engine/internal/utility.lua +12 -0
  126. package/engine/lightning.d.ts +12 -5
  127. package/engine/lightning.lua +48 -14
  128. package/engine/local-client.d.ts +9 -2
  129. package/engine/local-client.lua +112 -0
  130. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  131. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  132. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  133. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  134. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  135. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  136. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  137. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  138. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  139. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  140. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  141. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  142. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  143. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  144. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  145. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  146. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  147. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  148. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  149. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  150. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  151. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  152. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  153. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  154. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  155. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  156. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  157. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  158. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  159. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  160. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  161. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  162. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  163. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  164. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  165. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  166. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  168. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  169. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  170. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  171. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  172. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  173. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  174. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  175. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  176. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  177. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  178. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  179. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  180. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  181. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  182. package/engine/object-data/entry/ability-type/web.lua +52 -0
  183. package/engine/object-data/entry/ability-type.d.ts +19 -18
  184. package/engine/object-data/entry/ability-type.lua +93 -36
  185. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  186. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  187. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  188. package/engine/object-data/entry/buff-type.d.ts +6 -13
  189. package/engine/object-data/entry/buff-type.lua +13 -29
  190. package/engine/object-data/entry/destructible-type.d.ts +28 -3
  191. package/engine/object-data/entry/destructible-type.lua +155 -0
  192. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  193. package/engine/object-data/entry/item-type.d.ts +15 -2
  194. package/engine/object-data/entry/item-type.lua +93 -2
  195. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  196. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  197. package/engine/object-data/entry/sound-preset.lua +140 -0
  198. package/engine/object-data/entry/unit-type.d.ts +65 -5
  199. package/engine/object-data/entry/unit-type.lua +555 -62
  200. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  201. package/engine/object-data/entry/upgrade.d.ts +1 -2
  202. package/engine/object-data/entry/upgrade.lua +4 -4
  203. package/engine/object-data/entry.d.ts +18 -17
  204. package/engine/object-data/entry.lua +60 -32
  205. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  206. package/engine/object-field/ability.d.ts +28 -5
  207. package/engine/object-field/ability.lua +59 -5
  208. package/engine/object-field/unit.d.ts +72 -3
  209. package/engine/object-field/unit.lua +268 -7
  210. package/engine/object-field.d.ts +25 -7
  211. package/engine/object-field.lua +359 -116
  212. package/engine/random.d.ts +10 -0
  213. package/engine/random.lua +22 -0
  214. package/engine/standard/entries/buff-type.d.ts +3 -0
  215. package/engine/standard/entries/buff-type.lua +3 -0
  216. package/engine/standard/entries/sound-preset.d.ts +10 -0
  217. package/engine/standard/entries/sound-preset.lua +10 -0
  218. package/engine/standard/entries/unit-type.d.ts +42 -1
  219. package/engine/standard/entries/unit-type.lua +42 -1
  220. package/engine/standard/fields/ability.d.ts +5 -3
  221. package/engine/standard/fields/ability.lua +5 -3
  222. package/engine/standard/fields/unit.d.ts +12 -0
  223. package/engine/standard/fields/unit.lua +20 -0
  224. package/engine/synchronization.d.ts +11 -0
  225. package/engine/synchronization.lua +77 -0
  226. package/engine/text-tag.d.ts +36 -2
  227. package/engine/text-tag.lua +250 -10
  228. package/engine/unit.d.ts +8 -0
  229. package/engine/unit.lua +17 -2
  230. package/event.d.ts +2 -3
  231. package/event.lua +9 -5
  232. package/index.d.ts +1 -0
  233. package/index.lua +1 -0
  234. package/lualib_bundle.lua +146 -42
  235. package/math/vec2.d.ts +2 -9
  236. package/math.d.ts +0 -2
  237. package/net/socket.d.ts +7 -1
  238. package/net/socket.lua +45 -4
  239. package/network.d.ts +1 -0
  240. package/network.lua +3 -2
  241. package/objutil/ability.d.ts +0 -1
  242. package/objutil/buff.d.ts +0 -1
  243. package/objutil/buff.lua +12 -11
  244. package/objutil/object.d.ts +0 -1
  245. package/objutil/unit.d.ts +0 -1
  246. package/objutil/unit.lua +8 -0
  247. package/package.json +13 -14
  248. package/patch-lua.d.ts +0 -0
  249. package/patch-lua.lua +19 -0
  250. package/patch-lualib.lua +1 -1
  251. package/property.d.ts +55 -0
  252. package/property.lua +374 -0
  253. package/string.d.ts +30 -0
  254. package/string.lua +14 -0
  255. package/util/stream.d.ts +0 -1
  256. package/utility/arrays.d.ts +13 -5
  257. package/utility/arrays.lua +45 -3
  258. package/utility/bit-set.d.ts +0 -2
  259. package/utility/callback-array.d.ts +17 -0
  260. package/utility/callback-array.lua +61 -0
  261. package/utility/functions.d.ts +8 -0
  262. package/utility/functions.lua +13 -0
  263. package/utility/lazy.d.ts +2 -0
  264. package/utility/lazy.lua +14 -0
  265. package/utility/linked-map.d.ts +26 -0
  266. package/utility/linked-map.lua +66 -0
  267. package/utility/linked-set.d.ts +13 -3
  268. package/utility/linked-set.lua +31 -3
  269. package/utility/lua-maps.d.ts +16 -4
  270. package/utility/lua-maps.lua +53 -2
  271. package/utility/lua-sets.d.ts +3 -2
  272. package/utility/lua-sets.lua +7 -0
  273. package/utility/records.lua +20 -1
  274. package/utility/reflection.lua +11 -7
  275. package/utility/types.d.ts +4 -0
  276. package/core/mapbounds.d.ts +0 -8
  277. package/core/mapbounds.lua +0 -12
  278. package/core/types/order.d.ts +0 -25
  279. package/core/types/order.lua +0 -55
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Handle, HandleDestructor } from "../../core/types/handle";
4
3
  import { Player } from "../../core/types/player";
@@ -12,6 +11,10 @@ import { Ability, UnitAbility } from "./ability";
12
11
  import { Widget } from "../../core/types/widget";
13
12
  import type { UnitTypeId } from "../object-data/entry/unit-type";
14
13
  import { CombatClassification, CombatClassifications } from "../object-data/auxiliary/combat-classification";
14
+ import { MovementType } from "../object-data/auxiliary/movement-type";
15
+ import { UnitAttribute } from "../object-data/auxiliary/unit-attribute";
16
+ import { AttackType } from "../object-data/auxiliary/attack-type";
17
+ import { AttributesHolder } from "../../attributes";
15
18
  export type UnitClassification = junittype;
16
19
  export declare namespace UnitClassification {
17
20
  const STRUCTURE: junittype;
@@ -20,6 +23,7 @@ export declare namespace UnitClassification {
20
23
  const GROUND: junittype;
21
24
  const SUMMONED: junittype;
22
25
  const MECHANICAL: junittype;
26
+ const WORKER: junittype;
23
27
  const ANCIENT: junittype;
24
28
  const SUICIDAL: junittype;
25
29
  const TAUREN: junittype;
@@ -37,14 +41,18 @@ type AbilityDispatcherTable<T extends any[] = []> = {
37
41
  readonly [id: number]: Event<[Unit, Ability, ...T]>;
38
42
  };
39
43
  type AbilityEventDispatcher<T extends any[] = []> = Event<[Unit, Ability, ...T]> & AbilityDispatcherTable<T>;
40
- export interface DamagingEvent {
44
+ export interface DamagingEvent extends AttributesHolder {
41
45
  amount: number;
42
- attackType: jattacktype;
46
+ attackType: AttackType;
43
47
  damageType: jdamagetype;
44
48
  weaponType: jweapontype;
49
+ metadata: unknown;
45
50
  readonly isAttack: boolean;
51
+ readonly originalAmount: number;
52
+ readonly originalMetadata: unknown;
53
+ preventRetaliation(this: DamagingEvent): void;
46
54
  }
47
- export type DamageEvent = DamagingEvent & {
55
+ export type DamageEvent = Omit<DamagingEvent, "preventRetaliation"> & {
48
56
  preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
49
57
  };
50
58
  export type AttackDamageEvent = DamagingEvent & {
@@ -68,25 +76,61 @@ declare const modifiers: {
68
76
  speed: (unit: junit, value: number) => void;
69
77
  armor: (unit: junit, value: number) => void;
70
78
  };
71
- interface UnitWeapon {
79
+ export declare class UnitWeapon {
80
+ readonly unit: Unit;
72
81
  readonly index: 0 | 1;
73
- cooldown: number;
74
- projectileArc: number;
75
- projectileArt: string;
76
- projectileSpeed: number;
77
- attackPoint: number;
82
+ constructor(unit: Unit, index: 0 | 1);
83
+ get isEnabled(): boolean;
84
+ set isEnabled(isEnabled: boolean);
85
+ get cooldown(): number;
86
+ set cooldown(cooldown: number);
87
+ get damage(): [minimumDamage: number, maximumDamage: number];
88
+ set damage([minimumDamage, maximumDamage]: [number, number]);
89
+ get allowedTargetCombatClassifications(): CombatClassifications;
90
+ set allowedTargetCombatClassifications(allowedTargetCombatClassifications: CombatClassifications);
91
+ get damageBase(): number;
92
+ set damageBase(damageBase: number);
93
+ get damageDiceCount(): number;
94
+ set damageDiceCount(damageDiceCount: number);
95
+ get damageDiceSideCount(): number;
96
+ set damageDiceSideCount(damageDiceSideCount: number);
97
+ get range(): number;
98
+ set range(range: number);
99
+ get impactDelay(): number;
100
+ set impactDelay(impactDelay: number);
101
+ get missileArc(): number;
102
+ set missileArc(missileArc: number);
103
+ get missileModelPath(): string;
104
+ set missileModelPath(missileModelPath: string);
105
+ get missileSpeed(): number;
106
+ set missileSpeed(missileSpeed: number);
78
107
  }
79
108
  declare const enum UnitPropertyKey {
80
- IS_PAUSED = 100,
81
- STUN_COUNTER = 101,
82
- PREVENT_DEATH_HEALTH_BONUS = 102,
83
- IS_TEAM_GLOW_HIDDEN = 103
109
+ SYNC_ID = 100,
110
+ IS_PAUSED = 101,
111
+ STUN_COUNTER = 102,
112
+ FORCE_STUN_COUNTER = 103,
113
+ DELAY_HEALTH_CHECKS_COUNTER = 104,
114
+ DELAY_HEALTH_CHECKS_HEALTH_BONUS = 105,
115
+ PREVENT_DEATH_HEALTH_BONUS = 106,
116
+ IS_TEAM_GLOW_HIDDEN = 107,
117
+ LAST_X = 108,
118
+ LAST_Y = 109
84
119
  }
120
+ export type UnitSyncId = number & {
121
+ readonly __unitSyncId: unique symbol;
122
+ };
85
123
  export declare class Unit extends Handle<junit> {
124
+ readonly syncId: UnitSyncId;
86
125
  private [UnitPropertyKey.IS_PAUSED]?;
87
126
  private [UnitPropertyKey.STUN_COUNTER]?;
127
+ private [UnitPropertyKey.FORCE_STUN_COUNTER]?;
128
+ private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
129
+ private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
88
130
  private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
89
131
  private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
132
+ private [UnitPropertyKey.LAST_X]?;
133
+ private [UnitPropertyKey.LAST_Y]?;
90
134
  private _owner?;
91
135
  private _timeScale?;
92
136
  private events?;
@@ -107,6 +151,7 @@ export declare class Unit extends Handle<junit> {
107
151
  get isAlive(): boolean;
108
152
  get isDead(): boolean;
109
153
  get isIllusion(): boolean;
154
+ get isStunned(): boolean;
110
155
  get combatClassifications(): CombatClassifications;
111
156
  set combatClassifications(combatClassifications: CombatClassifications);
112
157
  hasCombatClassification(combatClassification: CombatClassification): boolean;
@@ -119,24 +164,23 @@ export declare class Unit extends Handle<junit> {
119
164
  isInRangeOf(unit: Unit, range: number): boolean;
120
165
  isAllyOf(unit: Unit): boolean;
121
166
  isEnemyOf(unit: Unit): boolean;
122
- playAnimation(animation: string, rarity?: jraritycontrol): void;
123
- playAnimation(animation: number): void;
167
+ playAnimation(...parameters: [animation: number] | [animation: string, rarity?: jraritycontrol]): void;
168
+ resetAnimation(): void;
124
169
  queueAnimation(animation: string): void;
125
170
  get weapons(): [UnitWeapon, UnitWeapon];
171
+ get firstWeapon(): UnitWeapon;
172
+ get secondWeapon(): UnitWeapon;
173
+ chooseWeapon(target: Unit): UnitWeapon | undefined;
126
174
  get level(): number;
127
175
  set level(v: number);
128
176
  get xp(): number;
129
177
  set xp(v: number);
130
- get strengthBase(): number;
131
- set strengthBase(strengthBase: number);
178
+ get primaryAttribute(): UnitAttribute;
179
+ set primaryAttribute(primaryAttribute: UnitAttribute);
132
180
  get strengthBonus(): number;
133
181
  get strength(): number;
134
- get agilityBase(): number;
135
- set agilityBase(agilityBase: number);
136
182
  get agilityBonus(): number;
137
183
  get agility(): number;
138
- get intelligenceBase(): number;
139
- set intelligenceBase(intelligenceBase: number);
140
184
  get intelligenceBonus(): number;
141
185
  get intelligence(): number;
142
186
  get name(): string;
@@ -148,6 +192,10 @@ export declare class Unit extends Handle<junit> {
148
192
  set color(color: PlayerColor);
149
193
  get acquisitionRange(): number;
150
194
  set acquisitionRange(v: number);
195
+ /**
196
+ * Keeps this unit alive even if its health becomes negative until the current game thread yields.
197
+ */
198
+ delayHealthChecks(): void;
151
199
  get maxHealth(): number;
152
200
  set maxHealth(maxHealth: number);
153
201
  get healthRegenerationRate(): number;
@@ -166,8 +214,6 @@ export declare class Unit extends Handle<junit> {
166
214
  set facing(v: number);
167
215
  get speed(): number;
168
216
  set speed(v: number);
169
- get flyHeight(): number;
170
- set flyHeight(v: number);
171
217
  get x(): number;
172
218
  set x(v: number);
173
219
  get y(): number;
@@ -191,17 +237,17 @@ export declare class Unit extends Handle<junit> {
191
237
  get isInvulnerable(): boolean;
192
238
  get vertexColor(): Color;
193
239
  set vertexColor(v: Color);
194
- get scale(): number;
195
- set scale(v: number);
196
240
  get timeScale(): number;
197
241
  set timeScale(v: number);
198
242
  get collisionSize(): number;
199
243
  get pathingCollisionRange(): number;
244
+ get movementType(): MovementType;
245
+ set movementType(movementType: MovementType);
200
246
  set pathing(v: boolean);
201
247
  isSelected(player: Player): boolean;
202
248
  explode(): void;
203
249
  kill(): void;
204
- revive(pos: Vec2, doEffect: boolean): void;
250
+ revive(x: number, y: number, doEffect?: boolean): void;
205
251
  healTarget(target: Widget, amount: number): void;
206
252
  useItem(item: Item): boolean;
207
253
  issueImmediateOrder(order: number): boolean;
@@ -214,17 +260,17 @@ export declare class Unit extends Handle<junit> {
214
260
  dropItemTarget(item: Item, target: Widget): boolean;
215
261
  dropItemSlot(item: Item, slot: number): boolean;
216
262
  itemInSlot(slot: number): Item | null;
217
- addAbility(abilityId: number): UnitAbility | null;
263
+ addAbility(abilityId: number): UnitAbility | undefined;
218
264
  makeAbilityPermanent(abilityId: number, permanent: true): boolean;
219
265
  setAbilityLevel(abilityId: number, level: number): number;
220
266
  getAbilityLevel(abilityId: number): number;
221
267
  hasAbility(abilityId: number): boolean;
222
- getAbilityById(abilityId: number): UnitAbility | undefined;
223
- removeAbility(abilityId: number): boolean;
268
+ getAbility(abilityId: number): UnitAbility | undefined;
269
+ removeAbility(abilityTypeId: number): boolean;
224
270
  hideAbility(abilityId: number, flag: boolean): void;
271
+ getAbilityRemainingCooldown(abilityId: number): number;
225
272
  startAbilityCooldown(abilityId: number, cooldown: number): void;
226
273
  endAbilityCooldown(abilityId: number): void;
227
- interruptAttack(): void;
228
274
  interruptCast(abilityId: number): void;
229
275
  getDistanceTo(target: Unit | Vec2): number;
230
276
  getCollisionDistanceTo(...target: [Unit] | [targetX: number, targetY: number]): number;
@@ -238,6 +284,8 @@ export declare class Unit extends Handle<junit> {
238
284
  unpauseEx(): void;
239
285
  incrementStunCounter(): void;
240
286
  decrementStunCounter(): void;
287
+ incrementForceStunCounter(): void;
288
+ decrementForceStunCounter(): void;
241
289
  set waygateActive(v: boolean);
242
290
  get waygateActive(): boolean;
243
291
  set waygateDestination(v: Vec2);
@@ -246,6 +294,7 @@ export declare class Unit extends Handle<junit> {
246
294
  get onUnitInRange(): Record<number, Event<[Unit]>>;
247
295
  get onManaEqual(): Record<number, Event<[Unit, number]>>;
248
296
  get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
297
+ get targetAcquiredEvent(): Event;
249
298
  get onSelect(): Event;
250
299
  get onDeselect(): Event;
251
300
  get onImmediateOrder(): Event<[number]>;
@@ -260,7 +309,8 @@ export declare class Unit extends Handle<junit> {
260
309
  static getInRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
261
310
  static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
262
311
  static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
263
- static getSelectionOf(player: Player): Unit[];
312
+ static getSelectionOf(player: Player, target?: Unit[]): Unit[];
313
+ static readonly levelChangedEvent: UnitTriggerEvent<[]>;
264
314
  static readonly deathEvent: UnitTriggerEvent<[Unit]>;
265
315
  static readonly onDecay: UnitTriggerEvent<[]>;
266
316
  static readonly onResurrect: InitializingEvent<[Unit], void>;
@@ -295,9 +345,18 @@ export declare class Unit extends Handle<junit> {
295
345
  static readonly autoAttackStartEvent: UnitTriggerEvent<[Unit]>;
296
346
  static readonly onDamaging: Event<[source: Unit | undefined, target: Unit, event: DamagingEvent]>;
297
347
  static readonly onDamage: InitializingEvent<[source: Unit | undefined, target: Unit, event: DamageEvent], jtrigger>;
298
- static onItemDrop: UnitTriggerEvent<[Item]>;
299
- static onItemPickup: UnitTriggerEvent<[Item]>;
300
- static onItemUse: UnitTriggerEvent<[Item]>;
348
+ static itemDroppedEvent: UnitTriggerEvent<[Item]>;
349
+ static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
350
+ static itemUsedEvent: UnitTriggerEvent<[Item]>;
351
+ static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
352
+ static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
353
+ static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
354
+ static get itemMoveOrderEvent(): Event<[
355
+ unit: Unit,
356
+ item: Item,
357
+ slotFrom: 0 | 1 | 2 | 3 | 4 | 5,
358
+ slotTo: 0 | 1 | 2 | 3 | 4 | 5
359
+ ]>;
301
360
  static get onCreate(): EventDispatcher<[Unit], [Unit]>;
302
361
  static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
303
362
  getField(field: junitintegerfield | junitrealfield): number;
@@ -308,5 +367,7 @@ export declare class Unit extends Handle<junit> {
308
367
  setField(field: junitbooleanfield, value: boolean): boolean;
309
368
  setField(field: junitstringfield, value: string): boolean;
310
369
  toString(): string;
370
+ static getBySyncId(syncId: UnitSyncId): Unit | undefined;
371
+ static synchronize: (player: Player, object: Unit | undefined) => Promise<Unit | undefined>;
311
372
  }
312
373
  export {};