warscript 0.0.1-dev.617708 → 0.0.1-dev.62423e1

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 (256) hide show
  1. package/attributes.d.ts +6 -1
  2. package/attributes.lua +17 -1
  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 +117 -22
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/image.d.ts +0 -1
  13. package/core/types/missile.d.ts +2 -2
  14. package/core/types/missile.lua +8 -2
  15. package/core/types/player.d.ts +15 -0
  16. package/core/types/player.lua +56 -14
  17. package/core/types/playerCamera.d.ts +2 -0
  18. package/core/types/playerCamera.lua +123 -5
  19. package/core/types/sound.d.ts +17 -24
  20. package/core/types/sound.lua +99 -24
  21. package/core/types/tileCell.d.ts +9 -0
  22. package/core/types/tileCell.lua +92 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.lua +8 -0
  26. package/core/util.d.ts +1 -1
  27. package/core/util.lua +18 -1
  28. package/decl/index.d.ts +1 -0
  29. package/decl/native.d.ts +846 -790
  30. package/engine/ability.d.ts +1 -1
  31. package/engine/behavior.d.ts +15 -10
  32. package/engine/behavior.lua +112 -33
  33. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  34. package/engine/behaviour/ability/always-enabled.lua +31 -0
  35. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  36. package/engine/behaviour/ability/apply-buff.lua +32 -0
  37. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  38. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  39. package/engine/behaviour/ability/damage.d.ts +39 -11
  40. package/engine/behaviour/ability/damage.lua +83 -37
  41. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  42. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  43. package/engine/behaviour/ability/heal.d.ts +33 -6
  44. package/engine/behaviour/ability/heal.lua +89 -10
  45. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  46. package/engine/behaviour/ability/instant-impact.lua +4 -15
  47. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  48. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  49. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  50. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  51. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  52. package/engine/behaviour/ability/restore-mana.lua +29 -0
  53. package/engine/behaviour/ability.d.ts +27 -4
  54. package/engine/behaviour/ability.lua +152 -26
  55. package/engine/behaviour/unit/stun-immunity.d.ts +7 -4
  56. package/engine/behaviour/unit/stun-immunity.lua +52 -27
  57. package/engine/behaviour/unit.d.ts +42 -2
  58. package/engine/behaviour/unit.lua +213 -0
  59. package/engine/buff.d.ts +104 -44
  60. package/engine/buff.lua +458 -220
  61. package/engine/game-map.d.ts +7 -0
  62. package/engine/game-map.lua +32 -0
  63. package/engine/internal/ability.d.ts +23 -14
  64. package/engine/internal/ability.lua +129 -85
  65. package/engine/internal/item/ability.lua +162 -4
  66. package/engine/internal/item+owner.lua +12 -6
  67. package/engine/internal/item.d.ts +20 -19
  68. package/engine/internal/item.lua +191 -74
  69. package/engine/internal/mechanics/ability-duration.lua +1 -1
  70. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  71. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  72. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  73. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  74. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  75. package/engine/internal/misc/frame-coordinates.lua +21 -0
  76. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  77. package/engine/internal/misc/get-terrain-z.lua +11 -0
  78. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  79. package/engine/internal/misc/player-local-handle.lua +5 -0
  80. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  81. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  82. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  83. package/engine/internal/object-data/evasion-probability.lua +16 -0
  84. package/engine/internal/unit/ability.d.ts +45 -1
  85. package/engine/internal/unit/ability.lua +128 -17
  86. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  87. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  88. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  89. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  90. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  91. package/engine/internal/unit/allowed-targets.lua +9 -1
  92. package/engine/internal/unit/bonus.d.ts +11 -8
  93. package/engine/internal/unit/bonus.lua +23 -1
  94. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  95. package/engine/internal/unit/ignore-events-items.lua +5 -0
  96. package/engine/internal/unit/item.d.ts +24 -0
  97. package/engine/internal/unit/item.lua +78 -0
  98. package/engine/internal/unit/main-selected.d.ts +13 -0
  99. package/engine/internal/unit/main-selected.lua +36 -0
  100. package/engine/internal/unit/order.d.ts +20 -0
  101. package/engine/internal/unit/order.lua +136 -0
  102. package/engine/internal/unit+ability.lua +12 -3
  103. package/engine/internal/unit+damage.d.ts +2 -11
  104. package/engine/internal/unit+damage.lua +10 -14
  105. package/engine/internal/unit+spellSteal.lua +1 -2
  106. package/engine/internal/unit+transport.lua +4 -10
  107. package/engine/internal/unit-missile-launch.lua +63 -13
  108. package/engine/internal/unit.d.ts +96 -24
  109. package/engine/internal/unit.lua +648 -214
  110. package/engine/internal/utility.lua +12 -0
  111. package/engine/lightning.d.ts +12 -5
  112. package/engine/lightning.lua +48 -14
  113. package/engine/local-client.d.ts +9 -2
  114. package/engine/local-client.lua +112 -0
  115. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  116. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  117. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  118. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  119. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  120. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  121. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  122. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  123. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  124. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  125. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  126. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  127. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  128. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  129. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  130. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  131. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  132. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  133. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  134. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  135. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  136. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  137. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  138. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  139. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  140. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  141. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  142. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  143. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  144. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  145. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  146. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  147. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  148. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  149. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  150. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  151. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  152. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  153. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  154. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  155. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  156. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  157. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  158. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  159. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  160. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  161. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  162. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  163. package/engine/object-data/entry/ability-type/web.lua +52 -0
  164. package/engine/object-data/entry/ability-type.d.ts +19 -18
  165. package/engine/object-data/entry/ability-type.lua +93 -36
  166. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  167. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  168. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  169. package/engine/object-data/entry/buff-type.d.ts +6 -13
  170. package/engine/object-data/entry/buff-type.lua +13 -29
  171. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  172. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  173. package/engine/object-data/entry/item-type.d.ts +15 -2
  174. package/engine/object-data/entry/item-type.lua +93 -2
  175. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  176. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  177. package/engine/object-data/entry/sound-preset.lua +140 -0
  178. package/engine/object-data/entry/unit-type.d.ts +42 -7
  179. package/engine/object-data/entry/unit-type.lua +370 -75
  180. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  181. package/engine/object-data/entry/upgrade.d.ts +1 -2
  182. package/engine/object-data/entry/upgrade.lua +4 -4
  183. package/engine/object-data/entry.d.ts +18 -17
  184. package/engine/object-data/entry.lua +60 -32
  185. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  186. package/engine/object-field/ability.d.ts +28 -5
  187. package/engine/object-field/ability.lua +59 -5
  188. package/engine/object-field/unit.d.ts +57 -3
  189. package/engine/object-field/unit.lua +207 -7
  190. package/engine/object-field.d.ts +17 -7
  191. package/engine/object-field.lua +190 -90
  192. package/engine/random.d.ts +10 -0
  193. package/engine/random.lua +22 -0
  194. package/engine/standard/entries/buff-type.d.ts +3 -0
  195. package/engine/standard/entries/buff-type.lua +3 -0
  196. package/engine/standard/entries/sound-preset.d.ts +10 -0
  197. package/engine/standard/entries/sound-preset.lua +10 -0
  198. package/engine/standard/entries/unit-type.d.ts +18 -0
  199. package/engine/standard/entries/unit-type.lua +18 -0
  200. package/engine/standard/fields/ability.d.ts +3 -1
  201. package/engine/standard/fields/ability.lua +3 -1
  202. package/engine/standard/fields/unit.d.ts +4 -0
  203. package/engine/standard/fields/unit.lua +7 -0
  204. package/engine/synchronization.d.ts +11 -0
  205. package/engine/synchronization.lua +77 -0
  206. package/engine/text-tag.d.ts +36 -2
  207. package/engine/text-tag.lua +250 -10
  208. package/engine/unit.d.ts +4 -0
  209. package/engine/unit.lua +13 -2
  210. package/event.d.ts +2 -3
  211. package/event.lua +9 -5
  212. package/index.d.ts +1 -0
  213. package/index.lua +1 -0
  214. package/lualib_bundle.lua +146 -42
  215. package/math/vec2.d.ts +2 -9
  216. package/math.d.ts +0 -2
  217. package/net/socket.d.ts +7 -1
  218. package/net/socket.lua +45 -4
  219. package/network.d.ts +1 -0
  220. package/network.lua +3 -2
  221. package/objutil/ability.d.ts +0 -1
  222. package/objutil/buff.d.ts +0 -1
  223. package/objutil/buff.lua +3 -4
  224. package/objutil/object.d.ts +0 -1
  225. package/objutil/unit.d.ts +0 -1
  226. package/objutil/unit.lua +8 -0
  227. package/package.json +13 -13
  228. package/patch-lua.d.ts +0 -0
  229. package/patch-lua.lua +10 -0
  230. package/patch-lualib.lua +1 -1
  231. package/property.d.ts +55 -0
  232. package/property.lua +374 -0
  233. package/string.d.ts +16 -0
  234. package/string.lua +5 -0
  235. package/util/stream.d.ts +0 -1
  236. package/utility/arrays.d.ts +13 -5
  237. package/utility/arrays.lua +45 -3
  238. package/utility/bit-set.d.ts +0 -2
  239. package/utility/callback-array.d.ts +17 -0
  240. package/utility/callback-array.lua +61 -0
  241. package/utility/functions.d.ts +8 -0
  242. package/utility/functions.lua +13 -0
  243. package/utility/lazy.d.ts +2 -0
  244. package/utility/lazy.lua +14 -0
  245. package/utility/linked-set.d.ts +13 -3
  246. package/utility/linked-set.lua +27 -3
  247. package/utility/lua-maps.d.ts +16 -4
  248. package/utility/lua-maps.lua +53 -2
  249. package/utility/lua-sets.d.ts +3 -2
  250. package/utility/lua-sets.lua +7 -0
  251. package/utility/reflection.lua +11 -7
  252. package/utility/types.d.ts +4 -0
  253. package/core/mapbounds.d.ts +0 -8
  254. package/core/mapbounds.lua +0 -12
  255. package/core/types/order.d.ts +0 -25
  256. package/core/types/order.lua +0 -55
