warscript 0.0.1-dev.42d21a8 → 0.0.1-dev.4381d09
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 +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 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +9 -0
- package/core/types/tileCell.lua +92 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -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.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 +7 -3
- package/engine/behaviour/unit/stun-immunity.lua +52 -27
- package/engine/behaviour/unit.d.ts +34 -0
- package/engine/behaviour/unit.lua +190 -4
- package/engine/buff.d.ts +57 -44
- package/engine/buff.lua +273 -221
- 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 +20 -19
- package/engine/internal/item.lua +191 -74
- 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 +98 -9
- 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 +42 -14
- package/engine/internal/unit.d.ts +33 -10
- package/engine/internal/unit.lua +266 -110
- 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 +85 -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/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 +2 -3
- 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 +17 -0
- package/utility/callback-array.lua +61 -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 +5 -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
|
@@ -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)
|
|
@@ -889,31 +935,21 @@ end
|
|
|
889
935
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
890
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
891
937
|
end
|
|
892
|
-
function Unit.prototype.
|
|
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
|
-
)
|
|
938
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
903
941
|
end
|
|
904
|
-
function Unit.prototype.removeAbility(self,
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
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
|
|
913
950
|
end
|
|
914
|
-
return true
|
|
915
951
|
end
|
|
916
|
-
return
|
|
952
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
917
953
|
end
|
|
918
954
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
919
955
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -927,6 +963,21 @@ end
|
|
|
927
963
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
928
964
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
929
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
|
|
930
981
|
function Unit.prototype.interruptAttack(self)
|
|
931
982
|
unitInterruptAttack(self.handle)
|
|
932
983
|
end
|
|
@@ -1200,7 +1251,15 @@ __TS__SetDescriptor(
|
|
|
1200
1251
|
Unit.prototype,
|
|
1201
1252
|
"isIllusion",
|
|
1202
1253
|
{get = function(self)
|
|
1203
|
-
return
|
|
1254
|
+
return IsUnitIllusion(self.handle)
|
|
1255
|
+
end},
|
|
1256
|
+
true
|
|
1257
|
+
)
|
|
1258
|
+
__TS__SetDescriptor(
|
|
1259
|
+
Unit.prototype,
|
|
1260
|
+
"isStunned",
|
|
1261
|
+
{get = function(self)
|
|
1262
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1204
1263
|
end},
|
|
1205
1264
|
true
|
|
1206
1265
|
)
|
|
@@ -1277,6 +1336,19 @@ __TS__SetDescriptor(
|
|
|
1277
1336
|
},
|
|
1278
1337
|
true
|
|
1279
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
|
+
)
|
|
1280
1352
|
__TS__SetDescriptor(
|
|
1281
1353
|
Unit.prototype,
|
|
1282
1354
|
"strengthBase",
|
|
@@ -1401,14 +1473,14 @@ __TS__SetDescriptor(
|
|
|
1401
1473
|
return not self[106]
|
|
1402
1474
|
end,
|
|
1403
1475
|
set = function(self, isTeamGlowVisible)
|
|
1404
|
-
|
|
1405
|
-
local
|
|
1476
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1477
|
+
local ____temp_7
|
|
1406
1478
|
if not isTeamGlowVisible then
|
|
1407
|
-
|
|
1479
|
+
____temp_7 = true
|
|
1408
1480
|
else
|
|
1409
|
-
|
|
1481
|
+
____temp_7 = nil
|
|
1410
1482
|
end
|
|
1411
|
-
self[106] =
|
|
1483
|
+
self[106] = ____temp_7
|
|
1412
1484
|
end
|
|
1413
1485
|
},
|
|
1414
1486
|
true
|
|
@@ -1417,9 +1489,9 @@ __TS__SetDescriptor(
|
|
|
1417
1489
|
Unit.prototype,
|
|
1418
1490
|
"color",
|
|
1419
1491
|
{set = function(self, color)
|
|
1420
|
-
|
|
1492
|
+
SetUnitColor(self.handle, color.handle)
|
|
1421
1493
|
if self[106] then
|
|
1422
|
-
|
|
1494
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1423
1495
|
end
|
|
1424
1496
|
end},
|
|
1425
1497
|
true
|
|
@@ -1588,7 +1660,7 @@ __TS__SetDescriptor(
|
|
|
1588
1660
|
"x",
|
|
1589
1661
|
{
|
|
1590
1662
|
get = function(self)
|
|
1591
|
-
return getUnitX(self.handle)
|
|
1663
|
+
return self[107] or getUnitX(self.handle)
|
|
1592
1664
|
end,
|
|
1593
1665
|
set = function(self, v)
|
|
1594
1666
|
SetUnitX(self.handle, v)
|
|
@@ -1601,7 +1673,7 @@ __TS__SetDescriptor(
|
|
|
1601
1673
|
"y",
|
|
1602
1674
|
{
|
|
1603
1675
|
get = function(self)
|
|
1604
|
-
return getUnitY(self.handle)
|
|
1676
|
+
return self[108] or getUnitY(self.handle)
|
|
1605
1677
|
end,
|
|
1606
1678
|
set = function(self, v)
|
|
1607
1679
|
SetUnitY(self.handle, v)
|
|
@@ -1687,10 +1759,10 @@ __TS__SetDescriptor(
|
|
|
1687
1759
|
"gold",
|
|
1688
1760
|
{
|
|
1689
1761
|
get = function(self)
|
|
1690
|
-
return
|
|
1762
|
+
return GetResourceAmount(self.handle)
|
|
1691
1763
|
end,
|
|
1692
1764
|
set = function(self, gold)
|
|
1693
|
-
|
|
1765
|
+
SetResourceAmount(self.handle, gold)
|
|
1694
1766
|
end
|
|
1695
1767
|
},
|
|
1696
1768
|
true
|
|
@@ -1818,6 +1890,19 @@ __TS__SetDescriptor(
|
|
|
1818
1890
|
end},
|
|
1819
1891
|
true
|
|
1820
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
|
+
)
|
|
1821
1906
|
__TS__SetDescriptor(
|
|
1822
1907
|
Unit.prototype,
|
|
1823
1908
|
"pathing",
|
|
@@ -1999,6 +2084,14 @@ __TS__SetDescriptor(
|
|
|
1999
2084
|
end},
|
|
2000
2085
|
true
|
|
2001
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
|
+
)
|
|
2002
2095
|
__TS__SetDescriptor(
|
|
2003
2096
|
Unit.prototype,
|
|
2004
2097
|
"onSelect",
|
|
@@ -2134,25 +2227,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2134
2227
|
InitializingEvent,
|
|
2135
2228
|
function(event)
|
|
2136
2229
|
local function listener(unit, id)
|
|
2137
|
-
local
|
|
2230
|
+
local ____GetSpellTargetUnit_result_10
|
|
2138
2231
|
if GetSpellTargetUnit() then
|
|
2139
|
-
|
|
2232
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2140
2233
|
else
|
|
2141
|
-
local
|
|
2234
|
+
local ____GetSpellTargetItem_result_9
|
|
2142
2235
|
if GetSpellTargetItem() then
|
|
2143
|
-
|
|
2236
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2144
2237
|
else
|
|
2145
|
-
local
|
|
2238
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2146
2239
|
if GetSpellTargetDestructable() then
|
|
2147
|
-
|
|
2240
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2148
2241
|
else
|
|
2149
|
-
|
|
2242
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2150
2243
|
end
|
|
2151
|
-
|
|
2244
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2152
2245
|
end
|
|
2153
|
-
|
|
2246
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2154
2247
|
end
|
|
2155
|
-
local target =
|
|
2248
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2156
2249
|
if target then
|
|
2157
2250
|
invoke(event, unit, id, target)
|
|
2158
2251
|
end
|
|
@@ -2360,13 +2453,19 @@ Unit.onDamaging = (function()
|
|
|
2360
2453
|
if source and source.typeId == dummyUnitId then
|
|
2361
2454
|
source = nil
|
|
2362
2455
|
end
|
|
2363
|
-
local target = BlzGetEventDamageTarget()
|
|
2456
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2457
|
+
local metadata = damageMetadataByTarget[target]
|
|
2458
|
+
damageMetadataByTarget[target] = nil
|
|
2364
2459
|
local data = {
|
|
2365
2460
|
amount = GetEventDamage(),
|
|
2366
|
-
attackType = BlzGetEventAttackType(),
|
|
2461
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2367
2462
|
damageType = BlzGetEventDamageType(),
|
|
2368
2463
|
weaponType = BlzGetEventWeaponType(),
|
|
2369
|
-
|
|
2464
|
+
metadata = metadata,
|
|
2465
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2466
|
+
originalAmount = GetEventDamage(),
|
|
2467
|
+
originalMetadata = metadata,
|
|
2468
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2370
2469
|
}
|
|
2371
2470
|
if data.isAttack and source then
|
|
2372
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
|
|
@@ -2380,18 +2479,36 @@ Unit.onDamaging = (function()
|
|
|
2380
2479
|
invoke(
|
|
2381
2480
|
event,
|
|
2382
2481
|
source,
|
|
2383
|
-
|
|
2482
|
+
target,
|
|
2384
2483
|
setmetatable(
|
|
2385
2484
|
{},
|
|
2386
2485
|
{
|
|
2387
2486
|
__index = data,
|
|
2388
2487
|
__newindex = function(self, key, value)
|
|
2389
|
-
damageSetters[key]
|
|
2488
|
+
local damageSetter = damageSetters[key]
|
|
2489
|
+
if damageSetter ~= nil then
|
|
2490
|
+
damageSetter(value)
|
|
2491
|
+
end
|
|
2390
2492
|
data[key] = value
|
|
2391
2493
|
end
|
|
2392
2494
|
}
|
|
2393
2495
|
)
|
|
2394
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
|
|
2395
2512
|
return
|
|
2396
2513
|
end
|
|
2397
2514
|
BlzSetEventDamage(0)
|
|
@@ -2399,7 +2516,7 @@ Unit.onDamaging = (function()
|
|
|
2399
2516
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2400
2517
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2401
2518
|
local sourceOwner = source.owner.handle
|
|
2402
|
-
local targetOwner =
|
|
2519
|
+
local targetOwner = target.owner.handle
|
|
2403
2520
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2404
2521
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2405
2522
|
Timer:run(function()
|
|
@@ -2415,23 +2532,19 @@ Unit.onDamaging = (function()
|
|
|
2415
2532
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2416
2533
|
local condition = ____value[1]
|
|
2417
2534
|
local action = ____value[2]
|
|
2418
|
-
if condition(
|
|
2419
|
-
source,
|
|
2420
|
-
____exports.Unit:of(target),
|
|
2421
|
-
data
|
|
2422
|
-
) then
|
|
2535
|
+
if condition(source, target, data) then
|
|
2423
2536
|
action(
|
|
2424
2537
|
source,
|
|
2425
|
-
|
|
2538
|
+
target,
|
|
2426
2539
|
setmetatable(
|
|
2427
2540
|
{fire = function()
|
|
2428
2541
|
UnitDamageTarget(
|
|
2429
2542
|
source.handle,
|
|
2430
|
-
target,
|
|
2543
|
+
target.handle,
|
|
2431
2544
|
data.amount,
|
|
2432
2545
|
true,
|
|
2433
2546
|
true,
|
|
2434
|
-
data.attackType,
|
|
2547
|
+
attackTypeToNative(data.attackType),
|
|
2435
2548
|
data.damageType,
|
|
2436
2549
|
data.weaponType
|
|
2437
2550
|
)
|
|
@@ -2458,26 +2571,50 @@ Unit.onDamage = __TS__New(
|
|
|
2458
2571
|
if source and source.typeId == dummyUnitId then
|
|
2459
2572
|
source = nil
|
|
2460
2573
|
end
|
|
2574
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2575
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2576
|
+
damagingEventByTarget[target] = nil
|
|
2461
2577
|
local data = {
|
|
2462
2578
|
amount = GetEventDamage(),
|
|
2463
|
-
attackType = BlzGetEventAttackType(),
|
|
2579
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2464
2580
|
damageType = BlzGetEventDamageType(),
|
|
2465
2581
|
weaponType = BlzGetEventWeaponType(),
|
|
2582
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2466
2583
|
isAttack = BlzGetEventIsAttack(),
|
|
2467
|
-
originalAmount = GetEventDamage(),
|
|
2584
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2585
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2468
2586
|
preventDeath = damageEventPreventDeath
|
|
2469
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
|
|
2470
2605
|
local evData = setmetatable(
|
|
2471
2606
|
{},
|
|
2472
2607
|
{
|
|
2473
2608
|
__index = data,
|
|
2474
2609
|
__newindex = function(self, key, value)
|
|
2475
|
-
damageSetters[key]
|
|
2610
|
+
local damageSetter = damageSetters[key]
|
|
2611
|
+
if damageSetter ~= nil then
|
|
2612
|
+
damageSetter(value)
|
|
2613
|
+
end
|
|
2476
2614
|
data[key] = value
|
|
2477
2615
|
end
|
|
2478
2616
|
}
|
|
2479
2617
|
)
|
|
2480
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2481
2618
|
invoke(event, source, target, evData)
|
|
2482
2619
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2483
2620
|
local bonusHealth = math.ceil(evData.amount)
|
|
@@ -2531,10 +2668,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2531
2668
|
____exports.UnitTriggerEvent,
|
|
2532
2669
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2533
2670
|
function()
|
|
2534
|
-
local
|
|
2535
|
-
local
|
|
2536
|
-
if getUnitTypeId(
|
|
2537
|
-
|
|
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
|
|
2538
2679
|
end
|
|
2539
2680
|
return IgnoreEvent
|
|
2540
2681
|
end
|
|
@@ -2554,7 +2695,22 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2695
|
Unit.itemStackedEvent = __TS__New(
|
|
2555
2696
|
____exports.UnitTriggerEvent,
|
|
2556
2697
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2557
|
-
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}
|
|
2558
2714
|
)
|
|
2559
2715
|
__TS__ObjectDefineProperty(
|
|
2560
2716
|
Unit,
|