warscript 0.0.1-dev.7411206 → 0.0.1-dev.7448e33

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 (221) 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 +99 -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/decl/native.d.ts +840 -786
  23. package/engine/ability.d.ts +1 -1
  24. package/engine/behavior.d.ts +10 -10
  25. package/engine/behavior.lua +6 -6
  26. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  27. package/engine/behaviour/ability/always-enabled.lua +31 -0
  28. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  29. package/engine/behaviour/ability/apply-buff.lua +32 -0
  30. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  31. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  32. package/engine/behaviour/ability/damage.d.ts +37 -11
  33. package/engine/behaviour/ability/damage.lua +90 -32
  34. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  35. package/engine/behaviour/ability/emulate-impact.lua +35 -0
  36. package/engine/behaviour/ability/heal.d.ts +33 -6
  37. package/engine/behaviour/ability/heal.lua +89 -10
  38. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  39. package/engine/behaviour/ability/instant-impact.lua +4 -15
  40. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  41. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  42. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  43. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  44. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  45. package/engine/behaviour/ability/restore-mana.lua +29 -0
  46. package/engine/behaviour/ability.d.ts +27 -4
  47. package/engine/behaviour/ability.lua +152 -17
  48. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  49. package/engine/behaviour/unit.d.ts +10 -2
  50. package/engine/behaviour/unit.lua +27 -0
  51. package/engine/buff.d.ts +103 -41
  52. package/engine/buff.lua +465 -212
  53. package/engine/game-map.d.ts +7 -0
  54. package/engine/game-map.lua +32 -0
  55. package/engine/internal/ability.d.ts +16 -13
  56. package/engine/internal/ability.lua +80 -76
  57. package/engine/internal/item/ability.lua +106 -0
  58. package/engine/internal/item+owner.lua +2 -2
  59. package/engine/internal/item.d.ts +4 -3
  60. package/engine/internal/item.lua +56 -25
  61. package/engine/internal/mechanics/ability-duration.lua +1 -1
  62. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  63. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  64. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  65. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  66. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  67. package/engine/internal/object-data/evasion-probability.lua +16 -0
  68. package/engine/internal/unit/ability.d.ts +10 -1
  69. package/engine/internal/unit/ability.lua +36 -14
  70. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  71. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  72. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  73. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  74. package/engine/internal/unit/bonus.d.ts +11 -8
  75. package/engine/internal/unit/bonus.lua +23 -1
  76. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  77. package/engine/internal/unit/ignore-events-items.lua +5 -0
  78. package/engine/internal/unit/item.d.ts +24 -0
  79. package/engine/internal/unit/item.lua +78 -0
  80. package/engine/internal/unit/main-selected.d.ts +13 -0
  81. package/engine/internal/unit/main-selected.lua +51 -0
  82. package/engine/internal/unit+ability.lua +2 -2
  83. package/engine/internal/unit+damage.d.ts +1 -10
  84. package/engine/internal/unit+damage.lua +4 -13
  85. package/engine/internal/unit+spellSteal.lua +1 -2
  86. package/engine/internal/unit+transport.lua +4 -10
  87. package/engine/internal/unit-missile-launch.lua +25 -6
  88. package/engine/internal/unit.d.ts +72 -17
  89. package/engine/internal/unit.lua +424 -143
  90. package/engine/internal/utility.lua +12 -0
  91. package/engine/lightning.d.ts +12 -5
  92. package/engine/lightning.lua +48 -14
  93. package/engine/local-client.d.ts +7 -2
  94. package/engine/local-client.lua +82 -0
  95. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  96. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  97. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  98. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  99. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  100. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  101. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  102. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  103. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  104. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  105. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  106. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  107. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  108. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  109. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  110. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  111. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  112. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  113. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  114. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  115. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  116. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  117. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  118. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  119. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  120. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  121. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  122. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  123. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  124. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  125. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  126. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  127. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  128. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  129. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  130. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  131. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  132. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  133. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  134. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  135. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  136. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  137. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  138. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  139. package/engine/object-data/entry/ability-type/web.lua +52 -0
  140. package/engine/object-data/entry/ability-type.d.ts +19 -18
  141. package/engine/object-data/entry/ability-type.lua +89 -33
  142. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  143. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  144. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  145. package/engine/object-data/entry/buff-type.d.ts +6 -13
  146. package/engine/object-data/entry/buff-type.lua +13 -29
  147. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  148. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  149. package/engine/object-data/entry/item-type.d.ts +15 -2
  150. package/engine/object-data/entry/item-type.lua +93 -2
  151. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  152. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  153. package/engine/object-data/entry/sound-preset.lua +140 -0
  154. package/engine/object-data/entry/unit-type.d.ts +31 -5
  155. package/engine/object-data/entry/unit-type.lua +311 -74
  156. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  157. package/engine/object-data/entry/upgrade.d.ts +1 -2
  158. package/engine/object-data/entry/upgrade.lua +4 -4
  159. package/engine/object-data/entry.d.ts +18 -17
  160. package/engine/object-data/entry.lua +60 -32
  161. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  162. package/engine/object-field/ability.d.ts +26 -3
  163. package/engine/object-field/ability.lua +54 -1
  164. package/engine/object-field/unit.d.ts +46 -3
  165. package/engine/object-field/unit.lua +173 -7
  166. package/engine/object-field.d.ts +11 -4
  167. package/engine/object-field.lua +162 -76
  168. package/engine/random.d.ts +1 -0
  169. package/engine/random.lua +9 -0
  170. package/engine/standard/entries/buff-type.d.ts +3 -0
  171. package/engine/standard/entries/buff-type.lua +3 -0
  172. package/engine/standard/entries/sound-preset.d.ts +10 -0
  173. package/engine/standard/entries/sound-preset.lua +10 -0
  174. package/engine/standard/entries/unit-type.d.ts +39 -1
  175. package/engine/standard/entries/unit-type.lua +39 -1
  176. package/engine/standard/fields/ability.d.ts +3 -1
  177. package/engine/standard/fields/ability.lua +3 -1
  178. package/engine/unit.d.ts +3 -0
  179. package/engine/unit.lua +12 -2
  180. package/event.d.ts +2 -3
  181. package/event.lua +9 -5
  182. package/index.d.ts +1 -0
  183. package/index.lua +1 -0
  184. package/lualib_bundle.lua +146 -42
  185. package/math/vec2.d.ts +2 -9
  186. package/math.d.ts +0 -2
  187. package/net/socket.d.ts +7 -1
  188. package/net/socket.lua +45 -4
  189. package/network.d.ts +1 -0
  190. package/network.lua +3 -2
  191. package/objutil/ability.d.ts +0 -1
  192. package/objutil/buff.d.ts +0 -1
  193. package/objutil/buff.lua +2 -3
  194. package/objutil/object.d.ts +0 -1
  195. package/objutil/unit.d.ts +0 -1
  196. package/objutil/unit.lua +8 -0
  197. package/package.json +13 -14
  198. package/patch-lua.d.ts +0 -0
  199. package/patch-lua.lua +10 -0
  200. package/property.d.ts +55 -0
  201. package/property.lua +374 -0
  202. package/string.d.ts +30 -0
  203. package/string.lua +14 -0
  204. package/util/stream.d.ts +0 -1
  205. package/utility/arrays.d.ts +12 -5
  206. package/utility/arrays.lua +37 -3
  207. package/utility/bit-set.d.ts +0 -2
  208. package/utility/functions.d.ts +1 -0
  209. package/utility/functions.lua +1 -0
  210. package/utility/lazy.d.ts +2 -0
  211. package/utility/lazy.lua +14 -0
  212. package/utility/linked-set.d.ts +12 -3
  213. package/utility/linked-set.lua +8 -2
  214. package/utility/lua-maps.d.ts +4 -2
  215. package/utility/lua-maps.lua +16 -0
  216. package/utility/lua-sets.d.ts +2 -2
  217. package/utility/lua-sets.lua +3 -0
  218. package/utility/reflection.lua +11 -7
  219. package/utility/types.d.ts +1 -0
  220. package/core/mapbounds.d.ts +0 -8
  221. package/core/mapbounds.lua +0 -12
