warscript 0.0.1-dev.ccd5725 → 0.0.1-dev.ceab398

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 (237) hide show
  1. package/attributes.d.ts +5 -1
  2. package/attributes.lua +8 -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 +93 -1
  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/sound.d.ts +17 -24
  16. package/core/types/sound.lua +99 -24
  17. package/core/types/timer.d.ts +7 -8
  18. package/core/types/timer.lua +18 -21
  19. package/core/types/unit.lua +8 -0
  20. package/core/util.d.ts +1 -1
  21. package/core/util.lua +18 -1
  22. package/decl/index.d.ts +1 -0
  23. package/decl/native.d.ts +840 -786
  24. package/engine/ability.d.ts +1 -1
  25. package/engine/behavior.d.ts +12 -10
  26. package/engine/behavior.lua +59 -33
  27. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  28. package/engine/behaviour/ability/always-enabled.lua +31 -0
  29. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  30. package/engine/behaviour/ability/apply-buff.lua +32 -0
  31. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  32. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  33. package/engine/behaviour/ability/damage.d.ts +39 -11
  34. package/engine/behaviour/ability/damage.lua +83 -37
  35. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  36. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  37. package/engine/behaviour/ability/heal.d.ts +33 -6
  38. package/engine/behaviour/ability/heal.lua +89 -10
  39. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  40. package/engine/behaviour/ability/instant-impact.lua +4 -15
  41. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  42. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  43. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  44. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  45. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  46. package/engine/behaviour/ability/restore-mana.lua +29 -0
  47. package/engine/behaviour/ability.d.ts +27 -4
  48. package/engine/behaviour/ability.lua +152 -26
  49. package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
  50. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  51. package/engine/behaviour/unit.d.ts +36 -2
  52. package/engine/behaviour/unit.lua +186 -0
  53. package/engine/buff.d.ts +104 -41
  54. package/engine/buff.lua +471 -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 +20 -13
  58. package/engine/internal/ability.lua +103 -76
  59. package/engine/internal/item/ability.lua +162 -4
  60. package/engine/internal/item+owner.lua +2 -2
  61. package/engine/internal/item.d.ts +7 -4
  62. package/engine/internal/item.lua +131 -28
  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/misc/damage-metadata-by-target.d.ts +2 -0
  67. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  68. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  69. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  70. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  71. package/engine/internal/object-data/evasion-probability.lua +16 -0
  72. package/engine/internal/unit/ability.d.ts +45 -1
  73. package/engine/internal/unit/ability.lua +98 -14
  74. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  75. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  76. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  77. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  78. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  79. package/engine/internal/unit/allowed-targets.lua +9 -1
  80. package/engine/internal/unit/bonus.d.ts +11 -8
  81. package/engine/internal/unit/bonus.lua +23 -1
  82. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  83. package/engine/internal/unit/ignore-events-items.lua +5 -0
  84. package/engine/internal/unit/item.d.ts +24 -0
  85. package/engine/internal/unit/item.lua +78 -0
  86. package/engine/internal/unit/main-selected.d.ts +13 -0
  87. package/engine/internal/unit/main-selected.lua +51 -0
  88. package/engine/internal/unit/order.d.ts +20 -0
  89. package/engine/internal/unit/order.lua +136 -0
  90. package/engine/internal/unit+ability.lua +2 -2
  91. package/engine/internal/unit+damage.d.ts +2 -11
  92. package/engine/internal/unit+damage.lua +10 -14
  93. package/engine/internal/unit+spellSteal.lua +1 -2
  94. package/engine/internal/unit+transport.lua +4 -10
  95. package/engine/internal/unit-missile-launch.lua +25 -6
  96. package/engine/internal/unit.d.ts +86 -20
  97. package/engine/internal/unit.lua +580 -194
  98. package/engine/internal/utility.lua +12 -0
  99. package/engine/lightning.d.ts +12 -5
  100. package/engine/lightning.lua +48 -14
  101. package/engine/local-client.d.ts +7 -2
  102. package/engine/local-client.lua +82 -0
  103. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  104. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  105. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  106. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  107. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  108. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  109. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  110. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  111. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  112. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  113. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  114. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  115. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  116. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  117. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  118. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  119. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  120. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  121. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  122. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  123. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  124. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  125. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  126. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  127. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  128. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  129. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  130. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  131. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  132. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  133. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  134. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  135. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  136. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  137. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  138. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  139. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  140. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  141. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  142. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  143. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  144. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  145. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  146. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  147. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  148. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  149. package/engine/object-data/entry/ability-type/web.lua +52 -0
  150. package/engine/object-data/entry/ability-type.d.ts +19 -18
  151. package/engine/object-data/entry/ability-type.lua +89 -33
  152. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  153. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  154. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  155. package/engine/object-data/entry/buff-type.d.ts +6 -13
  156. package/engine/object-data/entry/buff-type.lua +13 -29
  157. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  158. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  159. package/engine/object-data/entry/item-type.d.ts +15 -2
  160. package/engine/object-data/entry/item-type.lua +93 -2
  161. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  162. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  163. package/engine/object-data/entry/sound-preset.lua +140 -0
  164. package/engine/object-data/entry/unit-type.d.ts +35 -5
  165. package/engine/object-data/entry/unit-type.lua +343 -74
  166. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  167. package/engine/object-data/entry/upgrade.d.ts +1 -2
  168. package/engine/object-data/entry/upgrade.lua +4 -4
  169. package/engine/object-data/entry.d.ts +18 -17
  170. package/engine/object-data/entry.lua +60 -32
  171. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  172. package/engine/object-field/ability.d.ts +26 -3
  173. package/engine/object-field/ability.lua +54 -1
  174. package/engine/object-field/unit.d.ts +57 -3
  175. package/engine/object-field/unit.lua +207 -7
  176. package/engine/object-field.d.ts +17 -7
  177. package/engine/object-field.lua +187 -89
  178. package/engine/random.d.ts +1 -0
  179. package/engine/random.lua +9 -0
  180. package/engine/standard/entries/buff-type.d.ts +3 -0
  181. package/engine/standard/entries/buff-type.lua +3 -0
  182. package/engine/standard/entries/sound-preset.d.ts +10 -0
  183. package/engine/standard/entries/sound-preset.lua +10 -0
  184. package/engine/standard/entries/unit-type.d.ts +39 -1
  185. package/engine/standard/entries/unit-type.lua +39 -1
  186. package/engine/standard/fields/ability.d.ts +3 -1
  187. package/engine/standard/fields/ability.lua +3 -1
  188. package/engine/standard/fields/unit.d.ts +4 -0
  189. package/engine/standard/fields/unit.lua +7 -0
  190. package/engine/text-tag.d.ts +36 -2
  191. package/engine/text-tag.lua +175 -10
  192. package/engine/unit.d.ts +4 -0
  193. package/engine/unit.lua +13 -2
  194. package/event.d.ts +2 -3
  195. package/event.lua +9 -5
  196. package/index.d.ts +1 -0
  197. package/index.lua +1 -0
  198. package/lualib_bundle.lua +146 -42
  199. package/math/vec2.d.ts +2 -9
  200. package/math.d.ts +0 -2
  201. package/net/socket.d.ts +7 -1
  202. package/net/socket.lua +45 -4
  203. package/network.d.ts +1 -0
  204. package/network.lua +3 -2
  205. package/objutil/ability.d.ts +0 -1
  206. package/objutil/buff.d.ts +0 -1
  207. package/objutil/buff.lua +2 -3
  208. package/objutil/object.d.ts +0 -1
  209. package/objutil/unit.d.ts +0 -1
  210. package/objutil/unit.lua +8 -0
  211. package/package.json +13 -14
  212. package/patch-lua.d.ts +0 -0
  213. package/patch-lua.lua +10 -0
  214. package/property.d.ts +55 -0
  215. package/property.lua +374 -0
  216. package/string.d.ts +30 -0
  217. package/string.lua +14 -0
  218. package/util/stream.d.ts +0 -1
  219. package/utility/arrays.d.ts +12 -5
  220. package/utility/arrays.lua +37 -3
  221. package/utility/bit-set.d.ts +0 -2
  222. package/utility/functions.d.ts +6 -0
  223. package/utility/functions.lua +6 -0
  224. package/utility/lazy.d.ts +2 -0
  225. package/utility/lazy.lua +14 -0
  226. package/utility/linked-set.d.ts +12 -3
  227. package/utility/linked-set.lua +8 -2
  228. package/utility/lua-maps.d.ts +5 -2
  229. package/utility/lua-maps.lua +20 -0
  230. package/utility/lua-sets.d.ts +2 -2
  231. package/utility/lua-sets.lua +3 -0
  232. package/utility/reflection.lua +11 -7
  233. package/utility/types.d.ts +1 -0
  234. package/core/mapbounds.d.ts +0 -8
  235. package/core/mapbounds.lua +0 -12
  236. package/core/types/order.d.ts +0 -25
  237. package/core/types/order.lua +0 -55
