warscript 0.0.1-dev.ea69747 → 0.0.1-dev.fa6dee5

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 (95) hide show
  1. package/attributes.d.ts +12 -0
  2. package/attributes.lua +16 -0
  3. package/core/types/frame.d.ts +0 -1
  4. package/core/types/group.d.ts +0 -1
  5. package/core/types/handle.d.ts +2 -1
  6. package/core/types/handle.lua +5 -0
  7. package/core/types/image.d.ts +0 -1
  8. package/core/types/missile.d.ts +2 -2
  9. package/core/types/missile.lua +8 -2
  10. package/core/types/unit.lua +8 -0
  11. package/core/util.lua +1 -1
  12. package/engine/ability.d.ts +1 -1
  13. package/engine/behavior.d.ts +6 -6
  14. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  15. package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
  16. package/engine/behaviour/ability/instant-impact.lua +4 -0
  17. package/engine/behaviour/ability.d.ts +8 -1
  18. package/engine/behaviour/ability.lua +62 -0
  19. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  20. package/engine/buff.d.ts +2 -2
  21. package/engine/internal/ability.d.ts +1 -1
  22. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  23. package/engine/internal/mechanics/ability-duration.lua +2 -0
  24. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  25. package/engine/internal/mechanics/cast-ability.lua +86 -0
  26. package/engine/internal/unit/bonus.d.ts +5 -6
  27. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  28. package/engine/internal/unit/detach-missiles.lua +30 -0
  29. package/engine/internal/unit-missile-launch.lua +1 -1
  30. package/engine/internal/unit.d.ts +36 -9
  31. package/engine/internal/unit.lua +215 -63
  32. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  33. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  34. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  35. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  36. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  37. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  38. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  39. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  40. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  41. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  42. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  43. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  44. package/engine/object-data/entry/ability-type.d.ts +1 -1
  45. package/engine/object-data/entry/ability-type.lua +1 -0
  46. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  47. package/engine/object-data/entry/buff-type/applicable.lua +27 -71
  48. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  49. package/engine/object-data/entry/buff-type.d.ts +0 -1
  50. package/engine/object-data/entry/destructible-type.d.ts +0 -1
  51. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  52. package/engine/object-data/entry/item-type.d.ts +0 -1
  53. package/engine/object-data/entry/lightning-type.d.ts +0 -1
  54. package/engine/object-data/entry/unit-type.d.ts +42 -2
  55. package/engine/object-data/entry/unit-type.lua +378 -50
  56. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  57. package/engine/object-data/entry/upgrade.d.ts +0 -1
  58. package/engine/object-data/entry.d.ts +2 -3
  59. package/engine/object-field/ability.d.ts +8 -6
  60. package/engine/object-field/ability.lua +6 -0
  61. package/engine/object-field/unit.d.ts +1 -0
  62. package/engine/object-field/unit.lua +3 -0
  63. package/engine/object-field.d.ts +6 -4
  64. package/engine/object-field.lua +38 -12
  65. package/engine/random.d.ts +1 -0
  66. package/engine/random.lua +9 -0
  67. package/engine/standard/entries/unit-type.d.ts +42 -1
  68. package/engine/standard/entries/unit-type.lua +42 -1
  69. package/engine/standard/fields/ability.d.ts +1 -1
  70. package/engine/standard/fields/ability.lua +1 -1
  71. package/engine/unit.d.ts +1 -0
  72. package/engine/unit.lua +10 -2
  73. package/event.d.ts +0 -1
  74. package/exception.d.ts +2 -0
  75. package/exception.lua +4 -0
  76. package/global/vec2.lua +1 -0
  77. package/lualib_bundle.lua +139 -40
  78. package/math/vec2.d.ts +2 -9
  79. package/math.d.ts +0 -2
  80. package/objutil/ability.d.ts +0 -1
  81. package/objutil/buff.d.ts +0 -1
  82. package/objutil/object.d.ts +0 -1
  83. package/objutil/unit.d.ts +0 -1
  84. package/package.json +13 -14
  85. package/string.d.ts +30 -0
  86. package/string.lua +14 -0
  87. package/util/stream.d.ts +0 -1
  88. package/utility/arrays.d.ts +4 -5
  89. package/utility/arrays.lua +4 -1
  90. package/utility/bit-set.d.ts +0 -2
  91. package/utility/linked-set.d.ts +21 -8
  92. package/utility/linked-set.lua +16 -0
  93. package/utility/lua-maps.d.ts +1 -2
  94. package/utility/lua-sets.d.ts +1 -2
  95. package/utility/types.d.ts +2 -2
