warscript 0.0.1-dev.ea69747 → 0.0.1-dev.ebee5b2

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 (124) hide show
  1. package/attributes.d.ts +12 -0
  2. package/attributes.lua +16 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/core/types/frame.d.ts +4 -1
  6. package/core/types/frame.lua +22 -1
  7. package/core/types/group.d.ts +0 -1
  8. package/core/types/handle.d.ts +2 -1
  9. package/core/types/handle.lua +5 -0
  10. package/core/types/image.d.ts +0 -1
  11. package/core/types/missile.d.ts +2 -2
  12. package/core/types/missile.lua +8 -2
  13. package/core/types/unit.lua +8 -0
  14. package/decl/index.d.ts +1 -0
  15. package/engine/ability.d.ts +1 -1
  16. package/engine/behavior.d.ts +10 -10
  17. package/engine/behaviour/ability/apply-buff.d.ts +3 -5
  18. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  19. package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
  20. package/engine/behaviour/ability/damage.d.ts +33 -11
  21. package/engine/behaviour/ability/damage.lua +89 -31
  22. package/engine/behaviour/ability/heal.d.ts +33 -6
  23. package/engine/behaviour/ability/heal.lua +89 -10
  24. package/engine/behaviour/ability/instant-impact.lua +4 -0
  25. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  26. package/engine/behaviour/ability/restore-mana.lua +29 -0
  27. package/engine/behaviour/ability.d.ts +8 -1
  28. package/engine/behaviour/ability.lua +62 -0
  29. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  30. package/engine/behaviour/unit.d.ts +8 -2
  31. package/engine/behaviour/unit.lua +27 -0
  32. package/engine/buff.d.ts +62 -20
  33. package/engine/buff.lua +247 -72
  34. package/engine/game-map.d.ts +7 -0
  35. package/engine/game-map.lua +32 -0
  36. package/engine/internal/ability.d.ts +1 -1
  37. package/engine/internal/item+owner.lua +2 -2
  38. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  39. package/engine/internal/mechanics/ability-duration.lua +2 -0
  40. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  41. package/engine/internal/mechanics/cast-ability.lua +86 -0
  42. package/engine/internal/unit/bonus.d.ts +9 -8
  43. package/engine/internal/unit/bonus.lua +6 -1
  44. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  45. package/engine/internal/unit/detach-missiles.lua +30 -0
  46. package/engine/internal/unit+ability.lua +2 -2
  47. package/engine/internal/unit+transport.lua +4 -10
  48. package/engine/internal/unit-missile-launch.lua +1 -1
  49. package/engine/internal/unit.d.ts +59 -13
  50. package/engine/internal/unit.lua +306 -93
  51. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  52. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  53. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  54. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  55. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  56. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  57. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  58. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  59. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  60. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  61. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  62. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  63. package/engine/object-data/entry/ability-type.d.ts +1 -1
  64. package/engine/object-data/entry/ability-type.lua +1 -0
  65. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  66. package/engine/object-data/entry/buff-type/applicable.lua +27 -71
  67. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  68. package/engine/object-data/entry/buff-type.d.ts +0 -1
  69. package/engine/object-data/entry/destructible-type.d.ts +0 -1
  70. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  71. package/engine/object-data/entry/item-type.d.ts +0 -1
  72. package/engine/object-data/entry/lightning-type.d.ts +0 -1
  73. package/engine/object-data/entry/unit-type.d.ts +42 -2
  74. package/engine/object-data/entry/unit-type.lua +378 -50
  75. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  76. package/engine/object-data/entry/upgrade.d.ts +0 -1
  77. package/engine/object-data/entry.d.ts +2 -3
  78. package/engine/object-field/ability.d.ts +25 -6
  79. package/engine/object-field/ability.lua +56 -0
  80. package/engine/object-field/unit.d.ts +1 -0
  81. package/engine/object-field/unit.lua +3 -0
  82. package/engine/object-field.d.ts +6 -4
  83. package/engine/object-field.lua +38 -12
  84. package/engine/random.d.ts +1 -0
  85. package/engine/random.lua +9 -0
  86. package/engine/standard/entries/unit-type.d.ts +42 -1
  87. package/engine/standard/entries/unit-type.lua +42 -1
  88. package/engine/standard/fields/ability.d.ts +1 -1
  89. package/engine/standard/fields/ability.lua +1 -1
  90. package/engine/unit.d.ts +1 -0
  91. package/engine/unit.lua +10 -2
  92. package/event.d.ts +2 -3
  93. package/event.lua +9 -5
  94. package/exception.d.ts +2 -0
  95. package/exception.lua +4 -0
  96. package/global/vec2.lua +1 -0
  97. package/lualib_bundle.lua +146 -42
  98. package/math/vec2.d.ts +2 -9
  99. package/math.d.ts +0 -2
  100. package/net/socket.d.ts +7 -1
  101. package/net/socket.lua +45 -4
  102. package/network.d.ts +1 -0
  103. package/network.lua +3 -2
  104. package/objutil/ability.d.ts +0 -1
  105. package/objutil/buff.d.ts +0 -1
  106. package/objutil/buff.lua +1 -1
  107. package/objutil/object.d.ts +0 -1
  108. package/objutil/unit.d.ts +0 -1
  109. package/package.json +13 -14
  110. package/property.d.ts +55 -0
  111. package/property.lua +374 -0
  112. package/string.d.ts +30 -0
  113. package/string.lua +14 -0
  114. package/util/stream.d.ts +0 -1
  115. package/utility/arrays.d.ts +4 -5
  116. package/utility/arrays.lua +4 -1
  117. package/utility/bit-set.d.ts +0 -2
  118. package/utility/linked-set.d.ts +31 -9
  119. package/utility/linked-set.lua +21 -2
  120. package/utility/lua-maps.d.ts +1 -2
  121. package/utility/lua-sets.d.ts +1 -2
  122. package/utility/types.d.ts +3 -2
  123. package/core/mapbounds.d.ts +0 -8
  124. package/core/mapbounds.lua +0 -12
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Unit } from "../unit";
4
3
  import { AbilityTypeId } from "../../object-data/entry/ability-type";
