warscript 0.0.1-dev.9cbb1ff → 0.0.1-dev.9e6f20e

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 (184) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/frame.d.ts +1 -0
  4. package/core/types/frame.lua +136 -58
  5. package/core/types/handle.lua +6 -9
  6. package/core/types/item.d.ts +1 -0
  7. package/core/types/item.lua +1 -0
  8. package/core/types/player.d.ts +17 -1
  9. package/core/types/player.lua +70 -24
  10. package/core/types/playerCamera.d.ts +2 -0
  11. package/core/types/playerCamera.lua +123 -5
  12. package/core/types/sound.lua +1 -1
  13. package/core/types/tileCell.d.ts +11 -1
  14. package/core/types/tileCell.lua +97 -0
  15. package/core/types/timer.d.ts +3 -1
  16. package/core/types/timer.lua +27 -2
  17. package/decl/native.d.ts +846 -790
  18. package/destroyable.d.ts +1 -0
  19. package/destroyable.lua +9 -0
  20. package/engine/behavior.d.ts +14 -1
  21. package/engine/behavior.lua +230 -70
  22. package/engine/behaviour/ability/apply-buff.lua +5 -5
  23. package/engine/behaviour/ability/damage.d.ts +9 -3
  24. package/engine/behaviour/ability/damage.lua +31 -37
  25. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  26. package/engine/behaviour/ability/emulate-impact.lua +16 -7
  27. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  28. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  29. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  30. package/engine/behaviour/ability/restore-mana.lua +6 -6
  31. package/engine/behaviour/ability.d.ts +11 -6
  32. package/engine/behaviour/ability.lua +38 -17
  33. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  34. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  35. package/engine/behaviour/unit.d.ts +39 -3
  36. package/engine/behaviour/unit.lua +269 -6
  37. package/engine/buff.d.ts +67 -22
  38. package/engine/buff.lua +371 -182
  39. package/engine/internal/ability.d.ts +7 -1
  40. package/engine/internal/ability.lua +64 -24
  41. package/engine/internal/item/ability.lua +63 -11
  42. package/engine/internal/item/fields.d.ts +12 -0
  43. package/engine/internal/item/fields.lua +33 -0
  44. package/engine/internal/item+owner.lua +12 -6
  45. package/engine/internal/item.d.ts +16 -16
  46. package/engine/internal/item.lua +152 -69
  47. package/engine/internal/mechanics/cast-ability.lua +6 -3
  48. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  49. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  50. package/engine/internal/misc/frame-coordinates.lua +21 -0
  51. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  52. package/engine/internal/misc/get-terrain-z.lua +11 -0
  53. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  54. package/engine/internal/misc/player-local-handle.lua +5 -0
  55. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  56. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  57. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  58. package/engine/internal/object-data/health-bonus.lua +16 -0
  59. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  60. package/engine/internal/object-data/mana-bonus.lua +16 -0
  61. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  62. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  63. package/engine/internal/unit/ability.d.ts +35 -0
  64. package/engine/internal/unit/ability.lua +113 -12
  65. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  66. package/engine/internal/unit/allowed-targets.lua +9 -1
  67. package/engine/internal/unit/attributes.d.ts +17 -0
  68. package/engine/internal/unit/attributes.lua +46 -0
  69. package/engine/internal/unit/bonus.d.ts +6 -0
  70. package/engine/internal/unit/bonus.lua +33 -3
  71. package/engine/internal/unit/buff.d.ts +2 -2
  72. package/engine/internal/unit/buff.lua +32 -17
  73. package/engine/internal/unit/fly-height.d.ts +7 -0
  74. package/engine/internal/unit/fly-height.lua +20 -0
  75. package/engine/internal/unit/interrupts.d.ts +12 -0
  76. package/engine/internal/unit/interrupts.lua +28 -0
  77. package/engine/internal/unit/main-selected.lua +12 -27
  78. package/engine/internal/unit/order.d.ts +20 -0
  79. package/engine/internal/unit/order.lua +136 -0
  80. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  81. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  82. package/engine/internal/unit/range-event.d.ts +12 -0
  83. package/engine/internal/unit/range-event.lua +90 -0
  84. package/engine/internal/unit/scale.d.ts +7 -0
  85. package/engine/internal/unit/scale.lua +20 -0
  86. package/engine/internal/unit+ability.lua +10 -1
  87. package/engine/internal/unit+bonus.lua +3 -3
  88. package/engine/internal/unit+damage.d.ts +2 -11
  89. package/engine/internal/unit+damage.lua +10 -14
  90. package/engine/internal/unit+spellSteal.lua +1 -2
  91. package/engine/internal/unit-missile-launch.lua +52 -14
  92. package/engine/internal/unit.d.ts +34 -27
  93. package/engine/internal/unit.lua +365 -273
  94. package/engine/local-client.d.ts +7 -0
  95. package/engine/local-client.lua +86 -1
  96. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  97. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  98. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  99. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  100. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  101. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  102. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  103. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  104. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  105. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  106. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  107. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  108. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  109. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  110. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  111. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  112. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  113. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  114. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  115. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  116. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  117. package/engine/object-data/entry/ability-type.d.ts +2 -0
  118. package/engine/object-data/entry/ability-type.lua +89 -8
  119. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  120. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  121. package/engine/object-data/entry/destructible-type.lua +155 -0
  122. package/engine/object-data/entry/unit-type.d.ts +17 -4
  123. package/engine/object-data/entry/unit-type.lua +189 -83
  124. package/engine/object-field/ability.d.ts +4 -4
  125. package/engine/object-field/ability.lua +9 -8
  126. package/engine/object-field/item.d.ts +22 -0
  127. package/engine/object-field/item.lua +118 -0
  128. package/engine/object-field/unit.d.ts +72 -3
  129. package/engine/object-field/unit.lua +268 -7
  130. package/engine/object-field.d.ts +18 -7
  131. package/engine/object-field.lua +294 -135
  132. package/engine/random.d.ts +10 -0
  133. package/engine/random.lua +21 -0
  134. package/engine/standard/fields/ability.d.ts +2 -2
  135. package/engine/standard/fields/ability.lua +2 -2
  136. package/engine/standard/fields/item.d.ts +4 -0
  137. package/engine/standard/fields/item.lua +6 -0
  138. package/engine/standard/fields/unit.d.ts +12 -0
  139. package/engine/standard/fields/unit.lua +20 -0
  140. package/engine/synchronization.d.ts +11 -0
  141. package/engine/synchronization.lua +77 -0
  142. package/engine/text-tag.d.ts +36 -2
  143. package/engine/text-tag.lua +250 -10
  144. package/engine/unit.d.ts +6 -0
  145. package/engine/unit.lua +6 -0
  146. package/event.d.ts +1 -1
  147. package/lualib_bundle.lua +1 -1
  148. package/math.d.ts +2 -0
  149. package/math.lua +14 -0
  150. package/net/socket.lua +1 -1
  151. package/network.lua +25 -1
  152. package/objutil/buff.lua +11 -10
  153. package/objutil/object.lua +1 -1
  154. package/operation.d.ts +8 -1
  155. package/operation.lua +38 -18
  156. package/package.json +5 -5
  157. package/patch-lua.lua +15 -0
  158. package/patch-lualib.lua +1 -1
  159. package/utility/arrays.d.ts +2 -0
  160. package/utility/arrays.lua +11 -0
  161. package/utility/callback-array.d.ts +17 -0
  162. package/utility/callback-array.lua +61 -0
  163. package/utility/functions.d.ts +8 -0
  164. package/utility/functions.lua +13 -0
  165. package/utility/linked-map.d.ts +35 -0
  166. package/utility/linked-map.lua +107 -0
  167. package/utility/linked-set.d.ts +4 -1
  168. package/utility/linked-set.lua +46 -1
  169. package/utility/lua-maps.d.ts +12 -2
  170. package/utility/lua-maps.lua +37 -2
  171. package/utility/lua-sets.d.ts +1 -0
  172. package/utility/lua-sets.lua +4 -0
  173. package/utility/random.d.ts +102 -0
  174. package/utility/random.lua +273 -0
  175. package/utility/records.lua +20 -1
  176. package/utility/types.d.ts +3 -0
  177. package/utility/unordered-map.d.ts +27 -0
  178. package/utility/unordered-map.lua +99 -0
  179. package/core/types/order.d.ts +0 -25
  180. package/core/types/order.lua +0 -55
  181. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  182. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  183. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  184. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -13,6 +13,7 @@ import type { AbilityTypeId } from "./ability-type";
