warscript 0.0.1-dev.2af030d → 0.0.1-dev.2cd2e68

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 (230) hide show
  1. package/attributes.d.ts +5 -1
  2. package/attributes.lua +8 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +93 -1
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/image.d.ts +0 -1
  13. package/core/types/missile.d.ts +2 -2
  14. package/core/types/missile.lua +8 -2
  15. package/core/types/order.d.ts +1 -0
  16. package/core/types/order.lua +11 -1
  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/decl/native.d.ts +840 -786
  26. package/engine/ability.d.ts +1 -1
  27. package/engine/behavior.d.ts +10 -10
  28. package/engine/behavior.lua +6 -6
  29. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  30. package/engine/behaviour/ability/always-enabled.lua +31 -0
  31. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  32. package/engine/behaviour/ability/apply-buff.lua +32 -0
  33. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  34. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  35. package/engine/behaviour/ability/damage.d.ts +39 -11
  36. package/engine/behaviour/ability/damage.lua +83 -37
  37. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  38. package/engine/behaviour/ability/emulate-impact.lua +42 -0
  39. package/engine/behaviour/ability/heal.d.ts +33 -6
  40. package/engine/behaviour/ability/heal.lua +89 -10
  41. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  42. package/engine/behaviour/ability/instant-impact.lua +4 -15
  43. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  44. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  45. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  46. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  47. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  48. package/engine/behaviour/ability/restore-mana.lua +29 -0
  49. package/engine/behaviour/ability.d.ts +27 -4
  50. package/engine/behaviour/ability.lua +153 -18
  51. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  52. package/engine/behaviour/unit.d.ts +25 -2
  53. package/engine/behaviour/unit.lua +137 -0
  54. package/engine/buff.d.ts +103 -41
  55. package/engine/buff.lua +465 -212
  56. package/engine/game-map.d.ts +7 -0
  57. package/engine/game-map.lua +32 -0
  58. package/engine/internal/ability.d.ts +20 -13
  59. package/engine/internal/ability.lua +97 -76
  60. package/engine/internal/item/ability.lua +112 -4
  61. package/engine/internal/item+owner.lua +2 -2
  62. package/engine/internal/item.d.ts +7 -4
  63. package/engine/internal/item.lua +131 -28
  64. package/engine/internal/mechanics/ability-duration.lua +1 -1
  65. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  66. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  67. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  68. package/engine/internal/misc/damage-metadata-by-target.lua +5 -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 +15 -1
  74. package/engine/internal/unit/ability.lua +50 -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/allowed-targets.d.ts +1 -1
  80. package/engine/internal/unit/allowed-targets.lua +9 -1
  81. package/engine/internal/unit/bonus.d.ts +11 -8
  82. package/engine/internal/unit/bonus.lua +23 -1
  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+damage.d.ts +2 -11
  91. package/engine/internal/unit+damage.lua +10 -14
  92. package/engine/internal/unit+spellSteal.lua +1 -2
  93. package/engine/internal/unit+transport.lua +4 -10
  94. package/engine/internal/unit-missile-launch.lua +25 -6
  95. package/engine/internal/unit.d.ts +53 -15
  96. package/engine/internal/unit.lua +345 -121
  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 +7 -2
  101. package/engine/local-client.lua +82 -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/attachment-preset.d.ts +7 -3
  105. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  106. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  107. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  108. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  109. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  110. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  111. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  112. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  113. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  114. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  115. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  116. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  117. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  118. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  119. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  120. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  121. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  122. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  123. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  124. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  125. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  126. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  127. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  128. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  129. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  130. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  131. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  132. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  133. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  134. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  135. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  136. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  137. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  138. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  139. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  140. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  141. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  142. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  143. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  144. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  145. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  146. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  147. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  148. package/engine/object-data/entry/ability-type/web.lua +52 -0
  149. package/engine/object-data/entry/ability-type.d.ts +19 -18
  150. package/engine/object-data/entry/ability-type.lua +89 -33
  151. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  152. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  153. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  154. package/engine/object-data/entry/buff-type.d.ts +6 -13
  155. package/engine/object-data/entry/buff-type.lua +13 -29
  156. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  157. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  158. package/engine/object-data/entry/item-type.d.ts +15 -2
  159. package/engine/object-data/entry/item-type.lua +93 -2
  160. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  161. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  162. package/engine/object-data/entry/sound-preset.lua +140 -0
  163. package/engine/object-data/entry/unit-type.d.ts +10 -4
  164. package/engine/object-data/entry/unit-type.lua +155 -92
  165. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  166. package/engine/object-data/entry/upgrade.d.ts +1 -2
  167. package/engine/object-data/entry/upgrade.lua +4 -4
  168. package/engine/object-data/entry.d.ts +18 -17
  169. package/engine/object-data/entry.lua +60 -32
  170. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  171. package/engine/object-field/ability.d.ts +26 -3
  172. package/engine/object-field/ability.lua +54 -1
  173. package/engine/object-field/unit.d.ts +46 -3
  174. package/engine/object-field/unit.lua +173 -7
  175. package/engine/object-field.d.ts +15 -7
  176. package/engine/object-field.lua +178 -81
  177. package/engine/random.d.ts +1 -0
  178. package/engine/random.lua +9 -0
  179. package/engine/standard/entries/buff-type.d.ts +3 -0
  180. package/engine/standard/entries/buff-type.lua +3 -0
  181. package/engine/standard/entries/sound-preset.d.ts +10 -0
  182. package/engine/standard/entries/sound-preset.lua +10 -0
  183. package/engine/standard/entries/unit-type.d.ts +18 -0
  184. package/engine/standard/entries/unit-type.lua +18 -0
  185. package/engine/standard/fields/ability.d.ts +3 -1
  186. package/engine/standard/fields/ability.lua +3 -1
  187. package/engine/unit.d.ts +3 -0
  188. package/engine/unit.lua +12 -2
  189. package/event.d.ts +2 -3
  190. package/event.lua +9 -5
  191. package/index.d.ts +1 -0
  192. package/index.lua +1 -0
  193. package/lualib_bundle.lua +146 -42
  194. package/math/vec2.d.ts +2 -9
  195. package/math.d.ts +0 -2
  196. package/net/socket.d.ts +7 -1
  197. package/net/socket.lua +45 -4
  198. package/network.d.ts +1 -0
  199. package/network.lua +3 -2
  200. package/objutil/ability.d.ts +0 -1
  201. package/objutil/buff.d.ts +0 -1
  202. package/objutil/buff.lua +2 -3
  203. package/objutil/object.d.ts +0 -1
  204. package/objutil/unit.d.ts +0 -1
  205. package/objutil/unit.lua +8 -0
  206. package/package.json +13 -13
  207. package/patch-lua.d.ts +0 -0
  208. package/patch-lua.lua +10 -0
  209. package/property.d.ts +55 -0
  210. package/property.lua +374 -0
  211. package/string.d.ts +16 -0
  212. package/string.lua +5 -0
  213. package/util/stream.d.ts +0 -1
  214. package/utility/arrays.d.ts +12 -5
  215. package/utility/arrays.lua +37 -3
  216. package/utility/bit-set.d.ts +0 -2
  217. package/utility/functions.d.ts +1 -0
  218. package/utility/functions.lua +1 -0
  219. package/utility/lazy.d.ts +2 -0
  220. package/utility/lazy.lua +14 -0
  221. package/utility/linked-set.d.ts +12 -3
  222. package/utility/linked-set.lua +8 -2
  223. package/utility/lua-maps.d.ts +4 -2
  224. package/utility/lua-maps.lua +16 -0
  225. package/utility/lua-sets.d.ts +2 -2
  226. package/utility/lua-sets.lua +3 -0
  227. package/utility/reflection.lua +11 -7
  228. package/utility/types.d.ts +1 -0
  229. package/core/mapbounds.d.ts +0 -8
  230. 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";
