warscript 0.0.1-dev.effa673 → 0.0.1-dev.f0a9ffe

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 (90) hide show
  1. package/attributes.d.ts +5 -0
  2. package/attributes.lua +8 -1
  3. package/core/types/sound.lua +5 -0
  4. package/core/types/timer.d.ts +8 -8
  5. package/core/types/timer.lua +25 -23
  6. package/decl/native.d.ts +844 -788
  7. package/engine/behavior.d.ts +2 -0
  8. package/engine/behavior.lua +53 -27
  9. package/engine/behaviour/ability/apply-buff.lua +1 -1
  10. package/engine/behaviour/ability/damage.d.ts +6 -3
  11. package/engine/behaviour/ability/damage.lua +24 -36
  12. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  13. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  14. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  15. package/engine/behaviour/ability/restore-mana.lua +6 -6
  16. package/engine/behaviour/ability.lua +8 -17
  17. package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
  18. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  19. package/engine/behaviour/unit.d.ts +26 -0
  20. package/engine/behaviour/unit.lua +163 -4
  21. package/engine/buff.d.ts +2 -1
  22. package/engine/buff.lua +9 -3
  23. package/engine/internal/ability.d.ts +4 -0
  24. package/engine/internal/ability.lua +23 -0
  25. package/engine/internal/item/ability.lua +63 -11
  26. package/engine/internal/item.d.ts +5 -2
  27. package/engine/internal/item.lua +75 -3
  28. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  29. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  30. package/engine/internal/unit/ability.d.ts +35 -0
  31. package/engine/internal/unit/ability.lua +62 -0
  32. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  33. package/engine/internal/unit/allowed-targets.lua +9 -1
  34. package/engine/internal/unit/order.d.ts +20 -0
  35. package/engine/internal/unit/order.lua +136 -0
  36. package/engine/internal/unit+damage.d.ts +2 -11
  37. package/engine/internal/unit+damage.lua +10 -14
  38. package/engine/internal/unit+spellSteal.lua +1 -2
  39. package/engine/internal/unit-missile-launch.lua +9 -2
  40. package/engine/internal/unit.d.ts +23 -6
  41. package/engine/internal/unit.lua +233 -94
  42. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  43. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  44. package/engine/object-data/auxiliary/attachment-preset.d.ts +1 -1
  45. package/engine/object-data/auxiliary/attachment-preset.lua +3 -2
  46. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  47. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  48. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  49. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  50. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  51. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  52. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  53. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  54. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  55. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  56. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  57. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  58. package/engine/object-data/entry/ability-type.lua +8 -3
  59. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  60. package/engine/object-data/entry/buff-type.d.ts +5 -11
  61. package/engine/object-data/entry/buff-type.lua +11 -27
  62. package/engine/object-data/entry/unit-type.d.ts +13 -4
  63. package/engine/object-data/entry/unit-type.lua +153 -85
  64. package/engine/object-field/ability.d.ts +1 -1
  65. package/engine/object-field/unit.d.ts +57 -3
  66. package/engine/object-field/unit.lua +207 -7
  67. package/engine/object-field.d.ts +15 -4
  68. package/engine/object-field.lua +184 -90
  69. package/engine/standard/entries/buff-type.d.ts +3 -0
  70. package/engine/standard/entries/buff-type.lua +3 -0
  71. package/engine/standard/fields/unit.d.ts +4 -0
  72. package/engine/standard/fields/unit.lua +7 -0
  73. package/engine/text-tag.d.ts +36 -2
  74. package/engine/text-tag.lua +175 -10
  75. package/engine/unit.d.ts +1 -0
  76. package/engine/unit.lua +1 -0
  77. package/objutil/buff.lua +1 -2
  78. package/package.json +2 -2
  79. package/utility/arrays.d.ts +1 -0
  80. package/utility/arrays.lua +3 -0
  81. package/utility/functions.d.ts +8 -0
  82. package/utility/functions.lua +13 -0
  83. package/utility/linked-set.d.ts +1 -0
  84. package/utility/linked-set.lua +3 -0
  85. package/utility/lua-maps.d.ts +4 -0
  86. package/utility/lua-maps.lua +20 -0
  87. package/utility/lua-sets.d.ts +2 -0
  88. package/utility/lua-sets.lua +7 -0
  89. package/core/types/order.d.ts +0 -25
  90. 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
  )
