warscript 0.0.1-dev.9eab2af → 0.0.1-dev.9ee7706
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +94 -24
- package/core/util.lua +6 -1
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +2 -2
- package/engine/behaviour/ability.d.ts +1 -0
- package/engine/behaviour/ability.lua +14 -1
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +53 -41
- package/engine/buff.lua +280 -228
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/unit/add-item-to-slot.lua +4 -2
- package/engine/internal/unit.d.ts +6 -1
- package/engine/internal/unit.lua +8 -2
- package/engine/lightning.d.ts +4 -3
- package/engine/lightning.lua +21 -12
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/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/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.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/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +8 -6
- package/engine/object-data/entry/ability-type.lua +54 -15
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- package/engine/object-data/entry/buff-type.d.ts +1 -1
- package/engine/object-data/entry/buff-type.lua +2 -2
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +8 -1
- package/engine/object-data/entry/unit-type.lua +61 -8
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/utility/reflection.lua +11 -7
|
@@ -78,9 +78,9 @@ export declare class Item extends Handle<jitem> {
|
|
|
78
78
|
hasAbility(abilityTypeId: AbilityTypeId): boolean;
|
|
79
79
|
getAbility(abilityTypeId: AbilityTypeId): ItemAbility | undefined;
|
|
80
80
|
get abilities(): readonly ItemAbility[];
|
|
81
|
-
static getInRange(
|
|
81
|
+
static getInRange(x: number, y: number, range: number): Item[];
|
|
82
82
|
static getInRect(rect: ReadonlyRect): Item[];
|
|
83
83
|
static get onCreate(): Event<[Item]>;
|
|
84
|
-
static get
|
|
84
|
+
static get destroyEvent(): Event<[Item]>;
|
|
85
85
|
}
|
|
86
86
|
export {};
|
package/engine/internal/item.lua
CHANGED
|
@@ -15,6 +15,12 @@ local ____ability = require("engine.internal.ability")
|
|
|
15
15
|
local ItemAbility = ____ability.ItemAbility
|
|
16
16
|
local ____ability = require("engine.internal.item.ability")
|
|
17
17
|
local doAbilityAction = ____ability.doAbilityAction
|
|
18
|
+
local ____dummy_2Ditem = require("engine.internal.object-data.dummy-item")
|
|
19
|
+
local DUMMY_ITEM_ID = ____dummy_2Ditem.DUMMY_ITEM_ID
|
|
20
|
+
local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
|
|
21
|
+
local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
|
|
22
|
+
local ____vec2 = require("math.vec2")
|
|
23
|
+
local distance = ____vec2.distance
|
|
18
24
|
local itemAddAbility = BlzItemAddAbility
|
|
19
25
|
local itemRemoveAbility = BlzItemRemoveAbility
|
|
20
26
|
local getItemAbility = BlzGetItemAbility
|
|
@@ -24,6 +30,12 @@ local getAbilityId = BlzGetAbilityId
|
|
|
24
30
|
local getWidgetLife = GetWidgetLife
|
|
25
31
|
local removeItem = RemoveItem
|
|
26
32
|
local getHandleId = GetHandleId
|
|
33
|
+
local setRect = SetRect
|
|
34
|
+
local enumItemsInRect = EnumItemsInRect
|
|
35
|
+
local getEnumItem = GetEnumItem
|
|
36
|
+
local getItemTypeId = GetItemTypeId
|
|
37
|
+
local getItemX = GetItemX
|
|
38
|
+
local getItemY = GetItemY
|
|
27
39
|
local getItemIntegerField = BlzGetItemIntegerField
|
|
28
40
|
local setItemBooleanField = BlzSetItemBooleanField
|
|
29
41
|
local getItemBooleanField = BlzGetItemBooleanField
|
|
@@ -53,6 +65,32 @@ local function getItemAbilities(handle, item)
|
|
|
53
65
|
end
|
|
54
66
|
return abilities
|
|
55
67
|
end
|
|
68
|
+
local targetCollection
|
|
69
|
+
local targetCollectionNextIndex
|
|
70
|
+
local centerX
|
|
71
|
+
local centerY
|
|
72
|
+
local enumRange
|
|
73
|
+
local function collectIntoTarget()
|
|
74
|
+
local item = getEnumItem()
|
|
75
|
+
local typeId = getItemTypeId(item)
|
|
76
|
+
if typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
77
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
78
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
local function collectIntoTargetRange()
|
|
82
|
+
local item = getEnumItem()
|
|
83
|
+
local typeId = getItemTypeId(item)
|
|
84
|
+
if distance(
|
|
85
|
+
getItemX(item),
|
|
86
|
+
getItemY(item),
|
|
87
|
+
centerX,
|
|
88
|
+
centerY
|
|
89
|
+
) <= enumRange and typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
90
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
91
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
92
|
+
end
|
|
93
|
+
end
|
|
56
94
|
____exports.Item = __TS__Class()
|
|
57
95
|
local Item = ____exports.Item
|
|
58
96
|
Item.name = "Item"
|
|
@@ -111,34 +149,27 @@ function Item.prototype.getAbility(self, abilityTypeId)
|
|
|
111
149
|
local ability = self[101][abilityTypeId] ~= nil and doAbilityAction(self.handle, getItemAbility, abilityTypeId)
|
|
112
150
|
return ability and ItemAbility:of(ability, abilityTypeId, self) or nil
|
|
113
151
|
end
|
|
114
|
-
function Item.getInRange(self,
|
|
115
|
-
|
|
116
|
-
|
|
152
|
+
function Item.getInRange(self, x, y, range)
|
|
153
|
+
targetCollection = {}
|
|
154
|
+
targetCollectionNextIndex = 1
|
|
155
|
+
centerX = x
|
|
156
|
+
centerY = y
|
|
157
|
+
enumRange = range
|
|
158
|
+
setRect(
|
|
117
159
|
enumRect,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
160
|
+
x - range,
|
|
161
|
+
y - range,
|
|
162
|
+
x + range,
|
|
163
|
+
y + range
|
|
122
164
|
)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
nil,
|
|
126
|
-
function()
|
|
127
|
-
collection[#collection + 1] = self:of(GetEnumItem())
|
|
128
|
-
end
|
|
129
|
-
)
|
|
130
|
-
return collection
|
|
165
|
+
enumItemsInRect(enumRect, nil, collectIntoTargetRange)
|
|
166
|
+
return targetCollection
|
|
131
167
|
end
|
|
132
168
|
function Item.getInRect(self, rect)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function()
|
|
138
|
-
collection[#collection + 1] = self:of(GetEnumItem())
|
|
139
|
-
end
|
|
140
|
-
)
|
|
141
|
-
return collection
|
|
169
|
+
targetCollection = {}
|
|
170
|
+
targetCollectionNextIndex = 1
|
|
171
|
+
enumItemsInRect(rect.handle, nil, collectIntoTarget)
|
|
172
|
+
return targetCollection
|
|
142
173
|
end
|
|
143
174
|
__TS__SetDescriptor(
|
|
144
175
|
Item.prototype,
|
|
@@ -551,7 +582,7 @@ __TS__ObjectDefineProperty(
|
|
|
551
582
|
)
|
|
552
583
|
__TS__ObjectDefineProperty(
|
|
553
584
|
Item,
|
|
554
|
-
"
|
|
585
|
+
"destroyEvent",
|
|
555
586
|
{get = function(self)
|
|
556
587
|
return self.onDestroyEvent
|
|
557
588
|
end}
|
|
@@ -8,6 +8,6 @@ local DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_NORMAL_AB
|
|
|
8
8
|
-- @internal For use by internal systems only.
|
|
9
9
|
____exports.getAbilityDuration = function(ability, target)
|
|
10
10
|
local level = ability.level
|
|
11
|
-
return target ~= nil and target:hasClassification(UnitClassification.RESISTANT) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
|
|
11
|
+
return target ~= nil and (target.isHero or target:getField(UNIT_IF_LEVEL) >= 6 or target:hasClassification(UnitClassification.RESISTANT)) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
|
|
12
12
|
end
|
|
13
13
|
return ____exports
|
|
@@ -9,7 +9,9 @@ local setItemVisible = SetItemVisible
|
|
|
9
9
|
local unitAddItem = UnitAddItem
|
|
10
10
|
local unitItemInSlot = UnitItemInSlot
|
|
11
11
|
local unitRemoveItem = UnitRemoveItem
|
|
12
|
-
|
|
12
|
+
---
|
|
13
|
+
-- @internal For use by internal systems only.
|
|
14
|
+
____exports.SLOT_FILLER_ITEM_TYPE_ID = compiletime(function()
|
|
13
15
|
local itemType = BlankItemType:create()
|
|
14
16
|
itemType.name = "[Warscript/Dummy] Slot Filler"
|
|
15
17
|
return itemType.id
|
|
@@ -19,7 +21,7 @@ end)
|
|
|
19
21
|
____exports.fillerItems = array(
|
|
20
22
|
6,
|
|
21
23
|
function()
|
|
22
|
-
local item = CreateItem(
|
|
24
|
+
local item = CreateItem(____exports.SLOT_FILLER_ITEM_TYPE_ID, 0, 0)
|
|
23
25
|
setItemVisible(item, false)
|
|
24
26
|
ignoreEventsItems[item] = true
|
|
25
27
|
return item
|
|
@@ -100,7 +100,9 @@ declare const enum UnitPropertyKey {
|
|
|
100
100
|
DELAY_HEALTH_CHECKS_COUNTER = 103,
|
|
101
101
|
DELAY_HEALTH_CHECKS_HEALTH_BONUS = 104,
|
|
102
102
|
PREVENT_DEATH_HEALTH_BONUS = 105,
|
|
103
|
-
IS_TEAM_GLOW_HIDDEN = 106
|
|
103
|
+
IS_TEAM_GLOW_HIDDEN = 106,
|
|
104
|
+
LAST_X = 107,
|
|
105
|
+
LAST_Y = 108
|
|
104
106
|
}
|
|
105
107
|
export type UnitSyncId = number & {
|
|
106
108
|
readonly __unitSyncId: unique symbol;
|
|
@@ -113,6 +115,8 @@ export declare class Unit extends Handle<junit> {
|
|
|
113
115
|
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
|
|
114
116
|
private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
|
|
115
117
|
private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
|
|
118
|
+
private [UnitPropertyKey.LAST_X]?;
|
|
119
|
+
private [UnitPropertyKey.LAST_Y]?;
|
|
116
120
|
private _owner?;
|
|
117
121
|
private _timeScale?;
|
|
118
122
|
private events?;
|
|
@@ -148,6 +152,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
148
152
|
isEnemyOf(unit: Unit): boolean;
|
|
149
153
|
playAnimation(animation: string, rarity?: jraritycontrol): void;
|
|
150
154
|
playAnimation(animation: number): void;
|
|
155
|
+
resetAnimation(): void;
|
|
151
156
|
queueAnimation(animation: string): void;
|
|
152
157
|
get weapons(): [UnitWeapon, UnitWeapon];
|
|
153
158
|
get firstWeapon(): UnitWeapon;
|
package/engine/internal/unit.lua
CHANGED
|
@@ -58,6 +58,7 @@ local ____tostring = _G.tostring
|
|
|
58
58
|
local setUnitAnimation = SetUnitAnimation
|
|
59
59
|
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
60
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
+
local resetUnitAnimation = ResetUnitAnimation
|
|
61
62
|
local queueUnitAnimation = QueueUnitAnimation
|
|
62
63
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
64
|
local getUnitRealField = BlzGetUnitRealField
|
|
@@ -680,6 +681,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
680
681
|
end
|
|
681
682
|
function Unit.prototype.onDestroy(self)
|
|
682
683
|
local handle = self.handle
|
|
684
|
+
self[107] = getUnitX(handle)
|
|
685
|
+
self[108] = getUnitY(handle)
|
|
683
686
|
if not self._owner then
|
|
684
687
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
688
|
end
|
|
@@ -795,6 +798,9 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
795
798
|
setUnitAnimation(self.handle, animation)
|
|
796
799
|
end
|
|
797
800
|
end
|
|
801
|
+
function Unit.prototype.resetAnimation(self)
|
|
802
|
+
resetUnitAnimation(self.handle)
|
|
803
|
+
end
|
|
798
804
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
805
|
queueUnitAnimation(self.handle, animation)
|
|
800
806
|
end
|
|
@@ -1597,7 +1603,7 @@ __TS__SetDescriptor(
|
|
|
1597
1603
|
"x",
|
|
1598
1604
|
{
|
|
1599
1605
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1606
|
+
return self[107] or getUnitX(self.handle)
|
|
1601
1607
|
end,
|
|
1602
1608
|
set = function(self, v)
|
|
1603
1609
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1616,7 @@ __TS__SetDescriptor(
|
|
|
1610
1616
|
"y",
|
|
1611
1617
|
{
|
|
1612
1618
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1619
|
+
return self[108] or getUnitY(self.handle)
|
|
1614
1620
|
end,
|
|
1615
1621
|
set = function(self, v)
|
|
1616
1622
|
SetUnitY(self.handle, v)
|
package/engine/lightning.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { LightningTypeId } from "./object-data/entry/lightning-type";
|
|
3
|
-
import { Handle, HandleDestructor } from "../core/types/handle";
|
|
4
3
|
import { Unit } from "../core/types/unit";
|
|
4
|
+
import { AbstractDestroyable, Destructor } from "../destroyable";
|
|
5
5
|
declare const enum LightningPropertyKey {
|
|
6
6
|
CHECK_VISIBILITY = 100,
|
|
7
7
|
SOURCE_UNIT = 101,
|
|
@@ -16,7 +16,8 @@ declare const enum LightningPropertyKey {
|
|
|
16
16
|
FADING = 110
|
|
17
17
|
}
|
|
18
18
|
export type LightningConstructor<T extends Lightning> = typeof Lightning & (new (handle: jlightning, typeId: LightningTypeId) => T);
|
|
19
|
-
export declare class Lightning extends
|
|
19
|
+
export declare class Lightning extends AbstractDestroyable {
|
|
20
|
+
readonly handle: jlightning;
|
|
20
21
|
readonly typeId: LightningTypeId;
|
|
21
22
|
private [LightningPropertyKey.CHECK_VISIBILITY]?;
|
|
22
23
|
private [LightningPropertyKey.SOURCE_UNIT]?;
|
|
@@ -30,7 +31,7 @@ export declare class Lightning extends Handle<jlightning> {
|
|
|
30
31
|
private [LightningPropertyKey.DURATION]?;
|
|
31
32
|
private [LightningPropertyKey.FADING]?;
|
|
32
33
|
constructor(handle: jlightning, typeId: LightningTypeId);
|
|
33
|
-
protected onDestroy():
|
|
34
|
+
protected onDestroy(): Destructor;
|
|
34
35
|
static create<T extends Lightning>(this: LightningConstructor<T>, typeId: LightningTypeId, ...parameters: [
|
|
35
36
|
...checkVisibility: [boolean] | [],
|
|
36
37
|
...sourceAndTarget: [sourceX: number, sourceY: number, targetX: number, targetY: number] | [
|
package/engine/lightning.lua
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
5
|
local ____exports = {}
|
|
5
|
-
local ____handle = require("core.types.handle")
|
|
6
|
-
local Handle = ____handle.Handle
|
|
7
6
|
local ____timer = require("core.types.timer")
|
|
8
7
|
local Timer = ____timer.Timer
|
|
9
8
|
local ____functions = require("utility.functions")
|
|
10
9
|
local forwardByN = ____functions.forwardByN
|
|
11
10
|
local ____unit_2Dmissile_2Ddata = require("engine.internal.unit-missile-data")
|
|
12
11
|
local MISSILE_DATA_BY_UNIT_TYPE_ID = ____unit_2Dmissile_2Ddata.MISSILE_DATA_BY_UNIT_TYPE_ID
|
|
12
|
+
local ____destroyable = require("destroyable")
|
|
13
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
13
14
|
local ____type = _G.type
|
|
14
15
|
local select = _G.select
|
|
15
16
|
local cos = math.cos
|
|
@@ -41,9 +42,10 @@ local temporaryLightningsCount = 0
|
|
|
41
42
|
____exports.Lightning = __TS__Class()
|
|
42
43
|
local Lightning = ____exports.Lightning
|
|
43
44
|
Lightning.name = "Lightning"
|
|
44
|
-
__TS__ClassExtends(Lightning,
|
|
45
|
+
__TS__ClassExtends(Lightning, AbstractDestroyable)
|
|
45
46
|
function Lightning.prototype.____constructor(self, handle, typeId)
|
|
46
|
-
|
|
47
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
48
|
+
self.handle = handle
|
|
47
49
|
self.typeId = typeId
|
|
48
50
|
end
|
|
49
51
|
function Lightning.prototype.onDestroy(self)
|
|
@@ -51,7 +53,7 @@ function Lightning.prototype.onDestroy(self)
|
|
|
51
53
|
unitToPointLightnings[self] = nil
|
|
52
54
|
pointToUnitLightnings[self] = nil
|
|
53
55
|
destroyLightning(self.handle)
|
|
54
|
-
return
|
|
56
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
55
57
|
end
|
|
56
58
|
function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, sourceYOrTargetXOrTargetUnit, sourceZOrTargetXOrTargetUnitOrTargetY, targetXOrTargetUnitOrTargetYOrTargetZ, targetY, targetZ)
|
|
57
59
|
if type(checkVisibility) ~= "boolean" then
|
|
@@ -67,7 +69,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
67
69
|
)
|
|
68
70
|
end
|
|
69
71
|
if targetZ ~= nil then
|
|
70
|
-
return
|
|
72
|
+
return __TS__New(
|
|
73
|
+
self,
|
|
71
74
|
addLightningEx(
|
|
72
75
|
util.id2s(typeId),
|
|
73
76
|
checkVisibility,
|
|
@@ -84,7 +87,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
84
87
|
if targetXOrTargetUnitOrTargetYOrTargetZ ~= nil then
|
|
85
88
|
if ____type(targetXOrTargetUnitOrTargetYOrTargetZ) == "number" then
|
|
86
89
|
if ____type(sourceXOrSourceUnit) == "number" then
|
|
87
|
-
return
|
|
90
|
+
return __TS__New(
|
|
91
|
+
self,
|
|
88
92
|
addLightning(
|
|
89
93
|
util.id2s(typeId),
|
|
90
94
|
checkVisibility,
|
|
@@ -97,7 +101,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
97
101
|
)
|
|
98
102
|
end
|
|
99
103
|
local unit = sourceXOrSourceUnit.handle
|
|
100
|
-
local lightning =
|
|
104
|
+
local lightning = __TS__New(
|
|
105
|
+
self,
|
|
101
106
|
addLightningEx(
|
|
102
107
|
util.id2s(typeId),
|
|
103
108
|
checkVisibility,
|
|
@@ -122,7 +127,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
122
127
|
return lightning
|
|
123
128
|
end
|
|
124
129
|
local unit = targetXOrTargetUnitOrTargetYOrTargetZ.handle
|
|
125
|
-
local lightning =
|
|
130
|
+
local lightning = __TS__New(
|
|
131
|
+
self,
|
|
126
132
|
addLightningEx(
|
|
127
133
|
util.id2s(typeId),
|
|
128
134
|
checkVisibility,
|
|
@@ -151,7 +157,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
151
157
|
local unit = sourceXOrSourceUnit.handle
|
|
152
158
|
moveLocation(location, sourceYOrTargetXOrTargetUnit, sourceZOrTargetXOrTargetUnitOrTargetY)
|
|
153
159
|
local z = getLocationZ(location)
|
|
154
|
-
local lightning =
|
|
160
|
+
local lightning = __TS__New(
|
|
161
|
+
self,
|
|
155
162
|
addLightningEx(
|
|
156
163
|
util.id2s(typeId),
|
|
157
164
|
checkVisibility,
|
|
@@ -178,7 +185,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
178
185
|
local unit = sourceZOrTargetXOrTargetUnitOrTargetY.handle
|
|
179
186
|
moveLocation(location, sourceXOrSourceUnit, sourceYOrTargetXOrTargetUnit)
|
|
180
187
|
local z = getLocationZ(location)
|
|
181
|
-
local lightning =
|
|
188
|
+
local lightning = __TS__New(
|
|
189
|
+
self,
|
|
182
190
|
addLightningEx(
|
|
183
191
|
util.id2s(typeId),
|
|
184
192
|
checkVisibility,
|
|
@@ -204,7 +212,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
|
|
|
204
212
|
end
|
|
205
213
|
local sourceUnit = sourceXOrSourceUnit.handle
|
|
206
214
|
local targetUnit = sourceYOrTargetXOrTargetUnit.handle
|
|
207
|
-
local lightning =
|
|
215
|
+
local lightning = __TS__New(
|
|
216
|
+
self,
|
|
208
217
|
addLightningEx(
|
|
209
218
|
util.id2s(typeId),
|
|
210
219
|
checkVisibility,
|
|
@@ -1,2 +1,18 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
+
local animationNames = {
|
|
3
|
+
attack = true,
|
|
4
|
+
birth = true,
|
|
5
|
+
death = true,
|
|
6
|
+
decay = true,
|
|
7
|
+
dissipate = true,
|
|
8
|
+
morph = true,
|
|
9
|
+
portrait = true,
|
|
10
|
+
sleep = true,
|
|
11
|
+
spell = true,
|
|
12
|
+
stand = true,
|
|
13
|
+
walk = true
|
|
14
|
+
}
|
|
15
|
+
____exports.isAnimationName = function(value)
|
|
16
|
+
return animationNames[value] ~= nil
|
|
17
|
+
end
|
|
2
18
|
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
|
+
}
|
|
@@ -12,5 +12,5 @@ export type TechTreeDependency = {
|
|
|
12
12
|
level: number;
|
|
13
13
|
};
|
|
14
14
|
export type TechTreeDependencyInput = TechTreeDependency | UnitTypeId | UpgradeId;
|
|
15
|
-
export declare const extractTechTreeDependencyInputObjectDataEntryId: (techTreeDependencyInput: TechTreeDependencyInput) => ObjectDataEntryId;
|
|
15
|
+
export declare const extractTechTreeDependencyInputObjectDataEntryId: (techTreeDependencyInput: TechTreeDependencyInput) => ObjectDataEntryId & number;
|
|
16
16
|
export declare const extractTechTreeDependencyInputLevel: (techTreeDependencyInput: TechTreeDependencyInput) => number;
|
|
@@ -6,6 +6,8 @@ local __TS__New = ____lualib.__TS__New
|
|
|
6
6
|
local ____exports = {}
|
|
7
7
|
local ____channel = require("engine.object-data.entry.ability-type.channel")
|
|
8
8
|
local ChannelAbilityType = ____channel.ChannelAbilityType
|
|
9
|
+
local ____animation_2Dname = require("engine.object-data.auxiliary.animation-name")
|
|
10
|
+
local isAnimationName = ____animation_2Dname.isAnimationName
|
|
9
11
|
local ____order_2Dtype_2Dstring_2Did_2Dfactory = require("engine.object-data.utility.order-type-string-id-factory")
|
|
10
12
|
local orderTypeStringIdFactory = ____order_2Dtype_2Dstring_2Did_2Dfactory.orderTypeStringIdFactory
|
|
11
13
|
local ____timer = require("core.types.timer")
|
|
@@ -211,7 +213,16 @@ for abilityTypeId, usesAttackAnimation in pairs(postcompile(function()
|
|
|
211
213
|
for abilityTypeId, usesAttackAnimation in pairs(usesAttackAnimationByAbilityTypeId) do
|
|
212
214
|
if usesAttackAnimation then
|
|
213
215
|
local abilityType = checkNotNull(____exports.BlankConfigurableAbilityType:of(abilityTypeId))
|
|
214
|
-
abilityType.channelingAnimation
|
|
216
|
+
if isAnimationName(abilityType.channelingAnimation[1]) then
|
|
217
|
+
if abilityType.channelingAnimation[1] ~= "attack" then
|
|
218
|
+
abilityType.channelingAnimation = {"attack"}
|
|
219
|
+
end
|
|
220
|
+
else
|
|
221
|
+
abilityType.channelingAnimation = {
|
|
222
|
+
"attack",
|
|
223
|
+
table.unpack(abilityType.channelingAnimation)
|
|
224
|
+
}
|
|
225
|
+
end
|
|
215
226
|
end
|
|
216
227
|
end
|
|
217
228
|
return usesAttackAnimationByAbilityTypeId
|
|
@@ -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
|
|
@@ -54,10 +54,10 @@ __TS__SetDescriptor(
|
|
|
54
54
|
"plagueWardUnitTypeId",
|
|
55
55
|
{
|
|
56
56
|
get = function(self)
|
|
57
|
-
return self:
|
|
57
|
+
return self:getObjectDataEntryNumericIdLevelField("Aplu")
|
|
58
58
|
end,
|
|
59
59
|
set = function(self, plagueWardUnitTypeId)
|
|
60
|
-
self:
|
|
60
|
+
self:setObjectDataEntryNumericIdLevelField("Aplu", plagueWardUnitTypeId)
|
|
61
61
|
end
|
|
62
62
|
},
|
|
63
63
|
true
|
|
@@ -55,7 +55,7 @@ __TS__SetDescriptor(
|
|
|
55
55
|
get = function(self)
|
|
56
56
|
local abilityUpgrades = {}
|
|
57
57
|
for i = 0, 3 do
|
|
58
|
-
local abilityUpgrade = self:
|
|
58
|
+
local abilityUpgrade = self:getObjectDataEntryNumericIdsLevelField("Neg" .. tostring(3 + i))
|
|
59
59
|
for level = 0, #abilityUpgrade - 1 do
|
|
60
60
|
local levelAbilityUpgrade = abilityUpgrade[level + 1]
|
|
61
61
|
if #levelAbilityUpgrade == 2 then
|
|
@@ -71,7 +71,7 @@ __TS__SetDescriptor(
|
|
|
71
71
|
local ____opt_0 = abilityUpgrades[1]
|
|
72
72
|
local isArray = __TS__ArrayIsArray(____opt_0 and ____opt_0[1])
|
|
73
73
|
for i = 0, #abilityUpgrades - 1 do
|
|
74
|
-
self:
|
|
74
|
+
self:setObjectDataEntryNumericIdsLevelField(
|
|
75
75
|
"Neg" .. tostring(3 + i),
|
|
76
76
|
isArray and map(
|
|
77
77
|
abilityUpgrades,
|
|
@@ -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
|
|
@@ -15,10 +15,10 @@ __TS__SetDescriptor(
|
|
|
15
15
|
"summonedUnitTypeId",
|
|
16
16
|
{
|
|
17
17
|
get = function(self)
|
|
18
|
-
return self:
|
|
18
|
+
return self:getObjectDataEntryNumericIdLevelField("Osf1")
|
|
19
19
|
end,
|
|
20
20
|
set = function(self, summonedUnitTypeId)
|
|
21
|
-
self:
|
|
21
|
+
self:setObjectDataEntryNumericIdLevelField("Osf1", summonedUnitTypeId)
|
|
22
22
|
end
|
|
23
23
|
},
|
|
24
24
|
true
|
|
@@ -15,10 +15,10 @@ __TS__SetDescriptor(
|
|
|
15
15
|
"normalFormUnitTypeId",
|
|
16
16
|
{
|
|
17
17
|
get = function(self)
|
|
18
|
-
return self:
|
|
18
|
+
return self:getObjectDataEntryNumericIdLevelField("Eme1")
|
|
19
19
|
end,
|
|
20
20
|
set = function(self, normalFormUnitTypeId)
|
|
21
|
-
self:
|
|
21
|
+
self:setObjectDataEntryNumericIdLevelField("Eme1", normalFormUnitTypeId)
|
|
22
22
|
end
|
|
23
23
|
},
|
|
24
24
|
true
|
|
@@ -119,10 +119,10 @@ __TS__SetDescriptor(
|
|
|
119
119
|
"alternateFormUnitTypeId",
|
|
120
120
|
{
|
|
121
121
|
get = function(self)
|
|
122
|
-
return self:
|
|
122
|
+
return self:getObjectDataEntryNumericIdLevelField("Emeu")
|
|
123
123
|
end,
|
|
124
124
|
set = function(self, alternateFormUnitTypeId)
|
|
125
|
-
self:
|
|
125
|
+
self:setObjectDataEntryNumericIdLevelField("Emeu", alternateFormUnitTypeId)
|
|
126
126
|
end
|
|
127
127
|
},
|
|
128
128
|
true
|