warscript 0.0.1-dev.ffaa090 → 0.0.1-dev.fff719b

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.
Files changed (167) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/effect.d.ts +1 -3
  4. package/core/types/effect.lua +26 -29
  5. package/core/types/frame.lua +24 -21
  6. package/core/types/player.d.ts +16 -0
  7. package/core/types/player.lua +60 -15
  8. package/core/types/playerCamera.d.ts +2 -0
  9. package/core/types/playerCamera.lua +123 -5
  10. package/core/types/sound.d.ts +17 -25
  11. package/core/types/sound.lua +85 -44
  12. package/core/types/tileCell.d.ts +11 -1
  13. package/core/types/tileCell.lua +97 -0
  14. package/core/types/timer.d.ts +9 -8
  15. package/core/types/timer.lua +45 -23
  16. package/decl/native.d.ts +846 -790
  17. package/destroyable.d.ts +1 -0
  18. package/destroyable.lua +9 -0
  19. package/engine/behavior.d.ts +14 -1
  20. package/engine/behavior.lua +230 -70
  21. package/engine/behaviour/ability/apply-buff.lua +5 -5
  22. package/engine/behaviour/ability/damage.d.ts +6 -3
  23. package/engine/behaviour/ability/damage.lua +24 -36
  24. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  25. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  26. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  27. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  28. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  29. package/engine/behaviour/ability/restore-mana.lua +6 -6
  30. package/engine/behaviour/ability.d.ts +6 -2
  31. package/engine/behaviour/ability.lua +16 -22
  32. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  33. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  34. package/engine/behaviour/unit.d.ts +39 -3
  35. package/engine/behaviour/unit.lua +269 -6
  36. package/engine/buff.d.ts +21 -8
  37. package/engine/buff.lua +193 -121
  38. package/engine/internal/ability.d.ts +7 -1
  39. package/engine/internal/ability.lua +49 -9
  40. package/engine/internal/item/ability.lua +63 -11
  41. package/engine/internal/item+owner.lua +12 -6
  42. package/engine/internal/item.d.ts +18 -17
  43. package/engine/internal/item.lua +135 -49
  44. package/engine/internal/mechanics/ability-duration.lua +1 -1
  45. package/engine/internal/mechanics/cast-ability.lua +6 -3
  46. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  47. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  48. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  49. package/engine/internal/misc/frame-coordinates.lua +21 -0
  50. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  51. package/engine/internal/misc/get-terrain-z.lua +11 -0
  52. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  53. package/engine/internal/misc/player-local-handle.lua +5 -0
  54. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  55. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  56. package/engine/internal/unit/ability.d.ts +35 -0
  57. package/engine/internal/unit/ability.lua +98 -9
  58. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  59. package/engine/internal/unit/allowed-targets.lua +9 -1
  60. package/engine/internal/unit/attributes.d.ts +17 -0
  61. package/engine/internal/unit/attributes.lua +46 -0
  62. package/engine/internal/unit/bonus.d.ts +2 -0
  63. package/engine/internal/unit/bonus.lua +10 -0
  64. package/engine/internal/unit/fly-height.d.ts +7 -0
  65. package/engine/internal/unit/fly-height.lua +20 -0
  66. package/engine/internal/unit/interrupts.d.ts +12 -0
  67. package/engine/internal/unit/interrupts.lua +28 -0
  68. package/engine/internal/unit/main-selected.lua +12 -27
  69. package/engine/internal/unit/order.d.ts +20 -0
  70. package/engine/internal/unit/order.lua +136 -0
  71. package/engine/internal/unit/scale.d.ts +7 -0
  72. package/engine/internal/unit/scale.lua +20 -0
  73. package/engine/internal/unit+ability.lua +10 -1
  74. package/engine/internal/unit+damage.d.ts +2 -11
  75. package/engine/internal/unit+damage.lua +10 -14
  76. package/engine/internal/unit+spellSteal.lua +1 -2
  77. package/engine/internal/unit-missile-launch.lua +52 -14
  78. package/engine/internal/unit.d.ts +39 -26
  79. package/engine/internal/unit.lua +375 -236
  80. package/engine/local-client.d.ts +2 -0
  81. package/engine/local-client.lua +30 -0
  82. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  83. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  84. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  85. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  86. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  87. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  88. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  89. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  90. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  91. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  92. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  93. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  94. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  95. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  96. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  97. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  98. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  99. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  100. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  101. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  102. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  103. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  104. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  105. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  106. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  107. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  108. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  109. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  110. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  111. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  112. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  113. package/engine/object-data/entry/ability-type/web.lua +52 -0
  114. package/engine/object-data/entry/ability-type.d.ts +11 -11
  115. package/engine/object-data/entry/ability-type.lua +35 -13
  116. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  117. package/engine/object-data/entry/buff-type.d.ts +5 -11
  118. package/engine/object-data/entry/buff-type.lua +11 -27
  119. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  120. package/engine/object-data/entry/destructible-type.lua +155 -0
  121. package/engine/object-data/entry/sound-preset.d.ts +17 -0
  122. package/engine/object-data/entry/sound-preset.lua +104 -0
  123. package/engine/object-data/entry/unit-type.d.ts +17 -4
  124. package/engine/object-data/entry/unit-type.lua +197 -85
  125. package/engine/object-field/ability.d.ts +4 -4
  126. package/engine/object-field/ability.lua +7 -6
  127. package/engine/object-field/unit.d.ts +72 -3
  128. package/engine/object-field/unit.lua +268 -7
  129. package/engine/object-field.d.ts +25 -6
  130. package/engine/object-field.lua +357 -118
  131. package/engine/random.d.ts +9 -0
  132. package/engine/random.lua +13 -0
  133. package/engine/standard/entries/buff-type.d.ts +3 -0
  134. package/engine/standard/entries/buff-type.lua +3 -0
  135. package/engine/standard/fields/ability.d.ts +2 -2
  136. package/engine/standard/fields/ability.lua +2 -2
  137. package/engine/standard/fields/unit.d.ts +12 -0
  138. package/engine/standard/fields/unit.lua +20 -0
  139. package/engine/synchronization.d.ts +11 -0
  140. package/engine/synchronization.lua +77 -0
  141. package/engine/text-tag.d.ts +36 -2
  142. package/engine/text-tag.lua +250 -10
  143. package/engine/unit.d.ts +5 -0
  144. package/engine/unit.lua +5 -0
  145. package/net/socket.lua +1 -1
  146. package/objutil/buff.lua +11 -10
  147. package/package.json +2 -2
  148. package/patch-lua.lua +9 -0
  149. package/patch-lualib.lua +1 -1
  150. package/utility/arrays.d.ts +2 -0
  151. package/utility/arrays.lua +11 -0
  152. package/utility/callback-array.d.ts +17 -0
  153. package/utility/callback-array.lua +61 -0
  154. package/utility/functions.d.ts +8 -0
  155. package/utility/functions.lua +13 -0
  156. package/utility/linked-map.d.ts +26 -0
  157. package/utility/linked-map.lua +66 -0
  158. package/utility/linked-set.d.ts +2 -0
  159. package/utility/linked-set.lua +26 -1
  160. package/utility/lua-maps.d.ts +15 -2
  161. package/utility/lua-maps.lua +53 -2
  162. package/utility/lua-sets.d.ts +2 -0
  163. package/utility/lua-sets.lua +7 -0
  164. package/utility/records.lua +20 -1
  165. package/utility/types.d.ts +3 -0
  166. package/core/types/order.d.ts +0 -25
  167. package/core/types/order.lua +0 -55
