warscript 0.0.1-dev.c37d12c → 0.0.1-dev.c74bdbb

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 (216) hide show
  1. package/attributes.d.ts +12 -0
  2. package/attributes.lua +16 -0
  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/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/missile.d.ts +2 -2
  16. package/core/types/missile.lua +8 -2
  17. package/core/types/sound.d.ts +17 -24
  18. package/core/types/sound.lua +99 -24
  19. package/core/types/timer.d.ts +6 -7
  20. package/core/types/timer.lua +18 -21
  21. package/core/types/unit.lua +8 -0
  22. package/core/util.d.ts +1 -1
  23. package/core/util.lua +18 -1
  24. package/decl/index.d.ts +1 -0
  25. package/engine/ability.d.ts +1 -1
  26. package/engine/behavior.d.ts +10 -10
  27. package/engine/behavior.lua +6 -6
  28. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  29. package/engine/behaviour/ability/always-enabled.lua +31 -0
  30. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  31. package/engine/behaviour/ability/apply-buff.lua +32 -0
  32. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  33. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  34. package/engine/behaviour/ability/damage.d.ts +36 -11
  35. package/engine/behaviour/ability/damage.lua +90 -32
  36. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  37. package/engine/behaviour/ability/emulate-impact.lua +35 -0
  38. package/engine/behaviour/ability/heal.d.ts +33 -6
  39. package/engine/behaviour/ability/heal.lua +89 -10
  40. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  41. package/engine/behaviour/ability/instant-impact.lua +4 -15
  42. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  43. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  44. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  45. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  46. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  47. package/engine/behaviour/ability/restore-mana.lua +29 -0
  48. package/engine/behaviour/ability.d.ts +27 -4
  49. package/engine/behaviour/ability.lua +152 -17
  50. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  51. package/engine/behaviour/unit.d.ts +10 -2
  52. package/engine/behaviour/unit.lua +27 -0
  53. package/engine/buff.d.ts +103 -41
  54. package/engine/buff.lua +465 -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 +17 -14
  58. package/engine/internal/ability.lua +80 -76
  59. package/engine/internal/item/ability.lua +106 -0
  60. package/engine/internal/item+owner.lua +2 -2
  61. package/engine/internal/item.d.ts +2 -2
  62. package/engine/internal/item.lua +56 -25
  63. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  64. package/engine/internal/mechanics/ability-duration.lua +3 -1
  65. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  66. package/engine/internal/mechanics/cast-ability.lua +86 -0
  67. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  68. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  69. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  70. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  71. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  72. package/engine/internal/object-data/evasion-probability.lua +16 -0
  73. package/engine/internal/unit/ability.d.ts +10 -1
  74. package/engine/internal/unit/ability.lua +36 -14
  75. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  76. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  77. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  78. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  79. package/engine/internal/unit/bonus.d.ts +11 -8
  80. package/engine/internal/unit/bonus.lua +23 -1
  81. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  82. package/engine/internal/unit/detach-missiles.lua +30 -0
  83. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  84. package/engine/internal/unit/ignore-events-items.lua +5 -0
  85. package/engine/internal/unit/item.d.ts +24 -0
  86. package/engine/internal/unit/item.lua +78 -0
  87. package/engine/internal/unit/main-selected.d.ts +13 -0
  88. package/engine/internal/unit/main-selected.lua +51 -0
  89. package/engine/internal/unit+ability.lua +2 -2
  90. package/engine/internal/unit+transport.lua +4 -10
  91. package/engine/internal/unit-missile-launch.lua +25 -6
  92. package/engine/internal/unit.d.ts +64 -16
  93. package/engine/internal/unit.lua +381 -134
  94. package/engine/internal/utility.lua +12 -0
  95. package/engine/lightning.d.ts +12 -5
  96. package/engine/lightning.lua +48 -14
  97. package/engine/local-client.d.ts +7 -2
  98. package/engine/local-client.lua +82 -0
  99. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  100. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  101. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  102. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  103. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  104. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  105. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  106. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  107. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  108. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  109. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  110. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  111. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  112. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  113. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  114. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  115. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  116. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  117. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  118. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  119. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  120. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  121. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  122. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  123. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  124. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  125. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  126. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  127. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  128. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  129. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  130. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  131. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  132. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  133. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  134. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  135. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  136. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  137. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  138. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  139. package/engine/object-data/entry/ability-type/web.lua +52 -0
  140. package/engine/object-data/entry/ability-type.d.ts +20 -18
  141. package/engine/object-data/entry/ability-type.lua +90 -33
  142. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  143. package/engine/object-data/entry/buff-type/applicable.lua +39 -102
  144. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  145. package/engine/object-data/entry/buff-type.d.ts +1 -2
  146. package/engine/object-data/entry/buff-type.lua +2 -2
  147. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  148. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  149. package/engine/object-data/entry/item-type.d.ts +15 -2
  150. package/engine/object-data/entry/item-type.lua +93 -2
  151. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  152. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  153. package/engine/object-data/entry/sound-preset.lua +140 -0
  154. package/engine/object-data/entry/unit-type.d.ts +50 -3
  155. package/engine/object-data/entry/unit-type.lua +439 -58
  156. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  157. package/engine/object-data/entry/upgrade.d.ts +1 -2
  158. package/engine/object-data/entry/upgrade.lua +4 -4
  159. package/engine/object-data/entry.d.ts +18 -17
  160. package/engine/object-data/entry.lua +60 -32
  161. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  162. package/engine/object-field/ability.d.ts +33 -8
  163. package/engine/object-field/ability.lua +60 -1
  164. package/engine/object-field/unit.d.ts +1 -0
  165. package/engine/object-field/unit.lua +3 -0
  166. package/engine/object-field.d.ts +6 -6
  167. package/engine/object-field.lua +41 -18
  168. package/engine/random.d.ts +1 -0
  169. package/engine/random.lua +9 -0
  170. package/engine/standard/entries/sound-preset.d.ts +10 -0
  171. package/engine/standard/entries/sound-preset.lua +10 -0
  172. package/engine/standard/entries/unit-type.d.ts +42 -1
  173. package/engine/standard/entries/unit-type.lua +42 -1
  174. package/engine/standard/fields/ability.d.ts +3 -1
  175. package/engine/standard/fields/ability.lua +3 -1
  176. package/engine/unit.d.ts +4 -0
  177. package/engine/unit.lua +13 -2
  178. package/event.d.ts +2 -3
  179. package/event.lua +9 -5
  180. package/global/vec2.lua +1 -0
  181. package/index.d.ts +1 -0
  182. package/index.lua +1 -0
  183. package/lualib_bundle.lua +146 -42
  184. package/math/vec2.d.ts +2 -9
  185. package/math.d.ts +0 -2
  186. package/net/socket.d.ts +7 -1
  187. package/net/socket.lua +45 -4
  188. package/network.d.ts +1 -0
  189. package/network.lua +3 -2
  190. package/objutil/ability.d.ts +0 -1
  191. package/objutil/buff.d.ts +0 -1
  192. package/objutil/buff.lua +1 -1
  193. package/objutil/object.d.ts +0 -1
  194. package/objutil/unit.d.ts +0 -1
  195. package/objutil/unit.lua +8 -0
  196. package/package.json +13 -14
  197. package/patch-lua.d.ts +0 -0
  198. package/patch-lua.lua +10 -0
  199. package/property.d.ts +55 -0
  200. package/property.lua +374 -0
  201. package/string.d.ts +30 -0
  202. package/string.lua +14 -0
  203. package/util/stream.d.ts +0 -1
  204. package/utility/arrays.d.ts +11 -5
  205. package/utility/arrays.lua +34 -3
  206. package/utility/bit-set.d.ts +0 -2
  207. package/utility/lazy.d.ts +2 -0
  208. package/utility/lazy.lua +14 -0
  209. package/utility/linked-set.d.ts +12 -3
  210. package/utility/linked-set.lua +21 -2
  211. package/utility/lua-maps.d.ts +1 -2
  212. package/utility/lua-sets.d.ts +1 -2
  213. package/utility/reflection.lua +11 -7
  214. package/utility/types.d.ts +3 -2
  215. package/core/mapbounds.d.ts +0 -8
  216. package/core/mapbounds.lua +0 -12
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { DispatchingEvent } from "../event";
4
3
  import { AbstractConstructor } from "../utility/types";