@@ -6,9 +5,10 @@ import { ObjectDataEntry, ObjectDataEntryIdType, ObjectDataEntryLevelFieldValueS
6
5
  export type ObjectFieldId = number & {
7
6
  readonly __objectDataEntryFieldId: unique symbol;
8
7
  };
9
- 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);
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> {
11
+ readonly isGlobal: boolean;
12
12
  protected abstract readonly instanceClass: AbstractConstructor<InstanceType> | Function;
13
13
  supports(instance: AnyNotNil): instance is InstanceType & {
14
14
  readonly __oneSidedTypeGuard: unique symbol;
@@ -17,8 +17,10 @@ declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEnt
17
17
  readonly id: ObjectFieldId;
18
18
  protected abstract getNativeFieldById(id: number): NativeFieldType;
19
19
  protected abstract getObjectDataEntryId(instance: InstanceType): ObjectDataEntryIdType<ObjectDataEntryType>;
20
- constructor(id: number);
21
- static create<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldConstructor<T>, id?: number): T & symbol;
20
+ protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
21
+ hasValue(instance: InstanceType): 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;
22
24
  static of<T extends ObjectFieldBase<any, any, any, any>>(this: ObjectFieldAbstractConstructor<T>, id: number): T | undefined;
23
25
  }