@@ -12,6 +12,9 @@ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNum
12
12
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
13
13
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
14
14
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
15
+ local ____movement_2Dtype = require("engine.object-data.auxiliary.movement-type")
16
+ local movementTypeToString = ____movement_2Dtype.movementTypeToString
17
+ local stringToMovementType = ____movement_2Dtype.stringToMovementType
15
18
  local ____unit_2Dclassification = require("engine.object-data.auxiliary.unit-classification")
16
19
  local stringArrayToUnitClassifications = ____unit_2Dclassification.stringArrayToUnitClassifications
17
20
  local unitClassificationsToStringArray = ____unit_2Dclassification.unitClassificationsToStringArray
@@ -19,8 +22,14 @@ local ____entry = require("engine.object-data.entry")
19
22
  local ObjectDataEntry = ____entry.ObjectDataEntry
20
23
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
21
24
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
25
+ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
26
+ local attackTypeToString = ____attack_2Dtype.attackTypeToString
27
+ local stringToAttackType = ____attack_2Dtype.stringToAttackType
22
28
  local ____config = require("config")
23
29
  local WarscriptConfig = ____config.WarscriptConfig
30
+ local ____armor_2Dtype = require("engine.object-data.auxiliary.armor-type")
31
+ local armorTypeToString = ____armor_2Dtype.armorTypeToString
32
+ local stringToArmorType = ____armor_2Dtype.stringToArmorType
24
33
  local getOrCreateUnitTypeWeapons