@@ -9,7 +8,8 @@ export type UnitBonusId<Brand extends string = any> = number & {
9
8
  export type UnitArmorBonusId = UnitBonusId<"armor">;
10
9
  export type UnitAttackSpeedFactorBonusId = UnitBonusId<"attackSpeedFactor">;
11
10
  export type UnitMovementSpeedFactorBonusId = UnitBonusId<"movementSpeedFactor">;
12
- export type UnitDamageBonusId = UnitBonusId<"damage">;
11
+ export type UnitAutoAttackDamageBonusId = UnitBonusId<"autoAttackDamage">;
12
+ export type UnitDamageFactorBonusId = UnitBonusId<"damageFactor">;
13
13
  export type UnitReceivedDamageFactorBonusId = UnitBonusId<"receivedDamageFactor">;
14
14
  export type UnitBonusType<Id extends UnitBonusId = UnitBonusId> = ({
15
15
  abilityTypeId: AbilityTypeId;
@@ -31,11 +31,12 @@ export declare namespace UnitBonusType {
31
31
  const ARMOR: UnitBonusType<UnitArmorBonusId>;
32
32
  const ATTACK_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
33
33
  const MOVEMENT_SPEED_FACTOR: UnitBonusType<UnitAttackSpeedFactorBonusId>;
34
- const DAMAGE: UnitBonusType<UnitDamageBonusId>;
34
+ const AUTO_ATTACK_DAMAGE: UnitBonusType<UnitAutoAttackDamageBonusId>;
35
+ const DAMAGE_FACTOR: UnitBonusType<UnitReceivedDamageFactorBonusId>;
35
36
  const RECEIVED_DAMAGE_FACTOR: UnitBonusType<UnitReceivedDamageFactorBonusId>;
36
37
  }
37
- export declare const addUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, value: number) => Id;
38
- export declare const removeUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => boolean;
39
- export declare const updateUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id, value: number) => boolean;
40
- export declare const addOrUpdateOrRemoveUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id | undefined, value: number) => Id | undefined;
41
- export declare const getUnitBonus: <Id extends UnitBonusId<any>>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => number;
38
+ export declare const addUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, value: number) => Id;
39
+ export declare const removeUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => boolean;
40
+ export declare const updateUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id, value: number) => boolean;
41
+ export declare const addOrUpdateOrRemoveUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id | undefined, value: number) => Id | undefined;
42
+ export declare const getUnitBonus: <Id extends UnitBonusId>(unit: Unit, bonusType: UnitBonusType<Id>, id: Id) => number;
@@ -21,6 +21,7 @@ local AUTO_ATTACK_DAMAGE_INCREASE_DUMMY_ABILITY_TYPE_ID = ____auto_2Dattack_2Dda
21
21
  local ____movement_2Dspeed_2Dincrease_2Dfactor = require("engine.internal.object-data.movement-speed-increase-factor")
