warscript 0.0.1-dev.d1328b7 → 0.0.1-dev.d1499df

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 (205) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +14 -6
  6. package/core/types/effect.lua +131 -35
  7. package/core/types/frame.d.ts +3 -0
  8. package/core/types/frame.lua +83 -21
  9. package/core/types/player.d.ts +15 -0
  10. package/core/types/player.lua +56 -14
  11. package/core/types/playerCamera.d.ts +2 -0
  12. package/core/types/playerCamera.lua +123 -5
  13. package/core/types/sound.d.ts +17 -24
  14. package/core/types/sound.lua +99 -24
  15. package/core/types/tileCell.d.ts +11 -1
  16. package/core/types/tileCell.lua +97 -0
  17. package/core/types/timer.d.ts +9 -8
  18. package/core/types/timer.lua +45 -23
  19. package/core/util.d.ts +1 -1
  20. package/core/util.lua +12 -1
  21. package/decl/native.d.ts +846 -790
  22. package/engine/behavior.d.ts +5 -0
  23. package/engine/behavior.lua +106 -27
  24. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  25. package/engine/behaviour/ability/always-enabled.lua +31 -0
  26. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  27. package/engine/behaviour/ability/apply-buff.lua +32 -0
  28. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  29. package/engine/behaviour/ability/damage.d.ts +9 -3
  30. package/engine/behaviour/ability/damage.lua +26 -38
  31. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  32. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  33. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  34. package/engine/behaviour/ability/instant-impact.lua +4 -19
  35. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  36. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  37. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  38. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  39. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  40. package/engine/behaviour/ability/restore-mana.lua +6 -6
  41. package/engine/behaviour/ability.d.ts +20 -4
  42. package/engine/behaviour/ability.lua +111 -47
  43. package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
  44. package/engine/behaviour/unit/stun-immunity.lua +52 -27
  45. package/engine/behaviour/unit.d.ts +34 -0
  46. package/engine/behaviour/unit.lua +190 -4
  47. package/engine/buff.d.ts +72 -45
  48. package/engine/buff.lua +357 -241
  49. package/engine/internal/ability.d.ts +20 -3
  50. package/engine/internal/ability.lua +126 -13
  51. package/engine/internal/item/ability.lua +162 -4
  52. package/engine/internal/item+owner.lua +12 -6
  53. package/engine/internal/item.d.ts +20 -19
  54. package/engine/internal/item.lua +191 -74
  55. package/engine/internal/mechanics/ability-duration.lua +1 -1
  56. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  57. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  58. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  59. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  60. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  61. package/engine/internal/misc/frame-coordinates.lua +21 -0
  62. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  63. package/engine/internal/misc/get-terrain-z.lua +11 -0
  64. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  65. package/engine/internal/misc/player-local-handle.lua +5 -0
  66. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  67. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  68. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  69. package/engine/internal/object-data/evasion-probability.lua +16 -0
  70. package/engine/internal/unit/ability.d.ts +45 -1
  71. package/engine/internal/unit/ability.lua +128 -17
  72. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  73. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  74. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  75. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  76. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  77. package/engine/internal/unit/allowed-targets.lua +9 -1
  78. package/engine/internal/unit/bonus.d.ts +2 -0
  79. package/engine/internal/unit/bonus.lua +17 -0
  80. package/engine/internal/unit/fly-height.d.ts +7 -0
  81. package/engine/internal/unit/fly-height.lua +20 -0
  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 +1 -0
  85. package/engine/internal/unit/item.lua +8 -4
  86. package/engine/internal/unit/main-selected.d.ts +6 -0
  87. package/engine/internal/unit/main-selected.lua +18 -22
  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 +10 -1
  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-missile-launch.lua +45 -14
  95. package/engine/internal/unit.d.ts +50 -15
  96. package/engine/internal/unit.lua +413 -170
  97. package/engine/internal/utility.lua +12 -0
  98. package/engine/lightning.d.ts +12 -5
  99. package/engine/lightning.lua +48 -14
  100. package/engine/local-client.d.ts +2 -0
  101. package/engine/local-client.lua +30 -0
  102. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  103. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  104. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  105. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  106. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  107. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  108. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  109. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  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.lua +12 -1
  121. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  122. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  123. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  124. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  125. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  126. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  127. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  128. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  129. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  130. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  131. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  132. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  133. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  134. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  135. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  136. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  137. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  138. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  139. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  140. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  141. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  142. package/engine/object-data/entry/ability-type/web.lua +52 -0
  143. package/engine/object-data/entry/ability-type.d.ts +19 -17
  144. package/engine/object-data/entry/ability-type.lua +93 -36
  145. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  146. package/engine/object-data/entry/buff-type.d.ts +6 -12
  147. package/engine/object-data/entry/buff-type.lua +13 -29
  148. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  149. package/engine/object-data/entry/item-type.d.ts +3 -1
  150. package/engine/object-data/entry/item-type.lua +15 -2
  151. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  152. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  153. package/engine/object-data/entry/sound-preset.lua +140 -0
  154. package/engine/object-data/entry/unit-type.d.ts +21 -5
  155. package/engine/object-data/entry/unit-type.lua +214 -93
  156. package/engine/object-data/entry/upgrade.d.ts +1 -1
  157. package/engine/object-data/entry/upgrade.lua +4 -4
  158. package/engine/object-data/entry.d.ts +16 -14
  159. package/engine/object-data/entry.lua +60 -32
  160. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  161. package/engine/object-field/ability.d.ts +12 -6
  162. package/engine/object-field/ability.lua +8 -4
  163. package/engine/object-field/unit.d.ts +61 -3
  164. package/engine/object-field/unit.lua +220 -7
  165. package/engine/object-field.d.ts +23 -6
  166. package/engine/object-field.lua +303 -114
  167. package/engine/random.d.ts +9 -0
  168. package/engine/random.lua +13 -0
  169. package/engine/standard/entries/buff-type.d.ts +3 -0
  170. package/engine/standard/entries/buff-type.lua +3 -0
  171. package/engine/standard/entries/sound-preset.d.ts +10 -0
  172. package/engine/standard/entries/sound-preset.lua +10 -0
  173. package/engine/standard/fields/ability.d.ts +2 -0
  174. package/engine/standard/fields/ability.lua +2 -0
  175. package/engine/standard/fields/unit.d.ts +5 -0
  176. package/engine/standard/fields/unit.lua +9 -0
  177. package/engine/synchronization.d.ts +11 -0
  178. package/engine/synchronization.lua +77 -0
  179. package/engine/text-tag.d.ts +36 -2
  180. package/engine/text-tag.lua +250 -10
  181. package/engine/unit.d.ts +3 -0
  182. package/engine/unit.lua +3 -0
  183. package/net/socket.lua +1 -1
  184. package/objutil/buff.lua +2 -3
  185. package/objutil/unit.lua +8 -0
  186. package/package.json +2 -2
  187. package/patch-lualib.lua +1 -1
  188. package/utility/arrays.d.ts +10 -1
  189. package/utility/arrays.lua +45 -3
  190. package/utility/callback-array.d.ts +17 -0
  191. package/utility/callback-array.lua +61 -0
  192. package/utility/functions.d.ts +8 -0
  193. package/utility/functions.lua +13 -0
  194. package/utility/lazy.d.ts +2 -0
  195. package/utility/lazy.lua +14 -0
  196. package/utility/linked-set.d.ts +2 -0
  197. package/utility/linked-set.lua +22 -1
  198. package/utility/lua-maps.d.ts +15 -2
  199. package/utility/lua-maps.lua +53 -2
  200. package/utility/lua-sets.d.ts +2 -0
  201. package/utility/lua-sets.lua +7 -0
  202. package/utility/reflection.lua +11 -7
  203. package/utility/types.d.ts +3 -0
  204. package/core/types/order.d.ts +0 -25
  205. package/core/types/order.lua +0 -55