@@ -9,7 +8,6 @@ export type ObjectFieldId = number & {
9
8
  export type ObjectFieldConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (new (id: number) => T);
10
9
  export type ObjectFieldAbstractConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (abstract new (id: number) => T);
11
10
  declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEntry, InstanceType extends AnyNotNil, ValueType, NativeFieldType> {
12
- protected readonly valueByInstance: LuaMap<InstanceType, ValueType>;
13
11
  protected abstract readonly instanceClass: AbstractConstructor<InstanceType> | Function;
14
12
  supports(instance: AnyNotNil): instance is InstanceType & {
15
13
  readonly __oneSidedTypeGuard: unique symbol;
@@ -18,6 +16,8 @@ declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEnt
18
16
  readonly id: ObjectFieldId;
19
17
  protected abstract getNativeFieldById(id: number): NativeFieldType;
20
18
  protected abstract getObjectDataEntryId(instance: InstanceType): ObjectDataEntryIdType<ObjectDataEntryType>;
19
+ protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
20
+ hasValue(instance: InstanceType): boolean;
21
21
  constructor(id: number);
22
22
  static create<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldConstructor<T>, id?: number): T & symbol;
23
23
  static of<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldAbstractConstructor<T>, id: number): T | undefined;
@@ -33,22 +33,22 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
33
33
  previousValue: ValueType,
34
34
  newValue: ValueType
35
35
  ]> : never;