@@ -12,6 +12,9 @@ local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNum
12
12
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
13
13
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
14
14
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
15
+ local ____movement_2Dtype = require("engine.object-data.auxiliary.movement-type")
16
+ local movementTypeToString = ____movement_2Dtype.movementTypeToString
17
+ local stringToMovementType = ____movement_2Dtype.stringToMovementType
15
18
  local ____unit_2Dclassification = require("engine.object-data.auxiliary.unit-classification")
16
19
  local stringArrayToUnitClassifications = ____unit_2Dclassification.stringArrayToUnitClassifications
17
20
  local unitClassificationsToStringArray = ____unit_2Dclassification.unitClassificationsToStringArray
@@ -19,6 +22,14 @@ local ____entry = require("engine.object-data.entry")
19
22
  local ObjectDataEntry = ____entry.ObjectDataEntry
20
23
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
21
24
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
25
+ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
26
+ local attackTypeToString = ____attack_2Dtype.attackTypeToString
27
+ local stringToAttackType = ____attack_2Dtype.stringToAttackType
28
+ local ____config = require("config")
29
+ local WarscriptConfig = ____config.WarscriptConfig
30
+ local ____armor_2Dtype = require("engine.object-data.auxiliary.armor-type")
31
+ local armorTypeToString = ____armor_2Dtype.armorTypeToString
32
+ local stringToArmorType = ____armor_2Dtype.stringToArmorType
22
33
  local getOrCreateUnitTypeWeapons
