warscript 0.0.1-dev.959b9a7 → 0.0.1-dev.96f1707

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