warscript 0.0.1-dev.e1acea3 → 0.0.1-dev.e49ec00
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/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +7 -8
- package/core/types/timer.lua +18 -21
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/decl/native.d.ts +840 -786
- 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.lua +20 -7
- package/engine/behaviour/ability/on-command-impact.lua +7 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +4 -1
- package/engine/behaviour/ability/remove-buffs.lua +8 -2
- package/engine/behaviour/ability.d.ts +15 -3
- package/engine/behaviour/ability.lua +85 -22
- 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 +15 -1
- package/engine/internal/ability.lua +90 -2
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +131 -28
- 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/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+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 +1 -1
- package/engine/internal/unit.d.ts +31 -6
- package/engine/internal/unit.lua +302 -107
- 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/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 +89 -33
- 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 +10 -3
- package/engine/object-data/entry/unit-type.lua +155 -92
- 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 +10 -4
- package/engine/object-field/ability.lua +3 -0
- 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 +187 -89
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -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 +175 -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/functions.d.ts +4 -0
- package/utility/functions.lua +4 -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 +1 -0
- package/utility/lua-sets.lua +3 -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,19 +936,11 @@ 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
|
-
if
|
|
943
|
+
if doUnitAbilityAction(self.handle, abilityId, unitRemoveAbility, abilityId) then
|
|
904
944
|
local abilities = self.abilities
|
|
905
945
|
for i = 1, #abilities do
|
|
906
946
|
if abilities[i].typeId == abilityId then
|
|
@@ -925,12 +965,34 @@ end
|
|
|
925
965
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
926
966
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
927
967
|
end
|
|
968
|
+
function Unit.prototype.interruptMovement(self)
|
|
969
|
+
local handle = self.handle
|
|
970
|
+
unitDisableAbility(
|
|
971
|
+
handle,
|
|
972
|
+
fourCC("Amov"),
|
|
973
|
+
true,
|
|
974
|
+
false
|
|
975
|
+
)
|
|
976
|
+
unitDisableAbility(
|
|
977
|
+
handle,
|
|
978
|
+
fourCC("Amov"),
|
|
979
|
+
false,
|
|
980
|
+
false
|
|
981
|
+
)
|
|
982
|
+
end
|
|
928
983
|
function Unit.prototype.interruptAttack(self)
|
|
929
984
|
unitInterruptAttack(self.handle)
|
|
930
985
|
end
|
|
931
986
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
932
|
-
|
|
933
|
-
unitDisableAbility(
|
|
987
|
+
local handle = self.handle
|
|
988
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
989
|
+
Timer:run(
|
|
990
|
+
unitDisableAbility,
|
|
991
|
+
handle,
|
|
992
|
+
abilityId,
|
|
993
|
+
false,
|
|
994
|
+
false
|
|
995
|
+
)
|
|
934
996
|
end
|
|
935
997
|
function Unit.prototype.getDistanceTo(self, target)
|
|
936
998
|
local handle = self.handle
|
|
@@ -1191,7 +1253,15 @@ __TS__SetDescriptor(
|
|
|
1191
1253
|
Unit.prototype,
|
|
1192
1254
|
"isIllusion",
|
|
1193
1255
|
{get = function(self)
|
|
1194
|
-
return
|
|
1256
|
+
return IsUnitIllusion(self.handle)
|
|
1257
|
+
end},
|
|
1258
|
+
true
|
|
1259
|
+
)
|
|
1260
|
+
__TS__SetDescriptor(
|
|
1261
|
+
Unit.prototype,
|
|
1262
|
+
"isStunned",
|
|
1263
|
+
{get = function(self)
|
|
1264
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1195
1265
|
end},
|
|
1196
1266
|
true
|
|
1197
1267
|
)
|
|
@@ -1268,6 +1338,19 @@ __TS__SetDescriptor(
|
|
|
1268
1338
|
},
|
|
1269
1339
|
true
|
|
1270
1340
|
)
|
|
1341
|
+
__TS__SetDescriptor(
|
|
1342
|
+
Unit.prototype,
|
|
1343
|
+
"primaryAttribute",
|
|
1344
|
+
{
|
|
1345
|
+
get = function(self)
|
|
1346
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1347
|
+
end,
|
|
1348
|
+
set = function(self, primaryAttribute)
|
|
1349
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1350
|
+
end
|
|
1351
|
+
},
|
|
1352
|
+
true
|
|
1353
|
+
)
|
|
1271
1354
|
__TS__SetDescriptor(
|
|
1272
1355
|
Unit.prototype,
|
|
1273
1356
|
"strengthBase",
|
|
@@ -1392,14 +1475,14 @@ __TS__SetDescriptor(
|
|
|
1392
1475
|
return not self[106]
|
|
1393
1476
|
end,
|
|
1394
1477
|
set = function(self, isTeamGlowVisible)
|
|
1395
|
-
|
|
1396
|
-
local
|
|
1478
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1479
|
+
local ____temp_7
|
|
1397
1480
|
if not isTeamGlowVisible then
|
|
1398
|
-
|
|
1481
|
+
____temp_7 = true
|
|
1399
1482
|
else
|
|
1400
|
-
|
|
1483
|
+
____temp_7 = nil
|
|
1401
1484
|
end
|
|
1402
|
-
self[106] =
|
|
1485
|
+
self[106] = ____temp_7
|
|
1403
1486
|
end
|
|
1404
1487
|
},
|
|
1405
1488
|
true
|
|
@@ -1408,9 +1491,9 @@ __TS__SetDescriptor(
|
|
|
1408
1491
|
Unit.prototype,
|
|
1409
1492
|
"color",
|
|
1410
1493
|
{set = function(self, color)
|
|
1411
|
-
|
|
1494
|
+
SetUnitColor(self.handle, color.handle)
|
|
1412
1495
|
if self[106] then
|
|
1413
|
-
|
|
1496
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1414
1497
|
end
|
|
1415
1498
|
end},
|
|
1416
1499
|
true
|
|
@@ -1579,7 +1662,7 @@ __TS__SetDescriptor(
|
|
|
1579
1662
|
"x",
|
|
1580
1663
|
{
|
|
1581
1664
|
get = function(self)
|
|
1582
|
-
return getUnitX(self.handle)
|
|
1665
|
+
return self[107] or getUnitX(self.handle)
|
|
1583
1666
|
end,
|
|
1584
1667
|
set = function(self, v)
|
|
1585
1668
|
SetUnitX(self.handle, v)
|
|
@@ -1592,7 +1675,7 @@ __TS__SetDescriptor(
|
|
|
1592
1675
|
"y",
|
|
1593
1676
|
{
|
|
1594
1677
|
get = function(self)
|
|
1595
|
-
return getUnitY(self.handle)
|
|
1678
|
+
return self[108] or getUnitY(self.handle)
|
|
1596
1679
|
end,
|
|
1597
1680
|
set = function(self, v)
|
|
1598
1681
|
SetUnitY(self.handle, v)
|
|
@@ -1678,10 +1761,10 @@ __TS__SetDescriptor(
|
|
|
1678
1761
|
"gold",
|
|
1679
1762
|
{
|
|
1680
1763
|
get = function(self)
|
|
1681
|
-
return
|
|
1764
|
+
return GetResourceAmount(self.handle)
|
|
1682
1765
|
end,
|
|
1683
1766
|
set = function(self, gold)
|
|
1684
|
-
|
|
1767
|
+
SetResourceAmount(self.handle, gold)
|
|
1685
1768
|
end
|
|
1686
1769
|
},
|
|
1687
1770
|
true
|
|
@@ -1809,6 +1892,19 @@ __TS__SetDescriptor(
|
|
|
1809
1892
|
end},
|
|
1810
1893
|
true
|
|
1811
1894
|
)
|
|
1895
|
+
__TS__SetDescriptor(
|
|
1896
|
+
Unit.prototype,
|
|
1897
|
+
"movementType",
|
|
1898
|
+
{
|
|
1899
|
+
get = function(self)
|
|
1900
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1901
|
+
end,
|
|
1902
|
+
set = function(self, movementType)
|
|
1903
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1904
|
+
end
|
|
1905
|
+
},
|
|
1906
|
+
true
|
|
1907
|
+
)
|
|
1812
1908
|
__TS__SetDescriptor(
|
|
1813
1909
|
Unit.prototype,
|
|
1814
1910
|
"pathing",
|
|
@@ -1990,6 +2086,14 @@ __TS__SetDescriptor(
|
|
|
1990
2086
|
end},
|
|
1991
2087
|
true
|
|
1992
2088
|
)
|
|
2089
|
+
__TS__SetDescriptor(
|
|
2090
|
+
Unit.prototype,
|
|
2091
|
+
"targetAcquiredEvent",
|
|
2092
|
+
{get = function(self)
|
|
2093
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2094
|
+
end},
|
|
2095
|
+
true
|
|
2096
|
+
)
|
|
1993
2097
|
__TS__SetDescriptor(
|
|
1994
2098
|
Unit.prototype,
|
|
1995
2099
|
"onSelect",
|
|
@@ -2125,25 +2229,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2125
2229
|
InitializingEvent,
|
|
2126
2230
|
function(event)
|
|
2127
2231
|
local function listener(unit, id)
|
|
2128
|
-
local
|
|
2232
|
+
local ____GetSpellTargetUnit_result_10
|
|
2129
2233
|
if GetSpellTargetUnit() then
|
|
2130
|
-
|
|
2234
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2131
2235
|
else
|
|
2132
|
-
local
|
|
2236
|
+
local ____GetSpellTargetItem_result_9
|
|
2133
2237
|
if GetSpellTargetItem() then
|
|
2134
|
-
|
|
2238
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2135
2239
|
else
|
|
2136
|
-
local
|
|
2240
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2137
2241
|
if GetSpellTargetDestructable() then
|
|
2138
|
-
|
|
2242
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2139
2243
|
else
|
|
2140
|
-
|
|
2244
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2141
2245
|
end
|
|
2142
|
-
|
|
2246
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2143
2247
|
end
|
|
2144
|
-
|
|
2248
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2145
2249
|
end
|
|
2146
|
-
local target =
|
|
2250
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2147
2251
|
if target then
|
|
2148
2252
|
invoke(event, unit, id, target)
|
|
2149
2253
|
end
|
|
@@ -2315,10 +2419,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2315
2419
|
____exports.UnitTriggerEvent,
|
|
2316
2420
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2317
2421
|
function()
|
|
2318
|
-
local
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2422
|
+
local handle = getOrderedUnit()
|
|
2423
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2424
|
+
local unit = ____exports.Unit:of(handle)
|
|
2425
|
+
if unit.state == 1 then
|
|
2426
|
+
return unit, getIssuedOrderId()
|
|
2427
|
+
end
|
|
2322
2428
|
end
|
|
2323
2429
|
return IgnoreEvent
|
|
2324
2430
|
end
|
|
@@ -2349,13 +2455,19 @@ Unit.onDamaging = (function()
|
|
|
2349
2455
|
if source and source.typeId == dummyUnitId then
|
|
2350
2456
|
source = nil
|
|
2351
2457
|
end
|
|
2352
|
-
local target = BlzGetEventDamageTarget()
|
|
2458
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2459
|
+
local metadata = damageMetadataByTarget[target]
|
|
2460
|
+
damageMetadataByTarget[target] = nil
|
|
2353
2461
|
local data = {
|
|
2354
2462
|
amount = GetEventDamage(),
|
|
2355
|
-
attackType = BlzGetEventAttackType(),
|
|
2463
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2356
2464
|
damageType = BlzGetEventDamageType(),
|
|
2357
2465
|
weaponType = BlzGetEventWeaponType(),
|
|
2358
|
-
|
|
2466
|
+
metadata = metadata,
|
|
2467
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2468
|
+
originalAmount = GetEventDamage(),
|
|
2469
|
+
originalMetadata = metadata,
|
|
2470
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2359
2471
|
}
|
|
2360
2472
|
if data.isAttack and source then
|
|
2361
2473
|
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 +2481,36 @@ Unit.onDamaging = (function()
|
|
|
2369
2481
|
invoke(
|
|
2370
2482
|
event,
|
|
2371
2483
|
source,
|
|
2372
|
-
|
|
2484
|
+
target,
|
|
2373
2485
|
setmetatable(
|
|
2374
2486
|
{},
|
|
2375
2487
|
{
|
|
2376
2488
|
__index = data,
|
|
2377
2489
|
__newindex = function(self, key, value)
|
|
2378
|
-
damageSetters[key]
|
|
2490
|
+
local damageSetter = damageSetters[key]
|
|
2491
|
+
if damageSetter ~= nil then
|
|
2492
|
+
damageSetter(value)
|
|
2493
|
+
end
|
|
2379
2494
|
data[key] = value
|
|
2380
2495
|
end
|
|
2381
2496
|
}
|
|
2382
2497
|
)
|
|
2383
2498
|
)
|
|
2499
|
+
if data[0] and source then
|
|
2500
|
+
local sourceOwner = source.owner.handle
|
|
2501
|
+
data[1] = sourceOwner
|
|
2502
|
+
local targetOwner = target.owner.handle
|
|
2503
|
+
data[2] = targetOwner
|
|
2504
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2505
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2506
|
+
data[3] = true
|
|
2507
|
+
end
|
|
2508
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2509
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2510
|
+
data[4] = true
|
|
2511
|
+
end
|
|
2512
|
+
end
|
|
2513
|
+
damagingEventByTarget[target] = data
|
|
2384
2514
|
return
|
|
2385
2515
|
end
|
|
2386
2516
|
BlzSetEventDamage(0)
|
|
@@ -2388,7 +2518,7 @@ Unit.onDamaging = (function()
|
|
|
2388
2518
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2389
2519
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2390
2520
|
local sourceOwner = source.owner.handle
|
|
2391
|
-
local targetOwner =
|
|
2521
|
+
local targetOwner = target.owner.handle
|
|
2392
2522
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2393
2523
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2394
2524
|
Timer:run(function()
|
|
@@ -2404,23 +2534,19 @@ Unit.onDamaging = (function()
|
|
|
2404
2534
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2405
2535
|
local condition = ____value[1]
|
|
2406
2536
|
local action = ____value[2]
|
|
2407
|
-
if condition(
|
|
2408
|
-
source,
|
|
2409
|
-
____exports.Unit:of(target),
|
|
2410
|
-
data
|
|
2411
|
-
) then
|
|
2537
|
+
if condition(source, target, data) then
|
|
2412
2538
|
action(
|
|
2413
2539
|
source,
|
|
2414
|
-
|
|
2540
|
+
target,
|
|
2415
2541
|
setmetatable(
|
|
2416
2542
|
{fire = function()
|
|
2417
2543
|
UnitDamageTarget(
|
|
2418
2544
|
source.handle,
|
|
2419
|
-
target,
|
|
2545
|
+
target.handle,
|
|
2420
2546
|
data.amount,
|
|
2421
2547
|
true,
|
|
2422
2548
|
true,
|
|
2423
|
-
data.attackType,
|
|
2549
|
+
attackTypeToNative(data.attackType),
|
|
2424
2550
|
data.damageType,
|
|
2425
2551
|
data.weaponType
|
|
2426
2552
|
)
|
|
@@ -2447,26 +2573,50 @@ Unit.onDamage = __TS__New(
|
|
|
2447
2573
|
if source and source.typeId == dummyUnitId then
|
|
2448
2574
|
source = nil
|
|
2449
2575
|
end
|
|
2576
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2577
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2578
|
+
damagingEventByTarget[target] = nil
|
|
2450
2579
|
local data = {
|
|
2451
2580
|
amount = GetEventDamage(),
|
|
2452
|
-
attackType = BlzGetEventAttackType(),
|
|
2581
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2453
2582
|
damageType = BlzGetEventDamageType(),
|
|
2454
2583
|
weaponType = BlzGetEventWeaponType(),
|
|
2584
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2455
2585
|
isAttack = BlzGetEventIsAttack(),
|
|
2456
|
-
originalAmount = GetEventDamage(),
|
|
2586
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2587
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2457
2588
|
preventDeath = damageEventPreventDeath
|
|
2458
2589
|
}
|
|
2590
|
+
if damagingEvent then
|
|
2591
|
+
for key, value in pairs(damagingEvent) do
|
|
2592
|
+
if isAttribute(key) then
|
|
2593
|
+
data[key] = value
|
|
2594
|
+
end
|
|
2595
|
+
end
|
|
2596
|
+
local sourceOwner = damagingEvent[1]
|
|
2597
|
+
if sourceOwner then
|
|
2598
|
+
local targetOwner = damagingEvent[2]
|
|
2599
|
+
if damagingEvent[3] then
|
|
2600
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2601
|
+
end
|
|
2602
|
+
if damagingEvent[4] then
|
|
2603
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2604
|
+
end
|
|
2605
|
+
end
|
|
2606
|
+
end
|
|
2459
2607
|
local evData = setmetatable(
|
|
2460
2608
|
{},
|
|
2461
2609
|
{
|
|
2462
2610
|
__index = data,
|
|
2463
2611
|
__newindex = function(self, key, value)
|
|
2464
|
-
damageSetters[key]
|
|
2612
|
+
local damageSetter = damageSetters[key]
|
|
2613
|
+
if damageSetter ~= nil then
|
|
2614
|
+
damageSetter(value)
|
|
2615
|
+
end
|
|
2465
2616
|
data[key] = value
|
|
2466
2617
|
end
|
|
2467
2618
|
}
|
|
2468
2619
|
)
|
|
2469
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2470
2620
|
invoke(event, source, target, evData)
|
|
2471
2621
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2472
2622
|
local bonusHealth = math.ceil(evData.amount)
|
|
@@ -2509,8 +2659,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2509
2659
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2510
2660
|
function()
|
|
2511
2661
|
local unit = getTriggerUnit()
|
|
2512
|
-
|
|
2513
|
-
|
|
2662
|
+
local item = getManipulatedItem()
|
|
2663
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2664
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2514
2665
|
end
|
|
2515
2666
|
return IgnoreEvent
|
|
2516
2667
|
end
|
|
@@ -2520,8 +2671,9 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2520
2671
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2521
2672
|
function()
|
|
2522
2673
|
local unit = getTriggerUnit()
|
|
2523
|
-
|
|
2524
|
-
|
|
2674
|
+
local item = getManipulatedItem()
|
|
2675
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2676
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2525
2677
|
end
|
|
2526
2678
|
return IgnoreEvent
|
|
2527
2679
|
end
|
|
@@ -2529,7 +2681,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2529
2681
|
Unit.itemUsedEvent = __TS__New(
|
|
2530
2682
|
____exports.UnitTriggerEvent,
|
|
2531
2683
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2532
|
-
function()
|
|
2684
|
+
function()
|
|
2685
|
+
local unit = getTriggerUnit()
|
|
2686
|
+
local item = getManipulatedItem()
|
|
2687
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2688
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2689
|
+
end
|
|
2690
|
+
return IgnoreEvent
|
|
2691
|
+
end
|
|
2533
2692
|
)
|
|
2534
2693
|
Unit.itemStackedEvent = __TS__New(
|
|
2535
2694
|
____exports.UnitTriggerEvent,
|
|
@@ -2538,7 +2697,43 @@ Unit.itemStackedEvent = __TS__New(
|
|
|
2538
2697
|
)
|
|
2539
2698
|
__TS__ObjectDefineProperty(
|
|
2540
2699
|
Unit,
|
|
2541
|
-
"
|
|
2700
|
+
"itemChargesChangedEvent",
|
|
2701
|
+
{get = function(self)
|
|
2702
|
+
local event = __TS__New(Event)
|
|
2703
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2704
|
+
local unit = item.owner
|
|
2705
|
+
if unit ~= nil then
|
|
2706
|
+
invoke(event, unit, item)
|
|
2707
|
+
end
|
|
2708
|
+
end)
|
|
2709
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2710
|
+
return event
|
|
2711
|
+
end}
|
|
2712
|
+
)
|
|
2713
|
+
__TS__ObjectDefineProperty(
|
|
2714
|
+
Unit,
|
|
2715
|
+
"itemUseOrderEvent",
|
|
2716
|
+
{get = function(self)
|
|
2717
|
+
local event = __TS__New(Event)
|
|
2718
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2719
|
+
local slot = order - orderId("useslot0")
|
|
2720
|
+
local function listener(unit)
|
|
2721
|
+
local item = unit.items[slot + 1]
|
|
2722
|
+
if item ~= nil then
|
|
2723
|
+
invoke(event, unit, item)
|
|
2724
|
+
end
|
|
2725
|
+
end
|
|
2726
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2727
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2728
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2729
|
+
end
|
|
2730
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2731
|
+
return event
|
|
2732
|
+
end}
|
|
2733
|
+
)
|
|
2734
|
+
__TS__ObjectDefineProperty(
|
|
2735
|
+
Unit,
|
|
2736
|
+
"itemMoveOrderEvent",
|
|
2542
2737
|
{get = function(self)
|
|
2543
2738
|
local event = __TS__New(Event)
|
|
2544
2739
|
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
@@ -2556,7 +2751,7 @@ __TS__ObjectDefineProperty(
|
|
|
2556
2751
|
end
|
|
2557
2752
|
end)
|
|
2558
2753
|
end
|
|
2559
|
-
rawset(self, "
|
|
2754
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2560
2755
|
return event
|
|
2561
2756
|
end}
|
|
2562
2757
|
)
|