@@ -2,11 +2,26 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
6
  local ____exports = {}
6
7
  local ____unit = require("engine.internal.unit")
7
8
  local Unit = ____unit.Unit
8
9
  local ____object_2Dfield = require("engine.object-field")
9
10
  local ObjectField = ____object_2Dfield.ObjectField
11
+ local ObjectLevelField = ____object_2Dfield.ObjectLevelField
12
+ local ____linked_2Dset = require("utility.linked-set")
13
+ local nonEmptyLinkedSetOf = ____linked_2Dset.nonEmptyLinkedSetOf
14
+ local convertUnitBooleanField = ConvertUnitBooleanField
15
+ local convertUnitIntegerField = ConvertUnitIntegerField
16
+ local convertUnitRealField = ConvertUnitRealField
17
+ local convertUnitStringField = ConvertUnitStringField
18
+ local convertUnitWeaponIntegerField = ConvertUnitWeaponIntegerField
19
+ local getUnitWeaponIntegerField = BlzGetUnitWeaponIntegerField
20
+ local setUnitWeaponIntegerField = BlzSetUnitWeaponIntegerField
21
+ local getUnitFlyHeight = GetUnitFlyHeight
22
+ local setUnitFlyHeight = SetUnitFlyHeight
23
+ local getUnitPropulsionWindow = GetUnitPropWindow
24
+ local setUnitPropulsionWindow = SetUnitPropWindow
10
25
  ____exports.UnitField = __TS__Class()
