warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f1df135

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 (201) hide show
  1. package/attributes.d.ts +0 -1
  2. package/binaryreader.d.ts +1 -0
  3. package/binaryreader.lua +3 -0
  4. package/config.d.ts +5 -0
  5. package/config.lua +10 -0
  6. package/core/types/effect.d.ts +14 -6
  7. package/core/types/effect.lua +131 -35
  8. package/core/types/frame.d.ts +8 -1
  9. package/core/types/frame.lua +93 -1
  10. package/core/types/group.d.ts +0 -1
  11. package/core/types/image.d.ts +0 -1
  12. package/core/types/missile.d.ts +2 -2
  13. package/core/types/missile.lua +8 -2
  14. package/core/types/sound.d.ts +17 -24
  15. package/core/types/sound.lua +94 -24
  16. package/core/types/timer.d.ts +6 -7
  17. package/core/types/timer.lua +18 -21
  18. package/core/types/unit.lua +8 -0
  19. package/core/util.d.ts +1 -1
  20. package/core/util.lua +18 -1
  21. package/decl/index.d.ts +1 -0
  22. package/engine/ability.d.ts +1 -1
  23. package/engine/behavior.d.ts +10 -10
  24. package/engine/behavior.lua +6 -6
  25. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  26. package/engine/behaviour/ability/always-enabled.lua +31 -0
  27. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  28. package/engine/behaviour/ability/apply-buff.lua +32 -0
  29. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  30. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  31. package/engine/behaviour/ability/damage.d.ts +36 -11
  32. package/engine/behaviour/ability/damage.lua +90 -32
  33. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  34. package/engine/behaviour/ability/emulate-impact.lua +28 -0
  35. package/engine/behaviour/ability/heal.d.ts +33 -6
  36. package/engine/behaviour/ability/heal.lua +89 -10
  37. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  38. package/engine/behaviour/ability/instant-impact.lua +4 -15
  39. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  40. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  41. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  42. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  43. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  44. package/engine/behaviour/ability/restore-mana.lua +29 -0
  45. package/engine/behaviour/ability.d.ts +27 -4
  46. package/engine/behaviour/ability.lua +152 -17
  47. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  48. package/engine/behaviour/unit.d.ts +10 -2
  49. package/engine/behaviour/unit.lua +27 -0
  50. package/engine/buff.d.ts +103 -41
  51. package/engine/buff.lua +465 -212
  52. package/engine/game-map.d.ts +7 -0
  53. package/engine/game-map.lua +32 -0
  54. package/engine/internal/ability.d.ts +16 -13
  55. package/engine/internal/ability.lua +80 -76
  56. package/engine/internal/item/ability.lua +106 -0
  57. package/engine/internal/item+owner.lua +2 -2
  58. package/engine/internal/item.d.ts +2 -2
  59. package/engine/internal/item.lua +56 -25
  60. package/engine/internal/mechanics/ability-duration.lua +1 -1
  61. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  62. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  63. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  64. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  65. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  66. package/engine/internal/object-data/evasion-probability.lua +16 -0
  67. package/engine/internal/unit/ability.d.ts +10 -1
  68. package/engine/internal/unit/ability.lua +36 -14
  69. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  70. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  71. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  72. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  73. package/engine/internal/unit/bonus.d.ts +11 -8
  74. package/engine/internal/unit/bonus.lua +23 -1
  75. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  76. package/engine/internal/unit/ignore-events-items.lua +5 -0
  77. package/engine/internal/unit/item.d.ts +24 -0
  78. package/engine/internal/unit/item.lua +78 -0
  79. package/engine/internal/unit/main-selected.d.ts +13 -0
  80. package/engine/internal/unit/main-selected.lua +51 -0
  81. package/engine/internal/unit+ability.lua +2 -2
  82. package/engine/internal/unit+transport.lua +4 -10
  83. package/engine/internal/unit-missile-launch.lua +25 -6
  84. package/engine/internal/unit.d.ts +64 -16
  85. package/engine/internal/unit.lua +381 -134
  86. package/engine/internal/utility.lua +12 -0
  87. package/engine/lightning.d.ts +12 -5
  88. package/engine/lightning.lua +48 -14
  89. package/engine/local-client.d.ts +7 -2
  90. package/engine/local-client.lua +82 -0
  91. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  92. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  93. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  94. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  95. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  96. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  97. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  98. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  99. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  100. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  101. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  102. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  103. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  104. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  105. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  106. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  107. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  108. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  109. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  110. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  111. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  112. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  113. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  114. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  115. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  116. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  117. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  118. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  119. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  120. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  121. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  122. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  123. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  124. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  125. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  126. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  127. package/engine/object-data/entry/ability-type/web.lua +52 -0
  128. package/engine/object-data/entry/ability-type.d.ts +19 -18
  129. package/engine/object-data/entry/ability-type.lua +82 -33
  130. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  131. package/engine/object-data/entry/buff-type/applicable.lua +13 -37
  132. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  133. package/engine/object-data/entry/buff-type.d.ts +1 -2
  134. package/engine/object-data/entry/buff-type.lua +2 -2
  135. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  136. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  137. package/engine/object-data/entry/item-type.d.ts +15 -2
  138. package/engine/object-data/entry/item-type.lua +93 -2
  139. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  140. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  141. package/engine/object-data/entry/sound-preset.lua +140 -0
  142. package/engine/object-data/entry/unit-type.d.ts +45 -3
  143. package/engine/object-data/entry/unit-type.lua +394 -57
  144. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  145. package/engine/object-data/entry/upgrade.d.ts +1 -2
  146. package/engine/object-data/entry/upgrade.lua +4 -4
  147. package/engine/object-data/entry.d.ts +18 -17
  148. package/engine/object-data/entry.lua +60 -32
  149. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  150. package/engine/object-field/ability.d.ts +26 -3
  151. package/engine/object-field/ability.lua +54 -1
  152. package/engine/object-field.d.ts +2 -3
  153. package/engine/object-field.lua +4 -0
  154. package/engine/random.d.ts +1 -0
  155. package/engine/random.lua +9 -0
  156. package/engine/standard/entries/sound-preset.d.ts +10 -0
  157. package/engine/standard/entries/sound-preset.lua +10 -0
  158. package/engine/standard/entries/unit-type.d.ts +39 -1
  159. package/engine/standard/entries/unit-type.lua +39 -1
  160. package/engine/standard/fields/ability.d.ts +3 -1
  161. package/engine/standard/fields/ability.lua +3 -1
  162. package/engine/unit.d.ts +3 -0
  163. package/engine/unit.lua +12 -2
  164. package/event.d.ts +2 -3
  165. package/event.lua +9 -5
  166. package/index.d.ts +1 -0
  167. package/index.lua +1 -0
  168. package/lualib_bundle.lua +146 -42
  169. package/math/vec2.d.ts +2 -9
  170. package/math.d.ts +0 -2
  171. package/net/socket.d.ts +7 -1
  172. package/net/socket.lua +45 -4
  173. package/network.d.ts +1 -0
  174. package/network.lua +3 -2
  175. package/objutil/ability.d.ts +0 -1
  176. package/objutil/buff.d.ts +0 -1
  177. package/objutil/buff.lua +1 -1
  178. package/objutil/object.d.ts +0 -1
  179. package/objutil/unit.d.ts +0 -1
  180. package/objutil/unit.lua +8 -0
  181. package/package.json +13 -14
  182. package/patch-lua.d.ts +0 -0
  183. package/patch-lua.lua +10 -0
  184. package/property.d.ts +55 -0
  185. package/property.lua +374 -0
  186. package/string.d.ts +30 -0
  187. package/string.lua +14 -0
  188. package/util/stream.d.ts +0 -1
  189. package/utility/arrays.d.ts +11 -5
  190. package/utility/arrays.lua +34 -3
  191. package/utility/bit-set.d.ts +0 -2
  192. package/utility/lazy.d.ts +2 -0
  193. package/utility/lazy.lua +14 -0
  194. package/utility/linked-set.d.ts +11 -3
  195. package/utility/linked-set.lua +5 -2
  196. package/utility/lua-maps.d.ts +1 -2
  197. package/utility/lua-sets.d.ts +1 -2
  198. package/utility/reflection.lua +11 -7
  199. package/utility/types.d.ts +1 -0
  200. package/core/mapbounds.d.ts +0 -8
  201. package/core/mapbounds.lua +0 -12