@@ -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,11 @@ 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 ____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
21
30
  local getOrCreateUnitTypeWeapons
22
31
  ____exports.UnitTypeWeapon = __TS__Class()
23
32
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -31,18 +40,19 @@ __TS__SetDescriptor(
31
40
  "attackType",
32
41
  {
33
42
  get = function(self)
43
+ local ____stringToAttackType_1 = stringToAttackType
34
44
  local ____self_0 = self.unitType
35
- return ____self_0.getStringField(
45
+ return ____stringToAttackType_1(____self_0.getStringField(
36
46
  ____self_0,
37
47
  ("ua" .. tostring(self.index)) .. "t"
38
- )
48
+ ))
39
49
  end,
40
50
  set = function(self, attackType)
41
- local ____self_1 = self.unitType
42
- ____self_1.setStringField(
43
- ____self_1,
51
+ local ____self_2 = self.unitType
52
+ ____self_2.setStringField(
53
+ ____self_2,
44
54
  ("ua" .. tostring(self.index)) .. "t",
45
- attackType
55
+ attackTypeToString(attackType)
46
56
  )
47
57
  end
48
58
  },
@@ -53,16 +63,16 @@ __TS__SetDescriptor(
53
63
  "backSwingDuration",
54
64
  {
55
65
  get = function(self)
56
- local ____self_2 = self.unitType
57
- return ____self_2.getNumberField(
58
- ____self_2,
66
+ local ____self_3 = self.unitType
67
+ return ____self_3.getNumberField(
68
+ ____self_3,
59
69
  "ubs" .. tostring(self.index)
60
70
  )
61
71
  end,
62
72
  set = function(self, backSwingDuration)
63
- local ____self_3 = self.unitType
64
- ____self_3.setNumberField(
65
- ____self_3,
73
+ local ____self_4 = self.unitType
74
+ ____self_4.setNumberField(
75
+ ____self_4,
66
76
  "ubs" .. tostring(self.index),
67
77
  backSwingDuration
68
78
  )
@@ -70,21 +80,130 @@ __TS__SetDescriptor(
70
80
  },
71
81
  true
72
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
+ )
73
192
  __TS__SetDescriptor(
74
193
  UnitTypeWeapon.prototype,
75
194
  "impactDelay",
76
195
  {
77
196
  get = function(self)
78
- local ____self_4 = self.unitType
79
- return ____self_4.getNumberField(
80
- ____self_4,
197
+ local ____self_13 = self.unitType
198
+ return ____self_13.getNumberField(
199
+ ____self_13,
81
200
  "udp" .. tostring(self.index)
82
201
  )
83
202
  end,
84
203
  set = function(self, impactDelay)
85
- local ____self_5 = self.unitType
86
- ____self_5.setNumberField(
87
- ____self_5,
204
+ local ____self_14 = self.unitType
205
+ ____self_14.setNumberField(
206
+ ____self_14,
88
207
  "udp" .. tostring(self.index),
89
208
  impactDelay
90
209
  )
@@ -97,16 +216,16 @@ __TS__SetDescriptor(
97
216
  "missileModelPath",
98
217
  {
99
218
  get = function(self)
100
- local ____self_6 = self.unitType
101
- return ____self_6.getStringField(
102
- ____self_6,
219
+ local ____self_15 = self.unitType
220
+ return ____self_15.getStringField(
221
+ ____self_15,
103
222
  ("ua" .. tostring(self.index)) .. "m"
104
223
  )
105
224
  end,
106
225
  set = function(self, missileModelPath)
107
- local ____self_7 = self.unitType
108
- ____self_7.setStringField(
109
- ____self_7,
226
+ local ____self_16 = self.unitType
227
+ ____self_16.setStringField(
228
+ ____self_16,
110
229
  ("ua" .. tostring(self.index)) .. "m",
111
230
  missileModelPath
112
231
  )
@@ -119,16 +238,16 @@ __TS__SetDescriptor(
119
238
  "range",
120
239
  {
121
240
  get = function(self)
122
- local ____self_8 = self.unitType
123
- return ____self_8.getNumberField(
124
- ____self_8,
241
+ local ____self_17 = self.unitType
242
+ return ____self_17.getNumberField(
243
+ ____self_17,
125
244
  ("ua" .. tostring(self.index)) .. "r"
126
245
  )
127
246
  end,
128
247
  set = function(self, range)
129
- local ____self_9 = self.unitType
130
- ____self_9.setNumberField(
131
- ____self_9,
248
+ local ____self_18 = self.unitType
249
+ ____self_18.setNumberField(
250
+ ____self_18,
132
251
  ("ua" .. tostring(self.index)) .. "r",
133
252
  range
134
253
  )
@@ -141,16 +260,16 @@ __TS__SetDescriptor(
141
260
  "soundType",
142
261
  {
143
262
  get = function(self)
144
- local ____self_10 = self.unitType
145
- return ____self_10.getStringField(
146
- ____self_10,
263
+ local ____self_19 = self.unitType
264
+ return ____self_19.getStringField(
265
+ ____self_19,
147
266
  "ucs" .. tostring(self.index)
148
267
  )
149
268
  end,
150
269
  set = function(self, soundType)
151
- local ____self_11 = self.unitType
152
- ____self_11.setStringField(
153
- ____self_11,
270
+ local ____self_20 = self.unitType
271
+ ____self_20.setStringField(
272
+ ____self_20,
154
273
  "ucs" .. tostring(self.index),
155
274
  soundType
156
275
  )
@@ -163,16 +282,16 @@ __TS__SetDescriptor(
163
282
  "soundTypeSD",
164
283
  {
165
284
  get = function(self)
166
- local ____self_12 = self.unitType
167
- return ____self_12.getStringField(
168
- ____self_12,
285
+ local ____self_21 = self.unitType
286
+ return ____self_21.getStringField(
287
+ ____self_21,
169
288
  ("ucs" .. tostring(self.index)) .. ":sd"
170
289
  )
171
290
  end,
172
291
  set = function(self, soundTypeSD)
173
- local ____self_13 = self.unitType
174
- ____self_13.setStringField(
175
- ____self_13,
292
+ local ____self_22 = self.unitType
293
+ ____self_22.setStringField(
294
+ ____self_22,
176
295
  ("ucs" .. tostring(self.index)) .. ":sd",
177
296
  soundTypeSD
178
297
  )
@@ -185,16 +304,16 @@ __TS__SetDescriptor(
185
304
  "soundTypeHD",
186
305
  {
187
306
  get = function(self)
188
- local ____self_14 = self.unitType
189
- return ____self_14.getStringField(
190
- ____self_14,
307
+ local ____self_23 = self.unitType
308
+ return ____self_23.getStringField(
309
+ ____self_23,
191
310
  ("ucs" .. tostring(self.index)) .. ":hd"
192
311
  )
193
312
  end,
194
313
  set = function(self, soundTypeHD)
195
- local ____self_15 = self.unitType
196
- ____self_15.setStringField(
197
- ____self_15,
314
+ local ____self_24 = self.unitType
315
+ ____self_24.setStringField(
316
+ ____self_24,
198
317
  ("ucs" .. tostring(self.index)) .. ":hd",
199
318
  soundTypeHD
200
319
  )
@@ -235,10 +354,10 @@ __TS__SetDescriptor(
235
354
  "abilityTypeIds",
236
355
  {
237
356
  get = function(self)
238
- return self:getObjectDataEntryIdsField("uabi")
357
+ return self:getObjectDataEntryNumericIdsField("uabi")
239
358
  end,
240
359
  set = function(self, abilityTypeIds)
241
- self:setObjectDataEntryIdsField("uabi", abilityTypeIds)
360
+ self:setObjectDataEntryNumericIdsField("uabi", abilityTypeIds)
242
361
  end
243
362
  },
244
363
  true
@@ -248,10 +367,10 @@ __TS__SetDescriptor(
248
367
  "defaultActiveAbilityTypeId",
249
368
  {
250
369
  get = function(self)
251
- return self:getObjectDataEntryIdsField("udaa")[1]
370
+ return self:getObjectDataEntryNumericIdsField("udaa")[1]
252
371
  end,
253
372
  set = function(self, abilityTypeId)
254
- self:setObjectDataEntryIdsField(
373
+ self:setObjectDataEntryNumericIdsField(
255
374
  "udaa",
256
375
  arrayOfNotNull(abilityTypeId)
257
376
  )
@@ -697,6 +816,9 @@ __TS__SetDescriptor(
697
816
  end,
698
817
  set = function(self, modelPath)
699
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
700
822
  end
701
823
  },
702
824
  true
@@ -710,6 +832,9 @@ __TS__SetDescriptor(
710
832
  end,
711
833
  set = function(self, modelPathSD)
712
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
713
838
  end
714
839
  },
715
840
  true
@@ -723,6 +848,51 @@ __TS__SetDescriptor(
723
848
  end,
724
849
  set = function(self, modelPathHD)
725
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
726
896
  end
727
897
  },
728
898
  true
@@ -1086,25 +1256,25 @@ __TS__SetDescriptor(
1086
1256
  )
1087
1257
  __TS__SetDescriptor(
1088
1258
  UnitType.prototype,
1089
- "firstWeapon",
1259
+ "weapons",
1090
1260
  {get = function(self)
1091
- return self.weapons[1]
1261
+ return getOrCreateUnitTypeWeapons(self)
1092
1262
  end},
1093
1263
  true
1094
1264
  )
1095
1265
  __TS__SetDescriptor(
1096
1266
  UnitType.prototype,
1097
- "secondWeapon",
1267
+ "firstWeapon",
1098
1268
  {get = function(self)
1099
- return self.weapons[2]
1269
+ return self.weapons[1]
1100
1270
  end},
1101
1271
  true
1102
1272
  )
1103
1273
  __TS__SetDescriptor(
1104
1274
  UnitType.prototype,
1105
- "weapons",
1275
+ "secondWeapon",
1106
1276
  {get = function(self)
1107
- return getOrCreateUnitTypeWeapons(self)
1277
+ return self.weapons[2]
1108
1278
  end},
1109
1279
  true
1110
1280
  )
@@ -1178,10 +1348,13 @@ __TS__SetDescriptor(
1178
1348
  "movementType",
1179
1349
  {
1180
1350
  get = function(self)
1181
- return self:getStringField("umvt")
1351
+ return stringToMovementType(self:getStringField("umvt"))
1182
1352
  end,
1183
1353
  set = function(self, movementType)
1184
- self:setStringField("umvt", movementType)
1354
+ self:setStringField(
1355
+ "umvt",
1356
+ movementTypeToString(movementType)
1357
+ )
1185
1358
  end
1186
1359
  },
1187
1360
  true
@@ -1290,6 +1463,71 @@ __TS__SetDescriptor(
1290
1463
  },
1291
1464
  true
1292
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
+ )
1293
1531
  __TS__SetDescriptor(
1294
1532
  UnitType.prototype,
1295
1533
  "isStructure",
@@ -1321,10 +1559,10 @@ __TS__SetDescriptor(
1321
1559
  "affectingUpgradeIds",
1322
1560
  {
1323
1561
  get = function(self)
1324
- return self:getObjectDataEntryIdsField("upgr")
1562
+ return self:getObjectDataEntryNumericIdsField("upgr")
1325
1563
  end,
1326
1564
  set = function(self, affectingUpgradeIds)
1327
- self:setObjectDataEntryIdsField("upgr", affectingUpgradeIds)
1565
+ self:setObjectDataEntryNumericIdsField("upgr", affectingUpgradeIds)
1328
1566
  end
1329
1567
  },
1330
1568
  true
@@ -1384,11 +1622,11 @@ __TS__SetDescriptor(
1384
1622
  implementReadonlyNumberIndexSupplier(
1385
1623
  ____exports.UnitType,
1386
1624
  function(id)
1387
- local ____class_16 = __TS__Class()
1388
- ____class_16.name = ____class_16.name
1389
- __TS__ClassExtends(____class_16, ____exports.UnitType)
1390
- ____class_16.BASE_ID = id
1391
- 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
1392
1630
  end
1393
1631
  )
1394
1632
  ____exports.HeroUnitType = __TS__Class()
@@ -1407,10 +1645,41 @@ __TS__SetDescriptor(
1407
1645
  "heroAbilityTypeIds",
1408
1646
  {
1409
1647
  get = function(self)
1410
- return self:getObjectDataEntryIdsField("uhab")
1648
+ return self:getObjectDataEntryNumericIdsField("uhab")
1411
1649
  end,
1412
1650
  set = function(self, heroAbilityTypeIds)
1413
- self:setObjectDataEntryIdsField("uhab", heroAbilityTypeIds)
1651
+ self:setObjectDataEntryNumericIdsField("uhab", heroAbilityTypeIds)
1652
+ end
1653
+ },
1654
+ true
1655
+ )
1656
+ __TS__SetDescriptor(
1657
+ HeroUnitType.prototype,
1658
+ "properNames",
1659
+ {
1660
+ get = function(self)
1661
+ return self:getStringsField("upro")
1662
+ end,
1663
+ set = function(self, properNames)
1664
+ if __TS__ArrayIsArray(properNames) then
1665
+ self:setStringsField("upro", properNames)
1666
+ self:setNumberField("upru", #properNames)
1667
+ else
1668
+ self:setStringField("upro", properNames)
1669
+ end
1670
+ end
1671
+ },
1672
+ true
1673
+ )
1674
+ __TS__SetDescriptor(
1675
+ HeroUnitType.prototype,
1676
+ "properNameCount",
1677
+ {
1678
+ get = function(self)
1679
+ return self:getNumberField("upru")
1680
+ end,
1681
+ set = function(self, properNameCount)
1682
+ self:setNumberField("upru", properNameCount)
1414
1683
  end
1415
1684
  },
1416
1685
  true
@@ -1418,11 +1687,11 @@ __TS__SetDescriptor(
1418
1687
  implementReadonlyNumberIndexSupplier(
1419
1688
  ____exports.HeroUnitType,
1420
1689
  function(id)
1421
- local ____class_17 = __TS__Class()
1422
- ____class_17.name = ____class_17.name
1423
- __TS__ClassExtends(____class_17, ____exports.HeroUnitType)
1424
- ____class_17.BASE_ID = id
1425
- 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
1426
1695
  end
1427
1696
  )
1428
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
  },