36
- export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue">;
36
+ export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
37
37
  type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
38
38
  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> {
39
39
  protected abstract readonly defaultValue: ValueType;
40
- accepts(value: unknown): value is ValueType;
41
40
  protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
42
41
  protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
43
42
  getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
44
43
  setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
45
44
  removeValue(entry: ObjectDataEntryType): boolean;
45
+ trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
46
46
  private invokeValueChangeEvent;
47
47
  private invokeValueChangeEventRecursive;
48
48
  protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
49
49
  static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<ObjectField>>;
50
50
  }
51
- export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue">;
51
+ export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue" | "trySetValue">;
52
52
  export type ObjectLevelFieldValueChangeEvent<T extends ObjectLevelField<any, any, any, any> | ReadonlyObjectLevelFieldType<ObjectLevelField<any, any, any, any>>> = T extends ObjectLevelField<any, infer InstanceType, infer ValueType, any, any> ? DispatchingEvent<[
53
53
  instance: InstanceType,
54
54
  field: T,
@@ -72,12 +72,12 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
72
72
  }
73
73
  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> {
74
74
  protected abstract readonly defaultValue: ValueType;
75
- accepts(value: unknown): value is ValueType;
76
75
  protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
77
76
  protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
78
77
  protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
79
78
  getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
80
79
  setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
80
+ trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
81
81
  private invokeValueChangeEvent;
82
82
  private invokeValueChangeEventRecursive;
83
83
  protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
@@ -46,6 +46,10 @@ end
46
46
  function ObjectFieldBase.prototype.supports(self, instance)
47
47
  return __TS__InstanceOf(instance, self.instanceClass)
48
48
  end
49
+ function ObjectFieldBase.prototype.hasValue(self, instance)
50
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
51
+ return defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)] ~= nil or self:hasNativeFieldValue(instance)
52
+ end
49
53
  function ObjectFieldBase.create(self, id)
