warscript 0.0.1-dev.ea69747 → 0.0.1-dev.eb24bc1
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 +17 -0
- package/attributes.lua +23 -0
- 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 +93 -1
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- 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 +840 -786
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- package/engine/behavior.lua +6 -6
- 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 +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
- 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 +35 -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 -15
- 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 +27 -4
- package/engine/behaviour/ability.lua +152 -17
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +10 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +103 -41
- package/engine/buff.lua +465 -212
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +17 -14
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +4 -3
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +3 -1
- package/engine/internal/mechanics/cast-ability.d.ts +2 -0
- package/engine/internal/mechanics/cast-ability.lua +86 -0
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -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/bonus.d.ts +11 -8
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.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+ability.lua +2 -2
- 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 +25 -6
- package/engine/internal/unit.d.ts +76 -18
- package/engine/internal/unit.lua +466 -167
- 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/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/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- 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 +4 -4
- 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/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -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/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- 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 +20 -18
- package/engine/object-data/entry/ability-type.lua +90 -33
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +39 -102
- 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 +50 -3
- package/engine/object-data/entry/unit-type.lua +452 -61
- 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 +33 -8
- package/engine/object-field/ability.lua +60 -1
- package/engine/object-field/unit.d.ts +46 -2
- package/engine/object-field/unit.lua +173 -4
- package/engine/object-field.d.ts +15 -5
- package/engine/object-field.lua +196 -84
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -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/entries/unit-type.d.ts +42 -1
- package/engine/standard/entries/unit-type.lua +42 -1
- package/engine/standard/fields/ability.d.ts +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- 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/exception.d.ts +2 -0
- package/exception.lua +4 -0
- package/global/vec2.lua +1 -0
- 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 -14
- 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 +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +13 -6
- package/utility/arrays.lua +41 -4
- package/utility/bit-set.d.ts +0 -2
- package/utility/functions.d.ts +1 -0
- package/utility/functions.lua +1 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +32 -9
- package/utility/linked-set.lua +24 -2
- package/utility/lua-maps.d.ts +4 -2
- package/utility/lua-maps.lua +16 -0
- package/utility/lua-sets.d.ts +2 -2
- package/utility/lua-sets.lua +3 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -2
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
package/engine/internal/unit.lua
CHANGED
|
@@ -5,9 +5,12 @@ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
|
5
5
|
local __TS__New = ____lualib.__TS__New
|
|
6
6
|
local __TS__Class = ____lualib.__TS__Class
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
8
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
|
|
9
13
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
|
-
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
11
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
12
15
|
local Set = ____lualib.Set
|
|
13
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -48,12 +51,19 @@ 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
|
|
51
63
|
local match = string.match
|
|
52
64
|
local ____tostring = _G.tostring
|
|
53
65
|
local setUnitAnimation = SetUnitAnimation
|
|
54
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
55
66
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
56
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
57
67
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
58
68
|
local getUnitRealField = BlzGetUnitRealField
|
|
59
69
|
local getHeroStr = GetHeroStr
|
|
@@ -72,9 +82,9 @@ local setUnitScale = SetUnitScale
|
|
|
72
82
|
local setUnitPosition = SetUnitPosition
|
|
73
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
74
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
75
86
|
local createUnit = CreateUnit
|
|
76
87
|
local killUnit = KillUnit
|
|
77
|
-
local setUnitExploded = SetUnitExploded
|
|
78
88
|
local removeUnit = RemoveUnit
|
|
79
89
|
local getUnitTypeId = GetUnitTypeId
|
|
80
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -90,8 +100,10 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
90
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
91
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
92
102
|
local isUnitInRange = IsUnitInRange
|
|
93
|
-
local
|
|
94
|
-
local
|
|
103
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
104
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
105
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
106
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
109
|
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
@@ -118,8 +130,6 @@ local isUnitType = IsUnitType
|
|
|
118
130
|
local isUnitAlly = IsUnitAlly
|
|
119
131
|
local isUnitEnemy = IsUnitEnemy
|
|
120
132
|
local getOwningPlayer = GetOwningPlayer
|
|
121
|
-
local setUnitColor = SetUnitColor
|
|
122
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
123
133
|
____exports.UnitClassification = {}
|
|
124
134
|
local UnitClassification = ____exports.UnitClassification
|
|
125
135
|
do
|
|
@@ -275,16 +285,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
285
|
end
|
|
276
286
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
287
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
288
|
return setmetatable(
|
|
280
|
-
|
|
289
|
+
{},
|
|
281
290
|
{
|
|
282
291
|
__index = function(self, id)
|
|
283
292
|
if type(id) ~= "number" then
|
|
284
293
|
return event[id]
|
|
285
294
|
end
|
|
286
295
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
296
|
event:addListener(function(...)
|
|
289
297
|
local id = idGetter(...)
|
|
290
298
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +330,6 @@ local function dispatchAbility(event)
|
|
|
322
330
|
return event[id]
|
|
323
331
|
end
|
|
324
332
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
333
|
event:addListener(function(unit, ability, ...)
|
|
327
334
|
local dispatched = rawget(self, ability.typeId)
|
|
328
335
|
if dispatched ~= nil then
|
|
@@ -350,7 +357,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
350
357
|
rawset(self, 1 + i, (select(i, ...)))
|
|
351
358
|
end
|
|
352
359
|
end
|
|
353
|
-
local damageSetters = {
|
|
360
|
+
local damageSetters = {
|
|
361
|
+
amount = BlzSetEventDamage,
|
|
362
|
+
attackType = function(attackType)
|
|
363
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
364
|
+
end,
|
|
365
|
+
damageType = BlzSetEventDamageType,
|
|
366
|
+
weaponType = BlzSetEventWeaponType
|
|
367
|
+
}
|
|
354
368
|
local jlimitopByOperator = {
|
|
355
369
|
[0] = LESS_THAN_OR_EQUAL,
|
|
356
370
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -387,51 +401,158 @@ local getters = {
|
|
|
387
401
|
return BlzGetUnitArmor(unit)
|
|
388
402
|
end
|
|
389
403
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
404
|
+
____exports.UnitWeapon = __TS__Class()
|
|
405
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
406
|
+
UnitWeapon.name = "UnitWeapon"
|
|
407
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
408
|
+
self.unit = unit
|
|
409
|
+
self.index = index
|
|
410
|
+
end
|
|
411
|
+
__TS__SetDescriptor(
|
|
412
|
+
UnitWeapon.prototype,
|
|
413
|
+
"cooldown",
|
|
414
|
+
{
|
|
415
|
+
get = function(self)
|
|
416
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
417
|
+
end,
|
|
418
|
+
set = function(self, cooldown)
|
|
419
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
420
|
+
end
|
|
421
|
+
},
|
|
422
|
+
true
|
|
423
|
+
)
|
|
424
|
+
__TS__SetDescriptor(
|
|
425
|
+
UnitWeapon.prototype,
|
|
426
|
+
"damage",
|
|
427
|
+
{
|
|
428
|
+
get = function(self)
|
|
429
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
430
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
431
|
+
return {minimumDamage, maximumDamage}
|
|
432
|
+
end,
|
|
433
|
+
set = function(self, ____bindingPattern0)
|
|
434
|
+
local maximumDamage
|
|
435
|
+
local minimumDamage
|
|
436
|
+
minimumDamage = ____bindingPattern0[1]
|
|
437
|
+
maximumDamage = ____bindingPattern0[2]
|
|
438
|
+
self.damageBase = minimumDamage - 1
|
|
439
|
+
self.damageDiceCount = 1
|
|
440
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
441
|
+
end
|
|
442
|
+
},
|
|
443
|
+
true
|
|
444
|
+
)
|
|
445
|
+
__TS__SetDescriptor(
|
|
446
|
+
UnitWeapon.prototype,
|
|
447
|
+
"damageBase",
|
|
448
|
+
{
|
|
449
|
+
get = function(self)
|
|
450
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
451
|
+
end,
|
|
452
|
+
set = function(self, damageBase)
|
|
453
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
454
|
+
end
|
|
455
|
+
},
|
|
456
|
+
true
|
|
457
|
+
)
|
|
458
|
+
__TS__SetDescriptor(
|
|
459
|
+
UnitWeapon.prototype,
|
|
460
|
+
"damageDiceCount",
|
|
461
|
+
{
|
|
462
|
+
get = function(self)
|
|
463
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
464
|
+
end,
|
|
465
|
+
set = function(self, damageDiceCount)
|
|
466
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
467
|
+
end
|
|
468
|
+
},
|
|
469
|
+
true
|
|
470
|
+
)
|
|
471
|
+
__TS__SetDescriptor(
|
|
472
|
+
UnitWeapon.prototype,
|
|
473
|
+
"damageDiceSideCount",
|
|
474
|
+
{
|
|
475
|
+
get = function(self)
|
|
476
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
477
|
+
end,
|
|
478
|
+
set = function(self, damageDiceSideCount)
|
|
479
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
480
|
+
end
|
|
481
|
+
},
|
|
482
|
+
true
|
|
483
|
+
)
|
|
484
|
+
__TS__SetDescriptor(
|
|
485
|
+
UnitWeapon.prototype,
|
|
486
|
+
"range",
|
|
487
|
+
{
|
|
488
|
+
get = function(self)
|
|
489
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
490
|
+
end,
|
|
491
|
+
set = function(self, range)
|
|
492
|
+
local handle = self.unit.handle
|
|
493
|
+
local index = self.index
|
|
494
|
+
setUnitWeaponRealField(
|
|
495
|
+
handle,
|
|
496
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
497
|
+
index + 1,
|
|
498
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
499
|
+
)
|
|
500
|
+
end
|
|
501
|
+
},
|
|
502
|
+
true
|
|
503
|
+
)
|
|
504
|
+
__TS__SetDescriptor(
|
|
505
|
+
UnitWeapon.prototype,
|
|
506
|
+
"impactDelay",
|
|
507
|
+
{
|
|
508
|
+
get = function(self)
|
|
509
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
510
|
+
end,
|
|
511
|
+
set = function(self, impactDelay)
|
|
512
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
513
|
+
end
|
|
514
|
+
},
|
|
515
|
+
true
|
|
516
|
+
)
|
|
517
|
+
__TS__SetDescriptor(
|
|
518
|
+
UnitWeapon.prototype,
|
|
519
|
+
"missileArc",
|
|
520
|
+
{
|
|
521
|
+
get = function(self)
|
|
522
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
523
|
+
end,
|
|
524
|
+
set = function(self, missileArc)
|
|
525
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
526
|
+
end
|
|
527
|
+
},
|
|
528
|
+
true
|
|
529
|
+
)
|
|
530
|
+
__TS__SetDescriptor(
|
|
531
|
+
UnitWeapon.prototype,
|
|
532
|
+
"missileModelPath",
|
|
533
|
+
{
|
|
534
|
+
get = function(self)
|
|
535
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
536
|
+
end,
|
|
537
|
+
set = function(self, missileModelPath)
|
|
538
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
539
|
+
end
|
|
540
|
+
},
|
|
541
|
+
true
|
|
542
|
+
)
|
|
543
|
+
__TS__SetDescriptor(
|
|
544
|
+
UnitWeapon.prototype,
|
|
545
|
+
"missileSpeed",
|
|
546
|
+
{
|
|
547
|
+
get = function(self)
|
|
548
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
549
|
+
end,
|
|
550
|
+
set = function(self, missileSpeed)
|
|
551
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
552
|
+
end
|
|
553
|
+
},
|
|
554
|
+
true
|
|
555
|
+
)
|
|
435
556
|
local unitInventorySize = UnitInventorySize
|
|
436
557
|
local unitItemInSlot = UnitItemInSlot
|
|
437
558
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -442,8 +563,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
563
|
local unitAddAbility = UnitAddAbility
|
|
443
564
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
565
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
566
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
567
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
568
|
if ability == nil then
|
|
@@ -453,17 +572,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
453
572
|
____exports.Unit:of(unit)
|
|
454
573
|
)
|
|
455
574
|
end
|
|
456
|
-
if not unitAddAbility(unit, abilityId) then
|
|
457
|
-
if getUnitAbility(unit, abilityId) == ability then
|
|
458
|
-
return UnitAbility:of(
|
|
459
|
-
ability,
|
|
460
|
-
abilityId,
|
|
461
|
-
____exports.Unit:of(unit)
|
|
462
|
-
)
|
|
463
|
-
end
|
|
464
|
-
else
|
|
465
|
-
unitRemoveAbility(unit, abilityId)
|
|
466
|
-
end
|
|
467
575
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
468
576
|
local item = unitItemInSlot(unit, i)
|
|
469
577
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -520,12 +628,35 @@ for ____, player in ipairs(Player.all) do
|
|
|
520
628
|
ShowUnit(dummy, false)
|
|
521
629
|
dummies[player] = dummy
|
|
522
630
|
end
|
|
631
|
+
local function delayHealthChecksCallback(unit)
|
|
632
|
+
local counter = (unit[103] or 0) - 1
|
|
633
|
+
if counter ~= 0 then
|
|
634
|
+
unit[103] = counter
|
|
635
|
+
return
|
|
636
|
+
end
|
|
637
|
+
unit[103] = nil
|
|
638
|
+
local healthBonus = unit[104]
|
|
639
|
+
if healthBonus ~= nil then
|
|
640
|
+
unit[104] = nil
|
|
641
|
+
local handle = unit.handle
|
|
642
|
+
BlzSetUnitMaxHP(
|
|
643
|
+
handle,
|
|
644
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
645
|
+
)
|
|
646
|
+
end
|
|
647
|
+
end
|
|
648
|
+
local nextSyncId = 1
|
|
649
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
650
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
523
651
|
____exports.Unit = __TS__Class()
|
|
524
652
|
local Unit = ____exports.Unit
|
|
525
653
|
Unit.name = "Unit"
|
|
526
654
|
__TS__ClassExtends(Unit, Handle)
|
|
527
655
|
function Unit.prototype.____constructor(self, handle)
|
|
528
656
|
Handle.prototype.____constructor(self, handle)
|
|
657
|
+
local ____nextSyncId_0 = nextSyncId
|
|
658
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
659
|
+
self.syncId = ____nextSyncId_0
|
|
529
660
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
661
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
531
662
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -538,6 +669,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
538
669
|
fourCC("Amrf")
|
|
539
670
|
))
|
|
540
671
|
end
|
|
672
|
+
unitBySyncId[self.syncId] = self
|
|
541
673
|
local ____ = self.abilities
|
|
542
674
|
end
|
|
543
675
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -556,6 +688,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
556
688
|
end
|
|
557
689
|
function Unit.prototype.onDestroy(self)
|
|
558
690
|
local handle = self.handle
|
|
691
|
+
self[107] = getUnitX(handle)
|
|
692
|
+
self[108] = getUnitY(handle)
|
|
559
693
|
if not self._owner then
|
|
560
694
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
561
695
|
end
|
|
@@ -623,8 +757,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
757
|
end}
|
|
624
758
|
end
|
|
625
759
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
760
|
+
local ____combatClassification_1 = combatClassification
|
|
761
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
628
762
|
end
|
|
629
763
|
function Unit.prototype.addClassification(self, classification)
|
|
630
764
|
return unitAddType(self.handle, classification)
|
|
@@ -642,13 +776,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
776
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
777
|
end
|
|
644
778
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
779
|
+
local ____temp_2
|
|
646
780
|
if type(x) == "number" then
|
|
647
|
-
|
|
781
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
782
|
else
|
|
649
|
-
|
|
783
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
650
784
|
end
|
|
651
|
-
return
|
|
785
|
+
return ____temp_2
|
|
652
786
|
end
|
|
653
787
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
788
|
return isUnitAlly(
|
|
@@ -666,13 +800,20 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
666
800
|
if type(animation) == "number" then
|
|
667
801
|
setUnitAnimationByIndex(self.handle, animation)
|
|
668
802
|
elseif rarity then
|
|
669
|
-
|
|
803
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
670
804
|
else
|
|
671
805
|
setUnitAnimation(self.handle, animation)
|
|
672
806
|
end
|
|
673
807
|
end
|
|
808
|
+
function Unit.prototype.resetAnimation(self)
|
|
809
|
+
ResetUnitAnimation(self.handle)
|
|
810
|
+
end
|
|
674
811
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
|
-
|
|
812
|
+
QueueUnitAnimation(self.handle, animation)
|
|
813
|
+
end
|
|
814
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
815
|
+
self[103] = (self[103] or 0) + 1
|
|
816
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
676
817
|
end
|
|
677
818
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
819
|
setUnitPosition(self.handle, x, y)
|
|
@@ -681,14 +822,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
681
822
|
return IsUnitSelected(self.handle, player.handle)
|
|
682
823
|
end
|
|
683
824
|
function Unit.prototype.explode(self)
|
|
684
|
-
|
|
825
|
+
SetUnitExploded(self.handle, true)
|
|
685
826
|
killUnit(self.handle)
|
|
686
827
|
end
|
|
687
828
|
function Unit.prototype.kill(self)
|
|
688
829
|
killUnit(self.handle)
|
|
689
830
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
831
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
832
|
+
local ____ReviveHero_5 = ReviveHero
|
|
833
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
834
|
+
local ____doEffect_3 = doEffect
|
|
835
|
+
if ____doEffect_3 == nil then
|
|
836
|
+
____doEffect_3 = false
|
|
837
|
+
end
|
|
838
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
839
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
692
840
|
end
|
|
693
841
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
842
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -728,7 +876,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
728
876
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
729
877
|
end
|
|
730
878
|
function Unit.prototype.itemInSlot(self, slot)
|
|
731
|
-
return Item:of(
|
|
879
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
732
880
|
end
|
|
733
881
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
882
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -784,6 +932,9 @@ end
|
|
|
784
932
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
933
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
934
|
end
|
|
935
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
936
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
937
|
+
end
|
|
787
938
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
939
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
940
|
end
|
|
@@ -794,8 +945,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
794
945
|
unitInterruptAttack(self.handle)
|
|
795
946
|
end
|
|
796
947
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
797
|
-
|
|
798
|
-
unitDisableAbility(
|
|
948
|
+
local handle = self.handle
|
|
949
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
950
|
+
Timer:run(
|
|
951
|
+
unitDisableAbility,
|
|
952
|
+
handle,
|
|
953
|
+
abilityId,
|
|
954
|
+
false,
|
|
955
|
+
false
|
|
956
|
+
)
|
|
799
957
|
end
|
|
800
958
|
function Unit.prototype.getDistanceTo(self, target)
|
|
801
959
|
local handle = self.handle
|
|
@@ -855,18 +1013,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
1013
|
self:decrementStunCounter()
|
|
856
1014
|
end
|
|
857
1015
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1016
|
+
local stunCounter = self[102] or 0
|
|
1017
|
+
if not self[101] or stunCounter >= 0 then
|
|
860
1018
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1019
|
end
|
|
862
|
-
self[
|
|
1020
|
+
self[102] = stunCounter + 1
|
|
863
1021
|
end
|
|
864
1022
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1023
|
+
local stunCounter = self[102] or 0
|
|
1024
|
+
if not self[101] or stunCounter >= 1 then
|
|
867
1025
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1026
|
end
|
|
869
|
-
self[
|
|
1027
|
+
self[102] = stunCounter - 1
|
|
870
1028
|
end
|
|
871
1029
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1030
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1126,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1126
|
)
|
|
969
1127
|
return targetCollection
|
|
970
1128
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1129
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1130
|
+
if target == nil then
|
|
1131
|
+
target = {}
|
|
1132
|
+
end
|
|
1133
|
+
targetCollection = target
|
|
973
1134
|
targetCollectionNextIndex = 1
|
|
974
1135
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1136
|
return targetCollection
|
|
@@ -991,6 +1152,9 @@ end
|
|
|
991
1152
|
function Unit.prototype.__tostring(self)
|
|
992
1153
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1154
|
end
|
|
1155
|
+
function Unit.getBySyncId(self, syncId)
|
|
1156
|
+
return unitBySyncId[syncId]
|
|
1157
|
+
end
|
|
994
1158
|
__TS__SetDescriptor(
|
|
995
1159
|
Unit.prototype,
|
|
996
1160
|
"_deltas",
|
|
@@ -1054,6 +1218,14 @@ __TS__SetDescriptor(
|
|
|
1054
1218
|
end},
|
|
1055
1219
|
true
|
|
1056
1220
|
)
|
|
1221
|
+
__TS__SetDescriptor(
|
|
1222
|
+
Unit.prototype,
|
|
1223
|
+
"isStunned",
|
|
1224
|
+
{get = function(self)
|
|
1225
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1226
|
+
end},
|
|
1227
|
+
true
|
|
1228
|
+
)
|
|
1057
1229
|
__TS__SetDescriptor(
|
|
1058
1230
|
Unit.prototype,
|
|
1059
1231
|
"combatClassifications",
|
|
@@ -1071,12 +1243,27 @@ __TS__SetDescriptor(
|
|
|
1071
1243
|
Unit.prototype,
|
|
1072
1244
|
"weapons",
|
|
1073
1245
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1246
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1247
|
+
end},
|
|
1248
|
+
true
|
|
1249
|
+
)
|
|
1250
|
+
__TS__SetDescriptor(
|
|
1251
|
+
Unit.prototype,
|
|
1252
|
+
"firstWeapon",
|
|
1253
|
+
{get = function(self)
|
|
1254
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1255
|
+
rawset(self, "firstWeapon", weapon)
|
|
1256
|
+
return weapon
|
|
1257
|
+
end},
|
|
1258
|
+
true
|
|
1259
|
+
)
|
|
1260
|
+
__TS__SetDescriptor(
|
|
1261
|
+
Unit.prototype,
|
|
1262
|
+
"secondWeapon",
|
|
1263
|
+
{get = function(self)
|
|
1264
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1265
|
+
rawset(self, "secondWeapon", weapon)
|
|
1266
|
+
return weapon
|
|
1080
1267
|
end},
|
|
1081
1268
|
true
|
|
1082
1269
|
)
|
|
@@ -1112,6 +1299,19 @@ __TS__SetDescriptor(
|
|
|
1112
1299
|
},
|
|
1113
1300
|
true
|
|
1114
1301
|
)
|
|
1302
|
+
__TS__SetDescriptor(
|
|
1303
|
+
Unit.prototype,
|
|
1304
|
+
"primaryAttribute",
|
|
1305
|
+
{
|
|
1306
|
+
get = function(self)
|
|
1307
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1308
|
+
end,
|
|
1309
|
+
set = function(self, primaryAttribute)
|
|
1310
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1311
|
+
end
|
|
1312
|
+
},
|
|
1313
|
+
true
|
|
1314
|
+
)
|
|
1115
1315
|
__TS__SetDescriptor(
|
|
1116
1316
|
Unit.prototype,
|
|
1117
1317
|
"strengthBase",
|
|
@@ -1233,17 +1433,17 @@ __TS__SetDescriptor(
|
|
|
1233
1433
|
"isTeamGlowVisible",
|
|
1234
1434
|
{
|
|
1235
1435
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1436
|
+
return not self[106]
|
|
1237
1437
|
end,
|
|
1238
1438
|
set = function(self, isTeamGlowVisible)
|
|
1239
|
-
|
|
1240
|
-
local
|
|
1439
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1440
|
+
local ____temp_6
|
|
1241
1441
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1442
|
+
____temp_6 = true
|
|
1243
1443
|
else
|
|
1244
|
-
|
|
1444
|
+
____temp_6 = nil
|
|
1245
1445
|
end
|
|
1246
|
-
self[
|
|
1446
|
+
self[106] = ____temp_6
|
|
1247
1447
|
end
|
|
1248
1448
|
},
|
|
1249
1449
|
true
|
|
@@ -1252,9 +1452,9 @@ __TS__SetDescriptor(
|
|
|
1252
1452
|
Unit.prototype,
|
|
1253
1453
|
"color",
|
|
1254
1454
|
{set = function(self, color)
|
|
1255
|
-
|
|
1256
|
-
if self[
|
|
1257
|
-
|
|
1455
|
+
SetUnitColor(self.handle, color.handle)
|
|
1456
|
+
if self[106] then
|
|
1457
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1258
1458
|
end
|
|
1259
1459
|
end},
|
|
1260
1460
|
true
|
|
@@ -1277,10 +1477,14 @@ __TS__SetDescriptor(
|
|
|
1277
1477
|
"maxHealth",
|
|
1278
1478
|
{
|
|
1279
1479
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1480
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1281
1481
|
end,
|
|
1282
1482
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1483
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1484
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1485
|
+
maxHealth = 1
|
|
1486
|
+
end
|
|
1487
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1284
1488
|
end
|
|
1285
1489
|
},
|
|
1286
1490
|
true
|
|
@@ -1322,10 +1526,10 @@ __TS__SetDescriptor(
|
|
|
1322
1526
|
"health",
|
|
1323
1527
|
{
|
|
1324
1528
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1529
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1326
1530
|
end,
|
|
1327
1531
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1532
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1329
1533
|
end
|
|
1330
1534
|
},
|
|
1331
1535
|
true
|
|
@@ -1419,7 +1623,7 @@ __TS__SetDescriptor(
|
|
|
1419
1623
|
"x",
|
|
1420
1624
|
{
|
|
1421
1625
|
get = function(self)
|
|
1422
|
-
return getUnitX(self.handle)
|
|
1626
|
+
return self[107] or getUnitX(self.handle)
|
|
1423
1627
|
end,
|
|
1424
1628
|
set = function(self, v)
|
|
1425
1629
|
SetUnitX(self.handle, v)
|
|
@@ -1432,7 +1636,7 @@ __TS__SetDescriptor(
|
|
|
1432
1636
|
"y",
|
|
1433
1637
|
{
|
|
1434
1638
|
get = function(self)
|
|
1435
|
-
return getUnitY(self.handle)
|
|
1639
|
+
return self[108] or getUnitY(self.handle)
|
|
1436
1640
|
end,
|
|
1437
1641
|
set = function(self, v)
|
|
1438
1642
|
SetUnitY(self.handle, v)
|
|
@@ -1518,10 +1722,10 @@ __TS__SetDescriptor(
|
|
|
1518
1722
|
"gold",
|
|
1519
1723
|
{
|
|
1520
1724
|
get = function(self)
|
|
1521
|
-
return
|
|
1725
|
+
return GetResourceAmount(self.handle)
|
|
1522
1726
|
end,
|
|
1523
1727
|
set = function(self, gold)
|
|
1524
|
-
|
|
1728
|
+
SetResourceAmount(self.handle, gold)
|
|
1525
1729
|
end
|
|
1526
1730
|
},
|
|
1527
1731
|
true
|
|
@@ -1536,17 +1740,17 @@ __TS__SetDescriptor(
|
|
|
1536
1740
|
set = function(self, isPaused)
|
|
1537
1741
|
local handle = self.handle
|
|
1538
1742
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
for _ = self[
|
|
1743
|
+
self[101] = true
|
|
1744
|
+
for _ = self[102] or 0, -1 do
|
|
1541
1745
|
BlzPauseUnitEx(handle, true)
|
|
1542
1746
|
end
|
|
1543
1747
|
PauseUnit(handle, true)
|
|
1544
1748
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1749
|
PauseUnit(handle, false)
|
|
1546
|
-
for _ = self[
|
|
1750
|
+
for _ = self[102] or 0, -1 do
|
|
1547
1751
|
BlzPauseUnitEx(handle, false)
|
|
1548
1752
|
end
|
|
1549
|
-
self[
|
|
1753
|
+
self[101] = nil
|
|
1550
1754
|
end
|
|
1551
1755
|
end
|
|
1552
1756
|
},
|
|
@@ -1649,6 +1853,19 @@ __TS__SetDescriptor(
|
|
|
1649
1853
|
end},
|
|
1650
1854
|
true
|
|
1651
1855
|
)
|
|
1856
|
+
__TS__SetDescriptor(
|
|
1857
|
+
Unit.prototype,
|
|
1858
|
+
"movementType",
|
|
1859
|
+
{
|
|
1860
|
+
get = function(self)
|
|
1861
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1862
|
+
end,
|
|
1863
|
+
set = function(self, movementType)
|
|
1864
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1865
|
+
end
|
|
1866
|
+
},
|
|
1867
|
+
true
|
|
1868
|
+
)
|
|
1652
1869
|
__TS__SetDescriptor(
|
|
1653
1870
|
Unit.prototype,
|
|
1654
1871
|
"pathing",
|
|
@@ -1903,7 +2120,6 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2120
|
Unit.onResurrect = __TS__New(
|
|
1904
2121
|
InitializingEvent,
|
|
1905
2122
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2123
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2124
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2125
|
dead[unit] = true
|
|
@@ -1919,10 +2135,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2135
|
Unit.morphEvent = __TS__New(
|
|
1920
2136
|
InitializingEvent,
|
|
1921
2137
|
function(event)
|
|
2138
|
+
local function ifNotLeft(unit)
|
|
2139
|
+
local handle = unit.handle
|
|
2140
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2141
|
+
invoke(event, unit)
|
|
2142
|
+
end
|
|
2143
|
+
end
|
|
1922
2144
|
____exports.Unit.onImmediateOrder[orderId("undefend")]:addListener(function(unit)
|
|
1923
2145
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2146
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2147
|
end
|
|
1927
2148
|
end)
|
|
1928
2149
|
end
|
|
@@ -1960,27 +2181,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2181
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2182
|
InitializingEvent,
|
|
1962
2183
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2184
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2185
|
+
local ____GetSpellTargetUnit_result_9
|
|
1966
2186
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2187
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2188
|
else
|
|
1969
|
-
local
|
|
2189
|
+
local ____GetSpellTargetItem_result_8
|
|
1970
2190
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2191
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
1972
2192
|
else
|
|
1973
|
-
local
|
|
2193
|
+
local ____GetSpellTargetDestructable_result_7
|
|
1974
2194
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2195
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2196
|
else
|
|
1977
|
-
|
|
2197
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
1978
2198
|
end
|
|
1979
|
-
|
|
2199
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
1980
2200
|
end
|
|
1981
|
-
|
|
2201
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
1982
2202
|
end
|
|
1983
|
-
local target =
|
|
2203
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
1984
2204
|
if target then
|
|
1985
2205
|
invoke(event, unit, id, target)
|
|
1986
2206
|
end
|
|
@@ -2152,10 +2372,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2372
|
____exports.UnitTriggerEvent,
|
|
2153
2373
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2374
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2375
|
+
local handle = getOrderedUnit()
|
|
2376
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2377
|
+
local unit = ____exports.Unit:of(handle)
|
|
2378
|
+
if unit.state == 1 then
|
|
2379
|
+
return unit, getIssuedOrderId()
|
|
2380
|
+
end
|
|
2159
2381
|
end
|
|
2160
2382
|
return IgnoreEvent
|
|
2161
2383
|
end
|
|
@@ -2177,7 +2399,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2399
|
)
|
|
2178
2400
|
Unit.onDamaging = (function()
|
|
2179
2401
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2402
|
local trigger = CreateTrigger()
|
|
2182
2403
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2404
|
TriggerAddCondition(
|
|
@@ -2187,13 +2408,18 @@ Unit.onDamaging = (function()
|
|
|
2187
2408
|
if source and source.typeId == dummyUnitId then
|
|
2188
2409
|
source = nil
|
|
2189
2410
|
end
|
|
2190
|
-
local target = BlzGetEventDamageTarget()
|
|
2411
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2412
|
+
local metadata = damageMetadataByTarget[target]
|
|
2413
|
+
damageMetadataByTarget[target] = nil
|
|
2191
2414
|
local data = {
|
|
2192
2415
|
amount = GetEventDamage(),
|
|
2193
|
-
attackType = BlzGetEventAttackType(),
|
|
2416
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2194
2417
|
damageType = BlzGetEventDamageType(),
|
|
2195
2418
|
weaponType = BlzGetEventWeaponType(),
|
|
2196
|
-
|
|
2419
|
+
metadata = metadata,
|
|
2420
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2421
|
+
originalAmount = GetEventDamage(),
|
|
2422
|
+
originalMetadata = metadata
|
|
2197
2423
|
}
|
|
2198
2424
|
if data.isAttack and source then
|
|
2199
2425
|
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
|
|
@@ -2207,18 +2433,22 @@ Unit.onDamaging = (function()
|
|
|
2207
2433
|
invoke(
|
|
2208
2434
|
event,
|
|
2209
2435
|
source,
|
|
2210
|
-
|
|
2436
|
+
target,
|
|
2211
2437
|
setmetatable(
|
|
2212
2438
|
{},
|
|
2213
2439
|
{
|
|
2214
2440
|
__index = data,
|
|
2215
2441
|
__newindex = function(self, key, value)
|
|
2216
|
-
damageSetters[key]
|
|
2442
|
+
local damageSetter = damageSetters[key]
|
|
2443
|
+
if damageSetter ~= nil then
|
|
2444
|
+
damageSetter(value)
|
|
2445
|
+
end
|
|
2217
2446
|
data[key] = value
|
|
2218
2447
|
end
|
|
2219
2448
|
}
|
|
2220
2449
|
)
|
|
2221
2450
|
)
|
|
2451
|
+
damagingEventByTarget[target] = data
|
|
2222
2452
|
return
|
|
2223
2453
|
end
|
|
2224
2454
|
BlzSetEventDamage(0)
|
|
@@ -2226,7 +2456,7 @@ Unit.onDamaging = (function()
|
|
|
2226
2456
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2227
2457
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2228
2458
|
local sourceOwner = source.owner.handle
|
|
2229
|
-
local targetOwner =
|
|
2459
|
+
local targetOwner = target.owner.handle
|
|
2230
2460
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2231
2461
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2232
2462
|
Timer:run(function()
|
|
@@ -2242,23 +2472,19 @@ Unit.onDamaging = (function()
|
|
|
2242
2472
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2243
2473
|
local condition = ____value[1]
|
|
2244
2474
|
local action = ____value[2]
|
|
2245
|
-
if condition(
|
|
2246
|
-
source,
|
|
2247
|
-
____exports.Unit:of(target),
|
|
2248
|
-
data
|
|
2249
|
-
) then
|
|
2475
|
+
if condition(source, target, data) then
|
|
2250
2476
|
action(
|
|
2251
2477
|
source,
|
|
2252
|
-
|
|
2478
|
+
target,
|
|
2253
2479
|
setmetatable(
|
|
2254
2480
|
{fire = function()
|
|
2255
2481
|
UnitDamageTarget(
|
|
2256
2482
|
source.handle,
|
|
2257
|
-
target,
|
|
2483
|
+
target.handle,
|
|
2258
2484
|
data.amount,
|
|
2259
2485
|
true,
|
|
2260
2486
|
true,
|
|
2261
|
-
data.attackType,
|
|
2487
|
+
attackTypeToNative(data.attackType),
|
|
2262
2488
|
data.damageType,
|
|
2263
2489
|
data.weaponType
|
|
2264
2490
|
)
|
|
@@ -2276,7 +2502,6 @@ end)()
|
|
|
2276
2502
|
Unit.onDamage = __TS__New(
|
|
2277
2503
|
InitializingEvent,
|
|
2278
2504
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2505
|
local trigger = CreateTrigger()
|
|
2281
2506
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2507
|
TriggerAddCondition(
|
|
@@ -2286,29 +2511,44 @@ Unit.onDamage = __TS__New(
|
|
|
2286
2511
|
if source and source.typeId == dummyUnitId then
|
|
2287
2512
|
source = nil
|
|
2288
2513
|
end
|
|
2514
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2515
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2516
|
+
damagingEventByTarget[target] = nil
|
|
2289
2517
|
local data = {
|
|
2290
2518
|
amount = GetEventDamage(),
|
|
2291
|
-
attackType = BlzGetEventAttackType(),
|
|
2519
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2292
2520
|
damageType = BlzGetEventDamageType(),
|
|
2293
2521
|
weaponType = BlzGetEventWeaponType(),
|
|
2522
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2294
2523
|
isAttack = BlzGetEventIsAttack(),
|
|
2524
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2525
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2295
2526
|
preventDeath = damageEventPreventDeath
|
|
2296
2527
|
}
|
|
2528
|
+
if damagingEvent then
|
|
2529
|
+
for key, value in pairs(damagingEvent) do
|
|
2530
|
+
if isAttribute(key) then
|
|
2531
|
+
data[key] = value
|
|
2532
|
+
end
|
|
2533
|
+
end
|
|
2534
|
+
end
|
|
2297
2535
|
local evData = setmetatable(
|
|
2298
2536
|
{},
|
|
2299
2537
|
{
|
|
2300
2538
|
__index = data,
|
|
2301
2539
|
__newindex = function(self, key, value)
|
|
2302
|
-
damageSetters[key]
|
|
2540
|
+
local damageSetter = damageSetters[key]
|
|
2541
|
+
if damageSetter ~= nil then
|
|
2542
|
+
damageSetter(value)
|
|
2543
|
+
end
|
|
2303
2544
|
data[key] = value
|
|
2304
2545
|
end
|
|
2305
2546
|
}
|
|
2306
2547
|
)
|
|
2307
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2308
2548
|
invoke(event, source, target, evData)
|
|
2309
2549
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2550
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2551
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2312
2552
|
BlzSetUnitMaxHP(
|
|
2313
2553
|
target.handle,
|
|
2314
2554
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2562,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2562
|
evData[0],
|
|
2323
2563
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2564
|
)
|
|
2325
|
-
target[
|
|
2565
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2326
2566
|
SetWidgetLife(
|
|
2327
2567
|
target.handle,
|
|
2328
2568
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,32 +2582,91 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2582
|
DestroyTrigger(trigger)
|
|
2343
2583
|
end
|
|
2344
2584
|
)
|
|
2345
|
-
Unit.
|
|
2585
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2586
|
____exports.UnitTriggerEvent,
|
|
2347
2587
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2588
|
function()
|
|
2349
2589
|
local unit = getTriggerUnit()
|
|
2350
|
-
|
|
2351
|
-
|
|
2590
|
+
local item = getManipulatedItem()
|
|
2591
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2592
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2352
2593
|
end
|
|
2353
2594
|
return IgnoreEvent
|
|
2354
2595
|
end
|
|
2355
2596
|
)
|
|
2356
|
-
Unit.
|
|
2597
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2598
|
____exports.UnitTriggerEvent,
|
|
2358
2599
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2600
|
function()
|
|
2360
2601
|
local unit = getTriggerUnit()
|
|
2361
|
-
|
|
2362
|
-
|
|
2602
|
+
local item = getManipulatedItem()
|
|
2603
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2604
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2363
2605
|
end
|
|
2364
2606
|
return IgnoreEvent
|
|
2365
2607
|
end
|
|
2366
2608
|
)
|
|
2367
|
-
Unit.
|
|
2609
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2610
|
____exports.UnitTriggerEvent,
|
|
2369
2611
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2612
|
+
function()
|
|
2613
|
+
local unit = getTriggerUnit()
|
|
2614
|
+
local item = getManipulatedItem()
|
|
2615
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2616
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2617
|
+
end
|
|
2618
|
+
return IgnoreEvent
|
|
2619
|
+
end
|
|
2620
|
+
)
|
|
2621
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2622
|
+
____exports.UnitTriggerEvent,
|
|
2623
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2624
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2625
|
+
)
|
|
2626
|
+
__TS__ObjectDefineProperty(
|
|
2627
|
+
Unit,
|
|
2628
|
+
"itemUseOrderEvent",
|
|
2629
|
+
{get = function(self)
|
|
2630
|
+
local event = __TS__New(Event)
|
|
2631
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2632
|
+
local slot = order - orderId("useslot0")
|
|
2633
|
+
local function listener(unit)
|
|
2634
|
+
local item = unit.items[slot + 1]
|
|
2635
|
+
if item ~= nil then
|
|
2636
|
+
invoke(event, unit, item)
|
|
2637
|
+
end
|
|
2638
|
+
end
|
|
2639
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2640
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2641
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2642
|
+
end
|
|
2643
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2644
|
+
return event
|
|
2645
|
+
end}
|
|
2646
|
+
)
|
|
2647
|
+
__TS__ObjectDefineProperty(
|
|
2648
|
+
Unit,
|
|
2649
|
+
"itemMoveOrderEvent",
|
|
2650
|
+
{get = function(self)
|
|
2651
|
+
local event = __TS__New(Event)
|
|
2652
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2653
|
+
local slotTo = order - orderId("moveslot0")
|
|
2654
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2655
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2656
|
+
if slotFrom ~= nil then
|
|
2657
|
+
invoke(
|
|
2658
|
+
event,
|
|
2659
|
+
unit,
|
|
2660
|
+
item,
|
|
2661
|
+
slotFrom,
|
|
2662
|
+
slotTo
|
|
2663
|
+
)
|
|
2664
|
+
end
|
|
2665
|
+
end)
|
|
2666
|
+
end
|
|
2667
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2668
|
+
return event
|
|
2669
|
+
end}
|
|
2371
2670
|
)
|
|
2372
2671
|
__TS__ObjectDefineProperty(
|
|
2373
2672
|
Unit,
|