13
13
  import type { UpgradeId } from "./upgrade";
14
14
  import { AnimationQualifier } from "../auxiliary/animation-qualifier";
15
15
  import { AttackType } from "../auxiliary/attack-type";
16
+ import { ArmorType } from "../auxiliary/armor-type";
16
17
  export type UnitTypeId = ObjectDataEntryId & number & {
17
18
  readonly __unitTypeId: unique symbol;
18
19
  };
@@ -23,8 +24,8 @@ export declare class UnitTypeWeapon {
23
24
  private readonly unitType;
24
25
  private readonly index;
25
26
  private constructor();
26
- get attackType(): AttackType;
27
- set attackType(attackType: AttackType);
27
+ get attackType(): AttackType | undefined;
28
+ set attackType(attackType: AttackType | undefined);
28
29
  get backSwingDuration(): number;
29
30
  set backSwingDuration(backSwingDuration: number);
30
31
  get cooldown(): number;
@@ -41,6 +42,10 @@ export declare class UnitTypeWeapon {
41
42
  set impactDelay(impactDelay: number);
42
43
  get missileModelPath(): string;
43
44
  set missileModelPath(missileModelPath: string);
45
+ get missileModelPathSD(): string;
46
+ set missileModelPathSD(missileModelPathSD: string);
47
+ get missileModelPathHD(): string;
48
+ set missileModelPathHD(missileModelPathHD: string);
44
49
  get range(): number;
45
50
  set range(range: number);
46
51
  get soundType(): WeaponSoundType;
@@ -144,6 +149,8 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
144
149
  set runSpeedSD(runSpeedSD: number);
145
150
  get runSpeedHD(): number;
146
151
  set runSpeedHD(runSpeedHD: number);
152
+ get selectionCircleHeight(): number;
153
+ set selectionCircleHeight(height: number);
147
154
  get selectionCircleScale(): number;
148
155
  set selectionCircleScale(selectionCircleScale: number);
149
156
  get selectionCircleScaleSD(): number;
@@ -182,16 +189,20 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
182
189
  set walkSpeedSD(walkSpeedSD: number);
183
190
  get walkSpeedHD(): number;
184
191
  set walkSpeedHD(walkSpeedHD: number);
192
+ get armor(): number;
193
+ set armor(armor: number);
185
194
  get armorSoundType(): ArmorSoundType;
186
195
  set armorSoundType(armorSoundType: ArmorSoundType);
187
196
  get armorSoundTypeSD(): ArmorSoundType;
188
197
  set armorSoundTypeSD(armorSoundTypeSD: ArmorSoundType);
189
198
  get armorSoundTypeHD(): ArmorSoundType;
190
199
  set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
200
+ get armorType(): ArmorType;
201
+ set armorType(armorType: ArmorType);
191
202
  get combatClassifications(): CombatClassifications;
192
203
  set combatClassifications(combatClassifications: CombatClassifications);
193
- get unitClassifications(): UnitClassifications;
194
- set unitClassifications(unitClassifications: UnitClassifications);
204
+ get classifications(): UnitClassifications;
205
+ set classifications(unitClassifications: UnitClassifications);
195
206
  get weapons(): TupleOf<UnitTypeWeapon, 2>;
196
207
  get firstWeapon(): UnitTypeWeapon;
197
208
  get secondWeapon(): UnitTypeWeapon;
@@ -225,6 +236,8 @@ export declare abstract class UnitType<Id extends UnitTypeId = UnitTypeId> exten
225
236
  set goldCost(goldCost: number);
226
237
  get healthRegenerationRate(): number;
227
238
  set healthRegenerationRate(healthRegenerationRate: number);
239
+ get level(): number;
240
+ set level(level: number);
228
241
  get manaRegenerationRate(): number;
229
242
  set manaRegenerationRate(manaRegenerationRate: number);
230
243
  get maximumHealth(): number;
@@ -22,8 +22,14 @@ local ____entry = require("engine.object-data.entry")
22
22
  local ObjectDataEntry = ____entry.ObjectDataEntry
23
23
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
24
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
25
28
  local ____config = require("config")
26
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
27
33
  local getOrCreateUnitTypeWeapons
28
34
  ____exports.UnitTypeWeapon = __TS__Class()
29
35
  local UnitTypeWeapon = ____exports.UnitTypeWeapon
@@ -37,18 +43,19 @@ __TS__SetDescriptor(
37
43
  "attackType",
38
44
  {
39
45
  get = function(self)
46
+ local ____stringToAttackType_1 = stringToAttackType
40
47
  local ____self_0 = self.unitType
41
- return ____self_0.getStringField(
48
+ return ____stringToAttackType_1(____self_0.getStringField(
42
49
  ____self_0,
43
50
  ("ua" .. tostring(self.index)) .. "t"
44
- )
51
+ ))
45
52
  end,
46
53
  set = function(self, attackType)
47
- local ____self_1 = self.unitType
48
- ____self_1.setStringField(
49
- ____self_1,
54
+ local ____self_2 = self.unitType
55
+ ____self_2.setStringField(
56
+ ____self_2,
50
57
  ("ua" .. tostring(self.index)) .. "t",
51
- attackType
58
+ attackTypeToString(attackType)
52
59
  )
53
60
  end
54
61
  },
@@ -59,16 +66,16 @@ __TS__SetDescriptor(
59
66
  "backSwingDuration",
60
67
  {
61
68
  get = function(self)
62
- local ____self_2 = self.unitType
63
- return ____self_2.getNumberField(
64
- ____self_2,
69
+ local ____self_3 = self.unitType
70
+ return ____self_3.getNumberField(
71
+ ____self_3,
65
72
  "ubs" .. tostring(self.index)
66
73
  )
67
74
  end,
68
75
  set = function(self, backSwingDuration)
69
- local ____self_3 = self.unitType
70
- ____self_3.setNumberField(
71
- ____self_3,
76
+ local ____self_4 = self.unitType
77
+ ____self_4.setNumberField(
78
+ ____self_4,
72
79
  "ubs" .. tostring(self.index),
73
80
  backSwingDuration
74
81
  )
@@ -81,16 +88,16 @@ __TS__SetDescriptor(
81
88
  "cooldown",
82
89
  {
83
90
  get = function(self)
84
- local ____self_4 = self.unitType
85
- return ____self_4.getNumberField(
86
- ____self_4,
91
+ local ____self_5 = self.unitType
92
+ return ____self_5.getNumberField(
93
+ ____self_5,
87
94
  ("ua" .. tostring(self.index)) .. "c"
88
95
  )
89
96
  end,
90
97
  set = function(self, cooldown)
91
- local ____self_5 = self.unitType
92
- ____self_5.setNumberField(
93
- ____self_5,
98
+ local ____self_6 = self.unitType
99
+ ____self_6.setNumberField(
100
+ ____self_6,
94
101
  ("ua" .. tostring(self.index)) .. "c",
95
102
  cooldown
96
103
  )
@@ -124,16 +131,16 @@ __TS__SetDescriptor(
124
131
  "damageBase",
125
132
  {
126
133
  get = function(self)
127
- local ____self_6 = self.unitType
128
- return ____self_6.getNumberField(
129
- ____self_6,
134
+ local ____self_7 = self.unitType
135
+ return ____self_7.getNumberField(
136
+ ____self_7,
130
137
  ("ua" .. tostring(self.index)) .. "b"
131
138
  )
132
139
  end,
133
140
  set = function(self, damageBase)
134
- local ____self_7 = self.unitType
135
- ____self_7.setNumberField(
136
- ____self_7,
141
+ local ____self_8 = self.unitType
142
+ ____self_8.setNumberField(
143
+ ____self_8,
137
144
  ("ua" .. tostring(self.index)) .. "b",
138
145
  damageBase
139
146
  )
@@ -146,16 +153,16 @@ __TS__SetDescriptor(
146
153
  "damageDiceCount",
147
154
  {
148
155
  get = function(self)
149
- local ____self_8 = self.unitType
150
- return ____self_8.getNumberField(
151
- ____self_8,
156
+ local ____self_9 = self.unitType
157
+ return ____self_9.getNumberField(
158
+ ____self_9,
152
159
  ("ua" .. tostring(self.index)) .. "d"
153
160
  )
154
161
  end,
155
162
  set = function(self, damageDiceNumber)
156
- local ____self_9 = self.unitType
157
- ____self_9.setNumberField(
158
- ____self_9,
163
+ local ____self_10 = self.unitType
164
+ ____self_10.setNumberField(
165
+ ____self_10,
159
166
  ("ua" .. tostring(self.index)) .. "d",
160
167
  damageDiceNumber
161
168
  )
@@ -168,16 +175,16 @@ __TS__SetDescriptor(
168
175
  "damageDiceSideCount",
169
176
  {
170
177
  get = function(self)
171
- local ____self_10 = self.unitType
172
- return ____self_10.getNumberField(
173
- ____self_10,
178
+ local ____self_11 = self.unitType
179
+ return ____self_11.getNumberField(
180
+ ____self_11,
174
181
  ("ua" .. tostring(self.index)) .. "s"
175
182
  )
176
183
  end,
177
184
  set = function(self, damageDiceSideCount)
178
- local ____self_11 = self.unitType
179
- ____self_11.setNumberField(
180
- ____self_11,
185
+ local ____self_12 = self.unitType
186
+ ____self_12.setNumberField(
187
+ ____self_12,
181
188
  ("ua" .. tostring(self.index)) .. "s",
182
189
  damageDiceSideCount
183
190
  )
@@ -190,16 +197,16 @@ __TS__SetDescriptor(
190
197
  "impactDelay",
191
198
  {
192
199
  get = function(self)
193
- local ____self_12 = self.unitType
194
- return ____self_12.getNumberField(
195
- ____self_12,
200
+ local ____self_13 = self.unitType
201
+ return ____self_13.getNumberField(
202
+ ____self_13,
196
203
  "udp" .. tostring(self.index)
197
204
  )
198
205
  end,
199
206
  set = function(self, impactDelay)
200
- local ____self_13 = self.unitType
201
- ____self_13.setNumberField(
202
- ____self_13,
207
+ local ____self_14 = self.unitType
208
+ ____self_14.setNumberField(
209
+ ____self_14,
203
210
  "udp" .. tostring(self.index),
204
211
  impactDelay
205
212
  )
@@ -212,16 +219,16 @@ __TS__SetDescriptor(
212
219
  "missileModelPath",
213
220
  {
214
221
  get = function(self)
215
- local ____self_14 = self.unitType
216
- return ____self_14.getStringField(
217
- ____self_14,
222
+ local ____self_15 = self.unitType
223
+ return ____self_15.getStringField(
224
+ ____self_15,
218
225
  ("ua" .. tostring(self.index)) .. "m"
219
226
  )
220
227
  end,
221
228
  set = function(self, missileModelPath)
222
- local ____self_15 = self.unitType
223
- ____self_15.setStringField(
224
- ____self_15,
229
+ local ____self_16 = self.unitType
230
+ ____self_16.setStringField(
231
+ ____self_16,
225
232
  ("ua" .. tostring(self.index)) .. "m",
226
233
  missileModelPath
227
234
  )
@@ -229,21 +236,65 @@ __TS__SetDescriptor(
229
236
  },
230
237
  true
231
238
  )
239
+ __TS__SetDescriptor(
240
+ UnitTypeWeapon.prototype,
241
+ "missileModelPathSD",
242
+ {
243
+ get = function(self)
244
+ local ____self_17 = self.unitType
245
+ return ____self_17.getStringField(
246
+ ____self_17,
247
+ ("ua" .. tostring(self.index)) .. "m:sd"
248
+ )
249
+ end,
250
+ set = function(self, missileModelPathSD)
251
+ local ____self_18 = self.unitType
252
+ ____self_18.setStringField(
253
+ ____self_18,
254
+ ("ua" .. tostring(self.index)) .. "m:sd",
255
+ missileModelPathSD
256
+ )
257
+ end
258
+ },
259
+ true
260
+ )
261
+ __TS__SetDescriptor(
262
+ UnitTypeWeapon.prototype,
263
+ "missileModelPathHD",
264
+ {
265
+ get = function(self)
266
+ local ____self_19 = self.unitType
267
+ return ____self_19.getStringField(
268
+ ____self_19,
269
+ ("ua" .. tostring(self.index)) .. "m:hd"
270
+ )
271
+ end,
272
+ set = function(self, missileModelPathHD)
273
+ local ____self_20 = self.unitType
274
+ ____self_20.setStringField(
275
+ ____self_20,
276
+ ("ua" .. tostring(self.index)) .. "m:hd",
277
+ missileModelPathHD
278
+ )
279
+ end
280
+ },
281
+ true
282
+ )
232
283
  __TS__SetDescriptor(
233
284
  UnitTypeWeapon.prototype,
234
285
  "range",
235
286
  {
236
287
  get = function(self)
237
- local ____self_16 = self.unitType
238
- return ____self_16.getNumberField(
239
- ____self_16,
288
+ local ____self_21 = self.unitType
289
+ return ____self_21.getNumberField(
290
+ ____self_21,
240
291
  ("ua" .. tostring(self.index)) .. "r"
241
292
  )
242
293
  end,
243
294
  set = function(self, range)
244
- local ____self_17 = self.unitType
245
- ____self_17.setNumberField(
246
- ____self_17,
295
+ local ____self_22 = self.unitType
296
+ ____self_22.setNumberField(
297
+ ____self_22,
247
298
  ("ua" .. tostring(self.index)) .. "r",
248
299
  range
249
300
  )
@@ -256,16 +307,16 @@ __TS__SetDescriptor(
256
307
  "soundType",
257
308
  {
258
309
  get = function(self)
259
- local ____self_18 = self.unitType
260
- return ____self_18.getStringField(
261
- ____self_18,
310
+ local ____self_23 = self.unitType
311
+ return ____self_23.getStringField(
312
+ ____self_23,
262
313
  "ucs" .. tostring(self.index)
263
314
  )
264
315
  end,
265
316
  set = function(self, soundType)
266
- local ____self_19 = self.unitType
267
- ____self_19.setStringField(
268
- ____self_19,
317
+ local ____self_24 = self.unitType
318
+ ____self_24.setStringField(
319
+ ____self_24,
269
320
  "ucs" .. tostring(self.index),
270
321
  soundType
271
322
  )
@@ -278,16 +329,16 @@ __TS__SetDescriptor(
278
329
  "soundTypeSD",
279
330
  {
280
331
  get = function(self)
281
- local ____self_20 = self.unitType
282
- return ____self_20.getStringField(
283
- ____self_20,
332
+ local ____self_25 = self.unitType
333
+ return ____self_25.getStringField(
334
+ ____self_25,
284
335
  ("ucs" .. tostring(self.index)) .. ":sd"
285
336
  )
286
337
  end,
287
338
  set = function(self, soundTypeSD)
288
- local ____self_21 = self.unitType
289
- ____self_21.setStringField(
290
- ____self_21,
339
+ local ____self_26 = self.unitType
340
+ ____self_26.setStringField(
341
+ ____self_26,
291
342
  ("ucs" .. tostring(self.index)) .. ":sd",
292
343
  soundTypeSD
293
344
  )
@@ -300,16 +351,16 @@ __TS__SetDescriptor(
300
351
  "soundTypeHD",
301
352
  {
302
353
  get = function(self)
303
- local ____self_22 = self.unitType
304
- return ____self_22.getStringField(
305
- ____self_22,
354
+ local ____self_27 = self.unitType
355
+ return ____self_27.getStringField(
356
+ ____self_27,
306
357
  ("ucs" .. tostring(self.index)) .. ":hd"
307
358
  )
308
359
  end,
309
360
  set = function(self, soundTypeHD)
310
- local ____self_23 = self.unitType
311
- ____self_23.setStringField(
312
- ____self_23,
361
+ local ____self_28 = self.unitType
362
+ ____self_28.setStringField(
363
+ ____self_28,
313
364
  ("ucs" .. tostring(self.index)) .. ":hd",
314
365
  soundTypeHD
315
366
  )
@@ -932,6 +983,19 @@ __TS__SetDescriptor(
932
983
  },
933
984
  true
934
985
  )
986
+ __TS__SetDescriptor(
987
+ UnitType.prototype,
988
+ "selectionCircleHeight",
989
+ {
990
+ get = function(self)
991
+ return self:getNumberField("uslz")
992
+ end,
993
+ set = function(self, height)
994
+ self:setNumberField("uslz", height)
995
+ end
996
+ },
997
+ true
998
+ )
935
999
  __TS__SetDescriptor(
936
1000
  UnitType.prototype,
937
1001
  "selectionCircleScale",
@@ -1179,6 +1243,19 @@ __TS__SetDescriptor(
1179
1243
  },
1180
1244
  true
1181
1245
  )
1246
+ __TS__SetDescriptor(
1247
+ UnitType.prototype,
1248
+ "armor",
1249
+ {
1250
+ get = function(self)
1251
+ return self:getNumberField("udef")
1252
+ end,
1253
+ set = function(self, armor)
1254
+ self:setNumberField("udef", armor)
1255
+ end
1256
+ },
1257
+ true
1258
+ )
1182
1259
  __TS__SetDescriptor(
1183
1260
  UnitType.prototype,
1184
1261
  "armorSoundType",
@@ -1218,6 +1295,22 @@ __TS__SetDescriptor(
1218
1295
  },
1219
1296
  true
1220
1297
  )
1298
+ __TS__SetDescriptor(
1299
+ UnitType.prototype,
1300
+ "armorType",
1301
+ {
1302
+ get = function(self)
1303
+ return stringToArmorType(self:getStringField("udty"))
1304
+ end,
1305
+ set = function(self, armorType)
1306
+ self:setStringField(
1307
+ "udty",
1308
+ armorTypeToString(armorType)
1309
+ )
1310
+ end
1311
+ },
1312
+ true
1313
+ )
1221
1314
  __TS__SetDescriptor(
1222
1315
  UnitType.prototype,
1223
1316
  "combatClassifications",
@@ -1236,7 +1329,7 @@ __TS__SetDescriptor(
1236
1329
  )
1237
1330
  __TS__SetDescriptor(
1238
1331
  UnitType.prototype,
1239
- "unitClassifications",
1332
+ "classifications",
1240
1333
  {
1241
1334
  get = function(self)
1242
1335
  return stringArrayToUnitClassifications(self:getStringsField("utyp"))
@@ -1472,6 +1565,19 @@ __TS__SetDescriptor(
1472
1565
  },
1473
1566
  true
1474
1567
  )
1568
+ __TS__SetDescriptor(
1569
+ UnitType.prototype,
1570
+ "level",
1571
+ {
1572
+ get = function(self)
1573
+ return self:getNumberField("ulev")
1574
+ end,
1575
+ set = function(self, level)
1576
+ self:setNumberField("ulev", level)
1577
+ end
1578
+ },
1579
+ true
1580
+ )
1475
1581
  __TS__SetDescriptor(
1476
1582
  UnitType.prototype,
1477
1583
  "manaRegenerationRate",
@@ -1618,11 +1724,11 @@ __TS__SetDescriptor(
1618
1724
  implementReadonlyNumberIndexSupplier(
1619
1725
  ____exports.UnitType,
1620
1726
  function(id)
1621
- local ____class_24 = __TS__Class()
1622
- ____class_24.name = ____class_24.name
1623
- __TS__ClassExtends(____class_24, ____exports.UnitType)
1624
- ____class_24.BASE_ID = id
1625
- return ____class_24
1727
+ local ____class_29 = __TS__Class()
1728
+ ____class_29.name = ____class_29.name
1729
+ __TS__ClassExtends(____class_29, ____exports.UnitType)
1730
+ ____class_29.BASE_ID = id
1731
+ return ____class_29
1626
1732
  end
1627
1733
  )
1628
1734
  ____exports.HeroUnitType = __TS__Class()
@@ -1683,11 +1789,11 @@ __TS__SetDescriptor(
1683
1789
  implementReadonlyNumberIndexSupplier(
1684
1790
  ____exports.HeroUnitType,
1685
1791
  function(id)
1686
- local ____class_25 = __TS__Class()
1687
- ____class_25.name = ____class_25.name
1688
- __TS__ClassExtends(____class_25, ____exports.HeroUnitType)
1689
- ____class_25.BASE_ID = id
1690
- return ____class_25
1792
+ local ____class_30 = __TS__Class()
1793
+ ____class_30.name = ____class_30.name
1794
+ __TS__ClassExtends(____class_30, ____exports.HeroUnitType)
1795
+ ____class_30.BASE_ID = id
1796
+ return ____class_30
1691
1797
  end
1692
1798
  )
1693
1799
  return ____exports
@@ -12,7 +12,7 @@ import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
12
12
  export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
13
13
  protected get instanceClass(): typeof Ability;
14
14
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
15
- protected hasNativeFieldValue(instance: Ability): boolean;
15
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
16
16
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
17
17
  }
18
18
  export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
@@ -48,7 +48,7 @@ export declare class AbilityStringField extends AbilityField<string, jabilitystr
48
48
  export declare abstract class AbilityArrayField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectArrayField<AbilityType, Ability, ValueType, NativeFieldType> {
49
49
  protected get instanceClass(): typeof Ability;
50
50
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
51
- protected hasNativeFieldValue(instance: Ability): boolean;
51
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
52
52
  }
53
53
  export declare class AbilityStringArrayField extends AbilityArrayField<string, jabilitystringlevelfield> {
54
54
  protected get defaultValue(): string;
@@ -68,7 +68,7 @@ export declare abstract class AbilityLevelField<ValueType extends number | strin
68
68
  protected get instanceClass(): typeof Ability;
69
69
  protected getLevelCount(entry: AbilityType | Ability): number;
70
70
  protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
71
- protected hasNativeFieldValue(instance: Ability): boolean;
71
+ protected hasNativeFieldValue(abilityTypeId: AbilityTypeId): boolean;
72
72
  static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
73
73
  }
74
74
  export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
@@ -117,7 +117,7 @@ export declare abstract class AbilityEnumLevelField<T extends number> extends Ab
117
117
  protected getNativeFieldById(id: number): jabilityintegerlevelfield;
118
118
  protected getNativeFieldValue(instance: Ability, level: number): T;
119
119
  protected setNativeFieldValue(instance: Ability, level: number, value: T): boolean;
120
- static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
120
+ static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityEnumLevelField<number>>;
121
121
  }
122
122
  export declare class AbilityBuffPolarityLevelField extends AbilityEnumLevelField<BuffPolarity> {
123
123
  protected values: ReadonlyNonEmptyLinkedSet<BuffPolarity>;
@@ -7,6 +7,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
7
7
  local ____exports = {}
8
8
  local ____ability = require("engine.internal.ability")
9
9
  local Ability = ____ability.Ability
10
+ local abilityTypeHasField = ____ability.abilityTypeHasField
10
11
  local ____object_2Dfield = require("engine.object-field")
11
12
  local ObjectArrayField = ____object_2Dfield.ObjectArrayField
12
13
  local ObjectField = ____object_2Dfield.ObjectField
@@ -29,8 +30,8 @@ __TS__ClassExtends(AbilityField, ObjectField)
29
30
  function AbilityField.prototype.getObjectDataEntryId(self, instance)
30
31
  return instance.typeId
31
32
  end
32
- function AbilityField.prototype.hasNativeFieldValue(self, instance)
33
- return instance:hasField(self.nativeField)
33
+ function AbilityField.prototype.hasNativeFieldValue(self, abilityTypeId)
34
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
34
35
  end
35
36
  __TS__SetDescriptor(
36
37
  AbilityField.prototype,
@@ -197,8 +198,8 @@ __TS__ClassExtends(AbilityArrayField, ObjectArrayField)
197
198
  function AbilityArrayField.prototype.getObjectDataEntryId(self, instance)
198
199
  return instance.typeId
199
200
  end
200
- function AbilityArrayField.prototype.hasNativeFieldValue(self, instance)
201
- return instance:hasField(self.nativeField)
201
+ function AbilityArrayField.prototype.hasNativeFieldValue(self, abilityTypeId)
202
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
202
203
  end
203
204
  __TS__SetDescriptor(
204
205
  AbilityArrayField.prototype,
@@ -269,8 +270,8 @@ end
269
270
  function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
270
271
  return instance.typeId
271
272
  end
272
- function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
273
- return instance:hasField(self.nativeField)
273
+ function AbilityLevelField.prototype.hasNativeFieldValue(self, abilityTypeId)
274
+ return abilityTypeHasField(abilityTypeId, self.nativeField)
274
275
  end
275
276
  __TS__SetDescriptor(
276
277
  AbilityLevelField.prototype,
@@ -518,9 +519,9 @@ __TS__SetDescriptor(
518
519
  )
519
520
  ____exports.resolveCurrentAbilityDependentValue = function(ability, value)
520
521
  if __TS__InstanceOf(value, ____exports.AbilityField) then
521
- return value:getValue(ability)
522
+ return value:getValue(ability, true)
522
523
  elseif __TS__InstanceOf(value, ____exports.AbilityLevelField) then
523
- return value:getValue(ability, ability.level)
524
+ return value:getValue(ability, ability.level, true)
524
525
  elseif type(value) == "function" then
525
526
  return value(ability)
526
527
  else
@@ -0,0 +1,22 @@
1
+ /** @noSelfInFile */
2
+ import { ObjectField } from "../object-field";
3
+ import { Item } from "../internal/item";
4
+ import { ItemType, ItemTypeId } from "../object-data/entry/item-type";
5
+ export declare abstract class ItemField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<ItemType, Item, ValueType, NativeFieldType> {
6
+ protected get instanceClass(): typeof Item;
7
+ protected getObjectDataEntryId(instance: Item): ItemTypeId;
8
+ }
9
+ export declare class ItemBooleanField extends ItemField<boolean, jitembooleanfield> {
10
+ protected get defaultValue(): boolean;
11
+ protected getNativeFieldById(id: number): jitembooleanfield;
12
+ protected hasNativeFieldValue(): boolean;
13
+ protected getNativeFieldValue(instance: Item): boolean;
14
+ protected setNativeFieldValue(instance: Item, value: boolean): boolean;
15
+ }
16
+ export declare class ItemIntegerField extends ItemField<number, jitemintegerfield> {
17
+ protected get defaultValue(): number;
18
+ protected getNativeFieldById(id: number): jitemintegerfield;
19
+ protected hasNativeFieldValue(): boolean;
20
+ protected getNativeFieldValue(instance: Item): number;
21
+ protected setNativeFieldValue(instance: Item, value: number): boolean;
22
+ }