warscript 0.0.1-dev.a73c979 → 0.0.1-dev.a856ae3

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 (153) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/types/frame.lua +71 -22
  4. package/core/types/item.d.ts +1 -0
  5. package/core/types/item.lua +1 -0
  6. package/core/types/player.d.ts +16 -0
  7. package/core/types/player.lua +60 -15
  8. package/core/types/playerCamera.d.ts +2 -0
  9. package/core/types/playerCamera.lua +123 -5
  10. package/core/types/sound.lua +1 -1
  11. package/core/types/tileCell.d.ts +11 -1
  12. package/core/types/tileCell.lua +97 -0
  13. package/core/types/timer.d.ts +3 -1
  14. package/core/types/timer.lua +27 -2
  15. package/decl/native.d.ts +6 -4
  16. package/destroyable.d.ts +1 -0
  17. package/destroyable.lua +9 -0
  18. package/engine/behavior.d.ts +12 -1
  19. package/engine/behavior.lua +199 -65
  20. package/engine/behaviour/ability/apply-buff.lua +4 -4
  21. package/engine/behaviour/ability/damage.d.ts +3 -0
  22. package/engine/behaviour/ability/damage.lua +8 -2
  23. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  24. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  25. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  26. package/engine/behaviour/ability/restore-mana.lua +6 -6
  27. package/engine/behaviour/ability.d.ts +11 -6
  28. package/engine/behaviour/ability.lua +31 -1
  29. package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
  30. package/engine/behaviour/unit/stun-immunity.lua +17 -7
  31. package/engine/behaviour/unit.d.ts +15 -5
  32. package/engine/behaviour/unit.lua +126 -22
  33. package/engine/buff.d.ts +65 -21
  34. package/engine/buff.lua +362 -179
  35. package/engine/internal/ability.d.ts +3 -1
  36. package/engine/internal/ability.lua +26 -9
  37. package/engine/internal/item/fields.d.ts +12 -0
  38. package/engine/internal/item/fields.lua +33 -0
  39. package/engine/internal/item+owner.lua +12 -6
  40. package/engine/internal/item.d.ts +9 -15
  41. package/engine/internal/item.lua +46 -69
  42. package/engine/internal/mechanics/cast-ability.lua +6 -3
  43. package/engine/internal/misc/frame-coordinates.lua +21 -0
  44. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  45. package/engine/internal/misc/get-terrain-z.lua +11 -0
  46. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  47. package/engine/internal/misc/player-local-handle.lua +5 -0
  48. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  49. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  50. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  51. package/engine/internal/object-data/health-bonus.lua +16 -0
  52. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  53. package/engine/internal/object-data/mana-bonus.lua +16 -0
  54. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  55. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  56. package/engine/internal/unit/ability.d.ts +14 -14
  57. package/engine/internal/unit/ability.lua +72 -45
  58. package/engine/internal/unit/attributes.d.ts +17 -0
  59. package/engine/internal/unit/attributes.lua +46 -0
  60. package/engine/internal/unit/bonus.d.ts +6 -0
  61. package/engine/internal/unit/bonus.lua +33 -3
  62. package/engine/internal/unit/fly-height.d.ts +7 -0
  63. package/engine/internal/unit/fly-height.lua +20 -0
  64. package/engine/internal/unit/interrupts.d.ts +12 -0
  65. package/engine/internal/unit/interrupts.lua +28 -0
  66. package/engine/internal/unit/main-selected.lua +12 -27
  67. package/engine/internal/unit/range-event.d.ts +12 -0
  68. package/engine/internal/unit/range-event.lua +90 -0
  69. package/engine/internal/unit/scale.d.ts +7 -0
  70. package/engine/internal/unit/scale.lua +20 -0
  71. package/engine/internal/unit+ability.lua +10 -1
  72. package/engine/internal/unit+bonus.lua +3 -3
  73. package/engine/internal/unit-missile-launch.lua +52 -14
  74. package/engine/internal/unit.d.ts +19 -24
  75. package/engine/internal/unit.lua +179 -200
  76. package/engine/local-client.d.ts +7 -0
  77. package/engine/local-client.lua +86 -1
  78. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  79. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  80. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  81. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  82. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  83. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  84. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  85. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  86. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  87. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  88. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  89. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  90. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  91. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  92. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  93. package/engine/object-data/entry/ability-type.d.ts +2 -0
  94. package/engine/object-data/entry/ability-type.lua +89 -8
  95. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  96. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  97. package/engine/object-data/entry/destructible-type.lua +155 -0
  98. package/engine/object-data/entry/unit-type.d.ts +15 -2
  99. package/engine/object-data/entry/unit-type.lua +135 -33
  100. package/engine/object-field/ability.d.ts +3 -3
  101. package/engine/object-field/ability.lua +9 -8
  102. package/engine/object-field/item.d.ts +22 -0
  103. package/engine/object-field/item.lua +118 -0
  104. package/engine/object-field/unit.d.ts +20 -5
  105. package/engine/object-field/unit.lua +61 -0
  106. package/engine/object-field.d.ts +12 -4
  107. package/engine/object-field.lua +273 -126
  108. package/engine/random.d.ts +10 -0
  109. package/engine/random.lua +21 -0
  110. package/engine/standard/fields/ability.d.ts +2 -2
  111. package/engine/standard/fields/ability.lua +2 -2
  112. package/engine/standard/fields/item.d.ts +4 -0
  113. package/engine/standard/fields/item.lua +6 -0
  114. package/engine/standard/fields/unit.d.ts +11 -3
  115. package/engine/standard/fields/unit.lua +15 -2
  116. package/engine/synchronization.d.ts +11 -0
  117. package/engine/synchronization.lua +77 -0
  118. package/engine/text-tag.d.ts +1 -1
  119. package/engine/text-tag.lua +92 -17
  120. package/engine/unit.d.ts +5 -0
  121. package/engine/unit.lua +5 -0
  122. package/lualib_bundle.lua +1 -1
  123. package/math.d.ts +2 -0
  124. package/math.lua +14 -0
  125. package/net/socket.lua +1 -1
  126. package/objutil/buff.lua +10 -8
  127. package/objutil/object.lua +1 -1
  128. package/operation.lua +1 -4
  129. package/package.json +5 -5
  130. package/patch-lua.lua +15 -0
  131. package/patch-lualib.lua +1 -1
  132. package/utility/arrays.d.ts +1 -0
  133. package/utility/arrays.lua +8 -0
  134. package/utility/callback-array.d.ts +17 -0
  135. package/utility/callback-array.lua +61 -0
  136. package/utility/functions.d.ts +2 -0
  137. package/utility/functions.lua +7 -0
  138. package/utility/linked-map.d.ts +35 -0
  139. package/utility/linked-map.lua +107 -0
  140. package/utility/linked-set.d.ts +4 -1
  141. package/utility/linked-set.lua +46 -1
  142. package/utility/lua-maps.d.ts +11 -2
  143. package/utility/lua-maps.lua +33 -2
  144. package/utility/lua-sets.d.ts +1 -0
  145. package/utility/lua-sets.lua +4 -0
  146. package/utility/records.lua +20 -1
  147. package/utility/types.d.ts +3 -0
  148. package/utility/unordered-map.d.ts +27 -0
  149. package/utility/unordered-map.lua +99 -0
  150. /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
  151. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  152. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  153. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,5 +1,5 @@