11
26
  local UnitField = ____exports.UnitField
12
27
  UnitField.name = "UnitField"
@@ -14,6 +29,9 @@ __TS__ClassExtends(UnitField, ObjectField)
14
29
  function UnitField.prototype.getObjectDataEntryId(self, instance)
15
30
  return instance.typeId
16
31
  end
32
+ function UnitField.prototype.hasNativeFieldValue(self)
33
+ return true
34
+ end
17
35
  __TS__SetDescriptor(
18
36
  UnitField.prototype,
19
37
  "instanceClass",
@@ -22,22 +40,79 @@ __TS__SetDescriptor(
22
40
  end},
23
41
  true
24
42
  )
43
+ ____exports.UnitBooleanField = __TS__Class()
44
+ local UnitBooleanField = ____exports.UnitBooleanField
45
+ UnitBooleanField.name = "UnitBooleanField"
46
+ __TS__ClassExtends(UnitBooleanField, ____exports.UnitField)
47
+ function UnitBooleanField.prototype.getNativeFieldById(self, id)
48
+ return convertUnitBooleanField(id)
49
+ end
50
+ function UnitBooleanField.prototype.getNativeFieldValue(self, instance)
51
+ return instance:getField(self.nativeField)
52
+ end
53
+ function UnitBooleanField.prototype.setNativeFieldValue(self, instance, value)
54
+ return instance:setField(self.nativeField, value)
55
+ end
56
+ __TS__SetDescriptor(
57
+ UnitBooleanField.prototype,
58
+ "defaultValue",
59
+ {get = function(self)
60
+ return false
61
+ end},
62
+ true
63
+ )
64
+ ____exports.UnitFloatField = __TS__Class()
65
+ local UnitFloatField = ____exports.UnitFloatField
66
+ UnitFloatField.name = "UnitFloatField"
67
+ __TS__ClassExtends(UnitFloatField, ____exports.UnitField)
68
+ function UnitFloatField.prototype.getNativeFieldById(self, id)
69
+ return convertUnitRealField(id)
70
+ end
71
+ function UnitFloatField.prototype.getNativeFieldValue(self, instance)
72
+ return instance:getField(self.nativeField)
73
+ end
74
+ function UnitFloatField.prototype.setNativeFieldValue(self, instance, value)
75
+ return instance:setField(self.nativeField, value)
76
+ end
77
+ __TS__SetDescriptor(
78
+ UnitFloatField.prototype,
79
+ "defaultValue",
80
+ {get = function(self)
81
+ return 0
82
+ end},
83
+ true
84
+ )
85
+ ____exports.UnitIntegerField = __TS__Class()
86
+ local UnitIntegerField = ____exports.UnitIntegerField
87
+ UnitIntegerField.name = "UnitIntegerField"
88
+ __TS__ClassExtends(UnitIntegerField, ____exports.UnitField)
89
+ function UnitIntegerField.prototype.getNativeFieldById(self, id)
90
+ return convertUnitIntegerField(id)
91
+ end
92
+ function UnitIntegerField.prototype.getNativeFieldValue(self, instance)
93
+ return instance:getField(self.nativeField)
94
+ end
95
+ function UnitIntegerField.prototype.setNativeFieldValue(self, instance, value)
96
+ return instance:setField(self.nativeField, value)
97
+ end
98
+ __TS__SetDescriptor(
99
+ UnitIntegerField.prototype,
100
+ "defaultValue",
101
+ {get = function(self)
102
+ return 0
103
+ end},
104
+ true
105
+ )
25
106
  ____exports.UnitStringField = __TS__Class()
