warscript 0.0.1-dev.8a4aeae → 0.0.1-dev.8bfb72f
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/attributes.d.ts +0 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/effect.d.ts +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +93 -1
- package/core/types/group.d.ts +0 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -0
- package/decl/index.d.ts +1 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- package/engine/behavior.lua +6 -6
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +22 -3
- package/engine/behaviour/ability.lua +134 -13
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +8 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +73 -21
- package/engine/buff.lua +297 -91
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +16 -13
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +33 -25
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/bonus.d.ts +11 -8
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +25 -6
- package/engine/internal/unit.d.ts +59 -16
- package/engine/internal/unit.lua +373 -132
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +8 -2
- package/engine/lightning.lua +27 -2
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type.d.ts +0 -1
- package/engine/object-data/entry/ability-type.lua +8 -12
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +0 -1
- package/engine/object-data/entry/destructible-type.d.ts +0 -1
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +14 -1
- package/engine/object-data/entry/item-type.lua +91 -0
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +23 -4
- package/engine/object-data/entry/unit-type.lua +226 -52
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -3
- package/engine/object-field.lua +4 -0
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/unit-type.d.ts +39 -1
- package/engine/standard/entries/unit-type.lua +39 -1
- package/engine/standard/fields/ability.d.ts +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +12 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -14
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +11 -5
- package/utility/arrays.lua +34 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -3
- package/utility/linked-set.lua +5 -2
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="warpack-types/warpack" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { TupleOf } from "../../../utility/types";
|
|
4
3
|
import { ArmorSoundType } from "../auxiliary/armor-sound-type";
|
|
@@ -28,6 +27,16 @@ export declare class UnitTypeWeapon {
|
|
|
28
27
|
set attackType(attackType: AttackType);
|
|
29
28
|
get backSwingDuration(): number;
|
|
30
29
|
set backSwingDuration(backSwingDuration: number);
|
|
30
|
+
get cooldown(): number;
|
|
31
|
+
set cooldown(cooldown: number);
|
|
32
|
+
get damage(): [minimumDamage: number, maximumDamage: number];
|
|
33
|
+
set damage([minimumDamage, maximumDamage]: [number, number]);
|
|
34
|
+
get damageBase(): number;
|
|
35
|
+
set damageBase(damageBase: number);
|
|
36
|
+
get damageDiceCount(): number;
|
|
37
|
+
set damageDiceCount(damageDiceNumber: number);
|
|
38
|
+
get damageDiceSideCount(): number;
|
|
39
|
+
set damageDiceSideCount(damageDiceSideCount: number);
|
|
31
40
|
get impactDelay(): number;
|
|
32
41
|
set impactDelay(impactDelay: number);
|
|
33
42
|
get missileModelPath(): string;
|
|
@@ -176,9 +185,9 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
|
|
|
176
185
|
set combatClassifications(combatClassifications: CombatClassifications);
|
|
177
186
|
get unitClassifications(): UnitClassifications;
|
|
178
187
|
set unitClassifications(unitClassifications: UnitClassifications);
|
|
188
|
+
get weapons(): TupleOf<UnitTypeWeapon, 2>;
|
|
179
189
|
get firstWeapon(): UnitTypeWeapon;
|
|
180
190
|
get secondWeapon(): UnitTypeWeapon;
|
|
181
|
-
get weapons(): TupleOf<UnitTypeWeapon, 2>;
|
|
182
191
|
get flyHeight(): number;
|
|
183
192
|
set flyHeight(flyHeight: number);
|
|
184
193
|
get flyHeightMinimum(): number;
|
|
@@ -207,6 +216,16 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
|
|
|
207
216
|
set formationRank(formationRank: number);
|
|
208
217
|
get goldCost(): number;
|
|
209
218
|
set goldCost(goldCost: number);
|
|
219
|
+
get healthRegenerationRate(): number;
|
|
220
|
+
set healthRegenerationRate(healthRegenerationRate: number);
|
|
221
|
+
get manaRegenerationRate(): number;
|
|
222
|
+
set manaRegenerationRate(manaRegenerationRate: number);
|
|
223
|
+
get maximumHealth(): number;
|
|
224
|
+
set maximumHealth(maximumHealth: number);
|
|
225
|
+
get maximumMana(): number;
|
|
226
|
+
set maximumMana(maximumMana: number);
|
|
227
|
+
get initialMana(): number;
|
|
228
|
+
set initialMana(initialMana: number);
|
|
210
229
|
get isStructure(): boolean;
|
|
211
230
|
set isStructure(isStructure: boolean);
|
|
212
231
|
get race(): Race;
|
|
@@ -234,6 +253,6 @@ export declare abstract class HeroUnitType<Id extends HeroUnitTypeId = HeroUnitT
|
|
|
234
253
|
set heroAbilityTypeIds(heroAbilityTypeIds: AbilityTypeId[]);
|
|
235
254
|
get properNames(): string[];
|
|
236
255
|
set properNames(properNames: string | string[]);
|
|
237
|
-
get
|
|
238
|
-
set
|
|
256
|
+
get properNameCount(): number;
|
|
257
|
+
set properNameCount(properNameCount: number);
|
|
239
258
|
}
|
|
@@ -73,21 +73,21 @@ __TS__SetDescriptor(
|
|
|
73
73
|
)
|
|
74
74
|
__TS__SetDescriptor(
|
|
75
75
|
UnitTypeWeapon.prototype,
|
|
76
|
-
"
|
|
76
|
+
"cooldown",
|
|
77
77
|
{
|
|
78
78
|
get = function(self)
|
|
79
79
|
local ____self_4 = self.unitType
|
|
80
80
|
return ____self_4.getNumberField(
|
|
81
81
|
____self_4,
|
|
82
|
-
"
|
|
82
|
+
("ua" .. tostring(self.index)) .. "c"
|
|
83
83
|
)
|
|
84
84
|
end,
|
|
85
|
-
set = function(self,
|
|
85
|
+
set = function(self, cooldown)
|
|
86
86
|
local ____self_5 = self.unitType
|
|
87
87
|
____self_5.setNumberField(
|
|
88
88
|
____self_5,
|
|
89
|
-
"
|
|
90
|
-
|
|
89
|
+
("ua" .. tostring(self.index)) .. "c",
|
|
90
|
+
cooldown
|
|
91
91
|
)
|
|
92
92
|
end
|
|
93
93
|
},
|
|
@@ -95,21 +95,42 @@ __TS__SetDescriptor(
|
|
|
95
95
|
)
|
|
96
96
|
__TS__SetDescriptor(
|
|
97
97
|
UnitTypeWeapon.prototype,
|
|
98
|
-
"
|
|
98
|
+
"damage",
|
|
99
|
+
{
|
|
100
|
+
get = function(self)
|
|
101
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
102
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
103
|
+
return {minimumDamage, maximumDamage}
|
|
104
|
+
end,
|
|
105
|
+
set = function(self, ____bindingPattern0)
|
|
106
|
+
local maximumDamage
|
|
107
|
+
local minimumDamage
|
|
108
|
+
minimumDamage = ____bindingPattern0[1]
|
|
109
|
+
maximumDamage = ____bindingPattern0[2]
|
|
110
|
+
self.damageBase = minimumDamage - 1
|
|
111
|
+
self.damageDiceCount = 1
|
|
112
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
113
|
+
end
|
|
114
|
+
},
|
|
115
|
+
true
|
|
116
|
+
)
|
|
117
|
+
__TS__SetDescriptor(
|
|
118
|
+
UnitTypeWeapon.prototype,
|
|
119
|
+
"damageBase",
|
|
99
120
|
{
|
|
100
121
|
get = function(self)
|
|
101
122
|
local ____self_6 = self.unitType
|
|
102
|
-
return ____self_6.
|
|
123
|
+
return ____self_6.getNumberField(
|
|
103
124
|
____self_6,
|
|
104
|
-
("ua" .. tostring(self.index)) .. "
|
|
125
|
+
("ua" .. tostring(self.index)) .. "b"
|
|
105
126
|
)
|
|
106
127
|
end,
|
|
107
|
-
set = function(self,
|
|
128
|
+
set = function(self, damageBase)
|
|
108
129
|
local ____self_7 = self.unitType
|
|
109
|
-
____self_7.
|
|
130
|
+
____self_7.setNumberField(
|
|
110
131
|
____self_7,
|
|
111
|
-
("ua" .. tostring(self.index)) .. "
|
|
112
|
-
|
|
132
|
+
("ua" .. tostring(self.index)) .. "b",
|
|
133
|
+
damageBase
|
|
113
134
|
)
|
|
114
135
|
end
|
|
115
136
|
},
|
|
@@ -117,19 +138,107 @@ __TS__SetDescriptor(
|
|
|
117
138
|
)
|
|
118
139
|
__TS__SetDescriptor(
|
|
119
140
|
UnitTypeWeapon.prototype,
|
|
120
|
-
"
|
|
141
|
+
"damageDiceCount",
|
|
121
142
|
{
|
|
122
143
|
get = function(self)
|
|
123
144
|
local ____self_8 = self.unitType
|
|
124
145
|
return ____self_8.getNumberField(
|
|
125
146
|
____self_8,
|
|
126
|
-
("ua" .. tostring(self.index)) .. "
|
|
147
|
+
("ua" .. tostring(self.index)) .. "d"
|
|
127
148
|
)
|
|
128
149
|
end,
|
|
129
|
-
set = function(self,
|
|
150
|
+
set = function(self, damageDiceNumber)
|
|
130
151
|
local ____self_9 = self.unitType
|
|
131
152
|
____self_9.setNumberField(
|
|
132
153
|
____self_9,
|
|
154
|
+
("ua" .. tostring(self.index)) .. "d",
|
|
155
|
+
damageDiceNumber
|
|
156
|
+
)
|
|
157
|
+
end
|
|
158
|
+
},
|
|
159
|
+
true
|
|
160
|
+
)
|
|
161
|
+
__TS__SetDescriptor(
|
|
162
|
+
UnitTypeWeapon.prototype,
|
|
163
|
+
"damageDiceSideCount",
|
|
164
|
+
{
|
|
165
|
+
get = function(self)
|
|
166
|
+
local ____self_10 = self.unitType
|
|
167
|
+
return ____self_10.getNumberField(
|
|
168
|
+
____self_10,
|
|
169
|
+
("ua" .. tostring(self.index)) .. "s"
|
|
170
|
+
)
|
|
171
|
+
end,
|
|
172
|
+
set = function(self, damageDiceSideCount)
|
|
173
|
+
local ____self_11 = self.unitType
|
|
174
|
+
____self_11.setNumberField(
|
|
175
|
+
____self_11,
|
|
176
|
+
("ua" .. tostring(self.index)) .. "s",
|
|
177
|
+
damageDiceSideCount
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
},
|
|
181
|
+
true
|
|
182
|
+
)
|
|
183
|
+
__TS__SetDescriptor(
|
|
184
|
+
UnitTypeWeapon.prototype,
|
|
185
|
+
"impactDelay",
|
|
186
|
+
{
|
|
187
|
+
get = function(self)
|
|
188
|
+
local ____self_12 = self.unitType
|
|
189
|
+
return ____self_12.getNumberField(
|
|
190
|
+
____self_12,
|
|
191
|
+
"udp" .. tostring(self.index)
|
|
192
|
+
)
|
|
193
|
+
end,
|
|
194
|
+
set = function(self, impactDelay)
|
|
195
|
+
local ____self_13 = self.unitType
|
|
196
|
+
____self_13.setNumberField(
|
|
197
|
+
____self_13,
|
|
198
|
+
"udp" .. tostring(self.index),
|
|
199
|
+
impactDelay
|
|
200
|
+
)
|
|
201
|
+
end
|
|
202
|
+
},
|
|
203
|
+
true
|
|
204
|
+
)
|
|
205
|
+
__TS__SetDescriptor(
|
|
206
|
+
UnitTypeWeapon.prototype,
|
|
207
|
+
"missileModelPath",
|
|
208
|
+
{
|
|
209
|
+
get = function(self)
|
|
210
|
+
local ____self_14 = self.unitType
|
|
211
|
+
return ____self_14.getStringField(
|
|
212
|
+
____self_14,
|
|
213
|
+
("ua" .. tostring(self.index)) .. "m"
|
|
214
|
+
)
|
|
215
|
+
end,
|
|
216
|
+
set = function(self, missileModelPath)
|
|
217
|
+
local ____self_15 = self.unitType
|
|
218
|
+
____self_15.setStringField(
|
|
219
|
+
____self_15,
|
|
220
|
+
("ua" .. tostring(self.index)) .. "m",
|
|
221
|
+
missileModelPath
|
|
222
|
+
)
|
|
223
|
+
end
|
|
224
|
+
},
|
|
225
|
+
true
|
|
226
|
+
)
|
|
227
|
+
__TS__SetDescriptor(
|
|
228
|
+
UnitTypeWeapon.prototype,
|
|
229
|
+
"range",
|
|
230
|
+
{
|
|
231
|
+
get = function(self)
|
|
232
|
+
local ____self_16 = self.unitType
|
|
233
|
+
return ____self_16.getNumberField(
|
|
234
|
+
____self_16,
|
|
235
|
+
("ua" .. tostring(self.index)) .. "r"
|
|
236
|
+
)
|
|
237
|
+
end,
|
|
238
|
+
set = function(self, range)
|
|
239
|
+
local ____self_17 = self.unitType
|
|
240
|
+
____self_17.setNumberField(
|
|
241
|
+
____self_17,
|
|
133
242
|
("ua" .. tostring(self.index)) .. "r",
|
|
134
243
|
range
|
|
135
244
|
)
|
|
@@ -142,16 +251,16 @@ __TS__SetDescriptor(
|
|
|
142
251
|
"soundType",
|
|
143
252
|
{
|
|
144
253
|
get = function(self)
|
|
145
|
-
local
|
|
146
|
-
return
|
|
147
|
-
|
|
254
|
+
local ____self_18 = self.unitType
|
|
255
|
+
return ____self_18.getStringField(
|
|
256
|
+
____self_18,
|
|
148
257
|
"ucs" .. tostring(self.index)
|
|
149
258
|
)
|
|
150
259
|
end,
|
|
151
260
|
set = function(self, soundType)
|
|
152
|
-
local
|
|
153
|
-
|
|
154
|
-
|
|
261
|
+
local ____self_19 = self.unitType
|
|
262
|
+
____self_19.setStringField(
|
|
263
|
+
____self_19,
|
|
155
264
|
"ucs" .. tostring(self.index),
|
|
156
265
|
soundType
|
|
157
266
|
)
|
|
@@ -164,16 +273,16 @@ __TS__SetDescriptor(
|
|
|
164
273
|
"soundTypeSD",
|
|
165
274
|
{
|
|
166
275
|
get = function(self)
|
|
167
|
-
local
|
|
168
|
-
return
|
|
169
|
-
|
|
276
|
+
local ____self_20 = self.unitType
|
|
277
|
+
return ____self_20.getStringField(
|
|
278
|
+
____self_20,
|
|
170
279
|
("ucs" .. tostring(self.index)) .. ":sd"
|
|
171
280
|
)
|
|
172
281
|
end,
|
|
173
282
|
set = function(self, soundTypeSD)
|
|
174
|
-
local
|
|
175
|
-
|
|
176
|
-
|
|
283
|
+
local ____self_21 = self.unitType
|
|
284
|
+
____self_21.setStringField(
|
|
285
|
+
____self_21,
|
|
177
286
|
("ucs" .. tostring(self.index)) .. ":sd",
|
|
178
287
|
soundTypeSD
|
|
179
288
|
)
|
|
@@ -186,16 +295,16 @@ __TS__SetDescriptor(
|
|
|
186
295
|
"soundTypeHD",
|
|
187
296
|
{
|
|
188
297
|
get = function(self)
|
|
189
|
-
local
|
|
190
|
-
return
|
|
191
|
-
|
|
298
|
+
local ____self_22 = self.unitType
|
|
299
|
+
return ____self_22.getStringField(
|
|
300
|
+
____self_22,
|
|
192
301
|
("ucs" .. tostring(self.index)) .. ":hd"
|
|
193
302
|
)
|
|
194
303
|
end,
|
|
195
304
|
set = function(self, soundTypeHD)
|
|
196
|
-
local
|
|
197
|
-
|
|
198
|
-
|
|
305
|
+
local ____self_23 = self.unitType
|
|
306
|
+
____self_23.setStringField(
|
|
307
|
+
____self_23,
|
|
199
308
|
("ucs" .. tostring(self.index)) .. ":hd",
|
|
200
309
|
soundTypeHD
|
|
201
310
|
)
|
|
@@ -1087,25 +1196,25 @@ __TS__SetDescriptor(
|
|
|
1087
1196
|
)
|
|
1088
1197
|
__TS__SetDescriptor(
|
|
1089
1198
|
UnitType.prototype,
|
|
1090
|
-
"
|
|
1199
|
+
"weapons",
|
|
1091
1200
|
{get = function(self)
|
|
1092
|
-
return self
|
|
1201
|
+
return getOrCreateUnitTypeWeapons(self)
|
|
1093
1202
|
end},
|
|
1094
1203
|
true
|
|
1095
1204
|
)
|
|
1096
1205
|
__TS__SetDescriptor(
|
|
1097
1206
|
UnitType.prototype,
|
|
1098
|
-
"
|
|
1207
|
+
"firstWeapon",
|
|
1099
1208
|
{get = function(self)
|
|
1100
|
-
return self.weapons[
|
|
1209
|
+
return self.weapons[1]
|
|
1101
1210
|
end},
|
|
1102
1211
|
true
|
|
1103
1212
|
)
|
|
1104
1213
|
__TS__SetDescriptor(
|
|
1105
1214
|
UnitType.prototype,
|
|
1106
|
-
"
|
|
1215
|
+
"secondWeapon",
|
|
1107
1216
|
{get = function(self)
|
|
1108
|
-
return
|
|
1217
|
+
return self.weapons[2]
|
|
1109
1218
|
end},
|
|
1110
1219
|
true
|
|
1111
1220
|
)
|
|
@@ -1291,6 +1400,71 @@ __TS__SetDescriptor(
|
|
|
1291
1400
|
},
|
|
1292
1401
|
true
|
|
1293
1402
|
)
|
|
1403
|
+
__TS__SetDescriptor(
|
|
1404
|
+
UnitType.prototype,
|
|
1405
|
+
"healthRegenerationRate",
|
|
1406
|
+
{
|
|
1407
|
+
get = function(self)
|
|
1408
|
+
return self:getNumberField("uhpr")
|
|
1409
|
+
end,
|
|
1410
|
+
set = function(self, healthRegenerationRate)
|
|
1411
|
+
self:setNumberField("uhpr", healthRegenerationRate)
|
|
1412
|
+
end
|
|
1413
|
+
},
|
|
1414
|
+
true
|
|
1415
|
+
)
|
|
1416
|
+
__TS__SetDescriptor(
|
|
1417
|
+
UnitType.prototype,
|
|
1418
|
+
"manaRegenerationRate",
|
|
1419
|
+
{
|
|
1420
|
+
get = function(self)
|
|
1421
|
+
return self:getNumberField("umpr")
|
|
1422
|
+
end,
|
|
1423
|
+
set = function(self, manaRegenerationRate)
|
|
1424
|
+
self:setNumberField("umpr", manaRegenerationRate)
|
|
1425
|
+
end
|
|
1426
|
+
},
|
|
1427
|
+
true
|
|
1428
|
+
)
|
|
1429
|
+
__TS__SetDescriptor(
|
|
1430
|
+
UnitType.prototype,
|
|
1431
|
+
"maximumHealth",
|
|
1432
|
+
{
|
|
1433
|
+
get = function(self)
|
|
1434
|
+
return self:getNumberField("uhpm")
|
|
1435
|
+
end,
|
|
1436
|
+
set = function(self, maximumHealth)
|
|
1437
|
+
self:setNumberField("uhpm", maximumHealth)
|
|
1438
|
+
end
|
|
1439
|
+
},
|
|
1440
|
+
true
|
|
1441
|
+
)
|
|
1442
|
+
__TS__SetDescriptor(
|
|
1443
|
+
UnitType.prototype,
|
|
1444
|
+
"maximumMana",
|
|
1445
|
+
{
|
|
1446
|
+
get = function(self)
|
|
1447
|
+
return self:getNumberField("umpm")
|
|
1448
|
+
end,
|
|
1449
|
+
set = function(self, maximumMana)
|
|
1450
|
+
self:setNumberField("umpm", maximumMana)
|
|
1451
|
+
end
|
|
1452
|
+
},
|
|
1453
|
+
true
|
|
1454
|
+
)
|
|
1455
|
+
__TS__SetDescriptor(
|
|
1456
|
+
UnitType.prototype,
|
|
1457
|
+
"initialMana",
|
|
1458
|
+
{
|
|
1459
|
+
get = function(self)
|
|
1460
|
+
return self:getNumberField("umpi")
|
|
1461
|
+
end,
|
|
1462
|
+
set = function(self, initialMana)
|
|
1463
|
+
self:setNumberField("umpi", initialMana)
|
|
1464
|
+
end
|
|
1465
|
+
},
|
|
1466
|
+
true
|
|
1467
|
+
)
|
|
1294
1468
|
__TS__SetDescriptor(
|
|
1295
1469
|
UnitType.prototype,
|
|
1296
1470
|
"isStructure",
|
|
@@ -1385,11 +1559,11 @@ __TS__SetDescriptor(
|
|
|
1385
1559
|
implementReadonlyNumberIndexSupplier(
|
|
1386
1560
|
____exports.UnitType,
|
|
1387
1561
|
function(id)
|
|
1388
|
-
local
|
|
1389
|
-
|
|
1390
|
-
__TS__ClassExtends(
|
|
1391
|
-
|
|
1392
|
-
return
|
|
1562
|
+
local ____class_24 = __TS__Class()
|
|
1563
|
+
____class_24.name = ____class_24.name
|
|
1564
|
+
__TS__ClassExtends(____class_24, ____exports.UnitType)
|
|
1565
|
+
____class_24.BASE_ID = id
|
|
1566
|
+
return ____class_24
|
|
1393
1567
|
end
|
|
1394
1568
|
)
|
|
1395
1569
|
____exports.HeroUnitType = __TS__Class()
|
|
@@ -1436,13 +1610,13 @@ __TS__SetDescriptor(
|
|
|
1436
1610
|
)
|
|
1437
1611
|
__TS__SetDescriptor(
|
|
1438
1612
|
HeroUnitType.prototype,
|
|
1439
|
-
"
|
|
1613
|
+
"properNameCount",
|
|
1440
1614
|
{
|
|
1441
1615
|
get = function(self)
|
|
1442
1616
|
return self:getNumberField("upru")
|
|
1443
1617
|
end,
|
|
1444
|
-
set = function(self,
|
|
1445
|
-
self:setNumberField("upru",
|
|
1618
|
+
set = function(self, properNameCount)
|
|
1619
|
+
self:setNumberField("upru", properNameCount)
|
|
1446
1620
|
end
|
|
1447
1621
|
},
|
|
1448
1622
|
true
|
|
@@ -1450,11 +1624,11 @@ __TS__SetDescriptor(
|
|
|
1450
1624
|
implementReadonlyNumberIndexSupplier(
|
|
1451
1625
|
____exports.HeroUnitType,
|
|
1452
1626
|
function(id)
|
|
1453
|
-
local
|
|
1454
|
-
|
|
1455
|
-
__TS__ClassExtends(
|
|
1456
|
-
|
|
1457
|
-
return
|
|
1627
|
+
local ____class_25 = __TS__Class()
|
|
1628
|
+
____class_25.name = ____class_25.name
|
|
1629
|
+
__TS__ClassExtends(____class_25, ____exports.HeroUnitType)
|
|
1630
|
+
____class_25.BASE_ID = id
|
|
1631
|
+
return ____class_25
|
|
1458
1632
|
end
|
|
1459
1633
|
)
|
|
1460
1634
|
return ____exports
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="warpack-types/warpack" />
|
|
2
1
|
/** @noSelfInFile */
|
|
3
2
|
import { AttachmentPreset, AttachmentPresetInput } from "./auxiliary/attachment-preset";
|
|
4
3
|
import { MutableKeys } from "../../utility/types";
|
|
@@ -10,8 +9,8 @@ export type ObjectDataEntryConstructor<T extends ObjectDataEntry> = OmitConstruc
|
|
|
10
9
|
export type ObjectDataEntryAbstractConstructor<T extends ObjectDataEntry> = OmitConstructor<typeof ObjectDataEntry> & (abstract new (object: WarObject) => T);
|
|
11
10
|
export type ObjectDataEntryProperties<T extends ObjectDataEntry> = Partial<T[MutableKeys<T>]>;
|
|
12
11
|
export type ObjectDataEntryLevelFieldValueSupplier<ValueType extends string | number | boolean | undefined | Record<string, any>, InputValueType = ValueType> = ValueType | readonly ValueType[] | ((level: number, currentValue: InputValueType) => ValueType);
|
|
13
|
-
export declare const extractObjectDataEntryLevelFieldValue: <ValueType extends string | number | boolean | Record<string, any
|
|
14
|
-
export declare const extractObjectDataEntryLevelArrayFieldValue: <T extends string | number | boolean | Record<string, any
|
|
12
|
+
export declare const extractObjectDataEntryLevelFieldValue: <ValueType extends string | number | boolean | undefined | Record<string, any>, InputValueType = ValueType>(supplier: ObjectDataEntryLevelFieldValueSupplier<ValueType, InputValueType>, level: number, currentValue: InputValueType) => ValueType;
|
|
13
|
+
export declare const extractObjectDataEntryLevelArrayFieldValue: <T extends string | number | boolean | undefined | Record<string, any>, S extends T[]>(supplier: ObjectDataEntryLevelFieldValueSupplier<S>, level: number, currentValue: S) => S;
|
|
15
14
|
export declare abstract class ObjectDataEntry<Id extends ObjectDataEntryId = ObjectDataEntryId> {
|
|
16
15
|
protected readonly object: WarObject;
|
|
17
16
|
static readonly BASE_ID: ObjectDataEntryId;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
4
|
local ____exports = {}
|
|
4
5
|
local ____preconditions = require("utility.preconditions")
|
|
5
6
|
local checkNotNull = ____preconditions.checkNotNull
|
|
@@ -60,4 +61,10 @@ function ObjectDataEntryIdGenerator.prototype.next(self)
|
|
|
60
61
|
self.id = id
|
|
61
62
|
return id
|
|
62
63
|
end
|
|
64
|
+
---
|
|
65
|
+
-- @internal For use by internal systems only.
|
|
66
|
+
____exports.abilityTypeIdGenerator = __TS__New(
|
|
67
|
+
____exports.ObjectDataEntryIdGenerator,
|
|
68
|
+
fourCC("A000")
|
|
69
|
+
)
|
|
63
70
|
return ____exports
|
|
@@ -6,6 +6,9 @@ import { ObjectDataEntryId } from "../object-data/entry";
|
|
|
6
6
|
import { LightningTypeId } from "../object-data/entry/lightning-type";
|
|
7
7
|
import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
|
|
8
8
|
import { UnitTypeId } from "../object-data/entry/unit-type";
|
|
9
|
+
import { BuffResistanceType } from "../object-data/auxiliary/buff-resistance-type";
|
|
10
|
+
import { BuffPolarity } from "../object-data/auxiliary/buff-polarity";
|
|
11
|
+
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
9
12
|
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
10
13
|
protected get instanceClass(): typeof Ability;
|
|
11
14
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
@@ -42,9 +45,10 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
|
|
|
42
45
|
protected setNativeFieldValue(instance: Ability, value: string): boolean;
|
|
43
46
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityStringField>;
|
|
44
47
|
}
|
|
45
|
-
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType =
|
|
48
|
+
export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
46
49
|
protected get instanceClass(): typeof Ability;
|
|
47
50
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
51
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
48
52
|
}
|
|
49
53
|
export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
|
|
50
54
|
protected get defaultValue(): string;
|
|
@@ -107,11 +111,30 @@ export declare class AbilityAbilityTypeIdLevelField extends AbilityObjectDataEnt
|
|
|
107
111
|
}
|
|
108
112
|
export declare class AbilityUnitTypeIdLevelField extends AbilityObjectDataEntryIdLevelField<UnitTypeId> {
|
|
109
113
|
}
|
|
114
|
+
export declare abstract class AbilityEnumLevelField<T extends number> extends AbilityLevelField<T, T, jabilityintegerlevelfield> {
|
|
115
|
+
protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
|
|
116
|
+
protected get defaultValue(): T;
|
|
117
|
+
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
118
|
+
protected getNativeFieldValue(instance: Ability, level: number): T;
|
|
119
|
+
protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
|
|
120
|
+
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
|
|
121
|
+
}
|
|
122
|
+
export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
|
|
123
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
|
|
124
|
+
}
|
|
125
|
+
export declare class AbilityBuffResistanceTypeLevelField extends AbilityEnumLevelField<BuffResistanceType> {
|
|
126
|
+
protected values: ReadonlyNonEmptyLinkedSet<BuffResistanceType>;
|
|
127
|
+
}
|
|
110
128
|
export declare class AbilityCombatClassificationsLevelField extends AbilityLevelField<CombatClassifications, CombatClassifications, jabilityintegerlevelfield> {
|
|
111
129
|
protected get defaultValue(): CombatClassifications;
|
|
112
130
|
protected getNativeFieldById(id: number): jabilityintegerlevelfield;
|
|
113
131
|
protected getNativeFieldValue(instance: Ability, level: number): CombatClassifications;
|
|
114
132
|
protected setNativeFieldValue(instance: Ability, level: number, value: CombatClassifications): boolean;
|
|
115
133
|
}
|
|
116
|
-
export type
|
|
117
|
-
export
|
|
134
|
+
export type ReadonlySubscribableAbilityDependentValue<ValueType extends boolean | number | string> = ValueType | ReadonlyObjectFieldType<AbilityField<ValueType>> | ReadonlyObjectLevelFieldType<AbilityLevelField<ValueType>>;
|
|
135
|
+
export type SubscribableAbilityDependentValue<ValueType extends boolean | number | string> = ValueType | AbilityField<ValueType> | AbilityLevelField<ValueType>;
|
|
136
|
+
export type AbilityDependentValue<ValueType extends boolean | number | string> = SubscribableAbilityDependentValue<ValueType> | ((ability: Ability) => ValueType);
|
|
137
|
+
export declare const resolveCurrentAbilityDependentValue: {
|
|
138
|
+
<ValueType extends boolean | number | string>(ability: Ability, value: AbilityDependentValue<ValueType>): ValueType;
|
|
139
|
+
<ValueType extends boolean | number | string>(ability: Ability, value?: AbilityDependentValue<ValueType>): ValueType | undefined;
|
|
140
|
+
};
|
|
@@ -13,6 +13,8 @@ local ObjectField = ____object_2Dfield.ObjectField
|
|
|
13
13
|
local ObjectLevelField = ____object_2Dfield.ObjectLevelField
|
|
14
14
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
15
15
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
16
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
17
|
+
local nonEmptyLinkedSetOf = ____linked_2Dset.nonEmptyLinkedSetOf
|
|
16
18
|
local convertAbilityBooleanField = _G.ConvertAbilityBooleanField
|
|
17
19
|
local convertAbilityIntegerField = _G.ConvertAbilityIntegerField
|
|
18
20
|
local convertAbilityRealField = _G.ConvertAbilityRealField
|
|
@@ -195,6 +197,9 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
|
|
|
195
197
|
function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
|
|
196
198
|
return instance.typeId
|
|
197
199
|
end
|
|
200
|
+
function AbilityArrayField.prototype.hasNativeFieldValue(self, instance)
|
|
201
|
+
return instance:hasField(self.nativeField)
|
|
202
|
+
end
|
|
198
203
|
__TS__SetDescriptor(
|
|
199
204
|
AbilityArrayField.prototype,
|
|
200
205
|
"instanceClass",
|
|
@@ -259,7 +264,7 @@ local AbilityLevelField = ____exports.AbilityLevelField
|
|
|
259
264
|
AbilityLevelField.name = "AbilityLevelField"
|
|
260
265
|
__TS__ClassExtends(AbilityLevelField, ObjectLevelField)
|
|
261
266
|
function AbilityLevelField.prototype.getLevelCount(self, entry)
|
|
262
|
-
return
|
|
267
|
+
return entry.levelCount
|
|
263
268
|
end
|
|
264
269
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
265
270
|
return instance.typeId
|
|
@@ -431,6 +436,54 @@ ____exports.AbilityUnitTypeIdLevelField = __TS__Class()
|
|
|
431
436
|
local AbilityUnitTypeIdLevelField = ____exports.AbilityUnitTypeIdLevelField
|
|
432
437
|
AbilityUnitTypeIdLevelField.name = "AbilityUnitTypeIdLevelField"
|
|
433
438
|
__TS__ClassExtends(AbilityUnitTypeIdLevelField, ____exports.AbilityObjectDataEntryIdLevelField)
|
|
439
|
+
____exports.AbilityEnumLevelField = __TS__Class()
|
|
440
|
+
local AbilityEnumLevelField = ____exports.AbilityEnumLevelField
|
|
441
|
+
AbilityEnumLevelField.name = "AbilityEnumLevelField"
|
|
442
|
+
__TS__ClassExtends(AbilityEnumLevelField, ____exports.AbilityLevelField)
|
|
443
|
+
function AbilityEnumLevelField.prototype.getNativeFieldById(self, id)
|
|
444
|
+
return convertAbilityIntegerLevelField(id)
|
|
445
|
+
end
|
|
446
|
+
function AbilityEnumLevelField.prototype.getNativeFieldValue(self, instance, level)
|
|
447
|
+
local value = instance:getField(self.nativeField, level)
|
|
448
|
+
if self.values:contains(value) then
|
|
449
|
+
return value
|
|
450
|
+
end
|
|
451
|
+
return self.values:first()
|
|
452
|
+
end
|
|
453
|
+
function AbilityEnumLevelField.prototype.setNativeFieldValue(self, instance, level, value)
|
|
454
|
+
return instance:setField(self.nativeField, level, value)
|
|
455
|
+
end
|
|
456
|
+
__TS__SetDescriptor(
|
|
457
|
+
AbilityEnumLevelField.prototype,
|
|
458
|
+
"defaultValue",
|
|
459
|
+
{get = function(self)
|
|
460
|
+
return self.values:first()
|
|
461
|
+
end},
|
|
462
|
+
true
|
|
463
|
+
)
|
|
464
|
+
__TS__ObjectDefineProperty(
|
|
465
|
+
AbilityEnumLevelField,
|
|
466
|
+
"valueChangeEvent",
|
|
467
|
+
{get = function(self)
|
|
468
|
+
return self:getOrCreateValueChangeEvent()
|
|
469
|
+
end}
|
|
470
|
+
)
|
|
471
|
+
____exports.AbilityBuffPolarityLevelField = __TS__Class()
|
|
472
|
+
local AbilityBuffPolarityLevelField = ____exports.AbilityBuffPolarityLevelField
|
|
473
|
+
AbilityBuffPolarityLevelField.name = "AbilityBuffPolarityLevelField"
|
|
474
|
+
__TS__ClassExtends(AbilityBuffPolarityLevelField, ____exports.AbilityEnumLevelField)
|
|
475
|
+
function AbilityBuffPolarityLevelField.prototype.____constructor(self, ...)
|
|
476
|
+
AbilityBuffPolarityLevelField.____super.prototype.____constructor(self, ...)
|
|
477
|
+
self.values = nonEmptyLinkedSetOf(0, 1, 2)
|
|
478
|
+
end
|
|
479
|
+
____exports.AbilityBuffResistanceTypeLevelField = __TS__Class()
|
|
480
|
+
local AbilityBuffResistanceTypeLevelField = ____exports.AbilityBuffResistanceTypeLevelField
|
|
481
|
+
AbilityBuffResistanceTypeLevelField.name = "AbilityBuffResistanceTypeLevelField"
|
|
482
|
+
__TS__ClassExtends(AbilityBuffResistanceTypeLevelField, ____exports.AbilityEnumLevelField)
|
|
483
|
+
function AbilityBuffResistanceTypeLevelField.prototype.____constructor(self, ...)
|
|
484
|
+
AbilityBuffResistanceTypeLevelField.____super.prototype.____constructor(self, ...)
|
|
485
|
+
self.values = nonEmptyLinkedSetOf(1, 2, 3)
|
|
486
|
+
end
|
|
434
487
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = postcompile(function()
|
|
435
488
|
local allowedTargetCombatClassificationsByLevelByAbilityTypeId = {}
|
|
436
489
|
for ____, abilityType in ipairs(AbilityType:getAll()) do
|