warscript 0.0.1-dev.42d21a8 → 0.0.1-dev.448dcfb
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/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 +10 -12
- package/core/types/player.lua +3 -1
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +79 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +25 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +844 -788
- package/engine/behavior.d.ts +2 -0
- package/engine/behavior.lua +53 -27
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- 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 +7 -2
- package/engine/behaviour/ability.lua +42 -24
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +28 -0
- package/engine/behaviour/unit.lua +163 -4
- package/engine/buff.d.ts +57 -41
- package/engine/buff.lua +301 -228
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +48 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +141 -35
- 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/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/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +62 -0
- package/engine/internal/unit/add-item-to-slot.lua +6 -4
- 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 +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- package/engine/internal/unit/item.lua +1 -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 +31 -8
- package/engine/internal/unit.lua +262 -107
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- 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/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 +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/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 +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 +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/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/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +3 -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 +4 -0
- package/utility/lua-maps.lua +20 -0
- 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
|
|
@@ -77,9 +84,9 @@ local setUnitScale = SetUnitScale
|
|
|
77
84
|
local setUnitPosition = SetUnitPosition
|
|
78
85
|
local setUnitTimeScale = SetUnitTimeScale
|
|
79
86
|
local getHandleId = GetHandleId
|
|
87
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
80
88
|
local createUnit = CreateUnit
|
|
81
89
|
local killUnit = KillUnit
|
|
82
|
-
local setUnitExploded = SetUnitExploded
|
|
83
90
|
local removeUnit = RemoveUnit
|
|
84
91
|
local getUnitTypeId = GetUnitTypeId
|
|
85
92
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -95,8 +102,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
95
102
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
96
103
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
97
104
|
local isUnitInRange = IsUnitInRange
|
|
98
|
-
local setResourceAmount = SetResourceAmount
|
|
99
|
-
local getResourceAmount = GetResourceAmount
|
|
100
105
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
101
106
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
102
107
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -120,15 +125,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
120
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
121
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
122
127
|
local unitAlive = UnitAlive
|
|
123
|
-
local unitAddType = UnitAddType
|
|
124
|
-
local unitRemoveType = UnitRemoveType
|
|
125
|
-
local isUnitIllusion = IsUnitIllusion
|
|
126
|
-
local isUnitType = IsUnitType
|
|
127
128
|
local isUnitAlly = IsUnitAlly
|
|
128
129
|
local isUnitEnemy = IsUnitEnemy
|
|
129
130
|
local getOwningPlayer = GetOwningPlayer
|
|
130
|
-
local setUnitColor = SetUnitColor
|
|
131
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
132
131
|
____exports.UnitClassification = {}
|
|
133
132
|
local UnitClassification = ____exports.UnitClassification
|
|
134
133
|
do
|
|
@@ -138,6 +137,7 @@ do
|
|
|
138
137
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
139
138
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
140
139
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
140
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
141
141
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
142
142
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
143
143
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -345,6 +345,9 @@ local function dispatchAbility(event)
|
|
|
345
345
|
}
|
|
346
346
|
)
|
|
347
347
|
end
|
|
348
|
+
local function damagingEventPreventRetaliation(self)
|
|
349
|
+
self[0] = true
|
|
350
|
+
end
|
|
348
351
|
local function damageEventPreventDeath(self, callback, ...)
|
|
349
352
|
if self[0] ~= nil then
|
|
350
353
|
return
|
|
@@ -356,7 +359,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
356
359
|
rawset(self, 1 + i, (select(i, ...)))
|
|
357
360
|
end
|
|
358
361
|
end
|
|
359
|
-
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
|
+
}
|
|
360
370
|
local jlimitopByOperator = {
|
|
361
371
|
[0] = LESS_THAN_OR_EQUAL,
|
|
362
372
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -434,6 +444,19 @@ __TS__SetDescriptor(
|
|
|
434
444
|
},
|
|
435
445
|
true
|
|
436
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
|
+
)
|
|
437
460
|
__TS__SetDescriptor(
|
|
438
461
|
UnitWeapon.prototype,
|
|
439
462
|
"damageBase",
|
|
@@ -638,16 +661,26 @@ local function delayHealthChecksCallback(unit)
|
|
|
638
661
|
end
|
|
639
662
|
end
|
|
640
663
|
local nextSyncId = 1
|
|
641
|
-
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
|
|
642
675
|
____exports.Unit = __TS__Class()
|
|
643
676
|
local Unit = ____exports.Unit
|
|
644
677
|
Unit.name = "Unit"
|
|
645
678
|
__TS__ClassExtends(Unit, Handle)
|
|
646
679
|
function Unit.prototype.____constructor(self, handle)
|
|
647
680
|
Handle.prototype.____constructor(self, handle)
|
|
648
|
-
local
|
|
649
|
-
nextSyncId =
|
|
650
|
-
self.syncId =
|
|
681
|
+
local ____nextSyncId_1 = nextSyncId
|
|
682
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
683
|
+
self.syncId = ____nextSyncId_1
|
|
651
684
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
652
685
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
653
686
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -679,6 +712,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
679
712
|
end
|
|
680
713
|
function Unit.prototype.onDestroy(self)
|
|
681
714
|
local handle = self.handle
|
|
715
|
+
self[107] = getUnitX(handle)
|
|
716
|
+
self[108] = getUnitY(handle)
|
|
682
717
|
if not self._owner then
|
|
683
718
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
684
719
|
end
|
|
@@ -746,17 +781,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
746
781
|
end}
|
|
747
782
|
end
|
|
748
783
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
749
|
-
local
|
|
750
|
-
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
|
|
751
786
|
end
|
|
752
787
|
function Unit.prototype.addClassification(self, classification)
|
|
753
|
-
return
|
|
788
|
+
return UnitAddType(self.handle, classification)
|
|
754
789
|
end
|
|
755
790
|
function Unit.prototype.removeClassification(self, classification)
|
|
756
|
-
return
|
|
791
|
+
return UnitRemoveType(self.handle, classification)
|
|
757
792
|
end
|
|
758
793
|
function Unit.prototype.hasClassification(self, classification)
|
|
759
|
-
return
|
|
794
|
+
return IsUnitType(self.handle, classification)
|
|
760
795
|
end
|
|
761
796
|
function Unit.prototype.isVisibleTo(self, player)
|
|
762
797
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -765,13 +800,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
765
800
|
return isUnitInvisible(self.handle, player.handle)
|
|
766
801
|
end
|
|
767
802
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
768
|
-
local
|
|
803
|
+
local ____temp_3
|
|
769
804
|
if type(x) == "number" then
|
|
770
|
-
|
|
805
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
771
806
|
else
|
|
772
|
-
|
|
807
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
773
808
|
end
|
|
774
|
-
return
|
|
809
|
+
return ____temp_3
|
|
775
810
|
end
|
|
776
811
|
function Unit.prototype.isAllyOf(self, unit)
|
|
777
812
|
return isUnitAlly(
|
|
@@ -789,13 +824,25 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
789
824
|
if type(animation) == "number" then
|
|
790
825
|
setUnitAnimationByIndex(self.handle, animation)
|
|
791
826
|
elseif rarity then
|
|
792
|
-
|
|
827
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
793
828
|
else
|
|
794
829
|
setUnitAnimation(self.handle, animation)
|
|
795
830
|
end
|
|
796
831
|
end
|
|
832
|
+
function Unit.prototype.resetAnimation(self)
|
|
833
|
+
ResetUnitAnimation(self.handle)
|
|
834
|
+
end
|
|
797
835
|
function Unit.prototype.queueAnimation(self, animation)
|
|
798
|
-
|
|
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
|
|
799
846
|
end
|
|
800
847
|
function Unit.prototype.delayHealthChecks(self)
|
|
801
848
|
self[103] = (self[103] or 0) + 1
|
|
@@ -808,21 +855,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
808
855
|
return IsUnitSelected(self.handle, player.handle)
|
|
809
856
|
end
|
|
810
857
|
function Unit.prototype.explode(self)
|
|
811
|
-
|
|
858
|
+
SetUnitExploded(self.handle, true)
|
|
812
859
|
killUnit(self.handle)
|
|
813
860
|
end
|
|
814
861
|
function Unit.prototype.kill(self)
|
|
815
862
|
killUnit(self.handle)
|
|
816
863
|
end
|
|
817
864
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
818
|
-
local
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
if
|
|
822
|
-
|
|
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
|
|
823
870
|
end
|
|
824
|
-
__TS__SparseArrayPush(
|
|
825
|
-
|
|
871
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
872
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
826
873
|
end
|
|
827
874
|
function Unit.prototype.healTarget(self, target, amount)
|
|
828
875
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -865,17 +912,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
865
912
|
return Item:of(unitItemInSlot(self.handle, slot))
|
|
866
913
|
end
|
|
867
914
|
function Unit.prototype.addAbility(self, abilityId)
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
915
|
+
local ability = UnitAbility:of(
|
|
916
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
917
|
+
abilityId,
|
|
918
|
+
self
|
|
919
|
+
)
|
|
920
|
+
if ability ~= nil then
|
|
874
921
|
local abilities = self.abilities
|
|
875
922
|
abilities[#abilities + 1] = ability
|
|
876
|
-
return ability
|
|
877
923
|
end
|
|
878
|
-
return
|
|
924
|
+
return ability
|
|
879
925
|
end
|
|
880
926
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
881
927
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,28 +936,17 @@ function Unit.prototype.hasAbility(self, abilityId)
|
|
|
890
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
891
937
|
end
|
|
892
938
|
function Unit.prototype.getAbilityById(self, abilityId)
|
|
893
|
-
local
|
|
894
|
-
|
|
895
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
896
|
-
return nil
|
|
897
|
-
end
|
|
898
|
-
return UnitAbility:of(
|
|
899
|
-
getUnitAbility(self.handle, abilityId),
|
|
900
|
-
abilityId,
|
|
901
|
-
self
|
|
902
|
-
)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
903
941
|
end
|
|
904
942
|
function Unit.prototype.removeAbility(self, abilityId)
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
return true
|
|
912
|
-
end
|
|
943
|
+
local abilities = self.abilities
|
|
944
|
+
for i = 1, #abilities do
|
|
945
|
+
if abilities[i].typeId == abilityId then
|
|
946
|
+
abilities[i]:destroy()
|
|
947
|
+
tremove(abilities, i)
|
|
948
|
+
return true
|
|
913
949
|
end
|
|
914
|
-
return true
|
|
915
950
|
end
|
|
916
951
|
return false
|
|
917
952
|
end
|
|
@@ -927,6 +962,21 @@ end
|
|
|
927
962
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
928
963
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
929
964
|
end
|
|
965
|
+
function Unit.prototype.interruptMovement(self)
|
|
966
|
+
local handle = self.handle
|
|
967
|
+
unitDisableAbility(
|
|
968
|
+
handle,
|
|
969
|
+
fourCC("Amov"),
|
|
970
|
+
true,
|
|
971
|
+
false
|
|
972
|
+
)
|
|
973
|
+
unitDisableAbility(
|
|
974
|
+
handle,
|
|
975
|
+
fourCC("Amov"),
|
|
976
|
+
false,
|
|
977
|
+
false
|
|
978
|
+
)
|
|
979
|
+
end
|
|
930
980
|
function Unit.prototype.interruptAttack(self)
|
|
931
981
|
unitInterruptAttack(self.handle)
|
|
932
982
|
end
|
|
@@ -1200,7 +1250,15 @@ __TS__SetDescriptor(
|
|
|
1200
1250
|
Unit.prototype,
|
|
1201
1251
|
"isIllusion",
|
|
1202
1252
|
{get = function(self)
|
|
1203
|
-
return
|
|
1253
|
+
return IsUnitIllusion(self.handle)
|
|
1254
|
+
end},
|
|
1255
|
+
true
|
|
1256
|
+
)
|
|
1257
|
+
__TS__SetDescriptor(
|
|
1258
|
+
Unit.prototype,
|
|
1259
|
+
"isStunned",
|
|
1260
|
+
{get = function(self)
|
|
1261
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1204
1262
|
end},
|
|
1205
1263
|
true
|
|
1206
1264
|
)
|
|
@@ -1277,6 +1335,19 @@ __TS__SetDescriptor(
|
|
|
1277
1335
|
},
|
|
1278
1336
|
true
|
|
1279
1337
|
)
|
|
1338
|
+
__TS__SetDescriptor(
|
|
1339
|
+
Unit.prototype,
|
|
1340
|
+
"primaryAttribute",
|
|
1341
|
+
{
|
|
1342
|
+
get = function(self)
|
|
1343
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1344
|
+
end,
|
|
1345
|
+
set = function(self, primaryAttribute)
|
|
1346
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1347
|
+
end
|
|
1348
|
+
},
|
|
1349
|
+
true
|
|
1350
|
+
)
|
|
1280
1351
|
__TS__SetDescriptor(
|
|
1281
1352
|
Unit.prototype,
|
|
1282
1353
|
"strengthBase",
|
|
@@ -1401,14 +1472,14 @@ __TS__SetDescriptor(
|
|
|
1401
1472
|
return not self[106]
|
|
1402
1473
|
end,
|
|
1403
1474
|
set = function(self, isTeamGlowVisible)
|
|
1404
|
-
|
|
1405
|
-
local
|
|
1475
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1476
|
+
local ____temp_7
|
|
1406
1477
|
if not isTeamGlowVisible then
|
|
1407
|
-
|
|
1478
|
+
____temp_7 = true
|
|
1408
1479
|
else
|
|
1409
|
-
|
|
1480
|
+
____temp_7 = nil
|
|
1410
1481
|
end
|
|
1411
|
-
self[106] =
|
|
1482
|
+
self[106] = ____temp_7
|
|
1412
1483
|
end
|
|
1413
1484
|
},
|
|
1414
1485
|
true
|
|
@@ -1417,9 +1488,9 @@ __TS__SetDescriptor(
|
|
|
1417
1488
|
Unit.prototype,
|
|
1418
1489
|
"color",
|
|
1419
1490
|
{set = function(self, color)
|
|
1420
|
-
|
|
1491
|
+
SetUnitColor(self.handle, color.handle)
|
|
1421
1492
|
if self[106] then
|
|
1422
|
-
|
|
1493
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1423
1494
|
end
|
|
1424
1495
|
end},
|
|
1425
1496
|
true
|
|
@@ -1588,7 +1659,7 @@ __TS__SetDescriptor(
|
|
|
1588
1659
|
"x",
|
|
1589
1660
|
{
|
|
1590
1661
|
get = function(self)
|
|
1591
|
-
return getUnitX(self.handle)
|
|
1662
|
+
return self[107] or getUnitX(self.handle)
|
|
1592
1663
|
end,
|
|
1593
1664
|
set = function(self, v)
|
|
1594
1665
|
SetUnitX(self.handle, v)
|
|
@@ -1601,7 +1672,7 @@ __TS__SetDescriptor(
|
|
|
1601
1672
|
"y",
|
|
1602
1673
|
{
|
|
1603
1674
|
get = function(self)
|
|
1604
|
-
return getUnitY(self.handle)
|
|
1675
|
+
return self[108] or getUnitY(self.handle)
|
|
1605
1676
|
end,
|
|
1606
1677
|
set = function(self, v)
|
|
1607
1678
|
SetUnitY(self.handle, v)
|
|
@@ -1687,10 +1758,10 @@ __TS__SetDescriptor(
|
|
|
1687
1758
|
"gold",
|
|
1688
1759
|
{
|
|
1689
1760
|
get = function(self)
|
|
1690
|
-
return
|
|
1761
|
+
return GetResourceAmount(self.handle)
|
|
1691
1762
|
end,
|
|
1692
1763
|
set = function(self, gold)
|
|
1693
|
-
|
|
1764
|
+
SetResourceAmount(self.handle, gold)
|
|
1694
1765
|
end
|
|
1695
1766
|
},
|
|
1696
1767
|
true
|
|
@@ -1818,6 +1889,19 @@ __TS__SetDescriptor(
|
|
|
1818
1889
|
end},
|
|
1819
1890
|
true
|
|
1820
1891
|
)
|
|
1892
|
+
__TS__SetDescriptor(
|
|
1893
|
+
Unit.prototype,
|
|
1894
|
+
"movementType",
|
|
1895
|
+
{
|
|
1896
|
+
get = function(self)
|
|
1897
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1898
|
+
end,
|
|
1899
|
+
set = function(self, movementType)
|
|
1900
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1901
|
+
end
|
|
1902
|
+
},
|
|
1903
|
+
true
|
|
1904
|
+
)
|
|
1821
1905
|
__TS__SetDescriptor(
|
|
1822
1906
|
Unit.prototype,
|
|
1823
1907
|
"pathing",
|
|
@@ -1999,6 +2083,14 @@ __TS__SetDescriptor(
|
|
|
1999
2083
|
end},
|
|
2000
2084
|
true
|
|
2001
2085
|
)
|
|
2086
|
+
__TS__SetDescriptor(
|
|
2087
|
+
Unit.prototype,
|
|
2088
|
+
"targetAcquiredEvent",
|
|
2089
|
+
{get = function(self)
|
|
2090
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2091
|
+
end},
|
|
2092
|
+
true
|
|
2093
|
+
)
|
|
2002
2094
|
__TS__SetDescriptor(
|
|
2003
2095
|
Unit.prototype,
|
|
2004
2096
|
"onSelect",
|
|
@@ -2134,25 +2226,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2134
2226
|
InitializingEvent,
|
|
2135
2227
|
function(event)
|
|
2136
2228
|
local function listener(unit, id)
|
|
2137
|
-
local
|
|
2229
|
+
local ____GetSpellTargetUnit_result_10
|
|
2138
2230
|
if GetSpellTargetUnit() then
|
|
2139
|
-
|
|
2231
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2140
2232
|
else
|
|
2141
|
-
local
|
|
2233
|
+
local ____GetSpellTargetItem_result_9
|
|
2142
2234
|
if GetSpellTargetItem() then
|
|
2143
|
-
|
|
2235
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2144
2236
|
else
|
|
2145
|
-
local
|
|
2237
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2146
2238
|
if GetSpellTargetDestructable() then
|
|
2147
|
-
|
|
2239
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2148
2240
|
else
|
|
2149
|
-
|
|
2241
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2150
2242
|
end
|
|
2151
|
-
|
|
2243
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2152
2244
|
end
|
|
2153
|
-
|
|
2245
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2154
2246
|
end
|
|
2155
|
-
local target =
|
|
2247
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2156
2248
|
if target then
|
|
2157
2249
|
invoke(event, unit, id, target)
|
|
2158
2250
|
end
|
|
@@ -2360,13 +2452,19 @@ Unit.onDamaging = (function()
|
|
|
2360
2452
|
if source and source.typeId == dummyUnitId then
|
|
2361
2453
|
source = nil
|
|
2362
2454
|
end
|
|
2363
|
-
local target = BlzGetEventDamageTarget()
|
|
2455
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2456
|
+
local metadata = damageMetadataByTarget[target]
|
|
2457
|
+
damageMetadataByTarget[target] = nil
|
|
2364
2458
|
local data = {
|
|
2365
2459
|
amount = GetEventDamage(),
|
|
2366
|
-
attackType = BlzGetEventAttackType(),
|
|
2460
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2367
2461
|
damageType = BlzGetEventDamageType(),
|
|
2368
2462
|
weaponType = BlzGetEventWeaponType(),
|
|
2369
|
-
|
|
2463
|
+
metadata = metadata,
|
|
2464
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
+
originalAmount = GetEventDamage(),
|
|
2466
|
+
originalMetadata = metadata,
|
|
2467
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2370
2468
|
}
|
|
2371
2469
|
if data.isAttack and source then
|
|
2372
2470
|
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
|
|
@@ -2380,18 +2478,36 @@ Unit.onDamaging = (function()
|
|
|
2380
2478
|
invoke(
|
|
2381
2479
|
event,
|
|
2382
2480
|
source,
|
|
2383
|
-
|
|
2481
|
+
target,
|
|
2384
2482
|
setmetatable(
|
|
2385
2483
|
{},
|
|
2386
2484
|
{
|
|
2387
2485
|
__index = data,
|
|
2388
2486
|
__newindex = function(self, key, value)
|
|
2389
|
-
damageSetters[key]
|
|
2487
|
+
local damageSetter = damageSetters[key]
|
|
2488
|
+
if damageSetter ~= nil then
|
|
2489
|
+
damageSetter(value)
|
|
2490
|
+
end
|
|
2390
2491
|
data[key] = value
|
|
2391
2492
|
end
|
|
2392
2493
|
}
|
|
2393
2494
|
)
|
|
2394
2495
|
)
|
|
2496
|
+
if data[0] and source then
|
|
2497
|
+
local sourceOwner = source.owner.handle
|
|
2498
|
+
data[1] = sourceOwner
|
|
2499
|
+
local targetOwner = target.owner.handle
|
|
2500
|
+
data[2] = targetOwner
|
|
2501
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2502
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2503
|
+
data[3] = true
|
|
2504
|
+
end
|
|
2505
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2506
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2507
|
+
data[4] = true
|
|
2508
|
+
end
|
|
2509
|
+
end
|
|
2510
|
+
damagingEventByTarget[target] = data
|
|
2395
2511
|
return
|
|
2396
2512
|
end
|
|
2397
2513
|
BlzSetEventDamage(0)
|
|
@@ -2399,7 +2515,7 @@ Unit.onDamaging = (function()
|
|
|
2399
2515
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2400
2516
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2401
2517
|
local sourceOwner = source.owner.handle
|
|
2402
|
-
local targetOwner =
|
|
2518
|
+
local targetOwner = target.owner.handle
|
|
2403
2519
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2404
2520
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2405
2521
|
Timer:run(function()
|
|
@@ -2415,23 +2531,19 @@ Unit.onDamaging = (function()
|
|
|
2415
2531
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2416
2532
|
local condition = ____value[1]
|
|
2417
2533
|
local action = ____value[2]
|
|
2418
|
-
if condition(
|
|
2419
|
-
source,
|
|
2420
|
-
____exports.Unit:of(target),
|
|
2421
|
-
data
|
|
2422
|
-
) then
|
|
2534
|
+
if condition(source, target, data) then
|
|
2423
2535
|
action(
|
|
2424
2536
|
source,
|
|
2425
|
-
|
|
2537
|
+
target,
|
|
2426
2538
|
setmetatable(
|
|
2427
2539
|
{fire = function()
|
|
2428
2540
|
UnitDamageTarget(
|
|
2429
2541
|
source.handle,
|
|
2430
|
-
target,
|
|
2542
|
+
target.handle,
|
|
2431
2543
|
data.amount,
|
|
2432
2544
|
true,
|
|
2433
2545
|
true,
|
|
2434
|
-
data.attackType,
|
|
2546
|
+
attackTypeToNative(data.attackType),
|
|
2435
2547
|
data.damageType,
|
|
2436
2548
|
data.weaponType
|
|
2437
2549
|
)
|
|
@@ -2458,26 +2570,50 @@ Unit.onDamage = __TS__New(
|
|
|
2458
2570
|
if source and source.typeId == dummyUnitId then
|
|
2459
2571
|
source = nil
|
|
2460
2572
|
end
|
|
2573
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2574
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2575
|
+
damagingEventByTarget[target] = nil
|
|
2461
2576
|
local data = {
|
|
2462
2577
|
amount = GetEventDamage(),
|
|
2463
|
-
attackType = BlzGetEventAttackType(),
|
|
2578
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2464
2579
|
damageType = BlzGetEventDamageType(),
|
|
2465
2580
|
weaponType = BlzGetEventWeaponType(),
|
|
2581
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2466
2582
|
isAttack = BlzGetEventIsAttack(),
|
|
2467
|
-
originalAmount = GetEventDamage(),
|
|
2583
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2584
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2468
2585
|
preventDeath = damageEventPreventDeath
|
|
2469
2586
|
}
|
|
2587
|
+
if damagingEvent then
|
|
2588
|
+
for key, value in pairs(damagingEvent) do
|
|
2589
|
+
if isAttribute(key) then
|
|
2590
|
+
data[key] = value
|
|
2591
|
+
end
|
|
2592
|
+
end
|
|
2593
|
+
local sourceOwner = damagingEvent[1]
|
|
2594
|
+
if sourceOwner then
|
|
2595
|
+
local targetOwner = damagingEvent[2]
|
|
2596
|
+
if damagingEvent[3] then
|
|
2597
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2598
|
+
end
|
|
2599
|
+
if damagingEvent[4] then
|
|
2600
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2601
|
+
end
|
|
2602
|
+
end
|
|
2603
|
+
end
|
|
2470
2604
|
local evData = setmetatable(
|
|
2471
2605
|
{},
|
|
2472
2606
|
{
|
|
2473
2607
|
__index = data,
|
|
2474
2608
|
__newindex = function(self, key, value)
|
|
2475
|
-
damageSetters[key]
|
|
2609
|
+
local damageSetter = damageSetters[key]
|
|
2610
|
+
if damageSetter ~= nil then
|
|
2611
|
+
damageSetter(value)
|
|
2612
|
+
end
|
|
2476
2613
|
data[key] = value
|
|
2477
2614
|
end
|
|
2478
2615
|
}
|
|
2479
2616
|
)
|
|
2480
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2481
2617
|
invoke(event, source, target, evData)
|
|
2482
2618
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2483
2619
|
local bonusHealth = math.ceil(evData.amount)
|
|
@@ -2531,10 +2667,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2531
2667
|
____exports.UnitTriggerEvent,
|
|
2532
2668
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2533
2669
|
function()
|
|
2534
|
-
local
|
|
2535
|
-
local
|
|
2536
|
-
if getUnitTypeId(
|
|
2537
|
-
|
|
2670
|
+
local unitHandle = getTriggerUnit()
|
|
2671
|
+
local itemHandle = getManipulatedItem()
|
|
2672
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (ignoreEventsItems[itemHandle] ~= nil) then
|
|
2673
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2674
|
+
local item = Item:of(itemHandle)
|
|
2675
|
+
if item.owner ~= unit then
|
|
2676
|
+
return unit, item
|
|
2677
|
+
end
|
|
2538
2678
|
end
|
|
2539
2679
|
return IgnoreEvent
|
|
2540
2680
|
end
|
|
@@ -2554,7 +2694,22 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2694
|
Unit.itemStackedEvent = __TS__New(
|
|
2555
2695
|
____exports.UnitTriggerEvent,
|
|
2556
2696
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2557
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(
|
|
2697
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2698
|
+
)
|
|
2699
|
+
__TS__ObjectDefineProperty(
|
|
2700
|
+
Unit,
|
|
2701
|
+
"itemChargesChangedEvent",
|
|
2702
|
+
{get = function(self)
|
|
2703
|
+
local event = __TS__New(Event)
|
|
2704
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2705
|
+
local unit = item.owner
|
|
2706
|
+
if unit ~= nil then
|
|
2707
|
+
invoke(event, unit, item)
|
|
2708
|
+
end
|
|
2709
|
+
end)
|
|
2710
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2711
|
+
return event
|
|
2712
|
+
end}
|
|
2558
2713
|
)
|
|
2559
2714
|
__TS__ObjectDefineProperty(
|
|
2560
2715
|
Unit,
|