26
107
  local UnitStringField = ____exports.UnitStringField
27
108
  UnitStringField.name = "UnitStringField"
28
109
  __TS__ClassExtends(UnitStringField, ____exports.UnitField)
29
110
  function UnitStringField.prototype.getNativeFieldById(self, id)
30
- return ConvertUnitStringField(id)
31
- end
32
- function UnitStringField.prototype.hasNativeFieldValue(self)
33
- return true
111
+ return convertUnitStringField(id)
34
112
  end
35
113
  function UnitStringField.prototype.getNativeFieldValue(self, instance)
36
114
  return instance:getField(self.nativeField)
37
115
  end
38
- function UnitStringField.prototype.getObjectDataEntryId(self, instance)
39
- return instance.typeId
40
- end
41
116
  function UnitStringField.prototype.setNativeFieldValue(self, instance, value)
42
117
  return instance:setField(self.nativeField, value)
43
118
  end
@@ -49,4 +124,142 @@ __TS__SetDescriptor(
49
124
  end},
50
125
  true
51
126
  )
127
+ ____exports.UnitWeaponField = __TS__Class()
128
+ local UnitWeaponField = ____exports.UnitWeaponField
129
+ UnitWeaponField.name = "UnitWeaponField"
130
+ __TS__ClassExtends(UnitWeaponField, ObjectLevelField)
131
+ function UnitWeaponField.prototype.getLevelCount(self)
132
+ return 2
133
+ end
134
+ function UnitWeaponField.prototype.getObjectDataEntryId(self, instance)
135
+ return instance.typeId
136
+ end
137
+ function UnitWeaponField.prototype.hasNativeFieldValue(self)
138
+ return true
139
+ end
140
+ __TS__SetDescriptor(
141
+ UnitWeaponField.prototype,
142
+ "instanceClass",
143
+ {get = function(self)
144
+ return Unit
145
+ end},
146
+ true
147
+ )
148
+ __TS__ObjectDefineProperty(
149
+ UnitWeaponField,
150
+ "valueChangeEvent",
151
+ {get = function(self)
152
+ return self:getOrCreateValueChangeEvent()
153
+ end}
154
+ )
155
+ ____exports.UnitNumberWeaponField = __TS__Class()
156
+ local UnitNumberWeaponField = ____exports.UnitNumberWeaponField
157
+ UnitNumberWeaponField.name = "UnitNumberWeaponField"
158
+ __TS__ClassExtends(UnitNumberWeaponField, ____exports.UnitWeaponField)
159
+ __TS__SetDescriptor(
160
+ UnitNumberWeaponField.prototype,
161
+ "defaultValue",
162
+ {get = function(self)
163
+ return 0
164
+ end},
165
+ true
166
+ )
167
+ __TS__ObjectDefineProperty(
168
+ UnitNumberWeaponField,
169
+ "valueChangeEvent",
170
+ {get = function(self)
171
+ return self:getOrCreateValueChangeEvent()
172
+ end}
173
+ )
174
+ ____exports.UnitEnumWeaponField = __TS__Class()
175
+ local UnitEnumWeaponField = ____exports.UnitEnumWeaponField
176
+ UnitEnumWeaponField.name = "UnitEnumWeaponField"
177
+ __TS__ClassExtends(UnitEnumWeaponField, ____exports.UnitWeaponField)
178
+ function UnitEnumWeaponField.prototype.getNativeFieldById(self, id)
179
+ return convertUnitWeaponIntegerField(id)
180
+ end
181
+ function UnitEnumWeaponField.prototype.getNativeFieldValue(self, instance, index)
182
+ local value = getUnitWeaponIntegerField(instance.handle, self.nativeField, index)
183
+ if self.values:contains(value) then
184
+ return value
185
+ end
186
+ return self.values:first()
187
+ end
188
+ function UnitEnumWeaponField.prototype.setNativeFieldValue(self, instance, index, value)
189
+ return setUnitWeaponIntegerField(instance.handle, self.nativeField, index, value)
190
+ end
191
+ __TS__SetDescriptor(
192
+ UnitEnumWeaponField.prototype,
193
+ "defaultValue",
194
+ {get = function(self)
195
+ return self.values:first()
196
+ end},
197
+ true
198
+ )
199
+ __TS__ObjectDefineProperty(
200
+ UnitEnumWeaponField,
201
+ "valueChangeEvent",
202
+ {get = function(self)
203
+ return self:getOrCreateValueChangeEvent()
204
+ end}
205
+ )
206
+ ____exports.UnitAttackTypeWeaponField = __TS__Class()
207
+ local UnitAttackTypeWeaponField = ____exports.UnitAttackTypeWeaponField
208
+ UnitAttackTypeWeaponField.name = "UnitAttackTypeWeaponField"
209
+ __TS__ClassExtends(UnitAttackTypeWeaponField, ____exports.UnitEnumWeaponField)
210
+ function UnitAttackTypeWeaponField.prototype.____constructor(self, ...)
211
+ UnitAttackTypeWeaponField.____super.prototype.____constructor(self, ...)
212
+ self.values = nonEmptyLinkedSetOf(
213
+ 1,
214
+ 2,
215
+ 3,
216
+ 0,
217
+ 5,
218
+ 4,
219
+ 6
220
+ )
221
+ end
222
+ ____exports.UnitClassificationsField = __TS__Class()
223
+ local UnitClassificationsField = ____exports.UnitClassificationsField
224
+ UnitClassificationsField.name = "UnitClassificationsField"
225
+ __TS__ClassExtends(UnitClassificationsField, ____exports.UnitField)
226
+ function UnitClassificationsField.prototype.getNativeFieldById(self, id)
227
+ return convertUnitIntegerField(id)
228
+ end
229
+ function UnitClassificationsField.prototype.getNativeFieldValue(self, instance)
230
+ return instance:getField(self.nativeField)
231
+ end
232
+ function UnitClassificationsField.prototype.setNativeFieldValue(self, instance, value)
233
+ return instance:setField(self.nativeField, value)
234
+ end
235
+ __TS__SetDescriptor(
236
+ UnitClassificationsField.prototype,
237
+ "defaultValue",
238
+ {get = function(self)
239
+ return 0
240
+ end},
241
+ true
242
+ )
243
+ ____exports.UnitFlyHeightField = __TS__Class()
244
+ local UnitFlyHeightField = ____exports.UnitFlyHeightField
245
+ UnitFlyHeightField.name = "UnitFlyHeightField"
246
+ __TS__ClassExtends(UnitFlyHeightField, ____exports.UnitFloatField)
247
+ function UnitFlyHeightField.prototype.getNativeFieldValue(self, instance)
248
+ return getUnitFlyHeight(instance.handle)
249
+ end
250
+ function UnitFlyHeightField.prototype.setNativeFieldValue(self, instance, value)
251
+ setUnitFlyHeight(instance.handle, value, 100000)
252
+ return true
253
+ end
254
+ ____exports.UnitPropulsionWindowField = __TS__Class()
255
+ local UnitPropulsionWindowField = ____exports.UnitPropulsionWindowField
256
+ UnitPropulsionWindowField.name = "UnitPropulsionWindowField"
257
+ __TS__ClassExtends(UnitPropulsionWindowField, ____exports.UnitFloatField)
258
+ function UnitPropulsionWindowField.prototype.getNativeFieldValue(self, instance)
259
+ return getUnitPropulsionWindow(instance.handle)
260
+ end
261
+ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance, value)
262
+ setUnitPropulsionWindow(instance.handle, value)
263
+ return true
264
+ end
52
265
  return ____exports