22
22
  local MOVEMENT_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ____movement_2Dspeed_2Dincrease_2Dfactor.MOVEMENT_SPEED_INCREASE_FACTOR_ABILITY_FIELD
23
23
  local MOVEMENT_SPEED_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = ____movement_2Dspeed_2Dincrease_2Dfactor.MOVEMENT_SPEED_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID
24
+ local damageFactorByUnit = {}
24
25
  local receivedDamageFactorByUnit = {}
25
26
  ____exports.UnitBonusType = {}
26
27
  local UnitBonusType = ____exports.UnitBonusType
@@ -46,13 +47,14 @@ do
46
47
  reduce = sum,
47
48
  initialValue = 0
48
49
  }
49
- UnitBonusType.DAMAGE = {
50
+ UnitBonusType.AUTO_ATTACK_DAMAGE = {
50
51
  abilityTypeId = AUTO_ATTACK_DAMAGE_INCREASE_DUMMY_ABILITY_TYPE_ID,
51
52
  field = AUTO_ATTACK_DAMAGE_INCREASE_ABILITY_FIELD,
52
53
  integer = false,
53
54
  reduce = sum,
54
55
  initialValue = 0
55
56
  }
57
+ UnitBonusType.DAMAGE_FACTOR = {reduce = product, valueByUnit = damageFactorByUnit, initialValue = 1}
56
58
  UnitBonusType.RECEIVED_DAMAGE_FACTOR = {reduce = product, valueByUnit = receivedDamageFactorByUnit, initialValue = 1}
57
59
  end
58
60
  local bonusesByUnitByBonusType = {}
@@ -180,6 +182,9 @@ end
180
182
  Unit.onDamage:addListener(
181
183
  4,
182
184
  function(source, target, event)
185
+ if source ~= nil and damageFactorByUnit[source] ~= nil then
186
+ event.amount = event.amount * damageFactorByUnit[source]
187
+ end
183
188
  if receivedDamageFactorByUnit[target] ~= nil then
184
189
  event.amount = event.amount * receivedDamageFactorByUnit[target]
185
190
  end
@@ -0,0 +1,7 @@
1
+ /** @noSelfInFile */
2
+ declare module "../unit" {
3
+ interface Unit {
4
+ detachMissiles(this: Unit): void;
5
+ }
6
+ }
7
+ export {};
@@ -0,0 +1,30 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.internal.unit")
3
+ local Unit = ____unit.Unit
4
+ local ____cast_2Dability = require("engine.internal.mechanics.cast-ability")
5
+ local castAbility = ____cast_2Dability.castAbility
6
+ local ____blink = require("engine.object-data.entry.ability-type.blink")
7
+ local BlinkAbilityType = ____blink.BlinkAbilityType
8
+ local ____math = require("math")
9
+ local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
10
+ local getUnitX = GetUnitX
11
+ local getUnitY = GetUnitY
12
+ local setUnitX = SetUnitX
13
+ local setUnitY = SetUnitY
14
+ local BLINK_ABILITY_TYPE_ID = compiletime(function()
15
+ local abilityType = BlinkAbilityType:create()
16
+ abilityType.minimumRange = 0
17
+ abilityType.maximumRange = MAXIMUM_INTEGER
18
+ abilityType.manaCost = 0
19
+ abilityType.cooldown = 0
20
+ return abilityType.id
21
+ end)
22
+ Unit.prototype.detachMissiles = function(self)
23
+ local nativeUnit = self.handle
24
+ local x = getUnitX(nativeUnit)
25
+ local y = getUnitY(nativeUnit)
26
+ castAbility(nativeUnit, BLINK_ABILITY_TYPE_ID)
27
+ setUnitX(nativeUnit, x)
28
+ setUnitY(nativeUnit, y)
29
+ end
30
+ return ____exports
@@ -40,7 +40,7 @@ ItemAbility.onCreate:addListener(
40
40
  end
41
41
  end
42
42
  )
43
- Unit.onItemPickup:addListener(
43
+ Unit.itemPickedUpEvent:addListener(
44
44
  0,
45
45
  function(unit, item)
46
46
  for ____, ability in ipairs(item.abilities) do
@@ -48,7 +48,7 @@ Unit.onItemPickup:addListener(
48
48
  end
49
49
  end
50
50
  )
51
- Unit.onItemDrop:addListener(
51
+ Unit.itemDroppedEvent:addListener(
52
52
  4,
53
53
  function(unit, item)
54
54
  for ____, ability in ipairs(item.abilities) do
@@ -6,9 +6,8 @@ local ____unit = require("engine.internal.unit")
6
6
  local Unit = ____unit.Unit
7
7
  local ____event = require("event")
8
8
  local Event = ____event.Event
9
- local ____mapbounds = require("core.mapbounds")
10
- local boundMax = ____mapbounds.boundMax
11
- local boundRegion = ____mapbounds.boundRegion
9
+ local ____game_2Dmap = require("engine.game-map")
10
+ local GameMap = ____game_2Dmap.GameMap
12
11
  local eventInvoke = Event.invoke
13
12
  local tableRemove = table.remove
14
13
  local ____assert = _G.assert
@@ -58,8 +57,8 @@ triggerAddCondition(
58
57
  deboard(unit)
59
58
  end
60
59
  if not unitAlive(handle) then
61
- unit.x = boundMax.x
62
- unit.y = boundMax.y
60
+ unit.x = GameMap.worldBoundsRect.maxX
61
+ unit.y = GameMap.worldBoundsRect.maxY
63
62
  end
64
63
  local transport = Unit:of(getTransportUnit())
65
64
  transportByUnit[unit] = transport
@@ -68,11 +67,6 @@ triggerAddCondition(
68
67
  eventInvoke(onBoardEvent, unit, transport)
69
68
  end)
70
69
  )
71
- boundRegion.onUnitEnter:addListener(function(unit)
72
- if transportByUnit[unit] ~= nil and not isUnitLoaded(unit.handle) then
73
- deboard(unit)
74
- end
75
- end)
76
70
  Unit.deathEvent:addListener(function(unit)
77
71
  if transportByUnit[unit] ~= nil then
78
72
  deboard(unit)
@@ -25,7 +25,7 @@ local function timerCallback(source, target)
25
25
  Event.invoke(autoAttackFinishEvent, source, target)
26
26
  end
27
27
  Unit.autoAttackStartEvent:addListener(function(source, target)
28
- local attackPoint = source.weapons[1].attackPoint
28
+ local attackPoint = source.weapons[1].impactDelay
29
29
  local timer = Timer:simple(attackPoint, timerCallback, source, target)
30
30
  eventTimerByUnit[source] = timer
31
31
  end)
@@ -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";
@@ -43,6 +42,7 @@ export interface DamagingEvent {
43
42
  damageType: jdamagetype;
44
43
  weaponType: jweapontype;
45
44
  readonly isAttack: boolean;
45
+ readonly originalAmount: number;
46
46
  }
47
47
  export type DamageEvent = DamagingEvent & {
48
48
  preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
@@ -68,23 +68,60 @@ declare const modifiers: {
68
68
  speed: (unit: junit, value: number) => void;
69
69
  armor: (unit: junit, value: number) => void;
70
70
  };
71
- interface UnitWeapon {
71
+ export interface UnitItems extends ReadonlyArray<Item | undefined> {
72
+ readonly length: 0 | 1 | 2 | 3 | 4 | 5 | 6;
73
+ [0]: Item | undefined;
74
+ [1]: Item | undefined;
75
+ [2]: Item | undefined;
76
+ [3]: Item | undefined;
77
+ [4]: Item | undefined;
78
+ [5]: Item | undefined;
79
+ }
80
+ export declare class UnitItems {
81
+ private readonly handle;
82
+ constructor(handle: junit);
83
+ protected __newindex(slot: number, item: Item | undefined): void;
84
+ protected __index(slot: number): Item | undefined;
85
+ protected __len(): number;
86
+ }
87
+ export declare class UnitWeapon {
88
+ readonly unit: Unit;
72
89
  readonly index: 0 | 1;
73
- cooldown: number;
74
- projectileArc: number;
75
- projectileArt: string;
76
- projectileSpeed: number;
77
- attackPoint: number;
90
+ constructor(unit: Unit, index: 0 | 1);
91
+ get cooldown(): number;
92
+ set cooldown(cooldown: number);
93
+ get damage(): [minimumDamage: number, maximumDamage: number];
94
+ set damage([minimumDamage, maximumDamage]: [number, number]);
95
+ get damageBase(): number;
96
+ set damageBase(damageBase: number);
97
+ get damageDiceCount(): number;
98
+ set damageDiceCount(damageDiceCount: number);
99
+ get damageDiceSideCount(): number;
100
+ set damageDiceSideCount(damageDiceSideCount: number);
101
+ get range(): number;
102
+ set range(range: number);
103
+ get impactDelay(): number;
104
+ set impactDelay(impactDelay: number);
105
+ get missileArc(): number;
106
+ set missileArc(missileArc: number);
107
+ get missileModelPath(): string;
108
+ set missileModelPath(missileModelPath: string);
109
+ get missileSpeed(): number;
110
+ set missileSpeed(missileSpeed: number);
78
111
  }
79
112
  declare const enum UnitPropertyKey {
80
113
  IS_PAUSED = 100,
81
114
  STUN_COUNTER = 101,
82
- PREVENT_DEATH_HEALTH_BONUS = 102,
83
- IS_TEAM_GLOW_HIDDEN = 103
115
+ DELAY_HEALTH_CHECKS_COUNTER = 102,
116
+ DELAY_HEALTH_CHECKS_HEALTH_BONUS = 103,
117
+ PREVENT_DEATH_HEALTH_BONUS = 104,
118
+ IS_TEAM_GLOW_HIDDEN = 105
84
119
  }
85
120
  export declare class Unit extends Handle<junit> {
86
121
  private [UnitPropertyKey.IS_PAUSED]?;
87
122
  private [UnitPropertyKey.STUN_COUNTER]?;
123
+ private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
124
+ private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
88
125
  private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
89
126
  private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
90
127
  private _owner?;
@@ -123,6 +160,8 @@ export declare class Unit extends Handle<junit> {
123
160
  playAnimation(animation: number): void;
124
161
  queueAnimation(animation: string): void;
125
162
  get weapons(): [UnitWeapon, UnitWeapon];
163
+ get firstWeapon(): UnitWeapon;
164
+ get secondWeapon(): UnitWeapon;
126
165
  get level(): number;
127
166
  set level(v: number);
128
167
  get xp(): number;
@@ -148,6 +187,10 @@ export declare class Unit extends Handle<junit> {
148
187
  set color(color: PlayerColor);
149
188
  get acquisitionRange(): number;
150
189
  set acquisitionRange(v: number);
190
+ /**
191
+ * Keeps this unit alive even if its health becomes negative until the current game thread yields.
192
+ */
193
+ delayHealthChecks(): void;
151
194
  get maxHealth(): number;
152
195
  set maxHealth(maxHealth: number);
153
196
  get healthRegenerationRate(): number;
@@ -201,7 +244,7 @@ export declare class Unit extends Handle<junit> {
201
244
  isSelected(player: Player): boolean;
202
245
  explode(): void;
203
246
  kill(): void;
204
- revive(pos: Vec2, doEffect: boolean): void;
247
+ revive(x: number, y: number, doEffect?: boolean): void;
205
248
  healTarget(target: Widget, amount: number): void;
206
249
  useItem(item: Item): boolean;
207
250
  issueImmediateOrder(order: number): boolean;
@@ -214,6 +257,7 @@ export declare class Unit extends Handle<junit> {
214
257
  dropItemTarget(item: Item, target: Widget): boolean;
215
258
  dropItemSlot(item: Item, slot: number): boolean;
216
259
  itemInSlot(slot: number): Item | null;
260
+ get items(): UnitItems;
217
261
  addAbility(abilityId: number): UnitAbility | null;
218
262
  makeAbilityPermanent(abilityId: number, permanent: true): boolean;
219
263
  setAbilityLevel(abilityId: number, level: number): number;
@@ -222,6 +266,7 @@ export declare class Unit extends Handle<junit> {
222
266
  getAbilityById(abilityId: number): UnitAbility | undefined;
223
267
  removeAbility(abilityId: number): boolean;
224
268
  hideAbility(abilityId: number, flag: boolean): void;
269
+ getAbilityRemainingCooldown(abilityId: number): number;
225
270
  startAbilityCooldown(abilityId: number, cooldown: number): void;
226
271
  endAbilityCooldown(abilityId: number): void;
227
272
  interruptAttack(): void;
@@ -295,9 +340,10 @@ export declare class Unit extends Handle<junit> {
295
340
  static readonly autoAttackStartEvent: UnitTriggerEvent<[Unit]>;
296
341
  static readonly onDamaging: Event<[source: Unit | undefined, target: Unit, event: DamagingEvent]>;
297
342
  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]>;
343
+ static itemDroppedEvent: UnitTriggerEvent<[Item]>;
344
+ static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
345
+ static itemUsedEvent: UnitTriggerEvent<[Item]>;
346
+ static itemStackedEvent: UnitTriggerEvent<[Item]>;
301
347
  static get onCreate(): EventDispatcher<[Unit], [Unit]>;
302
348
  static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
303
349
  getField(field: junitintegerfield | junitrealfield): number;