1
1
  /** @noSelfInFile */
2
- import { Handle } from "../../core/types/handle";
2
+ import { Handle, HandleDestructor } from "../../core/types/handle";
3
3
  import { Event } from "../../event";
4
4
  import type { Item } from "../../core/types/item";
5
5
  import type { Unit } from "./unit";
@@ -67,6 +67,7 @@ export declare class UnitAbility extends Ability {
67
67
  get cooldownRemaining(): number;
68
68
  set cooldownRemaining(cooldownRemaining: number);
69
69
  interruptCast(): void;
70
+ protected onDestroy(): HandleDestructor;
70
71
  static get onCreate(): Event<[UnitAbility]>;
71
72
  static get onDestroy(): Event<[UnitAbility]>;
72
73
  }
@@ -93,6 +94,7 @@ export declare class ItemAbility extends Ability {
93
94
  get cooldownRemaining(): number;
94
95
  set cooldownRemaining(cooldownRemaining: number);
95
96
  interruptCast(): void;
97
+ protected onDestroy(): HandleDestructor;
96
98
  static get onCreate(): Event<[ItemAbility]>;
97
99
  static get onDestroy(): Event<[ItemAbility]>;
98
100
  }
@@ -232,6 +232,19 @@ ____exports.getOrderIdByAbilityTypeId = function(abilityTypeId)
232
232
  local parentTypeId = availableFields[abilityTypeId]
