warscript 0.0.1-dev.d842bb6 → 0.0.1-dev.db137e7
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 +5 -0
- package/attributes.lua +8 -1
- package/binarywriter.lua +12 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.lua +3 -1
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +91 -46
- package/core/types/tileCell.d.ts +9 -0
- package/core/types/tileCell.lua +92 -0
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +39 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +846 -790
- package/engine/behavior.d.ts +5 -0
- package/engine/behavior.lua +106 -27
- package/engine/behaviour/ability/apply-buff.lua +1 -1
- 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 +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- 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 +5 -1
- package/engine/behaviour/ability.lua +26 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
- package/engine/behaviour/unit/stun-immunity.lua +52 -27
- package/engine/behaviour/unit.d.ts +32 -0
- package/engine/behaviour/unit.lua +185 -4
- package/engine/buff.d.ts +15 -12
- package/engine/buff.lua +133 -117
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +6 -5
- package/engine/internal/item.lua +97 -26
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- 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/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +63 -1
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -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 +9 -2
- package/engine/internal/unit.d.ts +32 -10
- package/engine/internal/unit.lua +257 -110
- 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/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/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 +0 -9
- 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/curse.lua +2 -2
- 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/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 +82 -24
- package/engine/object-data/entry/buff-type/applicable.lua +9 -4
- 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 +1 -1
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- 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 +21 -5
- package/engine/object-data/entry/unit-type.lua +214 -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-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -6
- package/engine/object-field.lua +188 -92
- 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/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +249 -10
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/objutil/buff.lua +1 -2
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +13 -0
- package/utility/callback-array.lua +46 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +3 -0
- 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/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/internal/unit.lua
CHANGED
|
@@ -53,12 +53,19 @@ local ____math = require("math")
|
|
|
53
53
|
local min = ____math.min
|
|
54
54
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
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
|
|
56
65
|
local match = string.match
|
|
57
66
|
local ____tostring = _G.tostring
|
|
58
67
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
68
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
62
69
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
70
|
local getUnitRealField = BlzGetUnitRealField
|
|
64
71
|
local getHeroStr = GetHeroStr
|
|
@@ -80,7 +87,6 @@ local getHandleId = GetHandleId
|
|
|
80
87
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
88
|
local createUnit = CreateUnit
|
|
82
89
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
90
|
local removeUnit = RemoveUnit
|
|
85
91
|
local getUnitTypeId = GetUnitTypeId
|
|
86
92
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,8 +102,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
102
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
103
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
104
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
105
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
106
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
107
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -121,15 +125,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
121
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
122
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
123
127
|
local unitAlive = UnitAlive
|
|
124
|
-
local unitAddType = UnitAddType
|
|
125
|
-
local unitRemoveType = UnitRemoveType
|
|
126
|
-
local isUnitIllusion = IsUnitIllusion
|
|
127
|
-
local isUnitType = IsUnitType
|
|
128
128
|
local isUnitAlly = IsUnitAlly
|
|
129
129
|
local isUnitEnemy = IsUnitEnemy
|
|
130
130
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
131
|
____exports.UnitClassification = {}
|
|
134
132
|
local UnitClassification = ____exports.UnitClassification
|
|
135
133
|
do
|
|
@@ -139,6 +137,7 @@ do
|
|
|
139
137
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
140
138
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
141
139
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
140
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
142
141
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
143
142
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
144
143
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -346,6 +345,9 @@ local function dispatchAbility(event)
|
|
|
346
345
|
}
|
|
347
346
|
)
|
|
348
347
|
end
|
|
348
|
+
local function damagingEventPreventRetaliation(self)
|
|
349
|
+
self[0] = true
|
|
350
|
+
end
|
|
349
351
|
local function damageEventPreventDeath(self, callback, ...)
|
|
350
352
|
if self[0] ~= nil then
|
|
351
353
|
return
|
|
@@ -357,7 +359,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
359
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
360
|
end
|
|
359
361
|
end
|
|
360
|
-
local damageSetters = {
|
|
362
|
+
local damageSetters = {
|
|
363
|
+
amount = BlzSetEventDamage,
|
|
364
|
+
attackType = function(attackType)
|
|
365
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
366
|
+
end,
|
|
367
|
+
damageType = BlzSetEventDamageType,
|
|
368
|
+
weaponType = BlzSetEventWeaponType
|
|
369
|
+
}
|
|
361
370
|
local jlimitopByOperator = {
|
|
362
371
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
372
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -435,6 +444,19 @@ __TS__SetDescriptor(
|
|
|
435
444
|
},
|
|
436
445
|
true
|
|
437
446
|
)
|
|
447
|
+
__TS__SetDescriptor(
|
|
448
|
+
UnitWeapon.prototype,
|
|
449
|
+
"allowedTargetCombatClassifications",
|
|
450
|
+
{
|
|
451
|
+
get = function(self)
|
|
452
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
453
|
+
end,
|
|
454
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
455
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
456
|
+
end
|
|
457
|
+
},
|
|
458
|
+
true
|
|
459
|
+
)
|
|
438
460
|
__TS__SetDescriptor(
|
|
439
461
|
UnitWeapon.prototype,
|
|
440
462
|
"damageBase",
|
|
@@ -639,16 +661,26 @@ local function delayHealthChecksCallback(unit)
|
|
|
639
661
|
end
|
|
640
662
|
end
|
|
641
663
|
local nextSyncId = 1
|
|
642
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
664
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
665
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
666
|
+
local function addAbility(unit, abilityTypeId)
|
|
667
|
+
local ____unitAddAbility_result_0
|
|
668
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
669
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
670
|
+
else
|
|
671
|
+
____unitAddAbility_result_0 = nil
|
|
672
|
+
end
|
|
673
|
+
return ____unitAddAbility_result_0
|
|
674
|
+
end
|
|
643
675
|
____exports.Unit = __TS__Class()
|
|
644
676
|
local Unit = ____exports.Unit
|
|
645
677
|
Unit.name = "Unit"
|
|
646
678
|
__TS__ClassExtends(Unit, Handle)
|
|
647
679
|
function Unit.prototype.____constructor(self, handle)
|
|
648
680
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
-
local
|
|
650
|
-
nextSyncId =
|
|
651
|
-
self.syncId =
|
|
681
|
+
local ____nextSyncId_1 = nextSyncId
|
|
682
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
683
|
+
self.syncId = ____nextSyncId_1
|
|
652
684
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
653
685
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
654
686
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -680,6 +712,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
680
712
|
end
|
|
681
713
|
function Unit.prototype.onDestroy(self)
|
|
682
714
|
local handle = self.handle
|
|
715
|
+
self[107] = getUnitX(handle)
|
|
716
|
+
self[108] = getUnitY(handle)
|
|
683
717
|
if not self._owner then
|
|
684
718
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
719
|
end
|
|
@@ -747,17 +781,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
747
781
|
end}
|
|
748
782
|
end
|
|
749
783
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
750
|
-
local
|
|
751
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
784
|
+
local ____combatClassification_2 = combatClassification
|
|
785
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
752
786
|
end
|
|
753
787
|
function Unit.prototype.addClassification(self, classification)
|
|
754
|
-
return
|
|
788
|
+
return UnitAddType(self.handle, classification)
|
|
755
789
|
end
|
|
756
790
|
function Unit.prototype.removeClassification(self, classification)
|
|
757
|
-
return
|
|
791
|
+
return UnitRemoveType(self.handle, classification)
|
|
758
792
|
end
|
|
759
793
|
function Unit.prototype.hasClassification(self, classification)
|
|
760
|
-
return
|
|
794
|
+
return IsUnitType(self.handle, classification)
|
|
761
795
|
end
|
|
762
796
|
function Unit.prototype.isVisibleTo(self, player)
|
|
763
797
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -766,13 +800,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
766
800
|
return isUnitInvisible(self.handle, player.handle)
|
|
767
801
|
end
|
|
768
802
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
769
|
-
local
|
|
803
|
+
local ____temp_3
|
|
770
804
|
if type(x) == "number" then
|
|
771
|
-
|
|
805
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
806
|
else
|
|
773
|
-
|
|
807
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
774
808
|
end
|
|
775
|
-
return
|
|
809
|
+
return ____temp_3
|
|
776
810
|
end
|
|
777
811
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
812
|
return isUnitAlly(
|
|
@@ -790,13 +824,25 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
824
|
if type(animation) == "number" then
|
|
791
825
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
826
|
elseif rarity then
|
|
793
|
-
|
|
827
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
828
|
else
|
|
795
829
|
setUnitAnimation(self.handle, animation)
|
|
796
830
|
end
|
|
797
831
|
end
|
|
832
|
+
function Unit.prototype.resetAnimation(self)
|
|
833
|
+
ResetUnitAnimation(self.handle)
|
|
834
|
+
end
|
|
798
835
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
836
|
+
QueueUnitAnimation(self.handle, animation)
|
|
837
|
+
end
|
|
838
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
839
|
+
if target:isAllowedTarget(self, self.firstWeapon.allowedTargetCombatClassifications) then
|
|
840
|
+
return self.firstWeapon
|
|
841
|
+
end
|
|
842
|
+
if target:isAllowedTarget(target, self.secondWeapon.allowedTargetCombatClassifications) then
|
|
843
|
+
return self.secondWeapon
|
|
844
|
+
end
|
|
845
|
+
return nil
|
|
800
846
|
end
|
|
801
847
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
848
|
self[103] = (self[103] or 0) + 1
|
|
@@ -809,21 +855,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
855
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
856
|
end
|
|
811
857
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
858
|
+
SetUnitExploded(self.handle, true)
|
|
813
859
|
killUnit(self.handle)
|
|
814
860
|
end
|
|
815
861
|
function Unit.prototype.kill(self)
|
|
816
862
|
killUnit(self.handle)
|
|
817
863
|
end
|
|
818
864
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
865
|
+
local ____ReviveHero_6 = ReviveHero
|
|
866
|
+
local ____array_5 = __TS__SparseArrayNew(self.handle, x, y)
|
|
867
|
+
local ____doEffect_4 = doEffect
|
|
868
|
+
if ____doEffect_4 == nil then
|
|
869
|
+
____doEffect_4 = false
|
|
824
870
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
871
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
872
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
827
873
|
end
|
|
828
874
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
875
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -866,17 +912,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
866
912
|
return Item:of(unitItemInSlot(self.handle, slot))
|
|
867
913
|
end
|
|
868
914
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
915
|
+
local ability = UnitAbility:of(
|
|
916
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
917
|
+
abilityId,
|
|
918
|
+
self
|
|
919
|
+
)
|
|
920
|
+
if ability ~= nil then
|
|
875
921
|
local abilities = self.abilities
|
|
876
922
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
923
|
end
|
|
879
|
-
return
|
|
924
|
+
return ability
|
|
880
925
|
end
|
|
881
926
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
927
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +935,21 @@ end
|
|
|
890
935
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
937
|
end
|
|
893
|
-
function Unit.prototype.
|
|
894
|
-
local
|
|
895
|
-
|
|
896
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
897
|
-
return nil
|
|
898
|
-
end
|
|
899
|
-
return UnitAbility:of(
|
|
900
|
-
getUnitAbility(self.handle, abilityId),
|
|
901
|
-
abilityId,
|
|
902
|
-
self
|
|
903
|
-
)
|
|
938
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
941
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
end
|
|
942
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
943
|
+
local abilities = self.abilities
|
|
944
|
+
for i = 1, #abilities do
|
|
945
|
+
if abilities[i].typeId == abilityTypeId then
|
|
946
|
+
local ability = abilities[i]
|
|
947
|
+
tremove(abilities, i)
|
|
948
|
+
ability:destroy()
|
|
949
|
+
return true
|
|
914
950
|
end
|
|
915
|
-
return true
|
|
916
951
|
end
|
|
917
|
-
return
|
|
952
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
953
|
end
|
|
919
954
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
955
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,6 +963,21 @@ end
|
|
|
928
963
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
964
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
965
|
end
|
|
966
|
+
function Unit.prototype.interruptMovement(self)
|
|
967
|
+
local handle = self.handle
|
|
968
|
+
unitDisableAbility(
|
|
969
|
+
handle,
|
|
970
|
+
fourCC("Amov"),
|
|
971
|
+
true,
|
|
972
|
+
false
|
|
973
|
+
)
|
|
974
|
+
unitDisableAbility(
|
|
975
|
+
handle,
|
|
976
|
+
fourCC("Amov"),
|
|
977
|
+
false,
|
|
978
|
+
false
|
|
979
|
+
)
|
|
980
|
+
end
|
|
931
981
|
function Unit.prototype.interruptAttack(self)
|
|
932
982
|
unitInterruptAttack(self.handle)
|
|
933
983
|
end
|
|
@@ -1201,7 +1251,7 @@ __TS__SetDescriptor(
|
|
|
1201
1251
|
Unit.prototype,
|
|
1202
1252
|
"isIllusion",
|
|
1203
1253
|
{get = function(self)
|
|
1204
|
-
return
|
|
1254
|
+
return IsUnitIllusion(self.handle)
|
|
1205
1255
|
end},
|
|
1206
1256
|
true
|
|
1207
1257
|
)
|
|
@@ -1286,6 +1336,19 @@ __TS__SetDescriptor(
|
|
|
1286
1336
|
},
|
|
1287
1337
|
true
|
|
1288
1338
|
)
|
|
1339
|
+
__TS__SetDescriptor(
|
|
1340
|
+
Unit.prototype,
|
|
1341
|
+
"primaryAttribute",
|
|
1342
|
+
{
|
|
1343
|
+
get = function(self)
|
|
1344
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1345
|
+
end,
|
|
1346
|
+
set = function(self, primaryAttribute)
|
|
1347
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1348
|
+
end
|
|
1349
|
+
},
|
|
1350
|
+
true
|
|
1351
|
+
)
|
|
1289
1352
|
__TS__SetDescriptor(
|
|
1290
1353
|
Unit.prototype,
|
|
1291
1354
|
"strengthBase",
|
|
@@ -1410,14 +1473,14 @@ __TS__SetDescriptor(
|
|
|
1410
1473
|
return not self[106]
|
|
1411
1474
|
end,
|
|
1412
1475
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1414
|
-
local
|
|
1476
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1477
|
+
local ____temp_7
|
|
1415
1478
|
if not isTeamGlowVisible then
|
|
1416
|
-
|
|
1479
|
+
____temp_7 = true
|
|
1417
1480
|
else
|
|
1418
|
-
|
|
1481
|
+
____temp_7 = nil
|
|
1419
1482
|
end
|
|
1420
|
-
self[106] =
|
|
1483
|
+
self[106] = ____temp_7
|
|
1421
1484
|
end
|
|
1422
1485
|
},
|
|
1423
1486
|
true
|
|
@@ -1426,9 +1489,9 @@ __TS__SetDescriptor(
|
|
|
1426
1489
|
Unit.prototype,
|
|
1427
1490
|
"color",
|
|
1428
1491
|
{set = function(self, color)
|
|
1429
|
-
|
|
1492
|
+
SetUnitColor(self.handle, color.handle)
|
|
1430
1493
|
if self[106] then
|
|
1431
|
-
|
|
1494
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1495
|
end
|
|
1433
1496
|
end},
|
|
1434
1497
|
true
|
|
@@ -1597,7 +1660,7 @@ __TS__SetDescriptor(
|
|
|
1597
1660
|
"x",
|
|
1598
1661
|
{
|
|
1599
1662
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1663
|
+
return self[107] or getUnitX(self.handle)
|
|
1601
1664
|
end,
|
|
1602
1665
|
set = function(self, v)
|
|
1603
1666
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1673,7 @@ __TS__SetDescriptor(
|
|
|
1610
1673
|
"y",
|
|
1611
1674
|
{
|
|
1612
1675
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1676
|
+
return self[108] or getUnitY(self.handle)
|
|
1614
1677
|
end,
|
|
1615
1678
|
set = function(self, v)
|
|
1616
1679
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1759,10 @@ __TS__SetDescriptor(
|
|
|
1696
1759
|
"gold",
|
|
1697
1760
|
{
|
|
1698
1761
|
get = function(self)
|
|
1699
|
-
return
|
|
1762
|
+
return GetResourceAmount(self.handle)
|
|
1700
1763
|
end,
|
|
1701
1764
|
set = function(self, gold)
|
|
1702
|
-
|
|
1765
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1766
|
end
|
|
1704
1767
|
},
|
|
1705
1768
|
true
|
|
@@ -1827,6 +1890,19 @@ __TS__SetDescriptor(
|
|
|
1827
1890
|
end},
|
|
1828
1891
|
true
|
|
1829
1892
|
)
|
|
1893
|
+
__TS__SetDescriptor(
|
|
1894
|
+
Unit.prototype,
|
|
1895
|
+
"movementType",
|
|
1896
|
+
{
|
|
1897
|
+
get = function(self)
|
|
1898
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1899
|
+
end,
|
|
1900
|
+
set = function(self, movementType)
|
|
1901
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1902
|
+
end
|
|
1903
|
+
},
|
|
1904
|
+
true
|
|
1905
|
+
)
|
|
1830
1906
|
__TS__SetDescriptor(
|
|
1831
1907
|
Unit.prototype,
|
|
1832
1908
|
"pathing",
|
|
@@ -2008,6 +2084,14 @@ __TS__SetDescriptor(
|
|
|
2008
2084
|
end},
|
|
2009
2085
|
true
|
|
2010
2086
|
)
|
|
2087
|
+
__TS__SetDescriptor(
|
|
2088
|
+
Unit.prototype,
|
|
2089
|
+
"targetAcquiredEvent",
|
|
2090
|
+
{get = function(self)
|
|
2091
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2092
|
+
end},
|
|
2093
|
+
true
|
|
2094
|
+
)
|
|
2011
2095
|
__TS__SetDescriptor(
|
|
2012
2096
|
Unit.prototype,
|
|
2013
2097
|
"onSelect",
|
|
@@ -2143,25 +2227,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2143
2227
|
InitializingEvent,
|
|
2144
2228
|
function(event)
|
|
2145
2229
|
local function listener(unit, id)
|
|
2146
|
-
local
|
|
2230
|
+
local ____GetSpellTargetUnit_result_10
|
|
2147
2231
|
if GetSpellTargetUnit() then
|
|
2148
|
-
|
|
2232
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2149
2233
|
else
|
|
2150
|
-
local
|
|
2234
|
+
local ____GetSpellTargetItem_result_9
|
|
2151
2235
|
if GetSpellTargetItem() then
|
|
2152
|
-
|
|
2236
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2153
2237
|
else
|
|
2154
|
-
local
|
|
2238
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2155
2239
|
if GetSpellTargetDestructable() then
|
|
2156
|
-
|
|
2240
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2157
2241
|
else
|
|
2158
|
-
|
|
2242
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2159
2243
|
end
|
|
2160
|
-
|
|
2244
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2161
2245
|
end
|
|
2162
|
-
|
|
2246
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2163
2247
|
end
|
|
2164
|
-
local target =
|
|
2248
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2165
2249
|
if target then
|
|
2166
2250
|
invoke(event, unit, id, target)
|
|
2167
2251
|
end
|
|
@@ -2369,13 +2453,19 @@ Unit.onDamaging = (function()
|
|
|
2369
2453
|
if source and source.typeId == dummyUnitId then
|
|
2370
2454
|
source = nil
|
|
2371
2455
|
end
|
|
2372
|
-
local target = BlzGetEventDamageTarget()
|
|
2456
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2457
|
+
local metadata = damageMetadataByTarget[target]
|
|
2458
|
+
damageMetadataByTarget[target] = nil
|
|
2373
2459
|
local data = {
|
|
2374
2460
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2461
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2462
|
damageType = BlzGetEventDamageType(),
|
|
2377
2463
|
weaponType = BlzGetEventWeaponType(),
|
|
2378
|
-
|
|
2464
|
+
metadata = metadata,
|
|
2465
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2466
|
+
originalAmount = GetEventDamage(),
|
|
2467
|
+
originalMetadata = metadata,
|
|
2468
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2379
2469
|
}
|
|
2380
2470
|
if data.isAttack and source then
|
|
2381
2471
|
local weapon = BlzGetUnitWeaponBooleanField(source.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, 1) and (BlzGetUnitWeaponBooleanField(source.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, 0) and -1 or 1) or 0
|
|
@@ -2389,18 +2479,36 @@ Unit.onDamaging = (function()
|
|
|
2389
2479
|
invoke(
|
|
2390
2480
|
event,
|
|
2391
2481
|
source,
|
|
2392
|
-
|
|
2482
|
+
target,
|
|
2393
2483
|
setmetatable(
|
|
2394
2484
|
{},
|
|
2395
2485
|
{
|
|
2396
2486
|
__index = data,
|
|
2397
2487
|
__newindex = function(self, key, value)
|
|
2398
|
-
damageSetters[key]
|
|
2488
|
+
local damageSetter = damageSetters[key]
|
|
2489
|
+
if damageSetter ~= nil then
|
|
2490
|
+
damageSetter(value)
|
|
2491
|
+
end
|
|
2399
2492
|
data[key] = value
|
|
2400
2493
|
end
|
|
2401
2494
|
}
|
|
2402
2495
|
)
|
|
2403
2496
|
)
|
|
2497
|
+
if data[0] and source then
|
|
2498
|
+
local sourceOwner = source.owner.handle
|
|
2499
|
+
data[1] = sourceOwner
|
|
2500
|
+
local targetOwner = target.owner.handle
|
|
2501
|
+
data[2] = targetOwner
|
|
2502
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2503
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2504
|
+
data[3] = true
|
|
2505
|
+
end
|
|
2506
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2507
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2508
|
+
data[4] = true
|
|
2509
|
+
end
|
|
2510
|
+
end
|
|
2511
|
+
damagingEventByTarget[target] = data
|
|
2404
2512
|
return
|
|
2405
2513
|
end
|
|
2406
2514
|
BlzSetEventDamage(0)
|
|
@@ -2408,7 +2516,7 @@ Unit.onDamaging = (function()
|
|
|
2408
2516
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2409
2517
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2410
2518
|
local sourceOwner = source.owner.handle
|
|
2411
|
-
local targetOwner =
|
|
2519
|
+
local targetOwner = target.owner.handle
|
|
2412
2520
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2413
2521
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2414
2522
|
Timer:run(function()
|
|
@@ -2424,23 +2532,19 @@ Unit.onDamaging = (function()
|
|
|
2424
2532
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2425
2533
|
local condition = ____value[1]
|
|
2426
2534
|
local action = ____value[2]
|
|
2427
|
-
if condition(
|
|
2428
|
-
source,
|
|
2429
|
-
____exports.Unit:of(target),
|
|
2430
|
-
data
|
|
2431
|
-
) then
|
|
2535
|
+
if condition(source, target, data) then
|
|
2432
2536
|
action(
|
|
2433
2537
|
source,
|
|
2434
|
-
|
|
2538
|
+
target,
|
|
2435
2539
|
setmetatable(
|
|
2436
2540
|
{fire = function()
|
|
2437
2541
|
UnitDamageTarget(
|
|
2438
2542
|
source.handle,
|
|
2439
|
-
target,
|
|
2543
|
+
target.handle,
|
|
2440
2544
|
data.amount,
|
|
2441
2545
|
true,
|
|
2442
2546
|
true,
|
|
2443
|
-
data.attackType,
|
|
2547
|
+
attackTypeToNative(data.attackType),
|
|
2444
2548
|
data.damageType,
|
|
2445
2549
|
data.weaponType
|
|
2446
2550
|
)
|
|
@@ -2467,26 +2571,50 @@ Unit.onDamage = __TS__New(
|
|
|
2467
2571
|
if source and source.typeId == dummyUnitId then
|
|
2468
2572
|
source = nil
|
|
2469
2573
|
end
|
|
2574
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2575
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2576
|
+
damagingEventByTarget[target] = nil
|
|
2470
2577
|
local data = {
|
|
2471
2578
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2579
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2580
|
damageType = BlzGetEventDamageType(),
|
|
2474
2581
|
weaponType = BlzGetEventWeaponType(),
|
|
2582
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2475
2583
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
-
originalAmount = GetEventDamage(),
|
|
2584
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2585
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2477
2586
|
preventDeath = damageEventPreventDeath
|
|
2478
2587
|
}
|
|
2588
|
+
if damagingEvent then
|
|
2589
|
+
for key, value in pairs(damagingEvent) do
|
|
2590
|
+
if isAttribute(key) then
|
|
2591
|
+
data[key] = value
|
|
2592
|
+
end
|
|
2593
|
+
end
|
|
2594
|
+
local sourceOwner = damagingEvent[1]
|
|
2595
|
+
if sourceOwner then
|
|
2596
|
+
local targetOwner = damagingEvent[2]
|
|
2597
|
+
if damagingEvent[3] then
|
|
2598
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2599
|
+
end
|
|
2600
|
+
if damagingEvent[4] then
|
|
2601
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2602
|
+
end
|
|
2603
|
+
end
|
|
2604
|
+
end
|
|
2479
2605
|
local evData = setmetatable(
|
|
2480
2606
|
{},
|
|
2481
2607
|
{
|
|
2482
2608
|
__index = data,
|
|
2483
2609
|
__newindex = function(self, key, value)
|
|
2484
|
-
damageSetters[key]
|
|
2610
|
+
local damageSetter = damageSetters[key]
|
|
2611
|
+
if damageSetter ~= nil then
|
|
2612
|
+
damageSetter(value)
|
|
2613
|
+
end
|
|
2485
2614
|
data[key] = value
|
|
2486
2615
|
end
|
|
2487
2616
|
}
|
|
2488
2617
|
)
|
|
2489
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2490
2618
|
invoke(event, source, target, evData)
|
|
2491
2619
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2492
2620
|
local bonusHealth = math.ceil(evData.amount)
|
|
@@ -2540,10 +2668,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2540
2668
|
____exports.UnitTriggerEvent,
|
|
2541
2669
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2542
2670
|
function()
|
|
2543
|
-
local
|
|
2544
|
-
local
|
|
2545
|
-
if getUnitTypeId(
|
|
2546
|
-
|
|
2671
|
+
local unitHandle = getTriggerUnit()
|
|
2672
|
+
local itemHandle = getManipulatedItem()
|
|
2673
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (ignoreEventsItems[itemHandle] ~= nil) then
|
|
2674
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2675
|
+
local item = Item:of(itemHandle)
|
|
2676
|
+
if item.owner ~= unit then
|
|
2677
|
+
return unit, item
|
|
2678
|
+
end
|
|
2547
2679
|
end
|
|
2548
2680
|
return IgnoreEvent
|
|
2549
2681
|
end
|
|
@@ -2563,7 +2695,22 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2563
2695
|
Unit.itemStackedEvent = __TS__New(
|
|
2564
2696
|
____exports.UnitTriggerEvent,
|
|
2565
2697
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(
|
|
2698
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2699
|
+
)
|
|
2700
|
+
__TS__ObjectDefineProperty(
|
|
2701
|
+
Unit,
|
|
2702
|
+
"itemChargesChangedEvent",
|
|
2703
|
+
{get = function(self)
|
|
2704
|
+
local event = __TS__New(Event)
|
|
2705
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2706
|
+
local unit = item.owner
|
|
2707
|
+
if unit ~= nil then
|
|
2708
|
+
invoke(event, unit, item)
|
|
2709
|
+
end
|
|
2710
|
+
end)
|
|
2711
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2712
|
+
return event
|
|
2713
|
+
end}
|
|
2567
2714
|
)
|
|
2568
2715
|
__TS__ObjectDefineProperty(
|
|
2569
2716
|
Unit,
|