50
54
  return __TS__New(
51
55
  self,
@@ -71,9 +75,6 @@ ____exports.ObjectField = __TS__Class()
71
75
  local ObjectField = ____exports.ObjectField
72
76
  ObjectField.name = "ObjectField"
73
77
  __TS__ClassExtends(ObjectField, ObjectFieldBase)
74
- function ObjectField.prototype.accepts(self, value)
75
- return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
76
- end
77
78
  function ObjectField.prototype.getValue(self, entry)
78
79
  if __TS__InstanceOf(entry, ObjectDataEntry) then
79
80
  local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
@@ -135,13 +136,15 @@ function ObjectField.prototype.setValue(self, entry, value)
135
136
  return true
136
137
  end
137
138
  end
139
+ if not self:hasNativeFieldValue(entry) then
140
+ return false
141
+ end
138
142
  local previousValue = self:getNativeFieldValue(entry)
139
143
  if value ~= previousValue then
140
- if self:setNativeFieldValue(entry, value) then
141
- self:invokeValueChangeEvent(entry, self, previousValue, value)
142
- else
144
+ if not self:setNativeFieldValue(entry, value) then
143
145
  return false
144
146
  end
147
+ self:invokeValueChangeEvent(entry, self, previousValue, value)
145
148
  end
146
149
  return true
147
150
  end
@@ -159,6 +162,12 @@ function ObjectField.prototype.removeValue(self, entry)
159
162
  end
160
163
  return false
161
164
  end
165
+ function ObjectField.prototype.trySetValue(self, entry, value)
166
+ if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
167
+ return false
168
+ end
169
+ return self:setValue(entry, value)
170
+ end
162
171
  function ObjectField.prototype.invokeValueChangeEvent(self, ...)
163
172
  self:invokeValueChangeEventRecursive(
164
173
  getClass(self),
@@ -273,9 +282,6 @@ ____exports.ObjectLevelField = __TS__Class()
273
282
  local ObjectLevelField = ____exports.ObjectLevelField
274
283
  ObjectLevelField.name = "ObjectLevelField"
275
284
  __TS__ClassExtends(ObjectLevelField, ObjectFieldBase)
276
- function ObjectLevelField.prototype.accepts(self, value)
277
- return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
278
- end
279
285
  function ObjectLevelField.prototype.getValue(self, entry, level)
280
286
  if level == nil then
281
287
  local result = {}
@@ -390,22 +396,39 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
390
396
  return true
391
397
  end
392
398
  end
399
+ if not self:hasNativeFieldValue(entry) then
400
+ return false
401
+ end
393
402
  local previousValue = self:getNativeFieldValue(entry, level)
394
403
  if value ~= previousValue then
395
- if self:setNativeFieldValue(entry, level, value) then
396
- self:invokeValueChangeEvent(
397
- entry,
398
- self,
399
- level,
400
- previousValue,
401
- value
402
- )
403
- else
404
+ if not self:setNativeFieldValue(entry, level, value) then
404
405
  return false
405
406
  end
407
+ self:invokeValueChangeEvent(
408
+ entry,
409
+ self,
410
+ level,
411
+ previousValue,
412
+ value
413
+ )
406
414
  end
407
415
  return true
408
416
  end
417
+ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
418
+ if value ~= nil then
419
+ if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
420
+ return false
421
+ end
422
+ if type(levelOrValue) ~= "number" then
423
+ return false
424
+ end
425
+ return self:setValue(entry, levelOrValue, value)
426
+ end
427
+ if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
428
+ return false
429
+ end
430
+ return self:setValue(entry, levelOrValue)
431
+ end
409
432
  function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
410
433
  self:invokeValueChangeEventRecursive(
411
434
  getClass(self),
@@ -8,3 +8,4 @@ export declare const randomFloat: {
8
8
  (upperBound?: number): number;
9
9
  (lowerBound: number, upperBound: number): number;
10
10
  };
11
+ export declare const randomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
package/engine/random.lua CHANGED
@@ -1,9 +1,18 @@
1
1
  local ____exports = {}
2
2
  local ____math = require("math")
3
3
  local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
4
+ local PI = ____math.PI
4
5
  local getRandomInt = GetRandomInt
5
6
  local getRandomReal = GetRandomReal
7
+ local cos = math.cos
8
+ local sin = math.sin
9
+ local sqrt = math.sqrt
6
10
  ____exports.randomAngle = function() return getRandomReal(0, 360) end
7
11
  ____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
8
12
  ____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
13
+ ____exports.randomXY = function(centerX, centerY, range)
14
+ local r = range * sqrt(getRandomReal(0, 1))
15
+ local t = getRandomReal(0, 1) * 2 * PI
16
+ return centerX + r * cos(t), centerY + r * sin(t)
17
+ end
9
18
  return ____exports
@@ -0,0 +1,10 @@
1
+ /** @noSelfInFile */
2
+ import { StandardSoundPresetId } from "../../object-data/entry/sound-preset";
3
+ export declare const ABOMINATION_PISSED_SOUND_PRESET_ID: StandardSoundPresetId;
4
+ export declare const ABOMINATION_READY_SOUND_PRESET_ID: StandardSoundPresetId;
5
+ export declare const ABOMINATION_WAR_CRY_SOUND_PRESET_ID: StandardSoundPresetId;
6
+ export declare const AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID: StandardSoundPresetId;
7
+ export declare const IMPALE_SOUND_PRESET_ID: StandardSoundPresetId;
8
+ export declare const IMPALE_HIT_SOUND_PRESET_ID: StandardSoundPresetId;
9
+ export declare const IMPALE_LAND_SOUND_PRESET_ID: StandardSoundPresetId;
10
+ export declare const IMPALE_CAST_SOUND_PRESET_ID: StandardSoundPresetId;
@@ -0,0 +1,10 @@
1
+ local ____exports = {}
2
+ ____exports.ABOMINATION_PISSED_SOUND_PRESET_ID = "AbominationPissed"
3
+ ____exports.ABOMINATION_READY_SOUND_PRESET_ID = "AbominationReady"
4
+ ____exports.ABOMINATION_WAR_CRY_SOUND_PRESET_ID = "AbominationWarcry"
5
+ ____exports.AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID = "AxeMediumChopWood"
6
+ ____exports.IMPALE_SOUND_PRESET_ID = "Impale"
7
+ ____exports.IMPALE_HIT_SOUND_PRESET_ID = "ImpaleHit"
8
+ ____exports.IMPALE_LAND_SOUND_PRESET_ID = "ImpaleLand"
9
+ ____exports.IMPALE_CAST_SOUND_PRESET_ID = "ImpaleCast"
10
+ return ____exports
@@ -9,11 +9,33 @@ export declare const RIFLEMAN_UNIT_TYPE_ID: StandardUnitTypeId;
9
9
  export declare const SIEGE_ENGINE_UNIT_TYPE_ID: StandardUnitTypeId;
10
10
  export declare const SORCERESS_UNIT_TYPE_ID: StandardUnitTypeId;
11
11
  export declare const SPELLBREAKER_UNIT_TYPE_ID: StandardUnitTypeId;
12
- export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
12
  export declare const ARCHMAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
+ export declare const BLOOD_MAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
14
+ export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
+ export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
+ export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
14
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
19
+ export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
20
+ export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
21
+ export declare const ANTONIDAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
22
+ export declare const ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
23
  export declare const ARTHAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
24
  export declare const ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
25
+ export declare const DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
26
+ export declare const HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
27
+ export declare const JAINA_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
28
+ export declare const JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
+ export declare const KAEL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
+ export declare const KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
31
+ export declare const LORD_GARITHOS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
32
+ export declare const LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
33
+ export declare const MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
34
+ export declare const MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
35
+ export declare const SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
36
+ export declare const SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
37
+ export declare const THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
38
+ export declare const UTHER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
17
39
  export declare const BATRIDER_UNIT_TYPE_ID: StandardUnitTypeId;
18
40
  export declare const DEMOLISHER_UNIT_TYPE_ID: StandardUnitTypeId;
19
41
  export declare const GRUNT_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -25,11 +47,29 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
25
47
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
26
48
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
27
49
  export declare const WITCH_DOCTOR_UNIT_TYPE_ID: StandardUnitTypeId;
50
+ export declare const ARCHER_UNIT_TYPE_ID: StandardUnitTypeId;
51
+ export declare const CHIMAERA_UNIT_TYPE_ID: StandardUnitTypeId;
52
+ export declare const DRUID_OF_THE_CLAW_UNIT_TYPE_ID: StandardUnitTypeId;
53
+ export declare const DRUID_OF_THE_TALON_UNIT_TYPE_ID: StandardUnitTypeId;
54
+ export declare const DRYAD_UNIT_TYPE_ID: StandardUnitTypeId;
55
+ export declare const FAERIE_DRAGON_UNIT_TYPE_ID: StandardUnitTypeId;
56
+ export declare const GLAIVE_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
57
+ export declare const HIPPOGRYPH_UNIT_TYPE_ID: StandardUnitTypeId;
58
+ export declare const HIPPOGRYPH_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
59
+ export declare const HUNTRESS_UNIT_TYPE_ID: StandardUnitTypeId;
60
+ export declare const MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID: StandardUnitTypeId;
61
+ export declare const WISP_UNIT_TYPE_ID: StandardUnitTypeId;
28
62
  export declare const DEMON_HUNTER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
63
+ export declare const KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
64
+ export declare const MOON_PRIESTESS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
65
+ export declare const WARDEN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
29
66
  export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
30
67
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
31
68
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
32
69
  export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
70
+ export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
71
+ export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
72
+ export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
33
73
  export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
34
74
  export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
35
75
  export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -58,6 +98,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
58
98
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
59
99
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
60
100
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
101
+ export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
61
102
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
62
103
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
63
104
  export declare const CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -8,11 +8,33 @@ ____exports.RIFLEMAN_UNIT_TYPE_ID = fourCC("hrif")
8
8
  ____exports.SIEGE_ENGINE_UNIT_TYPE_ID = fourCC("hmtt")
9
9
  ____exports.SORCERESS_UNIT_TYPE_ID = fourCC("hsor")
10
10
  ____exports.SPELLBREAKER_UNIT_TYPE_ID = fourCC("hspt")
11
- ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
12
11
  ____exports.ARCHMAGE_HERO_UNIT_TYPE_ID = fourCC("Hamg")
12
+ ____exports.BLOOD_MAGE_HERO_UNIT_TYPE_ID = fourCC("Hblm")
13
+ ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
+ ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
+ ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
13
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
18
+ ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
19
+ ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
20
+ ____exports.ANTONIDAS_HERO_UNIT_TYPE_ID = fourCC("Hant")
21
+ ____exports.ANTONIDAS_GHOST_HERO_UNIT_TYPE_ID = fourCC("Hgam")
14
22
  ____exports.ARTHAS_HERO_UNIT_TYPE_ID = fourCC("Hart")
15
23
  ____exports.ARTHAS_WITH_FROSTMOURNE_HERO_UNIT_TYPE_ID = fourCC("Harf")
24
+ ____exports.DAGREN_THE_ORCSLAYER_HERO_UNIT_TYPE_ID = fourCC("Hdgo")
25
+ ____exports.HALAHK_THE_LIFEBRINGER_HERO_UNIT_TYPE_ID = fourCC("Hhkl")
26
+ ____exports.JAINA_HERO_UNIT_TYPE_ID = fourCC("Hjai")
27
+ ____exports.JENNALLA_DEEMSPRING_HERO_UNIT_TYPE_ID = fourCC("Hjnd")
28
+ ____exports.KAEL_HERO_UNIT_TYPE_ID = fourCC("Hkal")
29
+ ____exports.KELEN_THE_SEEKER_HERO_UNIT_TYPE_ID = fourCC("Haah")
30
+ ____exports.LORD_GARITHOS_HERO_UNIT_TYPE_ID = fourCC("Hlgr")
31
+ ____exports.LORD_NICHOLAS_BUZAN_HERO_UNIT_TYPE_ID = fourCC("Hpb1")
32
+ ____exports.MAGROTH_THE_DEFENDER_HERO_UNIT_TYPE_ID = fourCC("Hmgd")
33
+ ____exports.MURADIN_BRONZEBEARD_HERO_UNIT_TYPE_ID = fourCC("Hmbr")
34
+ ____exports.SIR_GREGORY_EDMUNSON_HERO_UNIT_TYPE_ID = fourCC("Hpb2")
35
+ ____exports.SYLVANAS_WINDRUNNER_HERO_UNIT_TYPE_ID = fourCC("Hvwd")
36
+ ____exports.THALORIEN_DAWNSEEKER_HERO_UNIT_TYPE_ID = fourCC("Hddt")
37
+ ____exports.UTHER_HERO_UNIT_TYPE_ID = fourCC("Huth")
16
38
  ____exports.BATRIDER_UNIT_TYPE_ID = fourCC("otbr")
17
39
  ____exports.DEMOLISHER_UNIT_TYPE_ID = fourCC("ocat")
18
40
  ____exports.GRUNT_UNIT_TYPE_ID = fourCC("ogru")
@@ -24,11 +46,29 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
24
46
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
25
47
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
26
48
  ____exports.WITCH_DOCTOR_UNIT_TYPE_ID = fourCC("odoc")
49
+ ____exports.ARCHER_UNIT_TYPE_ID = fourCC("earc")
50
+ ____exports.CHIMAERA_UNIT_TYPE_ID = fourCC("echm")
51
+ ____exports.DRUID_OF_THE_CLAW_UNIT_TYPE_ID = fourCC("edoc")
52
+ ____exports.DRUID_OF_THE_TALON_UNIT_TYPE_ID = fourCC("edot")
53
+ ____exports.DRYAD_UNIT_TYPE_ID = fourCC("edry")
54
+ ____exports.FAERIE_DRAGON_UNIT_TYPE_ID = fourCC("efdr")
55
+ ____exports.GLAIVE_THROWER_UNIT_TYPE_ID = fourCC("ebal")
56
+ ____exports.HIPPOGRYPH_UNIT_TYPE_ID = fourCC("ehip")
57
+ ____exports.HIPPOGRYPH_RIDER_UNIT_TYPE_ID = fourCC("ehpr")
58
+ ____exports.HUNTRESS_UNIT_TYPE_ID = fourCC("esen")
59
+ ____exports.MOUNTAIN_GIANT_THROWER_UNIT_TYPE_ID = fourCC("emtg")
60
+ ____exports.WISP_UNIT_TYPE_ID = fourCC("ewsp")
27
61
  ____exports.DEMON_HUNTER_HERO_UNIT_TYPE_ID = fourCC("Edem")
62
+ ____exports.KEEPER_OF_THE_GROVE_HERO_UNIT_TYPE_ID = fourCC("Ekee")
63
+ ____exports.MOON_PRIESTESS_HERO_UNIT_TYPE_ID = fourCC("Emoo")
64
+ ____exports.WARDEN_HERO_UNIT_TYPE_ID = fourCC("Ewar")
28
65
  ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
29
66
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
30
67
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
31
68
  ____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
69
+ ____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
70
+ ____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
71
+ ____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
32
72
  ____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
33
73
  ____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
34
74
  ____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
@@ -57,6 +97,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
57
97
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
58
98
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
59
99
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
100
+ ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
60
101
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
61
102
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
62
103
  ____exports.CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID = fourCC("ncp3")
@@ -16,7 +16,7 @@ export declare const LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD: AbilityIntege
16
16
  export declare const HERO_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
17
17
  export declare const ITEM_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
18
18
  export declare const CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
19
- export declare const ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
19
+ export declare const MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
20
20
  export declare const NAME_ABILITY_STRING_FIELD: AbilityStringField & symbol;
21
21
  export declare const ICON_ACTIVATED_ABILITY_STRING_FIELD: AbilityStringField & symbol;
22
22
  export declare const ICON_RESEARCH_ABILITY_STRING_FIELD: AbilityStringField & symbol;
@@ -687,6 +687,8 @@ export declare const DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD: Abilit
687
687
  export declare const ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD: AbilityBooleanLevelField & symbol;
688
688
  export declare const ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD: AbilityStringLevelField & symbol;
689
689
  export declare const CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
690
+ export declare const CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
691
+ export declare const CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
690
692
  export declare const TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
691
693
  export declare const TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
692
694
  export declare const TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
@@ -27,7 +27,7 @@ ____exports.LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD = AbilityIntegerField:c
27
27
  ____exports.HERO_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aher"))
28
28
  ____exports.ITEM_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aite"))
29
29
  ____exports.CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("achd"))
30
- ____exports.ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
30
+ ____exports.MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
31
31
  ____exports.NAME_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("anam"))
32
32
  ____exports.ICON_ACTIVATED_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("auar"))