233
233
  return order2orderId(orders[____type(parentTypeId) == "number" and parentTypeId or abilityTypeId] or "")
234
234
  end
235
+ ---
236
+ -- @internal For use by internal systems only.
237
+ ____exports.abilityTypeHasField = function(abilityTypeId, field)
238
+ field = ____type(field) == "number" and field or getHandleId(field)
239
+ if commonFields[field] then
240
+ return true
241
+ end
242
+ local id = availableFields[abilityTypeId]
243
+ if ____type(id) == "number" then
244
+ id = availableFields[id]
245
+ end
246
+ return not not (id and id[field])
247
+ end
235
248
  ____exports.Ability = __TS__Class()
236
249
  local Ability = ____exports.Ability
237
250
  Ability.name = "Ability"
@@ -247,15 +260,7 @@ function Ability.prototype.getSnapshot(self)
247
260
  return nil
248
261
  end
249
262
  function Ability.prototype.hasField(self, field)
250
- field = ____type(field) == "number" and field or getHandleId(field)
251
- if commonFields[field] then
252
- return true
253
- end
254
- local id = availableFields[self.typeId]
255
- if ____type(id) == "number" then
256
- id = availableFields[id]
257
- end
258
- return not not (id and id[field])
263
+ return ____exports.abilityTypeHasField(self.typeId, field)
259
264
  end
260
265
  function Ability.prototype.getField(self, field, level)
