warscript 0.0.1-dev.ff2a62d → 0.0.1-dev.ff5dbcd
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/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +6 -0
- package/core/types/frame.lua +91 -1
- package/core/types/sound.d.ts +1 -0
- package/core/types/sound.lua +36 -2
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/engine/behavior.d.ts +2 -2
- 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/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -0
- 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.d.ts +15 -3
- package/engine/behaviour/ability.lua +93 -34
- package/engine/behaviour/unit.d.ts +5 -0
- package/engine/behaviour/unit.lua +20 -0
- package/engine/buff.d.ts +78 -42
- package/engine/buff.lua +351 -223
- package/engine/internal/ability.d.ts +16 -13
- 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 +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -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 +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit-missile-launch.lua +24 -5
- package/engine/internal/unit.d.ts +26 -10
- package/engine/internal/unit.lua +162 -81
- 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/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -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/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- 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.d.ts +8 -6
- package/engine/object-data/entry/ability-type.lua +62 -27
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- package/engine/object-data/entry/buff-type.d.ts +1 -1
- package/engine/object-data/entry/buff-type.lua +2 -2
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +16 -0
- package/engine/object-data/entry/sound-preset.lua +36 -0
- package/engine/object-data/entry/unit-type.d.ts +8 -1
- package/engine/object-data/entry/unit-type.lua +61 -8
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -2
- package/engine/object-field.lua +4 -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/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/arrays.d.ts +8 -1
- package/utility/arrays.lua +34 -3
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -2
- package/utility/linked-set.lua +5 -2
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -51,6 +51,8 @@ local ____arrays = require("utility.arrays")
|
|
|
51
51
|
local forEach = ____arrays.forEach
|
|
52
52
|
local ____math = require("math")
|
|
53
53
|
local min = ____math.min
|
|
54
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
+
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
54
56
|
local match = string.match
|
|
55
57
|
local ____tostring = _G.tostring
|
|
56
58
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -75,6 +77,7 @@ local setUnitScale = SetUnitScale
|
|
|
75
77
|
local setUnitPosition = SetUnitPosition
|
|
76
78
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
79
|
local getHandleId = GetHandleId
|
|
80
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
81
|
local createUnit = CreateUnit
|
|
79
82
|
local killUnit = KillUnit
|
|
80
83
|
local setUnitExploded = SetUnitExploded
|
|
@@ -562,17 +565,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
565
|
____exports.Unit:of(unit)
|
|
563
566
|
)
|
|
564
567
|
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
568
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
577
569
|
local item = unitItemInSlot(unit, i)
|
|
578
570
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -630,15 +622,15 @@ for ____, player in ipairs(Player.all) do
|
|
|
630
622
|
dummies[player] = dummy
|
|
631
623
|
end
|
|
632
624
|
local function delayHealthChecksCallback(unit)
|
|
633
|
-
local counter = (unit[
|
|
625
|
+
local counter = (unit[103] or 0) - 1
|
|
634
626
|
if counter ~= 0 then
|
|
635
|
-
unit[
|
|
627
|
+
unit[103] = counter
|
|
636
628
|
return
|
|
637
629
|
end
|
|
638
|
-
unit[
|
|
639
|
-
local healthBonus = unit[
|
|
630
|
+
unit[103] = nil
|
|
631
|
+
local healthBonus = unit[104]
|
|
640
632
|
if healthBonus ~= nil then
|
|
641
|
-
unit[
|
|
633
|
+
unit[104] = nil
|
|
642
634
|
local handle = unit.handle
|
|
643
635
|
BlzSetUnitMaxHP(
|
|
644
636
|
handle,
|
|
@@ -646,12 +638,17 @@ local function delayHealthChecksCallback(unit)
|
|
|
646
638
|
)
|
|
647
639
|
end
|
|
648
640
|
end
|
|
641
|
+
local nextSyncId = 1
|
|
642
|
+
local unitBySyncId = setmetatable({}, {__mode = "k"})
|
|
649
643
|
____exports.Unit = __TS__Class()
|
|
650
644
|
local Unit = ____exports.Unit
|
|
651
645
|
Unit.name = "Unit"
|
|
652
646
|
__TS__ClassExtends(Unit, Handle)
|
|
653
647
|
function Unit.prototype.____constructor(self, handle)
|
|
654
648
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
+
local ____nextSyncId_0 = nextSyncId
|
|
650
|
+
nextSyncId = ____nextSyncId_0 + 1
|
|
651
|
+
self.syncId = ____nextSyncId_0
|
|
655
652
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
656
653
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
657
654
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -664,6 +661,7 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
664
661
|
fourCC("Amrf")
|
|
665
662
|
))
|
|
666
663
|
end
|
|
664
|
+
unitBySyncId[self.syncId] = self
|
|
667
665
|
local ____ = self.abilities
|
|
668
666
|
end
|
|
669
667
|
function Unit.prototype.getEvent(self, event, collector)
|
|
@@ -749,8 +747,8 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
749
747
|
end}
|
|
750
748
|
end
|
|
751
749
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
752
|
-
local
|
|
753
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
750
|
+
local ____combatClassification_1 = combatClassification
|
|
751
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_1 == ____combatClassification_1
|
|
754
752
|
end
|
|
755
753
|
function Unit.prototype.addClassification(self, classification)
|
|
756
754
|
return unitAddType(self.handle, classification)
|
|
@@ -768,13 +766,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
768
766
|
return isUnitInvisible(self.handle, player.handle)
|
|
769
767
|
end
|
|
770
768
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
771
|
-
local
|
|
769
|
+
local ____temp_2
|
|
772
770
|
if type(x) == "number" then
|
|
773
|
-
|
|
771
|
+
____temp_2 = isUnitInRangeXY(self.handle, x, y, range)
|
|
774
772
|
else
|
|
775
|
-
|
|
773
|
+
____temp_2 = isUnitInRange(self.handle, x.handle, y)
|
|
776
774
|
end
|
|
777
|
-
return
|
|
775
|
+
return ____temp_2
|
|
778
776
|
end
|
|
779
777
|
function Unit.prototype.isAllyOf(self, unit)
|
|
780
778
|
return isUnitAlly(
|
|
@@ -801,7 +799,7 @@ function Unit.prototype.queueAnimation(self, animation)
|
|
|
801
799
|
queueUnitAnimation(self.handle, animation)
|
|
802
800
|
end
|
|
803
801
|
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
-
self[
|
|
802
|
+
self[103] = (self[103] or 0) + 1
|
|
805
803
|
Timer:run(delayHealthChecksCallback, self)
|
|
806
804
|
end
|
|
807
805
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -818,14 +816,14 @@ function Unit.prototype.kill(self)
|
|
|
818
816
|
killUnit(self.handle)
|
|
819
817
|
end
|
|
820
818
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
821
|
-
local
|
|
822
|
-
local
|
|
823
|
-
local
|
|
824
|
-
if
|
|
825
|
-
|
|
819
|
+
local ____ReviveHero_5 = ReviveHero
|
|
820
|
+
local ____array_4 = __TS__SparseArrayNew(self.handle, x, y)
|
|
821
|
+
local ____doEffect_3 = doEffect
|
|
822
|
+
if ____doEffect_3 == nil then
|
|
823
|
+
____doEffect_3 = false
|
|
826
824
|
end
|
|
827
|
-
__TS__SparseArrayPush(
|
|
828
|
-
|
|
825
|
+
__TS__SparseArrayPush(____array_4, ____doEffect_3)
|
|
826
|
+
____ReviveHero_5(__TS__SparseArraySpread(____array_4))
|
|
829
827
|
end
|
|
830
828
|
function Unit.prototype.healTarget(self, target, amount)
|
|
831
829
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -865,7 +863,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
865
863
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
866
864
|
end
|
|
867
865
|
function Unit.prototype.itemInSlot(self, slot)
|
|
868
|
-
return Item:of(
|
|
866
|
+
return Item:of(unitItemInSlot(self.handle, slot))
|
|
869
867
|
end
|
|
870
868
|
function Unit.prototype.addAbility(self, abilityId)
|
|
871
869
|
if unitAddAbility(self.handle, abilityId) then
|
|
@@ -934,8 +932,15 @@ function Unit.prototype.interruptAttack(self)
|
|
|
934
932
|
unitInterruptAttack(self.handle)
|
|
935
933
|
end
|
|
936
934
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
937
|
-
|
|
938
|
-
unitDisableAbility(
|
|
935
|
+
local handle = self.handle
|
|
936
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
937
|
+
Timer:run(
|
|
938
|
+
unitDisableAbility,
|
|
939
|
+
handle,
|
|
940
|
+
abilityId,
|
|
941
|
+
false,
|
|
942
|
+
false
|
|
943
|
+
)
|
|
939
944
|
end
|
|
940
945
|
function Unit.prototype.getDistanceTo(self, target)
|
|
941
946
|
local handle = self.handle
|
|
@@ -995,18 +1000,18 @@ function Unit.prototype.unpauseEx(self)
|
|
|
995
1000
|
self:decrementStunCounter()
|
|
996
1001
|
end
|
|
997
1002
|
function Unit.prototype.incrementStunCounter(self)
|
|
998
|
-
local stunCounter = self[
|
|
999
|
-
if not self[
|
|
1003
|
+
local stunCounter = self[102] or 0
|
|
1004
|
+
if not self[101] or stunCounter >= 0 then
|
|
1000
1005
|
BlzPauseUnitEx(self.handle, true)
|
|
1001
1006
|
end
|
|
1002
|
-
self[
|
|
1007
|
+
self[102] = stunCounter + 1
|
|
1003
1008
|
end
|
|
1004
1009
|
function Unit.prototype.decrementStunCounter(self)
|
|
1005
|
-
local stunCounter = self[
|
|
1006
|
-
if not self[
|
|
1010
|
+
local stunCounter = self[102] or 0
|
|
1011
|
+
if not self[101] or stunCounter >= 1 then
|
|
1007
1012
|
BlzPauseUnitEx(self.handle, false)
|
|
1008
1013
|
end
|
|
1009
|
-
self[
|
|
1014
|
+
self[102] = stunCounter - 1
|
|
1010
1015
|
end
|
|
1011
1016
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1012
1017
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1108,8 +1113,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1108
1113
|
)
|
|
1109
1114
|
return targetCollection
|
|
1110
1115
|
end
|
|
1111
|
-
function Unit.getSelectionOf(self, player)
|
|
1112
|
-
|
|
1116
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1117
|
+
if target == nil then
|
|
1118
|
+
target = {}
|
|
1119
|
+
end
|
|
1120
|
+
targetCollection = target
|
|
1113
1121
|
targetCollectionNextIndex = 1
|
|
1114
1122
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1115
1123
|
return targetCollection
|
|
@@ -1131,6 +1139,9 @@ end
|
|
|
1131
1139
|
function Unit.prototype.__tostring(self)
|
|
1132
1140
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1133
1141
|
end
|
|
1142
|
+
function Unit.getBySyncId(self, syncId)
|
|
1143
|
+
return unitBySyncId[syncId]
|
|
1144
|
+
end
|
|
1134
1145
|
__TS__SetDescriptor(
|
|
1135
1146
|
Unit.prototype,
|
|
1136
1147
|
"_deltas",
|
|
@@ -1194,6 +1205,14 @@ __TS__SetDescriptor(
|
|
|
1194
1205
|
end},
|
|
1195
1206
|
true
|
|
1196
1207
|
)
|
|
1208
|
+
__TS__SetDescriptor(
|
|
1209
|
+
Unit.prototype,
|
|
1210
|
+
"isStunned",
|
|
1211
|
+
{get = function(self)
|
|
1212
|
+
return getUnitCurrentOrder(self.handle) == orderId("stunned")
|
|
1213
|
+
end},
|
|
1214
|
+
true
|
|
1215
|
+
)
|
|
1197
1216
|
__TS__SetDescriptor(
|
|
1198
1217
|
Unit.prototype,
|
|
1199
1218
|
"combatClassifications",
|
|
@@ -1388,17 +1407,17 @@ __TS__SetDescriptor(
|
|
|
1388
1407
|
"isTeamGlowVisible",
|
|
1389
1408
|
{
|
|
1390
1409
|
get = function(self)
|
|
1391
|
-
return not self[
|
|
1410
|
+
return not self[106]
|
|
1392
1411
|
end,
|
|
1393
1412
|
set = function(self, isTeamGlowVisible)
|
|
1394
1413
|
showUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1395
|
-
local
|
|
1414
|
+
local ____temp_6
|
|
1396
1415
|
if not isTeamGlowVisible then
|
|
1397
|
-
|
|
1416
|
+
____temp_6 = true
|
|
1398
1417
|
else
|
|
1399
|
-
|
|
1418
|
+
____temp_6 = nil
|
|
1400
1419
|
end
|
|
1401
|
-
self[
|
|
1420
|
+
self[106] = ____temp_6
|
|
1402
1421
|
end
|
|
1403
1422
|
},
|
|
1404
1423
|
true
|
|
@@ -1408,7 +1427,7 @@ __TS__SetDescriptor(
|
|
|
1408
1427
|
"color",
|
|
1409
1428
|
{set = function(self, color)
|
|
1410
1429
|
setUnitColor(self.handle, color.handle)
|
|
1411
|
-
if self[
|
|
1430
|
+
if self[106] then
|
|
1412
1431
|
showUnitTeamGlow(self.handle, false)
|
|
1413
1432
|
end
|
|
1414
1433
|
end},
|
|
@@ -1432,14 +1451,14 @@ __TS__SetDescriptor(
|
|
|
1432
1451
|
"maxHealth",
|
|
1433
1452
|
{
|
|
1434
1453
|
get = function(self)
|
|
1435
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1454
|
+
return BlzGetUnitMaxHP(self.handle) - (self[104] or 0) - (self[105] or 0)
|
|
1436
1455
|
end,
|
|
1437
1456
|
set = function(self, maxHealth)
|
|
1438
|
-
if maxHealth < 1 and self[
|
|
1439
|
-
self[
|
|
1457
|
+
if maxHealth < 1 and self[103] ~= nil then
|
|
1458
|
+
self[104] = (self[104] or 0) + (1 - maxHealth)
|
|
1440
1459
|
maxHealth = 1
|
|
1441
1460
|
end
|
|
1442
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1461
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[105] or 0))
|
|
1443
1462
|
end
|
|
1444
1463
|
},
|
|
1445
1464
|
true
|
|
@@ -1481,10 +1500,10 @@ __TS__SetDescriptor(
|
|
|
1481
1500
|
"health",
|
|
1482
1501
|
{
|
|
1483
1502
|
get = function(self)
|
|
1484
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1503
|
+
return GetWidgetLife(self.handle) - (self[105] or 0)
|
|
1485
1504
|
end,
|
|
1486
1505
|
set = function(self, health)
|
|
1487
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1506
|
+
SetWidgetLife(self.handle, health + (self[105] or 0))
|
|
1488
1507
|
end
|
|
1489
1508
|
},
|
|
1490
1509
|
true
|
|
@@ -1695,17 +1714,17 @@ __TS__SetDescriptor(
|
|
|
1695
1714
|
set = function(self, isPaused)
|
|
1696
1715
|
local handle = self.handle
|
|
1697
1716
|
if isPaused and not IsUnitPaused(handle) then
|
|
1698
|
-
self[
|
|
1699
|
-
for _ = self[
|
|
1717
|
+
self[101] = true
|
|
1718
|
+
for _ = self[102] or 0, -1 do
|
|
1700
1719
|
BlzPauseUnitEx(handle, true)
|
|
1701
1720
|
end
|
|
1702
1721
|
PauseUnit(handle, true)
|
|
1703
1722
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1704
1723
|
PauseUnit(handle, false)
|
|
1705
|
-
for _ = self[
|
|
1724
|
+
for _ = self[102] or 0, -1 do
|
|
1706
1725
|
BlzPauseUnitEx(handle, false)
|
|
1707
1726
|
end
|
|
1708
|
-
self[
|
|
1727
|
+
self[101] = nil
|
|
1709
1728
|
end
|
|
1710
1729
|
end
|
|
1711
1730
|
},
|
|
@@ -2124,25 +2143,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2124
2143
|
InitializingEvent,
|
|
2125
2144
|
function(event)
|
|
2126
2145
|
local function listener(unit, id)
|
|
2127
|
-
local
|
|
2146
|
+
local ____GetSpellTargetUnit_result_9
|
|
2128
2147
|
if GetSpellTargetUnit() then
|
|
2129
|
-
|
|
2148
|
+
____GetSpellTargetUnit_result_9 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2130
2149
|
else
|
|
2131
|
-
local
|
|
2150
|
+
local ____GetSpellTargetItem_result_8
|
|
2132
2151
|
if GetSpellTargetItem() then
|
|
2133
|
-
|
|
2152
|
+
____GetSpellTargetItem_result_8 = Item:of(GetSpellTargetItem())
|
|
2134
2153
|
else
|
|
2135
|
-
local
|
|
2154
|
+
local ____GetSpellTargetDestructable_result_7
|
|
2136
2155
|
if GetSpellTargetDestructable() then
|
|
2137
|
-
|
|
2156
|
+
____GetSpellTargetDestructable_result_7 = Destructable:of(GetSpellTargetDestructable())
|
|
2138
2157
|
else
|
|
2139
|
-
|
|
2158
|
+
____GetSpellTargetDestructable_result_7 = nil
|
|
2140
2159
|
end
|
|
2141
|
-
|
|
2160
|
+
____GetSpellTargetItem_result_8 = ____GetSpellTargetDestructable_result_7
|
|
2142
2161
|
end
|
|
2143
|
-
|
|
2162
|
+
____GetSpellTargetUnit_result_9 = ____GetSpellTargetItem_result_8
|
|
2144
2163
|
end
|
|
2145
|
-
local target =
|
|
2164
|
+
local target = ____GetSpellTargetUnit_result_9
|
|
2146
2165
|
if target then
|
|
2147
2166
|
invoke(event, unit, id, target)
|
|
2148
2167
|
end
|
|
@@ -2314,10 +2333,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2314
2333
|
____exports.UnitTriggerEvent,
|
|
2315
2334
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2316
2335
|
function()
|
|
2317
|
-
local
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2336
|
+
local handle = getOrderedUnit()
|
|
2337
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2338
|
+
local unit = ____exports.Unit:of(handle)
|
|
2339
|
+
if unit.state == 1 then
|
|
2340
|
+
return unit, getIssuedOrderId()
|
|
2341
|
+
end
|
|
2321
2342
|
end
|
|
2322
2343
|
return IgnoreEvent
|
|
2323
2344
|
end
|
|
@@ -2452,6 +2473,7 @@ Unit.onDamage = __TS__New(
|
|
|
2452
2473
|
damageType = BlzGetEventDamageType(),
|
|
2453
2474
|
weaponType = BlzGetEventWeaponType(),
|
|
2454
2475
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
+
originalAmount = GetEventDamage(),
|
|
2455
2477
|
preventDeath = damageEventPreventDeath
|
|
2456
2478
|
}
|
|
2457
2479
|
local evData = setmetatable(
|
|
@@ -2468,7 +2490,7 @@ Unit.onDamage = __TS__New(
|
|
|
2468
2490
|
invoke(event, source, target, evData)
|
|
2469
2491
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2470
2492
|
local bonusHealth = math.ceil(evData.amount)
|
|
2471
|
-
target[
|
|
2493
|
+
target[105] = (target[105] or 0) + bonusHealth
|
|
2472
2494
|
BlzSetUnitMaxHP(
|
|
2473
2495
|
target.handle,
|
|
2474
2496
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2482,7 +2504,7 @@ Unit.onDamage = __TS__New(
|
|
|
2482
2504
|
evData[0],
|
|
2483
2505
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2484
2506
|
)
|
|
2485
|
-
target[
|
|
2507
|
+
target[105] = (target[105] or 0) - bonusHealth
|
|
2486
2508
|
SetWidgetLife(
|
|
2487
2509
|
target.handle,
|
|
2488
2510
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2502,32 +2524,91 @@ Unit.onDamage = __TS__New(
|
|
|
2502
2524
|
DestroyTrigger(trigger)
|
|
2503
2525
|
end
|
|
2504
2526
|
)
|
|
2505
|
-
Unit.
|
|
2527
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2506
2528
|
____exports.UnitTriggerEvent,
|
|
2507
2529
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2508
2530
|
function()
|
|
2509
2531
|
local unit = getTriggerUnit()
|
|
2510
|
-
|
|
2511
|
-
|
|
2532
|
+
local item = getManipulatedItem()
|
|
2533
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2534
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2512
2535
|
end
|
|
2513
2536
|
return IgnoreEvent
|
|
2514
2537
|
end
|
|
2515
2538
|
)
|
|
2516
|
-
Unit.
|
|
2539
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2517
2540
|
____exports.UnitTriggerEvent,
|
|
2518
2541
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2519
2542
|
function()
|
|
2520
2543
|
local unit = getTriggerUnit()
|
|
2521
|
-
|
|
2522
|
-
|
|
2544
|
+
local item = getManipulatedItem()
|
|
2545
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2546
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2523
2547
|
end
|
|
2524
2548
|
return IgnoreEvent
|
|
2525
2549
|
end
|
|
2526
2550
|
)
|
|
2527
|
-
Unit.
|
|
2551
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2528
2552
|
____exports.UnitTriggerEvent,
|
|
2529
2553
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2530
|
-
function()
|
|
2554
|
+
function()
|
|
2555
|
+
local unit = getTriggerUnit()
|
|
2556
|
+
local item = getManipulatedItem()
|
|
2557
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
2558
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
|
+
end
|
|
2560
|
+
return IgnoreEvent
|
|
2561
|
+
end
|
|
2562
|
+
)
|
|
2563
|
+
Unit.itemStackedEvent = __TS__New(
|
|
2564
|
+
____exports.UnitTriggerEvent,
|
|
2565
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2567
|
+
)
|
|
2568
|
+
__TS__ObjectDefineProperty(
|
|
2569
|
+
Unit,
|
|
2570
|
+
"itemUseOrderEvent",
|
|
2571
|
+
{get = function(self)
|
|
2572
|
+
local event = __TS__New(Event)
|
|
2573
|
+
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2574
|
+
local slot = order - orderId("useslot0")
|
|
2575
|
+
local function listener(unit)
|
|
2576
|
+
local item = unit.items[slot + 1]
|
|
2577
|
+
if item ~= nil then
|
|
2578
|
+
invoke(event, unit, item)
|
|
2579
|
+
end
|
|
2580
|
+
end
|
|
2581
|
+
self.onImmediateOrder[order]:addListener(listener)
|
|
2582
|
+
self.onTargetOrder[order]:addListener(listener)
|
|
2583
|
+
self.onPointOrder[order]:addListener(listener)
|
|
2584
|
+
end
|
|
2585
|
+
rawset(self, "itemUseOrderEvent", event)
|
|
2586
|
+
return event
|
|
2587
|
+
end}
|
|
2588
|
+
)
|
|
2589
|
+
__TS__ObjectDefineProperty(
|
|
2590
|
+
Unit,
|
|
2591
|
+
"itemMoveOrderEvent",
|
|
2592
|
+
{get = function(self)
|
|
2593
|
+
local event = __TS__New(Event)
|
|
2594
|
+
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2595
|
+
local slotTo = order - orderId("moveslot0")
|
|
2596
|
+
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2597
|
+
local slotFrom = unit.items:findSlot(item)
|
|
2598
|
+
if slotFrom ~= nil then
|
|
2599
|
+
invoke(
|
|
2600
|
+
event,
|
|
2601
|
+
unit,
|
|
2602
|
+
item,
|
|
2603
|
+
slotFrom,
|
|
2604
|
+
slotTo
|
|
2605
|
+
)
|
|
2606
|
+
end
|
|
2607
|
+
end)
|
|
2608
|
+
end
|
|
2609
|
+
rawset(self, "itemMoveOrderEvent", event)
|
|
2610
|
+
return event
|
|
2611
|
+
end}
|
|
2531
2612
|
)
|
|
2532
2613
|
__TS__ObjectDefineProperty(
|
|
2533
2614
|
Unit,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local getUnitAbility = BlzGetUnitAbility
|
|
3
3
|
local unitAddAbility = UnitAddAbility
|
|
4
|
+
local unitInventorySize = UnitInventorySize
|
|
5
|
+
local unitItemInSlot = UnitItemInSlot
|
|
4
6
|
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
5
7
|
---
|
|
6
8
|
-- @internal For use by internal systems only.
|
|
@@ -10,4 +12,14 @@ ____exports.addInternalAbility = function(unit, abilityTypeId)
|
|
|
10
12
|
end
|
|
11
13
|
return getUnitAbility(unit, abilityTypeId)
|
|
12
14
|
end
|
|
15
|
+
---
|
|
16
|
+
-- @internal For use by internal systems only.
|
|
17
|
+
____exports.findUnitItemSlot = function(unit, item)
|
|
18
|
+
for slot = 0, unitInventorySize(unit) - 1 do
|
|
19
|
+
if item == unitItemInSlot(unit, slot) then
|
|
20
|
+
return slot
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
return nil
|
|
24
|
+
end
|
|
13
25
|
return ____exports
|
package/engine/lightning.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { LightningTypeId } from "./object-data/entry/lightning-type";
|
|
3
|
-
import { Handle, HandleDestructor } from "../core/types/handle";
|
|
4
3
|
import { Unit } from "../core/types/unit";
|
|
4
|
+
import { AbstractDestroyable, Destructor } from "../destroyable";
|
|
5
5
|
declare const enum LightningPropertyKey {
|
|
6
6
|
CHECK_VISIBILITY = 100,
|
|
7
7
|
SOURCE_UNIT = 101,
|
|
@@ -12,10 +12,12 @@ declare const enum LightningPropertyKey {
|
|
|
12
12
|
TARGET_X = 106,
|
|
13
13
|
TARGET_Y = 107,
|
|
14
14
|
TARGET_Z = 108,
|
|
15
|
-
DURATION = 109
|
|
15
|
+
DURATION = 109,
|
|
16
|
+
FADING = 110
|
|
16
17
|
}
|
|
17
18
|
export type LightningConstructor<T extends Lightning> = typeof Lightning & (new (handle: jlightning, typeId: LightningTypeId) => T);
|
|
18
|
-
export declare class Lightning extends
|
|
19
|
+
export declare class Lightning extends AbstractDestroyable {
|
|
20
|
+
readonly handle: jlightning;
|
|
19
21
|
readonly typeId: LightningTypeId;
|
|
20
22
|
private [LightningPropertyKey.CHECK_VISIBILITY]?;
|
|
21
23
|
private [LightningPropertyKey.SOURCE_UNIT]?;
|
|
@@ -27,8 +29,9 @@ export declare class Lightning extends Handle<jlightning> {
|
|
|
27
29
|
private [LightningPropertyKey.TARGET_Y]?;
|
|
28
30
|
private [LightningPropertyKey.TARGET_Z]?;
|
|
29
31
|
private [LightningPropertyKey.DURATION]?;
|
|
32
|
+
private [LightningPropertyKey.FADING]?;
|
|
30
33
|
constructor(handle: jlightning, typeId: LightningTypeId);
|
|
31
|
-
protected onDestroy():
|
|
34
|
+
protected onDestroy(): Destructor;
|
|
32
35
|
static create<T extends Lightning>(this: LightningConstructor<T>, typeId: LightningTypeId, ...parameters: [
|
|
33
36
|
...checkVisibility: [boolean] | [],
|
|
34
37
|
...sourceAndTarget: [sourceX: number, sourceY: number, targetX: number, targetY: number] | [
|
|
@@ -46,6 +49,10 @@ export declare class Lightning extends Handle<jlightning> {
|
|
|
46
49
|
target: Unit
|
|
47
50
|
]
|
|
48
51
|
]): T;
|
|
49
|
-
static flash(...parameters: [
|
|
52
|
+
static flash(...parameters: [
|
|
53
|
+
...parameters: Parameters<(typeof Lightning)["create"]>,
|
|
54
|
+
duration: number,
|
|
55
|
+
fading?: boolean
|
|
56
|
+
]): void;
|
|
50
57
|
}
|
|
51
58
|
export {};
|