33
33
  ____exports.ICON_RESEARCH_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("arar"))
@@ -698,6 +698,8 @@ ____exports.DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBoolean
698
698
  ____exports.ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBooleanLevelField:create(fourCC("Ntm4"))
699
699
  ____exports.ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD = AbilityStringLevelField:create(fourCC("aart"))
700
700
  ____exports.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("acat"))
701
+ ____exports.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("acap"))
702
+ ____exports.CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("aca1"))
701
703
  ____exports.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("atat"))
702
704
  ____exports.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata0"))
703
705
  ____exports.TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata1"))
package/engine/unit.d.ts CHANGED
@@ -4,6 +4,7 @@ import "./internal/unit/ability";
4
4
  import "./internal/unit/allowed-targets";
5
5
  import "./internal/unit/buff";
6
6
  import "./internal/unit/expiration-timer";
7
+ import "./internal/unit/item";
7
8
  import "./internal/unit+ability";
8
9
  import "./internal/unit+damage";
9
10
  import "./internal/unit+rally";
@@ -14,6 +15,9 @@ import "./internal/unit/missile";
14
15
  import "./internal/unit-missile-launch";
15
16
  import "./internal/unit/ghost-counter";
16
17
  import "./internal/unit/invulnerability-counter";
18
+ import "./internal/unit/detach-missiles";
19
+ import "./internal/unit/main-selected";
20
+ import "./internal/unit/add-item-to-slot-init";
17
21
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
18
22
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
19
23
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -4,6 +4,7 @@ require("engine.internal.unit.ability")
4
4
  require("engine.internal.unit.allowed-targets")
