warscript 0.0.1-dev.70ae346 → 0.0.1-dev.738793
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/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +91 -46
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/core/util.lua +6 -1
- package/decl/native.d.ts +840 -786
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +5 -1
- package/engine/behaviour/ability/damage.lua +2 -2
- package/engine/behaviour/ability/emulate-impact.lua +7 -0
- package/engine/behaviour/ability.d.ts +5 -1
- package/engine/behaviour/ability.lua +18 -4
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +13 -8
- package/engine/buff.lua +81 -50
- package/engine/internal/item.d.ts +2 -1
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/unit+damage.d.ts +1 -10
- package/engine/internal/unit+damage.lua +4 -13
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit.d.ts +14 -2
- package/engine/internal/unit.lua +54 -17
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +0 -9
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/curse.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +13 -11
- package/engine/object-data/entry/ability-type.lua +65 -6
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +2 -2
- package/engine/object-data/entry/unit-type.lua +94 -84
- package/engine/object-field/ability.d.ts +1 -1
- package/engine/object-field/unit.d.ts +46 -3
- package/engine/object-field/unit.lua +173 -7
- package/engine/object-field.d.ts +9 -1
- package/engine/object-field.lua +158 -76
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/objutil/buff.lua +1 -2
- package/package.json +2 -2
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +3 -0
- package/utility/functions.d.ts +1 -0
- package/utility/functions.lua +1 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +3 -0
- package/utility/lua-maps.d.ts +3 -0
- package/utility/lua-maps.lua +16 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -53,11 +53,15 @@ local ____math = require("math")
|
|
|
53
53
|
local min = ____math.min
|
|
54
54
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
55
|
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
56
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
57
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
58
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
56
59
|
local match = string.match
|
|
57
60
|
local ____tostring = _G.tostring
|
|
58
61
|
local setUnitAnimation = SetUnitAnimation
|
|
59
62
|
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
63
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
64
|
+
local resetUnitAnimation = ResetUnitAnimation
|
|
61
65
|
local queueUnitAnimation = QueueUnitAnimation
|
|
62
66
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
67
|
local getUnitRealField = BlzGetUnitRealField
|
|
@@ -80,7 +84,6 @@ local getHandleId = GetHandleId
|
|
|
80
84
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
85
|
local createUnit = CreateUnit
|
|
82
86
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
87
|
local removeUnit = RemoveUnit
|
|
85
88
|
local getUnitTypeId = GetUnitTypeId
|
|
86
89
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,8 +99,6 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
99
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
100
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
101
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
102
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
103
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
104
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
@@ -128,8 +129,6 @@ local isUnitType = IsUnitType
|
|
|
128
129
|
local isUnitAlly = IsUnitAlly
|
|
129
130
|
local isUnitEnemy = IsUnitEnemy
|
|
130
131
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
132
|
____exports.UnitClassification = {}
|
|
134
133
|
local UnitClassification = ____exports.UnitClassification
|
|
135
134
|
do
|
|
@@ -357,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
357
|
end
|
|
359
358
|
end
|
|
360
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
361
367
|
local jlimitopByOperator = {
|
|
362
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -680,6 +686,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
680
686
|
end
|
|
681
687
|
function Unit.prototype.onDestroy(self)
|
|
682
688
|
local handle = self.handle
|
|
689
|
+
self[107] = getUnitX(handle)
|
|
690
|
+
self[108] = getUnitY(handle)
|
|
683
691
|
if not self._owner then
|
|
684
692
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
693
|
end
|
|
@@ -795,6 +803,9 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
795
803
|
setUnitAnimation(self.handle, animation)
|
|
796
804
|
end
|
|
797
805
|
end
|
|
806
|
+
function Unit.prototype.resetAnimation(self)
|
|
807
|
+
resetUnitAnimation(self.handle)
|
|
808
|
+
end
|
|
798
809
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
810
|
queueUnitAnimation(self.handle, animation)
|
|
800
811
|
end
|
|
@@ -809,7 +820,7 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
820
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
821
|
end
|
|
811
822
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
823
|
+
SetUnitExploded(self.handle, true)
|
|
813
824
|
killUnit(self.handle)
|
|
814
825
|
end
|
|
815
826
|
function Unit.prototype.kill(self)
|
|
@@ -1286,6 +1297,19 @@ __TS__SetDescriptor(
|
|
|
1286
1297
|
},
|
|
1287
1298
|
true
|
|
1288
1299
|
)
|
|
1300
|
+
__TS__SetDescriptor(
|
|
1301
|
+
Unit.prototype,
|
|
1302
|
+
"primaryAttribute",
|
|
1303
|
+
{
|
|
1304
|
+
get = function(self)
|
|
1305
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1306
|
+
end,
|
|
1307
|
+
set = function(self, primaryAttribute)
|
|
1308
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1309
|
+
end
|
|
1310
|
+
},
|
|
1311
|
+
true
|
|
1312
|
+
)
|
|
1289
1313
|
__TS__SetDescriptor(
|
|
1290
1314
|
Unit.prototype,
|
|
1291
1315
|
"strengthBase",
|
|
@@ -1410,7 +1434,7 @@ __TS__SetDescriptor(
|
|
|
1410
1434
|
return not self[106]
|
|
1411
1435
|
end,
|
|
1412
1436
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1437
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1414
1438
|
local ____temp_6
|
|
1415
1439
|
if not isTeamGlowVisible then
|
|
1416
1440
|
____temp_6 = true
|
|
@@ -1426,9 +1450,9 @@ __TS__SetDescriptor(
|
|
|
1426
1450
|
Unit.prototype,
|
|
1427
1451
|
"color",
|
|
1428
1452
|
{set = function(self, color)
|
|
1429
|
-
|
|
1453
|
+
SetUnitColor(self.handle, color.handle)
|
|
1430
1454
|
if self[106] then
|
|
1431
|
-
|
|
1455
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1456
|
end
|
|
1433
1457
|
end},
|
|
1434
1458
|
true
|
|
@@ -1597,7 +1621,7 @@ __TS__SetDescriptor(
|
|
|
1597
1621
|
"x",
|
|
1598
1622
|
{
|
|
1599
1623
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1624
|
+
return self[107] or getUnitX(self.handle)
|
|
1601
1625
|
end,
|
|
1602
1626
|
set = function(self, v)
|
|
1603
1627
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1634,7 @@ __TS__SetDescriptor(
|
|
|
1610
1634
|
"y",
|
|
1611
1635
|
{
|
|
1612
1636
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1637
|
+
return self[108] or getUnitY(self.handle)
|
|
1614
1638
|
end,
|
|
1615
1639
|
set = function(self, v)
|
|
1616
1640
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1720,10 @@ __TS__SetDescriptor(
|
|
|
1696
1720
|
"gold",
|
|
1697
1721
|
{
|
|
1698
1722
|
get = function(self)
|
|
1699
|
-
return
|
|
1723
|
+
return GetResourceAmount(self.handle)
|
|
1700
1724
|
end,
|
|
1701
1725
|
set = function(self, gold)
|
|
1702
|
-
|
|
1726
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1727
|
end
|
|
1704
1728
|
},
|
|
1705
1729
|
true
|
|
@@ -1827,6 +1851,19 @@ __TS__SetDescriptor(
|
|
|
1827
1851
|
end},
|
|
1828
1852
|
true
|
|
1829
1853
|
)
|
|
1854
|
+
__TS__SetDescriptor(
|
|
1855
|
+
Unit.prototype,
|
|
1856
|
+
"movementType",
|
|
1857
|
+
{
|
|
1858
|
+
get = function(self)
|
|
1859
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1860
|
+
end,
|
|
1861
|
+
set = function(self, movementType)
|
|
1862
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1863
|
+
end
|
|
1864
|
+
},
|
|
1865
|
+
true
|
|
1866
|
+
)
|
|
1830
1867
|
__TS__SetDescriptor(
|
|
1831
1868
|
Unit.prototype,
|
|
1832
1869
|
"pathing",
|
|
@@ -2372,7 +2409,7 @@ Unit.onDamaging = (function()
|
|
|
2372
2409
|
local target = BlzGetEventDamageTarget()
|
|
2373
2410
|
local data = {
|
|
2374
2411
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2412
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2413
|
damageType = BlzGetEventDamageType(),
|
|
2377
2414
|
weaponType = BlzGetEventWeaponType(),
|
|
2378
2415
|
isAttack = BlzGetEventIsAttack()
|
|
@@ -2440,7 +2477,7 @@ Unit.onDamaging = (function()
|
|
|
2440
2477
|
data.amount,
|
|
2441
2478
|
true,
|
|
2442
2479
|
true,
|
|
2443
|
-
data.attackType,
|
|
2480
|
+
attackTypeToNative(data.attackType),
|
|
2444
2481
|
data.damageType,
|
|
2445
2482
|
data.weaponType
|
|
2446
2483
|
)
|
|
@@ -2469,7 +2506,7 @@ Unit.onDamage = __TS__New(
|
|
|
2469
2506
|
end
|
|
2470
2507
|
local data = {
|
|
2471
2508
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2509
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2510
|
damageType = BlzGetEventDamageType(),
|
|
2474
2511
|
weaponType = BlzGetEventWeaponType(),
|
|
2475
2512
|
isAttack = BlzGetEventIsAttack(),
|
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
import { ModelNodeName } from "./model-node-name";
|
|
3
3
|
import { ModelNodeQualifier } from "./model-node-qualifier";
|
|
4
4
|
import { Optional } from "../../../utility/types";
|
|
5
|
+
import { EffectParameters } from "../../../core/types/effect";
|
|
5
6
|
export type AttachmentPreset = {
|
|
6
7
|
modelPath: string;
|
|
7
8
|
nodeName: ModelNodeName;
|
|
8
9
|
nodeQualifiers: ModelNodeQualifier[];
|
|
9
10
|
};
|
|
10
|
-
export type
|
|
11
|
-
|
|
11
|
+
export type EffectPresetWithParameters = AttachmentPreset & {
|
|
12
|
+
parameters?: EffectParameters;
|
|
13
|
+
};
|
|
14
|
+
export type AttachmentPresetInput<T extends AttachmentPreset = AttachmentPreset> = Optional<T, "nodeName" | "nodeQualifiers"> | string;
|
|
15
|
+
export type EffectPresetWithParametersInput = AttachmentPresetInput<EffectPresetWithParameters>;
|
|
16
|
+
export declare const toEffectPreset: (effectPresetInput: EffectPresetWithParametersInput) => EffectPresetWithParameters;
|
|
12
17
|
export declare const extractAttachmentPresetInputModelPath: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
|
|
13
18
|
export declare const extractAttachmentPresetInputNodeFQN: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
|
|
14
19
|
export declare const splitAttachmentNodeFQN: (attachmentNodeFQN: string) => LuaMultiReturn<[attachmentNodeName: ModelNodeName, attachmentNodeQualifiers: ModelNodeQualifier[]]>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__ArrayJoin = ____lualib.__TS__ArrayJoin
|
|
2
3
|
local __TS__StringSplit = ____lualib.__TS__StringSplit
|
|
3
4
|
local __TS__ArraySlice = ____lualib.__TS__ArraySlice
|
|
4
5
|
local ____exports = {}
|
|
5
|
-
____exports.
|
|
6
|
-
return type(
|
|
6
|
+
____exports.toEffectPreset = function(effectPresetInput)
|
|
7
|
+
return type(effectPresetInput) == "string" and ({modelPath = effectPresetInput, nodeName = "origin", nodeQualifiers = {}}) or ({modelPath = effectPresetInput.modelPath, nodeName = effectPresetInput.nodeName or "origin", nodeQualifiers = effectPresetInput.nodeQualifiers or ({}), parameters = effectPresetInput.parameters})
|
|
7
8
|
end
|
|
8
9
|
____exports.extractAttachmentPresetInputModelPath = function(attachmentPresetInput)
|
|
9
10
|
return type(attachmentPresetInput) == "string" and attachmentPresetInput or (attachmentPresetInput and attachmentPresetInput.modelPath or "")
|
|
@@ -12,7 +13,7 @@ ____exports.extractAttachmentPresetInputNodeFQN = function(attachmentPresetInput
|
|
|
12
13
|
if type(attachmentPresetInput) == "string" or attachmentPresetInput == nil then
|
|
13
14
|
return ""
|
|
14
15
|
end
|
|
15
|
-
return
|
|
16
|
+
return __TS__ArrayJoin(
|
|
16
17
|
{
|
|
17
18
|
attachmentPresetInput.nodeName,
|
|
18
19
|
table.unpack(attachmentPresetInput.nodeQualifiers or ({}))
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
export declare const enum AttackType {
|
|
3
|
-
|
|
4
|
-
NORMAL =
|
|
5
|
-
PIERCE =
|
|
6
|
-
SIEGE =
|
|
7
|
-
|
|
8
|
-
CHAOS =
|
|
9
|
-
|
|
10
|
-
HERO = "hero"
|
|
3
|
+
SPELL = 0,
|
|
4
|
+
NORMAL = 1,
|
|
5
|
+
PIERCE = 2,
|
|
6
|
+
SIEGE = 3,
|
|
7
|
+
MAGIC = 4,
|
|
8
|
+
CHAOS = 5,
|
|
9
|
+
HERO = 6
|
|
11
10
|
}
|
|
@@ -1,2 +1,44 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local ____records = require("utility.records")
|
|
3
|
+
local invertRecord = ____records.invertRecord
|
|
4
|
+
local stringByAttackType = {
|
|
5
|
+
[1] = "normal",
|
|
6
|
+
[2] = "pierce",
|
|
7
|
+
[3] = "siege",
|
|
8
|
+
[0] = "spells",
|
|
9
|
+
[5] = "chaos",
|
|
10
|
+
[4] = "magic",
|
|
11
|
+
[6] = "hero"
|
|
12
|
+
}
|
|
13
|
+
local attackTypeByString = invertRecord(stringByAttackType)
|
|
14
|
+
local nativeByAttackType = {
|
|
15
|
+
[1] = ATTACK_TYPE_MELEE,
|
|
16
|
+
[2] = ATTACK_TYPE_PIERCE,
|
|
17
|
+
[3] = ATTACK_TYPE_SIEGE,
|
|
18
|
+
[0] = ATTACK_TYPE_NORMAL,
|
|
19
|
+
[5] = ATTACK_TYPE_CHAOS,
|
|
20
|
+
[4] = ATTACK_TYPE_MAGIC,
|
|
21
|
+
[6] = ATTACK_TYPE_HERO
|
|
22
|
+
}
|
|
23
|
+
local attackTypeByNative = invertRecord(nativeByAttackType)
|
|
24
|
+
---
|
|
25
|
+
-- @internal For use by internal systems only.
|
|
26
|
+
____exports.attackTypeToString = function(attackType)
|
|
27
|
+
return attackType ~= nil and stringByAttackType[attackType] or "unknown"
|
|
28
|
+
end
|
|
29
|
+
---
|
|
30
|
+
-- @internal For use by internal systems only.
|
|
31
|
+
____exports.stringToAttackType = function(____string)
|
|
32
|
+
return attackTypeByString[____string]
|
|
33
|
+
end
|
|
34
|
+
---
|
|
35
|
+
-- @internal For use by internal systems only.
|
|
36
|
+
____exports.attackTypeToNative = function(attackType)
|
|
37
|
+
return nativeByAttackType[attackType]
|
|
38
|
+
end
|
|
39
|
+
---
|
|
40
|
+
-- @internal For use by internal systems only.
|
|
41
|
+
____exports.nativeToAttackType = function(attackType)
|
|
42
|
+
return attackTypeByNative[attackType]
|
|
43
|
+
end
|
|
2
44
|
return ____exports
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
export declare const enum MovementType {
|
|
3
|
-
NONE =
|
|
4
|
-
|
|
5
|
-
FLY =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
AMPHIBIOUS =
|
|
3
|
+
NONE = 0,
|
|
4
|
+
FOOT = 1,
|
|
5
|
+
FLY = 2,
|
|
6
|
+
HORSE = 4,
|
|
7
|
+
HOVER = 8,
|
|
8
|
+
FLOAT = 16,
|
|
9
|
+
AMPHIBIOUS = 32
|
|
10
10
|
}
|
|
@@ -1,2 +1,24 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local ____records = require("utility.records")
|
|
3
|
+
local invertRecord = ____records.invertRecord
|
|
4
|
+
local stringByMovementType = {
|
|
5
|
+
[0] = "",
|
|
6
|
+
[16] = "float",
|
|
7
|
+
[2] = "fly",
|
|
8
|
+
[1] = "foot",
|
|
9
|
+
[4] = "horse",
|
|
10
|
+
[8] = "hover",
|
|
11
|
+
[32] = "amph"
|
|
12
|
+
}
|
|
13
|
+
local movementTypeByString = invertRecord(stringByMovementType)
|
|
14
|
+
---
|
|
15
|
+
-- @internal For use by internal systems only.
|
|
16
|
+
____exports.movementTypeToString = function(movementType)
|
|
17
|
+
return stringByMovementType[movementType]
|
|
18
|
+
end
|
|
19
|
+
---
|
|
20
|
+
-- @internal For use by internal systems only.
|
|
21
|
+
____exports.stringToMovementType = function(____string)
|
|
22
|
+
return movementTypeByString[____string] or 0
|
|
23
|
+
end
|
|
2
24
|
return ____exports
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
export declare const enum SoundEax {
|
|
3
|
+
DEFAULT = "DefaultEAXON",
|
|
4
|
+
ACKNOWLEDGEMENTS = "HeroAcksEAX",
|
|
5
|
+
ENVIRONMENT = "DoodadsEAX",
|
|
6
|
+
DRUMS = "KotoDrumsEAX",
|
|
7
|
+
ATTACKS = "CombatSoundsEAX",
|
|
8
|
+
ABILITIES = "SpellsEAX",
|
|
9
|
+
MISSILES = "MissilesEAX"
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
____exports.UnitAttribute = UnitAttribute or ({})
|
|
3
|
+
____exports.UnitAttribute.STRENGTH = 1
|
|
4
|
+
____exports.UnitAttribute[____exports.UnitAttribute.STRENGTH] = "STRENGTH"
|
|
5
|
+
____exports.UnitAttribute.INTELLIGENCE = 2
|
|
6
|
+
____exports.UnitAttribute[____exports.UnitAttribute.INTELLIGENCE] = "INTELLIGENCE"
|
|
7
|
+
____exports.UnitAttribute.AGILITY = 3
|
|
8
|
+
____exports.UnitAttribute[____exports.UnitAttribute.AGILITY] = "AGILITY"
|
|
9
|
+
return ____exports
|
|
@@ -7,4 +7,6 @@ export declare class BerserkAbilityType extends AbilityType {
|
|
|
7
7
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
8
|
get attackSpeedIncreaseFactor(): number[];
|
|
9
9
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
get receivedDamageIncreaseFactor(): number[];
|
|
11
|
+
set receivedDamageIncreaseFactor(receivedDamageIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
12
|
}
|
|
@@ -36,4 +36,17 @@ __TS__SetDescriptor(
|
|
|
36
36
|
},
|
|
37
37
|
true
|
|
38
38
|
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
BerserkAbilityType.prototype,
|
|
41
|
+
"receivedDamageIncreaseFactor",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getNumberLevelField("bsk3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, receivedDamageIncreaseFactor)
|
|
47
|
+
self:setNumberLevelField("bsk3", receivedDamageIncreaseFactor)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
39
52
|
return ____exports
|
|
@@ -23,9 +23,6 @@ local ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD = ____ability.A
|
|
|
23
23
|
local AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD = ____ability.AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD
|
|
24
24
|
local ____linked_2Dset = require("utility.linked-set")
|
|
25
25
|
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
26
|
-
local ____sound = require("core.types.sound")
|
|
27
|
-
local Sound3D = ____sound.Sound3D
|
|
28
|
-
local SoundPreset = ____sound.SoundPreset
|
|
29
26
|
local isChannelingAbilityTypeIds = {}
|
|
30
27
|
local usesAttackAnimationByAbilityTypeId = {}
|
|
31
28
|
____exports.BlankConfigurableAbilityType = __TS__Class()
|
|
@@ -230,12 +227,6 @@ for abilityTypeId, usesAttackAnimation in pairs(postcompile(function()
|
|
|
230
227
|
end
|
|
231
228
|
return usesAttackAnimationByAbilityTypeId
|
|
232
229
|
end)) do
|
|
233
|
-
Unit.abilityCastingFinishEvent[abilityTypeId]:addListener(function(caster, ability)
|
|
234
|
-
local effectSound = ability:getField(ABILITY_SF_EFFECT_SOUND)
|
|
235
|
-
if effectSound ~= "" then
|
|
236
|
-
Sound3D:playFromLabel(effectSound, SoundPreset.Ability, caster)
|
|
237
|
-
end
|
|
238
|
-
end)
|
|
239
230
|
if usesAttackAnimation then
|
|
240
231
|
Unit.abilityCastingStartEvent[abilityTypeId]:addListener(
|
|
241
232
|
4,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class CarrionSwarmAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get damagePerTarget(): number[];
|
|
7
|
+
set damagePerTarget(damagePerTarget: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get maximumTotalDamage(): number[];
|
|
9
|
+
set maximumTotalDamage(maximumTotalDamage: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
get distance(): number[];
|
|
11
|
+
set distance(distance: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
get finalAreaOfEffect(): number[];
|
|
13
|
+
set finalAreaOfEffect(finalAreaOfEffect: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
14
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
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.CarrionSwarmAbilityType = __TS__Class()
|
|
9
|
+
local CarrionSwarmAbilityType = ____exports.CarrionSwarmAbilityType
|
|
10
|
+
CarrionSwarmAbilityType.name = "CarrionSwarmAbilityType"
|
|
11
|
+
__TS__ClassExtends(CarrionSwarmAbilityType, AbilityType)
|
|
12
|
+
CarrionSwarmAbilityType.BASE_ID = fourCC("AUcs")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
CarrionSwarmAbilityType.prototype,
|
|
15
|
+
"damagePerTarget",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ucs1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, damagePerTarget)
|
|
21
|
+
self:setNumberLevelField("Ucs1", damagePerTarget)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
CarrionSwarmAbilityType.prototype,
|
|
28
|
+
"maximumTotalDamage",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Ucs2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, maximumTotalDamage)
|
|
34
|
+
self:setNumberLevelField("Ucs2", maximumTotalDamage)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
CarrionSwarmAbilityType.prototype,
|
|
41
|
+
"distance",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getNumberLevelField("Ucs3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, distance)
|
|
47
|
+
self:setNumberLevelField("Ucs3", distance)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
52
|
+
__TS__SetDescriptor(
|
|
53
|
+
CarrionSwarmAbilityType.prototype,
|
|
54
|
+
"finalAreaOfEffect",
|
|
55
|
+
{
|
|
56
|
+
get = function(self)
|
|
57
|
+
return self:getNumberLevelField("Ucs4")
|
|
58
|
+
end,
|
|
59
|
+
set = function(self, finalAreaOfEffect)
|
|
60
|
+
self:setNumberLevelField("Ucs4", finalAreaOfEffect)
|
|
61
|
+
end
|
|
62
|
+
},
|
|
63
|
+
true
|
|
64
|
+
)
|
|
65
|
+
return ____exports
|
|
@@ -15,10 +15,10 @@ __TS__SetDescriptor(
|
|
|
15
15
|
"missProbability",
|
|
16
16
|
{
|
|
17
17
|
get = function(self)
|
|
18
|
-
return self:getNumberLevelField("Crs
|
|
18
|
+
return self:getNumberLevelField("Crs")
|
|
19
19
|
end,
|
|
20
20
|
set = function(self, missProbability)
|
|
21
|
-
self:setNumberLevelField("Crs
|
|
21
|
+
self:setNumberLevelField("Crs", missProbability)
|
|
22
22
|
end
|
|
23
23
|
},
|
|
24
24
|
true
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class EnsnareAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get airUnitLoweringDuration(): number[];
|
|
7
|
+
set airUnitLoweringDuration(airUnitLoweringDuration: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get airUnitHeight(): number[];
|
|
9
|
+
set airUnitHeight(airUnitHeight: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
get meleeAttackRange(): number[];
|
|
11
|
+
set meleeAttackRange(meleeAttackRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
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.EnsnareAbilityType = __TS__Class()
|
|
9
|
+
local EnsnareAbilityType = ____exports.EnsnareAbilityType
|
|
10
|
+
EnsnareAbilityType.name = "EnsnareAbilityType"
|
|
11
|
+
__TS__ClassExtends(EnsnareAbilityType, AbilityType)
|
|
12
|
+
EnsnareAbilityType.BASE_ID = fourCC("Aens")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
EnsnareAbilityType.prototype,
|
|
15
|
+
"airUnitLoweringDuration",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ens1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, airUnitLoweringDuration)
|
|
21
|
+
self:setNumberLevelField("Ens1", airUnitLoweringDuration)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
EnsnareAbilityType.prototype,
|
|
28
|
+
"airUnitHeight",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Ens2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, airUnitHeight)
|
|
34
|
+
self:setNumberLevelField("Ens2", airUnitHeight)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
EnsnareAbilityType.prototype,
|
|
41
|
+
"meleeAttackRange",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getNumberLevelField("Ens3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, meleeAttackRange)
|
|
47
|
+
self:setNumberLevelField("Ens3", meleeAttackRange)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
52
|
+
return ____exports
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class PhaseShiftAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get movementSpeedDecreaseFactor(): number[];
|
|
7
|
+
set movementSpeedDecreaseFactor(movementSpeedDecreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get attackSpeedDecreaseFactor(): number[];
|
|
9
|
+
set attackSpeedDecreaseFactor(attackSpeedDecreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.PhaseShiftAbilityType = __TS__Class()
|
|
9
|
+
local PhaseShiftAbilityType = ____exports.PhaseShiftAbilityType
|
|
10
|
+
PhaseShiftAbilityType.name = "PhaseShiftAbilityType"
|
|
11
|
+
__TS__ClassExtends(PhaseShiftAbilityType, AbilityType)
|
|
12
|
+
PhaseShiftAbilityType.BASE_ID = fourCC("Apsh")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
PhaseShiftAbilityType.prototype,
|
|
15
|
+
"movementSpeedDecreaseFactor",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Hbn1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, movementSpeedDecreaseFactor)
|
|
21
|
+
self:setNumberLevelField("Hbn1", movementSpeedDecreaseFactor)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
PhaseShiftAbilityType.prototype,
|
|
28
|
+
"attackSpeedDecreaseFactor",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Hbn2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, attackSpeedDecreaseFactor)
|
|
34
|
+
self:setNumberLevelField("Hbn2", attackSpeedDecreaseFactor)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
return ____exports
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
import { UnitTypeId } from "../unit-type";
|
|
5
|
+
export declare class RaiseDeadAbilityType extends AbilityType {
|
|
6
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
7
|
+
get firstSummonedUnitCount(): number[];
|
|
8
|
+
set firstSummonedUnitCount(firstSummonedUnitCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
9
|
+
get secondSummonedUnitCount(): number[];
|
|
10
|
+
set secondSummonedUnitCount(secondSummonedUnitCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
11
|
+
get firstSummonedUnitTypeId(): UnitTypeId[];
|
|
12
|
+
set firstSummonedUnitTypeId(firstSummonedUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
13
|
+
get secondSummonedUnitTypeId(): UnitTypeId[];
|
|
14
|
+
set secondSummonedUnitTypeId(secondSummonedUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
15
|
+
get limitCheckUnitTypeId(): UnitTypeId[];
|
|
16
|
+
set limitCheckUnitTypeId(limitCheckUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
17
|
+
}
|