24
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<[
@@ -34,15 +36,22 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
34
36
  ]> : never;
35
37
  export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
36
38
  type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
39
+ type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
37
40
  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> {
38
41
  protected abstract readonly defaultValue: ValueType;
39
- protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
40
42
  protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
41
43
  protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
42
- getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
44
+ private originalValueByInstance?;
45
+ private modifiersByInstance?;
46
+ getValue(entry: ObjectDataEntryType | InstanceType, includeModifiers?: boolean): ValueType;
43
47
  setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
48
+ applyModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): void;
49
+ removeModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): boolean;
44
50
  removeValue(entry: ObjectDataEntryType): boolean;
45
51
  trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
52
+ private getActualValue;
53
+ private setActualValue;
54
+ private calculateActualValue;
46
55
  private invokeValueChangeEvent;
47
56
  private invokeValueChangeEventRecursive;
48
57
  protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
@@ -72,7 +81,6 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
72
81
  }
73
82
  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
83
  protected abstract readonly defaultValue: ValueType;
75
- protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
76
84
  protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
77
85
  protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
78
86
  protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
@@ -20,6 +20,13 @@ local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLe
20
20
  local ObjectDataEntry = ____entry.ObjectDataEntry
21
21
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
22
22
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
23
+ local ____linked_2Dset = require("utility.linked-set")
24
+ local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
25
+ local ____lua_2Dmaps = require("utility.lua-maps")
26
+ local getOrPut = ____lua_2Dmaps.getOrPut
27
+ local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
28
+ local ____arrays = require("utility.arrays")
29
+ local emptyArray = ____arrays.emptyArray
23
30
  local compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId = {}
24
31
  local defaultValueByObjectDataEntryIdByObjectFieldId = postcompile(function() return compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId end)
25
32
  local objectFieldById = {}
@@ -29,7 +36,11 @@ local idGenerator = __TS__New(
29
36
  )
30
37
  local ObjectFieldBase = __TS__Class()
31
38
  ObjectFieldBase.name = "ObjectFieldBase"
32
- function ObjectFieldBase.prototype.____constructor(self, id)
39
+ function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
40
+ if isGlobal == nil then
41
+ isGlobal = true
42
+ end
43
+ self.isGlobal = isGlobal
33
44
  self.valueByInstance = setmetatable({}, {__mode = "k"})
34
45
  if objectFieldById[id] ~= nil then
35
46
  error(
@@ -46,10 +57,15 @@ end
46
57
  function ObjectFieldBase.prototype.supports(self, instance)
47
58
  return __TS__InstanceOf(instance, self.instanceClass)
48
59
  end
49
- function ObjectFieldBase.create(self, id)
60
+ function ObjectFieldBase.prototype.hasValue(self, instance)
61
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
62
+ return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)] ~= nil or self:hasNativeFieldValue(instance)
63
+ end
64
+ function ObjectFieldBase.create(self, id, isGlobal)
50
65
  return __TS__New(
51
66
  self,
52
- id or idGenerator:next()
67
+ id or idGenerator:next(),
68
+ isGlobal
53
69
  )