25
34
  ____exports.UnitTypeWeapon = __TS__Class()
26
35
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -34,18 +43,19 @@ __TS__SetDescriptor(
34
43
  "attackType",
35
44
  {
36
45
  get = function(self)
46
+ local ____stringToAttackType_1 = stringToAttackType
37
47
  local ____self_0 = self.unitType
38
- return ____self_0.getStringField(
48
+ return ____stringToAttackType_1(____self_0.getStringField(
39
49
  ____self_0,
40
50
  ("ua" .. tostring(self.index)) .. "t"
41
- )
51
+ ))
42
52
  end,
43
53
  set = function(self, attackType)
44
- local ____self_1 = self.unitType
45
- ____self_1.setStringField(
46
- ____self_1,
54
+ local ____self_2 = self.unitType
55
+ ____self_2.setStringField(
56
+ ____self_2,
47
57
  ("ua" .. tostring(self.index)) .. "t",
48
- attackType
58
+ attackTypeToString(attackType)
49
59
  )
50
60
  end
51
61
  },
@@ -56,16 +66,16 @@ __TS__SetDescriptor(
56
66
  "backSwingDuration",
57
67
  {
58
68
  get = function(self)
59
- local ____self_2 = self.unitType
60
- return ____self_2.getNumberField(
61
- ____self_2,
69
+ local ____self_3 = self.unitType
70
+ return ____self_3.getNumberField(
71
+ ____self_3,
62
72
  "ubs" .. tostring(self.index)
63
73
  )
64
74
  end,
65
75
  set = function(self, backSwingDuration)
66
- local ____self_3 = self.unitType
67
- ____self_3.setNumberField(
68
- ____self_3,
76
+ local ____self_4 = self.unitType
77
+ ____self_4.setNumberField(
78
+ ____self_4,
69
79
  "ubs" .. tostring(self.index),
70
80
  backSwingDuration
71
81
  )
@@ -78,16 +88,16 @@ __TS__SetDescriptor(
78
88
  "cooldown",
79
89
  {
80
90
  get = function(self)
81
- local ____self_4 = self.unitType
82
- return ____self_4.getNumberField(
83
- ____self_4,
91
+ local ____self_5 = self.unitType
92
+ return ____self_5.getNumberField(
93
+ ____self_5,
84
94
  ("ua" .. tostring(self.index)) .. "c"
85
95
  )
86
96
  end,
87
97
  set = function(self, cooldown)
88
- local ____self_5 = self.unitType
89
- ____self_5.setNumberField(
90
- ____self_5,
98
+ local ____self_6 = self.unitType
99
+ ____self_6.setNumberField(
100
+ ____self_6,
91
101
  ("ua" .. tostring(self.index)) .. "c",
92
102
  cooldown
93
103
  )
@@ -121,16 +131,16 @@ __TS__SetDescriptor(
121
131
  "damageBase",
122
132
  {
123
133
  get = function(self)
124
- local ____self_6 = self.unitType
125
- return ____self_6.getNumberField(
126
- ____self_6,
134
+ local ____self_7 = self.unitType
135
+ return ____self_7.getNumberField(
136
+ ____self_7,
127
137
  ("ua" .. tostring(self.index)) .. "b"
128
138
  )
129
139
  end,
130
140
  set = function(self, damageBase)
131
- local ____self_7 = self.unitType
132
- ____self_7.setNumberField(
133
- ____self_7,
141
+ local ____self_8 = self.unitType
142
+ ____self_8.setNumberField(
143
+ ____self_8,
134
144
  ("ua" .. tostring(self.index)) .. "b",
135
145
  damageBase
136
146
  )
@@ -143,16 +153,16 @@ __TS__SetDescriptor(
143
153
  "damageDiceCount",
144
154
  {
145
155
  get = function(self)
146
- local ____self_8 = self.unitType
147
- return ____self_8.getNumberField(
148
- ____self_8,
156
+ local ____self_9 = self.unitType
157
+ return ____self_9.getNumberField(
158
+ ____self_9,
149
159
  ("ua" .. tostring(self.index)) .. "d"
150
160
  )
151
161
  end,
152
162
  set = function(self, damageDiceNumber)
153
- local ____self_9 = self.unitType
154
- ____self_9.setNumberField(
155
- ____self_9,
163
+ local ____self_10 = self.unitType
164
+ ____self_10.setNumberField(
165
+ ____self_10,
156
166
  ("ua" .. tostring(self.index)) .. "d",
157
167
  damageDiceNumber
158
168
  )
@@ -165,16 +175,16 @@ __TS__SetDescriptor(
165
175
  "damageDiceSideCount",
166
176
  {
167
177
  get = function(self)
168
- local ____self_10 = self.unitType
169
- return ____self_10.getNumberField(
170
- ____self_10,
178
+ local ____self_11 = self.unitType
179
+ return ____self_11.getNumberField(
180
+ ____self_11,
171
181
  ("ua" .. tostring(self.index)) .. "s"
172
182
  )
173
183
  end,
174
184
  set = function(self, damageDiceSideCount)
175
- local ____self_11 = self.unitType
176
- ____self_11.setNumberField(
177
- ____self_11,
185
+ local ____self_12 = self.unitType
186
+ ____self_12.setNumberField(
187
+ ____self_12,
178
188
  ("ua" .. tostring(self.index)) .. "s",
179
189
  damageDiceSideCount
180
190
  )
@@ -187,16 +197,16 @@ __TS__SetDescriptor(
187
197
  "impactDelay",
188
198
  {
189
199
  get = function(self)
190
- local ____self_12 = self.unitType
191
- return ____self_12.getNumberField(
192
- ____self_12,
200
+ local ____self_13 = self.unitType
201
+ return ____self_13.getNumberField(
202
+ ____self_13,
193
203
  "udp" .. tostring(self.index)
194
204
  )
195
205
  end,
196
206
  set = function(self, impactDelay)
197
- local ____self_13 = self.unitType
198
- ____self_13.setNumberField(
199
- ____self_13,
207
+ local ____self_14 = self.unitType
208
+ ____self_14.setNumberField(
209
+ ____self_14,
200
210
  "udp" .. tostring(self.index),
201
211
  impactDelay
202
212
  )
@@ -209,16 +219,16 @@ __TS__SetDescriptor(
209
219
  "missileModelPath",
210
220
  {
211
221
  get = function(self)
212
- local ____self_14 = self.unitType
213
- return ____self_14.getStringField(
214
- ____self_14,
222
+ local ____self_15 = self.unitType
223
+ return ____self_15.getStringField(
224
+ ____self_15,
215
225
  ("ua" .. tostring(self.index)) .. "m"
216
226
  )
217
227
  end,
218
228
  set = function(self, missileModelPath)
219
- local ____self_15 = self.unitType
220
- ____self_15.setStringField(
221
- ____self_15,
229
+ local ____self_16 = self.unitType
230
+ ____self_16.setStringField(
231
+ ____self_16,
222
232
  ("ua" .. tostring(self.index)) .. "m",
223
233
  missileModelPath
224
234
  )
@@ -226,21 +236,65 @@ __TS__SetDescriptor(
226
236
  },
227
237
  true
228
238
  )
239
+ __TS__SetDescriptor(
240
+ UnitTypeWeapon.prototype,
241
+ "missileModelPathSD",
242
+ {
243
+ get = function(self)
244
+ local ____self_17 = self.unitType
245
+ return ____self_17.getStringField(
246
+ ____self_17,
247
+ ("ua" .. tostring(self.index)) .. "m:sd"
248
+ )
249
+ end,
250
+ set = function(self, missileModelPathSD)
251
+ local ____self_18 = self.unitType
252
+ ____self_18.setStringField(
253
+ ____self_18,
254
+ ("ua" .. tostring(self.index)) .. "m:sd",
255
+ missileModelPathSD
256
+ )
257
+ end
258
+ },
259
+ true
260
+ )
261
+ __TS__SetDescriptor(
262
+ UnitTypeWeapon.prototype,
263
+ "missileModelPathHD",
264
+ {
265
+ get = function(self)
266
+ local ____self_19 = self.unitType
267
+ return ____self_19.getStringField(
268
+ ____self_19,
269
+ ("ua" .. tostring(self.index)) .. "m:hd"
270
+ )
271
+ end,
272
+ set = function(self, missileModelPathHD)
273
+ local ____self_20 = self.unitType
274
+ ____self_20.setStringField(
275
+ ____self_20,
276
+ ("ua" .. tostring(self.index)) .. "m:hd",
277
+ missileModelPathHD
278
+ )
279
+ end
280
+ },
281
+ true
282
+ )
229
283
  __TS__SetDescriptor(
230
284
  UnitTypeWeapon.prototype,
231
285
  "range",
232
286
  {
233
287
  get = function(self)
234
- local ____self_16 = self.unitType
235
- return ____self_16.getNumberField(
236
- ____self_16,
288
+ local ____self_21 = self.unitType
289
+ return ____self_21.getNumberField(
290
+ ____self_21,
237
291
  ("ua" .. tostring(self.index)) .. "r"
238
292
  )
239
293
  end,
240
294
  set = function(self, range)
241
- local ____self_17 = self.unitType
242
- ____self_17.setNumberField(
243
- ____self_17,
295
+ local ____self_22 = self.unitType
296
+ ____self_22.setNumberField(
297
+ ____self_22,
244
298
  ("ua" .. tostring(self.index)) .. "r",
245
299
  range
246
300
  )
@@ -253,16 +307,16 @@ __TS__SetDescriptor(
253
307
  "soundType",
254
308
  {
255
309
  get = function(self)
256
- local ____self_18 = self.unitType
257
- return ____self_18.getStringField(
258
- ____self_18,
310
+ local ____self_23 = self.unitType
311
+ return ____self_23.getStringField(
312
+ ____self_23,
259
313
  "ucs" .. tostring(self.index)
260
314
  )
261
315
  end,
262
316
  set = function(self, soundType)
263
- local ____self_19 = self.unitType
264
- ____self_19.setStringField(
265
- ____self_19,
317
+ local ____self_24 = self.unitType
318
+ ____self_24.setStringField(
319
+ ____self_24,
266
320
  "ucs" .. tostring(self.index),
267
321
  soundType
268
322
  )
@@ -275,16 +329,16 @@ __TS__SetDescriptor(
275
329
  "soundTypeSD",
276
330
  {
277
331
  get = function(self)
278
- local ____self_20 = self.unitType
279
- return ____self_20.getStringField(
280
- ____self_20,
332
+ local ____self_25 = self.unitType
333
+ return ____self_25.getStringField(
334
+ ____self_25,
281
335
  ("ucs" .. tostring(self.index)) .. ":sd"
282
336
  )
283
337
  end,
284
338
  set = function(self, soundTypeSD)
285
- local ____self_21 = self.unitType
286
- ____self_21.setStringField(
287
- ____self_21,
339
+ local ____self_26 = self.unitType
340
+ ____self_26.setStringField(
341
+ ____self_26,
288
342
  ("ucs" .. tostring(self.index)) .. ":sd",
289
343
  soundTypeSD
290
344
  )
@@ -297,16 +351,16 @@ __TS__SetDescriptor(
297
351
  "soundTypeHD",
298
352
  {
299
353
  get = function(self)
300
- local ____self_22 = self.unitType
301
- return ____self_22.getStringField(
302
- ____self_22,
354
+ local ____self_27 = self.unitType
355
+ return ____self_27.getStringField(
356
+ ____self_27,
303
357
  ("ucs" .. tostring(self.index)) .. ":hd"
304
358
  )
305
359
  end,
306
360
  set = function(self, soundTypeHD)
307
- local ____self_23 = self.unitType
308
- ____self_23.setStringField(
309
- ____self_23,
361
+ local ____self_28 = self.unitType
362
+ ____self_28.setStringField(
363
+ ____self_28,
310
364
  ("ucs" .. tostring(self.index)) .. ":hd",
311
365
  soundTypeHD
312
366
  )
@@ -929,6 +983,19 @@ __TS__SetDescriptor(
929
983
  },
930
984
  true
931
985
  )
986
+ __TS__SetDescriptor(
987
+ UnitType.prototype,
988
+ "selectionCircleHeight",
989
+ {
990
+ get = function(self)
991
+ return self:getNumberField("uslz")
992
+ end,
993
+ set = function(self, height)
994
+ self:setNumberField("uslz", height)
995
+ end
996
+ },
997
+ true
998
+ )
932
999
  __TS__SetDescriptor(
933
1000
  UnitType.prototype,
934
1001
  "selectionCircleScale",
@@ -1176,6 +1243,19 @@ __TS__SetDescriptor(
1176
1243
  },
1177
1244
  true
1178
1245
  )
1246
+ __TS__SetDescriptor(
1247
+ UnitType.prototype,
1248
+ "armor",
1249
+ {
1250
+ get = function(self)
1251
+ return self:getNumberField("udef")
1252
+ end,
1253
+ set = function(self, armor)
1254
+ self:setNumberField("udef", armor)
1255
+ end
1256
+ },
1257
+ true
1258
+ )
1179
1259
  __TS__SetDescriptor(
1180
1260
  UnitType.prototype,
1181
1261
  "armorSoundType",
@@ -1215,6 +1295,22 @@ __TS__SetDescriptor(
1215
1295
  },
1216
1296
  true
1217
1297
  )
1298
+ __TS__SetDescriptor(
1299
+ UnitType.prototype,
1300
+ "armorType",
1301
+ {
1302
+ get = function(self)
1303
+ return stringToArmorType(self:getStringField("udty"))
1304
+ end,
1305
+ set = function(self, armorType)
1306
+ self:setStringField(
1307
+ "udty",
1308
+ armorTypeToString(armorType)
1309
+ )
1310
+ end
1311
+ },
1312
+ true
1313
+ )
1218
1314
  __TS__SetDescriptor(
1219
1315
  UnitType.prototype,
1220
1316
  "combatClassifications",
@@ -1233,7 +1329,7 @@ __TS__SetDescriptor(
1233
1329
  )
1234
1330
  __TS__SetDescriptor(
1235
1331
  UnitType.prototype,
1236
- "unitClassifications",
1332
+ "classifications",
1237
1333
  {
1238
1334
  get = function(self)
1239
1335
  return stringArrayToUnitClassifications(self:getStringsField("utyp"))
@@ -1341,10 +1437,13 @@ __TS__SetDescriptor(
1341
1437
  "movementType",
1342
1438
  {
1343
1439
  get = function(self)
1344
- return self:getStringField("umvt")
1440
+ return stringToMovementType(self:getStringField("umvt"))
1345
1441
  end,
1346
1442
  set = function(self, movementType)
1347
- self:setStringField("umvt", movementType)
1443
+ self:setStringField(
1444
+ "umvt",
1445
+ movementTypeToString(movementType)
1446
+ )
1348
1447
  end
1349
1448
  },
1350
1449
  true
@@ -1466,6 +1565,19 @@ __TS__SetDescriptor(
1466
1565
  },
1467
1566
  true
1468
1567
  )
1568
+ __TS__SetDescriptor(
1569
+ UnitType.prototype,
1570
+ "level",
1571
+ {
1572
+ get = function(self)
1573
+ return self:getNumberField("ulev")
1574
+ end,
1575
+ set = function(self, level)
1576
+ self:setNumberField("ulev", level)
1577
+ end
1578
+ },
1579
+ true
1580
+ )
1469
1581
  __TS__SetDescriptor(
1470
1582
  UnitType.prototype,
1471
1583
  "manaRegenerationRate",
@@ -1612,11 +1724,11 @@ __TS__SetDescriptor(
1612
1724
  implementReadonlyNumberIndexSupplier(
1613
1725
  ____exports.UnitType,
1614
1726
  function(id)
1615
- local ____class_24 = __TS__Class()
1616
- ____class_24.name = ____class_24.name
1617
- __TS__ClassExtends(____class_24, ____exports.UnitType)
1618
- ____class_24.BASE_ID = id
1619
- return ____class_24
1727
+ local ____class_29 = __TS__Class()
1728
+ ____class_29.name = ____class_29.name
1729
+ __TS__ClassExtends(____class_29, ____exports.UnitType)
1730
+ ____class_29.BASE_ID = id
1731
+ return ____class_29
1620
1732
  end
1621
1733
  )
1622
1734
  ____exports.HeroUnitType = __TS__Class()
@@ -1677,11 +1789,11 @@ __TS__SetDescriptor(
1677
1789
  implementReadonlyNumberIndexSupplier(
1678
1790
  ____exports.HeroUnitType,
1679
1791
  function(id)
1680
- local ____class_25 = __TS__Class()
1681
- ____class_25.name = ____class_25.name
1682
- __TS__ClassExtends(____class_25, ____exports.HeroUnitType)
1683
- ____class_25.BASE_ID = id
1684
- return ____class_25
1792
+ local ____class_30 = __TS__Class()
1793
+ ____class_30.name = ____class_30.name
1794
+ __TS__ClassExtends(____class_30, ____exports.HeroUnitType)
1795
+ ____class_30.BASE_ID = id
1796
+ return ____class_30
1685
1797
  end
1686
1798
  )
1687
1799
  return ____exports
@@ -12,7 +12,7 @@ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
12
12
  export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
13
13
  protected get instanceClass(): typeof Ability;
14
14
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
15
- protected hasNativeFieldValue(instance: Ability): boolean;
15
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
16
16
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
17
17
  }
18
18
  export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
@@ -48,7 +48,7 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
48
48
  export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
49
49
  protected get instanceClass(): typeof Ability;
50
50
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
51
- protected hasNativeFieldValue(instance: Ability): boolean;
51
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
52
52
  }
53
53
  export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
54
54
  protected get defaultValue(): string;
@@ -68,7 +68,7 @@ export declare abstract class AbilityLevelField<ValueType extends number | strin
68
68
  protected get instanceClass(): typeof Ability;
69
69
  protected getLevelCount(entry: AbilityType | Ability): number;
70
70
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
71
- protected hasNativeFieldValue(instance: Ability): boolean;
71
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
72
72
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
73
73
  }
74
74
  export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
@@ -117,7 +117,7 @@ export declare abstract class AbilityEnumLevelField<T extends number> extends Ab
117
117
  protected getNativeFieldById(id: number): jabilityintegerlevelfield;
118
118
  protected getNativeFieldValue(instance: Ability, level: number): T;
119
119
  protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
120
- static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
120
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityEnumLevelField<number>>;
121
121
  }
122
122
  export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
123
123
  protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
@@ -7,6 +7,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
7
7
  local ____exports = {}
8
8
  local ____ability = require("engine.internal.ability")
9
9
  local Ability = ____ability.Ability
10
+ local abilityTypeHasField = ____ability.abilityTypeHasField
10
11
  local ____object_2Dfield = require("engine.object-field")
11
12
  local ObjectArrayField = ____object_2Dfield.ObjectArrayField
12
13
  local ObjectField = ____object_2Dfield.ObjectField
@@ -29,8 +30,8 @@ __TS__ClassExtends(AbilityField, ObjectField)
29
30
  function AbilityField.prototype.getObjectDataEntryId(self, instance)
30
31
  return instance.typeId
31
32
  end
32
- function AbilityField.prototype.hasNativeFieldValue(self, instance)
33
- return instance:hasField(self.nativeField)
33
+ function AbilityField.prototype.hasNativeFieldValue(self, abilityTypeId)
34
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
34
35
  end
35
36
  __TS__SetDescriptor(
36
37
  AbilityField.prototype,
@@ -197,8 +198,8 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
197
198
  function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
198
199
  return instance.typeId
199
200
  end
200
- function AbilityArrayField.prototype.hasNativeFieldValue(self, instance)
201
- return instance:hasField(self.nativeField)
201
+ function AbilityArrayField.prototype.hasNativeFieldValue(self, abilityTypeId)
202
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
202
203
  end
203
204
  __TS__SetDescriptor(
204
205
  AbilityArrayField.prototype,
@@ -269,8 +270,8 @@ end
269
270
  function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
270
271
  return instance.typeId
271
272
  end
272
- function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
273
- return instance:hasField(self.nativeField)
273
+ function AbilityLevelField.prototype.hasNativeFieldValue(self, abilityTypeId)
274
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
274
275
  end
275
276
  __TS__SetDescriptor(
276
277
  AbilityLevelField.prototype,
@@ -1,16 +1,85 @@
1
1
  /** @noSelfInFile */
2
2
  import { Unit } from "../internal/unit";
3
- import { ObjectField } from "../object-field";
3
+ import { ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
4
4
  import { UnitType, UnitTypeId } from "../object-data/entry/unit-type";
5
+ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
6
+ import { AttackType } from "../object-data/auxiliary/attack-type";
7
+ import { UnitClassifications } from "../object-data/auxiliary/unit-classification";
8
+ import { HealthRegenerationType } from "../object-data/auxiliary/health-regeneration-type";
5
9
  export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
6
10
  protected get instanceClass(): typeof Unit;
7
11
  protected getObjectDataEntryId(instance: Unit): UnitTypeId;
12
+ protected hasNativeFieldValue(): boolean;
13
+ static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitField>>;
14
+ }
15
+ export declare class UnitBooleanField extends UnitField<boolean, junitbooleanfield> {
16
+ protected get defaultValue(): boolean;
17
+ protected getNativeFieldById(id: number): junitbooleanfield;
18
+ protected getNativeFieldValue(instance: Unit): boolean;
19
+ protected setNativeFieldValue(instance: Unit, value: boolean): boolean;
20
+ static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitBooleanField>>;
21
+ }
22
+ export declare class UnitFloatField extends UnitField<number, junitrealfield> {
23
+ protected get defaultValue(): number;
24
+ protected getNativeFieldById(id: number): junitrealfield;
25
+ protected getNativeFieldValue(instance: Unit): number;
26
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
27
+ static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
28
+ }
29
+ export declare class UnitIntegerField<T extends number = number> extends UnitField<T, junitintegerfield> {
30
+ protected get defaultValue(): T;
31
+ protected getNativeFieldById(id: number): junitintegerfield;
32
+ protected getNativeFieldValue(instance: Unit): T;
33
+ protected setNativeFieldValue(instance: Unit, value: T): boolean;
34
+ static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
8
35
  }
9
36
  export declare class UnitStringField extends UnitField<string, junitstringfield> {
10
37
  protected get defaultValue(): string;
11
38
  protected getNativeFieldById(id: number): junitstringfield;
12
- protected hasNativeFieldValue(): boolean;
13
39
  protected getNativeFieldValue(instance: Unit): string;
14
- protected getObjectDataEntryId(instance: Unit): UnitTypeId;
15
40
  protected setNativeFieldValue(instance: Unit, value: string): boolean;
41
+ static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitStringField>>;
42
+ }
43
+ type junitweaponfield = junitweaponbooleanfield | junitweaponintegerfield | junitweaponrealfield | junitweaponstringfield;
44
+ export declare abstract class UnitWeaponField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends junitweaponfield = junitweaponfield> extends ObjectLevelField<UnitType, Unit, ValueType, InputValueType, NativeFieldType> {
45
+ protected get instanceClass(): typeof Unit;
46
+ protected getLevelCount(): number;
47
+ protected getObjectDataEntryId(instance: Unit): UnitTypeId;
48
+ protected hasNativeFieldValue(): boolean;
49
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<UnitWeaponField>>;
50
+ }
51
+ export declare abstract class UnitNumberWeaponField<NativeFieldType extends junitweaponintegerfield | junitweaponrealfield = junitweaponintegerfield | junitweaponrealfield> extends UnitWeaponField<number, number, NativeFieldType> {
52
+ protected get defaultValue(): number;
53
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitNumberWeaponField>;
54
+ }
55
+ export declare abstract class UnitEnumWeaponField<T extends number> extends UnitWeaponField<T, T, junitweaponintegerfield> {
56
+ protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
57
+ protected get defaultValue(): T;
58
+ protected getNativeFieldById(id: number): junitweaponintegerfield;
59
+ protected getNativeFieldValue(instance: Unit, index: number): T;
60
+ protected setNativeFieldValue(instance: Unit, index: number, value: T): boolean;
61
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitEnumWeaponField<number>>;
62
+ }
63
+ export declare class UnitAttackTypeWeaponField extends UnitEnumWeaponField<AttackType> {
64
+ protected values: ReadonlyNonEmptyLinkedSet<AttackType>;
65
+ }
66
+ export declare class UnitClassificationsField extends UnitField<UnitClassifications, junitintegerfield> {
67
+ protected get defaultValue(): UnitClassifications;
68
+ protected getNativeFieldById(id: number): junitintegerfield;
69
+ protected getNativeFieldValue(instance: Unit): UnitClassifications;
70
+ protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
71
+ }
72
+ export declare class UnitFlyHeightField extends UnitFloatField {
73
+ protected getNativeFieldValue(instance: Unit): number;
74
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
75
+ }
76
+ export declare class UnitPropulsionWindowField extends UnitFloatField {
77
+ protected getNativeFieldValue(instance: Unit): number;
78
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
79
+ }
80
+ export declare class UnitHealthRegenerationTypeField extends UnitIntegerField<HealthRegenerationType> {
81
+ }
82
+ export declare class UnitScalingValueField extends UnitFloatField {
83
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
16
84
  }
85
+ export {};