warscript 0.0.1-dev.e7b1f67 → 0.0.1-dev.ea102a7
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/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +8 -0
- package/core/types/frame.lua +117 -22
- 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 +8 -8
- package/core/types/timer.lua +39 -23
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +846 -790
- package/engine/behavior.d.ts +11 -6
- package/engine/behavior.lua +112 -33
- 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 +8 -5
- 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 +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +20 -4
- package/engine/behaviour/ability.lua +111 -47
- 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 +39 -0
- package/engine/behaviour/unit.lua +210 -4
- package/engine/buff.d.ts +102 -42
- package/engine/buff.lua +446 -206
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +129 -85
- package/engine/internal/item/ability.lua +162 -4
- 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/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 +45 -1
- package/engine/internal/unit/ability.lua +108 -16
- 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 +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- 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.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +12 -3
- 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+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +42 -10
- package/engine/internal/unit.d.ts +57 -19
- package/engine/internal/unit.lua +396 -160
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- 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/sound-preset-name.d.ts +5 -1
- 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 +93 -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 +15 -1
- package/engine/object-data/entry/item-type.lua +93 -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 +28 -5
- package/engine/object-field/ability.lua +59 -5
- 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/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/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 +249 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +4 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +7 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +3 -4
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- 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/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -2
- package/utility/linked-set.lua +8 -2
- 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 +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/internal/unit.lua
CHANGED
|
@@ -7,6 +7,9 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
|
+
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
|
+
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
10
13
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
11
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
12
15
|
local Set = ____lualib.Set
|
|
@@ -48,12 +51,21 @@ local ____arrays = require("utility.arrays")
|
|
|
48
51
|
local forEach = ____arrays.forEach
|
|
49
52
|
local ____math = require("math")
|
|
50
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
|
|
51
65
|
local match = string.match
|
|
52
66
|
local ____tostring = _G.tostring
|
|
53
67
|
local setUnitAnimation = SetUnitAnimation
|
|
54
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
55
68
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
56
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
57
69
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
58
70
|
local getUnitRealField = BlzGetUnitRealField
|
|
59
71
|
local getHeroStr = GetHeroStr
|
|
@@ -72,9 +84,9 @@ local setUnitScale = SetUnitScale
|
|
|
72
84
|
local setUnitPosition = SetUnitPosition
|
|
73
85
|
local setUnitTimeScale = SetUnitTimeScale
|
|
74
86
|
local getHandleId = GetHandleId
|
|
87
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
75
88
|
local createUnit = CreateUnit
|
|
76
89
|
local killUnit = KillUnit
|
|
77
|
-
local setUnitExploded = SetUnitExploded
|
|
78
90
|
local removeUnit = RemoveUnit
|
|
79
91
|
local getUnitTypeId = GetUnitTypeId
|
|
80
92
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -90,8 +102,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
90
102
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
91
103
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
92
104
|
local isUnitInRange = IsUnitInRange
|
|
93
|
-
local setResourceAmount = SetResourceAmount
|
|
94
|
-
local getResourceAmount = GetResourceAmount
|
|
95
105
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
96
106
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
97
107
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -115,15 +125,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
115
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
116
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
117
127
|
local unitAlive = UnitAlive
|
|
118
|
-
local unitAddType = UnitAddType
|
|
119
|
-
local unitRemoveType = UnitRemoveType
|
|
120
|
-
local isUnitIllusion = IsUnitIllusion
|
|
121
|
-
local isUnitType = IsUnitType
|
|
122
128
|
local isUnitAlly = IsUnitAlly
|
|
123
129
|
local isUnitEnemy = IsUnitEnemy
|
|
124
130
|
local getOwningPlayer = GetOwningPlayer
|
|
125
|
-
local setUnitColor = SetUnitColor
|
|
126
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
127
131
|
____exports.UnitClassification = {}
|
|
128
132
|
local UnitClassification = ____exports.UnitClassification
|
|
129
133
|
do
|
|
@@ -133,6 +137,7 @@ do
|
|
|
133
137
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
134
138
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
135
139
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
140
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
136
141
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
137
142
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
138
143
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -279,16 +284,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
279
284
|
end
|
|
280
285
|
local function dispatch(event, idGetter, argsGetter)
|
|
281
286
|
local initialized = false
|
|
282
|
-
local x = {}
|
|
283
287
|
return setmetatable(
|
|
284
|
-
|
|
288
|
+
{},
|
|
285
289
|
{
|
|
286
290
|
__index = function(self, id)
|
|
287
291
|
if type(id) ~= "number" then
|
|
288
292
|
return event[id]
|
|
289
293
|
end
|
|
290
294
|
if not initialized then
|
|
291
|
-
local invoke = Event.invoke
|
|
292
295
|
event:addListener(function(...)
|
|
293
296
|
local id = idGetter(...)
|
|
294
297
|
local dispatched = rawget(self, id)
|
|
@@ -326,7 +329,6 @@ local function dispatchAbility(event)
|
|
|
326
329
|
return event[id]
|
|
327
330
|
end
|
|
328
331
|
if not initialized then
|
|
329
|
-
local invoke = Event.invoke
|
|
330
332
|
event:addListener(function(unit, ability, ...)
|
|
331
333
|
local dispatched = rawget(self, ability.typeId)
|
|
332
334
|
if dispatched ~= nil then
|
|
@@ -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",
|
|
@@ -562,17 +587,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
587
|
____exports.Unit:of(unit)
|
|
563
588
|
)
|
|
564
589
|
end
|
|
565
|
-
if not unitAddAbility(unit, abilityId) then
|
|
566
|
-
if getUnitAbility(unit, abilityId) == ability then
|
|
567
|
-
return UnitAbility:of(
|
|
568
|
-
ability,
|
|
569
|
-
abilityId,
|
|
570
|
-
____exports.Unit:of(unit)
|
|
571
|
-
)
|
|
572
|
-
end
|
|
573
|
-
else
|
|
574
|
-
unitRemoveAbility(unit, abilityId)
|
|
575
|
-
end
|
|
576
590
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
577
591
|
local item = unitItemInSlot(unit, i)
|
|
578
592
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -630,15 +644,15 @@ for ____, player in ipairs(Player.all) do
|
|
|
630
644
|
dummies[player] = dummy
|
|
631
645
|
end
|
|
632
646
|
local function delayHealthChecksCallback(unit)
|
|
633
|
-
local counter = (unit[
|
|
647
|
+
local counter = (unit[103] or 0) - 1
|
|
634
648
|
if counter ~= 0 then
|
|
635
|
-
unit[
|
|
649
|
+
unit[103] = counter
|
|
636
650
|
return
|
|
637
651
|
end
|
|
638
|
-
unit[
|
|
639
|
-
local healthBonus = unit[
|
|
652
|
+
unit[103] = nil
|
|
653
|
+
local healthBonus = unit[104]
|
|
640
654
|
if healthBonus ~= nil then
|
|
641
|
-
unit[
|
|
655
|
+
unit[104] = nil
|
|
642
656
|
local handle = unit.handle
|
|
643
657
|
BlzSetUnitMaxHP(
|
|
644
658
|
handle,
|
|
@@ -646,12 +660,27 @@ local function delayHealthChecksCallback(unit)
|
|
|
646
660
|
)
|
|
647
661
|
end
|
|
648
662
|
end
|
|
663
|
+
local nextSyncId = 1
|
|
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
|
|
649
675
|
____exports.Unit = __TS__Class()
|
|
650
676
|
local Unit = ____exports.Unit
|
|
651
677
|
Unit.name = "Unit"
|
|
652
678
|
__TS__ClassExtends(Unit, Handle)
|
|
653
679
|
function Unit.prototype.____constructor(self, handle)
|
|
654
680
|
Handle.prototype.____constructor(self, handle)
|
|
681
|
+
local ____nextSyncId_1 = nextSyncId
|
|
682
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
683
|
+
self.syncId = ____nextSyncId_1
|
|
655
684
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
656
685
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
657
686
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -664,6 +693,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
664
693
|
fourCC("Amrf")
|
|
665
694
|
))
|
|
666
695
|
end
|
|
696
|
+
unitBySyncId[self.syncId] = self
|
|
667
697
|
local ____ = self.abilities
|
|
668
698
|
end
|
|
669
699
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -682,6 +712,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
682
712
|
end
|
|
683
713
|
function Unit.prototype.onDestroy(self)
|
|
684
714
|
local handle = self.handle
|
|
715
|
+
self[107] = getUnitX(handle)
|
|
716
|
+
self[108] = getUnitY(handle)
|
|
685
717
|
if not self._owner then
|
|
686
718
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
687
719
|
end
|
|
@@ -749,17 +781,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
749
781
|
end}
|
|
750
782
|
end
|
|
751
783
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
752
|
-
local
|
|
753
|
-
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
|
|
754
786
|
end
|
|
755
787
|
function Unit.prototype.addClassification(self, classification)
|
|
756
|
-
return
|
|
788
|
+
return UnitAddType(self.handle, classification)
|
|
757
789
|
end
|
|
758
790
|
function Unit.prototype.removeClassification(self, classification)
|
|
759
|
-
return
|
|
791
|
+
return UnitRemoveType(self.handle, classification)
|
|
760
792
|
end
|
|
761
793
|
function Unit.prototype.hasClassification(self, classification)
|
|
762
|
-
return
|
|
794
|
+
return IsUnitType(self.handle, classification)
|
|
763
795
|
end
|
|
764
796
|
function Unit.prototype.isVisibleTo(self, player)
|
|
765
797
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -768,13 +800,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
768
800
|
return isUnitInvisible(self.handle, player.handle)
|
|
769
801
|
end
|
|
770
802
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
771
|
-
local
|
|
803
|
+
local ____temp_3
|
|
772
804
|
if type(x) == "number" then
|
|
773
|
-
|
|
805
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
774
806
|
else
|
|
775
|
-
|
|
807
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
776
808
|
end
|
|
777
|
-
return
|
|
809
|
+
return ____temp_3
|
|
778
810
|
end
|
|
779
811
|
function Unit.prototype.isAllyOf(self, unit)
|
|
780
812
|
return isUnitAlly(
|
|
@@ -792,16 +824,28 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
792
824
|
if type(animation) == "number" then
|
|
793
825
|
setUnitAnimationByIndex(self.handle, animation)
|
|
794
826
|
elseif rarity then
|
|
795
|
-
|
|
827
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
796
828
|
else
|
|
797
829
|
setUnitAnimation(self.handle, animation)
|
|
798
830
|
end
|
|
799
831
|
end
|
|
832
|
+
function Unit.prototype.resetAnimation(self)
|
|
833
|
+
ResetUnitAnimation(self.handle)
|
|
834
|
+
end
|
|
800
835
|
function Unit.prototype.queueAnimation(self, animation)
|
|
801
|
-
|
|
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
|
|
802
846
|
end
|
|
803
847
|
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
-
self[
|
|
848
|
+
self[103] = (self[103] or 0) + 1
|
|
805
849
|
Timer:run(delayHealthChecksCallback, self)
|
|
806
850
|
end
|
|
807
851
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -811,14 +855,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
811
855
|
return IsUnitSelected(self.handle, player.handle)
|
|
812
856
|
end
|
|
813
857
|
function Unit.prototype.explode(self)
|
|
814
|
-
|
|
858
|
+
SetUnitExploded(self.handle, true)
|
|
815
859
|
killUnit(self.handle)
|
|
816
860
|
end
|
|
817
861
|
function Unit.prototype.kill(self)
|
|
818
862
|
killUnit(self.handle)
|
|
819
863
|
end
|
|
820
|
-
function Unit.prototype.revive(self,
|
|
821
|
-
|
|
864
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
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
|
|
870
|
+
end
|
|
871
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
872
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
822
873
|
end
|
|
823
874
|
function Unit.prototype.healTarget(self, target, amount)
|
|
824
875
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -858,20 +909,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
858
909
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
859
910
|
end
|
|
860
911
|
function Unit.prototype.itemInSlot(self, slot)
|
|
861
|
-
return Item:of(
|
|
912
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
862
913
|
end
|
|
863
914
|
function Unit.prototype.addAbility(self, abilityId)
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
915
|
+
local ability = UnitAbility:of(
|
|
916
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
917
|
+
abilityId,
|
|
918
|
+
self
|
|
919
|
+
)
|
|
920
|
+
if ability ~= nil then
|
|
870
921
|
local abilities = self.abilities
|
|
871
922
|
abilities[#abilities + 1] = ability
|
|
872
|
-
return ability
|
|
873
923
|
end
|
|
874
|
-
return
|
|
924
|
+
return ability
|
|
875
925
|
end
|
|
876
926
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
877
927
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -885,31 +935,21 @@ end
|
|
|
885
935
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
886
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
887
937
|
end
|
|
888
|
-
function Unit.prototype.
|
|
889
|
-
local
|
|
890
|
-
|
|
891
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
892
|
-
return nil
|
|
893
|
-
end
|
|
894
|
-
return UnitAbility:of(
|
|
895
|
-
getUnitAbility(self.handle, abilityId),
|
|
896
|
-
abilityId,
|
|
897
|
-
self
|
|
898
|
-
)
|
|
938
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
899
941
|
end
|
|
900
|
-
function Unit.prototype.removeAbility(self,
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
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
|
|
909
950
|
end
|
|
910
|
-
return true
|
|
911
951
|
end
|
|
912
|
-
return
|
|
952
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
913
953
|
end
|
|
914
954
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
915
955
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -923,12 +963,34 @@ end
|
|
|
923
963
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
924
964
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
925
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
|
|
926
981
|
function Unit.prototype.interruptAttack(self)
|
|
927
982
|
unitInterruptAttack(self.handle)
|
|
928
983
|
end
|
|
929
984
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
930
|
-
|
|
931
|
-
unitDisableAbility(
|
|
985
|
+
local handle = self.handle
|
|
986
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
987
|
+
Timer:run(
|
|
988
|
+
unitDisableAbility,
|
|
989
|
+
handle,
|
|
990
|
+
abilityId,
|
|
991
|
+
false,
|
|
992
|
+
false
|
|
993
|
+
)
|
|
932
994
|
end
|
|
933
995
|
function Unit.prototype.getDistanceTo(self, target)
|
|
934
996
|
local handle = self.handle
|
|
@@ -988,18 +1050,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
988
1050
|
self:decrementStunCounter()
|
|
989
1051
|
end
|
|
990
1052
|
function Unit.prototype.incrementStunCounter(self)
|
|
991
|
-
local stunCounter = self[
|
|
992
|
-
if not self[
|
|
1053
|
+
local stunCounter = self[102] or 0
|
|
1054
|
+
if not self[101] or stunCounter >= 0 then
|
|
993
1055
|
BlzPauseUnitEx(self.handle, true)
|
|
994
1056
|
end
|
|
995
|
-
self[
|
|
1057
|
+
self[102] = stunCounter + 1
|
|
996
1058
|
end
|
|
997
1059
|
function Unit.prototype.decrementStunCounter(self)
|
|
998
|
-
local stunCounter = self[
|
|
999
|
-
if not self[
|
|
1060
|
+
local stunCounter = self[102] or 0
|
|
1061
|
+
if not self[101] or stunCounter >= 1 then
|
|
1000
1062
|
BlzPauseUnitEx(self.handle, false)
|
|
1001
1063
|
end
|
|
1002
|
-
self[
|
|
1064
|
+
self[102] = stunCounter - 1
|
|
1003
1065
|
end
|
|
1004
1066
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1005
1067
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1101,8 +1163,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1101
1163
|
)
|
|
1102
1164
|
return targetCollection
|
|
1103
1165
|
end
|
|
1104
|
-
function Unit.getSelectionOf(self, player)
|
|
1105
|
-
|
|
1166
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1167
|
+
if target == nil then
|
|
1168
|
+
target = {}
|
|
1169
|
+
end
|
|
1170
|
+
targetCollection = target
|
|
1106
1171
|
targetCollectionNextIndex = 1
|
|
1107
1172
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1108
1173
|
return targetCollection
|
|
@@ -1124,6 +1189,9 @@ end
|
|
|
1124
1189
|
function Unit.prototype.__tostring(self)
|
|
1125
1190
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1126
1191
|
end
|
|
1192
|
+
function Unit.getBySyncId(self, syncId)
|
|
1193
|
+
return unitBySyncId[syncId]
|
|
1194
|
+
end
|
|
1127
1195
|
__TS__SetDescriptor(
|
|
1128
1196
|
Unit.prototype,
|
|
1129
1197
|
"_deltas",
|
|
@@ -1183,7 +1251,15 @@ __TS__SetDescriptor(
|
|
|
1183
1251
|
Unit.prototype,
|
|
1184
1252
|
"isIllusion",
|
|
1185
1253
|
{get = function(self)
|
|
1186
|
-
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")
|
|
1187
1263
|
end},
|
|
1188
1264
|
true
|
|
1189
1265
|
)
|
|
@@ -1260,6 +1336,19 @@ __TS__SetDescriptor(
|
|
|
1260
1336
|
},
|
|
1261
1337
|
true
|
|
1262
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
|
+
)
|
|
1263
1352
|
__TS__SetDescriptor(
|
|
1264
1353
|
Unit.prototype,
|
|
1265
1354
|
"strengthBase",
|
|
@@ -1381,17 +1470,17 @@ __TS__SetDescriptor(
|
|
|
1381
1470
|
"isTeamGlowVisible",
|
|
1382
1471
|
{
|
|
1383
1472
|
get = function(self)
|
|
1384
|
-
return not self[
|
|
1473
|
+
return not self[106]
|
|
1385
1474
|
end,
|
|
1386
1475
|
set = function(self, isTeamGlowVisible)
|
|
1387
|
-
|
|
1388
|
-
local
|
|
1476
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1477
|
+
local ____temp_7
|
|
1389
1478
|
if not isTeamGlowVisible then
|
|
1390
|
-
|
|
1479
|
+
____temp_7 = true
|
|
1391
1480
|
else
|
|
1392
|
-
|
|
1481
|
+
____temp_7 = nil
|
|
1393
1482
|
end
|
|
1394
|
-
self[
|
|
1483
|
+
self[106] = ____temp_7
|
|
1395
1484
|
end
|
|
1396
1485
|
},
|
|
1397
1486
|
true
|
|
@@ -1400,9 +1489,9 @@ __TS__SetDescriptor(
|
|
|
1400
1489
|
Unit.prototype,
|
|
1401
1490
|
"color",
|
|
1402
1491
|
{set = function(self, color)
|
|
1403
|
-
|
|
1404
|
-
if self[
|
|
1405
|
-
|
|
1492
|
+
SetUnitColor(self.handle, color.handle)
|
|
1493
|
+
if self[106] then
|
|
1494
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1406
1495
|
end
|
|
1407
1496
|
end},
|
|
1408
1497
|
true
|
|
@@ -1425,14 +1514,14 @@ __TS__SetDescriptor(
|
|
|
1425
1514
|
"maxHealth",
|
|
1426
1515
|
{
|
|
1427
1516
|
get = function(self)
|
|
1428
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1517
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1429
1518
|
end,
|
|
1430
1519
|
set = function(self, maxHealth)
|
|
1431
|
-
if maxHealth < 1 and self[
|
|
1432
|
-
self[
|
|
1520
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1521
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1433
1522
|
maxHealth = 1
|
|
1434
1523
|
end
|
|
1435
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1524
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1436
1525
|
end
|
|
1437
1526
|
},
|
|
1438
1527
|
true
|
|
@@ -1474,10 +1563,10 @@ __TS__SetDescriptor(
|
|
|
1474
1563
|
"health",
|
|
1475
1564
|
{
|
|
1476
1565
|
get = function(self)
|
|
1477
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1566
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1478
1567
|
end,
|
|
1479
1568
|
set = function(self, health)
|
|
1480
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1569
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1481
1570
|
end
|
|
1482
1571
|
},
|
|
1483
1572
|
true
|
|
@@ -1571,7 +1660,7 @@ __TS__SetDescriptor(
|
|
|
1571
1660
|
"x",
|
|
1572
1661
|
{
|
|
1573
1662
|
get = function(self)
|
|
1574
|
-
return getUnitX(self.handle)
|
|
1663
|
+
return self[107] or getUnitX(self.handle)
|
|
1575
1664
|
end,
|
|
1576
1665
|
set = function(self, v)
|
|
1577
1666
|
SetUnitX(self.handle, v)
|
|
@@ -1584,7 +1673,7 @@ __TS__SetDescriptor(
|
|
|
1584
1673
|
"y",
|
|
1585
1674
|
{
|
|
1586
1675
|
get = function(self)
|
|
1587
|
-
return getUnitY(self.handle)
|
|
1676
|
+
return self[108] or getUnitY(self.handle)
|
|
1588
1677
|
end,
|
|
1589
1678
|
set = function(self, v)
|
|
1590
1679
|
SetUnitY(self.handle, v)
|
|
@@ -1670,10 +1759,10 @@ __TS__SetDescriptor(
|
|
|
1670
1759
|
"gold",
|
|
1671
1760
|
{
|
|
1672
1761
|
get = function(self)
|
|
1673
|
-
return
|
|
1762
|
+
return GetResourceAmount(self.handle)
|
|
1674
1763
|
end,
|
|
1675
1764
|
set = function(self, gold)
|
|
1676
|
-
|
|
1765
|
+
SetResourceAmount(self.handle, gold)
|
|
1677
1766
|
end
|
|
1678
1767
|
},
|
|
1679
1768
|
true
|
|
@@ -1688,17 +1777,17 @@ __TS__SetDescriptor(
|
|
|
1688
1777
|
set = function(self, isPaused)
|
|
1689
1778
|
local handle = self.handle
|
|
1690
1779
|
if isPaused and not IsUnitPaused(handle) then
|
|
1691
|
-
self[
|
|
1692
|
-
for _ = self[
|
|
1780
|
+
self[101] = true
|
|
1781
|
+
for _ = self[102] or 0, -1 do
|
|
1693
1782
|
BlzPauseUnitEx(handle, true)
|
|
1694
1783
|
end
|
|
1695
1784
|
PauseUnit(handle, true)
|
|
1696
1785
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1697
1786
|
PauseUnit(handle, false)
|
|
1698
|
-
for _ = self[
|
|
1787
|
+
for _ = self[102] or 0, -1 do
|
|
1699
1788
|
BlzPauseUnitEx(handle, false)
|
|
1700
1789
|
end
|
|
1701
|
-
self[
|
|
1790
|
+
self[101] = nil
|
|
1702
1791
|
end
|
|
1703
1792
|
end
|
|
1704
1793
|
},
|
|
@@ -1801,6 +1890,19 @@ __TS__SetDescriptor(
|
|
|
1801
1890
|
end},
|
|
1802
1891
|
true
|
|
1803
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
|
+
)
|
|
1804
1906
|
__TS__SetDescriptor(
|
|
1805
1907
|
Unit.prototype,
|
|
1806
1908
|
"pathing",
|
|
@@ -1982,6 +2084,14 @@ __TS__SetDescriptor(
|
|
|
1982
2084
|
end},
|
|
1983
2085
|
true
|
|
1984
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
|
+
)
|
|
1985
2095
|
__TS__SetDescriptor(
|
|
1986
2096
|
Unit.prototype,
|
|
1987
2097
|
"onSelect",
|
|
@@ -2055,7 +2165,6 @@ Unit.onDecay = __TS__New(
|
|
|
2055
2165
|
Unit.onResurrect = __TS__New(
|
|
2056
2166
|
InitializingEvent,
|
|
2057
2167
|
function(event)
|
|
2058
|
-
local invoke = Event.invoke
|
|
2059
2168
|
local dead = setmetatable({}, {__mode = "k"})
|
|
2060
2169
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2061
2170
|
dead[unit] = true
|
|
@@ -2071,10 +2180,15 @@ Unit.onResurrect = __TS__New(
|
|
|
2071
2180
|
Unit.morphEvent = __TS__New(
|
|
2072
2181
|
InitializingEvent,
|
|
2073
2182
|
function(event)
|
|
2183
|
+
local function ifNotLeft(unit)
|
|
2184
|
+
local handle = unit.handle
|
|
2185
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2186
|
+
invoke(event, unit)
|
|
2187
|
+
end
|
|
2188
|
+
end
|
|
2074
2189
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
2075
2190
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2076
|
-
|
|
2077
|
-
Timer:run(Event.invoke, event, unit)
|
|
2191
|
+
Timer:run(ifNotLeft, unit)
|
|
2078
2192
|
end
|
|
2079
2193
|
end)
|
|
2080
2194
|
end
|
|
@@ -2112,27 +2226,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
2112
2226
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
2113
2227
|
InitializingEvent,
|
|
2114
2228
|
function(event)
|
|
2115
|
-
local invoke = Event.invoke
|
|
2116
2229
|
local function listener(unit, id)
|
|
2117
|
-
local
|
|
2230
|
+
local ____GetSpellTargetUnit_result_10
|
|
2118
2231
|
if GetSpellTargetUnit() then
|
|
2119
|
-
|
|
2232
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2120
2233
|
else
|
|
2121
|
-
local
|
|
2234
|
+
local ____GetSpellTargetItem_result_9
|
|
2122
2235
|
if GetSpellTargetItem() then
|
|
2123
|
-
|
|
2236
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2124
2237
|
else
|
|
2125
|
-
local
|
|
2238
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2126
2239
|
if GetSpellTargetDestructable() then
|
|
2127
|
-
|
|
2240
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2128
2241
|
else
|
|
2129
|
-
|
|
2242
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2130
2243
|
end
|
|
2131
|
-
|
|
2244
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2132
2245
|
end
|
|
2133
|
-
|
|
2246
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2134
2247
|
end
|
|
2135
|
-
local target =
|
|
2248
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2136
2249
|
if target then
|
|
2137
2250
|
invoke(event, unit, id, target)
|
|
2138
2251
|
end
|
|
@@ -2304,10 +2417,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2304
2417
|
____exports.UnitTriggerEvent,
|
|
2305
2418
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2306
2419
|
function()
|
|
2307
|
-
local
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2420
|
+
local handle = getOrderedUnit()
|
|
2421
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2422
|
+
local unit = ____exports.Unit:of(handle)
|
|
2423
|
+
if unit.state == 1 then
|
|
2424
|
+
return unit, getIssuedOrderId()
|
|
2425
|
+
end
|
|
2311
2426
|
end
|
|
2312
2427
|
return IgnoreEvent
|
|
2313
2428
|
end
|
|
@@ -2329,7 +2444,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2329
2444
|
)
|
|
2330
2445
|
Unit.onDamaging = (function()
|
|
2331
2446
|
local event = __TS__New(Event)
|
|
2332
|
-
local invoke = Event.invoke
|
|
2333
2447
|
local trigger = CreateTrigger()
|
|
2334
2448
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2335
2449
|
TriggerAddCondition(
|
|
@@ -2339,13 +2453,19 @@ Unit.onDamaging = (function()
|
|
|
2339
2453
|
if source and source.typeId == dummyUnitId then
|
|
2340
2454
|
source = nil
|
|
2341
2455
|
end
|
|
2342
|
-
local target = BlzGetEventDamageTarget()
|
|
2456
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2457
|
+
local metadata = damageMetadataByTarget[target]
|
|
2458
|
+
damageMetadataByTarget[target] = nil
|
|
2343
2459
|
local data = {
|
|
2344
2460
|
amount = GetEventDamage(),
|
|
2345
|
-
attackType = BlzGetEventAttackType(),
|
|
2461
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2346
2462
|
damageType = BlzGetEventDamageType(),
|
|
2347
2463
|
weaponType = BlzGetEventWeaponType(),
|
|
2348
|
-
|
|
2464
|
+
metadata = metadata,
|
|
2465
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2466
|
+
originalAmount = GetEventDamage(),
|
|
2467
|
+
originalMetadata = metadata,
|
|
2468
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2349
2469
|
}
|
|
2350
2470
|
if data.isAttack and source then
|
|
2351
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
|
|
@@ -2359,18 +2479,36 @@ Unit.onDamaging = (function()
|
|
|
2359
2479
|
invoke(
|
|
2360
2480
|
event,
|
|
2361
2481
|
source,
|
|
2362
|
-
|
|
2482
|
+
target,
|
|
2363
2483
|
setmetatable(
|
|
2364
2484
|
{},
|
|
2365
2485
|
{
|
|
2366
2486
|
__index = data,
|
|
2367
2487
|
__newindex = function(self, key, value)
|
|
2368
|
-
damageSetters[key]
|
|
2488
|
+
local damageSetter = damageSetters[key]
|
|
2489
|
+
if damageSetter ~= nil then
|
|
2490
|
+
damageSetter(value)
|
|
2491
|
+
end
|
|
2369
2492
|
data[key] = value
|
|
2370
2493
|
end
|
|
2371
2494
|
}
|
|
2372
2495
|
)
|
|
2373
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
|
|
2374
2512
|
return
|
|
2375
2513
|
end
|
|
2376
2514
|
BlzSetEventDamage(0)
|
|
@@ -2378,7 +2516,7 @@ Unit.onDamaging = (function()
|
|
|
2378
2516
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2379
2517
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2380
2518
|
local sourceOwner = source.owner.handle
|
|
2381
|
-
local targetOwner =
|
|
2519
|
+
local targetOwner = target.owner.handle
|
|
2382
2520
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2383
2521
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2384
2522
|
Timer:run(function()
|
|
@@ -2394,23 +2532,19 @@ Unit.onDamaging = (function()
|
|
|
2394
2532
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2395
2533
|
local condition = ____value[1]
|
|
2396
2534
|
local action = ____value[2]
|
|
2397
|
-
if condition(
|
|
2398
|
-
source,
|
|
2399
|
-
____exports.Unit:of(target),
|
|
2400
|
-
data
|
|
2401
|
-
) then
|
|
2535
|
+
if condition(source, target, data) then
|
|
2402
2536
|
action(
|
|
2403
2537
|
source,
|
|
2404
|
-
|
|
2538
|
+
target,
|
|
2405
2539
|
setmetatable(
|
|
2406
2540
|
{fire = function()
|
|
2407
2541
|
UnitDamageTarget(
|
|
2408
2542
|
source.handle,
|
|
2409
|
-
target,
|
|
2543
|
+
target.handle,
|
|
2410
2544
|
data.amount,
|
|
2411
2545
|
true,
|
|
2412
2546
|
true,
|
|
2413
|
-
data.attackType,
|
|
2547
|
+
attackTypeToNative(data.attackType),
|
|
2414
2548
|
data.damageType,
|
|
2415
2549
|
data.weaponType
|
|
2416
2550
|
)
|
|
@@ -2428,7 +2562,6 @@ end)()
|
|
|
2428
2562
|
Unit.onDamage = __TS__New(
|
|
2429
2563
|
InitializingEvent,
|
|
2430
2564
|
function(event)
|
|
2431
|
-
local invoke = Event.invoke
|
|
2432
2565
|
local trigger = CreateTrigger()
|
|
2433
2566
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2434
2567
|
TriggerAddCondition(
|
|
@@ -2438,29 +2571,54 @@ Unit.onDamage = __TS__New(
|
|
|
2438
2571
|
if source and source.typeId == dummyUnitId then
|
|
2439
2572
|
source = nil
|
|
2440
2573
|
end
|
|
2574
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2575
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2576
|
+
damagingEventByTarget[target] = nil
|
|
2441
2577
|
local data = {
|
|
2442
2578
|
amount = GetEventDamage(),
|
|
2443
|
-
attackType = BlzGetEventAttackType(),
|
|
2579
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2444
2580
|
damageType = BlzGetEventDamageType(),
|
|
2445
2581
|
weaponType = BlzGetEventWeaponType(),
|
|
2582
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2446
2583
|
isAttack = BlzGetEventIsAttack(),
|
|
2584
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2585
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2447
2586
|
preventDeath = damageEventPreventDeath
|
|
2448
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
|
|
2449
2605
|
local evData = setmetatable(
|
|
2450
2606
|
{},
|
|
2451
2607
|
{
|
|
2452
2608
|
__index = data,
|
|
2453
2609
|
__newindex = function(self, key, value)
|
|
2454
|
-
damageSetters[key]
|
|
2610
|
+
local damageSetter = damageSetters[key]
|
|
2611
|
+
if damageSetter ~= nil then
|
|
2612
|
+
damageSetter(value)
|
|
2613
|
+
end
|
|
2455
2614
|
data[key] = value
|
|
2456
2615
|
end
|
|
2457
2616
|
}
|
|
2458
2617
|
)
|
|
2459
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2460
2618
|
invoke(event, source, target, evData)
|
|
2461
2619
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2462
2620
|
local bonusHealth = math.ceil(evData.amount)
|
|
2463
|
-
target[
|
|
2621
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2464
2622
|
BlzSetUnitMaxHP(
|
|
2465
2623
|
target.handle,
|
|
2466
2624
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2474,7 +2632,7 @@ Unit.onDamage = __TS__New(
|
|
|
2474
2632
|
evData[0],
|
|
2475
2633
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2476
2634
|
)
|
|
2477
|
-
target[
|
|
2635
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2478
2636
|
SetWidgetLife(
|
|
2479
2637
|
target.handle,
|
|
2480
2638
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2494,32 +2652,110 @@ Unit.onDamage = __TS__New(
|
|
|
2494
2652
|
DestroyTrigger(trigger)
|
|
2495
2653
|
end
|
|
2496
2654
|
)
|
|
2497
|
-
Unit.
|
|
2655
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2498
2656
|
____exports.UnitTriggerEvent,
|
|
2499
2657
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2500
2658
|
function()
|
|
2501
2659
|
local unit = getTriggerUnit()
|
|
2502
|
-
|
|
2503
|
-
|
|
2660
|
+
local item = getManipulatedItem()
|
|
2661
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2662
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2504
2663
|
end
|
|
2505
2664
|
return IgnoreEvent
|
|
2506
2665
|
end
|
|
2507
2666
|
)
|
|
2508
|
-
Unit.
|
|
2667
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2509
2668
|
____exports.UnitTriggerEvent,
|
|
2510
2669
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2511
2670
|
function()
|
|
2512
|
-
local
|
|
2513
|
-
|
|
2514
|
-
|
|
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
|
|
2515
2679
|
end
|
|
2516
2680
|
return IgnoreEvent
|
|
2517
2681
|
end
|
|
2518
2682
|
)
|
|
2519
|
-
Unit.
|
|
2683
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2520
2684
|
____exports.UnitTriggerEvent,
|
|
2521
2685
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2522
|
-
function()
|
|
2686
|
+
function()
|
|
2687
|
+
local unit = getTriggerUnit()
|
|
2688
|
+
local item = getManipulatedItem()
|
|
2689
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2690
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2691
|
+
end
|
|
2692
|
+
return IgnoreEvent
|
|
2693
|
+
end
|
|
2694
|
+
)
|
|
2695
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2696
|
+
____exports.UnitTriggerEvent,
|
|
2697
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
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}
|
|
2714
|
+
)
|
|
2715
|
+
__TS__ObjectDefineProperty(
|
|
2716
|
+
Unit,
|
|
2717
|
+
"itemUseOrderEvent",
|
|
2718
|
+
{get = function(self)
|
|
2719
|
+
local event = __TS__New(Event)
|
|
2720
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2721
|
+
local slot = order - orderId("useslot0")
|
|
2722
|
+
local function listener(unit)
|
|
2723
|
+
local item = unit.items[slot + 1]
|
|
2724
|
+
if item ~= nil then
|
|
2725
|
+
invoke(event, unit, item)
|
|
2726
|
+
end
|
|
2727
|
+
end
|
|
2728
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2729
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2730
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2731
|
+
end
|
|
2732
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2733
|
+
return event
|
|
2734
|
+
end}
|
|
2735
|
+
)
|
|
2736
|
+
__TS__ObjectDefineProperty(
|
|
2737
|
+
Unit,
|
|
2738
|
+
"itemMoveOrderEvent",
|
|
2739
|
+
{get = function(self)
|
|
2740
|
+
local event = __TS__New(Event)
|
|
2741
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2742
|
+
local slotTo = order - orderId("moveslot0")
|
|
2743
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2744
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2745
|
+
if slotFrom ~= nil then
|
|
2746
|
+
invoke(
|
|
2747
|
+
event,
|
|
2748
|
+
unit,
|
|
2749
|
+
item,
|
|
2750
|
+
slotFrom,
|
|
2751
|
+
slotTo
|
|
2752
|
+
)
|
|
2753
|
+
end
|
|
2754
|
+
end)
|
|
2755
|
+
end
|
|
2756
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2757
|
+
return event
|
|
2758
|
+
end}
|
|
2523
2759
|
)
|
|
2524
2760
|
__TS__ObjectDefineProperty(
|
|
2525
2761
|
Unit,
|