@@ -5,9 +5,10 @@ import { ObjectDataEntry, ObjectDataEntryIdType, ObjectDataEntryLevelFieldValueS
5
5
  export type ObjectFieldId = number & {
6
6
  readonly __objectDataEntryFieldId: unique symbol;
7
7
  };
8
- export type ObjectFieldConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (new (id: number) => T);
8
+ export type ObjectFieldConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (new (id: number, isGlobal?: boolean) => T);
9
9
  export type ObjectFieldAbstractConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (abstract new (id: number) => T);
10
10
  declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEntry, InstanceType extends AnyNotNil, ValueType, NativeFieldType> {
11
+ readonly isGlobal: boolean;
11
12
  protected abstract readonly instanceClass: AbstractConstructor<InstanceType> | Function;
12
13
  supports(instance: AnyNotNil): instance is InstanceType & {
13
14
  readonly __oneSidedTypeGuard: unique symbol;
@@ -16,8 +17,10 @@ declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEnt
16
17
  readonly id: ObjectFieldId;
17
18
  protected abstract getNativeFieldById(id: number): NativeFieldType;
18
19
  protected abstract getObjectDataEntryId(instance: InstanceType): ObjectDataEntryIdType<ObjectDataEntryType>;
19
- constructor(id: number);
20
- static create<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldConstructor<T>, id?: number): T & symbol;
20
+ protected abstract hasNativeFieldValue(objectDataEntryId: ObjectDataEntryIdType<ObjectDataEntryType>): boolean;
21
+ hasValue(objectDataEntryId: ObjectDataEntryIdType<ObjectDataEntryType>): boolean;
22
+ constructor(id: number, isGlobal?: boolean);
23
+ static create<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldConstructor<T>, id?: number, isGlobal?: boolean): T & symbol;
21
24
  static of<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldAbstractConstructor<T>, id: number): T | undefined;