54
70
  end
55
71
  function ObjectFieldBase.of(self, id)
@@ -71,7 +87,7 @@ ____exports.ObjectField = __TS__Class()
71
87
  local ObjectField = ____exports.ObjectField
72
88
  ObjectField.name = "ObjectField"
73
89
  __TS__ClassExtends(ObjectField, ObjectFieldBase)
74
- function ObjectField.prototype.getValue(self, entry)
90
+ function ObjectField.prototype.getValue(self, entry, includeModifiers)
75
91
  if __TS__InstanceOf(entry, ObjectDataEntry) then
76
92
  local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
77
93
  if defaultValueByObjectDataEntryId ~= nil then
@@ -82,22 +98,16 @@ function ObjectField.prototype.getValue(self, entry)
82
98
  end
83
99
  return self.defaultValue
84
100
  end
85
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
86
- if defaultValueByObjectDataEntryId ~= nil then
87
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
88
- if defaultValue ~= nil then
89
- local ____self_valueByInstance_entry_0 = self.valueByInstance[entry]
90
- if ____self_valueByInstance_entry_0 == nil then
91
- ____self_valueByInstance_entry_0 = defaultValue
101
+ if includeModifiers == false then
102
+ local originalValueByInstance = self.originalValueByInstance
103
+ if originalValueByInstance ~= nil then
104
+ local originalValue = originalValueByInstance[entry]
105
+ if originalValue ~= nil then
106
+ return originalValue
92
107
  end
93
- return ____self_valueByInstance_entry_0
94
108
  end
95
109
  end
96
- local ____temp_1 = self:getNativeFieldValue(entry)
97
- if ____temp_1 == nil then
98
- ____temp_1 = self.defaultValue
99
- end
100
- return ____temp_1
110
+ return self:getActualValue(entry)
101
111
  end
102
112
  function ObjectField.prototype.setValue(self, entry, value)
103
113
  if __TS__InstanceOf(entry, ObjectDataEntry) then
@@ -112,37 +122,53 @@ function ObjectField.prototype.setValue(self, entry, value)
112
122
  defaultValueByObjectDataEntryId[entry.id] = value
113
123
  return true
114
124
  end
115
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
116
- if defaultValueByObjectDataEntryId ~= nil then
117
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
118
- if defaultValue ~= nil then
119
- local ____self_valueByInstance_entry_2 = self.valueByInstance[entry]
120
- if ____self_valueByInstance_entry_2 == nil then
121
- ____self_valueByInstance_entry_2 = defaultValue
122
- end
123
- local ____self_valueByInstance_entry_2_3 = ____self_valueByInstance_entry_2
124
- if ____self_valueByInstance_entry_2_3 == nil then
125
- ____self_valueByInstance_entry_2_3 = self.defaultValue
126
- end
127
- local previousValue = ____self_valueByInstance_entry_2_3
128
- if value ~= previousValue then
129
- self.valueByInstance[entry] = value
130
- self:invokeValueChangeEvent(entry, self, previousValue, value)
125
+ local modifiersByInstance = self.modifiersByInstance
126
+ if modifiersByInstance ~= nil then
127
+ local modifiers = modifiersByInstance[entry]
128
+ if modifiers ~= nil and modifiers.size ~= 0 then
129
+ local originalValueByInstance = self.originalValueByInstance
130
+ if originalValueByInstance == nil then
131
+ originalValueByInstance = mutableWeakLuaMap()
132
+ self.originalValueByInstance = originalValueByInstance
131
133
  end
132
- return true
134
+ originalValueByInstance[entry] = value
135
+ value = self:calculateActualValue(entry)
133
136
  end
134
137
  end