@@ -231,16 +241,16 @@ __TS__SetDescriptor(
231
241
  "range",
232
242
  {
233
243
  get = function(self)
234
- local ____self_16 = self.unitType
235
- return ____self_16.getNumberField(
236
- ____self_16,
244
+ local ____self_17 = self.unitType
245
+ return ____self_17.getNumberField(
246
+ ____self_17,
237
247
  ("ua" .. tostring(self.index)) .. "r"
238
248
  )
239
249
  end,
240
250
  set = function(self, range)
241
- local ____self_17 = self.unitType
242
- ____self_17.setNumberField(
243
- ____self_17,
251
+ local ____self_18 = self.unitType
252
+ ____self_18.setNumberField(
253
+ ____self_18,
244
254
  ("ua" .. tostring(self.index)) .. "r",
245
255
  range
246
256
  )
@@ -253,16 +263,16 @@ __TS__SetDescriptor(
253
263
  "soundType",
254
264
  {
255
265
  get = function(self)
256
- local ____self_18 = self.unitType
257
- return ____self_18.getStringField(
258
- ____self_18,
266
+ local ____self_19 = self.unitType
267
+ return ____self_19.getStringField(
268
+ ____self_19,
259
269
  "ucs" .. tostring(self.index)
260
270
  )
261
271
  end,
262
272
  set = function(self, soundType)
263
- local ____self_19 = self.unitType
264
- ____self_19.setStringField(
265
- ____self_19,
273
+ local ____self_20 = self.unitType
274
+ ____self_20.setStringField(
275
+ ____self_20,
266
276
  "ucs" .. tostring(self.index),
267
277
  soundType
268
278
  )
@@ -275,16 +285,16 @@ __TS__SetDescriptor(
275
285
  "soundTypeSD",
276
286
  {
277
287
  get = function(self)
278
- local ____self_20 = self.unitType
279
- return ____self_20.getStringField(
280
- ____self_20,
288
+ local ____self_21 = self.unitType
289
+ return ____self_21.getStringField(
290
+ ____self_21,
281
291
  ("ucs" .. tostring(self.index)) .. ":sd"
282
292
  )
283
293
  end,
284
294
  set = function(self, soundTypeSD)
285
- local ____self_21 = self.unitType
286
- ____self_21.setStringField(
287
- ____self_21,
295
+ local ____self_22 = self.unitType
296
+ ____self_22.setStringField(
297
+ ____self_22,
288
298
  ("ucs" .. tostring(self.index)) .. ":sd",
289
299
  soundTypeSD
290
300
  )
@@ -297,16 +307,16 @@ __TS__SetDescriptor(
297
307
  "soundTypeHD",
298
308
  {
299
309
  get = function(self)
300
- local ____self_22 = self.unitType
301
- return ____self_22.getStringField(
302
- ____self_22,
310
+ local ____self_23 = self.unitType
311
+ return ____self_23.getStringField(
312
+ ____self_23,
303
313
  ("ucs" .. tostring(self.index)) .. ":hd"
304
314
  )
305
315
  end,
306
316
  set = function(self, soundTypeHD)
307
- local ____self_23 = self.unitType
308
- ____self_23.setStringField(
309
- ____self_23,
317
+ local ____self_24 = self.unitType
318
+ ____self_24.setStringField(
319
+ ____self_24,
310
320
  ("ucs" .. tostring(self.index)) .. ":hd",
311
321
  soundTypeHD
312
322
  )
@@ -929,6 +939,19 @@ __TS__SetDescriptor(
929
939
  },
930
940
  true
931
941
  )
942
+ __TS__SetDescriptor(
943
+ UnitType.prototype,
944
+ "selectionCircleHeight",
945
+ {
946
+ get = function(self)
947
+ return self:getNumberField("uslz")
948
+ end,
949
+ set = function(self, height)
950
+ self:setNumberField("uslz", height)
951
+ end
952
+ },
953
+ true
954
+ )
932
955
  __TS__SetDescriptor(
933
956
  UnitType.prototype,
934
957
  "selectionCircleScale",
@@ -1176,6 +1199,19 @@ __TS__SetDescriptor(
1176
1199
  },
1177
1200
  true
1178
1201
  )
1202
+ __TS__SetDescriptor(
1203
+ UnitType.prototype,
1204
+ "armor",
1205
+ {
1206
+ get = function(self)
1207
+ return self:getNumberField("udef")
1208
+ end,
1209
+ set = function(self, armor)
1210
+ self:setNumberField("udef", armor)
1211
+ end
1212
+ },
1213
+ true
1214
+ )
1179
1215
  __TS__SetDescriptor(
1180
1216
  UnitType.prototype,
1181
1217
  "armorSoundType",
@@ -1215,6 +1251,22 @@ __TS__SetDescriptor(
1215
1251
  },
1216
1252
  true
1217
1253
  )
1254
+ __TS__SetDescriptor(
1255
+ UnitType.prototype,
1256
+ "armorType",
1257
+ {
1258
+ get = function(self)
1259
+ return stringToArmorType(self:getStringField("udty"))
1260
+ end,
1261
+ set = function(self, armorType)
1262
+ self:setStringField(
1263
+ "udty",
1264
+ armorTypeToString(armorType)
1265
+ )
1266
+ end
1267
+ },
1268
+ true
1269
+ )
1218
1270
  __TS__SetDescriptor(
1219
1271
  UnitType.prototype,
1220
1272
  "combatClassifications",
@@ -1233,7 +1285,7 @@ __TS__SetDescriptor(
1233
1285
  )
1234
1286
  __TS__SetDescriptor(
1235
1287
  UnitType.prototype,
1236
- "unitClassifications",
1288
+ "classifications",
1237
1289
  {
1238
1290
  get = function(self)
1239
1291
  return stringArrayToUnitClassifications(self:getStringsField("utyp"))
@@ -1341,10 +1393,13 @@ __TS__SetDescriptor(
1341
1393
  "movementType",
1342
1394
  {
1343
1395
  get = function(self)
1344
- return self:getStringField("umvt")
1396
+ return stringToMovementType(self:getStringField("umvt"))
1345
1397
  end,
1346
1398
  set = function(self, movementType)
1347
- self:setStringField("umvt", movementType)
1399
+ self:setStringField(
1400
+ "umvt",
1401
+ movementTypeToString(movementType)
1402
+ )
1348
1403
  end
1349
1404
  },
1350
1405
  true
@@ -1466,6 +1521,19 @@ __TS__SetDescriptor(
1466
1521
  },
1467
1522
  true
1468
1523
  )
1524
+ __TS__SetDescriptor(
1525
+ UnitType.prototype,
1526
+ "level",
1527
+ {
1528
+ get = function(self)
1529
+ return self:getNumberField("ulev")
1530
+ end,
1531
+ set = function(self, level)
1532
+ self:setNumberField("ulev", level)
1533
+ end
1534
+ },
1535
+ true
1536
+ )
1469
1537
  __TS__SetDescriptor(
1470
1538
  UnitType.prototype,
1471
1539
  "manaRegenerationRate",
@@ -1612,11 +1680,11 @@ __TS__SetDescriptor(
1612
1680
  implementReadonlyNumberIndexSupplier(
1613
1681
  ____exports.UnitType,
1614
1682
  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
1683
+ local ____class_25 = __TS__Class()
1684
+ ____class_25.name = ____class_25.name
1685
+ __TS__ClassExtends(____class_25, ____exports.UnitType)
1686
+ ____class_25.BASE_ID = id
1687
+ return ____class_25
1620
1688
  end
1621
1689
  )
1622
1690
  ____exports.HeroUnitType = __TS__Class()
@@ -1677,11 +1745,11 @@ __TS__SetDescriptor(
1677
1745
  implementReadonlyNumberIndexSupplier(
1678
1746
  ____exports.HeroUnitType,
1679
1747
  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
1748
+ local ____class_26 = __TS__Class()
1749
+ ____class_26.name = ____class_26.name
1750
+ __TS__ClassExtends(____class_26, ____exports.HeroUnitType)
1751
+ ____class_26.BASE_ID = id
1752
+ return ____class_26
1685
1753
  end
1686
1754
  )
1687
1755
  return ____exports
@@ -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>;
@@ -1,16 +1,70 @@
1
1
  /** @noSelfInFile */
2
2
  import { Unit } from "../internal/unit";
3
- import { ObjectField } from "../object-field";
3
+ import { ObjectField, ObjectLevelField, ObjectLevelFieldValueChangeEvent, 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";
5
8
  export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
6
9
  protected get instanceClass(): typeof Unit;
7
10
  protected getObjectDataEntryId(instance: Unit): UnitTypeId;
11
+ protected hasNativeFieldValue(): boolean;
12
+ }
13
+ export declare class UnitBooleanField extends UnitField<boolean, junitbooleanfield> {
14
+ protected get defaultValue(): boolean;
15
+ protected getNativeFieldById(id: number): junitbooleanfield;
16
+ protected getNativeFieldValue(instance: Unit): boolean;
17
+ protected setNativeFieldValue(instance: Unit, value: boolean): boolean;
18
+ }
19
+ export declare class UnitFloatField extends UnitField<number, junitrealfield> {
20
+ protected get defaultValue(): number;
21
+ protected getNativeFieldById(id: number): junitrealfield;
22
+ protected getNativeFieldValue(instance: Unit): number;
23
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
24
+ }
25
+ export declare class UnitIntegerField extends UnitField<number, junitintegerfield> {
26
+ protected get defaultValue(): number;
27
+ protected getNativeFieldById(id: number): junitintegerfield;
28
+ protected getNativeFieldValue(instance: Unit): number;
29
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
8
30
  }
9
31
  export declare class UnitStringField extends UnitField<string, junitstringfield> {
10
32
  protected get defaultValue(): string;
11
33
  protected getNativeFieldById(id: number): junitstringfield;
12
- protected hasNativeFieldValue(): boolean;
13
34
  protected getNativeFieldValue(instance: Unit): string;
14
- protected getObjectDataEntryId(instance: Unit): UnitTypeId;
15
35
  protected setNativeFieldValue(instance: Unit, value: string): boolean;
16
36
  }
37
+ type junitweaponfield = junitweaponbooleanfield | junitweaponintegerfield | junitweaponrealfield | junitweaponstringfield;
38
+ 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> {
39
+ protected get instanceClass(): typeof Unit;
40
+ protected getLevelCount(): number;
41
+ protected getObjectDataEntryId(instance: Unit): UnitTypeId;
42
+ protected hasNativeFieldValue(): boolean;
43
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<UnitWeaponField>>;
44
+ }
45
+ export declare abstract class UnitNumberWeaponField<NativeFieldType extends junitweaponintegerfield | junitweaponrealfield = junitweaponintegerfield | junitweaponrealfield> extends UnitWeaponField<number, number, NativeFieldType> {
46
+ protected get defaultValue(): number;
47
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitNumberWeaponField>;
48
+ }
49
+ export declare abstract class UnitEnumWeaponField<T extends number> extends UnitWeaponField<T, T, junitweaponintegerfield> {
50
+ protected abstract values: ReadonlyNonEmptyLinkedSet<T>;
51
+ protected get defaultValue(): T;
52
+ protected getNativeFieldById(id: number): junitweaponintegerfield;
53
+ protected getNativeFieldValue(instance: Unit, index: number): T;
54
+ protected setNativeFieldValue(instance: Unit, index: number, value: T): boolean;
55
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<UnitEnumWeaponField<number>>;
56
+ }
57
+ export declare class UnitAttackTypeWeaponField extends UnitEnumWeaponField<AttackType> {
58
+ protected values: ReadonlyNonEmptyLinkedSet<AttackType>;
59
+ }
60
+ export declare class UnitClassificationsField extends UnitField<UnitClassifications, junitintegerfield> {
61
+ protected get defaultValue(): UnitClassifications;
62
+ protected getNativeFieldById(id: number): junitintegerfield;
63
+ protected getNativeFieldValue(instance: Unit): UnitClassifications;
64
+ protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
65
+ }
66
+ export declare class UnitPropulsionWindowField extends UnitFloatField {
67
+ protected getNativeFieldValue(instance: Unit): number;
68
+ protected setNativeFieldValue(instance: Unit, value: number): boolean;
69
+ }
70
+ export {};