5
5
  require("engine.internal.unit.buff")
6
6
  require("engine.internal.unit.expiration-timer")
7
+ require("engine.internal.unit.item")
7
8
  require("engine.internal.unit+ability")
8
9
  require("engine.internal.unit+damage")
9
10
  require("engine.internal.unit+rally")
@@ -14,11 +15,13 @@ require("engine.internal.unit.missile")
14
15
  require("engine.internal.unit-missile-launch")
15
16
  require("engine.internal.unit.ghost-counter")
16
17
  require("engine.internal.unit.invulnerability-counter")
18
+ require("engine.internal.unit.detach-missiles")
19
+ require("engine.internal.unit.main-selected")
20
+ require("engine.internal.unit.add-item-to-slot-init")
17
21
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
18
22
  do
19
23
  local ____unit = require("engine.internal.unit")
20
- local Unit = ____unit.Unit
21
- ____exports.Unit = Unit
24
+ ____exports.Unit = ____unit.Unit
22
25
  end
23
26
  do
24
27
  local ____export = require("engine.internal.unit+damage")
@@ -28,4 +31,12 @@ do
28
31
  end
29
32
  end
30
33
  end
34
+ do
35
+ local ____export = require("engine.internal.unit+rally")
36
+ for ____exportKey, ____exportValue in pairs(____export) do
37
+ if ____exportKey ~= "default" then
38
+ ____exports[____exportKey] = ____exportValue
39
+ end
40
+ end
41
+ end
31
42
  return ____exports