22
25
  }
23
26
  export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any> | ReadonlyObjectFieldType<ObjectField<any, any, any, any>>> = T extends ObjectField<any, infer InstanceType, infer ValueType, any> ? DispatchingEvent<[
@@ -33,15 +36,23 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
33
36
  ]> : never;
34
37
  export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
35
38
  type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
39
+ export type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
40
+ export type ObjectLevelFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, level: number, currentValue: ValueType, originalValue: ValueType) => ValueType;
36
41
  export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
37
42
  protected abstract readonly defaultValue: ValueType;
38
- protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
39
43
  protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
40
44
  protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
41
- getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
45
+ private originalValueByInstance?;
46
+ private modifiersByInstance?;
47
+ getValue(entry: ObjectDataEntryType | InstanceType, includeModifiers?: boolean): ValueType;
42
48
  setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
49
+ applyModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): void;
50
+ removeModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): boolean;
43
51
  removeValue(entry: ObjectDataEntryType): boolean;
44
52
  trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
53
+ private getActualValue;
54
+ private setActualValue;
55
+ private calculateActualValue;
45
56
  private invokeValueChangeEvent;
46
57
  private invokeValueChangeEventRecursive;
47
58
  protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
@@ -70,14 +81,20 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
70
81
  setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType[]): boolean;
71
82
  }
72
83
  export declare abstract class ObjectLevelField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType[], NativeFieldType> {
84
+ private originalValueByLevelByInstance?;
85
+ private modifiersByInstance?;
73
86
  protected abstract readonly defaultValue: ValueType;
74
- protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
75
87
  protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
76
88
  protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
77
89
  protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
78
90
  getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
79
91
  setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
92
+ applyModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): void;
93
+ removeModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): boolean;
80
94
  trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
95
+ private getActualValue;
96
+ private setActualValue;
97
+ private calculateActualValue;
81
98
  private invokeValueChangeEvent;
82
99
  private invokeValueChangeEventRecursive;
83
100
  protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;