warscript 0.0.1-dev.2b9d42c → 0.0.1-dev.2c83888
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/core/types/frame.lua +47 -1
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/sound.lua +1 -1
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +69 -11
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- package/engine/behaviour/ability.d.ts +9 -5
- package/engine/behaviour/ability.lua +29 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.lua +13 -3
- package/engine/buff.d.ts +56 -19
- package/engine/buff.lua +283 -142
- package/engine/internal/item/is-actively-used.d.ts +7 -0
- package/engine/internal/item/is-actively-used.lua +20 -0
- package/engine/internal/item.d.ts +0 -2
- package/engine/internal/item.lua +0 -24
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.lua +3 -3
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -9
- package/engine/internal/unit.lua +79 -121
- package/engine/local-client.d.ts +6 -1
- package/engine/local-client.lua +60 -5
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +84 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +115 -0
- package/engine/object-field/unit.d.ts +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +177 -119
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/fields/item.d.ts +3 -0
- package/engine/standard/fields/item.lua +5 -0
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +2 -1
- package/utility/linked-set.lua +21 -0
- package/utility/records.lua +20 -1
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -64,6 +64,8 @@ local ____ability = require("engine.internal.item.ability")
|
|
|
64
64
|
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
65
65
|
local ____synchronization = require("engine.synchronization")
|
|
66
66
|
local synchronizer = ____synchronization.synchronizer
|
|
67
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
68
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
67
69
|
local match = string.match
|
|
68
70
|
local ____tostring = _G.tostring
|
|
69
71
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -73,16 +75,12 @@ local getUnitRealField = BlzGetUnitRealField
|
|
|
73
75
|
local getHeroStr = GetHeroStr
|
|
74
76
|
local getHeroAgi = GetHeroAgi
|
|
75
77
|
local getHeroInt = GetHeroInt
|
|
76
|
-
local setHeroStr = SetHeroStr
|
|
77
|
-
local setHeroAgi = SetHeroAgi
|
|
78
|
-
local setHeroInt = SetHeroInt
|
|
79
78
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
80
79
|
local getUnitStringField = BlzGetUnitStringField
|
|
81
80
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
82
81
|
local setUnitRealField = BlzSetUnitRealField
|
|
83
82
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
84
83
|
local setUnitStringField = BlzSetUnitStringField
|
|
85
|
-
local setUnitScale = SetUnitScale
|
|
86
84
|
local setUnitPosition = SetUnitPosition
|
|
87
85
|
local setUnitTimeScale = SetUnitTimeScale
|
|
88
86
|
local getHandleId = GetHandleId
|
|
@@ -110,7 +108,6 @@ local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
|
110
108
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
111
109
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
112
110
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
113
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
114
111
|
local isUnitInvisible = IsUnitInvisible
|
|
115
112
|
local isUnitVisible = IsUnitVisible
|
|
116
113
|
local getUnitX = GetUnitX
|
|
@@ -386,15 +383,27 @@ local modifiers = {
|
|
|
386
383
|
end,
|
|
387
384
|
armor = function(unit, value)
|
|
388
385
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
389
|
-
assert(
|
|
386
|
+
assert(
|
|
387
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
388
|
+
"armor bonus ability must be made permanent",
|
|
389
|
+
unit
|
|
390
|
+
)
|
|
390
391
|
end
|
|
391
|
-
local ability = assert(
|
|
392
|
-
|
|
393
|
-
ability,
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
392
|
+
local ability = assert(
|
|
393
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
394
|
+
"armor bonus ability must be existing",
|
|
395
|
+
unit
|
|
396
|
+
)
|
|
397
|
+
assert(
|
|
398
|
+
BlzSetAbilityRealLevelField(
|
|
399
|
+
ability,
|
|
400
|
+
armorBonusField,
|
|
401
|
+
0,
|
|
402
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
403
|
+
),
|
|
404
|
+
"armor bonus ability field must be set",
|
|
405
|
+
unit
|
|
406
|
+
)
|
|
398
407
|
end
|
|
399
408
|
}
|
|
400
409
|
local getters = {
|
|
@@ -648,13 +657,17 @@ local fieldSetters = {
|
|
|
648
657
|
}
|
|
649
658
|
local dummies = {}
|
|
650
659
|
for ____, player in ipairs(Player.all) do
|
|
651
|
-
local dummy = assert(
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
660
|
+
local dummy = assert(
|
|
661
|
+
createUnit(
|
|
662
|
+
player.handle,
|
|
663
|
+
dummyUnitId,
|
|
664
|
+
0,
|
|
665
|
+
0,
|
|
666
|
+
270
|
|
667
|
+
),
|
|
668
|
+
"dummy must be created",
|
|
669
|
+
player
|
|
670
|
+
)
|
|
658
671
|
ShowUnit(dummy, false)
|
|
659
672
|
dummies[player] = dummy
|
|
660
673
|
end
|
|
@@ -697,41 +710,57 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
697
710
|
nextSyncId = ____nextSyncId_1 + 1
|
|
698
711
|
self.syncId = ____nextSyncId_1
|
|
699
712
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
700
|
-
assert(
|
|
701
|
-
|
|
713
|
+
assert(
|
|
714
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
715
|
+
"leave detection ability must be added",
|
|
716
|
+
self
|
|
717
|
+
)
|
|
718
|
+
assert(
|
|
719
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
720
|
+
"morph detection ability must be added",
|
|
721
|
+
self
|
|
722
|
+
)
|
|
702
723
|
if unitAddAbility(
|
|
703
724
|
handle,
|
|
704
725
|
fourCC("Amrf")
|
|
705
726
|
) then
|
|
706
|
-
assert(
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
727
|
+
assert(
|
|
728
|
+
unitRemoveAbility(
|
|
729
|
+
handle,
|
|
730
|
+
fourCC("Amrf")
|
|
731
|
+
),
|
|
732
|
+
"fly ability must be removed after addition",
|
|
733
|
+
self
|
|
734
|
+
)
|
|
710
735
|
end
|
|
711
736
|
unitBySyncId[self.syncId] = self
|
|
712
737
|
local ____ = self.abilities
|
|
713
738
|
end
|
|
714
|
-
function Unit.prototype.getEvent(self,
|
|
715
|
-
self.events = self.events or (
|
|
716
|
-
local eventId = GetHandleId(
|
|
717
|
-
|
|
718
|
-
|
|
739
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
740
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
741
|
+
local eventId = GetHandleId(jevent)
|
|
742
|
+
local event = self.events:get(eventId)
|
|
743
|
+
if event == nil then
|
|
744
|
+
event = __TS__New(
|
|
719
745
|
TriggerEvent,
|
|
720
746
|
function(trigger)
|
|
721
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
747
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
722
748
|
end,
|
|
723
749
|
collector or (function() return {} end)
|
|
724
750
|
)
|
|
751
|
+
self.events:put(eventId, event)
|
|
725
752
|
end
|
|
726
|
-
return
|
|
753
|
+
return event
|
|
754
|
+
end
|
|
755
|
+
function Unit.prototype.saveData(self)
|
|
756
|
+
local handle = self.handle
|
|
757
|
+
self[108] = self[108] or getUnitX(handle)
|
|
758
|
+
self[109] = self[109] or getUnitY(handle)
|
|
759
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
727
760
|
end
|
|
728
761
|
function Unit.prototype.onDestroy(self)
|
|
729
762
|
local handle = self.handle
|
|
730
|
-
self
|
|
731
|
-
self[109] = getUnitY(handle)
|
|
732
|
-
if not self._owner then
|
|
733
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
734
|
-
end
|
|
763
|
+
self:saveData()
|
|
735
764
|
local abilities = self.abilities
|
|
736
765
|
for ____, ability in ipairs(abilities) do
|
|
737
766
|
ability:destroy()
|
|
@@ -767,7 +796,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
767
796
|
self._attackHandlers = handlers
|
|
768
797
|
if #handlers == 1 then
|
|
769
798
|
local handle = self.handle
|
|
770
|
-
assert(
|
|
799
|
+
assert(
|
|
800
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
801
|
+
"attack handler ability must be added",
|
|
802
|
+
self
|
|
803
|
+
)
|
|
771
804
|
end
|
|
772
805
|
return handler
|
|
773
806
|
end
|
|
@@ -980,24 +1013,6 @@ end
|
|
|
980
1013
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
981
1014
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
982
1015
|
end
|
|
983
|
-
function Unit.prototype.interruptMovement(self)
|
|
984
|
-
local handle = self.handle
|
|
985
|
-
unitDisableAbility(
|
|
986
|
-
handle,
|
|
987
|
-
fourCC("Amov"),
|
|
988
|
-
true,
|
|
989
|
-
false
|
|
990
|
-
)
|
|
991
|
-
unitDisableAbility(
|
|
992
|
-
handle,
|
|
993
|
-
fourCC("Amov"),
|
|
994
|
-
false,
|
|
995
|
-
false
|
|
996
|
-
)
|
|
997
|
-
end
|
|
998
|
-
function Unit.prototype.interruptAttack(self)
|
|
999
|
-
unitInterruptAttack(self.handle)
|
|
1000
|
-
end
|
|
1001
1016
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
1002
1017
|
local handle = self.handle
|
|
1003
1018
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1392,19 +1407,6 @@ __TS__SetDescriptor(
|
|
|
1392
1407
|
},
|
|
1393
1408
|
true
|
|
1394
1409
|
)
|
|
1395
|
-
__TS__SetDescriptor(
|
|
1396
|
-
Unit.prototype,
|
|
1397
|
-
"strengthBase",
|
|
1398
|
-
{
|
|
1399
|
-
get = function(self)
|
|
1400
|
-
return getHeroStr(self.handle, false)
|
|
1401
|
-
end,
|
|
1402
|
-
set = function(self, strengthBase)
|
|
1403
|
-
setHeroStr(self.handle, strengthBase, true)
|
|
1404
|
-
end
|
|
1405
|
-
},
|
|
1406
|
-
true
|
|
1407
|
-
)
|
|
1408
1410
|
__TS__SetDescriptor(
|
|
1409
1411
|
Unit.prototype,
|
|
1410
1412
|
"strengthBonus",
|
|
@@ -1422,19 +1424,6 @@ __TS__SetDescriptor(
|
|
|
1422
1424
|
end},
|
|
1423
1425
|
true
|
|
1424
1426
|
)
|
|
1425
|
-
__TS__SetDescriptor(
|
|
1426
|
-
Unit.prototype,
|
|
1427
|
-
"agilityBase",
|
|
1428
|
-
{
|
|
1429
|
-
get = function(self)
|
|
1430
|
-
return getHeroAgi(self.handle, false)
|
|
1431
|
-
end,
|
|
1432
|
-
set = function(self, agilityBase)
|
|
1433
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1434
|
-
end
|
|
1435
|
-
},
|
|
1436
|
-
true
|
|
1437
|
-
)
|
|
1438
1427
|
__TS__SetDescriptor(
|
|
1439
1428
|
Unit.prototype,
|
|
1440
1429
|
"agilityBonus",
|
|
@@ -1452,19 +1441,6 @@ __TS__SetDescriptor(
|
|
|
1452
1441
|
end},
|
|
1453
1442
|
true
|
|
1454
1443
|
)
|
|
1455
|
-
__TS__SetDescriptor(
|
|
1456
|
-
Unit.prototype,
|
|
1457
|
-
"intelligenceBase",
|
|
1458
|
-
{
|
|
1459
|
-
get = function(self)
|
|
1460
|
-
return getHeroInt(self.handle, false)
|
|
1461
|
-
end,
|
|
1462
|
-
set = function(self, intelligenceBase)
|
|
1463
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1464
|
-
end
|
|
1465
|
-
},
|
|
1466
|
-
true
|
|
1467
|
-
)
|
|
1468
1444
|
__TS__SetDescriptor(
|
|
1469
1445
|
Unit.prototype,
|
|
1470
1446
|
"intelligenceBonus",
|
|
@@ -2013,30 +1989,6 @@ __TS__SetDescriptor(
|
|
|
2013
1989
|
end},
|
|
2014
1990
|
true
|
|
2015
1991
|
)
|
|
2016
|
-
__TS__SetDescriptor(
|
|
2017
|
-
Unit.prototype,
|
|
2018
|
-
"onUnitInRange",
|
|
2019
|
-
{get = function(self)
|
|
2020
|
-
local handle = self.handle
|
|
2021
|
-
local onUnitInRange = setmetatable(
|
|
2022
|
-
{},
|
|
2023
|
-
{__index = function(self, value)
|
|
2024
|
-
local event = __TS__New(
|
|
2025
|
-
TriggerEvent,
|
|
2026
|
-
function(trigger)
|
|
2027
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
2028
|
-
end,
|
|
2029
|
-
function() return ____exports.Unit:of(handle) end
|
|
2030
|
-
)
|
|
2031
|
-
rawset(self, value, event)
|
|
2032
|
-
return event
|
|
2033
|
-
end}
|
|
2034
|
-
)
|
|
2035
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
2036
|
-
return onUnitInRange
|
|
2037
|
-
end},
|
|
2038
|
-
true
|
|
2039
|
-
)
|
|
2040
1992
|
__TS__SetDescriptor(
|
|
2041
1993
|
Unit.prototype,
|
|
2042
1994
|
"onManaEqual",
|
|
@@ -2172,6 +2124,11 @@ __TS__SetDescriptor(
|
|
|
2172
2124
|
end},
|
|
2173
2125
|
true
|
|
2174
2126
|
)
|
|
2127
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2128
|
+
____exports.UnitTriggerEvent,
|
|
2129
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2130
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2131
|
+
)
|
|
2175
2132
|
Unit.deathEvent = __TS__New(
|
|
2176
2133
|
____exports.UnitTriggerEvent,
|
|
2177
2134
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2830,7 +2787,8 @@ Unit.synchronize = synchronizer(
|
|
|
2830
2787
|
return
|
|
2831
2788
|
end
|
|
2832
2789
|
end
|
|
2833
|
-
unit:
|
|
2790
|
+
unit:saveData()
|
|
2791
|
+
Timer:run(unit, "destroy")
|
|
2834
2792
|
end)
|
|
2835
2793
|
end
|
|
2836
2794
|
end)(Unit)
|
package/engine/local-client.d.ts
CHANGED
|
@@ -12,12 +12,17 @@ export declare class LocalClient {
|
|
|
12
12
|
static get isHD(): boolean;
|
|
13
13
|
static get graphicsMode(): GraphicsMode;
|
|
14
14
|
static get isActive(): boolean;
|
|
15
|
-
static
|
|
15
|
+
static get isMinimized(): boolean;
|
|
16
|
+
static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, flashy?: boolean] | [color: Color, flashy?: boolean]): void;
|
|
16
17
|
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
17
18
|
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
18
19
|
static get mainSelectedUnitChangeEvent(): Event<[
|
|
19
20
|
previousMainSelectedUnit: Unit | undefined,
|
|
20
21
|
newMainSelectedUnit: Unit | undefined
|
|
21
22
|
]>;
|
|
23
|
+
static get isInTargetingMode(): boolean;
|
|
24
|
+
static readonly targetingModeEnterEvent: Event<[]>;
|
|
25
|
+
static readonly targetingModeLeaveEvent: Event<[]>;
|
|
26
|
+
static readonly targetingModeStateChangeEvent: Event<[]>;
|
|
22
27
|
static readonly onDisconnect: TriggerEvent<[]>;
|
|
23
28
|
}
|
package/engine/local-client.lua
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
4
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
5
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
6
|
-
local __TS__New = ____lualib.__TS__New
|
|
7
7
|
local ____exports = {}
|
|
8
|
+
local actualizeTargetingModeState
|
|
8
9
|
local ____unit = require("core.types.unit")
|
|
9
10
|
local Unit = ____unit.Unit
|
|
10
11
|
local ____event = require("event")
|
|
@@ -18,6 +19,8 @@ local ____timer = require("core.types.timer")
|
|
|
18
19
|
local Timer = ____timer.Timer
|
|
19
20
|
local ____color = require("core.types.color")
|
|
20
21
|
local Color = ____color.Color
|
|
22
|
+
local ____arrays = require("utility.arrays")
|
|
23
|
+
local array = ____arrays.array
|
|
21
24
|
local loadTOCFile = BlzLoadTOCFile
|
|
22
25
|
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
23
26
|
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
@@ -62,12 +65,16 @@ local function compareUnitsSelectionPriority(a, b)
|
|
|
62
65
|
end
|
|
63
66
|
local mainSelectedUnitChangeEvent
|
|
64
67
|
local previousMainSelectedUnit
|
|
68
|
+
local lastTargetingModeState = false
|
|
69
|
+
local targetingModeEnterEvent = __TS__New(Event)
|
|
70
|
+
local targetingModeLeaveEvent = __TS__New(Event)
|
|
71
|
+
local targetingModeStateChangeEvent = __TS__New(Event)
|
|
65
72
|
____exports.LocalClient = __TS__Class()
|
|
66
73
|
local LocalClient = ____exports.LocalClient
|
|
67
74
|
LocalClient.name = "LocalClient"
|
|
68
75
|
function LocalClient.prototype.____constructor(self)
|
|
69
76
|
end
|
|
70
|
-
function LocalClient.pingMinimap(self, x, y, duration, redOrColor,
|
|
77
|
+
function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
|
|
71
78
|
if redOrColor == nil then
|
|
72
79
|
pingMinimap(x, y, duration)
|
|
73
80
|
elseif __TS__InstanceOf(redOrColor, Color) then
|
|
@@ -78,7 +85,7 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
|
|
|
78
85
|
redOrColor.r,
|
|
79
86
|
redOrColor.g,
|
|
80
87
|
redOrColor.b,
|
|
81
|
-
|
|
88
|
+
greenOrFlashy or false
|
|
82
89
|
)
|
|
83
90
|
else
|
|
84
91
|
pingMinimapEx(
|
|
@@ -86,9 +93,9 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
|
|
|
86
93
|
y,
|
|
87
94
|
duration,
|
|
88
95
|
redOrColor,
|
|
89
|
-
|
|
96
|
+
greenOrFlashy,
|
|
90
97
|
blue,
|
|
91
|
-
|
|
98
|
+
flashy or false
|
|
92
99
|
)
|
|
93
100
|
end
|
|
94
101
|
end
|
|
@@ -128,6 +135,13 @@ __TS__ObjectDefineProperty(
|
|
|
128
135
|
return isLocalClientActive()
|
|
129
136
|
end}
|
|
130
137
|
)
|
|
138
|
+
__TS__ObjectDefineProperty(
|
|
139
|
+
LocalClient,
|
|
140
|
+
"isMinimized",
|
|
141
|
+
{get = function(self)
|
|
142
|
+
return getLocalClientHeight() == 0
|
|
143
|
+
end}
|
|
144
|
+
)
|
|
131
145
|
__TS__ObjectDefineProperty(
|
|
132
146
|
LocalClient,
|
|
133
147
|
"mouseFocusUnit",
|
|
@@ -181,6 +195,16 @@ __TS__ObjectDefineProperty(
|
|
|
181
195
|
return mainSelectedUnitChangeEvent
|
|
182
196
|
end}
|
|
183
197
|
)
|
|
198
|
+
__TS__ObjectDefineProperty(
|
|
199
|
+
LocalClient,
|
|
200
|
+
"isInTargetingMode",
|
|
201
|
+
{get = function(self)
|
|
202
|
+
return actualizeTargetingModeState()
|
|
203
|
+
end}
|
|
204
|
+
)
|
|
205
|
+
LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
|
|
206
|
+
LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
|
|
207
|
+
LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
|
|
184
208
|
LocalClient.onDisconnect = __TS__New(
|
|
185
209
|
TriggerEvent,
|
|
186
210
|
function(trigger)
|
|
@@ -188,6 +212,37 @@ LocalClient.onDisconnect = __TS__New(
|
|
|
188
212
|
end,
|
|
189
213
|
function() return end
|
|
190
214
|
)
|
|
215
|
+
local commandButtons = array(
|
|
216
|
+
12,
|
|
217
|
+
function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
|
|
218
|
+
)
|
|
219
|
+
local function getTargetingModeState()
|
|
220
|
+
for i = 0, 10 do
|
|
221
|
+
if commandButtons[i + 1].visible then
|
|
222
|
+
return false
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
return commandButtons[12].visible
|
|
226
|
+
end
|
|
227
|
+
actualizeTargetingModeState = function()
|
|
228
|
+
if getTargetingModeState() then
|
|
229
|
+
if not lastTargetingModeState then
|
|
230
|
+
lastTargetingModeState = true
|
|
231
|
+
Event.invoke(targetingModeEnterEvent)
|
|
232
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
233
|
+
end
|
|
234
|
+
return true
|
|
235
|
+
end
|
|
236
|
+
if lastTargetingModeState then
|
|
237
|
+
lastTargetingModeState = false
|
|
238
|
+
Event.invoke(targetingModeLeaveEvent)
|
|
239
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
240
|
+
end
|
|
241
|
+
return false
|
|
242
|
+
end
|
|
243
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
244
|
+
actualizeTargetingModeState()
|
|
245
|
+
end)
|
|
191
246
|
warpack.afterMapInit(function()
|
|
192
247
|
rawset(
|
|
193
248
|
____exports.LocalClient,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
-
____exports.UnitAttribute = UnitAttribute or ({})
|
|
2
|
+
____exports.UnitAttribute = ____exports.UnitAttribute or ({})
|
|
3
3
|
____exports.UnitAttribute.STRENGTH = 1
|
|
4
4
|
____exports.UnitAttribute[____exports.UnitAttribute.STRENGTH] = "STRENGTH"
|
|
5
5
|
____exports.UnitAttribute.INTELLIGENCE = 2
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
3
|
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ArmorBonusAbilityType extends AbilityType {
|
|
5
5
|
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
-
get
|
|
7
|
-
set
|
|
6
|
+
get armorBonus(): number[];
|
|
7
|
+
set armorBonus(armorBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
8
|
}
|
|
@@ -5,20 +5,20 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
5
5
|
local ____exports = {}
|
|
6
6
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
7
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
-
____exports.
|
|
9
|
-
local
|
|
10
|
-
|
|
11
|
-
__TS__ClassExtends(
|
|
12
|
-
|
|
8
|
+
____exports.ArmorBonusAbilityType = __TS__Class()
|
|
9
|
+
local ArmorBonusAbilityType = ____exports.ArmorBonusAbilityType
|
|
10
|
+
ArmorBonusAbilityType.name = "ArmorBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(ArmorBonusAbilityType, AbilityType)
|
|
12
|
+
ArmorBonusAbilityType.BASE_ID = fourCC("AId1")
|
|
13
13
|
__TS__SetDescriptor(
|
|
14
|
-
|
|
15
|
-
"
|
|
14
|
+
ArmorBonusAbilityType.prototype,
|
|
15
|
+
"armorBonus",
|
|
16
16
|
{
|
|
17
17
|
get = function(self)
|
|
18
18
|
return self:getNumberLevelField("Idef")
|
|
19
19
|
end,
|
|
20
|
-
set = function(self,
|
|
21
|
-
self:setNumberLevelField("Idef",
|
|
20
|
+
set = function(self, armorBonus)
|
|
21
|
+
self:setNumberLevelField("Idef", armorBonus)
|
|
22
22
|
end
|
|
23
23
|
},
|
|
24
24
|
true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class HealthBonusAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get healthBonus(): number[];
|
|
7
|
+
set healthBonus(healthBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.HealthBonusAbilityType = __TS__Class()
|
|
9
|
+
local HealthBonusAbilityType = ____exports.HealthBonusAbilityType
|
|
10
|
+
HealthBonusAbilityType.name = "HealthBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(HealthBonusAbilityType, AbilityType)
|
|
12
|
+
HealthBonusAbilityType.BASE_ID = fourCC("AIlf")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
HealthBonusAbilityType.prototype,
|
|
15
|
+
"healthBonus",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ilif")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, healthBonus)
|
|
21
|
+
self:setNumberLevelField("Ilif", healthBonus)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ManaBonusAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get manaBonus(): number[];
|
|
7
|
+
set manaBonus(manaBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.ManaBonusAbilityType = __TS__Class()
|
|
9
|
+
local ManaBonusAbilityType = ____exports.ManaBonusAbilityType
|
|
10
|
+
ManaBonusAbilityType.name = "ManaBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(ManaBonusAbilityType, AbilityType)
|
|
12
|
+
ManaBonusAbilityType.BASE_ID = fourCC("AImb")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ManaBonusAbilityType.prototype,
|
|
15
|
+
"manaBonus",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Iman")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, manaBonus)
|
|
21
|
+
self:setNumberLevelField("Iman", manaBonus)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ManaRegenerationAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get manaRegenerationRateIncreaseFactor(): number[];
|
|
7
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.ManaRegenerationAbilityType = __TS__Class()
|
|
9
|
+
local ManaRegenerationAbilityType = ____exports.ManaRegenerationAbilityType
|
|
10
|
+
ManaRegenerationAbilityType.name = "ManaRegenerationAbilityType"
|
|
11
|
+
__TS__ClassExtends(ManaRegenerationAbilityType, AbilityType)
|
|
12
|
+
ManaRegenerationAbilityType.BASE_ID = fourCC("AIrn")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ManaRegenerationAbilityType.prototype,
|
|
15
|
+
"manaRegenerationRateIncreaseFactor",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Imrp")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
21
|
+
self:setNumberLevelField("Imrp", manaRegenerationRateIncreaseFactor)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ReincarnationAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get reincarnationDelay(): number[];
|
|
7
|
+
set reincarnationDelay(reincarnationDelay: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.ReincarnationAbilityType = __TS__Class()
|
|
9
|
+
local ReincarnationAbilityType = ____exports.ReincarnationAbilityType
|
|
10
|
+
ReincarnationAbilityType.name = "ReincarnationAbilityType"
|
|
11
|
+
__TS__ClassExtends(ReincarnationAbilityType, AbilityType)
|
|
12
|
+
ReincarnationAbilityType.BASE_ID = fourCC("AOre")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ReincarnationAbilityType.prototype,
|
|
15
|
+
"reincarnationDelay",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ore1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, reincarnationDelay)
|
|
21
|
+
self:setNumberLevelField("Ore1", reincarnationDelay)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|