package/event.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
- export type EventListener<T extends any[]> = (...args: T) => void;
2
+ export type EventListener<T extends any[]> = (this: void, ...args: T) => void;
4
3
  export declare const enum EventListenerPriority {
5
4
  LOWEST = 0,
6
5
  LOW = 1,
@@ -38,7 +37,7 @@ export type EventDispatchTable<EventType extends Event<any>, KeyType extends num
38
37
  };
39
38
  export type DispatchingEvent<P extends any[], T extends Event<P> = Event<P>, S extends Event<P> = Event<P>> = T & EventDispatchTable<S>;
40
39
  export declare const createDispatchingEvent: {
41
- <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (...args: EventParameters<T>) => number, ...createEvent: [...(Event<any> extends S ? [(() => S)?] : [() => S])]): DispatchingEvent<EventParameters<T>, T>;
40
+ <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
42
41
  };
43
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
44
43
  constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
package/event.lua CHANGED
@@ -146,8 +146,13 @@ function TriggerEvent.prototype.____constructor(self, r, c)
146
146
  end
147
147
  )
148
148
  end
149
- ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, createEvent)
150
- local actualCreateEvent = createEvent or (function() return __TS__New(____exports.Event) end)
149
+ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, invokeEvent, createEvent)
150
+ if invokeEvent == nil then
151
+ invokeEvent = ____exports.Event.invoke
152
+ end
153
+ if createEvent == nil then
154
+ createEvent = function() return __TS__New(____exports.Event) end
155
+ end
151
156
  local initialized = false