@@ -3,6 +3,7 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
4
  local __TS__New = ____lualib.__TS__New
5
5
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
6
+ local __TS__ArrayIsArray = ____lualib.__TS__ArrayIsArray
6
7
  local ____exports = {}
7
8
  local ____arrays = require("utility.arrays")
8
9
  local arrayOfNotNull = ____arrays.arrayOfNotNull
@@ -28,21 +29,21 @@ function UnitTypeWeapon.prototype.____constructor(self, unitType, index)
28
29
  end
29
30
  __TS__SetDescriptor(
30
31
  UnitTypeWeapon.prototype,
31
- "backSwingDuration",
32
+ "attackType",
32
33
  {
33
34
  get = function(self)
34
35
  local ____self_0 = self.unitType
35
- return ____self_0.getNumberField(
36
+ return ____self_0.getStringField(
36
37
  ____self_0,
37
- "ubs" .. tostring(self.index)
38
+ ("ua" .. tostring(self.index)) .. "t"
38
39
  )
39
40
  end,
40
- set = function(self, backSwingDuration)
41
+ set = function(self, attackType)
41
42
  local ____self_1 = self.unitType
42
- ____self_1.setNumberField(
43
+ ____self_1.setStringField(
43
44
  ____self_1,
44
- "ubs" .. tostring(self.index),
45
- backSwingDuration
45
+ ("ua" .. tostring(self.index)) .. "t",
46
+ attackType
46
47
  )
47
48
  end
48
49
  },
@@ -50,19 +51,150 @@ __TS__SetDescriptor(
50
51
  )
51
52
  __TS__SetDescriptor(
52
53
  UnitTypeWeapon.prototype,
53
- "impactDelay",
54
+ "backSwingDuration",
54
55
  {
55
56
  get = function(self)
56
57
  local ____self_2 = self.unitType
57
58
  return ____self_2.getNumberField(
58
59
  ____self_2,
59
- "udp" .. tostring(self.index)
60
+ "ubs" .. tostring(self.index)
60
61
  )
61
62
  end,
62
- set = function(self, impactDelay)
63
+ set = function(self, backSwingDuration)
63
64
  local ____self_3 = self.unitType
64
65
  ____self_3.setNumberField(
65
66
  ____self_3,
67
+ "ubs" .. tostring(self.index),
68
+ backSwingDuration
69
+ )
70
+ end
71
+ },
72
+ true
73
+ )
74
+ __TS__SetDescriptor(
75
+ UnitTypeWeapon.prototype,
76
+ "cooldown",
77
+ {
78
+ get = function(self)
79
+ local ____self_4 = self.unitType
80
+ return ____self_4.getNumberField(
81
+ ____self_4,
82
+ ("ua" .. tostring(self.index)) .. "c"
83
+ )
84
+ end,
85
+ set = function(self, cooldown)
86
+ local ____self_5 = self.unitType
87
+ ____self_5.setNumberField(
88
+ ____self_5,
89
+ ("ua" .. tostring(self.index)) .. "c",
90
+ cooldown
91
+ )
92
+ end
93
+ },
94
+ true
95
+ )
96
+ __TS__SetDescriptor(
97
+ UnitTypeWeapon.prototype,
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",
120
+ {
121
+ get = function(self)
122
+ local ____self_6 = self.unitType
123
+ return ____self_6.getNumberField(
124
+ ____self_6,
125
+ ("ua" .. tostring(self.index)) .. "b"
126
+ )
127
+ end,
128
+ set = function(self, damageBase)
129
+ local ____self_7 = self.unitType
130
+ ____self_7.setNumberField(
131
+ ____self_7,
132
+ ("ua" .. tostring(self.index)) .. "b",
133
+ damageBase
134
+ )
135
+ end
136
+ },
137
+ true
138
+ )
139
+ __TS__SetDescriptor(
140
+ UnitTypeWeapon.prototype,
141
+ "damageDiceCount",
142
+ {
143
+ get = function(self)
144
+ local ____self_8 = self.unitType
145
+ return ____self_8.getNumberField(
146
+ ____self_8,
147
+ ("ua" .. tostring(self.index)) .. "d"
148
+ )
149
+ end,
150
+ set = function(self, damageDiceNumber)
151
+ local ____self_9 = self.unitType
152
+ ____self_9.setNumberField(
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,
66
198
  "udp" .. tostring(self.index),
67
199
  impactDelay
68
200
  )
@@ -75,16 +207,16 @@ __TS__SetDescriptor(
75
207
  "missileModelPath",
76
208
  {
77
209
  get = function(self)
78
- local ____self_4 = self.unitType
79
- return ____self_4.getStringField(
80
- ____self_4,
210
+ local ____self_14 = self.unitType
211
+ return ____self_14.getStringField(
212
+ ____self_14,
81
213
  ("ua" .. tostring(self.index)) .. "m"
82
214
  )
83
215
  end,
84
216
  set = function(self, missileModelPath)
85
- local ____self_5 = self.unitType
86
- ____self_5.setStringField(
87
- ____self_5,
217
+ local ____self_15 = self.unitType
218
+ ____self_15.setStringField(
219
+ ____self_15,
88
220
  ("ua" .. tostring(self.index)) .. "m",
89
221
  missileModelPath
90
222
  )
@@ -92,21 +224,43 @@ __TS__SetDescriptor(
92
224
  },
93
225
  true
94
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,
242
+ ("ua" .. tostring(self.index)) .. "r",
243
+ range
244
+ )
245
+ end
246
+ },
247
+ true
248
+ )
95
249
  __TS__SetDescriptor(
96
250
  UnitTypeWeapon.prototype,
97
251
  "soundType",
98
252
  {
99
253
  get = function(self)
100
- local ____self_6 = self.unitType
101
- return ____self_6.getStringField(
102
- ____self_6,
254
+ local ____self_18 = self.unitType
255
+ return ____self_18.getStringField(
256
+ ____self_18,
103
257
  "ucs" .. tostring(self.index)
104
258
  )
105
259
  end,
106
260
  set = function(self, soundType)
107
- local ____self_7 = self.unitType
108
- ____self_7.setStringField(
109
- ____self_7,
261
+ local ____self_19 = self.unitType
262
+ ____self_19.setStringField(
263
+ ____self_19,
110
264
  "ucs" .. tostring(self.index),
111
265
  soundType
112
266
  )
@@ -119,16 +273,16 @@ __TS__SetDescriptor(
119
273
  "soundTypeSD",
120
274
  {
121
275
  get = function(self)
122
- local ____self_8 = self.unitType
123
- return ____self_8.getStringField(
124
- ____self_8,
276
+ local ____self_20 = self.unitType
277
+ return ____self_20.getStringField(
278
+ ____self_20,
125
279
  ("ucs" .. tostring(self.index)) .. ":sd"
126
280
  )
127
281
  end,
128
282
  set = function(self, soundTypeSD)
129
- local ____self_9 = self.unitType
130
- ____self_9.setStringField(
131
- ____self_9,
283
+ local ____self_21 = self.unitType
284
+ ____self_21.setStringField(
285
+ ____self_21,
132
286
  ("ucs" .. tostring(self.index)) .. ":sd",
133
287
  soundTypeSD
134
288
  )
@@ -141,16 +295,16 @@ __TS__SetDescriptor(
141
295
  "soundTypeHD",
142
296
  {
143
297
  get = function(self)
144
- local ____self_10 = self.unitType
145
- return ____self_10.getStringField(
146
- ____self_10,
298
+ local ____self_22 = self.unitType
299
+ return ____self_22.getStringField(
300
+ ____self_22,
147
301
  ("ucs" .. tostring(self.index)) .. ":hd"
148
302
  )
149
303
  end,
150
304
  set = function(self, soundTypeHD)
151
- local ____self_11 = self.unitType
152
- ____self_11.setStringField(
153
- ____self_11,
305
+ local ____self_23 = self.unitType
306
+ ____self_23.setStringField(
307
+ ____self_23,
154
308
  ("ucs" .. tostring(self.index)) .. ":hd",
155
309
  soundTypeHD
156
310
  )
@@ -683,6 +837,45 @@ __TS__SetDescriptor(
683
837
  },
684
838
  true
685
839
  )
840
+ __TS__SetDescriptor(
841
+ UnitType.prototype,
842
+ "runSpeed",
843
+ {
844
+ get = function(self)
845
+ return self:getNumberField("urun")
846
+ end,
847
+ set = function(self, runSpeed)
848
+ self:setNumberField("urun", runSpeed)
849
+ end
850
+ },
851
+ true
852
+ )
853
+ __TS__SetDescriptor(
854
+ UnitType.prototype,
855
+ "runSpeedSD",
856
+ {
857
+ get = function(self)
858
+ return self:getNumberField("urun:sd")
859
+ end,
860
+ set = function(self, runSpeedSD)
861
+ self:setNumberField("urun:sd", runSpeedSD)
862
+ end
863
+ },
864
+ true
865
+ )
866
+ __TS__SetDescriptor(
867
+ UnitType.prototype,
868
+ "runSpeedHD",
869
+ {
870
+ get = function(self)
871
+ return self:getNumberField("urun:hd")
872
+ end,
873
+ set = function(self, runSpeedHD)
874
+ self:setNumberField("urun:hd", runSpeedHD)
875
+ end
876
+ },
877
+ true
878
+ )
686
879
  __TS__SetDescriptor(
687
880
  UnitType.prototype,
688
881
  "selectionCircleScale",
@@ -891,6 +1084,45 @@ __TS__SetDescriptor(
891
1084
  },
892
1085
  true
893
1086
  )
1087
+ __TS__SetDescriptor(
1088
+ UnitType.prototype,
1089
+ "walkSpeed",
1090
+ {
1091
+ get = function(self)
1092
+ return self:getNumberField("uwal")
1093
+ end,
1094
+ set = function(self, walkSpeed)
1095
+ self:setNumberField("uwal", walkSpeed)
1096
+ end
1097
+ },
1098
+ true
1099
+ )
1100
+ __TS__SetDescriptor(
1101
+ UnitType.prototype,
1102
+ "walkSpeedSD",
1103
+ {
1104
+ get = function(self)
1105
+ return self:getNumberField("uwal:sd")
1106
+ end,
1107
+ set = function(self, walkSpeedSD)
1108
+ self:setNumberField("uwal:sd", walkSpeedSD)
1109
+ end
1110
+ },
1111
+ true
1112
+ )
1113
+ __TS__SetDescriptor(
1114
+ UnitType.prototype,
1115
+ "walkSpeedHD",
1116
+ {
1117
+ get = function(self)
1118
+ return self:getNumberField("uwal:hd")
1119
+ end,
1120
+ set = function(self, walkSpeedHD)
1121
+ self:setNumberField("uwal:hd", walkSpeedHD)
1122
+ end
1123
+ },
1124
+ true
1125
+ )
894
1126
  __TS__SetDescriptor(
895
1127
  UnitType.prototype,
896
1128
  "armorSoundType",
@@ -964,25 +1196,25 @@ __TS__SetDescriptor(
964
1196
  )
965
1197
  __TS__SetDescriptor(
966
1198
  UnitType.prototype,
967
- "firstWeapon",
1199
+ "weapons",
968
1200
  {get = function(self)
969
- return self.weapons[1]
1201
+ return getOrCreateUnitTypeWeapons(self)
970
1202
  end},
971
1203
  true
972
1204
  )
973
1205
  __TS__SetDescriptor(
974
1206
  UnitType.prototype,
975
- "secondWeapon",
1207
+ "firstWeapon",
976
1208
  {get = function(self)
977
- return self.weapons[2]
1209
+ return self.weapons[1]
978
1210
  end},
979
1211
  true
980
1212
  )
981
1213
  __TS__SetDescriptor(
982
1214
  UnitType.prototype,
983
- "weapons",
1215
+ "secondWeapon",
984
1216
  {get = function(self)
985
- return getOrCreateUnitTypeWeapons(self)
1217
+ return self.weapons[2]
986
1218
  end},
987
1219
  true
988
1220
  )
@@ -1168,6 +1400,71 @@ __TS__SetDescriptor(
1168
1400
  },
1169
1401
  true
1170
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
+ )
1171
1468
  __TS__SetDescriptor(
1172
1469
  UnitType.prototype,
1173
1470
  "isStructure",
@@ -1262,11 +1559,11 @@ __TS__SetDescriptor(
1262
1559
  implementReadonlyNumberIndexSupplier(
1263
1560
  ____exports.UnitType,
1264
1561
  function(id)
1265
- local ____class_12 = __TS__Class()
1266
- ____class_12.name = ____class_12.name
1267
- __TS__ClassExtends(____class_12, ____exports.UnitType)
1268
- ____class_12.BASE_ID = id
1269
- return ____class_12
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
1270
1567
  end
1271
1568
  )
1272
1569
  ____exports.HeroUnitType = __TS__Class()
@@ -1293,14 +1590,45 @@ __TS__SetDescriptor(
1293
1590
  },
1294
1591
  true
1295
1592
  )
1593
+ __TS__SetDescriptor(
1594
+ HeroUnitType.prototype,
1595
+ "properNames",
1596
+ {
1597
+ get = function(self)
1598
+ return self:getStringsField("upro")
1599
+ end,
1600
+ set = function(self, properNames)
1601
+ if __TS__ArrayIsArray(properNames) then
1602
+ self:setStringsField("upro", properNames)
1603
+ self:setNumberField("upru", #properNames)
1604
+ else
1605
+ self:setStringField("upro", properNames)
1606
+ end
1607
+ end
1608
+ },
1609
+ true
1610
+ )
1611
+ __TS__SetDescriptor(
1612
+ HeroUnitType.prototype,
1613
+ "properNameCount",
1614
+ {
1615
+ get = function(self)
1616
+ return self:getNumberField("upru")
1617
+ end,
1618
+ set = function(self, properNameCount)
1619
+ self:setNumberField("upru", properNameCount)
1620
+ end
1621
+ },
1622
+ true
1623
+ )
1296
1624
  implementReadonlyNumberIndexSupplier(
1297
1625
  ____exports.HeroUnitType,
1298
1626
  function(id)
1299
- local ____class_13 = __TS__Class()
1300
- ____class_13.name = ____class_13.name
1301
- __TS__ClassExtends(____class_13, ____exports.HeroUnitType)
1302
- ____class_13.BASE_ID = id
1303
- return ____class_13
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
1304
1632
  end
1305
1633
  )
1306
1634
  return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { Upgrade, UpgradeId } from "../upgrade";
4
3
  export declare class BlankUpgrade extends Upgrade {
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { TupleOf } from "../../../utility/types";
4
3
  import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
@@ -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> | undefined, InputValueType = ValueType>(supplier: ObjectDataEntryLevelFieldValueSupplier<ValueType, InputValueType>, level: number, currentValue: InputValueType) => ValueType;
14
- export declare const extractObjectDataEntryLevelArrayFieldValue: <T extends string | number | boolean | Record<string, any> | undefined, S extends T[]>(supplier: ObjectDataEntryLevelFieldValueSupplier<S, S>, level: number, currentValue: S) => S;
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,14 +1,15 @@
1
1
  /** @noSelfInFile */
2
- import { Ability } from "../internal/ability";
2
+ import { Ability, jabilityfield } from "../internal/ability";
3
3
  import { ObjectArrayField, ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
4
4
  import { AbilityType, AbilityTypeId } from "../object-data/entry/ability-type";
5
5
  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
- export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
9
+ export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
10
10
  protected get instanceClass(): typeof Ability;
11
11
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
12
+ protected hasNativeFieldValue(instance: Ability): boolean;
12
13
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
13
14
  }
14
15
  export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
@@ -18,7 +19,7 @@ export declare class AbilityBooleanField extends AbilityField<boolean, jabilityb
18
19
  protected setNativeFieldValue(instance: Ability, value: boolean): boolean;
19
20
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityBooleanField>;
20
21
  }
21
- export declare abstract class AbilityNumberField<NativeFieldType = unknown> extends AbilityField<number, NativeFieldType> {
22
+ export declare abstract class AbilityNumberField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityField<number, NativeFieldType> {
22
23
  protected get defaultValue(): number;
23
24
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityNumberField>;
24
25
  }
@@ -59,10 +60,11 @@ export declare abstract class AbilityObjectDataEntryIdArrayField<T extends Objec
59
60
  }
60
61
  export declare class AbilityLightningTypeIdArrayField extends AbilityObjectDataEntryIdArrayField<LightningTypeId> {
61
62
  }
62
- export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType = unknown> extends ObjectLevelField<AbilityType, Ability, ValueType, InputValueType, NativeFieldType> {
63
+ export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectLevelField<AbilityType, Ability, ValueType, InputValueType, NativeFieldType> {
63
64
  protected get instanceClass(): typeof Ability;
64
65
  protected getLevelCount(entry: AbilityType | Ability): number;
65
66
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
67
+ protected hasNativeFieldValue(instance: Ability): boolean;
66
68
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
67
69
  }
68
70
  export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
@@ -72,7 +74,7 @@ export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean,
72
74
  protected setNativeFieldValue(instance: Ability, level: number, value: boolean): boolean;
73
75
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
74
76
  }
75
- export declare abstract class AbilityNumberLevelField<NativeFieldType = unknown> extends AbilityLevelField<number, number, NativeFieldType> {
77
+ export declare abstract class AbilityNumberLevelField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityLevelField<number, number, NativeFieldType> {
76
78
  protected get defaultValue(): number;
77
79
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityNumberLevelField>;
78
80
  }
@@ -112,4 +114,4 @@ export declare class AbilityCombatClassificationsLevelField extends AbilityLevel
112
114
  protected setNativeFieldValue(instance: Ability, level: number, value: CombatClassifications): boolean;
113
115
  }
114
116
  export type AbilityDependentValue<ValueType extends boolean | number | string> = ValueType | AbilityField<ValueType> | AbilityLevelField<ValueType> | ((ability: Ability) => ValueType);
115
- export declare const resolveCurrentAbilityDependentValue: <ValueType extends string | number | boolean>(ability: Ability, value: AbilityDependentValue<ValueType>) => ValueType;
117
+ export declare const resolveCurrentAbilityDependentValue: <ValueType extends boolean | number | string>(ability: Ability, value: AbilityDependentValue<ValueType>) => ValueType;
@@ -27,6 +27,9 @@ __TS__ClassExtends(AbilityField, ObjectField)
27
27
  function AbilityField.prototype.getObjectDataEntryId(self, instance)
28
28
  return instance.typeId
29
29
  end
30
+ function AbilityField.prototype.hasNativeFieldValue(self, instance)
31
+ return instance:hasField(self.nativeField)
32
+ end
30
33
  __TS__SetDescriptor(
31
34
  AbilityField.prototype,
32
35
  "instanceClass",
@@ -261,6 +264,9 @@ end
261
264
  function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
262
265
  return instance.typeId
263
266
  end
267
+ function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
268
+ return instance:hasField(self.nativeField)
269
+ end
264
270
  __TS__SetDescriptor(
265
271
  AbilityLevelField.prototype,
266
272
  "instanceClass",
@@ -9,6 +9,7 @@ export declare abstract class UnitField<ValueType extends number | string | bool
9
9
  export declare class UnitStringField extends UnitField<string, junitstringfield> {
10
10
  protected get defaultValue(): string;
11
11
  protected getNativeFieldById(id: number): junitstringfield;
12
+ protected hasNativeFieldValue(): boolean;
12
13
  protected getNativeFieldValue(instance: Unit): string;
13
14
  protected getObjectDataEntryId(instance: Unit): UnitTypeId;
14
15
  protected setNativeFieldValue(instance: Unit, value: string): boolean;