warscript 0.0.1-dev.c59dd14 → 0.0.1-dev.c60b168
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 -1
- 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 -1
- package/core/types/frame.lua +103 -13
- package/core/types/group.d.ts +0 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/player.lua +3 -1
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +79 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +39 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +844 -788
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +15 -10
- 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.d.ts +6 -1
- 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 +5 -4
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +208 -0
- package/engine/buff.d.ts +104 -44
- package/engine/buff.lua +453 -215
- 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 +128 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +141 -35
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +98 -14
- 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 +11 -8
- 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 +33 -7
- package/engine/internal/unit.d.ts +55 -18
- package/engine/internal/unit.lua +392 -157
- 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 -3
- 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/combat-classification.d.ts +0 -2
- 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.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -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/channel.d.ts +0 -1
- 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 -18
- package/engine/object-data/entry/ability-type.lua +90 -36
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -2
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- 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 -6
- package/engine/object-data/entry/unit-type.lua +214 -93
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- 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 -7
- package/engine/object-field.lua +190 -90
- package/engine/random.d.ts +1 -5
- 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 +13 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -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/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +2 -3
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/package.json +13 -13
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +16 -0
- package/string.lua +5 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +12 -5
- package/utility/arrays.lua +37 -3
- package/utility/bit-set.d.ts +0 -2
- 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 -3
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +5 -2
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +3 -2
- 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)
|
|
@@ -886,28 +936,17 @@ function Unit.prototype.hasAbility(self, abilityId)
|
|
|
886
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
887
937
|
end
|
|
888
938
|
function Unit.prototype.getAbilityById(self, abilityId)
|
|
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
|
-
)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
899
941
|
end
|
|
900
942
|
function Unit.prototype.removeAbility(self, abilityId)
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
return true
|
|
908
|
-
end
|
|
943
|
+
local abilities = self.abilities
|
|
944
|
+
for i = 1, #abilities do
|
|
945
|
+
if abilities[i].typeId == abilityId then
|
|
946
|
+
abilities[i]:destroy()
|
|
947
|
+
tremove(abilities, i)
|
|
948
|
+
return true
|
|
909
949
|
end
|
|
910
|
-
return true
|
|
911
950
|
end
|
|
912
951
|
return false
|
|
913
952
|
end
|
|
@@ -923,12 +962,34 @@ end
|
|
|
923
962
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
924
963
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
925
964
|
end
|
|
965
|
+
function Unit.prototype.interruptMovement(self)
|
|
966
|
+
local handle = self.handle
|
|
967
|
+
unitDisableAbility(
|
|
968
|
+
handle,
|
|
969
|
+
fourCC("Amov"),
|
|
970
|
+
true,
|
|
971
|
+
false
|
|
972
|
+
)
|
|
973
|
+
unitDisableAbility(
|
|
974
|
+
handle,
|
|
975
|
+
fourCC("Amov"),
|
|
976
|
+
false,
|
|
977
|
+
false
|
|
978
|
+
)
|
|
979
|
+
end
|
|
926
980
|
function Unit.prototype.interruptAttack(self)
|
|
927
981
|
unitInterruptAttack(self.handle)
|
|
928
982
|
end
|
|
929
983
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
930
|
-
|
|
931
|
-
unitDisableAbility(
|
|
984
|
+
local handle = self.handle
|
|
985
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
986
|
+
Timer:run(
|
|
987
|
+
unitDisableAbility,
|
|
988
|
+
handle,
|
|
989
|
+
abilityId,
|
|
990
|
+
false,
|
|
991
|
+
false
|
|
992
|
+
)
|
|
932
993
|
end
|
|
933
994
|
function Unit.prototype.getDistanceTo(self, target)
|
|
934
995
|
local handle = self.handle
|
|
@@ -988,18 +1049,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
988
1049
|
self:decrementStunCounter()
|
|
989
1050
|
end
|
|
990
1051
|
function Unit.prototype.incrementStunCounter(self)
|
|
991
|
-
local stunCounter = self[
|
|
992
|
-
if not self[
|
|
1052
|
+
local stunCounter = self[102] or 0
|
|
1053
|
+
if not self[101] or stunCounter >= 0 then
|
|
993
1054
|
BlzPauseUnitEx(self.handle, true)
|
|
994
1055
|
end
|
|
995
|
-
self[
|
|
1056
|
+
self[102] = stunCounter + 1
|
|
996
1057
|
end
|
|
997
1058
|
function Unit.prototype.decrementStunCounter(self)
|
|
998
|
-
local stunCounter = self[
|
|
999
|
-
if not self[
|
|
1059
|
+
local stunCounter = self[102] or 0
|
|
1060
|
+
if not self[101] or stunCounter >= 1 then
|
|
1000
1061
|
BlzPauseUnitEx(self.handle, false)
|
|
1001
1062
|
end
|
|
1002
|
-
self[
|
|
1063
|
+
self[102] = stunCounter - 1
|
|
1003
1064
|
end
|
|
1004
1065
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1005
1066
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1101,8 +1162,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1101
1162
|
)
|
|
1102
1163
|
return targetCollection
|
|
1103
1164
|
end
|
|
1104
|
-
function Unit.getSelectionOf(self, player)
|
|
1105
|
-
|
|
1165
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1166
|
+
if target == nil then
|
|
1167
|
+
target = {}
|
|
1168
|
+
end
|
|
1169
|
+
targetCollection = target
|
|
1106
1170
|
targetCollectionNextIndex = 1
|
|
1107
1171
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1108
1172
|
return targetCollection
|
|
@@ -1124,6 +1188,9 @@ end
|
|
|
1124
1188
|
function Unit.prototype.__tostring(self)
|
|
1125
1189
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1126
1190
|
end
|
|
1191
|
+
function Unit.getBySyncId(self, syncId)
|
|
1192
|
+
return unitBySyncId[syncId]
|
|
1193
|
+
end
|
|
1127
1194
|
__TS__SetDescriptor(
|
|
1128
1195
|
Unit.prototype,
|
|
1129
1196
|
"_deltas",
|
|
@@ -1183,7 +1250,15 @@ __TS__SetDescriptor(
|
|
|
1183
1250
|
Unit.prototype,
|
|
1184
1251
|
"isIllusion",
|
|
1185
1252
|
{get = function(self)
|
|
1186
|
-
return
|
|
1253
|
+
return IsUnitIllusion(self.handle)
|
|
1254
|
+
end},
|
|
1255
|
+
true
|
|
1256
|
+
)
|
|
1257
|
+
__TS__SetDescriptor(
|
|
1258
|
+
Unit.prototype,
|
|
1259
|
+
"isStunned",
|
|
1260
|
+
{get = function(self)
|
|
1261
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1187
1262
|
end},
|
|
1188
1263
|
true
|
|
1189
1264
|
)
|
|
@@ -1260,6 +1335,19 @@ __TS__SetDescriptor(
|
|
|
1260
1335
|
},
|
|
1261
1336
|
true
|
|
1262
1337
|
)
|
|
1338
|
+
__TS__SetDescriptor(
|
|
1339
|
+
Unit.prototype,
|
|
1340
|
+
"primaryAttribute",
|
|
1341
|
+
{
|
|
1342
|
+
get = function(self)
|
|
1343
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1344
|
+
end,
|
|
1345
|
+
set = function(self, primaryAttribute)
|
|
1346
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1347
|
+
end
|
|
1348
|
+
},
|
|
1349
|
+
true
|
|
1350
|
+
)
|
|
1263
1351
|
__TS__SetDescriptor(
|
|
1264
1352
|
Unit.prototype,
|
|
1265
1353
|
"strengthBase",
|
|
@@ -1381,17 +1469,17 @@ __TS__SetDescriptor(
|
|
|
1381
1469
|
"isTeamGlowVisible",
|
|
1382
1470
|
{
|
|
1383
1471
|
get = function(self)
|
|
1384
|
-
return not self[
|
|
1472
|
+
return not self[106]
|
|
1385
1473
|
end,
|
|
1386
1474
|
set = function(self, isTeamGlowVisible)
|
|
1387
|
-
|
|
1388
|
-
local
|
|
1475
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1476
|
+
local ____temp_7
|
|
1389
1477
|
if not isTeamGlowVisible then
|
|
1390
|
-
|
|
1478
|
+
____temp_7 = true
|
|
1391
1479
|
else
|
|
1392
|
-
|
|
1480
|
+
____temp_7 = nil
|
|
1393
1481
|
end
|
|
1394
|
-
self[
|
|
1482
|
+
self[106] = ____temp_7
|
|
1395
1483
|
end
|
|
1396
1484
|
},
|
|
1397
1485
|
true
|
|
@@ -1400,9 +1488,9 @@ __TS__SetDescriptor(
|
|
|
1400
1488
|
Unit.prototype,
|
|
1401
1489
|
"color",
|
|
1402
1490
|
{set = function(self, color)
|
|
1403
|
-
|
|
1404
|
-
if self[
|
|
1405
|
-
|
|
1491
|
+
SetUnitColor(self.handle, color.handle)
|
|
1492
|
+
if self[106] then
|
|
1493
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1406
1494
|
end
|
|
1407
1495
|
end},
|
|
1408
1496
|
true
|
|
@@ -1425,14 +1513,14 @@ __TS__SetDescriptor(
|
|
|
1425
1513
|
"maxHealth",
|
|
1426
1514
|
{
|
|
1427
1515
|
get = function(self)
|
|
1428
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1516
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1429
1517
|
end,
|
|
1430
1518
|
set = function(self, maxHealth)
|
|
1431
|
-
if maxHealth < 1 and self[
|
|
1432
|
-
self[
|
|
1519
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1520
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1433
1521
|
maxHealth = 1
|
|
1434
1522
|
end
|
|
1435
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1523
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1436
1524
|
end
|
|
1437
1525
|
},
|
|
1438
1526
|
true
|
|
@@ -1474,10 +1562,10 @@ __TS__SetDescriptor(
|
|
|
1474
1562
|
"health",
|
|
1475
1563
|
{
|
|
1476
1564
|
get = function(self)
|
|
1477
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1565
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1478
1566
|
end,
|
|
1479
1567
|
set = function(self, health)
|
|
1480
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1568
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1481
1569
|
end
|
|
1482
1570
|
},
|
|
1483
1571
|
true
|
|
@@ -1571,7 +1659,7 @@ __TS__SetDescriptor(
|
|
|
1571
1659
|
"x",
|
|
1572
1660
|
{
|
|
1573
1661
|
get = function(self)
|
|
1574
|
-
return getUnitX(self.handle)
|
|
1662
|
+
return self[107] or getUnitX(self.handle)
|
|
1575
1663
|
end,
|
|
1576
1664
|
set = function(self, v)
|
|
1577
1665
|
SetUnitX(self.handle, v)
|
|
@@ -1584,7 +1672,7 @@ __TS__SetDescriptor(
|
|
|
1584
1672
|
"y",
|
|
1585
1673
|
{
|
|
1586
1674
|
get = function(self)
|
|
1587
|
-
return getUnitY(self.handle)
|
|
1675
|
+
return self[108] or getUnitY(self.handle)
|
|
1588
1676
|
end,
|
|
1589
1677
|
set = function(self, v)
|
|
1590
1678
|
SetUnitY(self.handle, v)
|
|
@@ -1670,10 +1758,10 @@ __TS__SetDescriptor(
|
|
|
1670
1758
|
"gold",
|
|
1671
1759
|
{
|
|
1672
1760
|
get = function(self)
|
|
1673
|
-
return
|
|
1761
|
+
return GetResourceAmount(self.handle)
|
|
1674
1762
|
end,
|
|
1675
1763
|
set = function(self, gold)
|
|
1676
|
-
|
|
1764
|
+
SetResourceAmount(self.handle, gold)
|
|
1677
1765
|
end
|
|
1678
1766
|
},
|
|
1679
1767
|
true
|
|
@@ -1688,17 +1776,17 @@ __TS__SetDescriptor(
|
|
|
1688
1776
|
set = function(self, isPaused)
|
|
1689
1777
|
local handle = self.handle
|
|
1690
1778
|
if isPaused and not IsUnitPaused(handle) then
|
|
1691
|
-
self[
|
|
1692
|
-
for _ = self[
|
|
1779
|
+
self[101] = true
|
|
1780
|
+
for _ = self[102] or 0, -1 do
|
|
1693
1781
|
BlzPauseUnitEx(handle, true)
|
|
1694
1782
|
end
|
|
1695
1783
|
PauseUnit(handle, true)
|
|
1696
1784
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1697
1785
|
PauseUnit(handle, false)
|
|
1698
|
-
for _ = self[
|
|
1786
|
+
for _ = self[102] or 0, -1 do
|
|
1699
1787
|
BlzPauseUnitEx(handle, false)
|
|
1700
1788
|
end
|
|
1701
|
-
self[
|
|
1789
|
+
self[101] = nil
|
|
1702
1790
|
end
|
|
1703
1791
|
end
|
|
1704
1792
|
},
|
|
@@ -1801,6 +1889,19 @@ __TS__SetDescriptor(
|
|
|
1801
1889
|
end},
|
|
1802
1890
|
true
|
|
1803
1891
|
)
|
|
1892
|
+
__TS__SetDescriptor(
|
|
1893
|
+
Unit.prototype,
|
|
1894
|
+
"movementType",
|
|
1895
|
+
{
|
|
1896
|
+
get = function(self)
|
|
1897
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1898
|
+
end,
|
|
1899
|
+
set = function(self, movementType)
|
|
1900
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1901
|
+
end
|
|
1902
|
+
},
|
|
1903
|
+
true
|
|
1904
|
+
)
|
|
1804
1905
|
__TS__SetDescriptor(
|
|
1805
1906
|
Unit.prototype,
|
|
1806
1907
|
"pathing",
|
|
@@ -1982,6 +2083,14 @@ __TS__SetDescriptor(
|
|
|
1982
2083
|
end},
|
|
1983
2084
|
true
|
|
1984
2085
|
)
|
|
2086
|
+
__TS__SetDescriptor(
|
|
2087
|
+
Unit.prototype,
|
|
2088
|
+
"targetAcquiredEvent",
|
|
2089
|
+
{get = function(self)
|
|
2090
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2091
|
+
end},
|
|
2092
|
+
true
|
|
2093
|
+
)
|
|
1985
2094
|
__TS__SetDescriptor(
|
|
1986
2095
|
Unit.prototype,
|
|
1987
2096
|
"onSelect",
|
|
@@ -2055,7 +2164,6 @@ Unit.onDecay = __TS__New(
|
|
|
2055
2164
|
Unit.onResurrect = __TS__New(
|
|
2056
2165
|
InitializingEvent,
|
|
2057
2166
|
function(event)
|
|
2058
|
-
local invoke = Event.invoke
|
|
2059
2167
|
local dead = setmetatable({}, {__mode = "k"})
|
|
2060
2168
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2061
2169
|
dead[unit] = true
|
|
@@ -2071,10 +2179,15 @@ Unit.onResurrect = __TS__New(
|
|
|
2071
2179
|
Unit.morphEvent = __TS__New(
|
|
2072
2180
|
InitializingEvent,
|
|
2073
2181
|
function(event)
|
|
2182
|
+
local function ifNotLeft(unit)
|
|
2183
|
+
local handle = unit.handle
|
|
2184
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2185
|
+
invoke(event, unit)
|
|
2186
|
+
end
|
|
2187
|
+
end
|
|
2074
2188
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
2075
2189
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2076
|
-
|
|
2077
|
-
Timer:run(Event.invoke, event, unit)
|
|
2190
|
+
Timer:run(ifNotLeft, unit)
|
|
2078
2191
|
end
|
|
2079
2192
|
end)
|
|
2080
2193
|
end
|
|
@@ -2112,27 +2225,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
2112
2225
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
2113
2226
|
InitializingEvent,
|
|
2114
2227
|
function(event)
|
|
2115
|
-
local invoke = Event.invoke
|
|
2116
2228
|
local function listener(unit, id)
|
|
2117
|
-
local
|
|
2229
|
+
local ____GetSpellTargetUnit_result_10
|
|
2118
2230
|
if GetSpellTargetUnit() then
|
|
2119
|
-
|
|
2231
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2120
2232
|
else
|
|
2121
|
-
local
|
|
2233
|
+
local ____GetSpellTargetItem_result_9
|
|
2122
2234
|
if GetSpellTargetItem() then
|
|
2123
|
-
|
|
2235
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2124
2236
|
else
|
|
2125
|
-
local
|
|
2237
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2126
2238
|
if GetSpellTargetDestructable() then
|
|
2127
|
-
|
|
2239
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2128
2240
|
else
|
|
2129
|
-
|
|
2241
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2130
2242
|
end
|
|
2131
|
-
|
|
2243
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2132
2244
|
end
|
|
2133
|
-
|
|
2245
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2134
2246
|
end
|
|
2135
|
-
local target =
|
|
2247
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2136
2248
|
if target then
|
|
2137
2249
|
invoke(event, unit, id, target)
|
|
2138
2250
|
end
|
|
@@ -2304,10 +2416,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2304
2416
|
____exports.UnitTriggerEvent,
|
|
2305
2417
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2306
2418
|
function()
|
|
2307
|
-
local
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2419
|
+
local handle = getOrderedUnit()
|
|
2420
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2421
|
+
local unit = ____exports.Unit:of(handle)
|
|
2422
|
+
if unit.state == 1 then
|
|
2423
|
+
return unit, getIssuedOrderId()
|
|
2424
|
+
end
|
|
2311
2425
|
end
|
|
2312
2426
|
return IgnoreEvent
|
|
2313
2427
|
end
|
|
@@ -2329,7 +2443,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2329
2443
|
)
|
|
2330
2444
|
Unit.onDamaging = (function()
|
|
2331
2445
|
local event = __TS__New(Event)
|
|
2332
|
-
local invoke = Event.invoke
|
|
2333
2446
|
local trigger = CreateTrigger()
|
|
2334
2447
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2335
2448
|
TriggerAddCondition(
|
|
@@ -2339,13 +2452,19 @@ Unit.onDamaging = (function()
|
|
|
2339
2452
|
if source and source.typeId == dummyUnitId then
|
|
2340
2453
|
source = nil
|
|
2341
2454
|
end
|
|
2342
|
-
local target = BlzGetEventDamageTarget()
|
|
2455
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2456
|
+
local metadata = damageMetadataByTarget[target]
|
|
2457
|
+
damageMetadataByTarget[target] = nil
|
|
2343
2458
|
local data = {
|
|
2344
2459
|
amount = GetEventDamage(),
|
|
2345
|
-
attackType = BlzGetEventAttackType(),
|
|
2460
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2346
2461
|
damageType = BlzGetEventDamageType(),
|
|
2347
2462
|
weaponType = BlzGetEventWeaponType(),
|
|
2348
|
-
|
|
2463
|
+
metadata = metadata,
|
|
2464
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
+
originalAmount = GetEventDamage(),
|
|
2466
|
+
originalMetadata = metadata,
|
|
2467
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2349
2468
|
}
|
|
2350
2469
|
if data.isAttack and source then
|
|
2351
2470
|
local weapon = BlzGetUnitWeaponBooleanField(source.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, 1) and (BlzGetUnitWeaponBooleanField(source.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, 0) and -1 or 1) or 0
|
|
@@ -2359,18 +2478,36 @@ Unit.onDamaging = (function()
|
|
|
2359
2478
|
invoke(
|
|
2360
2479
|
event,
|
|
2361
2480
|
source,
|
|
2362
|
-
|
|
2481
|
+
target,
|
|
2363
2482
|
setmetatable(
|
|
2364
2483
|
{},
|
|
2365
2484
|
{
|
|
2366
2485
|
__index = data,
|
|
2367
2486
|
__newindex = function(self, key, value)
|
|
2368
|
-
damageSetters[key]
|
|
2487
|
+
local damageSetter = damageSetters[key]
|
|
2488
|
+
if damageSetter ~= nil then
|
|
2489
|
+
damageSetter(value)
|
|
2490
|
+
end
|
|
2369
2491
|
data[key] = value
|
|
2370
2492
|
end
|
|
2371
2493
|
}
|
|
2372
2494
|
)
|
|
2373
2495
|
)
|
|
2496
|
+
if data[0] and source then
|
|
2497
|
+
local sourceOwner = source.owner.handle
|
|
2498
|
+
data[1] = sourceOwner
|
|
2499
|
+
local targetOwner = target.owner.handle
|
|
2500
|
+
data[2] = targetOwner
|
|
2501
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2502
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2503
|
+
data[3] = true
|
|
2504
|
+
end
|
|
2505
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2506
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2507
|
+
data[4] = true
|
|
2508
|
+
end
|
|
2509
|
+
end
|
|
2510
|
+
damagingEventByTarget[target] = data
|
|
2374
2511
|
return
|
|
2375
2512
|
end
|
|
2376
2513
|
BlzSetEventDamage(0)
|
|
@@ -2378,7 +2515,7 @@ Unit.onDamaging = (function()
|
|
|
2378
2515
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2379
2516
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2380
2517
|
local sourceOwner = source.owner.handle
|
|
2381
|
-
local targetOwner =
|
|
2518
|
+
local targetOwner = target.owner.handle
|
|
2382
2519
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2383
2520
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2384
2521
|
Timer:run(function()
|
|
@@ -2394,23 +2531,19 @@ Unit.onDamaging = (function()
|
|
|
2394
2531
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2395
2532
|
local condition = ____value[1]
|
|
2396
2533
|
local action = ____value[2]
|
|
2397
|
-
if condition(
|
|
2398
|
-
source,
|
|
2399
|
-
____exports.Unit:of(target),
|
|
2400
|
-
data
|
|
2401
|
-
) then
|
|
2534
|
+
if condition(source, target, data) then
|
|
2402
2535
|
action(
|
|
2403
2536
|
source,
|
|
2404
|
-
|
|
2537
|
+
target,
|
|
2405
2538
|
setmetatable(
|
|
2406
2539
|
{fire = function()
|
|
2407
2540
|
UnitDamageTarget(
|
|
2408
2541
|
source.handle,
|
|
2409
|
-
target,
|
|
2542
|
+
target.handle,
|
|
2410
2543
|
data.amount,
|
|
2411
2544
|
true,
|
|
2412
2545
|
true,
|
|
2413
|
-
data.attackType,
|
|
2546
|
+
attackTypeToNative(data.attackType),
|
|
2414
2547
|
data.damageType,
|
|
2415
2548
|
data.weaponType
|
|
2416
2549
|
)
|
|
@@ -2428,7 +2561,6 @@ end)()
|
|
|
2428
2561
|
Unit.onDamage = __TS__New(
|
|
2429
2562
|
InitializingEvent,
|
|
2430
2563
|
function(event)
|
|
2431
|
-
local invoke = Event.invoke
|
|
2432
2564
|
local trigger = CreateTrigger()
|
|
2433
2565
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2434
2566
|
TriggerAddCondition(
|
|
@@ -2438,29 +2570,54 @@ Unit.onDamage = __TS__New(
|
|
|
2438
2570
|
if source and source.typeId == dummyUnitId then
|
|
2439
2571
|
source = nil
|
|
2440
2572
|
end
|
|
2573
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2574
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2575
|
+
damagingEventByTarget[target] = nil
|
|
2441
2576
|
local data = {
|
|
2442
2577
|
amount = GetEventDamage(),
|
|
2443
|
-
attackType = BlzGetEventAttackType(),
|
|
2578
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2444
2579
|
damageType = BlzGetEventDamageType(),
|
|
2445
2580
|
weaponType = BlzGetEventWeaponType(),
|
|
2581
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2446
2582
|
isAttack = BlzGetEventIsAttack(),
|
|
2583
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2584
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2447
2585
|
preventDeath = damageEventPreventDeath
|
|
2448
2586
|
}
|
|
2587
|
+
if damagingEvent then
|
|
2588
|
+
for key, value in pairs(damagingEvent) do
|
|
2589
|
+
if isAttribute(key) then
|
|
2590
|
+
data[key] = value
|
|
2591
|
+
end
|
|
2592
|
+
end
|
|
2593
|
+
local sourceOwner = damagingEvent[1]
|
|
2594
|
+
if sourceOwner then
|
|
2595
|
+
local targetOwner = damagingEvent[2]
|
|
2596
|
+
if damagingEvent[3] then
|
|
2597
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2598
|
+
end
|
|
2599
|
+
if damagingEvent[4] then
|
|
2600
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2601
|
+
end
|
|
2602
|
+
end
|
|
2603
|
+
end
|
|
2449
2604
|
local evData = setmetatable(
|
|
2450
2605
|
{},
|
|
2451
2606
|
{
|
|
2452
2607
|
__index = data,
|
|
2453
2608
|
__newindex = function(self, key, value)
|
|
2454
|
-
damageSetters[key]
|
|
2609
|
+
local damageSetter = damageSetters[key]
|
|
2610
|
+
if damageSetter ~= nil then
|
|
2611
|
+
damageSetter(value)
|
|
2612
|
+
end
|
|
2455
2613
|
data[key] = value
|
|
2456
2614
|
end
|
|
2457
2615
|
}
|
|
2458
2616
|
)
|
|
2459
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2460
2617
|
invoke(event, source, target, evData)
|
|
2461
2618
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2462
2619
|
local bonusHealth = math.ceil(evData.amount)
|
|
2463
|
-
target[
|
|
2620
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2464
2621
|
BlzSetUnitMaxHP(
|
|
2465
2622
|
target.handle,
|
|
2466
2623
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2474,7 +2631,7 @@ Unit.onDamage = __TS__New(
|
|
|
2474
2631
|
evData[0],
|
|
2475
2632
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2476
2633
|
)
|
|
2477
|
-
target[
|
|
2634
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2478
2635
|
SetWidgetLife(
|
|
2479
2636
|
target.handle,
|
|
2480
2637
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2494,32 +2651,110 @@ Unit.onDamage = __TS__New(
|
|
|
2494
2651
|
DestroyTrigger(trigger)
|
|
2495
2652
|
end
|
|
2496
2653
|
)
|
|
2497
|
-
Unit.
|
|
2654
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2498
2655
|
____exports.UnitTriggerEvent,
|
|
2499
2656
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2500
2657
|
function()
|
|
2501
2658
|
local unit = getTriggerUnit()
|
|
2502
|
-
|
|
2503
|
-
|
|
2659
|
+
local item = getManipulatedItem()
|
|
2660
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2661
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2504
2662
|
end
|
|
2505
2663
|
return IgnoreEvent
|
|
2506
2664
|
end
|
|
2507
2665
|
)
|
|
2508
|
-
Unit.
|
|
2666
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2509
2667
|
____exports.UnitTriggerEvent,
|
|
2510
2668
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2511
2669
|
function()
|
|
2512
|
-
local
|
|
2513
|
-
|
|
2514
|
-
|
|
2670
|
+
local unitHandle = getTriggerUnit()
|
|
2671
|
+
local itemHandle = getManipulatedItem()
|
|
2672
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (ignoreEventsItems[itemHandle] ~= nil) then
|
|
2673
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2674
|
+
local item = Item:of(itemHandle)
|
|
2675
|
+
if item.owner ~= unit then
|
|
2676
|
+
return unit, item
|
|
2677
|
+
end
|
|
2515
2678
|
end
|
|
2516
2679
|
return IgnoreEvent
|
|
2517
2680
|
end
|
|
2518
2681
|
)
|
|
2519
|
-
Unit.
|
|
2682
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2520
2683
|
____exports.UnitTriggerEvent,
|
|
2521
2684
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2522
|
-
function()
|
|
2685
|
+
function()
|
|
2686
|
+
local unit = getTriggerUnit()
|
|
2687
|
+
local item = getManipulatedItem()
|
|
2688
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2689
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2690
|
+
end
|
|
2691
|
+
return IgnoreEvent
|
|
2692
|
+
end
|
|
2693
|
+
)
|
|
2694
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2695
|
+
____exports.UnitTriggerEvent,
|
|
2696
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2697
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2698
|
+
)
|
|
2699
|
+
__TS__ObjectDefineProperty(
|
|
2700
|
+
Unit,
|
|
2701
|
+
"itemChargesChangedEvent",
|
|
2702
|
+
{get = function(self)
|
|
2703
|
+
local event = __TS__New(Event)
|
|
2704
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2705
|
+
local unit = item.owner
|
|
2706
|
+
if unit ~= nil then
|
|
2707
|
+
invoke(event, unit, item)
|
|
2708
|
+
end
|
|
2709
|
+
end)
|
|
2710
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2711
|
+
return event
|
|
2712
|
+
end}
|
|
2713
|
+
)
|
|
2714
|
+
__TS__ObjectDefineProperty(
|
|
2715
|
+
Unit,
|
|
2716
|
+
"itemUseOrderEvent",
|
|
2717
|
+
{get = function(self)
|
|
2718
|
+
local event = __TS__New(Event)
|
|
2719
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2720
|
+
local slot = order - orderId("useslot0")
|
|
2721
|
+
local function listener(unit)
|
|
2722
|
+
local item = unit.items[slot + 1]
|
|
2723
|
+
if item ~= nil then
|
|
2724
|
+
invoke(event, unit, item)
|
|
2725
|
+
end
|
|
2726
|
+
end
|
|
2727
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2728
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2729
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2730
|
+
end
|
|
2731
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2732
|
+
return event
|
|
2733
|
+
end}
|
|
2734
|
+
)
|
|
2735
|
+
__TS__ObjectDefineProperty(
|
|
2736
|
+
Unit,
|
|
2737
|
+
"itemMoveOrderEvent",
|
|
2738
|
+
{get = function(self)
|
|
2739
|
+
local event = __TS__New(Event)
|
|
2740
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2741
|
+
local slotTo = order - orderId("moveslot0")
|
|
2742
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2743
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2744
|
+
if slotFrom ~= nil then
|
|
2745
|
+
invoke(
|
|
2746
|
+
event,
|
|
2747
|
+
unit,
|
|
2748
|
+
item,
|
|
2749
|
+
slotFrom,
|
|
2750
|
+
slotTo
|
|
2751
|
+
)
|
|
2752
|
+
end
|
|
2753
|
+
end)
|
|
2754
|
+
end
|
|
2755
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2756
|
+
return event
|
|
2757
|
+
end}
|
|
2523
2758
|
)
|
|
2524
2759
|
__TS__ObjectDefineProperty(
|
|
2525
2760
|
Unit,
|