135
- if not self:hasNativeFieldValue(entry) then
136
- return false
138
+ return self:setActualValue(entry, value)
139
+ end
140
+ function ObjectField.prototype.applyModifier(self, instance, modifier)
141
+ local modifiersByInstance = self.modifiersByInstance
142
+ if modifiersByInstance == nil then
143
+ modifiersByInstance = mutableWeakLuaMap()
144
+ self.modifiersByInstance = modifiersByInstance
145
+ end
146
+ if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
147
+ local originalValueByInstance = self.originalValueByInstance
148
+ if originalValueByInstance == nil then
149
+ originalValueByInstance = mutableWeakLuaMap()
150
+ self.originalValueByInstance = originalValueByInstance
151
+ end
152
+ originalValueByInstance[instance] = self:getActualValue(instance)
153
+ self:setActualValue(
154
+ instance,
155
+ self:calculateActualValue(instance)
156
+ )
137
157
  end
138
- local previousValue = self:getNativeFieldValue(entry)
139
- if value ~= previousValue then
140
- if not self:setNativeFieldValue(entry, value) then
141
- return false
158
+ end
159
+ function ObjectField.prototype.removeModifier(self, instance, modifier)
160
+ local modifiersByInstance = self.modifiersByInstance
161
+ if modifiersByInstance ~= nil then
162
+ local modifiers = modifiersByInstance[instance]
163
+ if modifiers ~= nil and modifiers:remove(modifier) then
164
+ self:setActualValue(
165
+ instance,
166
+ self:calculateActualValue(instance)
167
+ )
168
+ return true
142
169
  end
143
- self:invokeValueChangeEvent(entry, self, previousValue, value)
144
170
  end
145
- return true
171
+ return false
146
172
  end
147
173
  function ObjectField.prototype.removeValue(self, entry)
148
174
  if not warpack.compiletime then
@@ -164,6 +190,77 @@ function ObjectField.prototype.trySetValue(self, entry, value)
164
190
  end
165
191
  return self:setValue(entry, value)
166
192
  end
193
+ function ObjectField.prototype.getActualValue(self, instance)
194
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
195
+ if defaultValueByObjectDataEntryId ~= nil then
196
+ local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)]
197
+ if defaultValue ~= nil or self.isGlobal then
198
+ local ____self_valueByInstance_instance_0 = self.valueByInstance[instance]
199
+ if ____self_valueByInstance_instance_0 == nil then
200
+ ____self_valueByInstance_instance_0 = defaultValue
201
+ end
202
+ local ____self_valueByInstance_instance_0_1 = ____self_valueByInstance_instance_0
203
+ if ____self_valueByInstance_instance_0_1 == nil then
204
+ ____self_valueByInstance_instance_0_1 = self.defaultValue
205
+ end
206
+ return ____self_valueByInstance_instance_0_1
207
+ end
208
+ end
209
+ local ____temp_2 = self:getNativeFieldValue(instance)
210
+ if ____temp_2 == nil then
211
+ ____temp_2 = self.defaultValue
212
+ end
213
+ return ____temp_2
214
+ end
215
+ function ObjectField.prototype.setActualValue(self, instance, value)
216
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
217
+ if defaultValueByObjectDataEntryId ~= nil then
218
+ local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)]
219
+ if defaultValue ~= nil or self.isGlobal then
220
+ local ____self_valueByInstance_instance_3 = self.valueByInstance[instance]
221
+ if ____self_valueByInstance_instance_3 == nil then
222
+ ____self_valueByInstance_instance_3 = defaultValue
223
+ end
224
+ local ____self_valueByInstance_instance_3_4 = ____self_valueByInstance_instance_3
225
+ if ____self_valueByInstance_instance_3_4 == nil then
226
+ ____self_valueByInstance_instance_3_4 = self.defaultValue
227
+ end
228
+ local previousValue = ____self_valueByInstance_instance_3_4
229
+ if value ~= previousValue then
230
+ self.valueByInstance[instance] = value
231
+ self:invokeValueChangeEvent(instance, self, previousValue, value)
232
+ end
233
+ return true
234
+ end
235
+ end
236
+ if not self:hasNativeFieldValue(instance) then
237
+ return false
238
+ end
239
+ local previousValue = self:getNativeFieldValue(instance)
240
+ if value ~= previousValue then
241
+ if not self:setNativeFieldValue(instance, value) then
242
+ return false
243
+ end
244
+ self:invokeValueChangeEvent(instance, self, previousValue, value)
245
+ end
246
+ return true
247
+ end
248
+ function ObjectField.prototype.calculateActualValue(self, instance)
249
+ local ____opt_5 = self.originalValueByInstance
250
+ local originalValue = ____opt_5 and ____opt_5[instance]
251
+ local ____opt_7 = self.modifiersByInstance
252
+ local modifiers = ____opt_7 and ____opt_7[instance]
253
+ if originalValue ~= nil then
254
+ local value = originalValue
255
+ if modifiers ~= nil then
256
+ for modifier in pairs(modifiers) do
257
+ value = modifier(instance, value, originalValue)
258
+ end
259
+ end
260
+ return value
261
+ end
262
+ return self.defaultValue
263
+ end
167
264
  function ObjectField.prototype.invokeValueChangeEvent(self, ...)