@@ -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
@@ -18,6 +19,8 @@ local ____entry = require("engine.object-data.entry")
18
19
  local ObjectDataEntry = ____entry.ObjectDataEntry
19
20
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
20
21
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
22
+ local ____config = require("config")
23
+ local WarscriptConfig = ____config.WarscriptConfig
21
24
  local getOrCreateUnitTypeWeapons
22
25
  ____exports.UnitTypeWeapon = __TS__Class()
23
26
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -72,21 +75,21 @@ __TS__SetDescriptor(
72
75
  )
73
76
  __TS__SetDescriptor(
74
77
  UnitTypeWeapon.prototype,
75
- "impactDelay",
78
+ "cooldown",
76
79
  {
77
80
  get = function(self)
78
81
  local ____self_4 = self.unitType
79
82
  return ____self_4.getNumberField(
80
83
  ____self_4,
81
- "udp" .. tostring(self.index)
84
+ ("ua" .. tostring(self.index)) .. "c"
82
85
  )
83
86
  end,
84
- set = function(self, impactDelay)
87
+ set = function(self, cooldown)
85
88
  local ____self_5 = self.unitType
86
89
  ____self_5.setNumberField(
87
90
  ____self_5,
88
- "udp" .. tostring(self.index),
89
- impactDelay
91
+ ("ua" .. tostring(self.index)) .. "c",
92
+ cooldown
90
93
  )
91
94
  end
92
95
  },
@@ -94,21 +97,42 @@ __TS__SetDescriptor(
94
97
  )
95
98
  __TS__SetDescriptor(
96
99
  UnitTypeWeapon.prototype,
97
- "missileModelPath",
100
+ "damage",
101
+ {
102
+ get = function(self)
103
+ local minimumDamage = self.damageBase + self.damageDiceCount
104
+ local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
105
+ return {minimumDamage, maximumDamage}
106
+ end,
107
+ set = function(self, ____bindingPattern0)
108
+ local maximumDamage
109
+ local minimumDamage
110
+ minimumDamage = ____bindingPattern0[1]
111
+ maximumDamage = ____bindingPattern0[2]
112
+ self.damageBase = minimumDamage - 1
113
+ self.damageDiceCount = 1
114
+ self.damageDiceSideCount = maximumDamage - minimumDamage + 1
115
+ end
116
+ },
117
+ true
118
+ )
119
+ __TS__SetDescriptor(
120
+ UnitTypeWeapon.prototype,
121
+ "damageBase",
98
122
  {
99
123
  get = function(self)
100
124
  local ____self_6 = self.unitType
101
- return ____self_6.getStringField(
125
+ return ____self_6.getNumberField(
102
126
  ____self_6,
103
- ("ua" .. tostring(self.index)) .. "m"
127
+ ("ua" .. tostring(self.index)) .. "b"
104
128
  )
105
129
  end,
106
- set = function(self, missileModelPath)
130
+ set = function(self, damageBase)
107
131
  local ____self_7 = self.unitType
108
- ____self_7.setStringField(
132
+ ____self_7.setNumberField(
109
133
  ____self_7,
110
- ("ua" .. tostring(self.index)) .. "m",
111
- missileModelPath
134
+ ("ua" .. tostring(self.index)) .. "b",
135
+ damageBase
112
136
  )
113
137
  end
114
138
  },
@@ -116,19 +140,107 @@ __TS__SetDescriptor(
116
140
  )
117
141
  __TS__SetDescriptor(
118
142
  UnitTypeWeapon.prototype,
119
- "range",
143
+ "damageDiceCount",
120
144
  {
121
145
  get = function(self)
122
146
  local ____self_8 = self.unitType
123
147
  return ____self_8.getNumberField(
124
148
  ____self_8,
125
- ("ua" .. tostring(self.index)) .. "r"
149
+ ("ua" .. tostring(self.index)) .. "d"
126
150
  )
127
151
  end,
128
- set = function(self, range)
152
+ set = function(self, damageDiceNumber)
129
153
  local ____self_9 = self.unitType
130
154
  ____self_9.setNumberField(
131
155
  ____self_9,
156
+ ("ua" .. tostring(self.index)) .. "d",
157
+ damageDiceNumber
158
+ )
159
+ end
160
+ },
161
+ true
162
+ )
163
+ __TS__SetDescriptor(
164
+ UnitTypeWeapon.prototype,
165
+ "damageDiceSideCount",
166
+ {
167
+ get = function(self)
168
+ local ____self_10 = self.unitType
169
+ return ____self_10.getNumberField(
170
+ ____self_10,
171
+ ("ua" .. tostring(self.index)) .. "s"
172
+ )
173
+ end,
174
+ set = function(self, damageDiceSideCount)
175
+ local ____self_11 = self.unitType
176
+ ____self_11.setNumberField(
177
+ ____self_11,
178
+ ("ua" .. tostring(self.index)) .. "s",
179
+ damageDiceSideCount
180
+ )
181
+ end
182
+ },
183
+ true
184
+ )
185
+ __TS__SetDescriptor(
186
+ UnitTypeWeapon.prototype,
187
+ "impactDelay",
188
+ {
189
+ get = function(self)
190
+ local ____self_12 = self.unitType
191
+ return ____self_12.getNumberField(
192
+ ____self_12,
193
+ "udp" .. tostring(self.index)
194
+ )
195
+ end,
196
+ set = function(self, impactDelay)
197
+ local ____self_13 = self.unitType
198
+ ____self_13.setNumberField(
199
+ ____self_13,
200
+ "udp" .. tostring(self.index),
201
+ impactDelay
202
+ )
203
+ end
204
+ },
205
+ true
206
+ )
207
+ __TS__SetDescriptor(
208
+ UnitTypeWeapon.prototype,
209
+ "missileModelPath",
210
+ {
211
+ get = function(self)
212
+ local ____self_14 = self.unitType
213
+ return ____self_14.getStringField(
214
+ ____self_14,
215
+ ("ua" .. tostring(self.index)) .. "m"
216
+ )
217
+ end,
218
+ set = function(self, missileModelPath)
219
+ local ____self_15 = self.unitType
220
+ ____self_15.setStringField(
221
+ ____self_15,
222
+ ("ua" .. tostring(self.index)) .. "m",
223
+ missileModelPath
224
+ )
225
+ end
226
+ },
227
+ true
228
+ )
229
+ __TS__SetDescriptor(
230
+ UnitTypeWeapon.prototype,
231
+ "range",
232
+ {
233
+ get = function(self)
234
+ local ____self_16 = self.unitType
235
+ return ____self_16.getNumberField(
236
+ ____self_16,
237
+ ("ua" .. tostring(self.index)) .. "r"
238
+ )
239
+ end,
240
+ set = function(self, range)
241
+ local ____self_17 = self.unitType
242
+ ____self_17.setNumberField(
243
+ ____self_17,
132
244
  ("ua" .. tostring(self.index)) .. "r",
133
245
  range
134
246
  )
@@ -141,16 +253,16 @@ __TS__SetDescriptor(
141
253
  "soundType",
142
254
  {
143
255
  get = function(self)
144
- local ____self_10 = self.unitType
145
- return ____self_10.getStringField(
146
- ____self_10,
256
+ local ____self_18 = self.unitType
257
+ return ____self_18.getStringField(
258
+ ____self_18,
147
259
  "ucs" .. tostring(self.index)
148
260
  )
149
261
  end,
150
262
  set = function(self, soundType)
151
- local ____self_11 = self.unitType
152
- ____self_11.setStringField(
153
- ____self_11,
263
+ local ____self_19 = self.unitType
264
+ ____self_19.setStringField(
265
+ ____self_19,
154
266
  "ucs" .. tostring(self.index),
155
267
  soundType
156
268
  )
@@ -163,16 +275,16 @@ __TS__SetDescriptor(
163
275
  "soundTypeSD",
164
276
  {
165
277
  get = function(self)
166
- local ____self_12 = self.unitType
167
- return ____self_12.getStringField(
168
- ____self_12,
278
+ local ____self_20 = self.unitType
279
+ return ____self_20.getStringField(
280
+ ____self_20,
169
281
  ("ucs" .. tostring(self.index)) .. ":sd"
170
282
  )
171
283
  end,
172
284
  set = function(self, soundTypeSD)
173
- local ____self_13 = self.unitType
174
- ____self_13.setStringField(
175
- ____self_13,
285
+ local ____self_21 = self.unitType
286
+ ____self_21.setStringField(
287
+ ____self_21,
176
288
  ("ucs" .. tostring(self.index)) .. ":sd",
177
289
  soundTypeSD
178
290
  )
@@ -185,16 +297,16 @@ __TS__SetDescriptor(
185
297
  "soundTypeHD",
186
298
  {
187
299
  get = function(self)
188
- local ____self_14 = self.unitType
189
- return ____self_14.getStringField(
190
- ____self_14,
300
+ local ____self_22 = self.unitType
301
+ return ____self_22.getStringField(
302
+ ____self_22,
191
303
  ("ucs" .. tostring(self.index)) .. ":hd"
192
304
  )
193
305
  end,
194
306
  set = function(self, soundTypeHD)
195
- local ____self_15 = self.unitType
196
- ____self_15.setStringField(
197
- ____self_15,
307
+ local ____self_23 = self.unitType
308
+ ____self_23.setStringField(
309
+ ____self_23,
198
310
  ("ucs" .. tostring(self.index)) .. ":hd",
199
311
  soundTypeHD
200
312
  )
@@ -235,10 +347,10 @@ __TS__SetDescriptor(
235
347
  "abilityTypeIds",
236
348
  {
237
349
  get = function(self)
238
- return self:getObjectDataEntryIdsField("uabi")
350
+ return self:getObjectDataEntryNumericIdsField("uabi")
239
351
  end,
240
352
  set = function(self, abilityTypeIds)
241
- self:setObjectDataEntryIdsField("uabi", abilityTypeIds)
353
+ self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
242
354
  end
243
355
  },
244
356
  true
@@ -248,10 +360,10 @@ __TS__SetDescriptor(
248
360
  "defaultActiveAbilityTypeId",
249
361
  {
250
362
  get = function(self)
251
- return self:getObjectDataEntryIdsField("udaa")[1]
363
+ return self:getObjectDataEntryNumericIdsField("udaa")[1]
252
364
  end,
253
365
  set = function(self, abilityTypeId)
254
- self:setObjectDataEntryIdsField(
366
+ self:setObjectDataEntryNumericIdsField(
255
367
  "udaa",
256
368
  arrayOfNotNull(abilityTypeId)
257
369
  )
@@ -697,6 +809,9 @@ __TS__SetDescriptor(
697
809
  end,
698
810
  set = function(self, modelPath)
699
811
  self:setStringField("umdl", modelPath)
812
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
813
+ self:setStringField("upor", "")
814
+ end
700
815
  end
701
816
  },
702
817
  true
@@ -710,6 +825,9 @@ __TS__SetDescriptor(
710
825
  end,
711
826
  set = function(self, modelPathSD)
712
827
  self:setStringField("umdl:sd", modelPathSD)
828
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
829
+ self:setStringField("upor:sd", "")
830
+ end
713
831
  end
714
832
  },
715
833
  true
@@ -723,6 +841,90 @@ __TS__SetDescriptor(
723
841
  end,
724
842
  set = function(self, modelPathHD)
725
843
  self:setStringField("umdl:hd", modelPathHD)
844
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
845
+ self:setStringField("upor:hd", "")
846
+ end
847
+ end
848
+ },
849
+ true
850
+ )
851
+ __TS__SetDescriptor(
852
+ UnitType.prototype,
853
+ "portraitModelPath",
854
+ {
855
+ get = function(self)
856
+ return self:getStringField("upor")
857
+ end,
858
+ set = function(self, portraitModelPath)
859
+ self:setStringField("upor", portraitModelPath)
860
+ self.isPortraitModelPathSet = true
861
+ end
862
+ },
863
+ true
864
+ )
865
+ __TS__SetDescriptor(
866
+ UnitType.prototype,
867
+ "portraitModelPathSD",
868
+ {
869
+ get = function(self)
870
+ return self:getStringField("upor:sd")
871
+ end,
872
+ set = function(self, portraitModelPathSD)
873
+ self:setStringField("upor:sd", portraitModelPathSD)
874
+ self.isPortraitModelPathSet = true
875
+ end
876
+ },
877
+ true
878
+ )
879
+ __TS__SetDescriptor(
880
+ UnitType.prototype,
881
+ "portraitModelPathHD",
882
+ {
883
+ get = function(self)
884
+ return self:getStringField("upor:hd")
885
+ end,
886
+ set = function(self, portraitModelPathHD)
887
+ self:setStringField("upor:hd", portraitModelPathHD)
888
+ self.isPortraitModelPathSet = true
889
+ end
890
+ },
891
+ true
892
+ )
893
+ __TS__SetDescriptor(
894
+ UnitType.prototype,
895
+ "runSpeed",
896
+ {
897
+ get = function(self)
898
+ return self:getNumberField("urun")
899
+ end,
900
+ set = function(self, runSpeed)
901
+ self:setNumberField("urun", runSpeed)
902
+ end
903
+ },
904
+ true
905
+ )
906
+ __TS__SetDescriptor(
907
+ UnitType.prototype,
908
+ "runSpeedSD",
909
+ {
910
+ get = function(self)
911
+ return self:getNumberField("urun:sd")
912
+ end,
913
+ set = function(self, runSpeedSD)
914
+ self:setNumberField("urun:sd", runSpeedSD)
915
+ end
916
+ },
917
+ true
918
+ )
919
+ __TS__SetDescriptor(
920
+ UnitType.prototype,
921
+ "runSpeedHD",
922
+ {
923
+ get = function(self)
924
+ return self:getNumberField("urun:hd")
925
+ end,
926
+ set = function(self, runSpeedHD)
927
+ self:setNumberField("urun:hd", runSpeedHD)
726
928
  end
727
929
  },
728
930
  true
@@ -935,6 +1137,45 @@ __TS__SetDescriptor(
935
1137
  },
936
1138
  true
937
1139
  )
1140
+ __TS__SetDescriptor(
1141
+ UnitType.prototype,
1142
+ "walkSpeed",
1143
+ {
1144
+ get = function(self)
1145
+ return self:getNumberField("uwal")
1146
+ end,
1147
+ set = function(self, walkSpeed)
1148
+ self:setNumberField("uwal", walkSpeed)
1149
+ end
1150
+ },
1151
+ true
1152
+ )
1153
+ __TS__SetDescriptor(
1154
+ UnitType.prototype,
1155
+ "walkSpeedSD",
1156
+ {
1157
+ get = function(self)
1158
+ return self:getNumberField("uwal:sd")
1159
+ end,
1160
+ set = function(self, walkSpeedSD)
1161
+ self:setNumberField("uwal:sd", walkSpeedSD)
1162
+ end
1163
+ },
1164
+ true
1165
+ )
1166
+ __TS__SetDescriptor(
1167
+ UnitType.prototype,
1168
+ "walkSpeedHD",
1169
+ {
1170
+ get = function(self)
1171
+ return self:getNumberField("uwal:hd")
1172
+ end,
1173
+ set = function(self, walkSpeedHD)
1174
+ self:setNumberField("uwal:hd", walkSpeedHD)
1175
+ end
1176
+ },
1177
+ true
1178
+ )
938
1179
  __TS__SetDescriptor(
939
1180
  UnitType.prototype,
940
1181
  "armorSoundType",
@@ -1008,25 +1249,25 @@ __TS__SetDescriptor(
1008
1249
  )
1009
1250
  __TS__SetDescriptor(
1010
1251
  UnitType.prototype,
1011
- "firstWeapon",
1252
+ "weapons",
1012
1253
  {get = function(self)
1013
- return self.weapons[1]
1254
+ return getOrCreateUnitTypeWeapons(self)
1014
1255
  end},
1015
1256
  true
1016
1257
  )
1017
1258
  __TS__SetDescriptor(
1018
1259
  UnitType.prototype,
1019
- "secondWeapon",
1260
+ "firstWeapon",
1020
1261
  {get = function(self)
1021
- return self.weapons[2]
1262
+ return self.weapons[1]
1022
1263
  end},
1023
1264
  true
1024
1265
  )
1025
1266
  __TS__SetDescriptor(
1026
1267
  UnitType.prototype,
1027
- "weapons",
1268
+ "secondWeapon",
1028
1269
  {get = function(self)
1029
- return getOrCreateUnitTypeWeapons(self)
1270
+ return self.weapons[2]
1030
1271
  end},
1031
1272
  true
1032
1273
  )
@@ -1212,6 +1453,71 @@ __TS__SetDescriptor(
1212
1453
  },
1213
1454
  true
1214
1455
  )
1456
+ __TS__SetDescriptor(
1457
+ UnitType.prototype,
1458
+ "healthRegenerationRate",
1459
+ {
1460
+ get = function(self)
1461
+ return self:getNumberField("uhpr")
1462
+ end,
1463
+ set = function(self, healthRegenerationRate)
1464
+ self:setNumberField("uhpr", healthRegenerationRate)
1465
+ end
1466
+ },
1467
+ true
1468
+ )
1469
+ __TS__SetDescriptor(
1470
+ UnitType.prototype,
1471
+ "manaRegenerationRate",
1472
+ {
1473
+ get = function(self)
1474
+ return self:getNumberField("umpr")
1475
+ end,
1476
+ set = function(self, manaRegenerationRate)
1477
+ self:setNumberField("umpr", manaRegenerationRate)
1478
+ end
1479
+ },
1480
+ true
1481
+ )
1482
+ __TS__SetDescriptor(
1483
+ UnitType.prototype,
1484
+ "maximumHealth",
1485
+ {
1486
+ get = function(self)
1487
+ return self:getNumberField("uhpm")
1488
+ end,
1489
+ set = function(self, maximumHealth)
1490
+ self:setNumberField("uhpm", maximumHealth)
1491
+ end
1492
+ },
1493
+ true
1494
+ )
1495
+ __TS__SetDescriptor(
1496
+ UnitType.prototype,
1497
+ "maximumMana",
1498
+ {
1499
+ get = function(self)
1500
+ return self:getNumberField("umpm")
1501
+ end,
1502
+ set = function(self, maximumMana)
1503
+ self:setNumberField("umpm", maximumMana)
1504
+ end
1505
+ },
1506
+ true
1507
+ )
1508
+ __TS__SetDescriptor(
1509
+ UnitType.prototype,
1510
+ "initialMana",
1511
+ {
1512
+ get = function(self)
1513
+ return self:getNumberField("umpi")
1514
+ end,
1515
+ set = function(self, initialMana)
1516
+ self:setNumberField("umpi", initialMana)
1517
+ end
1518
+ },
1519
+ true
1520
+ )
1215
1521
  __TS__SetDescriptor(
1216
1522
  UnitType.prototype,
1217
1523
  "isStructure",
@@ -1243,10 +1549,10 @@ __TS__SetDescriptor(
1243
1549
  "affectingUpgradeIds",
1244
1550
  {
1245
1551
  get = function(self)
1246
- return self:getObjectDataEntryIdsField("upgr")
1552
+ return self:getObjectDataEntryNumericIdsField("upgr")
1247
1553
  end,
1248
1554
  set = function(self, affectingUpgradeIds)
1249
- self:setObjectDataEntryIdsField("upgr", affectingUpgradeIds)
1555
+ self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
1250
1556
  end
1251
1557
  },
1252
1558
  true
@@ -1306,11 +1612,11 @@ __TS__SetDescriptor(
1306
1612
  implementReadonlyNumberIndexSupplier(
1307
1613
  ____exports.UnitType,
1308
1614
  function(id)
1309
- local ____class_16 = __TS__Class()
1310
- ____class_16.name = ____class_16.name
1311
- __TS__ClassExtends(____class_16, ____exports.UnitType)
1312
- ____class_16.BASE_ID = id
1313
- return ____class_16
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
1314
1620
  end
1315
1621
  )
1316
1622
  ____exports.HeroUnitType = __TS__Class()
@@ -1329,10 +1635,41 @@ __TS__SetDescriptor(
1329
1635
  "heroAbilityTypeIds",
1330
1636
  {
1331
1637
  get = function(self)
1332
- return self:getObjectDataEntryIdsField("uhab")
1638
+ return self:getObjectDataEntryNumericIdsField("uhab")
1333
1639
  end,
1334
1640
  set = function(self, heroAbilityTypeIds)
1335
- self:setObjectDataEntryIdsField("uhab", heroAbilityTypeIds)
1641
+ self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
1642
+ end
1643
+ },
1644
+ true
1645
+ )
1646
+ __TS__SetDescriptor(
1647
+ HeroUnitType.prototype,
1648
+ "properNames",
1649
+ {
1650
+ get = function(self)
1651
+ return self:getStringsField("upro")
1652
+ end,
1653
+ set = function(self, properNames)
1654
+ if __TS__ArrayIsArray(properNames) then
1655
+ self:setStringsField("upro", properNames)
1656
+ self:setNumberField("upru", #properNames)
1657
+ else
1658
+ self:setStringField("upro", properNames)
1659
+ end
1660
+ end
1661
+ },
1662
+ true
1663
+ )
1664
+ __TS__SetDescriptor(
1665
+ HeroUnitType.prototype,
1666
+ "properNameCount",
1667
+ {
1668
+ get = function(self)
1669
+ return self:getNumberField("upru")
1670
+ end,
1671
+ set = function(self, properNameCount)
1672
+ self:setNumberField("upru", properNameCount)
1336
1673
  end
1337
1674
  },
1338
1675
  true
@@ -1340,11 +1677,11 @@ __TS__SetDescriptor(
1340
1677
  implementReadonlyNumberIndexSupplier(
1341
1678
  ____exports.HeroUnitType,
1342
1679
  function(id)
1343
- local ____class_17 = __TS__Class()
1344
- ____class_17.name = ____class_17.name
1345
- __TS__ClassExtends(____class_17, ____exports.HeroUnitType)
1346
- ____class_17.BASE_ID = id
1347
- return ____class_17
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
1348
1685
  end
1349
1686
  )
1350
1687
  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,10 +1,9 @@
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";
5
4
  import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
6
5
  import { AbilityTypeId } from "./ability-type";
7
- export type UpgradeId = ObjectDataEntryId & {
6
+ export type UpgradeId = ObjectDataEntryId & number & {
8
7
  readonly __upgradeId: unique symbol;
9
8
  };
10
9
  export declare const enum UpgradeEffectType {
@@ -32,7 +32,7 @@ function Upgrade.prototype.getEffect(self, i)
32
32
  type = effectType,
33
33
  bonusBase = self:getNumberField("gba" .. tostring(i)),
34
34
  bonusIncrement = self:getNumberField("gmo" .. tostring(i)),
35
- abilityTypeId = self:getObjectDataEntryIdField("gco" .. tostring(i))
35
+ abilityTypeId = self:getObjectDataEntryNumericIdField("gco" .. tostring(i))
36
36
  }
37
37
  end
38
38
  return nil
@@ -51,7 +51,7 @@ function Upgrade.prototype.setEffect(self, i, effect)
51
51
  effect and effect.bonusIncrement or 0
52
52
  )
53
53
  if (effect and effect.abilityTypeId) ~= nil then
54
- self:setObjectDataEntryIdField(
54
+ self:setObjectDataEntryNumericIdField(
55
55
  "gco" .. tostring(i),
56
56
  effect and effect.abilityTypeId
57
57
  )
@@ -145,7 +145,7 @@ __TS__SetDescriptor(
145
145
  "techTreeDependencies",
146
146
  {
147
147
  get = function(self)
148
- local techTreeDependencyIds = self:getObjectDataEntryIdsLevelField("greq")
148
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsLevelField("greq")
149
149
  local techTreeDependencyInternalLevels = self:getNumbersLevelField("grqc")
150
150
  return mapIndexed(
151
151
  techTreeDependencyIds,
@@ -177,7 +177,7 @@ __TS__SetDescriptor(
177
177
  function(level) return level + 1 end
178
178
  )
179
179
  end
180
- self:setObjectDataEntryIdsLevelField("greq", techTreeDependencyIds)
180
+ self:setObjectDataEntryNumericIdsLevelField("greq", techTreeDependencyIds)
181
181
  self:setNumbersLevelField("grqc", techTreeDependencyInternalLevels)
182
182
  end
183
183
  },