@@ -12,6 +12,9 @@ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNum
12
12
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
13
13
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
14
14
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
15
+ local ____movement_2Dtype = require("engine.object-data.auxiliary.movement-type")
16
+ local movementTypeToString = ____movement_2Dtype.movementTypeToString
17
+ local stringToMovementType = ____movement_2Dtype.stringToMovementType
15
18
  local ____unit_2Dclassification = require("engine.object-data.auxiliary.unit-classification")
16
19
  local stringArrayToUnitClassifications = ____unit_2Dclassification.stringArrayToUnitClassifications
17
20
  local unitClassificationsToStringArray = ____unit_2Dclassification.unitClassificationsToStringArray
@@ -19,6 +22,11 @@ local ____entry = require("engine.object-data.entry")
19
22
  local ObjectDataEntry = ____entry.ObjectDataEntry
20
23
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
21
24
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
25
+ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
26
+ local attackTypeToString = ____attack_2Dtype.attackTypeToString
27
+ local stringToAttackType = ____attack_2Dtype.stringToAttackType
28
+ local ____config = require("config")
29
+ local WarscriptConfig = ____config.WarscriptConfig
22
30
  local getOrCreateUnitTypeWeapons
23
31
  ____exports.UnitTypeWeapon = __TS__Class()
24
32
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -32,18 +40,19 @@ __TS__SetDescriptor(
32
40
  "attackType",
33
41
  {
34
42
  get = function(self)
43
+ local ____stringToAttackType_1 = stringToAttackType
35
44
  local ____self_0 = self.unitType
36
- return ____self_0.getStringField(
45
+ return ____stringToAttackType_1(____self_0.getStringField(
37
46
  ____self_0,
38
47
  ("ua" .. tostring(self.index)) .. "t"
39
- )
48
+ ))
40
49
  end,
41
50
  set = function(self, attackType)
42
- local ____self_1 = self.unitType
43
- ____self_1.setStringField(
44
- ____self_1,
51
+ local ____self_2 = self.unitType
52
+ ____self_2.setStringField(
53
+ ____self_2,
45
54
  ("ua" .. tostring(self.index)) .. "t",
46
- attackType
55
+ attackTypeToString(attackType)
47
56
  )
48
57
  end
49
58
  },
@@ -54,16 +63,16 @@ __TS__SetDescriptor(
54
63
  "backSwingDuration",
55
64
  {
56
65
  get = function(self)
57
- local ____self_2 = self.unitType
58
- return ____self_2.getNumberField(
59
- ____self_2,
66
+ local ____self_3 = self.unitType
67
+ return ____self_3.getNumberField(
68
+ ____self_3,
60
69
  "ubs" .. tostring(self.index)
61
70
  )
62
71
  end,
63
72
  set = function(self, backSwingDuration)
64
- local ____self_3 = self.unitType
65
- ____self_3.setNumberField(
66
- ____self_3,
73
+ local ____self_4 = self.unitType
74
+ ____self_4.setNumberField(
75
+ ____self_4,
67
76
  "ubs" .. tostring(self.index),
68
77
  backSwingDuration
69
78
  )
@@ -71,21 +80,130 @@ __TS__SetDescriptor(
71
80
  },
72
81
  true
73
82
  )
83
+ __TS__SetDescriptor(
84
+ UnitTypeWeapon.prototype,
85
+ "cooldown",
86
+ {
87
+ get = function(self)
88
+ local ____self_5 = self.unitType
89
+ return ____self_5.getNumberField(
90
+ ____self_5,
91
+ ("ua" .. tostring(self.index)) .. "c"
92
+ )
93
+ end,
94
+ set = function(self, cooldown)
95
+ local ____self_6 = self.unitType
96
+ ____self_6.setNumberField(
97
+ ____self_6,
98
+ ("ua" .. tostring(self.index)) .. "c",
99
+ cooldown
100
+ )
101
+ end
102
+ },
103
+ true
104
+ )
105
+ __TS__SetDescriptor(
106
+ UnitTypeWeapon.prototype,
107
+ "damage",
108
+ {
109
+ get = function(self)
110
+ local minimumDamage = self.damageBase + self.damageDiceCount
111
+ local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
112
+ return {minimumDamage, maximumDamage}
113
+ end,
114
+ set = function(self, ____bindingPattern0)
115
+ local maximumDamage
116
+ local minimumDamage
117
+ minimumDamage = ____bindingPattern0[1]
118
+ maximumDamage = ____bindingPattern0[2]
119
+ self.damageBase = minimumDamage - 1
120
+ self.damageDiceCount = 1
121
+ self.damageDiceSideCount = maximumDamage - minimumDamage + 1
122
+ end
123
+ },
124
+ true
125
+ )
126
+ __TS__SetDescriptor(
127
+ UnitTypeWeapon.prototype,
128
+ "damageBase",
129
+ {
130
+ get = function(self)
131
+ local ____self_7 = self.unitType
132
+ return ____self_7.getNumberField(
133
+ ____self_7,
134
+ ("ua" .. tostring(self.index)) .. "b"
135
+ )
136
+ end,
137
+ set = function(self, damageBase)
138
+ local ____self_8 = self.unitType
139
+ ____self_8.setNumberField(
140
+ ____self_8,
141
+ ("ua" .. tostring(self.index)) .. "b",
142
+ damageBase
143
+ )
144
+ end
145
+ },
146
+ true
147
+ )
148
+ __TS__SetDescriptor(
149
+ UnitTypeWeapon.prototype,
150
+ "damageDiceCount",
151
+ {
152
+ get = function(self)
153
+ local ____self_9 = self.unitType
154
+ return ____self_9.getNumberField(
155
+ ____self_9,
156
+ ("ua" .. tostring(self.index)) .. "d"
157
+ )
158
+ end,
159
+ set = function(self, damageDiceNumber)
160
+ local ____self_10 = self.unitType
161
+ ____self_10.setNumberField(
162
+ ____self_10,
163
+ ("ua" .. tostring(self.index)) .. "d",
164
+ damageDiceNumber
165
+ )
166
+ end
167
+ },
168
+ true
169
+ )
170
+ __TS__SetDescriptor(
171
+ UnitTypeWeapon.prototype,
172
+ "damageDiceSideCount",
173
+ {
174
+ get = function(self)
175
+ local ____self_11 = self.unitType
176
+ return ____self_11.getNumberField(
177
+ ____self_11,
178
+ ("ua" .. tostring(self.index)) .. "s"
179
+ )
180
+ end,
181
+ set = function(self, damageDiceSideCount)
182
+ local ____self_12 = self.unitType
183
+ ____self_12.setNumberField(
184
+ ____self_12,
185
+ ("ua" .. tostring(self.index)) .. "s",
186
+ damageDiceSideCount
187
+ )
188
+ end
189
+ },
190
+ true
191
+ )
74
192
  __TS__SetDescriptor(
75
193
  UnitTypeWeapon.prototype,
76
194
  "impactDelay",
77
195
  {
78
196
  get = function(self)
79
- local ____self_4 = self.unitType
80
- return ____self_4.getNumberField(
81
- ____self_4,
197
+ local ____self_13 = self.unitType
198
+ return ____self_13.getNumberField(
199
+ ____self_13,
82
200
  "udp" .. tostring(self.index)
83
201
  )
84
202
  end,
85
203
  set = function(self, impactDelay)
86
- local ____self_5 = self.unitType
87
- ____self_5.setNumberField(
88
- ____self_5,
204
+ local ____self_14 = self.unitType
205
+ ____self_14.setNumberField(
206
+ ____self_14,
89
207
  "udp" .. tostring(self.index),
90
208
  impactDelay
91
209
  )
@@ -98,16 +216,16 @@ __TS__SetDescriptor(
98
216
  "missileModelPath",
99
217
  {
100
218
  get = function(self)
101
- local ____self_6 = self.unitType
102
- return ____self_6.getStringField(
103
- ____self_6,
219
+ local ____self_15 = self.unitType
220
+ return ____self_15.getStringField(
221
+ ____self_15,
104
222
  ("ua" .. tostring(self.index)) .. "m"
105
223
  )
106
224
  end,
107
225
  set = function(self, missileModelPath)
108
- local ____self_7 = self.unitType
109
- ____self_7.setStringField(
110
- ____self_7,
226
+ local ____self_16 = self.unitType
227
+ ____self_16.setStringField(
228
+ ____self_16,
111
229
  ("ua" .. tostring(self.index)) .. "m",
112
230
  missileModelPath
113
231
  )
@@ -120,16 +238,16 @@ __TS__SetDescriptor(
120
238
  "range",
121
239
  {
122
240
  get = function(self)
123
- local ____self_8 = self.unitType
124
- return ____self_8.getNumberField(
125
- ____self_8,
241
+ local ____self_17 = self.unitType
242
+ return ____self_17.getNumberField(
243
+ ____self_17,
126
244
  ("ua" .. tostring(self.index)) .. "r"
127
245
  )
128
246
  end,
129
247
  set = function(self, range)
130
- local ____self_9 = self.unitType
131
- ____self_9.setNumberField(
132
- ____self_9,
248
+ local ____self_18 = self.unitType
249
+ ____self_18.setNumberField(
250
+ ____self_18,
133
251
  ("ua" .. tostring(self.index)) .. "r",
134
252
  range
135
253
  )
@@ -142,16 +260,16 @@ __TS__SetDescriptor(
142
260
  "soundType",
143
261
  {
144
262
  get = function(self)
145
- local ____self_10 = self.unitType
146
- return ____self_10.getStringField(
147
- ____self_10,
263
+ local ____self_19 = self.unitType
264
+ return ____self_19.getStringField(
265
+ ____self_19,
148
266
  "ucs" .. tostring(self.index)
149
267
  )
150
268
  end,
151
269
  set = function(self, soundType)
152
- local ____self_11 = self.unitType
153
- ____self_11.setStringField(
154
- ____self_11,
270
+ local ____self_20 = self.unitType
271
+ ____self_20.setStringField(
272
+ ____self_20,
155
273
  "ucs" .. tostring(self.index),
156
274
  soundType
157
275
  )
@@ -164,16 +282,16 @@ __TS__SetDescriptor(
164
282
  "soundTypeSD",
165
283
  {
166
284
  get = function(self)
167
- local ____self_12 = self.unitType
168
- return ____self_12.getStringField(
169
- ____self_12,
285
+ local ____self_21 = self.unitType
286
+ return ____self_21.getStringField(
287
+ ____self_21,
170
288
  ("ucs" .. tostring(self.index)) .. ":sd"
171
289
  )
172
290
  end,
173
291
  set = function(self, soundTypeSD)
174
- local ____self_13 = self.unitType
175
- ____self_13.setStringField(
176
- ____self_13,
292
+ local ____self_22 = self.unitType
293
+ ____self_22.setStringField(
294
+ ____self_22,
177
295
  ("ucs" .. tostring(self.index)) .. ":sd",
178
296
  soundTypeSD
179
297
  )
@@ -186,16 +304,16 @@ __TS__SetDescriptor(
186
304
  "soundTypeHD",
187
305
  {
188
306
  get = function(self)
189
- local ____self_14 = self.unitType
190
- return ____self_14.getStringField(
191
- ____self_14,
307
+ local ____self_23 = self.unitType
308
+ return ____self_23.getStringField(
309
+ ____self_23,
192
310
  ("ucs" .. tostring(self.index)) .. ":hd"
193
311
  )
194
312
  end,
195
313
  set = function(self, soundTypeHD)
196
- local ____self_15 = self.unitType
197
- ____self_15.setStringField(
198
- ____self_15,
314
+ local ____self_24 = self.unitType
315
+ ____self_24.setStringField(
316
+ ____self_24,
199
317
  ("ucs" .. tostring(self.index)) .. ":hd",
200
318
  soundTypeHD
201
319
  )
@@ -236,10 +354,10 @@ __TS__SetDescriptor(
236
354
  "abilityTypeIds",
237
355
  {
238
356
  get = function(self)
239
- return self:getObjectDataEntryIdsField("uabi")
357
+ return self:getObjectDataEntryNumericIdsField("uabi")
240
358
  end,
241
359
  set = function(self, abilityTypeIds)
242
- self:setObjectDataEntryIdsField("uabi", abilityTypeIds)
360
+ self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
243
361
  end
244
362
  },
245
363
  true
@@ -249,10 +367,10 @@ __TS__SetDescriptor(
249
367
  "defaultActiveAbilityTypeId",
250
368
  {
251
369
  get = function(self)
252
- return self:getObjectDataEntryIdsField("udaa")[1]
370
+ return self:getObjectDataEntryNumericIdsField("udaa")[1]
253
371
  end,
254
372
  set = function(self, abilityTypeId)
255
- self:setObjectDataEntryIdsField(
373
+ self:setObjectDataEntryNumericIdsField(
256
374
  "udaa",
257
375
  arrayOfNotNull(abilityTypeId)
258
376
  )
@@ -698,6 +816,9 @@ __TS__SetDescriptor(
698
816
  end,
699
817
  set = function(self, modelPath)
700
818
  self:setStringField("umdl", modelPath)
819
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
820
+ self:setStringField("upor", "")
821
+ end
701
822
  end
702
823
  },
703
824
  true
@@ -711,6 +832,9 @@ __TS__SetDescriptor(
711
832
  end,
712
833
  set = function(self, modelPathSD)
713
834
  self:setStringField("umdl:sd", modelPathSD)
835
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
836
+ self:setStringField("upor:sd", "")
837
+ end
714
838
  end
715
839
  },
716
840
  true
@@ -724,6 +848,51 @@ __TS__SetDescriptor(
724
848
  end,
725
849
  set = function(self, modelPathHD)
726
850
  self:setStringField("umdl:hd", modelPathHD)
851
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
852
+ self:setStringField("upor:hd", "")
853
+ end
854
+ end
855
+ },
856
+ true
857
+ )
858
+ __TS__SetDescriptor(
859
+ UnitType.prototype,
860
+ "portraitModelPath",
861
+ {
862
+ get = function(self)
863
+ return self:getStringField("upor")
864
+ end,
865
+ set = function(self, portraitModelPath)
866
+ self:setStringField("upor", portraitModelPath)
867
+ self.isPortraitModelPathSet = true
868
+ end
869
+ },
870
+ true
871
+ )
872
+ __TS__SetDescriptor(
873
+ UnitType.prototype,
874
+ "portraitModelPathSD",
875
+ {
876
+ get = function(self)
877
+ return self:getStringField("upor:sd")
878
+ end,
879
+ set = function(self, portraitModelPathSD)
880
+ self:setStringField("upor:sd", portraitModelPathSD)
881
+ self.isPortraitModelPathSet = true
882
+ end
883
+ },
884
+ true
885
+ )
886
+ __TS__SetDescriptor(
887
+ UnitType.prototype,
888
+ "portraitModelPathHD",
889
+ {
890
+ get = function(self)
891
+ return self:getStringField("upor:hd")
892
+ end,
893
+ set = function(self, portraitModelPathHD)
894
+ self:setStringField("upor:hd", portraitModelPathHD)
895
+ self.isPortraitModelPathSet = true
727
896
  end
728
897
  },
729
898
  true
@@ -1087,25 +1256,25 @@ __TS__SetDescriptor(
1087
1256
  )
1088
1257
  __TS__SetDescriptor(
1089
1258
  UnitType.prototype,
1090
- "firstWeapon",
1259
+ "weapons",
1091
1260
  {get = function(self)
1092
- return self.weapons[1]
1261
+ return getOrCreateUnitTypeWeapons(self)
1093
1262
  end},
1094
1263
  true
1095
1264
  )
1096
1265
  __TS__SetDescriptor(
1097
1266
  UnitType.prototype,
1098
- "secondWeapon",
1267
+ "firstWeapon",
1099
1268
  {get = function(self)
1100
- return self.weapons[2]
1269
+ return self.weapons[1]
1101
1270
  end},
1102
1271
  true
1103
1272
  )
1104
1273
  __TS__SetDescriptor(
1105
1274
  UnitType.prototype,
1106
- "weapons",
1275
+ "secondWeapon",
1107
1276
  {get = function(self)
1108
- return getOrCreateUnitTypeWeapons(self)
1277
+ return self.weapons[2]
1109
1278
  end},
1110
1279
  true
1111
1280
  )
@@ -1179,10 +1348,13 @@ __TS__SetDescriptor(
1179
1348
  "movementType",
1180
1349
  {
1181
1350
  get = function(self)
1182
- return self:getStringField("umvt")
1351
+ return stringToMovementType(self:getStringField("umvt"))
1183
1352
  end,
1184
1353
  set = function(self, movementType)
1185
- self:setStringField("umvt", movementType)
1354
+ self:setStringField(
1355
+ "umvt",
1356
+ movementTypeToString(movementType)
1357
+ )
1186
1358
  end
1187
1359
  },
1188
1360
  true
@@ -1291,6 +1463,71 @@ __TS__SetDescriptor(
1291
1463
  },
1292
1464
  true
1293
1465
  )
1466
+ __TS__SetDescriptor(
1467
+ UnitType.prototype,
1468
+ "healthRegenerationRate",
1469
+ {
1470
+ get = function(self)
1471
+ return self:getNumberField("uhpr")
1472
+ end,
1473
+ set = function(self, healthRegenerationRate)
1474
+ self:setNumberField("uhpr", healthRegenerationRate)
1475
+ end
1476
+ },
1477
+ true
1478
+ )
1479
+ __TS__SetDescriptor(
1480
+ UnitType.prototype,
1481
+ "manaRegenerationRate",
1482
+ {
1483
+ get = function(self)
1484
+ return self:getNumberField("umpr")
1485
+ end,
1486
+ set = function(self, manaRegenerationRate)
1487
+ self:setNumberField("umpr", manaRegenerationRate)
1488
+ end
1489
+ },
1490
+ true
1491
+ )
1492
+ __TS__SetDescriptor(
1493
+ UnitType.prototype,
1494
+ "maximumHealth",
1495
+ {
1496
+ get = function(self)
1497
+ return self:getNumberField("uhpm")
1498
+ end,
1499
+ set = function(self, maximumHealth)
1500
+ self:setNumberField("uhpm", maximumHealth)
1501
+ end
1502
+ },
1503
+ true
1504
+ )
1505
+ __TS__SetDescriptor(
1506
+ UnitType.prototype,
1507
+ "maximumMana",
1508
+ {
1509
+ get = function(self)
1510
+ return self:getNumberField("umpm")
1511
+ end,
1512
+ set = function(self, maximumMana)
1513
+ self:setNumberField("umpm", maximumMana)
1514
+ end
1515
+ },
1516
+ true
1517
+ )
1518
+ __TS__SetDescriptor(
1519
+ UnitType.prototype,
1520
+ "initialMana",
1521
+ {
1522
+ get = function(self)
1523
+ return self:getNumberField("umpi")
1524
+ end,
1525
+ set = function(self, initialMana)
1526
+ self:setNumberField("umpi", initialMana)
1527
+ end
1528
+ },
1529
+ true
1530
+ )
1294
1531
  __TS__SetDescriptor(
1295
1532
  UnitType.prototype,
1296
1533
  "isStructure",
@@ -1322,10 +1559,10 @@ __TS__SetDescriptor(
1322
1559
  "affectingUpgradeIds",
1323
1560
  {
1324
1561
  get = function(self)
1325
- return self:getObjectDataEntryIdsField("upgr")
1562
+ return self:getObjectDataEntryNumericIdsField("upgr")
1326
1563
  end,
1327
1564
  set = function(self, affectingUpgradeIds)
1328
- self:setObjectDataEntryIdsField("upgr", affectingUpgradeIds)
1565
+ self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
1329
1566
  end
1330
1567
  },
1331
1568
  true
@@ -1385,11 +1622,11 @@ __TS__SetDescriptor(
1385
1622
  implementReadonlyNumberIndexSupplier(
1386
1623
  ____exports.UnitType,
1387
1624
  function(id)
1388
- local ____class_16 = __TS__Class()
1389
- ____class_16.name = ____class_16.name
1390
- __TS__ClassExtends(____class_16, ____exports.UnitType)
1391
- ____class_16.BASE_ID = id
1392
- return ____class_16
1625
+ local ____class_25 = __TS__Class()
1626
+ ____class_25.name = ____class_25.name
1627
+ __TS__ClassExtends(____class_25, ____exports.UnitType)
1628
+ ____class_25.BASE_ID = id
1629
+ return ____class_25
1393
1630
  end
1394
1631
  )
1395
1632
  ____exports.HeroUnitType = __TS__Class()
@@ -1408,10 +1645,10 @@ __TS__SetDescriptor(
1408
1645
  "heroAbilityTypeIds",
1409
1646
  {
1410
1647
  get = function(self)
1411
- return self:getObjectDataEntryIdsField("uhab")
1648
+ return self:getObjectDataEntryNumericIdsField("uhab")
1412
1649
  end,
1413
1650
  set = function(self, heroAbilityTypeIds)
1414
- self:setObjectDataEntryIdsField("uhab", heroAbilityTypeIds)
1651
+ self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
1415
1652
  end
1416
1653
  },
1417
1654
  true
@@ -1450,11 +1687,11 @@ __TS__SetDescriptor(
1450
1687
  implementReadonlyNumberIndexSupplier(
1451
1688
  ____exports.HeroUnitType,
1452
1689
  function(id)
1453
- local ____class_17 = __TS__Class()
1454
- ____class_17.name = ____class_17.name
1455
- __TS__ClassExtends(____class_17, ____exports.HeroUnitType)
1456
- ____class_17.BASE_ID = id
1457
- return ____class_17
1690
+ local ____class_26 = __TS__Class()
1691
+ ____class_26.name = ____class_26.name
1692
+ __TS__ClassExtends(____class_26, ____exports.HeroUnitType)
1693
+ ____class_26.BASE_ID = id
1694
+ return ____class_26
1458
1695
  end
1459
1696
  )
1460
1697
  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
  },