152
157
  return setmetatable(
153
158
  {},
@@ -157,17 +162,16 @@ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, creat
157
162
  return underlyingEvent[id]
158
163
  end
159
164
  if not initialized then
160
- local invoke = ____exports.Event.invoke
161
165
  underlyingEvent:addListener(function(...)
162
166
  local key = extractKey(...)
163
167
  local event = rawget(self, key)
164
168
  if event then
165
- invoke(event, ...)
169
+ invokeEvent(event, ...)
166
170
  end
167
171
  end)
168
172
  initialized = true
169
173
  end
170
- local event = actualCreateEvent()
174
+ local event = createEvent()
171
175
  rawset(self, id, event)
172
176
  return event
173
177
  end,
package/global/vec2.lua CHANGED
@@ -15,6 +15,7 @@ local abs = math.abs
15
15
 
16
16
  local location = Location and Location(0, 0)
17
17
  local moveLocation = MoveLocation
18
+ local getLocationZ = GetLocationZ
18
19
 
19
20
  local vec2 = {}
20
21
 
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import "./types";
3
+ import "./patch-lua";
3
4
  import "./patch-lualib";
4
5
  import "./patch-natives";
5
6
  import "./global/math";
package/index.lua CHANGED
@@ -1,5 +1,6 @@
1
1
  local ____exports = {}
2
2
  require("types")
3
+ require("patch-lua")
3
4
  require("patch-lualib")
4
5
  require("patch-natives")
5
6
  require("global.math")