warscript 0.0.1-dev.bcab4e5 → 0.0.1-dev.bed79a4
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 +24 -21
- package/core/types/player.lua +3 -1
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/timer.d.ts +2 -1
- package/core/types/timer.lua +21 -2
- package/decl/native.d.ts +6 -4
- package/engine/behavior.d.ts +5 -0
- package/engine/behavior.lua +106 -27
- package/engine/behaviour/ability/apply-buff.lua +1 -1
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +11 -3
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.lua +8 -17
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +26 -2
- package/engine/behaviour/unit.lua +128 -11
- package/engine/buff.d.ts +2 -4
- package/engine/buff.lua +68 -83
- package/engine/internal/ability.d.ts +5 -1
- package/engine/internal/ability.lua +44 -11
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +4 -4
- package/engine/internal/item.lua +97 -26
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +63 -1
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit-missile-launch.lua +8 -1
- package/engine/internal/unit.d.ts +7 -6
- package/engine/internal/unit.lua +103 -73
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/entry/ability-type.lua +1 -3
- package/engine/object-data/entry/unit-type.d.ts +11 -2
- package/engine/object-data/entry/unit-type.lua +59 -1
- package/engine/object-field/ability.d.ts +3 -3
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +11 -0
- package/engine/object-field/unit.lua +34 -0
- package/engine/object-field.d.ts +8 -5
- package/engine/object-field.lua +90 -76
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +249 -10
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/callback-array.d.ts +13 -0
- package/utility/callback-array.lua +46 -0
- package/utility/functions.d.ts +7 -0
- package/utility/functions.lua +12 -0
- package/utility/lua-maps.d.ts +1 -0
- package/utility/lua-maps.lua +4 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -0
- package/core/types/order.d.ts +0 -26
- package/core/types/order.lua +0 -65
package/engine/internal/unit.lua
CHANGED
|
@@ -60,6 +60,8 @@ local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage
|
|
|
60
60
|
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
61
61
|
local ____attributes = require("attributes")
|
|
62
62
|
local isAttribute = ____attributes.isAttribute
|
|
63
|
+
local ____ability = require("engine.internal.item.ability")
|
|
64
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
65
|
local match = string.match
|
|
64
66
|
local ____tostring = _G.tostring
|
|
65
67
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -123,10 +125,6 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
123
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
124
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
125
127
|
local unitAlive = UnitAlive
|
|
126
|
-
local unitAddType = UnitAddType
|
|
127
|
-
local unitRemoveType = UnitRemoveType
|
|
128
|
-
local isUnitIllusion = IsUnitIllusion
|
|
129
|
-
local isUnitType = IsUnitType
|
|
130
128
|
local isUnitAlly = IsUnitAlly
|
|
131
129
|
local isUnitEnemy = IsUnitEnemy
|
|
132
130
|
local getOwningPlayer = GetOwningPlayer
|
|
@@ -665,15 +663,24 @@ end
|
|
|
665
663
|
local nextSyncId = 1
|
|
666
664
|
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
667
665
|
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
666
|
+
local function addAbility(unit, abilityTypeId)
|
|
667
|
+
local ____unitAddAbility_result_0
|
|
668
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
669
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
670
|
+
else
|
|
671
|
+
____unitAddAbility_result_0 = nil
|
|
672
|
+
end
|
|
673
|
+
return ____unitAddAbility_result_0
|
|
674
|
+
end
|
|
668
675
|
____exports.Unit = __TS__Class()
|
|
669
676
|
local Unit = ____exports.Unit
|
|
670
677
|
Unit.name = "Unit"
|
|
671
678
|
__TS__ClassExtends(Unit, Handle)
|
|
672
679
|
function Unit.prototype.____constructor(self, handle)
|
|
673
680
|
Handle.prototype.____constructor(self, handle)
|
|
674
|
-
local
|
|
675
|
-
nextSyncId =
|
|
676
|
-
self.syncId =
|
|
681
|
+
local ____nextSyncId_1 = nextSyncId
|
|
682
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
683
|
+
self.syncId = ____nextSyncId_1
|
|
677
684
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
678
685
|
assert(unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId))
|
|
679
686
|
assert(unitAddAbility(handle, morphDetectAbilityId))
|
|
@@ -774,17 +781,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
774
781
|
end}
|
|
775
782
|
end
|
|
776
783
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
777
|
-
local
|
|
778
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
784
|
+
local ____combatClassification_2 = combatClassification
|
|
785
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
779
786
|
end
|
|
780
787
|
function Unit.prototype.addClassification(self, classification)
|
|
781
|
-
return
|
|
788
|
+
return UnitAddType(self.handle, classification)
|
|
782
789
|
end
|
|
783
790
|
function Unit.prototype.removeClassification(self, classification)
|
|
784
|
-
return
|
|
791
|
+
return UnitRemoveType(self.handle, classification)
|
|
785
792
|
end
|
|
786
793
|
function Unit.prototype.hasClassification(self, classification)
|
|
787
|
-
return
|
|
794
|
+
return IsUnitType(self.handle, classification)
|
|
788
795
|
end
|
|
789
796
|
function Unit.prototype.isVisibleTo(self, player)
|
|
790
797
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -793,13 +800,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
793
800
|
return isUnitInvisible(self.handle, player.handle)
|
|
794
801
|
end
|
|
795
802
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
796
|
-
local
|
|
803
|
+
local ____temp_3
|
|
797
804
|
if type(x) == "number" then
|
|
798
|
-
|
|
805
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
799
806
|
else
|
|
800
|
-
|
|
807
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
801
808
|
end
|
|
802
|
-
return
|
|
809
|
+
return ____temp_3
|
|
803
810
|
end
|
|
804
811
|
function Unit.prototype.isAllyOf(self, unit)
|
|
805
812
|
return isUnitAlly(
|
|
@@ -855,14 +862,14 @@ function Unit.prototype.kill(self)
|
|
|
855
862
|
killUnit(self.handle)
|
|
856
863
|
end
|
|
857
864
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
858
|
-
local
|
|
859
|
-
local
|
|
860
|
-
local
|
|
861
|
-
if
|
|
862
|
-
|
|
865
|
+
local ____ReviveHero_6 = ReviveHero
|
|
866
|
+
local ____array_5 = __TS__SparseArrayNew(self.handle, x, y)
|
|
867
|
+
local ____doEffect_4 = doEffect
|
|
868
|
+
if ____doEffect_4 == nil then
|
|
869
|
+
____doEffect_4 = false
|
|
863
870
|
end
|
|
864
|
-
__TS__SparseArrayPush(
|
|
865
|
-
|
|
871
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
872
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
866
873
|
end
|
|
867
874
|
function Unit.prototype.healTarget(self, target, amount)
|
|
868
875
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -905,17 +912,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
905
912
|
return Item:of(unitItemInSlot(self.handle, slot))
|
|
906
913
|
end
|
|
907
914
|
function Unit.prototype.addAbility(self, abilityId)
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
915
|
+
local ability = UnitAbility:of(
|
|
916
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
917
|
+
abilityId,
|
|
918
|
+
self
|
|
919
|
+
)
|
|
920
|
+
if ability ~= nil then
|
|
914
921
|
local abilities = self.abilities
|
|
915
922
|
abilities[#abilities + 1] = ability
|
|
916
|
-
return ability
|
|
917
923
|
end
|
|
918
|
-
return
|
|
924
|
+
return ability
|
|
919
925
|
end
|
|
920
926
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
921
927
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -929,31 +935,21 @@ end
|
|
|
929
935
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
930
936
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
931
937
|
end
|
|
932
|
-
function Unit.prototype.
|
|
933
|
-
local
|
|
934
|
-
|
|
935
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
936
|
-
return nil
|
|
937
|
-
end
|
|
938
|
-
return UnitAbility:of(
|
|
939
|
-
getUnitAbility(self.handle, abilityId),
|
|
940
|
-
abilityId,
|
|
941
|
-
self
|
|
942
|
-
)
|
|
938
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
939
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
940
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
943
941
|
end
|
|
944
|
-
function Unit.prototype.removeAbility(self,
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
end
|
|
942
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
943
|
+
local abilities = self.abilities
|
|
944
|
+
for i = 1, #abilities do
|
|
945
|
+
if abilities[i].typeId == abilityTypeId then
|
|
946
|
+
local ability = abilities[i]
|
|
947
|
+
tremove(abilities, i)
|
|
948
|
+
ability:destroy()
|
|
949
|
+
return true
|
|
953
950
|
end
|
|
954
|
-
return true
|
|
955
951
|
end
|
|
956
|
-
return
|
|
952
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
957
953
|
end
|
|
958
954
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
959
955
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -967,6 +963,21 @@ end
|
|
|
967
963
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
968
964
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
969
965
|
end
|
|
966
|
+
function Unit.prototype.interruptMovement(self)
|
|
967
|
+
local handle = self.handle
|
|
968
|
+
unitDisableAbility(
|
|
969
|
+
handle,
|
|
970
|
+
fourCC("Amov"),
|
|
971
|
+
true,
|
|
972
|
+
false
|
|
973
|
+
)
|
|
974
|
+
unitDisableAbility(
|
|
975
|
+
handle,
|
|
976
|
+
fourCC("Amov"),
|
|
977
|
+
false,
|
|
978
|
+
false
|
|
979
|
+
)
|
|
980
|
+
end
|
|
970
981
|
function Unit.prototype.interruptAttack(self)
|
|
971
982
|
unitInterruptAttack(self.handle)
|
|
972
983
|
end
|
|
@@ -1240,7 +1251,7 @@ __TS__SetDescriptor(
|
|
|
1240
1251
|
Unit.prototype,
|
|
1241
1252
|
"isIllusion",
|
|
1242
1253
|
{get = function(self)
|
|
1243
|
-
return
|
|
1254
|
+
return IsUnitIllusion(self.handle)
|
|
1244
1255
|
end},
|
|
1245
1256
|
true
|
|
1246
1257
|
)
|
|
@@ -1463,13 +1474,13 @@ __TS__SetDescriptor(
|
|
|
1463
1474
|
end,
|
|
1464
1475
|
set = function(self, isTeamGlowVisible)
|
|
1465
1476
|
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1466
|
-
local
|
|
1477
|
+
local ____temp_7
|
|
1467
1478
|
if not isTeamGlowVisible then
|
|
1468
|
-
|
|
1479
|
+
____temp_7 = true
|
|
1469
1480
|
else
|
|
1470
|
-
|
|
1481
|
+
____temp_7 = nil
|
|
1471
1482
|
end
|
|
1472
|
-
self[106] =
|
|
1483
|
+
self[106] = ____temp_7
|
|
1473
1484
|
end
|
|
1474
1485
|
},
|
|
1475
1486
|
true
|
|
@@ -2216,25 +2227,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2216
2227
|
InitializingEvent,
|
|
2217
2228
|
function(event)
|
|
2218
2229
|
local function listener(unit, id)
|
|
2219
|
-
local
|
|
2230
|
+
local ____GetSpellTargetUnit_result_10
|
|
2220
2231
|
if GetSpellTargetUnit() then
|
|
2221
|
-
|
|
2232
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2222
2233
|
else
|
|
2223
|
-
local
|
|
2234
|
+
local ____GetSpellTargetItem_result_9
|
|
2224
2235
|
if GetSpellTargetItem() then
|
|
2225
|
-
|
|
2236
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2226
2237
|
else
|
|
2227
|
-
local
|
|
2238
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2228
2239
|
if GetSpellTargetDestructable() then
|
|
2229
|
-
|
|
2240
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2230
2241
|
else
|
|
2231
|
-
|
|
2242
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2232
2243
|
end
|
|
2233
|
-
|
|
2244
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2234
2245
|
end
|
|
2235
|
-
|
|
2246
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2236
2247
|
end
|
|
2237
|
-
local target =
|
|
2248
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2238
2249
|
if target then
|
|
2239
2250
|
invoke(event, unit, id, target)
|
|
2240
2251
|
end
|
|
@@ -2657,10 +2668,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2657
2668
|
____exports.UnitTriggerEvent,
|
|
2658
2669
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2659
2670
|
function()
|
|
2660
|
-
local
|
|
2661
|
-
local
|
|
2662
|
-
if getUnitTypeId(
|
|
2663
|
-
|
|
2671
|
+
local unitHandle = getTriggerUnit()
|
|
2672
|
+
local itemHandle = getManipulatedItem()
|
|
2673
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (ignoreEventsItems[itemHandle] ~= nil) then
|
|
2674
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2675
|
+
local item = Item:of(itemHandle)
|
|
2676
|
+
if item.owner ~= unit then
|
|
2677
|
+
return unit, item
|
|
2678
|
+
end
|
|
2664
2679
|
end
|
|
2665
2680
|
return IgnoreEvent
|
|
2666
2681
|
end
|
|
@@ -2680,7 +2695,22 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2680
2695
|
Unit.itemStackedEvent = __TS__New(
|
|
2681
2696
|
____exports.UnitTriggerEvent,
|
|
2682
2697
|
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2683
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(
|
|
2698
|
+
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2699
|
+
)
|
|
2700
|
+
__TS__ObjectDefineProperty(
|
|
2701
|
+
Unit,
|
|
2702
|
+
"itemChargesChangedEvent",
|
|
2703
|
+
{get = function(self)
|
|
2704
|
+
local event = __TS__New(Event)
|
|
2705
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2706
|
+
local unit = item.owner
|
|
2707
|
+
if unit ~= nil then
|
|
2708
|
+
invoke(event, unit, item)
|
|
2709
|
+
end
|
|
2710
|
+
end)
|
|
2711
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2712
|
+
return event
|
|
2713
|
+
end}
|
|
2684
2714
|
)
|
|
2685
2715
|
__TS__ObjectDefineProperty(
|
|
2686
2716
|
Unit,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____records = require("utility.records")
|
|
3
|
+
local invertRecord = ____records.invertRecord
|
|
4
|
+
local stringByArmorType = {
|
|
5
|
+
[0] = "small",
|
|
6
|
+
[1] = "medium",
|
|
7
|
+
[2] = "large",
|
|
8
|
+
[3] = "fort",
|
|
9
|
+
[4] = "normal",
|
|
10
|
+
[5] = "hero",
|
|
11
|
+
[6] = "divine",
|
|
12
|
+
[7] = "none"
|
|
13
|
+
}
|
|
14
|
+
local armorTypeByString = invertRecord(stringByArmorType)
|
|
15
|
+
local nativeByArmorType = {
|
|
16
|
+
[0] = DEFENSE_TYPE_LIGHT,
|
|
17
|
+
[1] = DEFENSE_TYPE_MEDIUM,
|
|
18
|
+
[2] = DEFENSE_TYPE_LARGE,
|
|
19
|
+
[3] = DEFENSE_TYPE_FORT,
|
|
20
|
+
[4] = DEFENSE_TYPE_NORMAL,
|
|
21
|
+
[5] = DEFENSE_TYPE_HERO,
|
|
22
|
+
[6] = DEFENSE_TYPE_DIVINE,
|
|
23
|
+
[7] = DEFENSE_TYPE_NONE
|
|
24
|
+
}
|
|
25
|
+
local armorTypeByNative = invertRecord(nativeByArmorType)
|
|
26
|
+
---
|
|
27
|
+
-- @internal For use by internal systems only.
|
|
28
|
+
____exports.armorTypeToString = function(armorType)
|
|
29
|
+
return stringByArmorType[armorType]
|
|
30
|
+
end
|
|
31
|
+
---
|
|
32
|
+
-- @internal For use by internal systems only.
|
|
33
|
+
____exports.stringToArmorType = function(____string)
|
|
34
|
+
return armorTypeByString[____string] or 7
|
|
35
|
+
end
|
|
36
|
+
---
|
|
37
|
+
-- @internal For use by internal systems only.
|
|
38
|
+
____exports.armorTypeToNative = function(armorType)
|
|
39
|
+
return nativeByArmorType[armorType]
|
|
40
|
+
end
|
|
41
|
+
---
|
|
42
|
+
-- @internal For use by internal systems only.
|
|
43
|
+
____exports.nativeToArmorType = function(armorType)
|
|
44
|
+
return armorTypeByNative[armorType]
|
|
45
|
+
end
|
|
46
|
+
return ____exports
|
|
@@ -979,9 +979,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
|
|
|
979
979
|
4,
|
|
980
980
|
function(caster, ability)
|
|
981
981
|
if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
|
|
982
|
-
Timer:run(
|
|
983
|
-
caster:playAnimation(animationFQN)
|
|
984
|
-
end)
|
|
982
|
+
Timer:run(caster, "playAnimation", animationFQN)
|
|
985
983
|
end
|
|
986
984
|
end
|
|
987
985
|
)
|
|
@@ -13,6 +13,7 @@ import type { AbilityTypeId } from "./ability-type";
|
|
|
13
13
|
import type { UpgradeId } from "./upgrade";
|
|
14
14
|
import { AnimationQualifier } from "../auxiliary/animation-qualifier";
|
|
15
15
|
import { AttackType } from "../auxiliary/attack-type";
|
|
16
|
+
import { ArmorType } from "../auxiliary/armor-type";
|
|
16
17
|
export type UnitTypeId = ObjectDataEntryId & number & {
|
|
17
18
|
readonly __unitTypeId: unique symbol;
|
|
18
19
|
};
|
|
@@ -144,6 +145,8 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
|
|
|
144
145
|
set runSpeedSD(runSpeedSD: number);
|
|
145
146
|
get runSpeedHD(): number;
|
|
146
147
|
set runSpeedHD(runSpeedHD: number);
|
|
148
|
+
get selectionCircleHeight(): number;
|
|
149
|
+
set selectionCircleHeight(height: number);
|
|
147
150
|
get selectionCircleScale(): number;
|
|
148
151
|
set selectionCircleScale(selectionCircleScale: number);
|
|
149
152
|
get selectionCircleScaleSD(): number;
|
|
@@ -182,16 +185,20 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
|
|
|
182
185
|
set walkSpeedSD(walkSpeedSD: number);
|
|
183
186
|
get walkSpeedHD(): number;
|
|
184
187
|
set walkSpeedHD(walkSpeedHD: number);
|
|
188
|
+
get armor(): number;
|
|
189
|
+
set armor(armor: number);
|
|
185
190
|
get armorSoundType(): ArmorSoundType;
|
|
186
191
|
set armorSoundType(armorSoundType: ArmorSoundType);
|
|
187
192
|
get armorSoundTypeSD(): ArmorSoundType;
|
|
188
193
|
set armorSoundTypeSD(armorSoundTypeSD: ArmorSoundType);
|
|
189
194
|
get armorSoundTypeHD(): ArmorSoundType;
|
|
190
195
|
set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
|
|
196
|
+
get armorType(): ArmorType;
|
|
197
|
+
set armorType(armorType: ArmorType);
|
|
191
198
|
get combatClassifications(): CombatClassifications;
|
|
192
199
|
set combatClassifications(combatClassifications: CombatClassifications);
|
|
193
|
-
get
|
|
194
|
-
set
|
|
200
|
+
get classifications(): UnitClassifications;
|
|
201
|
+
set classifications(unitClassifications: UnitClassifications);
|
|
195
202
|
get weapons(): TupleOf<UnitTypeWeapon, 2>;
|
|
196
203
|
get firstWeapon(): UnitTypeWeapon;
|
|
197
204
|
get secondWeapon(): UnitTypeWeapon;
|
|
@@ -225,6 +232,8 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
|
|
|
225
232
|
set goldCost(goldCost: number);
|
|
226
233
|
get healthRegenerationRate(): number;
|
|
227
234
|
set healthRegenerationRate(healthRegenerationRate: number);
|
|
235
|
+
get level(): number;
|
|
236
|
+
set level(level: number);
|
|
228
237
|
get manaRegenerationRate(): number;
|
|
229
238
|
set manaRegenerationRate(manaRegenerationRate: number);
|
|
230
239
|
get maximumHealth(): number;
|
|
@@ -27,6 +27,9 @@ local attackTypeToString = ____attack_2Dtype.attackTypeToString
|
|
|
27
27
|
local stringToAttackType = ____attack_2Dtype.stringToAttackType
|
|
28
28
|
local ____config = require("config")
|
|
29
29
|
local WarscriptConfig = ____config.WarscriptConfig
|
|
30
|
+
local ____armor_2Dtype = require("engine.object-data.auxiliary.armor-type")
|
|
31
|
+
local armorTypeToString = ____armor_2Dtype.armorTypeToString
|
|
32
|
+
local stringToArmorType = ____armor_2Dtype.stringToArmorType
|
|
30
33
|
local getOrCreateUnitTypeWeapons
|
|
31
34
|
____exports.UnitTypeWeapon = __TS__Class()
|
|
32
35
|
local UnitTypeWeapon = ____exports.UnitTypeWeapon
|
|
@@ -936,6 +939,19 @@ __TS__SetDescriptor(
|
|
|
936
939
|
},
|
|
937
940
|
true
|
|
938
941
|
)
|
|
942
|
+
__TS__SetDescriptor(
|
|
943
|
+
UnitType.prototype,
|
|
944
|
+
"selectionCircleHeight",
|
|
945
|
+
{
|
|
946
|
+
get = function(self)
|
|
947
|
+
return self:getNumberField("uslz")
|
|
948
|
+
end,
|
|
949
|
+
set = function(self, height)
|
|
950
|
+
self:setNumberField("uslz", height)
|
|
951
|
+
end
|
|
952
|
+
},
|
|
953
|
+
true
|
|
954
|
+
)
|
|
939
955
|
__TS__SetDescriptor(
|
|
940
956
|
UnitType.prototype,
|
|
941
957
|
"selectionCircleScale",
|
|
@@ -1183,6 +1199,19 @@ __TS__SetDescriptor(
|
|
|
1183
1199
|
},
|
|
1184
1200
|
true
|
|
1185
1201
|
)
|
|
1202
|
+
__TS__SetDescriptor(
|
|
1203
|
+
UnitType.prototype,
|
|
1204
|
+
"armor",
|
|
1205
|
+
{
|
|
1206
|
+
get = function(self)
|
|
1207
|
+
return self:getNumberField("udef")
|
|
1208
|
+
end,
|
|
1209
|
+
set = function(self, armor)
|
|
1210
|
+
self:setNumberField("udef", armor)
|
|
1211
|
+
end
|
|
1212
|
+
},
|
|
1213
|
+
true
|
|
1214
|
+
)
|
|
1186
1215
|
__TS__SetDescriptor(
|
|
1187
1216
|
UnitType.prototype,
|
|
1188
1217
|
"armorSoundType",
|
|
@@ -1222,6 +1251,22 @@ __TS__SetDescriptor(
|
|
|
1222
1251
|
},
|
|
1223
1252
|
true
|
|
1224
1253
|
)
|
|
1254
|
+
__TS__SetDescriptor(
|
|
1255
|
+
UnitType.prototype,
|
|
1256
|
+
"armorType",
|
|
1257
|
+
{
|
|
1258
|
+
get = function(self)
|
|
1259
|
+
return stringToArmorType(self:getStringField("udty"))
|
|
1260
|
+
end,
|
|
1261
|
+
set = function(self, armorType)
|
|
1262
|
+
self:setStringField(
|
|
1263
|
+
"udty",
|
|
1264
|
+
armorTypeToString(armorType)
|
|
1265
|
+
)
|
|
1266
|
+
end
|
|
1267
|
+
},
|
|
1268
|
+
true
|
|
1269
|
+
)
|
|
1225
1270
|
__TS__SetDescriptor(
|
|
1226
1271
|
UnitType.prototype,
|
|
1227
1272
|
"combatClassifications",
|
|
@@ -1240,7 +1285,7 @@ __TS__SetDescriptor(
|
|
|
1240
1285
|
)
|
|
1241
1286
|
__TS__SetDescriptor(
|
|
1242
1287
|
UnitType.prototype,
|
|
1243
|
-
"
|
|
1288
|
+
"classifications",
|
|
1244
1289
|
{
|
|
1245
1290
|
get = function(self)
|
|
1246
1291
|
return stringArrayToUnitClassifications(self:getStringsField("utyp"))
|
|
@@ -1476,6 +1521,19 @@ __TS__SetDescriptor(
|
|
|
1476
1521
|
},
|
|
1477
1522
|
true
|
|
1478
1523
|
)
|
|
1524
|
+
__TS__SetDescriptor(
|
|
1525
|
+
UnitType.prototype,
|
|
1526
|
+
"level",
|
|
1527
|
+
{
|
|
1528
|
+
get = function(self)
|
|
1529
|
+
return self:getNumberField("ulev")
|
|
1530
|
+
end,
|
|
1531
|
+
set = function(self, level)
|
|
1532
|
+
self:setNumberField("ulev", level)
|
|
1533
|
+
end
|
|
1534
|
+
},
|
|
1535
|
+
true
|
|
1536
|
+
)
|
|
1479
1537
|
__TS__SetDescriptor(
|
|
1480
1538
|
UnitType.prototype,
|
|
1481
1539
|
"manaRegenerationRate",
|
|
@@ -12,7 +12,7 @@ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
|
12
12
|
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
13
13
|
protected get instanceClass(): typeof Ability;
|
|
14
14
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
15
|
-
protected hasNativeFieldValue(
|
|
15
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
16
16
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
|
|
17
17
|
}
|
|
18
18
|
export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
|
|
@@ -48,7 +48,7 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
|
|
|
48
48
|
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
49
49
|
protected get instanceClass(): typeof Ability;
|
|
50
50
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
51
|
-
protected hasNativeFieldValue(
|
|
51
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
52
52
|
}
|
|
53
53
|
export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
|
|
54
54
|
protected get defaultValue(): string;
|
|
@@ -68,7 +68,7 @@ export declare abstract class AbilityLevelField<ValueType extends number | strin
|
|
|
68
68
|
protected get instanceClass(): typeof Ability;
|
|
69
69
|
protected getLevelCount(entry: AbilityType | Ability): number;
|
|
70
70
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
71
|
-
protected hasNativeFieldValue(
|
|
71
|
+
protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
|
|
72
72
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
|
|
73
73
|
}
|
|
74
74
|
export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
|
|
@@ -7,6 +7,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
|
7
7
|
local ____exports = {}
|
|
8
8
|
local ____ability = require("engine.internal.ability")
|
|
9
9
|
local Ability = ____ability.Ability
|
|
10
|
+
local abilityTypeHasField = ____ability.abilityTypeHasField
|
|
10
11
|
local ____object_2Dfield = require("engine.object-field")
|
|
11
12
|
local ObjectArrayField = ____object_2Dfield.ObjectArrayField
|
|
12
13
|
local ObjectField = ____object_2Dfield.ObjectField
|
|
@@ -29,8 +30,8 @@ __TS__ClassExtends(AbilityField, ObjectField)
|
|
|
29
30
|
function AbilityField.prototype.getObjectDataEntryId(self, instance)
|
|
30
31
|
return instance.typeId
|
|
31
32
|
end
|
|
32
|
-
function AbilityField.prototype.hasNativeFieldValue(self,
|
|
33
|
-
return
|
|
33
|
+
function AbilityField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
34
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
34
35
|
end
|
|
35
36
|
__TS__SetDescriptor(
|
|
36
37
|
AbilityField.prototype,
|
|
@@ -197,8 +198,8 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
|
|
|
197
198
|
function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
|
|
198
199
|
return instance.typeId
|
|
199
200
|
end
|
|
200
|
-
function AbilityArrayField.prototype.hasNativeFieldValue(self,
|
|
201
|
-
return
|
|
201
|
+
function AbilityArrayField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
202
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
202
203
|
end
|
|
203
204
|
__TS__SetDescriptor(
|
|
204
205
|
AbilityArrayField.prototype,
|
|
@@ -269,8 +270,8 @@ end
|
|
|
269
270
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
270
271
|
return instance.typeId
|
|
271
272
|
end
|
|
272
|
-
function AbilityLevelField.prototype.hasNativeFieldValue(self,
|
|
273
|
-
return
|
|
273
|
+
function AbilityLevelField.prototype.hasNativeFieldValue(self, abilityTypeId)
|
|
274
|
+
return abilityTypeHasField(abilityTypeId, self.nativeField)
|
|
274
275
|
end
|
|
275
276
|
__TS__SetDescriptor(
|
|
276
277
|
AbilityLevelField.prototype,
|
|
@@ -4,6 +4,7 @@ import { ObjectField, ObjectLevelField, ObjectLevelFieldValueChangeEvent, Readon
|
|
|
4
4
|
import { UnitType, UnitTypeId } from "../object-data/entry/unit-type";
|
|
5
5
|
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
6
6
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
7
|
+
import { UnitClassifications } from "../object-data/auxiliary/unit-classification";
|
|
7
8
|
export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
|
|
8
9
|
protected get instanceClass(): typeof Unit;
|
|
9
10
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
@@ -56,4 +57,14 @@ export declare abstract class UnitEnumWeaponField<T extends number> extends Unit
|
|
|
56
57
|
export declare class UnitAttackTypeWeaponField extends UnitEnumWeaponField<AttackType> {
|
|
57
58
|
protected values: ReadonlyNonEmptyLinkedSet<AttackType>;
|
|
58
59
|
}
|
|
60
|
+
export declare class UnitClassificationsField extends UnitField<UnitClassifications, junitintegerfield> {
|
|
61
|
+
protected get defaultValue(): UnitClassifications;
|
|
62
|
+
protected getNativeFieldById(id: number): junitintegerfield;
|
|
63
|
+
protected getNativeFieldValue(instance: Unit): UnitClassifications;
|
|
64
|
+
protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare class UnitPropulsionWindowField extends UnitFloatField {
|
|
67
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
68
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
69
|
+
}
|
|
59
70
|
export {};
|
|
@@ -18,6 +18,8 @@ local convertUnitStringField = ConvertUnitStringField
|
|
|
18
18
|
local convertUnitWeaponIntegerField = ConvertUnitWeaponIntegerField
|
|
19
19
|
local getUnitWeaponIntegerField = BlzGetUnitWeaponIntegerField
|
|
20
20
|
local setUnitWeaponIntegerField = BlzSetUnitWeaponIntegerField
|
|
21
|
+
local getUnitPropulsionWindow = GetUnitPropWindow
|
|
22
|
+
local setUnitPropulsionWindow = SetUnitPropWindow
|
|
21
23
|
____exports.UnitField = __TS__Class()
|
|
22
24
|
local UnitField = ____exports.UnitField
|
|
23
25
|
UnitField.name = "UnitField"
|
|
@@ -215,4 +217,36 @@ function UnitAttackTypeWeaponField.prototype.____constructor(self, ...)
|
|
|
215
217
|
6
|
|
216
218
|
)
|
|
217
219
|
end
|
|
220
|
+
____exports.UnitClassificationsField = __TS__Class()
|
|
221
|
+
local UnitClassificationsField = ____exports.UnitClassificationsField
|
|
222
|
+
UnitClassificationsField.name = "UnitClassificationsField"
|
|
223
|
+
__TS__ClassExtends(UnitClassificationsField, ____exports.UnitField)
|
|
224
|
+
function UnitClassificationsField.prototype.getNativeFieldById(self, id)
|
|
225
|
+
return convertUnitIntegerField(id)
|
|
226
|
+
end
|
|
227
|
+
function UnitClassificationsField.prototype.getNativeFieldValue(self, instance)
|
|
228
|
+
return instance:getField(self.nativeField)
|
|
229
|
+
end
|
|
230
|
+
function UnitClassificationsField.prototype.setNativeFieldValue(self, instance, value)
|
|
231
|
+
return instance:setField(self.nativeField, value)
|
|
232
|
+
end
|
|
233
|
+
__TS__SetDescriptor(
|
|
234
|
+
UnitClassificationsField.prototype,
|
|
235
|
+
"defaultValue",
|
|
236
|
+
{get = function(self)
|
|
237
|
+
return 0
|
|
238
|
+
end},
|
|
239
|
+
true
|
|
240
|
+
)
|
|
241
|
+
____exports.UnitPropulsionWindowField = __TS__Class()
|
|
242
|
+
local UnitPropulsionWindowField = ____exports.UnitPropulsionWindowField
|
|
243
|
+
UnitPropulsionWindowField.name = "UnitPropulsionWindowField"
|
|
244
|
+
__TS__ClassExtends(UnitPropulsionWindowField, ____exports.UnitFloatField)
|
|
245
|
+
function UnitPropulsionWindowField.prototype.getNativeFieldValue(self, instance)
|
|
246
|
+
return getUnitPropulsionWindow(instance.handle)
|
|
247
|
+
end
|
|
248
|
+
function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance, value)
|
|
249
|
+
setUnitPropulsionWindow(instance.handle, value)
|
|
250
|
+
return true
|
|
251
|
+
end
|
|
218
252
|
return ____exports
|