warscript 0.0.1-dev.724bf08 → 0.0.1-dev.7278154
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 +2 -3
- package/core/types/effect.lua +95 -48
- 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 +39 -23
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/decl/native.d.ts +844 -788
- package/engine/behavior.d.ts +4 -0
- package/engine/behavior.lua +97 -27
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +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 +22 -9
- package/engine/behaviour/ability/on-command-impact.lua +7 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +13 -3
- package/engine/behaviour/ability.lua +78 -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 +32 -0
- package/engine/behaviour/unit.lua +185 -4
- package/engine/buff.d.ts +57 -44
- package/engine/buff.lua +273 -221
- package/engine/internal/ability.d.ts +18 -2
- package/engine/internal/ability.lua +115 -11
- package/engine/internal/item/ability.lua +162 -4
- 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/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +62 -0
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.lua +6 -12
- 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 +33 -9
- package/engine/internal/unit.lua +313 -117
- package/engine/internal/utility.lua +12 -0
- 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 +90 -36
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +3 -1
- package/engine/object-data/entry/item-type.lua +15 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +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-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +8 -5
- package/engine/object-field/ability.lua +8 -4
- 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 +190 -90
- 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 +2 -0
- package/engine/unit.lua +2 -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/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 +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
|
@@ -51,12 +51,21 @@ local ____arrays = require("utility.arrays")
|
|
|
51
51
|
local forEach = ____arrays.forEach
|
|
52
52
|
local ____math = require("math")
|
|
53
53
|
local min = ____math.min
|
|
54
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
+
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
56
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
57
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
58
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
59
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
60
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
61
|
+
local ____attributes = require("attributes")
|
|
62
|
+
local isAttribute = ____attributes.isAttribute
|
|
63
|
+
local ____ability = require("engine.internal.item.ability")
|
|
64
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
54
65
|
local match = string.match
|
|
55
66
|
local ____tostring = _G.tostring
|
|
56
67
|
local setUnitAnimation = SetUnitAnimation
|
|
57
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
58
68
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
59
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
60
69
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
61
70
|
local getUnitRealField = BlzGetUnitRealField
|
|
62
71
|
local getHeroStr = GetHeroStr
|
|
@@ -75,9 +84,9 @@ local setUnitScale = SetUnitScale
|
|
|
75
84
|
local setUnitPosition = SetUnitPosition
|
|
76
85
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
86
|
local getHandleId = GetHandleId
|
|
87
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
88
|
local createUnit = CreateUnit
|
|
79
89
|
local killUnit = KillUnit
|
|
80
|
-
local setUnitExploded = SetUnitExploded
|
|
81
90
|
local removeUnit = RemoveUnit
|
|
82
91
|
local getUnitTypeId = GetUnitTypeId
|
|
83
92
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -93,8 +102,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
93
102
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
94
103
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
95
104
|
local isUnitInRange = IsUnitInRange
|
|
96
|
-
local setResourceAmount = SetResourceAmount
|
|
97
|
-
local getResourceAmount = GetResourceAmount
|
|
98
105
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
106
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
107
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -118,15 +125,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
118
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
119
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
120
127
|
local unitAlive = UnitAlive
|
|
121
|
-
local unitAddType = UnitAddType
|
|
122
|
-
local unitRemoveType = UnitRemoveType
|
|
123
|
-
local isUnitIllusion = IsUnitIllusion
|
|
124
|
-
local isUnitType = IsUnitType
|
|
125
128
|
local isUnitAlly = IsUnitAlly
|
|
126
129
|
local isUnitEnemy = IsUnitEnemy
|
|
127
130
|
local getOwningPlayer = GetOwningPlayer
|
|
128
|
-
local setUnitColor = SetUnitColor
|
|
129
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
130
131
|
____exports.UnitClassification = {}
|
|
131
132
|
local UnitClassification = ____exports.UnitClassification
|
|
132
133
|
do
|
|
@@ -136,6 +137,7 @@ do
|
|
|
136
137
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
137
138
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
138
139
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
140
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
139
141
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
140
142
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
141
143
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -343,6 +345,9 @@ local function dispatchAbility(event)
|
|
|
343
345
|
}
|
|
344
346
|
)
|
|
345
347
|
end
|
|
348
|
+
local function damagingEventPreventRetaliation(self)
|
|
349
|
+
self[0] = true
|
|
350
|
+
end
|
|
346
351
|
local function damageEventPreventDeath(self, callback, ...)
|
|
347
352
|
if self[0] ~= nil then
|
|
348
353
|
return
|
|
@@ -354,7 +359,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
354
359
|
rawset(self, 1 + i, (select(i, ...)))
|
|
355
360
|
end
|
|
356
361
|
end
|
|
357
|
-
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
|
+
}
|
|
358
370
|
local jlimitopByOperator = {
|
|
359
371
|
[0] = LESS_THAN_OR_EQUAL,
|
|
360
372
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -432,6 +444,19 @@ __TS__SetDescriptor(
|
|
|
432
444
|
},
|
|
433
445
|
true
|
|
434
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
|
+
)
|
|
435
460
|
__TS__SetDescriptor(
|
|
436
461
|
UnitWeapon.prototype,
|
|
437
462
|
"damageBase",
|
|
@@ -636,16 +661,26 @@ local function delayHealthChecksCallback(unit)
|
|
|
636
661
|
end
|
|
637
662
|
end
|
|
638
663
|
local nextSyncId = 1
|
|
639
|
-
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
|
|
640
675
|
____exports.Unit = __TS__Class()
|
|
641
676
|
local Unit = ____exports.Unit
|
|
642
677
|
Unit.name = "Unit"
|
|
643
678
|
__TS__ClassExtends(Unit, Handle)
|
|
644
679
|
function Unit.prototype.____constructor(self, handle)
|
|
645
680
|
Handle.prototype.____constructor(self, handle)
|
|
646
|
-
local
|
|
647
|
-
nextSyncId =
|
|
648
|
-
self.syncId =
|
|
681
|
+
local ____nextSyncId_1 = nextSyncId
|
|
682
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
683
|
+
self.syncId = ____nextSyncId_1
|
|
649
684
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
650
685
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
651
686
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -677,6 +712,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
677
712
|
end
|
|
678
713
|
function Unit.prototype.onDestroy(self)
|
|
679
714
|
local handle = self.handle
|
|
715
|
+
self[107] = getUnitX(handle)
|
|
716
|
+
self[108] = getUnitY(handle)
|
|
680
717
|
if not self._owner then
|
|
681
718
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
682
719
|
end
|
|
@@ -744,17 +781,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
744
781
|
end}
|
|
745
782
|
end
|
|
746
783
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
747
|
-
local
|
|
748
|
-
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
|
|
749
786
|
end
|
|
750
787
|
function Unit.prototype.addClassification(self, classification)
|
|
751
|
-
return
|
|
788
|
+
return UnitAddType(self.handle, classification)
|
|
752
789
|
end
|
|
753
790
|
function Unit.prototype.removeClassification(self, classification)
|
|
754
|
-
return
|
|
791
|
+
return UnitRemoveType(self.handle, classification)
|
|
755
792
|
end
|
|
756
793
|
function Unit.prototype.hasClassification(self, classification)
|
|
757
|
-
return
|
|
794
|
+
return IsUnitType(self.handle, classification)
|
|
758
795
|
end
|
|
759
796
|
function Unit.prototype.isVisibleTo(self, player)
|
|
760
797
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -763,13 +800,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
763
800
|
return isUnitInvisible(self.handle, player.handle)
|
|
764
801
|
end
|
|
765
802
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
766
|
-
local
|
|
803
|
+
local ____temp_3
|
|
767
804
|
if type(x) == "number" then
|
|
768
|
-
|
|
805
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
769
806
|
else
|
|
770
|
-
|
|
807
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
771
808
|
end
|
|
772
|
-
return
|
|
809
|
+
return ____temp_3
|
|
773
810
|
end
|
|
774
811
|
function Unit.prototype.isAllyOf(self, unit)
|
|
775
812
|
return isUnitAlly(
|
|
@@ -787,13 +824,25 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
787
824
|
if type(animation) == "number" then
|
|
788
825
|
setUnitAnimationByIndex(self.handle, animation)
|
|
789
826
|
elseif rarity then
|
|
790
|
-
|
|
827
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
791
828
|
else
|
|
792
829
|
setUnitAnimation(self.handle, animation)
|
|
793
830
|
end
|
|
794
831
|
end
|
|
832
|
+
function Unit.prototype.resetAnimation(self)
|
|
833
|
+
ResetUnitAnimation(self.handle)
|
|
834
|
+
end
|
|
795
835
|
function Unit.prototype.queueAnimation(self, animation)
|
|
796
|
-
|
|
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
|
|
797
846
|
end
|
|
798
847
|
function Unit.prototype.delayHealthChecks(self)
|
|
799
848
|
self[103] = (self[103] or 0) + 1
|
|
@@ -806,21 +855,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
806
855
|
return IsUnitSelected(self.handle, player.handle)
|
|
807
856
|
end
|
|
808
857
|
function Unit.prototype.explode(self)
|
|
809
|
-
|
|
858
|
+
SetUnitExploded(self.handle, true)
|
|
810
859
|
killUnit(self.handle)
|
|
811
860
|
end
|
|
812
861
|
function Unit.prototype.kill(self)
|
|
813
862
|
killUnit(self.handle)
|
|
814
863
|
end
|
|
815
864
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
816
|
-
local
|
|
817
|
-
local
|
|
818
|
-
local
|
|
819
|
-
if
|
|
820
|
-
|
|
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
|
|
821
870
|
end
|
|
822
|
-
__TS__SparseArrayPush(
|
|
823
|
-
|
|
871
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
872
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
824
873
|
end
|
|
825
874
|
function Unit.prototype.healTarget(self, target, amount)
|
|
826
875
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -863,17 +912,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
863
912
|
return Item:of(unitItemInSlot(self.handle, slot))
|
|
864
913
|
end
|
|
865
914
|
function Unit.prototype.addAbility(self, abilityId)
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
915
|
+
local ability = UnitAbility:of(
|
|
916
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
917
|
+
abilityId,
|
|
918
|
+
self
|
|
919
|
+
)
|
|
920
|
+
if ability ~= nil then
|
|
872
921
|
local abilities = self.abilities
|
|
873
922
|
abilities[#abilities + 1] = ability
|
|
874
|
-
return ability
|
|
875
923
|
end
|
|
876
|
-
return
|
|
924
|
+
return ability
|
|
877
925
|
end
|
|
878
926
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
879
927
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -888,28 +936,17 @@ function Unit.prototype.hasAbility(self, abilityId)
|
|
|
888
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
889
937
|
end
|
|
890
938
|
function Unit.prototype.getAbilityById(self, abilityId)
|
|
891
|
-
local
|
|
892
|
-
|
|
893
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
894
|
-
return nil
|
|
895
|
-
end
|
|
896
|
-
return UnitAbility:of(
|
|
897
|
-
getUnitAbility(self.handle, abilityId),
|
|
898
|
-
abilityId,
|
|
899
|
-
self
|
|
900
|
-
)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
901
941
|
end
|
|
902
942
|
function Unit.prototype.removeAbility(self, abilityId)
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
return true
|
|
910
|
-
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
|
|
911
949
|
end
|
|
912
|
-
return true
|
|
913
950
|
end
|
|
914
951
|
return false
|
|
915
952
|
end
|
|
@@ -925,12 +962,34 @@ end
|
|
|
925
962
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
926
963
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
927
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
|
|
928
980
|
function Unit.prototype.interruptAttack(self)
|
|
929
981
|
unitInterruptAttack(self.handle)
|
|
930
982
|
end
|
|
931
983
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
932
|
-
|
|
933
|
-
unitDisableAbility(
|
|
984
|
+
local handle = self.handle
|
|
985
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
986
|
+
Timer:run(
|
|
987
|
+
unitDisableAbility,
|
|
988
|
+
handle,
|
|
989
|
+
abilityId,
|
|
990
|
+
false,
|
|
991
|
+
false
|
|
992
|
+
)
|
|
934
993
|
end
|
|
935
994
|
function Unit.prototype.getDistanceTo(self, target)
|
|
936
995
|
local handle = self.handle
|
|
@@ -1191,7 +1250,15 @@ __TS__SetDescriptor(
|
|
|
1191
1250
|
Unit.prototype,
|
|
1192
1251
|
"isIllusion",
|
|
1193
1252
|
{get = function(self)
|
|
1194
|
-
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")
|
|
1195
1262
|
end},
|
|
1196
1263
|
true
|
|
1197
1264
|
)
|
|
@@ -1268,6 +1335,19 @@ __TS__SetDescriptor(
|
|
|
1268
1335
|
},
|
|
1269
1336
|
true
|
|
1270
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
|
+
)
|
|
1271
1351
|
__TS__SetDescriptor(
|
|
1272
1352
|
Unit.prototype,
|
|
1273
1353
|
"strengthBase",
|
|
@@ -1392,14 +1472,14 @@ __TS__SetDescriptor(
|
|
|
1392
1472
|
return not self[106]
|
|
1393
1473
|
end,
|
|
1394
1474
|
set = function(self, isTeamGlowVisible)
|
|
1395
|
-
|
|
1396
|
-
local
|
|
1475
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1476
|
+
local ____temp_7
|
|
1397
1477
|
if not isTeamGlowVisible then
|
|
1398
|
-
|
|
1478
|
+
____temp_7 = true
|
|
1399
1479
|
else
|
|
1400
|
-
|
|
1480
|
+
____temp_7 = nil
|
|
1401
1481
|
end
|
|
1402
|
-
self[106] =
|
|
1482
|
+
self[106] = ____temp_7
|
|
1403
1483
|
end
|
|
1404
1484
|
},
|
|
1405
1485
|
true
|
|
@@ -1408,9 +1488,9 @@ __TS__SetDescriptor(
|
|
|
1408
1488
|
Unit.prototype,
|
|
1409
1489
|
"color",
|
|
1410
1490
|
{set = function(self, color)
|
|
1411
|
-
|
|
1491
|
+
SetUnitColor(self.handle, color.handle)
|
|
1412
1492
|
if self[106] then
|
|
1413
|
-
|
|
1493
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1414
1494
|
end
|
|
1415
1495
|
end},
|
|
1416
1496
|
true
|
|
@@ -1579,7 +1659,7 @@ __TS__SetDescriptor(
|
|
|
1579
1659
|
"x",
|
|
1580
1660
|
{
|
|
1581
1661
|
get = function(self)
|
|
1582
|
-
return getUnitX(self.handle)
|
|
1662
|
+
return self[107] or getUnitX(self.handle)
|
|
1583
1663
|
end,
|
|
1584
1664
|
set = function(self, v)
|
|
1585
1665
|
SetUnitX(self.handle, v)
|
|
@@ -1592,7 +1672,7 @@ __TS__SetDescriptor(
|
|
|
1592
1672
|
"y",
|
|
1593
1673
|
{
|
|
1594
1674
|
get = function(self)
|
|
1595
|
-
return getUnitY(self.handle)
|
|
1675
|
+
return self[108] or getUnitY(self.handle)
|
|
1596
1676
|
end,
|
|
1597
1677
|
set = function(self, v)
|
|
1598
1678
|
SetUnitY(self.handle, v)
|
|
@@ -1678,10 +1758,10 @@ __TS__SetDescriptor(
|
|
|
1678
1758
|
"gold",
|
|
1679
1759
|
{
|
|
1680
1760
|
get = function(self)
|
|
1681
|
-
return
|
|
1761
|
+
return GetResourceAmount(self.handle)
|
|
1682
1762
|
end,
|
|
1683
1763
|
set = function(self, gold)
|
|
1684
|
-
|
|
1764
|
+
SetResourceAmount(self.handle, gold)
|
|
1685
1765
|
end
|
|
1686
1766
|
},
|
|
1687
1767
|
true
|
|
@@ -1809,6 +1889,19 @@ __TS__SetDescriptor(
|
|
|
1809
1889
|
end},
|
|
1810
1890
|
true
|
|
1811
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
|
+
)
|
|
1812
1905
|
__TS__SetDescriptor(
|
|
1813
1906
|
Unit.prototype,
|
|
1814
1907
|
"pathing",
|
|
@@ -1990,6 +2083,14 @@ __TS__SetDescriptor(
|
|
|
1990
2083
|
end},
|
|
1991
2084
|
true
|
|
1992
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
|
+
)
|
|
1993
2094
|
__TS__SetDescriptor(
|
|
1994
2095
|
Unit.prototype,
|
|
1995
2096
|
"onSelect",
|
|
@@ -2125,25 +2226,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2125
2226
|
InitializingEvent,
|
|
2126
2227
|
function(event)
|
|
2127
2228
|
local function listener(unit, id)
|
|
2128
|
-
local
|
|
2229
|
+
local ____GetSpellTargetUnit_result_10
|
|
2129
2230
|
if GetSpellTargetUnit() then
|
|
2130
|
-
|
|
2231
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2131
2232
|
else
|
|
2132
|
-
local
|
|
2233
|
+
local ____GetSpellTargetItem_result_9
|
|
2133
2234
|
if GetSpellTargetItem() then
|
|
2134
|
-
|
|
2235
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2135
2236
|
else
|
|
2136
|
-
local
|
|
2237
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2137
2238
|
if GetSpellTargetDestructable() then
|
|
2138
|
-
|
|
2239
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2139
2240
|
else
|
|
2140
|
-
|
|
2241
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2141
2242
|
end
|
|
2142
|
-
|
|
2243
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2143
2244
|
end
|
|
2144
|
-
|
|
2245
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2145
2246
|
end
|
|
2146
|
-
local target =
|
|
2247
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2147
2248
|
if target then
|
|
2148
2249
|
invoke(event, unit, id, target)
|
|
2149
2250
|
end
|
|
@@ -2315,10 +2416,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2315
2416
|
____exports.UnitTriggerEvent,
|
|
2316
2417
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2317
2418
|
function()
|
|
2318
|
-
local
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2419
|
+
local handle = getOrderedUnit()
|
|
2420
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2421
|
+
local unit = ____exports.Unit:of(handle)
|
|
2422
|
+
if unit.state == 1 then
|
|
2423
|
+
return unit, getIssuedOrderId()
|
|
2424
|
+
end
|
|
2322
2425
|
end
|
|
2323
2426
|
return IgnoreEvent
|
|
2324
2427
|
end
|
|
@@ -2349,13 +2452,19 @@ Unit.onDamaging = (function()
|
|
|
2349
2452
|
if source and source.typeId == dummyUnitId then
|
|
2350
2453
|
source = nil
|
|
2351
2454
|
end
|
|
2352
|
-
local target = BlzGetEventDamageTarget()
|
|
2455
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2456
|
+
local metadata = damageMetadataByTarget[target]
|
|
2457
|
+
damageMetadataByTarget[target] = nil
|
|
2353
2458
|
local data = {
|
|
2354
2459
|
amount = GetEventDamage(),
|
|
2355
|
-
attackType = BlzGetEventAttackType(),
|
|
2460
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2356
2461
|
damageType = BlzGetEventDamageType(),
|
|
2357
2462
|
weaponType = BlzGetEventWeaponType(),
|
|
2358
|
-
|
|
2463
|
+
metadata = metadata,
|
|
2464
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
+
originalAmount = GetEventDamage(),
|
|
2466
|
+
originalMetadata = metadata,
|
|
2467
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2359
2468
|
}
|
|
2360
2469
|
if data.isAttack and source then
|
|
2361
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
|
|
@@ -2369,18 +2478,36 @@ Unit.onDamaging = (function()
|
|
|
2369
2478
|
invoke(
|
|
2370
2479
|
event,
|
|
2371
2480
|
source,
|
|
2372
|
-
|
|
2481
|
+
target,
|
|
2373
2482
|
setmetatable(
|
|
2374
2483
|
{},
|
|
2375
2484
|
{
|
|
2376
2485
|
__index = data,
|
|
2377
2486
|
__newindex = function(self, key, value)
|
|
2378
|
-
damageSetters[key]
|
|
2487
|
+
local damageSetter = damageSetters[key]
|
|
2488
|
+
if damageSetter ~= nil then
|
|
2489
|
+
damageSetter(value)
|
|
2490
|
+
end
|
|
2379
2491
|
data[key] = value
|
|
2380
2492
|
end
|
|
2381
2493
|
}
|
|
2382
2494
|
)
|
|
2383
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
|
|
2384
2511
|
return
|
|
2385
2512
|
end
|
|
2386
2513
|
BlzSetEventDamage(0)
|
|
@@ -2388,7 +2515,7 @@ Unit.onDamaging = (function()
|
|
|
2388
2515
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2389
2516
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2390
2517
|
local sourceOwner = source.owner.handle
|
|
2391
|
-
local targetOwner =
|
|
2518
|
+
local targetOwner = target.owner.handle
|
|
2392
2519
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2393
2520
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2394
2521
|
Timer:run(function()
|
|
@@ -2404,23 +2531,19 @@ Unit.onDamaging = (function()
|
|
|
2404
2531
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2405
2532
|
local condition = ____value[1]
|
|
2406
2533
|
local action = ____value[2]
|
|
2407
|
-
if condition(
|
|
2408
|
-
source,
|
|
2409
|
-
____exports.Unit:of(target),
|
|
2410
|
-
data
|
|
2411
|
-
) then
|
|
2534
|
+
if condition(source, target, data) then
|
|
2412
2535
|
action(
|
|
2413
2536
|
source,
|
|
2414
|
-
|
|
2537
|
+
target,
|
|
2415
2538
|
setmetatable(
|
|
2416
2539
|
{fire = function()
|
|
2417
2540
|
UnitDamageTarget(
|
|
2418
2541
|
source.handle,
|
|
2419
|
-
target,
|
|
2542
|
+
target.handle,
|
|
2420
2543
|
data.amount,
|
|
2421
2544
|
true,
|
|
2422
2545
|
true,
|
|
2423
|
-
data.attackType,
|
|
2546
|
+
attackTypeToNative(data.attackType),
|
|
2424
2547
|
data.damageType,
|
|
2425
2548
|
data.weaponType
|
|
2426
2549
|
)
|
|
@@ -2447,26 +2570,50 @@ Unit.onDamage = __TS__New(
|
|
|
2447
2570
|
if source and source.typeId == dummyUnitId then
|
|
2448
2571
|
source = nil
|
|
2449
2572
|
end
|
|
2573
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2574
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2575
|
+
damagingEventByTarget[target] = nil
|
|
2450
2576
|
local data = {
|
|
2451
2577
|
amount = GetEventDamage(),
|
|
2452
|
-
attackType = BlzGetEventAttackType(),
|
|
2578
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2453
2579
|
damageType = BlzGetEventDamageType(),
|
|
2454
2580
|
weaponType = BlzGetEventWeaponType(),
|
|
2581
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2455
2582
|
isAttack = BlzGetEventIsAttack(),
|
|
2456
|
-
originalAmount = GetEventDamage(),
|
|
2583
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2584
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2457
2585
|
preventDeath = damageEventPreventDeath
|
|
2458
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
|
|
2459
2604
|
local evData = setmetatable(
|
|
2460
2605
|
{},
|
|
2461
2606
|
{
|
|
2462
2607
|
__index = data,
|
|
2463
2608
|
__newindex = function(self, key, value)
|
|
2464
|
-
damageSetters[key]
|
|
2609
|
+
local damageSetter = damageSetters[key]
|
|
2610
|
+
if damageSetter ~= nil then
|
|
2611
|
+
damageSetter(value)
|
|
2612
|
+
end
|
|
2465
2613
|
data[key] = value
|
|
2466
2614
|
end
|
|
2467
2615
|
}
|
|
2468
2616
|
)
|
|
2469
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2470
2617
|
invoke(event, source, target, evData)
|
|
2471
2618
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2472
2619
|
local bonusHealth = math.ceil(evData.amount)
|
|
@@ -2509,8 +2656,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2509
2656
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2510
2657
|
function()
|
|
2511
2658
|
local unit = getTriggerUnit()
|
|
2512
|
-
|
|
2513
|
-
|
|
2659
|
+
local item = getManipulatedItem()
|
|
2660
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2661
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2514
2662
|
end
|
|
2515
2663
|
return IgnoreEvent
|
|
2516
2664
|
end
|
|
@@ -2519,9 +2667,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2519
2667
|
____exports.UnitTriggerEvent,
|
|
2520
2668
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2521
2669
|
function()
|
|
2522
|
-
local
|
|
2523
|
-
|
|
2524
|
-
|
|
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
|
|
2525
2678
|
end
|
|
2526
2679
|
return IgnoreEvent
|
|
2527
2680
|
end
|
|
@@ -2529,16 +2682,59 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2529
2682
|
Unit.itemUsedEvent = __TS__New(
|
|
2530
2683
|
____exports.UnitTriggerEvent,
|
|
2531
2684
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2532
|
-
function()
|
|
2685
|
+
function()
|
|
2686
|
+
local unit = getTriggerUnit()
|
|
2687
|
+
local item = getManipulatedItem()
|
|
2688
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2689
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2690
|
+
end
|
|
2691
|
+
return IgnoreEvent
|
|
2692
|
+
end
|
|
2533
2693
|
)
|
|
2534
2694
|
Unit.itemStackedEvent = __TS__New(
|
|
2535
2695
|
____exports.UnitTriggerEvent,
|
|
2536
2696
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2537
|
-
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}
|
|
2713
|
+
)
|
|
2714
|
+
__TS__ObjectDefineProperty(
|
|
2715
|
+
Unit,
|
|
2716
|
+
"itemUseOrderEvent",
|
|
2717
|
+
{get = function(self)
|
|
2718
|
+
local event = __TS__New(Event)
|
|
2719
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2720
|
+
local slot = order - orderId("useslot0")
|
|
2721
|
+
local function listener(unit)
|
|
2722
|
+
local item = unit.items[slot + 1]
|
|
2723
|
+
if item ~= nil then
|
|
2724
|
+
invoke(event, unit, item)
|
|
2725
|
+
end
|
|
2726
|
+
end
|
|
2727
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2728
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2729
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2730
|
+
end
|
|
2731
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2732
|
+
return event
|
|
2733
|
+
end}
|
|
2538
2734
|
)
|
|
2539
2735
|
__TS__ObjectDefineProperty(
|
|
2540
2736
|
Unit,
|
|
2541
|
-
"
|
|
2737
|
+
"itemMoveOrderEvent",
|
|
2542
2738
|
{get = function(self)
|
|
2543
2739
|
local event = __TS__New(Event)
|
|
2544
2740
|
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
@@ -2556,7 +2752,7 @@ __TS__ObjectDefineProperty(
|
|
|
2556
2752
|
end
|
|
2557
2753
|
end)
|
|
2558
2754
|
end
|
|
2559
|
-
rawset(self, "
|
|
2755
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2560
2756
|
return event
|
|
2561
2757
|
end}
|
|
2562
2758
|
)
|