261
266
  local fieldType = match(
@@ -420,6 +425,12 @@ end
420
425
  function UnitAbility.prototype.interruptCast(self)
421
426
  self.owner:interruptCast(self.typeId)
422
427
  end
428
+ function UnitAbility.prototype.onDestroy(self)
429
+ if self.owner.state ~= 2 then
430
+ self.owner:removeAbility(self.typeId)
431
+ end
432
+ return UnitAbility.____super.prototype.onDestroy(self)
433
+ end
423
434
  __TS__SetDescriptor(
424
435
  UnitAbility.prototype,
425
436
  "isDisabled",
@@ -512,6 +523,12 @@ function ItemAbility.prototype.interruptCast(self)
512
523
  setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, true)
513
524
  end
514
525
  end
526
+ function ItemAbility.prototype.onDestroy(self)
527
+ if self.owner.state ~= 2 then
528
+ self.owner:removeAbility(self.typeId)
529
+ end
530
+ return ItemAbility.____super.prototype.onDestroy(self)
531
+ end
515
532
  __TS__SetDescriptor(
516
533
  ItemAbility.prototype,
517
534
  "level",
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ declare module "../item" {
3
+ interface Item {
4
+ canBeSold: boolean;
5
+ }
6
+ }
7
+ declare module "../item" {
8
+ interface Item {
9
+ isActivelyUsed: boolean;
10
+ }
11
+ }
12
+ export {};
@@ -0,0 +1,33 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
+ local ____exports = {}
4
+ local ____item = require("engine.internal.item")
5
+ local Item = ____item.Item
6
+ local ____item = require("engine.standard.fields.item")
7
+ local CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD = ____item.CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD
8
+ local IS_ACTIVELY_USED_ITEM_FIELD = ____item.IS_ACTIVELY_USED_ITEM_FIELD
9
+ __TS__ObjectDefineProperty(
10
+ Item.prototype,
11
+ "canBeSold",
12
+ {
13
+ get = function(self)
14
+ return CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD:getValue(self)
15
+ end,
16
+ set = function(self, value)
17
+ CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD:setValue(self, value)
18
+ end
19
+ }
20
+ )
21
+ __TS__ObjectDefineProperty(
22
+ Item.prototype,
23
+ "isActivelyUsed",
24
+ {
25
+ get = function(self)
26
+ return IS_ACTIVELY_USED_ITEM_FIELD:getValue(self)
27
+ end,
28
+ set = function(self, value)
29
+ IS_ACTIVELY_USED_ITEM_FIELD:setValue(self, value)
30
+ end
31
+ }
32
+ )
33
+ return ____exports
@@ -6,12 +6,18 @@ local Item = ____item.Item
6
6
  local ____unit = require("engine.internal.unit")
7
7
  local Unit = ____unit.Unit
8
8
  local ownerByItem = setmetatable({}, {__mode = "kv"})
9
- Unit.itemPickedUpEvent:addListener(function(unit, item)
10
- ownerByItem[item] = unit
11
- end)
12
- Unit.itemDroppedEvent:addListener(function(unit, item)
13
- ownerByItem[item] = nil
14
- end)
9
+ Unit.itemPickedUpEvent:addListener(
10
+ 4,
11
+ function(unit, item)
12
+ ownerByItem[item] = unit
13
+ end
14
+ )
15
+ Unit.itemDroppedEvent:addListener(
16
+ 4,
17
+ function(unit, item)
18
+ ownerByItem[item] = nil
19
+ end
20
+ )
15
21
  __TS__ObjectDefineProperty(
16
22
  Item.prototype,
17
23
  "owner",
@@ -8,12 +8,10 @@ import { AbilityTypeId } from "../object-data/entry/ability-type";
8
8
  import type { ItemTypeId } from "../object-data/entry/item-type";
9
9
  type DefenseType = 0 | 1 | 2 | 3 | 4 | 5;
10
10
  declare const enum ItemPropertyKey {
11
- ABILITIES = 100,
12
- LUA_INDEX_BY_ABILITY_TYPE_ID = 101
11
+ ABILITIES = 100
13
12
  }
14
13
  export declare class Item extends Handle<jitem> {
15
14
  private readonly [ItemPropertyKey.ABILITIES];
16
- private readonly [ItemPropertyKey.LUA_INDEX_BY_ABILITY_TYPE_ID];
17
15
  constructor(handle: jitem);
18
16
  protected onDestroy(): HandleDestructor;
19
17
  static create<T extends Item>(this: typeof Item & (new (handle: jitem) => T), id: number, x: number, y: number, skinId?: number): T;
@@ -30,22 +28,18 @@ export declare class Item extends Handle<jitem> {
30
28
  get extendedTooltip(): string;
31
29
  set iconPath(v: string);
32
30
  get iconPath(): string;
33
- set dropOnDeath(v: boolean);
34
- get dropOnDeath(): boolean;
35
- set droppable(v: boolean);
36
- get droppable(): boolean;
37
- set pawnable(v: boolean);
38
- get pawnable(): boolean;
39
- set perishable(v: boolean);
40
- get perishable(): boolean;
41
- set powerup(v: boolean);
42
- get powerup(): boolean;
31
+ set dropsOnDeath(dropsOnDeath: boolean);
32
+ get dropsOnDeath(): boolean;
33
+ set canBeDropped(canBeDropped: boolean);
34
+ get canBeDropped(): boolean;
35
+ set perishes(perishes: boolean);
36
+ get perishes(): boolean;
37
+ set isPowerUp(isPowerUp: boolean);
38
+ get isPowerUp(): boolean;
43
39
  get isAlive(): boolean;
44
40
  get isDead(): boolean;
45
41
  set isInvulnerable(isInvulnerable: boolean);
46
42
  get isInvulnerable(): boolean;
47
- set usable(v: boolean);
48
- get usable(): boolean;
49
43
  set visible(v: boolean);
50
44
  get visible(): boolean;
51
45
  set level(v: number);
@@ -46,9 +46,18 @@ local getItemY = GetItemY
46
46
  local getItemCharges = GetItemCharges
47
47
  local setItemCharges = SetItemCharges
48
48
  local unitRemoveAbility = UnitRemoveAbility
49
+ local unitRemoveItem = UnitRemoveItem
49
50
  local unitUseItem = UnitUseItem
50
51
  local unitUseItemPoint = UnitUseItemPoint
51
52
  local unitUseItemTarget = UnitUseItemTarget
53
+ local setItemDropOnDeath = SetItemDropOnDeath
54
+ local setItemDroppable = SetItemDroppable
55
+ local setItemPawnable = SetItemPawnable
56
+ local isItemPawnable = IsItemPawnable
57
+ local getItemIntegerField = BlzGetItemIntegerField
58
+ local setItemBooleanField = BlzSetItemBooleanField
59
+ local getItemBooleanField = BlzGetItemBooleanField
60
+ local tableRemove = table.remove
52
61
  _G.SetItemCharges = function(whichItem, charges)
53
62
  setItemCharges(whichItem, charges)
54
63
  invoke(
@@ -56,9 +65,6 @@ _G.SetItemCharges = function(whichItem, charges)
56
65
  ____exports.Item:of(whichItem)
57
66
  )
58
67
  end
59
- local getItemIntegerField = BlzGetItemIntegerField
60
- local setItemBooleanField = BlzSetItemBooleanField
61
- local getItemBooleanField = BlzGetItemBooleanField
62
68
  invoke = Event.invoke
63
69
  local enumRect = Rect:create(0, 0, 0, 0).handle
64
70
  ---
@@ -137,15 +143,13 @@ Item.name = "Item"
137
143
  __TS__ClassExtends(Item, Handle)
138
144
  function Item.prototype.____constructor(self, handle)
139
145
  Handle.prototype.____constructor(self, handle)
140
- local abilities = doAbilityAction(handle, getItemAbilities, self)
141
- self[100] = abilities
142
- local luaIndexByAbilityTypeId = {}
143
- for i = 1, #abilities do
144
- luaIndexByAbilityTypeId[abilities[i].typeId] = i
145
- end
146
- self[101] = luaIndexByAbilityTypeId
146
+ self[100] = doAbilityAction(handle, getItemAbilities, self)
147
147
  end
148
148
  function Item.prototype.onDestroy(self)
149
+ local owner = self.owner
150
+ if owner ~= nil then
151
+ unitRemoveItem(owner.handle, self.handle)
152
+ end
149
153
  local abilities = self[100]
150
154
  for i = 1, #abilities do
151
155
  abilities[i]:destroy()
@@ -191,33 +195,32 @@ function Item.prototype.addAbility(self, abilityTypeId)
191
195
  if nativeAbility ~= nil then
192
196
  local ability = ItemAbility:of(nativeAbility, abilityTypeId, self)
193
197
  local abilities = self[100]
194
- local luaIndex = #abilities + 1
195
- abilities[luaIndex] = ability
196
- self[101][abilityTypeId] = luaIndex
198
+ abilities[#abilities + 1] = ability
197
199
  return ability
198
200
  end
199
201
  return nil
200
202
  end
201
203
  function Item.prototype.removeAbility(self, abilityTypeId)
202
- local luaIndexByAbilityTypeId = self[101]
203
- local luaIndex = luaIndexByAbilityTypeId[abilityTypeId]
204
- if luaIndex ~= nil and doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId) then
205
- luaIndexByAbilityTypeId[abilityTypeId] = nil
206
- local abilities = self[100]
207
- abilities[luaIndex]:destroy()
208
- local abilityTypeIdsLength = #abilities
209
- for j = luaIndex, abilityTypeIdsLength do
210
- abilities[j] = abilities[j + 1]
204
+ local abilities = self[100]
205
+ for i = 1, #abilities do
206
+ if abilities[i].typeId == abilityTypeId then
207
+ local ability = abilities[i]
208
+ tableRemove(abilities, i)
209
+ ability:destroy()
210
+ return true
211
211
  end
212
212
  end
213
- return false
213
+ return doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId)
214
214
  end
215
215
  function Item.prototype.hasAbility(self, abilityTypeId)
216
- return self[101][abilityTypeId] ~= nil
216
+ return doAbilityAction(self.handle, getItemAbility, abilityTypeId) ~= nil
217
217
  end
218
218
  function Item.prototype.getAbility(self, abilityTypeId)
219
- local ability = self[101][abilityTypeId] ~= nil and doAbilityAction(self.handle, getItemAbility, abilityTypeId)
220
- return ability and ItemAbility:of(ability, abilityTypeId, self) or nil
219
+ return ItemAbility:of(
220
+ doAbilityAction(self.handle, getItemAbility, abilityTypeId),
221
+ abilityTypeId,
222
+ self
223
+ )
221
224
  end
222
225
  function Item.getInRange(self, x, y, range)
223
226
  targetCollection = {}
@@ -329,65 +332,55 @@ __TS__SetDescriptor(
329
332
  )
330
333
  __TS__SetDescriptor(
331
334
  Item.prototype,
332
- "dropOnDeath",
335
+ "dropsOnDeath",
333
336
  {
334
337
  get = function(self)
335
- return BlzGetItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
338
+ return getItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
336
339
  end,
337
- set = function(self, v)
338
- SetItemDropOnDeath(self.handle, v)
340
+ set = function(self, dropsOnDeath)
341
+ setItemDropOnDeath(self.handle, dropsOnDeath)
339
342
  end
340
343
  },
341
344
  true
342
345
  )
343
346
  __TS__SetDescriptor(
344
347
  Item.prototype,
345
- "droppable",
348
+ "canBeDropped",
346
349
  {
347
350
  get = function(self)
348
- return BlzGetItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
351
+ return getItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
349
352
  end,
350
- set = function(self, v)
351
- SetItemDroppable(self.handle, v)
353
+ set = function(self, canBeDropped)
354
+ setItemDroppable(self.handle, canBeDropped)
352
355
  end
353
356
  },
354
357
  true
355
358
  )
356
359
  __TS__SetDescriptor(
357
360
  Item.prototype,
358
- "pawnable",
359
- {
360
- get = function(self)
361
- return IsItemPawnable(self.handle)
362
- end,
363
- set = function(self, v)
364
- SetItemPawnable(self.handle, v)
365
- end
366
- },
367
- true
368
- )
369
- __TS__SetDescriptor(
370
- Item.prototype,
371
- "perishable",
361
+ "perishes",
372
362
  {
373
363
  get = function(self)
374
364
  return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
375
365
  end,
376
- set = function(self, v)
377
- BlzSetItemBooleanField(self.handle, ITEM_BF_PERISHABLE, v)
366
+ set = function(self, perishes)
367
+ local handle = self.handle
368
+ local powerUp = isItemPowerup(handle)
369
+ setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
370
+ setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
378
371
  end
379
372
  },
380
373
  true
381
374
  )
382
375
  __TS__SetDescriptor(
383
376
  Item.prototype,
384
- "powerup",
377
+ "isPowerUp",
385
378
  {
386
379
  get = function(self)
387
380
  return isItemPowerup(self.handle)
388
381
  end,
389
- set = function(self, v)
390
- setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, v)
382
+ set = function(self, isPowerUp)
383
+ setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, isPowerUp)
391
384
  end
392
385
  },
393
386
  true
@@ -421,22 +414,6 @@ __TS__SetDescriptor(
421
414
  },
422
415
  true
423
416
  )
424
- __TS__SetDescriptor(
425
- Item.prototype,
426
- "usable",
427
- {
428
- get = function(self)
429
- return getItemBooleanField(self.handle, ITEM_BF_ACTIVELY_USED)
430
- end,
431
- set = function(self, v)
432
- local handle = self.handle
433
- local powerup = isItemPowerup(handle)
434
- setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, v)
435
- setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerup)
436
- end
437
- },
438
- true
439
- )
440
417
  __TS__SetDescriptor(
441
418
  Item.prototype,
442
419
  "visible",
@@ -74,9 +74,12 @@ ____exports.castAbility = function(nativeUnit, abilityTypeId, prepareAbility, ..
74
74
  unitRemoveAbility(nativeUnit, INVENTORY_ABILITY_TYPE_ID)
75
75
  if latestInventoryAbilityTypeId ~= 0 then
76
76
  unitAddAbility(nativeUnit, latestInventoryAbilityTypeId)
77
- for slot, nativeItem in pairs(nativeItemBySlot) do
78
- unitAddItem(nativeUnit, nativeItem)
79
- unitDropItemSlot(nativeUnit, nativeItem, slot)
77
+ for slot = 0, inventorySize - 1 do
78
+ local nativeItem = nativeItemBySlot[slot]
79
+ if nativeItem ~= nil then
80
+ unitAddItem(nativeUnit, nativeItem)
81
+ unitDropItemSlot(nativeUnit, nativeItem, slot)
82
+ end
80
83
  end
81
84
  end
82
85
  end
@@ -0,0 +1,21 @@
1
+ local ____exports = {}
2
+ local getLocalClientWidth = BlzGetLocalClientWidth
3
+ local getLocalClientHeight = BlzGetLocalClientHeight
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.getFrameMinXMaxX = function()
7
+ local w = getLocalClientWidth()
8
+ local h = getLocalClientHeight()
9
+ local width4by3 = (w - h / 600 * 800) / 2
10
+ local pxtodpi = 0.6 / h
11
+ local minX = -width4by3 * pxtodpi
12
+ local maxX = minX + w * pxtodpi
13
+ return minX, maxX
14
+ end
15
+ ---
16
+ -- @internal For use by internal systems only.
17
+ ____exports.FRAME_MIN_Y = 0
18
+ ---
19
+ -- @internal For use by internal systems only.
20
+ ____exports.FRAME_MAX_Y = 0.6
21
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,11 @@
1
+ local ____exports = {}
2
+ local getLocationZ = GetLocationZ
3
+ local moveLocation = MoveLocation
4
+ local location = Location(0, 0)
5
+ ---
6
+ -- @internal For use by internal systems only.
7
+ ____exports.getTerrainZ = function(x, y)
8
+ moveLocation(location, x, y)
9
+ return getLocationZ(location)
10
+ end
11
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,5 @@
1
+ local ____exports = {}
2
+ ---
3
+ -- @internal For use by internal systems only.
4
+ ____exports.PLAYER_LOCAL_HANDLE = GetLocalPlayer()
5
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -1,6 +1,6 @@
1
1
  local ____exports = {}
2
- local ____attribute_2Dincrease = require("engine.object-data.entry.ability-type.attribute-increase")
3
- local AttributeBonusAbilityType = ____attribute_2Dincrease.AttributeBonusAbilityType
2
+ local ____attribute_2Dbonus = require("engine.object-data.entry.ability-type.attribute-bonus")
3
+ local AttributeBonusAbilityType = ____attribute_2Dbonus.AttributeBonusAbilityType
4
4
  ---
5
5
  -- @internal For use by internal systems.
6
6
  ____exports.ATTRIBUTE_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____health_2Dbonus = require("engine.object-data.entry.ability-type.health-bonus")
3
+ local HealthBonusAbilityType = ____health_2Dbonus.HealthBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = HealthBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.healthBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.HEALTH_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_LIFE_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dbonus = require("engine.object-data.entry.ability-type.mana-bonus")
3
+ local ManaBonusAbilityType = ____mana_2Dbonus.ManaBonusAbilityType
4
+ ---
5
+ -- @internal For use by internal systems only.
6
+ ____exports.MANA_BONUS_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaBonusAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaBonus = 0
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.MANA_BONUS_DUMMY_ABILITY_FIELD = ABILITY_ILF_MAX_MANA_GAINED
16
+ return ____exports
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export {};
@@ -0,0 +1,16 @@
1
+ local ____exports = {}
2
+ local ____mana_2Dregeneration = require("engine.object-data.entry.ability-type.mana-regeneration")
3
+ local ManaRegenerationAbilityType = ____mana_2Dregeneration.ManaRegenerationAbilityType
4
+ ---
5
+ -- @internal For use by internal systems.
6
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_DUMMY_ABILITY_TYPE_ID = compiletime(function()
7
+ local abilityType = ManaRegenerationAbilityType:create()
8
+ abilityType.isInternal = true
9
+ abilityType.isButtonVisible = false
10
+ abilityType.manaRegenerationRateIncreaseFactor = 4
11
+ return abilityType.id
12
+ end)
13
+ ---
14
+ -- @internal For use by internal systems.
15
+ ____exports.MANA_REGENERATION_RATE_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_MANA_REGENERATION_BONUS_AS_FRACTION_OF_NORMAL
16
+ return ____exports
@@ -133,55 +133,55 @@ declare module "../unit" {
133
133
  }
134
134
  declare module "../unit" {
135
135
  namespace Unit {
136
- const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
136
+ const abilityChannelingFinishEvent: DispatchingEvent<[Unit, Ability]>;
137
137
  }
138
138
  }
139
139
  declare module "../unit" {
140
140
  namespace Unit {
141
- const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
141
+ const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
142
142
  }
143
143
  }
144
144
  declare module "../unit" {
145
145
  namespace Unit {
146
- const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
146
+ const abilityCommandEvent: {
147
+ readonly [abilityTypeId: number]: {
148
+ readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
149
+ };
150
+ };
147
151
  }
148
152
  }
149
153
  declare module "../unit" {
150
154
  namespace Unit {
151
- const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
155
+ const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
152
156
  }
153
157
  }
154
158
  declare module "../unit" {
155
159
  namespace Unit {
156
- const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
160
+ const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
157
161
  }
158
162
  }
159
163
  declare module "../unit" {
160
164
  namespace Unit {
161
- const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
165
+ const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
162
166
  }
163
167
  }
164
168
  declare module "../unit" {
165
169
  namespace Unit {
166
- const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
170
+ const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
167
171
  }
168
172
  }
169
173
  declare module "../unit" {
170
174
  namespace Unit {
171
- const abilityChannelingFinishEvent: DispatchingEvent<[Unit, Ability]>;
175
+ const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
172
176
  }
173
177
  }
174
178
  declare module "../unit" {
175
179
  namespace Unit {
176
- const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
180
+ const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
177
181
  }
178
182
  }
179
183
  declare module "../unit" {
180
184
  namespace Unit {
181
- const abilityCommandEvent: {
182
- readonly [abilityTypeId: number]: {
183
- readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
184
- };
185
- };
185
+ const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
186
186
  }
187
187
  }