23
34
  ____exports.UnitTypeWeapon = __TS__Class()
24
35
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -32,18 +43,19 @@ __TS__SetDescriptor(
32
43
  "attackType",
33
44
  {
34
45
  get = function(self)
46
+ local ____stringToAttackType_1 = stringToAttackType
35
47
  local ____self_0 = self.unitType
36
- return ____self_0.getStringField(
48
+ return ____stringToAttackType_1(____self_0.getStringField(
37
49
  ____self_0,
38
50
  ("ua" .. tostring(self.index)) .. "t"
39
- )
51
+ ))
40
52
  end,
41
53
  set = function(self, attackType)
42
- local ____self_1 = self.unitType
43
- ____self_1.setStringField(
44
- ____self_1,
54
+ local ____self_2 = self.unitType
55
+ ____self_2.setStringField(
56
+ ____self_2,
45
57
  ("ua" .. tostring(self.index)) .. "t",
46
- attackType
58
+ attackTypeToString(attackType)
47
59
  )
48
60
  end
49
61
  },
@@ -54,16 +66,16 @@ __TS__SetDescriptor(
54
66
  "backSwingDuration",
55
67
  {
56
68
  get = function(self)
57
- local ____self_2 = self.unitType
58
- return ____self_2.getNumberField(
59
- ____self_2,
69
+ local ____self_3 = self.unitType
70
+ return ____self_3.getNumberField(
71
+ ____self_3,
60
72
  "ubs" .. tostring(self.index)
61
73
  )
62
74
  end,
63
75
  set = function(self, backSwingDuration)
64
- local ____self_3 = self.unitType
65
- ____self_3.setNumberField(
66
- ____self_3,
76
+ local ____self_4 = self.unitType
77
+ ____self_4.setNumberField(
78
+ ____self_4,
67
79
  "ubs" .. tostring(self.index),
68
80
  backSwingDuration
69
81
  )
@@ -71,21 +83,130 @@ __TS__SetDescriptor(
71
83
  },
72
84
  true
73
85
  )
86
+ __TS__SetDescriptor(
87
+ UnitTypeWeapon.prototype,
88
+ "cooldown",
89
+ {
90
+ get = function(self)
91
+ local ____self_5 = self.unitType
92
+ return ____self_5.getNumberField(
93
+ ____self_5,
94
+ ("ua" .. tostring(self.index)) .. "c"
95
+ )
96
+ end,
97
+ set = function(self, cooldown)
98
+ local ____self_6 = self.unitType
99
+ ____self_6.setNumberField(
100
+ ____self_6,
101
+ ("ua" .. tostring(self.index)) .. "c",
102
+ cooldown
103
+ )
104
+ end
105
+ },
106
+ true
107
+ )
108
+ __TS__SetDescriptor(
109
+ UnitTypeWeapon.prototype,
110
+ "damage",
111
+ {
112
+ get = function(self)
113
+ local minimumDamage = self.damageBase + self.damageDiceCount
114
+ local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
115
+ return {minimumDamage, maximumDamage}
116
+ end,
117
+ set = function(self, ____bindingPattern0)
118
+ local maximumDamage
119
+ local minimumDamage
120
+ minimumDamage = ____bindingPattern0[1]
121
+ maximumDamage = ____bindingPattern0[2]
122
+ self.damageBase = minimumDamage - 1
123
+ self.damageDiceCount = 1
124
+ self.damageDiceSideCount = maximumDamage - minimumDamage + 1
125
+ end
126
+ },
127
+ true
128
+ )
129
+ __TS__SetDescriptor(
130
+ UnitTypeWeapon.prototype,
131
+ "damageBase",
132
+ {
133
+ get = function(self)
134
+ local ____self_7 = self.unitType
135
+ return ____self_7.getNumberField(
136
+ ____self_7,
137
+ ("ua" .. tostring(self.index)) .. "b"
138
+ )
139
+ end,
140
+ set = function(self, damageBase)
141
+ local ____self_8 = self.unitType
142
+ ____self_8.setNumberField(
143
+ ____self_8,
144
+ ("ua" .. tostring(self.index)) .. "b",
145
+ damageBase
146
+ )
147
+ end
148
+ },
149
+ true
150
+ )
151
+ __TS__SetDescriptor(
152
+ UnitTypeWeapon.prototype,
153
+ "damageDiceCount",
154
+ {
155
+ get = function(self)
156
+ local ____self_9 = self.unitType
157
+ return ____self_9.getNumberField(
158
+ ____self_9,
159
+ ("ua" .. tostring(self.index)) .. "d"
160
+ )
161
+ end,
162
+ set = function(self, damageDiceNumber)
163
+ local ____self_10 = self.unitType
164
+ ____self_10.setNumberField(
165
+ ____self_10,
166
+ ("ua" .. tostring(self.index)) .. "d",
167
+ damageDiceNumber
168
+ )
169
+ end
170
+ },
171
+ true
172
+ )
173
+ __TS__SetDescriptor(
174
+ UnitTypeWeapon.prototype,
175
+ "damageDiceSideCount",
176
+ {
177
+ get = function(self)
178
+ local ____self_11 = self.unitType
179
+ return ____self_11.getNumberField(
180
+ ____self_11,
181
+ ("ua" .. tostring(self.index)) .. "s"
182
+ )
183
+ end,
184
+ set = function(self, damageDiceSideCount)
185
+ local ____self_12 = self.unitType
186
+ ____self_12.setNumberField(
187
+ ____self_12,
188
+ ("ua" .. tostring(self.index)) .. "s",
189
+ damageDiceSideCount
190
+ )
191
+ end
192
+ },
193
+ true
194
+ )
74
195
  __TS__SetDescriptor(
75
196
  UnitTypeWeapon.prototype,
76
197
  "impactDelay",
77
198
  {
78
199
  get = function(self)
79
- local ____self_4 = self.unitType
80
- return ____self_4.getNumberField(
81
- ____self_4,
200
+ local ____self_13 = self.unitType
201
+ return ____self_13.getNumberField(
202
+ ____self_13,
82
203
  "udp" .. tostring(self.index)
83
204
  )
84
205
  end,
85
206
  set = function(self, impactDelay)
86
- local ____self_5 = self.unitType
87
- ____self_5.setNumberField(
88
- ____self_5,
207
+ local ____self_14 = self.unitType
208
+ ____self_14.setNumberField(
209
+ ____self_14,
89
210
  "udp" .. tostring(self.index),
90
211
  impactDelay
91
212
  )
@@ -98,16 +219,16 @@ __TS__SetDescriptor(
98
219
  "missileModelPath",
99
220
  {
100
221
  get = function(self)
101
- local ____self_6 = self.unitType
102
- return ____self_6.getStringField(
103
- ____self_6,
222
+ local ____self_15 = self.unitType
223
+ return ____self_15.getStringField(
224
+ ____self_15,
104
225
  ("ua" .. tostring(self.index)) .. "m"
105
226
  )
106
227
  end,
107
228
  set = function(self, missileModelPath)
108
- local ____self_7 = self.unitType
109
- ____self_7.setStringField(
110
- ____self_7,
229
+ local ____self_16 = self.unitType
230
+ ____self_16.setStringField(
231
+ ____self_16,
111
232
  ("ua" .. tostring(self.index)) .. "m",
112
233
  missileModelPath
113
234
  )
@@ -120,16 +241,16 @@ __TS__SetDescriptor(
120
241
  "range",
121
242
  {
122
243
  get = function(self)
123
- local ____self_8 = self.unitType
124
- return ____self_8.getNumberField(
125
- ____self_8,
244
+ local ____self_17 = self.unitType
245
+ return ____self_17.getNumberField(
246
+ ____self_17,
126
247
  ("ua" .. tostring(self.index)) .. "r"
127
248
  )
128
249
  end,
129
250
  set = function(self, range)
130
- local ____self_9 = self.unitType
131
- ____self_9.setNumberField(
132
- ____self_9,
251
+ local ____self_18 = self.unitType
252
+ ____self_18.setNumberField(
253
+ ____self_18,
133
254
  ("ua" .. tostring(self.index)) .. "r",
134
255
  range
135
256
  )
@@ -142,16 +263,16 @@ __TS__SetDescriptor(
142
263
  "soundType",
143
264
  {
144
265
  get = function(self)
145
- local ____self_10 = self.unitType
146
- return ____self_10.getStringField(
147
- ____self_10,
266
+ local ____self_19 = self.unitType
267
+ return ____self_19.getStringField(
268
+ ____self_19,
148
269
  "ucs" .. tostring(self.index)
149
270
  )
150
271
  end,
151
272
  set = function(self, soundType)
152
- local ____self_11 = self.unitType
153
- ____self_11.setStringField(
154
- ____self_11,
273
+ local ____self_20 = self.unitType
274
+ ____self_20.setStringField(
275
+ ____self_20,
155
276
  "ucs" .. tostring(self.index),
156
277
  soundType
157
278
  )
@@ -164,16 +285,16 @@ __TS__SetDescriptor(
164
285
  "soundTypeSD",
165
286
  {
166
287
  get = function(self)
167
- local ____self_12 = self.unitType
168
- return ____self_12.getStringField(
169
- ____self_12,
288
+ local ____self_21 = self.unitType
289
+ return ____self_21.getStringField(
290
+ ____self_21,
170
291
  ("ucs" .. tostring(self.index)) .. ":sd"
171
292
  )
172
293
  end,
173
294
  set = function(self, soundTypeSD)
174
- local ____self_13 = self.unitType
175
- ____self_13.setStringField(
176
- ____self_13,
295
+ local ____self_22 = self.unitType
296
+ ____self_22.setStringField(
297
+ ____self_22,
177
298
  ("ucs" .. tostring(self.index)) .. ":sd",
178
299
  soundTypeSD
179
300
  )
@@ -186,16 +307,16 @@ __TS__SetDescriptor(
186
307
  "soundTypeHD",
187
308
  {
188
309
  get = function(self)
189
- local ____self_14 = self.unitType
190
- return ____self_14.getStringField(
191
- ____self_14,
310
+ local ____self_23 = self.unitType
311
+ return ____self_23.getStringField(
312
+ ____self_23,
192
313
  ("ucs" .. tostring(self.index)) .. ":hd"
193
314
  )
194
315
  end,
195
316
  set = function(self, soundTypeHD)
196
- local ____self_15 = self.unitType
197
- ____self_15.setStringField(
198
- ____self_15,
317
+ local ____self_24 = self.unitType
318
+ ____self_24.setStringField(
319
+ ____self_24,
199
320
  ("ucs" .. tostring(self.index)) .. ":hd",
200
321
  soundTypeHD
201
322
  )
@@ -236,10 +357,10 @@ __TS__SetDescriptor(
236
357
  "abilityTypeIds",
237
358
  {
238
359
  get = function(self)
239
- return self:getObjectDataEntryIdsField("uabi")
360
+ return self:getObjectDataEntryNumericIdsField("uabi")
240
361
  end,
241
362
  set = function(self, abilityTypeIds)
242
- self:setObjectDataEntryIdsField("uabi", abilityTypeIds)
363
+ self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
243
364
  end
244
365
  },
245
366
  true
@@ -249,10 +370,10 @@ __TS__SetDescriptor(
249
370
  "defaultActiveAbilityTypeId",
250
371
  {
251
372
  get = function(self)
252
- return self:getObjectDataEntryIdsField("udaa")[1]
373
+ return self:getObjectDataEntryNumericIdsField("udaa")[1]
253
374
  end,
254
375
  set = function(self, abilityTypeId)
255
- self:setObjectDataEntryIdsField(
376
+ self:setObjectDataEntryNumericIdsField(
256
377
  "udaa",
257
378
  arrayOfNotNull(abilityTypeId)
258
379
  )
@@ -698,6 +819,9 @@ __TS__SetDescriptor(
698
819
  end,
699
820
  set = function(self, modelPath)
700
821
  self:setStringField("umdl", modelPath)
822
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
823
+ self:setStringField("upor", "")
824
+ end
701
825
  end
702
826
  },
703
827
  true
@@ -711,6 +835,9 @@ __TS__SetDescriptor(
711
835
  end,
712
836
  set = function(self, modelPathSD)
713
837
  self:setStringField("umdl:sd", modelPathSD)
838
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
839
+ self:setStringField("upor:sd", "")
840
+ end
714
841
  end
715
842
  },
716
843
  true
@@ -724,6 +851,51 @@ __TS__SetDescriptor(
724
851
  end,
725
852
  set = function(self, modelPathHD)
726
853
  self:setStringField("umdl:hd", modelPathHD)
854
+ if not self.isPortraitModelPathSet and WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
855
+ self:setStringField("upor:hd", "")
856
+ end
857
+ end
858
+ },
859
+ true
860
+ )
861
+ __TS__SetDescriptor(
862
+ UnitType.prototype,
863
+ "portraitModelPath",
864
+ {
865
+ get = function(self)
866
+ return self:getStringField("upor")
867
+ end,
868
+ set = function(self, portraitModelPath)
869
+ self:setStringField("upor", portraitModelPath)
870
+ self.isPortraitModelPathSet = true
871
+ end
872
+ },
873
+ true
874
+ )
875
+ __TS__SetDescriptor(
876
+ UnitType.prototype,
877
+ "portraitModelPathSD",
878
+ {
879
+ get = function(self)
880
+ return self:getStringField("upor:sd")
881
+ end,
882
+ set = function(self, portraitModelPathSD)
883
+ self:setStringField("upor:sd", portraitModelPathSD)
884
+ self.isPortraitModelPathSet = true
885
+ end
886
+ },
887
+ true
888
+ )
889
+ __TS__SetDescriptor(
890
+ UnitType.prototype,
891
+ "portraitModelPathHD",
892
+ {
893
+ get = function(self)
894
+ return self:getStringField("upor:hd")
895
+ end,
896
+ set = function(self, portraitModelPathHD)
897
+ self:setStringField("upor:hd", portraitModelPathHD)
898
+ self.isPortraitModelPathSet = true
727
899
  end
728
900
  },
729
901
  true
@@ -767,6 +939,19 @@ __TS__SetDescriptor(
767
939
  },
768
940
  true
769
941
  )
942
+ __TS__SetDescriptor(
943
+ UnitType.prototype,
944
+ "selectionCircleHeight",
945
+ {
946
+ get = function(self)
947
+ return self:getNumberField("uslz")
948
+ end,
949
+ set = function(self, height)
950
+ self:setNumberField("uslz", height)
951
+ end
952
+ },
953
+ true
954
+ )
770
955
  __TS__SetDescriptor(
771
956
  UnitType.prototype,
772
957
  "selectionCircleScale",
@@ -1014,6 +1199,19 @@ __TS__SetDescriptor(
1014
1199
  },
1015
1200
  true
1016
1201
  )
1202
+ __TS__SetDescriptor(
1203
+ UnitType.prototype,
1204
+ "armor",
1205
+ {
1206
+ get = function(self)
1207
+ return self:getNumberField("udef")
1208
+ end,
1209
+ set = function(self, armor)
1210
+ self:setNumberField("udef", armor)
1211
+ end
1212
+ },
1213
+ true
1214
+ )
1017
1215
  __TS__SetDescriptor(
1018
1216
  UnitType.prototype,
1019
1217
  "armorSoundType",
@@ -1053,6 +1251,22 @@ __TS__SetDescriptor(
1053
1251
  },
1054
1252
  true
1055
1253
  )
1254
+ __TS__SetDescriptor(
1255
+ UnitType.prototype,
1256
+ "armorType",
1257
+ {
1258
+ get = function(self)
1259
+ return stringToArmorType(self:getStringField("udty"))
1260
+ end,
1261
+ set = function(self, armorType)
1262
+ self:setStringField(
1263
+ "udty",
1264
+ armorTypeToString(armorType)
1265
+ )
1266
+ end
1267
+ },
1268
+ true
1269
+ )
1056
1270
  __TS__SetDescriptor(
1057
1271
  UnitType.prototype,
1058
1272
  "combatClassifications",
@@ -1071,7 +1285,7 @@ __TS__SetDescriptor(
1071
1285
  )
1072
1286
  __TS__SetDescriptor(
1073
1287
  UnitType.prototype,
1074
- "unitClassifications",
1288
+ "classifications",
1075
1289
  {
1076
1290
  get = function(self)
1077
1291
  return stringArrayToUnitClassifications(self:getStringsField("utyp"))
@@ -1087,25 +1301,25 @@ __TS__SetDescriptor(
1087
1301
  )
1088
1302
  __TS__SetDescriptor(
1089
1303
  UnitType.prototype,
1090
- "firstWeapon",
1304
+ "weapons",
1091
1305
  {get = function(self)
1092
- return self.weapons[1]
1306
+ return getOrCreateUnitTypeWeapons(self)
1093
1307
  end},
1094
1308
  true
1095
1309
  )
1096
1310
  __TS__SetDescriptor(
1097
1311
  UnitType.prototype,
1098
- "secondWeapon",
1312
+ "firstWeapon",
1099
1313
  {get = function(self)
1100
- return self.weapons[2]
1314
+ return self.weapons[1]
1101
1315
  end},
1102
1316
  true
1103
1317
  )
1104
1318
  __TS__SetDescriptor(
1105
1319
  UnitType.prototype,
1106
- "weapons",
1320
+ "secondWeapon",
1107
1321
  {get = function(self)
1108
- return getOrCreateUnitTypeWeapons(self)
1322
+ return self.weapons[2]
1109
1323
  end},
1110
1324
  true
1111
1325
  )
@@ -1179,10 +1393,13 @@ __TS__SetDescriptor(
1179
1393
  "movementType",
1180
1394
  {
1181
1395
  get = function(self)
1182
- return self:getStringField("umvt")
1396
+ return stringToMovementType(self:getStringField("umvt"))
1183
1397
  end,
1184
1398
  set = function(self, movementType)
1185
- self:setStringField("umvt", movementType)
1399
+ self:setStringField(
1400
+ "umvt",
1401
+ movementTypeToString(movementType)
1402
+ )
1186
1403
  end
1187
1404
  },
1188
1405
  true
@@ -1291,6 +1508,84 @@ __TS__SetDescriptor(
1291
1508
  },
1292
1509
  true
1293
1510
  )
1511
+ __TS__SetDescriptor(
1512
+ UnitType.prototype,
1513
+ "healthRegenerationRate",
1514
+ {
1515
+ get = function(self)
1516
+ return self:getNumberField("uhpr")
1517
+ end,
1518
+ set = function(self, healthRegenerationRate)
1519
+ self:setNumberField("uhpr", healthRegenerationRate)
1520
+ end
1521
+ },
1522
+ true
1523
+ )
1524
+ __TS__SetDescriptor(
1525
+ UnitType.prototype,
1526
+ "level",
1527
+ {
1528
+ get = function(self)
1529
+ return self:getNumberField("ulev")
1530
+ end,
1531
+ set = function(self, level)
1532
+ self:setNumberField("ulev", level)
1533
+ end
1534
+ },
1535
+ true
1536
+ )
1537
+ __TS__SetDescriptor(
1538
+ UnitType.prototype,
1539
+ "manaRegenerationRate",
1540
+ {
1541
+ get = function(self)
1542
+ return self:getNumberField("umpr")
1543
+ end,
1544
+ set = function(self, manaRegenerationRate)
1545
+ self:setNumberField("umpr", manaRegenerationRate)
1546
+ end
1547
+ },
1548
+ true
1549
+ )
1550
+ __TS__SetDescriptor(
1551
+ UnitType.prototype,
1552
+ "maximumHealth",
1553
+ {
1554
+ get = function(self)
1555
+ return self:getNumberField("uhpm")
1556
+ end,
1557
+ set = function(self, maximumHealth)
1558
+ self:setNumberField("uhpm", maximumHealth)
1559
+ end
1560
+ },
1561
+ true
1562
+ )
1563
+ __TS__SetDescriptor(
1564
+ UnitType.prototype,
1565
+ "maximumMana",
1566
+ {
1567
+ get = function(self)
1568
+ return self:getNumberField("umpm")
1569
+ end,
1570
+ set = function(self, maximumMana)
1571
+ self:setNumberField("umpm", maximumMana)
1572
+ end
1573
+ },
1574
+ true
1575
+ )
1576
+ __TS__SetDescriptor(
1577
+ UnitType.prototype,
1578
+ "initialMana",
1579
+ {
1580
+ get = function(self)
1581
+ return self:getNumberField("umpi")
1582
+ end,
1583
+ set = function(self, initialMana)
1584
+ self:setNumberField("umpi", initialMana)
1585
+ end
1586
+ },
1587
+ true
1588
+ )
1294
1589
  __TS__SetDescriptor(
1295
1590
  UnitType.prototype,
1296
1591
  "isStructure",
@@ -1322,10 +1617,10 @@ __TS__SetDescriptor(
1322
1617
  "affectingUpgradeIds",
1323
1618
  {
1324
1619
  get = function(self)
1325
- return self:getObjectDataEntryIdsField("upgr")
1620
+ return self:getObjectDataEntryNumericIdsField("upgr")
1326
1621
  end,
1327
1622
  set = function(self, affectingUpgradeIds)
1328
- self:setObjectDataEntryIdsField("upgr", affectingUpgradeIds)
1623
+ self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
1329
1624
  end
1330
1625
  },
1331
1626
  true
@@ -1385,11 +1680,11 @@ __TS__SetDescriptor(
1385
1680
  implementReadonlyNumberIndexSupplier(
1386
1681
  ____exports.UnitType,
1387
1682
  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
1683
+ local ____class_25 = __TS__Class()
1684
+ ____class_25.name = ____class_25.name
1685
+ __TS__ClassExtends(____class_25, ____exports.UnitType)
1686
+ ____class_25.BASE_ID = id
1687
+ return ____class_25
1393
1688
  end
1394
1689
  )
1395
1690
  ____exports.HeroUnitType = __TS__Class()
@@ -1408,10 +1703,10 @@ __TS__SetDescriptor(
1408
1703
  "heroAbilityTypeIds",
1409
1704
  {
1410
1705
  get = function(self)
1411
- return self:getObjectDataEntryIdsField("uhab")
1706
+ return self:getObjectDataEntryNumericIdsField("uhab")
1412
1707
  end,
1413
1708
  set = function(self, heroAbilityTypeIds)
1414
- self:setObjectDataEntryIdsField("uhab", heroAbilityTypeIds)
1709
+ self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
1415
1710
  end
1416
1711
  },
1417
1712
  true
@@ -1450,11 +1745,11 @@ __TS__SetDescriptor(
1450
1745
  implementReadonlyNumberIndexSupplier(
1451
1746
  ____exports.HeroUnitType,
1452
1747
  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
1748
+ local ____class_26 = __TS__Class()
1749
+ ____class_26.name = ____class_26.name
1750
+ __TS__ClassExtends(____class_26, ____exports.HeroUnitType)
1751
+ ____class_26.BASE_ID = id
1752
+ return ____class_26
1458
1753
  end
1459
1754
  )
1460
1755
  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 {