168
265
  self:invokeValueChangeEventRecursive(
169
266
  getClass(self),
@@ -217,17 +314,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
217
314
  if defaultValueByObjectDataEntryId ~= nil then
218
315
  local value = defaultValueByObjectDataEntryId[entry.id]
219
316
  if value ~= nil then
220
- local ____temp_5
317
+ local ____temp_10
221
318
  if index == nil then
222
- ____temp_5 = value
319
+ ____temp_10 = value
223
320
  else
224
- local ____value_index_4 = value[index + 1]
225
- if ____value_index_4 == nil then
226
- ____value_index_4 = self.defaultValue
321
+ local ____value_index_9 = value[index + 1]
322
+ if ____value_index_9 == nil then
323
+ ____value_index_9 = self.defaultValue
227
324
  end
228
- ____temp_5 = ____value_index_4
325
+ ____temp_10 = ____value_index_9
229
326
  end
230
- return ____temp_5
327
+ return ____temp_10
231
328
  end
232
329
  end
233
330
  return index == nil and ({}) or self.defaultValue
@@ -237,17 +334,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
237
334
  local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
238
335
  if defaultValue ~= nil then
239
336
  local value = self.valueByInstance[entry] or defaultValue
240
- local ____temp_7
337
+ local ____temp_12
241
338
  if index == nil then
242
- ____temp_7 = value
339
+ ____temp_12 = value
243
340
  else
244
- local ____value_index_6 = value[index + 1]
245
- if ____value_index_6 == nil then
246
- ____value_index_6 = self.defaultValue
341
+ local ____value_index_11 = value[index + 1]
342
+ if ____value_index_11 == nil then
343
+ ____value_index_11 = self.defaultValue
247
344
  end
248
- ____temp_7 = ____value_index_6
345
+ ____temp_12 = ____value_index_11
249
346
  end
250
- return ____temp_7
347
+ return ____temp_12
251
348
  end
252
349
  end
253
350
  if index ~= nil then
@@ -292,11 +389,11 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
292
389
  if defaultValueByObjectDataEntryId ~= nil then
293
390
  local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
294
391
  if valueByLevel ~= nil then
295
- local ____valueByLevel_index_8 = valueByLevel[level + 1]
296
- if ____valueByLevel_index_8 == nil then
297
- ____valueByLevel_index_8 = self.defaultValue
392
+ local ____valueByLevel_index_13 = valueByLevel[level + 1]
393
+ if ____valueByLevel_index_13 == nil then
394
+ ____valueByLevel_index_13 = self.defaultValue
298
395
  end
299
- return ____valueByLevel_index_8
396
+ return ____valueByLevel_index_13
300
397
  end
301
398
  end
302
399
  return self.defaultValue
@@ -304,24 +401,24 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
304
401
  local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
305
402
  if defaultValueByObjectDataEntryId ~= nil then
306
403
  local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
307
- if defaultValueByLevel ~= nil then
308
- local ____opt_9 = self.valueByInstance[entry]
309
- local ____temp_11 = ____opt_9 and ____opt_9[level + 1]
310
- if ____temp_11 == nil then
311
- ____temp_11 = defaultValueByLevel[level + 1]
404
+ if defaultValueByLevel ~= nil or self.isGlobal then
405
+ local ____opt_14 = self.valueByInstance[entry]
406
+ local ____temp_16 = ____opt_14 and ____opt_14[level + 1]
407
+ if ____temp_16 == nil then
408
+ ____temp_16 = (defaultValueByLevel or emptyArray())[level + 1]
312
409
  end
313
- local ____temp_11_12 = ____temp_11
314
- if ____temp_11_12 == nil then
315
- ____temp_11_12 = self.defaultValue
410
+ local ____temp_16_17 = ____temp_16
411
+ if ____temp_16_17 == nil then
412
+ ____temp_16_17 = self.defaultValue
316
413
  end
317
- return ____temp_11_12
414
+ return ____temp_16_17
318
415
  end
319
416
  end
320
- local ____temp_13 = self:getNativeFieldValue(entry, level)
321
- if ____temp_13 == nil then
322
- ____temp_13 = self.defaultValue
417
+ local ____temp_18 = self:getNativeFieldValue(entry, level)
418
+ if ____temp_18 == nil then
419
+ ____temp_18 = self.defaultValue
323
420
  end
324
- return ____temp_13
421
+ return ____temp_18
325
422
  end
326
423
  function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
327
424
  if value == nil then
@@ -364,21 +461,21 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
364
461
  local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
365
462
  if defaultValueByObjectDataEntryId ~= nil then
366
463
  local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
367
- if defaultValueByLevel ~= nil then
464
+ if defaultValueByLevel ~= nil or self.isGlobal then
368
465
  local valueByLevel = self.valueByInstance[entry]
369
466
  if valueByLevel == nil then
370
467
  valueByLevel = {}
371
468
  self.valueByInstance[entry] = valueByLevel
372
469
  end
373
- local ____valueByLevel_index_14 = valueByLevel[level + 1]
374
- if ____valueByLevel_index_14 == nil then
375
- ____valueByLevel_index_14 = defaultValueByLevel[level + 1]
470
+ local ____valueByLevel_index_19 = valueByLevel[level + 1]
471
+ if ____valueByLevel_index_19 == nil then
472
+ ____valueByLevel_index_19 = (defaultValueByLevel or emptyArray())[level + 1]
376
473
  end
377
- local ____valueByLevel_index_14_15 = ____valueByLevel_index_14
378
- if ____valueByLevel_index_14_15 == nil then
379
- ____valueByLevel_index_14_15 = self.defaultValue
474
+ local ____valueByLevel_index_19_20 = ____valueByLevel_index_19
475
+ if ____valueByLevel_index_19_20 == nil then
476
+ ____valueByLevel_index_19_20 = self.defaultValue
380
477
  end
381
- local previousValue = ____valueByLevel_index_14_15
478
+ local previousValue = ____valueByLevel_index_19_20
382
479
  if value ~= previousValue then
383
480
  valueByLevel[level + 1] = value
384
481
  self:invokeValueChangeEvent(
@@ -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,3 @@
1
+ /** @noSelfInFile */
2
+ import { StandardBuffTypeId } from "../../object-data/entry/buff-type";
3
+ export declare const CHEMICAL_RAGE_BUFF_TYPE_ID: StandardBuffTypeId;
@@ -0,0 +1,3 @@
1
+ local ____exports = {}
2
+ ____exports.CHEMICAL_RAGE_BUFF_TYPE_ID = fourCC("BNcr")
3
+ 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
@@ -13,7 +13,9 @@ export declare const ARCHMAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
13
13
  export declare const BLOOD_MAGE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
14
14
  export declare const MOUNTAIN_KING_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
15
15
  export declare const PALADIN_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
16
+ export declare const ARCHER_HIGH_ELF_UNIT_TYPE_ID: StandardUnitTypeId;
16
17
  export declare const CAPTAIN_UNIT_TYPE_ID: StandardUnitTypeId;
18
+ export declare const SWORDSMAN_UNIT_TYPE_ID: StandardUnitTypeId;
17
19
  export declare const ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
18
20
  export declare const ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
19
21
  export declare const ANTONIDAS_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
@@ -45,7 +47,22 @@ export declare const SPIRIT_WALKER_UNIT_TYPE_ID: StandardUnitTypeId;
45
47
  export declare const TAUREN_UNIT_TYPE_ID: StandardUnitTypeId;
46
48
  export declare const WIND_RIDER_UNIT_TYPE_ID: StandardUnitTypeId;
47
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;
48
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;
49
66
  export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
50
67
  export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
51
68
  export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -81,6 +98,7 @@ export declare const WENDIGO_UNIT_TYPE_ID: StandardUnitTypeId;
81
98
  export declare const WENDIGO_SHAMAN_UNIT_TYPE_ID: StandardUnitTypeId;
82
99
  export declare const WILDKIN_UNIT_TYPE_ID: StandardUnitTypeId;
83
100
  export declare const WRAITH_UNIT_TYPE_ID: StandardUnitTypeId;
101
+ export declare const GOBLIN_LAND_MINE_UNIT_TYPE_ID: StandardUnitTypeId;
84
102
  export declare const CIRCLE_OF_POWER_UNIT_TYPE_ID: StandardUnitTypeId;
85
103
  export declare const CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID: StandardUnitTypeId;
86
104
  export declare const CIRCLE_OF_POWER_LARGE_UNIT_TYPE_ID: StandardUnitTypeId;
@@ -12,7 +12,9 @@ ____exports.ARCHMAGE_HERO_UNIT_TYPE_ID = fourCC("Hamg")
12
12
  ____exports.BLOOD_MAGE_HERO_UNIT_TYPE_ID = fourCC("Hblm")
13
13
  ____exports.MOUNTAIN_KING_HERO_UNIT_TYPE_ID = fourCC("Hmkg")
14
14
  ____exports.PALADIN_HERO_UNIT_TYPE_ID = fourCC("Hpal")
15
+ ____exports.ARCHER_HIGH_ELF_UNIT_TYPE_ID = fourCC("nhea")
15
16
  ____exports.CAPTAIN_UNIT_TYPE_ID = fourCC("hcth")
17
+ ____exports.SWORDSMAN_UNIT_TYPE_ID = fourCC("hhes")
16
18
  ____exports.ADMIRAL_PROUDMOORE_HERO_UNIT_TYPE_ID = fourCC("Hapm")
17
19
  ____exports.ANASTERIAN_SUNSTRIDER_HERO_UNIT_TYPE_ID = fourCC("Hssa")
18
20
  ____exports.ANTONIDAS_HERO_UNIT_TYPE_ID = fourCC("Hant")
@@ -44,7 +46,22 @@ ____exports.SPIRIT_WALKER_UNIT_TYPE_ID = fourCC("ospw")
44
46
  ____exports.TAUREN_UNIT_TYPE_ID = fourCC("otau")
45
47
  ____exports.WIND_RIDER_UNIT_TYPE_ID = fourCC("owyv")
46
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")
47
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")
48
65
  ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
49
66
  ____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
50
67
  ____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
@@ -80,6 +97,7 @@ ____exports.WENDIGO_UNIT_TYPE_ID = fourCC("nwen")
80
97
  ____exports.WENDIGO_SHAMAN_UNIT_TYPE_ID = fourCC("nwns")
81
98
  ____exports.WILDKIN_UNIT_TYPE_ID = fourCC("nowb")
82
99
  ____exports.WRAITH_UNIT_TYPE_ID = fourCC("ngh2")
100
+ ____exports.GOBLIN_LAND_MINE_UNIT_TYPE_ID = fourCC("nglm")
83
101
  ____exports.CIRCLE_OF_POWER_UNIT_TYPE_ID = fourCC("ncop")
84
102
  ____exports.CIRCLE_OF_POWER_MEDIUM_UNIT_TYPE_ID = fourCC("ncp2")
85
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";
@@ -15,6 +16,8 @@ import "./internal/unit-missile-launch";
15
16
  import "./internal/unit/ghost-counter";
16
17
  import "./internal/unit/invulnerability-counter";
17
18
  import "./internal/unit/detach-missiles";
19
+ import "./internal/unit/main-selected";
20
+ import "./internal/unit/add-item-to-slot-init";
18
21
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
19
22
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
20
23
  export * from "./internal/unit+damage";