warscript 0.0.1-dev.987b772 → 0.0.1-dev.989e1a3
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.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +3 -0
- package/core/types/frame.lua +83 -21
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +22 -5
- package/engine/behaviour/ability.lua +113 -48
- package/engine/behaviour/unit/stun-immunity.d.ts +11 -5
- package/engine/behaviour/unit/stun-immunity.lua +53 -28
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +259 -6
- package/engine/buff.d.ts +76 -45
- package/engine/buff.lua +389 -248
- package/engine/internal/ability.d.ts +22 -3
- package/engine/internal/ability.lua +133 -13
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/bonus.d.ts +4 -0
- package/engine/internal/unit/bonus.lua +27 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +1 -0
- package/engine/internal/unit/item.lua +8 -4
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +45 -14
- package/engine/internal/unit.d.ts +58 -19
- package/engine/internal/unit.lua +424 -186
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +39 -8
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +19 -17
- package/engine/object-data/entry/ability-type.lua +93 -36
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type.d.ts +3 -1
- package/engine/object-data/entry/item-type.lua +15 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -93
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +12 -6
- package/engine/object-field/ability.lua +8 -4
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +23 -6
- package/engine/object-field.lua +337 -116
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/unit.d.ts +7 -0
- package/engine/standard/fields/unit.lua +13 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +22 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/internal/unit.lua
CHANGED
|
@@ -51,12 +51,23 @@ local ____arrays = require("utility.arrays")
|
|
|
51
51
|
local forEach = ____arrays.forEach
|
|
52
52
|
local ____math = require("math")
|
|
53
53
|
local min = ____math.min
|
|
54
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
+
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
56
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
57
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
58
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
59
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
60
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
61
|
+
local ____attributes = require("attributes")
|
|
62
|
+
local isAttribute = ____attributes.isAttribute
|
|
63
|
+
local ____ability = require("engine.internal.item.ability")
|
|
64
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
65
|
+
local ____synchronization = require("engine.synchronization")
|
|
66
|
+
local synchronizer = ____synchronization.synchronizer
|
|
54
67
|
local match = string.match
|
|
55
68
|
local ____tostring = _G.tostring
|
|
56
69
|
local setUnitAnimation = SetUnitAnimation
|
|
57
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
58
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
59
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
60
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
61
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
62
73
|
local getHeroStr = GetHeroStr
|
|
@@ -75,9 +86,9 @@ local setUnitScale = SetUnitScale
|
|
|
75
86
|
local setUnitPosition = SetUnitPosition
|
|
76
87
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
88
|
local getHandleId = GetHandleId
|
|
89
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
90
|
local createUnit = CreateUnit
|
|
79
91
|
local killUnit = KillUnit
|
|
80
|
-
local setUnitExploded = SetUnitExploded
|
|
81
92
|
local removeUnit = RemoveUnit
|
|
82
93
|
local getUnitTypeId = GetUnitTypeId
|
|
83
94
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -93,8 +104,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
93
104
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
94
105
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
95
106
|
local isUnitInRange = IsUnitInRange
|
|
96
|
-
local setResourceAmount = SetResourceAmount
|
|
97
|
-
local getResourceAmount = GetResourceAmount
|
|
98
107
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
108
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
109
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -118,15 +127,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
118
127
|
local getIssuedOrderId = GetIssuedOrderId
|
|
119
128
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
120
129
|
local unitAlive = UnitAlive
|
|
121
|
-
local unitAddType = UnitAddType
|
|
122
|
-
local unitRemoveType = UnitRemoveType
|
|
123
|
-
local isUnitIllusion = IsUnitIllusion
|
|
124
|
-
local isUnitType = IsUnitType
|
|
125
130
|
local isUnitAlly = IsUnitAlly
|
|
126
131
|
local isUnitEnemy = IsUnitEnemy
|
|
127
132
|
local getOwningPlayer = GetOwningPlayer
|
|
128
|
-
local setUnitColor = SetUnitColor
|
|
129
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
130
133
|
____exports.UnitClassification = {}
|
|
131
134
|
local UnitClassification = ____exports.UnitClassification
|
|
132
135
|
do
|
|
@@ -136,6 +139,7 @@ do
|
|
|
136
139
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
137
140
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
138
141
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
142
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
139
143
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
140
144
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
141
145
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -343,6 +347,9 @@ local function dispatchAbility(event)
|
|
|
343
347
|
}
|
|
344
348
|
)
|
|
345
349
|
end
|
|
350
|
+
local function damagingEventPreventRetaliation(self)
|
|
351
|
+
self[0] = true
|
|
352
|
+
end
|
|
346
353
|
local function damageEventPreventDeath(self, callback, ...)
|
|
347
354
|
if self[0] ~= nil then
|
|
348
355
|
return
|
|
@@ -354,7 +361,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
354
361
|
rawset(self, 1 + i, (select(i, ...)))
|
|
355
362
|
end
|
|
356
363
|
end
|
|
357
|
-
local damageSetters = {
|
|
364
|
+
local damageSetters = {
|
|
365
|
+
amount = BlzSetEventDamage,
|
|
366
|
+
attackType = function(attackType)
|
|
367
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
368
|
+
end,
|
|
369
|
+
damageType = BlzSetEventDamageType,
|
|
370
|
+
weaponType = BlzSetEventWeaponType
|
|
371
|
+
}
|
|
358
372
|
local jlimitopByOperator = {
|
|
359
373
|
[0] = LESS_THAN_OR_EQUAL,
|
|
360
374
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -398,6 +412,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
398
412
|
self.unit = unit
|
|
399
413
|
self.index = index
|
|
400
414
|
end
|
|
415
|
+
__TS__SetDescriptor(
|
|
416
|
+
UnitWeapon.prototype,
|
|
417
|
+
"isEnabled",
|
|
418
|
+
{
|
|
419
|
+
get = function(self)
|
|
420
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
421
|
+
end,
|
|
422
|
+
set = function(self, isEnabled)
|
|
423
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
424
|
+
end
|
|
425
|
+
},
|
|
426
|
+
true
|
|
427
|
+
)
|
|
401
428
|
__TS__SetDescriptor(
|
|
402
429
|
UnitWeapon.prototype,
|
|
403
430
|
"cooldown",
|
|
@@ -432,6 +459,19 @@ __TS__SetDescriptor(
|
|
|
432
459
|
},
|
|
433
460
|
true
|
|
434
461
|
)
|
|
462
|
+
__TS__SetDescriptor(
|
|
463
|
+
UnitWeapon.prototype,
|
|
464
|
+
"allowedTargetCombatClassifications",
|
|
465
|
+
{
|
|
466
|
+
get = function(self)
|
|
467
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
468
|
+
end,
|
|
469
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
470
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
471
|
+
end
|
|
472
|
+
},
|
|
473
|
+
true
|
|
474
|
+
)
|
|
435
475
|
__TS__SetDescriptor(
|
|
436
476
|
UnitWeapon.prototype,
|
|
437
477
|
"damageBase",
|
|
@@ -562,17 +602,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
602
|
____exports.Unit:of(unit)
|
|
563
603
|
)
|
|
564
604
|
end
|
|
565
|
-
if not unitAddAbility(unit, abilityId) then
|
|
566
|
-
if getUnitAbility(unit, abilityId) == ability then
|
|
567
|
-
return UnitAbility:of(
|
|
568
|
-
ability,
|
|
569
|
-
abilityId,
|
|
570
|
-
____exports.Unit:of(unit)
|
|
571
|
-
)
|
|
572
|
-
end
|
|
573
|
-
else
|
|
574
|
-
unitRemoveAbility(unit, abilityId)
|
|
575
|
-
end
|
|
576
605
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
577
606
|
local item = unitItemInSlot(unit, i)
|
|
578
607
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -630,15 +659,15 @@ for ____, player in ipairs(Player.all) do
|
|
|
630
659
|
dummies[player] = dummy
|
|
631
660
|
end
|
|
632
661
|
local function delayHealthChecksCallback(unit)
|
|
633
|
-
local counter = (unit[
|
|
662
|
+
local counter = (unit[104] or 0) - 1
|
|
634
663
|
if counter ~= 0 then
|
|
635
|
-
unit[
|
|
664
|
+
unit[104] = counter
|
|
636
665
|
return
|
|
637
666
|
end
|
|
638
|
-
unit[
|
|
639
|
-
local healthBonus = unit[
|
|
667
|
+
unit[104] = nil
|
|
668
|
+
local healthBonus = unit[105]
|
|
640
669
|
if healthBonus ~= nil then
|
|
641
|
-
unit[
|
|
670
|
+
unit[105] = nil
|
|
642
671
|
local handle = unit.handle
|
|
643
672
|
BlzSetUnitMaxHP(
|
|
644
673
|
handle,
|
|
@@ -646,12 +675,27 @@ local function delayHealthChecksCallback(unit)
|
|
|
646
675
|
)
|
|
647
676
|
end
|
|
648
677
|
end
|
|
678
|
+
local nextSyncId = 1
|
|
679
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
680
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
681
|
+
local function addAbility(unit, abilityTypeId)
|
|
682
|
+
local ____unitAddAbility_result_0
|
|
683
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
684
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
685
|
+
else
|
|
686
|
+
____unitAddAbility_result_0 = nil
|
|
687
|
+
end
|
|
688
|
+
return ____unitAddAbility_result_0
|
|
689
|
+
end
|
|
649
690
|
____exports.Unit = __TS__Class()
|
|
650
691
|
local Unit = ____exports.Unit
|
|
651
692
|
Unit.name = "Unit"
|
|
652
693
|
__TS__ClassExtends(Unit, Handle)
|
|
653
694
|
function Unit.prototype.____constructor(self, handle)
|
|
654
695
|
Handle.prototype.____constructor(self, handle)
|
|
696
|
+
local ____nextSyncId_1 = nextSyncId
|
|
697
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
698
|
+
self.syncId = ____nextSyncId_1
|
|
655
699
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
656
700
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
657
701
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -664,6 +708,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
664
708
|
fourCC("Amrf")
|
|
665
709
|
))
|
|
666
710
|
end
|
|
711
|
+
unitBySyncId[self.syncId] = self
|
|
667
712
|
local ____ = self.abilities
|
|
668
713
|
end
|
|
669
714
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -682,6 +727,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
682
727
|
end
|
|
683
728
|
function Unit.prototype.onDestroy(self)
|
|
684
729
|
local handle = self.handle
|
|
730
|
+
self[108] = getUnitX(handle)
|
|
731
|
+
self[109] = getUnitY(handle)
|
|
685
732
|
if not self._owner then
|
|
686
733
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
687
734
|
end
|
|
@@ -749,17 +796,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
749
796
|
end}
|
|
750
797
|
end
|
|
751
798
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
752
|
-
local
|
|
753
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
799
|
+
local ____combatClassification_2 = combatClassification
|
|
800
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
754
801
|
end
|
|
755
802
|
function Unit.prototype.addClassification(self, classification)
|
|
756
|
-
return
|
|
803
|
+
return UnitAddType(self.handle, classification)
|
|
757
804
|
end
|
|
758
805
|
function Unit.prototype.removeClassification(self, classification)
|
|
759
|
-
return
|
|
806
|
+
return UnitRemoveType(self.handle, classification)
|
|
760
807
|
end
|
|
761
808
|
function Unit.prototype.hasClassification(self, classification)
|
|
762
|
-
return
|
|
809
|
+
return IsUnitType(self.handle, classification)
|
|
763
810
|
end
|
|
764
811
|
function Unit.prototype.isVisibleTo(self, player)
|
|
765
812
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -768,13 +815,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
768
815
|
return isUnitInvisible(self.handle, player.handle)
|
|
769
816
|
end
|
|
770
817
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
771
|
-
local
|
|
818
|
+
local ____temp_3
|
|
772
819
|
if type(x) == "number" then
|
|
773
|
-
|
|
820
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
774
821
|
else
|
|
775
|
-
|
|
822
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
776
823
|
end
|
|
777
|
-
return
|
|
824
|
+
return ____temp_3
|
|
778
825
|
end
|
|
779
826
|
function Unit.prototype.isAllyOf(self, unit)
|
|
780
827
|
return isUnitAlly(
|
|
@@ -792,16 +839,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
792
839
|
if type(animation) == "number" then
|
|
793
840
|
setUnitAnimationByIndex(self.handle, animation)
|
|
794
841
|
elseif rarity then
|
|
795
|
-
|
|
842
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
796
843
|
else
|
|
797
844
|
setUnitAnimation(self.handle, animation)
|
|
798
845
|
end
|
|
799
846
|
end
|
|
847
|
+
function Unit.prototype.resetAnimation(self)
|
|
848
|
+
ResetUnitAnimation(self.handle)
|
|
849
|
+
end
|
|
800
850
|
function Unit.prototype.queueAnimation(self, animation)
|
|
801
|
-
|
|
851
|
+
QueueUnitAnimation(self.handle, animation)
|
|
852
|
+
end
|
|
853
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
854
|
+
local firstWeapon = self.firstWeapon
|
|
855
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
856
|
+
return firstWeapon
|
|
857
|
+
end
|
|
858
|
+
local secondWeapon = self.secondWeapon
|
|
859
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
860
|
+
return secondWeapon
|
|
861
|
+
end
|
|
862
|
+
return nil
|
|
802
863
|
end
|
|
803
864
|
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
-
self[
|
|
865
|
+
self[104] = (self[104] or 0) + 1
|
|
805
866
|
Timer:run(delayHealthChecksCallback, self)
|
|
806
867
|
end
|
|
807
868
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -811,21 +872,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
811
872
|
return IsUnitSelected(self.handle, player.handle)
|
|
812
873
|
end
|
|
813
874
|
function Unit.prototype.explode(self)
|
|
814
|
-
|
|
875
|
+
SetUnitExploded(self.handle, true)
|
|
815
876
|
killUnit(self.handle)
|
|
816
877
|
end
|
|
817
878
|
function Unit.prototype.kill(self)
|
|
818
879
|
killUnit(self.handle)
|
|
819
880
|
end
|
|
820
881
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
821
|
-
local
|
|
822
|
-
local
|
|
823
|
-
local
|
|
824
|
-
if
|
|
825
|
-
|
|
882
|
+
local ____ReviveHero_6 = ReviveHero
|
|
883
|
+
local ____array_5 = __TS__SparseArrayNew(self.handle, x, y)
|
|
884
|
+
local ____doEffect_4 = doEffect
|
|
885
|
+
if ____doEffect_4 == nil then
|
|
886
|
+
____doEffect_4 = false
|
|
826
887
|
end
|
|
827
|
-
__TS__SparseArrayPush(
|
|
828
|
-
|
|
888
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
889
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
829
890
|
end
|
|
830
891
|
function Unit.prototype.healTarget(self, target, amount)
|
|
831
892
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -868,17 +929,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
868
929
|
return Item:of(unitItemInSlot(self.handle, slot))
|
|
869
930
|
end
|
|
870
931
|
function Unit.prototype.addAbility(self, abilityId)
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
932
|
+
local ability = UnitAbility:of(
|
|
933
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
934
|
+
abilityId,
|
|
935
|
+
self
|
|
936
|
+
)
|
|
937
|
+
if ability ~= nil then
|
|
877
938
|
local abilities = self.abilities
|
|
878
939
|
abilities[#abilities + 1] = ability
|
|
879
|
-
return ability
|
|
880
940
|
end
|
|
881
|
-
return
|
|
941
|
+
return ability
|
|
882
942
|
end
|
|
883
943
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
884
944
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -892,31 +952,21 @@ end
|
|
|
892
952
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
893
953
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
894
954
|
end
|
|
895
|
-
function Unit.prototype.
|
|
896
|
-
local
|
|
897
|
-
|
|
898
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
899
|
-
return nil
|
|
900
|
-
end
|
|
901
|
-
return UnitAbility:of(
|
|
902
|
-
getUnitAbility(self.handle, abilityId),
|
|
903
|
-
abilityId,
|
|
904
|
-
self
|
|
905
|
-
)
|
|
955
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
956
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
957
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
906
958
|
end
|
|
907
|
-
function Unit.prototype.removeAbility(self,
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
end
|
|
959
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
960
|
+
local abilities = self.abilities
|
|
961
|
+
for i = 1, #abilities do
|
|
962
|
+
if abilities[i].typeId == abilityTypeId then
|
|
963
|
+
local ability = abilities[i]
|
|
964
|
+
tremove(abilities, i)
|
|
965
|
+
ability:destroy()
|
|
966
|
+
return true
|
|
916
967
|
end
|
|
917
|
-
return true
|
|
918
968
|
end
|
|
919
|
-
return
|
|
969
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
920
970
|
end
|
|
921
971
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
922
972
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -930,12 +980,34 @@ end
|
|
|
930
980
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
931
981
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
932
982
|
end
|
|
983
|
+
function Unit.prototype.interruptMovement(self)
|
|
984
|
+
local handle = self.handle
|
|
985
|
+
unitDisableAbility(
|
|
986
|
+
handle,
|
|
987
|
+
fourCC("Amov"),
|
|
988
|
+
true,
|
|
989
|
+
false
|
|
990
|
+
)
|
|
991
|
+
unitDisableAbility(
|
|
992
|
+
handle,
|
|
993
|
+
fourCC("Amov"),
|
|
994
|
+
false,
|
|
995
|
+
false
|
|
996
|
+
)
|
|
997
|
+
end
|
|
933
998
|
function Unit.prototype.interruptAttack(self)
|
|
934
999
|
unitInterruptAttack(self.handle)
|
|
935
1000
|
end
|
|
936
1001
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
937
|
-
|
|
938
|
-
unitDisableAbility(
|
|
1002
|
+
local handle = self.handle
|
|
1003
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
1004
|
+
Timer:run(
|
|
1005
|
+
unitDisableAbility,
|
|
1006
|
+
handle,
|
|
1007
|
+
abilityId,
|
|
1008
|
+
false,
|
|
1009
|
+
false
|
|
1010
|
+
)
|
|
939
1011
|
end
|
|
940
1012
|
function Unit.prototype.getDistanceTo(self, target)
|
|
941
1013
|
local handle = self.handle
|
|
@@ -995,18 +1067,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
995
1067
|
self:decrementStunCounter()
|
|
996
1068
|
end
|
|
997
1069
|
function Unit.prototype.incrementStunCounter(self)
|
|
998
|
-
local stunCounter = self[
|
|
999
|
-
if not self[
|
|
1070
|
+
local stunCounter = self[102] or 0
|
|
1071
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1000
1072
|
BlzPauseUnitEx(self.handle, true)
|
|
1001
1073
|
end
|
|
1002
|
-
self[
|
|
1074
|
+
self[102] = stunCounter + 1
|
|
1003
1075
|
end
|
|
1004
1076
|
function Unit.prototype.decrementStunCounter(self)
|
|
1005
|
-
local stunCounter = self[
|
|
1006
|
-
if not self[
|
|
1077
|
+
local stunCounter = self[102] or 0
|
|
1078
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1007
1079
|
BlzPauseUnitEx(self.handle, false)
|
|
1008
1080
|
end
|
|
1009
|
-
self[
|
|
1081
|
+
self[102] = stunCounter - 1
|
|
1082
|
+
end
|
|
1083
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1084
|
+
local forceStunCounter = self[103] or 0
|
|
1085
|
+
if forceStunCounter == 0 then
|
|
1086
|
+
local handle = self.handle
|
|
1087
|
+
if not self[101] then
|
|
1088
|
+
for _ = self[102] or 0, -1 do
|
|
1089
|
+
BlzPauseUnitEx(handle, true)
|
|
1090
|
+
end
|
|
1091
|
+
end
|
|
1092
|
+
BlzPauseUnitEx(handle, true)
|
|
1093
|
+
end
|
|
1094
|
+
self[103] = forceStunCounter + 1
|
|
1095
|
+
end
|
|
1096
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1097
|
+
local forceStunCounter = self[103] or 0
|
|
1098
|
+
if forceStunCounter == 1 then
|
|
1099
|
+
local handle = self.handle
|
|
1100
|
+
if not self[101] then
|
|
1101
|
+
for _ = self[102] or 0, -1 do
|
|
1102
|
+
BlzPauseUnitEx(handle, false)
|
|
1103
|
+
end
|
|
1104
|
+
end
|
|
1105
|
+
BlzPauseUnitEx(handle, false)
|
|
1106
|
+
end
|
|
1107
|
+
self[103] = forceStunCounter - 1
|
|
1010
1108
|
end
|
|
1011
1109
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1012
1110
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1134,6 +1232,9 @@ end
|
|
|
1134
1232
|
function Unit.prototype.__tostring(self)
|
|
1135
1233
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1136
1234
|
end
|
|
1235
|
+
function Unit.getBySyncId(self, syncId)
|
|
1236
|
+
return unitBySyncId[syncId]
|
|
1237
|
+
end
|
|
1137
1238
|
__TS__SetDescriptor(
|
|
1138
1239
|
Unit.prototype,
|
|
1139
1240
|
"_deltas",
|
|
@@ -1193,7 +1294,15 @@ __TS__SetDescriptor(
|
|
|
1193
1294
|
Unit.prototype,
|
|
1194
1295
|
"isIllusion",
|
|
1195
1296
|
{get = function(self)
|
|
1196
|
-
return
|
|
1297
|
+
return IsUnitIllusion(self.handle)
|
|
1298
|
+
end},
|
|
1299
|
+
true
|
|
1300
|
+
)
|
|
1301
|
+
__TS__SetDescriptor(
|
|
1302
|
+
Unit.prototype,
|
|
1303
|
+
"isStunned",
|
|
1304
|
+
{get = function(self)
|
|
1305
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1197
1306
|
end},
|
|
1198
1307
|
true
|
|
1199
1308
|
)
|
|
@@ -1270,6 +1379,19 @@ __TS__SetDescriptor(
|
|
|
1270
1379
|
},
|
|
1271
1380
|
true
|
|
1272
1381
|
)
|
|
1382
|
+
__TS__SetDescriptor(
|
|
1383
|
+
Unit.prototype,
|
|
1384
|
+
"primaryAttribute",
|
|
1385
|
+
{
|
|
1386
|
+
get = function(self)
|
|
1387
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1388
|
+
end,
|
|
1389
|
+
set = function(self, primaryAttribute)
|
|
1390
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1391
|
+
end
|
|
1392
|
+
},
|
|
1393
|
+
true
|
|
1394
|
+
)
|
|
1273
1395
|
__TS__SetDescriptor(
|
|
1274
1396
|
Unit.prototype,
|
|
1275
1397
|
"strengthBase",
|
|
@@ -1391,17 +1513,17 @@ __TS__SetDescriptor(
|
|
|
1391
1513
|
"isTeamGlowVisible",
|
|
1392
1514
|
{
|
|
1393
1515
|
get = function(self)
|
|
1394
|
-
return not self[
|
|
1516
|
+
return not self[107]
|
|
1395
1517
|
end,
|
|
1396
1518
|
set = function(self, isTeamGlowVisible)
|
|
1397
|
-
|
|
1398
|
-
local
|
|
1519
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1520
|
+
local ____temp_7
|
|
1399
1521
|
if not isTeamGlowVisible then
|
|
1400
|
-
|
|
1522
|
+
____temp_7 = true
|
|
1401
1523
|
else
|
|
1402
|
-
|
|
1524
|
+
____temp_7 = nil
|
|
1403
1525
|
end
|
|
1404
|
-
self[
|
|
1526
|
+
self[107] = ____temp_7
|
|
1405
1527
|
end
|
|
1406
1528
|
},
|
|
1407
1529
|
true
|
|
@@ -1410,9 +1532,9 @@ __TS__SetDescriptor(
|
|
|
1410
1532
|
Unit.prototype,
|
|
1411
1533
|
"color",
|
|
1412
1534
|
{set = function(self, color)
|
|
1413
|
-
|
|
1414
|
-
if self[
|
|
1415
|
-
|
|
1535
|
+
SetUnitColor(self.handle, color.handle)
|
|
1536
|
+
if self[107] then
|
|
1537
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1416
1538
|
end
|
|
1417
1539
|
end},
|
|
1418
1540
|
true
|
|
@@ -1435,14 +1557,14 @@ __TS__SetDescriptor(
|
|
|
1435
1557
|
"maxHealth",
|
|
1436
1558
|
{
|
|
1437
1559
|
get = function(self)
|
|
1438
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1560
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1439
1561
|
end,
|
|
1440
1562
|
set = function(self, maxHealth)
|
|
1441
|
-
if maxHealth < 1 and self[
|
|
1442
|
-
self[
|
|
1563
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1564
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1443
1565
|
maxHealth = 1
|
|
1444
1566
|
end
|
|
1445
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1567
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1446
1568
|
end
|
|
1447
1569
|
},
|
|
1448
1570
|
true
|
|
@@ -1484,10 +1606,10 @@ __TS__SetDescriptor(
|
|
|
1484
1606
|
"health",
|
|
1485
1607
|
{
|
|
1486
1608
|
get = function(self)
|
|
1487
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1609
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1488
1610
|
end,
|
|
1489
1611
|
set = function(self, health)
|
|
1490
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1612
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1491
1613
|
end
|
|
1492
1614
|
},
|
|
1493
1615
|
true
|
|
@@ -1563,25 +1685,12 @@ __TS__SetDescriptor(
|
|
|
1563
1685
|
},
|
|
1564
1686
|
true
|
|
1565
1687
|
)
|
|
1566
|
-
__TS__SetDescriptor(
|
|
1567
|
-
Unit.prototype,
|
|
1568
|
-
"flyHeight",
|
|
1569
|
-
{
|
|
1570
|
-
get = function(self)
|
|
1571
|
-
return getUnitFlyHeight(self.handle)
|
|
1572
|
-
end,
|
|
1573
|
-
set = function(self, v)
|
|
1574
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1575
|
-
end
|
|
1576
|
-
},
|
|
1577
|
-
true
|
|
1578
|
-
)
|
|
1579
1688
|
__TS__SetDescriptor(
|
|
1580
1689
|
Unit.prototype,
|
|
1581
1690
|
"x",
|
|
1582
1691
|
{
|
|
1583
1692
|
get = function(self)
|
|
1584
|
-
return getUnitX(self.handle)
|
|
1693
|
+
return self[108] or getUnitX(self.handle)
|
|
1585
1694
|
end,
|
|
1586
1695
|
set = function(self, v)
|
|
1587
1696
|
SetUnitX(self.handle, v)
|
|
@@ -1594,7 +1703,7 @@ __TS__SetDescriptor(
|
|
|
1594
1703
|
"y",
|
|
1595
1704
|
{
|
|
1596
1705
|
get = function(self)
|
|
1597
|
-
return getUnitY(self.handle)
|
|
1706
|
+
return self[109] or getUnitY(self.handle)
|
|
1598
1707
|
end,
|
|
1599
1708
|
set = function(self, v)
|
|
1600
1709
|
SetUnitY(self.handle, v)
|
|
@@ -1680,10 +1789,10 @@ __TS__SetDescriptor(
|
|
|
1680
1789
|
"gold",
|
|
1681
1790
|
{
|
|
1682
1791
|
get = function(self)
|
|
1683
|
-
return
|
|
1792
|
+
return GetResourceAmount(self.handle)
|
|
1684
1793
|
end,
|
|
1685
1794
|
set = function(self, gold)
|
|
1686
|
-
|
|
1795
|
+
SetResourceAmount(self.handle, gold)
|
|
1687
1796
|
end
|
|
1688
1797
|
},
|
|
1689
1798
|
true
|
|
@@ -1698,17 +1807,21 @@ __TS__SetDescriptor(
|
|
|
1698
1807
|
set = function(self, isPaused)
|
|
1699
1808
|
local handle = self.handle
|
|
1700
1809
|
if isPaused and not IsUnitPaused(handle) then
|
|
1701
|
-
self[
|
|
1702
|
-
|
|
1703
|
-
|
|
1810
|
+
self[101] = true
|
|
1811
|
+
if (self[103] or 0) <= 0 then
|
|
1812
|
+
for _ = self[102] or 0, -1 do
|
|
1813
|
+
BlzPauseUnitEx(handle, true)
|
|
1814
|
+
end
|
|
1704
1815
|
end
|
|
1705
1816
|
PauseUnit(handle, true)
|
|
1706
1817
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1707
1818
|
PauseUnit(handle, false)
|
|
1708
|
-
|
|
1709
|
-
|
|
1819
|
+
if (self[103] or 0) <= 0 then
|
|
1820
|
+
for _ = self[102] or 0, -1 do
|
|
1821
|
+
BlzPauseUnitEx(handle, false)
|
|
1822
|
+
end
|
|
1710
1823
|
end
|
|
1711
|
-
self[
|
|
1824
|
+
self[101] = nil
|
|
1712
1825
|
end
|
|
1713
1826
|
end
|
|
1714
1827
|
},
|
|
@@ -1764,20 +1877,6 @@ __TS__SetDescriptor(
|
|
|
1764
1877
|
},
|
|
1765
1878
|
true
|
|
1766
1879
|
)
|
|
1767
|
-
__TS__SetDescriptor(
|
|
1768
|
-
Unit.prototype,
|
|
1769
|
-
"scale",
|
|
1770
|
-
{
|
|
1771
|
-
get = function(self)
|
|
1772
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1773
|
-
end,
|
|
1774
|
-
set = function(self, v)
|
|
1775
|
-
setUnitScale(self.handle, v, v, v)
|
|
1776
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1777
|
-
end
|
|
1778
|
-
},
|
|
1779
|
-
true
|
|
1780
|
-
)
|
|
1781
1880
|
__TS__SetDescriptor(
|
|
1782
1881
|
Unit.prototype,
|
|
1783
1882
|
"timeScale",
|
|
@@ -1811,6 +1910,19 @@ __TS__SetDescriptor(
|
|
|
1811
1910
|
end},
|
|
1812
1911
|
true
|
|
1813
1912
|
)
|
|
1913
|
+
__TS__SetDescriptor(
|
|
1914
|
+
Unit.prototype,
|
|
1915
|
+
"movementType",
|
|
1916
|
+
{
|
|
1917
|
+
get = function(self)
|
|
1918
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1919
|
+
end,
|
|
1920
|
+
set = function(self, movementType)
|
|
1921
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1922
|
+
end
|
|
1923
|
+
},
|
|
1924
|
+
true
|
|
1925
|
+
)
|
|
1814
1926
|
__TS__SetDescriptor(
|
|
1815
1927
|
Unit.prototype,
|
|
1816
1928
|
"pathing",
|
|
@@ -1992,6 +2104,14 @@ __TS__SetDescriptor(
|
|
|
1992
2104
|
end},
|
|
1993
2105
|
true
|
|
1994
2106
|
)
|
|
2107
|
+
__TS__SetDescriptor(
|
|
2108
|
+
Unit.prototype,
|
|
2109
|
+
"targetAcquiredEvent",
|
|
2110
|
+
{get = function(self)
|
|
2111
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2112
|
+
end},
|
|
2113
|
+
true
|
|
2114
|
+
)
|
|
1995
2115
|
__TS__SetDescriptor(
|
|
1996
2116
|
Unit.prototype,
|
|
1997
2117
|
"onSelect",
|
|
@@ -2127,25 +2247,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2127
2247
|
InitializingEvent,
|
|
2128
2248
|
function(event)
|
|
2129
2249
|
local function listener(unit, id)
|
|
2130
|
-
local
|
|
2250
|
+
local ____GetSpellTargetUnit_result_10
|
|
2131
2251
|
if GetSpellTargetUnit() then
|
|
2132
|
-
|
|
2252
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2133
2253
|
else
|
|
2134
|
-
local
|
|
2254
|
+
local ____GetSpellTargetItem_result_9
|
|
2135
2255
|
if GetSpellTargetItem() then
|
|
2136
|
-
|
|
2256
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2137
2257
|
else
|
|
2138
|
-
local
|
|
2258
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2139
2259
|
if GetSpellTargetDestructable() then
|
|
2140
|
-
|
|
2260
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2141
2261
|
else
|
|
2142
|
-
|
|
2262
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2143
2263
|
end
|
|
2144
|
-
|
|
2264
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2145
2265
|
end
|
|
2146
|
-
|
|
2266
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2147
2267
|
end
|
|
2148
|
-
local target =
|
|
2268
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2149
2269
|
if target then
|
|
2150
2270
|
invoke(event, unit, id, target)
|
|
2151
2271
|
end
|
|
@@ -2317,10 +2437,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2317
2437
|
____exports.UnitTriggerEvent,
|
|
2318
2438
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2319
2439
|
function()
|
|
2320
|
-
local
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2440
|
+
local handle = getOrderedUnit()
|
|
2441
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2442
|
+
local unit = ____exports.Unit:of(handle)
|
|
2443
|
+
if unit.state == 1 then
|
|
2444
|
+
return unit, getIssuedOrderId()
|
|
2445
|
+
end
|
|
2324
2446
|
end
|
|
2325
2447
|
return IgnoreEvent
|
|
2326
2448
|
end
|
|
@@ -2351,38 +2473,57 @@ Unit.onDamaging = (function()
|
|
|
2351
2473
|
if source and source.typeId == dummyUnitId then
|
|
2352
2474
|
source = nil
|
|
2353
2475
|
end
|
|
2354
|
-
local target = BlzGetEventDamageTarget()
|
|
2476
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2477
|
+
local metadata = damageMetadataByTarget[target]
|
|
2478
|
+
damageMetadataByTarget[target] = nil
|
|
2355
2479
|
local data = {
|
|
2356
2480
|
amount = GetEventDamage(),
|
|
2357
|
-
attackType = BlzGetEventAttackType(),
|
|
2481
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2358
2482
|
damageType = BlzGetEventDamageType(),
|
|
2359
2483
|
weaponType = BlzGetEventWeaponType(),
|
|
2360
|
-
|
|
2484
|
+
metadata = metadata,
|
|
2485
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2486
|
+
originalAmount = GetEventDamage(),
|
|
2487
|
+
originalMetadata = metadata,
|
|
2488
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2361
2489
|
}
|
|
2362
2490
|
if data.isAttack and source then
|
|
2363
|
-
|
|
2364
|
-
if weapon == -1 then
|
|
2365
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2366
|
-
weapon = 0
|
|
2367
|
-
end
|
|
2368
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2491
|
+
data.weapon = source:chooseWeapon(target)
|
|
2369
2492
|
end
|
|
2370
2493
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2371
2494
|
invoke(
|
|
2372
2495
|
event,
|
|
2373
2496
|
source,
|
|
2374
|
-
|
|
2497
|
+
target,
|
|
2375
2498
|
setmetatable(
|
|
2376
2499
|
{},
|
|
2377
2500
|
{
|
|
2378
2501
|
__index = data,
|
|
2379
2502
|
__newindex = function(self, key, value)
|
|
2380
|
-
damageSetters[key]
|
|
2503
|
+
local damageSetter = damageSetters[key]
|
|
2504
|
+
if damageSetter ~= nil then
|
|
2505
|
+
damageSetter(value)
|
|
2506
|
+
end
|
|
2381
2507
|
data[key] = value
|
|
2382
2508
|
end
|
|
2383
2509
|
}
|
|
2384
2510
|
)
|
|
2385
2511
|
)
|
|
2512
|
+
if data[0] and source then
|
|
2513
|
+
local sourceOwner = source.owner.handle
|
|
2514
|
+
data[1] = sourceOwner
|
|
2515
|
+
local targetOwner = target.owner.handle
|
|
2516
|
+
data[2] = targetOwner
|
|
2517
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2518
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2519
|
+
data[3] = true
|
|
2520
|
+
end
|
|
2521
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2522
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2523
|
+
data[4] = true
|
|
2524
|
+
end
|
|
2525
|
+
end
|
|
2526
|
+
damagingEventByTarget[target] = data
|
|
2386
2527
|
return
|
|
2387
2528
|
end
|
|
2388
2529
|
BlzSetEventDamage(0)
|
|
@@ -2390,7 +2531,7 @@ Unit.onDamaging = (function()
|
|
|
2390
2531
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2391
2532
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2392
2533
|
local sourceOwner = source.owner.handle
|
|
2393
|
-
local targetOwner =
|
|
2534
|
+
local targetOwner = target.owner.handle
|
|
2394
2535
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2395
2536
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2396
2537
|
Timer:run(function()
|
|
@@ -2406,23 +2547,19 @@ Unit.onDamaging = (function()
|
|
|
2406
2547
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2407
2548
|
local condition = ____value[1]
|
|
2408
2549
|
local action = ____value[2]
|
|
2409
|
-
if condition(
|
|
2410
|
-
source,
|
|
2411
|
-
____exports.Unit:of(target),
|
|
2412
|
-
data
|
|
2413
|
-
) then
|
|
2550
|
+
if condition(source, target, data) then
|
|
2414
2551
|
action(
|
|
2415
2552
|
source,
|
|
2416
|
-
|
|
2553
|
+
target,
|
|
2417
2554
|
setmetatable(
|
|
2418
2555
|
{fire = function()
|
|
2419
2556
|
UnitDamageTarget(
|
|
2420
2557
|
source.handle,
|
|
2421
|
-
target,
|
|
2558
|
+
target.handle,
|
|
2422
2559
|
data.amount,
|
|
2423
2560
|
true,
|
|
2424
2561
|
true,
|
|
2425
|
-
data.attackType,
|
|
2562
|
+
attackTypeToNative(data.attackType),
|
|
2426
2563
|
data.damageType,
|
|
2427
2564
|
data.weaponType
|
|
2428
2565
|
)
|
|
@@ -2449,30 +2586,54 @@ Unit.onDamage = __TS__New(
|
|
|
2449
2586
|
if source and source.typeId == dummyUnitId then
|
|
2450
2587
|
source = nil
|
|
2451
2588
|
end
|
|
2589
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2590
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2591
|
+
damagingEventByTarget[target] = nil
|
|
2452
2592
|
local data = {
|
|
2453
2593
|
amount = GetEventDamage(),
|
|
2454
|
-
attackType = BlzGetEventAttackType(),
|
|
2594
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2455
2595
|
damageType = BlzGetEventDamageType(),
|
|
2456
2596
|
weaponType = BlzGetEventWeaponType(),
|
|
2597
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2457
2598
|
isAttack = BlzGetEventIsAttack(),
|
|
2458
|
-
originalAmount = GetEventDamage(),
|
|
2599
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2600
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2459
2601
|
preventDeath = damageEventPreventDeath
|
|
2460
2602
|
}
|
|
2603
|
+
if damagingEvent then
|
|
2604
|
+
for key, value in pairs(damagingEvent) do
|
|
2605
|
+
if isAttribute(key) then
|
|
2606
|
+
data[key] = value
|
|
2607
|
+
end
|
|
2608
|
+
end
|
|
2609
|
+
local sourceOwner = damagingEvent[1]
|
|
2610
|
+
if sourceOwner then
|
|
2611
|
+
local targetOwner = damagingEvent[2]
|
|
2612
|
+
if damagingEvent[3] then
|
|
2613
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2614
|
+
end
|
|
2615
|
+
if damagingEvent[4] then
|
|
2616
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2617
|
+
end
|
|
2618
|
+
end
|
|
2619
|
+
end
|
|
2461
2620
|
local evData = setmetatable(
|
|
2462
2621
|
{},
|
|
2463
2622
|
{
|
|
2464
2623
|
__index = data,
|
|
2465
2624
|
__newindex = function(self, key, value)
|
|
2466
|
-
damageSetters[key]
|
|
2625
|
+
local damageSetter = damageSetters[key]
|
|
2626
|
+
if damageSetter ~= nil then
|
|
2627
|
+
damageSetter(value)
|
|
2628
|
+
end
|
|
2467
2629
|
data[key] = value
|
|
2468
2630
|
end
|
|
2469
2631
|
}
|
|
2470
2632
|
)
|
|
2471
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2472
2633
|
invoke(event, source, target, evData)
|
|
2473
2634
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2474
2635
|
local bonusHealth = math.ceil(evData.amount)
|
|
2475
|
-
target[
|
|
2636
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2476
2637
|
BlzSetUnitMaxHP(
|
|
2477
2638
|
target.handle,
|
|
2478
2639
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2486,7 +2647,7 @@ Unit.onDamage = __TS__New(
|
|
|
2486
2647
|
evData[0],
|
|
2487
2648
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2488
2649
|
)
|
|
2489
|
-
target[
|
|
2650
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2490
2651
|
SetWidgetLife(
|
|
2491
2652
|
target.handle,
|
|
2492
2653
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2511,8 +2672,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2511
2672
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2512
2673
|
function()
|
|
2513
2674
|
local unit = getTriggerUnit()
|
|
2514
|
-
|
|
2515
|
-
|
|
2675
|
+
local item = getManipulatedItem()
|
|
2676
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2677
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2516
2678
|
end
|
|
2517
2679
|
return IgnoreEvent
|
|
2518
2680
|
end
|
|
@@ -2521,9 +2683,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2521
2683
|
____exports.UnitTriggerEvent,
|
|
2522
2684
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2523
2685
|
function()
|
|
2524
|
-
local
|
|
2525
|
-
|
|
2526
|
-
|
|
2686
|
+
local unitHandle = getTriggerUnit()
|
|
2687
|
+
local itemHandle = getManipulatedItem()
|
|
2688
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (ignoreEventsItems[itemHandle] ~= nil) then
|
|
2689
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2690
|
+
local item = Item:of(itemHandle)
|
|
2691
|
+
if item.owner ~= unit then
|
|
2692
|
+
return unit, item
|
|
2693
|
+
end
|
|
2527
2694
|
end
|
|
2528
2695
|
return IgnoreEvent
|
|
2529
2696
|
end
|
|
@@ -2531,12 +2698,79 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2531
2698
|
Unit.itemUsedEvent = __TS__New(
|
|
2532
2699
|
____exports.UnitTriggerEvent,
|
|
2533
2700
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2534
|
-
function()
|
|
2701
|
+
function()
|
|
2702
|
+
local unit = getTriggerUnit()
|
|
2703
|
+
local item = getManipulatedItem()
|
|
2704
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2705
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2706
|
+
end
|
|
2707
|
+
return IgnoreEvent
|
|
2708
|
+
end
|
|
2535
2709
|
)
|
|
2536
2710
|
Unit.itemStackedEvent = __TS__New(
|
|
2537
2711
|
____exports.UnitTriggerEvent,
|
|
2538
2712
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2539
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(
|
|
2713
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2714
|
+
)
|
|
2715
|
+
__TS__ObjectDefineProperty(
|
|
2716
|
+
Unit,
|
|
2717
|
+
"itemChargesChangedEvent",
|
|
2718
|
+
{get = function(self)
|
|
2719
|
+
local event = __TS__New(Event)
|
|
2720
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2721
|
+
local unit = item.owner
|
|
2722
|
+
if unit ~= nil then
|
|
2723
|
+
invoke(event, unit, item)
|
|
2724
|
+
end
|
|
2725
|
+
end)
|
|
2726
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2727
|
+
return event
|
|
2728
|
+
end}
|
|
2729
|
+
)
|
|
2730
|
+
__TS__ObjectDefineProperty(
|
|
2731
|
+
Unit,
|
|
2732
|
+
"itemUseOrderEvent",
|
|
2733
|
+
{get = function(self)
|
|
2734
|
+
local event = __TS__New(Event)
|
|
2735
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2736
|
+
local slot = order - orderId("useslot0")
|
|
2737
|
+
local function listener(unit)
|
|
2738
|
+
local item = unit.items[slot + 1]
|
|
2739
|
+
if item ~= nil then
|
|
2740
|
+
invoke(event, unit, item)
|
|
2741
|
+
end
|
|
2742
|
+
end
|
|
2743
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2744
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2745
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2746
|
+
end
|
|
2747
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2748
|
+
return event
|
|
2749
|
+
end}
|
|
2750
|
+
)
|
|
2751
|
+
__TS__ObjectDefineProperty(
|
|
2752
|
+
Unit,
|
|
2753
|
+
"itemMoveOrderEvent",
|
|
2754
|
+
{get = function(self)
|
|
2755
|
+
local event = __TS__New(Event)
|
|
2756
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2757
|
+
local slotTo = order - orderId("moveslot0")
|
|
2758
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2759
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2760
|
+
if slotFrom ~= nil then
|
|
2761
|
+
invoke(
|
|
2762
|
+
event,
|
|
2763
|
+
unit,
|
|
2764
|
+
item,
|
|
2765
|
+
slotFrom,
|
|
2766
|
+
slotTo
|
|
2767
|
+
)
|
|
2768
|
+
end
|
|
2769
|
+
end)
|
|
2770
|
+
end
|
|
2771
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2772
|
+
return event
|
|
2773
|
+
end}
|
|
2540
2774
|
)
|
|
2541
2775
|
__TS__ObjectDefineProperty(
|
|
2542
2776
|
Unit,
|
|
@@ -2563,6 +2797,10 @@ __TS__ObjectDefineProperty(
|
|
|
2563
2797
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2564
2798
|
return destroyEvent
|
|
2565
2799
|
end}
|
|
2800
|
+
)
|
|
2801
|
+
Unit.synchronize = synchronizer(
|
|
2802
|
+
function(unit) return unit.syncId end,
|
|
2803
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2566
2804
|
);
|
|
2567
2805
|
(function(self)
|
|
2568
2806
|
local leaveAbilityIds = postcompile(function()
|