warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f024cc2

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 (248) 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 +103 -13
  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/player.lua +3 -1
  16. package/core/types/playerCamera.d.ts +2 -0
  17. package/core/types/playerCamera.lua +79 -5
  18. package/core/types/sound.d.ts +17 -24
  19. package/core/types/sound.lua +99 -24
  20. package/core/types/timer.d.ts +8 -8
  21. package/core/types/timer.lua +25 -23
  22. package/core/types/unit.lua +8 -0
  23. package/core/util.d.ts +1 -1
  24. package/core/util.lua +18 -1
  25. package/decl/index.d.ts +1 -0
  26. package/decl/native.d.ts +844 -788
  27. package/engine/ability.d.ts +1 -1
  28. package/engine/behavior.d.ts +12 -10
  29. package/engine/behavior.lua +59 -33
  30. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  31. package/engine/behaviour/ability/always-enabled.lua +31 -0
  32. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  33. package/engine/behaviour/ability/apply-buff.lua +32 -0
  34. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  35. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  36. package/engine/behaviour/ability/damage.d.ts +39 -11
  37. package/engine/behaviour/ability/damage.lua +83 -37
  38. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  39. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  40. package/engine/behaviour/ability/heal.d.ts +33 -6
  41. package/engine/behaviour/ability/heal.lua +89 -10
  42. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  43. package/engine/behaviour/ability/instant-impact.lua +4 -15
  44. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  45. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  46. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  47. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  48. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  49. package/engine/behaviour/ability/restore-mana.lua +29 -0
  50. package/engine/behaviour/ability.d.ts +27 -4
  51. package/engine/behaviour/ability.lua +152 -26
  52. package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
  53. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  54. package/engine/behaviour/unit.d.ts +36 -2
  55. package/engine/behaviour/unit.lua +186 -0
  56. package/engine/buff.d.ts +104 -41
  57. package/engine/buff.lua +471 -212
  58. package/engine/game-map.d.ts +7 -0
  59. package/engine/game-map.lua +32 -0
  60. package/engine/internal/ability.d.ts +20 -13
  61. package/engine/internal/ability.lua +103 -76
  62. package/engine/internal/item/ability.lua +162 -4
  63. package/engine/internal/item+owner.lua +12 -6
  64. package/engine/internal/item.d.ts +7 -4
  65. package/engine/internal/item.lua +131 -28
  66. package/engine/internal/mechanics/ability-duration.lua +1 -1
  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/misc/damage-metadata-by-target.d.ts +2 -0
  70. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  71. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  72. package/engine/internal/misc/frame-coordinates.lua +21 -0
  73. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  74. package/engine/internal/misc/get-terrain-z.lua +11 -0
  75. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  76. package/engine/internal/misc/player-local-handle.lua +5 -0
  77. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  78. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  79. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  80. package/engine/internal/object-data/evasion-probability.lua +16 -0
  81. package/engine/internal/unit/ability.d.ts +45 -1
  82. package/engine/internal/unit/ability.lua +98 -14
  83. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  84. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  85. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  86. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  87. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  88. package/engine/internal/unit/allowed-targets.lua +9 -1
  89. package/engine/internal/unit/bonus.d.ts +11 -8
  90. package/engine/internal/unit/bonus.lua +23 -1
  91. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  92. package/engine/internal/unit/ignore-events-items.lua +5 -0
  93. package/engine/internal/unit/item.d.ts +24 -0
  94. package/engine/internal/unit/item.lua +78 -0
  95. package/engine/internal/unit/main-selected.d.ts +13 -0
  96. package/engine/internal/unit/main-selected.lua +51 -0
  97. package/engine/internal/unit/order.d.ts +20 -0
  98. package/engine/internal/unit/order.lua +136 -0
  99. package/engine/internal/unit+ability.lua +3 -3
  100. package/engine/internal/unit+damage.d.ts +2 -11
  101. package/engine/internal/unit+damage.lua +10 -14
  102. package/engine/internal/unit+spellSteal.lua +1 -2
  103. package/engine/internal/unit+transport.lua +4 -10
  104. package/engine/internal/unit-missile-launch.lua +33 -7
  105. package/engine/internal/unit.d.ts +87 -22
  106. package/engine/internal/unit.lua +585 -195
  107. package/engine/internal/utility.lua +12 -0
  108. package/engine/lightning.d.ts +12 -5
  109. package/engine/lightning.lua +48 -14
  110. package/engine/local-client.d.ts +7 -2
  111. package/engine/local-client.lua +82 -0
  112. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  113. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  114. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  115. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  116. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  117. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  118. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  119. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  120. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  121. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  122. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  123. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  124. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  125. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  126. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  127. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  128. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  129. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  130. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  131. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  132. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  133. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  134. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  135. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  136. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  137. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  138. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  139. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  140. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  141. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  142. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  143. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  144. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  145. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  146. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  147. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  148. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  149. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  150. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  151. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  152. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  153. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  154. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  155. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  156. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  157. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  158. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  159. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  160. package/engine/object-data/entry/ability-type/web.lua +52 -0
  161. package/engine/object-data/entry/ability-type.d.ts +19 -18
  162. package/engine/object-data/entry/ability-type.lua +90 -36
  163. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  164. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  165. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  166. package/engine/object-data/entry/buff-type.d.ts +6 -13
  167. package/engine/object-data/entry/buff-type.lua +13 -29
  168. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  169. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  170. package/engine/object-data/entry/item-type.d.ts +15 -2
  171. package/engine/object-data/entry/item-type.lua +93 -2
  172. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  173. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  174. package/engine/object-data/entry/sound-preset.lua +140 -0
  175. package/engine/object-data/entry/unit-type.d.ts +58 -7
  176. package/engine/object-data/entry/unit-type.lua +480 -75
  177. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  178. package/engine/object-data/entry/upgrade.d.ts +1 -2
  179. package/engine/object-data/entry/upgrade.lua +4 -4
  180. package/engine/object-data/entry.d.ts +18 -17
  181. package/engine/object-data/entry.lua +60 -32
  182. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  183. package/engine/object-field/ability.d.ts +26 -3
  184. package/engine/object-field/ability.lua +54 -1
  185. package/engine/object-field/unit.d.ts +57 -3
  186. package/engine/object-field/unit.lua +207 -7
  187. package/engine/object-field.d.ts +17 -7
  188. package/engine/object-field.lua +187 -89
  189. package/engine/random.d.ts +1 -0
  190. package/engine/random.lua +9 -0
  191. package/engine/standard/entries/buff-type.d.ts +3 -0
  192. package/engine/standard/entries/buff-type.lua +3 -0
  193. package/engine/standard/entries/sound-preset.d.ts +10 -0
  194. package/engine/standard/entries/sound-preset.lua +10 -0
  195. package/engine/standard/entries/unit-type.d.ts +39 -1
  196. package/engine/standard/entries/unit-type.lua +39 -1
  197. package/engine/standard/fields/ability.d.ts +3 -1
  198. package/engine/standard/fields/ability.lua +3 -1
  199. package/engine/standard/fields/unit.d.ts +4 -0
  200. package/engine/standard/fields/unit.lua +7 -0
  201. package/engine/text-tag.d.ts +36 -2
  202. package/engine/text-tag.lua +249 -10
  203. package/engine/unit.d.ts +4 -0
  204. package/engine/unit.lua +13 -2
  205. package/event.d.ts +2 -3
  206. package/event.lua +9 -5
  207. package/index.d.ts +1 -0
  208. package/index.lua +1 -0
  209. package/lualib_bundle.lua +146 -42
  210. package/math/vec2.d.ts +2 -9
  211. package/math.d.ts +0 -2
  212. package/net/socket.d.ts +7 -1
  213. package/net/socket.lua +45 -4
  214. package/network.d.ts +1 -0
  215. package/network.lua +3 -2
  216. package/objutil/ability.d.ts +0 -1
  217. package/objutil/buff.d.ts +0 -1
  218. package/objutil/buff.lua +2 -3
  219. package/objutil/object.d.ts +0 -1
  220. package/objutil/unit.d.ts +0 -1
  221. package/objutil/unit.lua +8 -0
  222. package/package.json +13 -14
  223. package/patch-lua.d.ts +0 -0
  224. package/patch-lua.lua +10 -0
  225. package/property.d.ts +55 -0
  226. package/property.lua +374 -0
  227. package/string.d.ts +30 -0
  228. package/string.lua +14 -0
  229. package/util/stream.d.ts +0 -1
  230. package/utility/arrays.d.ts +12 -5
  231. package/utility/arrays.lua +37 -3
  232. package/utility/bit-set.d.ts +0 -2
  233. package/utility/functions.d.ts +8 -0
  234. package/utility/functions.lua +13 -0
  235. package/utility/lazy.d.ts +2 -0
  236. package/utility/lazy.lua +14 -0
  237. package/utility/linked-set.d.ts +12 -3
  238. package/utility/linked-set.lua +8 -2
  239. package/utility/lua-maps.d.ts +5 -2
  240. package/utility/lua-maps.lua +20 -0
  241. package/utility/lua-sets.d.ts +3 -2
  242. package/utility/lua-sets.lua +7 -0
  243. package/utility/reflection.lua +11 -7
  244. package/utility/types.d.ts +1 -0
  245. package/core/mapbounds.d.ts +0 -8
  246. package/core/mapbounds.lua +0 -12
  247. package/core/types/order.d.ts +0 -25
  248. package/core/types/order.lua +0 -55
@@ -7,8 +7,8 @@ export declare class SpiritTouchAbilityType extends AbilityType {
7
7
  set manaGain(manaGain: ObjectDataEntryLevelFieldValueSupplier<number>);
8
8
  get manaRequirement(): number[];
9
9
  set manaRequirement(manaRequirement: ObjectDataEntryLevelFieldValueSupplier<number>);
10
- get maximumTargetCount(): number[];
11
- set maximumTargetCount(maximumTargetCount: ObjectDataEntryLevelFieldValueSupplier<number>);
12
10
  get maximumManaCostFactor(): number[];
13
11
  set maximumManaCostFactor(maximumManaCostFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
12
+ get maximumTargetCount(): number[];
13
+ set maximumTargetCount(maximumTargetCount: ObjectDataEntryLevelFieldValueSupplier<number>);
14
14
  }
@@ -38,26 +38,26 @@ __TS__SetDescriptor(
38
38
  )
39
39
  __TS__SetDescriptor(
40
40
  SpiritTouchAbilityType.prototype,
41
- "maximumTargetCount",
41
+ "maximumManaCostFactor",
42
42
  {
43
43
  get = function(self)
44
44
  return self:getNumberLevelField("Rpb5")
45
45
  end,
46
- set = function(self, maximumTargetCount)
47
- self:setNumberLevelField("Rpb5", maximumTargetCount)
46
+ set = function(self, maximumManaCostFactor)
47
+ self:setNumberLevelField("Rpb5", maximumManaCostFactor)
48
48
  end
49
49
  },
50
50
  true
51
51
  )
52
52
  __TS__SetDescriptor(
53
53
  SpiritTouchAbilityType.prototype,
54
- "maximumManaCostFactor",
54
+ "maximumTargetCount",
55
55
  {
56
56
  get = function(self)
57
57
  return self:getNumberLevelField("Rpb6")
58
58
  end,
59
- set = function(self, maximumManaCostFactor)
60
- self:setNumberLevelField("Rpb6", maximumManaCostFactor)
59
+ set = function(self, maximumTargetCount)
60
+ self:setNumberLevelField("Rpb6", maximumTargetCount)
61
61
  end
62
62
  },
63
63
  true
@@ -15,10 +15,10 @@ __TS__SetDescriptor(
15
15
  "summonedUnitTypeId",
16
16
  {
17
17
  get = function(self)
18
- return self:getObjectDataEntryIdLevelField("Hwe1")
18
+ return self:getObjectDataEntryNumericIdLevelField("Hwe1")
19
19
  end,
20
20
  set = function(self, summonedUnitTypeId)
21
- self:setObjectDataEntryIdLevelField("Hwe1", summonedUnitTypeId)
21
+ self:setObjectDataEntryNumericIdLevelField("Hwe1", summonedUnitTypeId)
22
22
  end
23
23
  },
24
24
  true
@@ -15,10 +15,10 @@ __TS__SetDescriptor(
15
15
  "summonedUnitTypeId",
16
16
  {
17
17
  get = function(self)
18
- return self:getObjectDataEntryIdLevelField("Hwe1")
18
+ return self:getObjectDataEntryNumericIdLevelField("Hwe1")
19
19
  end,
20
20
  set = function(self, summonedUnitTypeId)
21
- self:setObjectDataEntryIdLevelField("Hwe1", summonedUnitTypeId)
21
+ self:setObjectDataEntryNumericIdLevelField("Hwe1", summonedUnitTypeId)
22
22
  end
23
23
  },
24
24
  true
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class WebAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get airUnitLoweringDuration(): number[];
7
+ set airUnitLoweringDuration(airUnitLoweringDuration: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ get airUnitHeight(): number[];
9
+ set airUnitHeight(airUnitHeight: ObjectDataEntryLevelFieldValueSupplier<number>);
10
+ get meleeAttackRange(): number[];
11
+ set meleeAttackRange(meleeAttackRange: ObjectDataEntryLevelFieldValueSupplier<number>);
12
+ }
@@ -0,0 +1,52 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.WebAbilityType = __TS__Class()
9
+ local WebAbilityType = ____exports.WebAbilityType
10
+ WebAbilityType.name = "WebAbilityType"
11
+ __TS__ClassExtends(WebAbilityType, AbilityType)
12
+ WebAbilityType.BASE_ID = fourCC("Aweb")
13
+ __TS__SetDescriptor(
14
+ WebAbilityType.prototype,
15
+ "airUnitLoweringDuration",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Ens1")
19
+ end,
20
+ set = function(self, airUnitLoweringDuration)
21
+ self:setNumberLevelField("Ens1", airUnitLoweringDuration)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ __TS__SetDescriptor(
27
+ WebAbilityType.prototype,
28
+ "airUnitHeight",
29
+ {
30
+ get = function(self)
31
+ return self:getNumberLevelField("Ens2")
32
+ end,
33
+ set = function(self, airUnitHeight)
34
+ self:setNumberLevelField("Ens2", airUnitHeight)
35
+ end
36
+ },
37
+ true
38
+ )
39
+ __TS__SetDescriptor(
40
+ WebAbilityType.prototype,
41
+ "meleeAttackRange",
42
+ {
43
+ get = function(self)
44
+ return self:getNumberLevelField("Ens3")
45
+ end,
46
+ set = function(self, meleeAttackRange)
47
+ self:setNumberLevelField("Ens3", meleeAttackRange)
48
+ end
49
+ },
50
+ true
51
+ )
52
+ return ____exports
@@ -1,18 +1,17 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import "../../internal/unit/ability";
4
3
  import { TupleOf } from "../../../utility/types";
5
4
  import { AnimationName } from "../auxiliary/animation-name";
6
5
  import { AnimationQualifier } from "../auxiliary/animation-qualifier";
7
- import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
6
+ import { AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } from "../auxiliary/attachment-preset";
8
7
  import { CombatClassifications } from "../auxiliary/combat-classification";
9
8
  import { Race } from "../auxiliary/race";
10
- import { SoundPresetName } from "../auxiliary/sound-preset-name";
11
9
  import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
12
10
  import { ObjectDataEntry, ObjectDataEntryId, ObjectDataEntryLevelFieldValueSupplier } from "../entry";
13
11
  import { BuffTypeId } from "./buff-type";
14
12
  import { LightningTypeId } from "./lightning-type";
15
- export type AbilityTypeId = ObjectDataEntryId & {
13
+ import { SoundPresetId } from "./sound-preset";
14
+ export type AbilityTypeId = ObjectDataEntryId & number & {
16
15
  readonly __abilityTypeId: unique symbol;
17
16
  };
18
17
  export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId> {
@@ -28,11 +27,11 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
28
27
  set buttonPositionX(buttonPositionX: number);
29
28
  get buttonPositionY(): number;
30
29
  set buttonPositionY(buttonPositionY: number);
31
- get casterCastingEffectPresets(): AttachmentPreset[];
32
- set casterCastingEffectPresets(casterCastingEffectPresets: AttachmentPresetInput[]);
33
- get casterChannelingEffectPresets(): AttachmentPreset[];
34
- set casterChannelingEffectPresets(casterChannelingEffectPresets: AttachmentPresetInput[]);
35
- get casterAttachmentPresets(): TupleOf<AttachmentPreset, 0 | 1 | 2>;
30
+ get casterCastingEffectPresets(): EffectPresetWithParameters[];
31
+ set casterCastingEffectPresets(casterCastingEffectPresets: EffectPresetWithParametersInput[]);
32
+ get casterChannelingEffectPresets(): EffectPresetWithParameters[];
33
+ set casterChannelingEffectPresets(casterChannelingEffectPresets: EffectPresetWithParametersInput[]);
34
+ get casterAttachmentPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2>;
36
35
  set casterAttachmentPresets(casterAttachmentPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2>);
37
36
  get effectModelPaths(): string[];
38
37
  set effectModelPaths(effectModelPaths: string[]);
@@ -64,15 +63,15 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
64
63
  set missileMovementArc(missileMovementArc: number);
65
64
  get missileMovementSpeed(): number;
66
65
  set missileMovementSpeed(missileMovementSpeed: number);
67
- get specialAttachmentPreset(): AttachmentPreset | undefined;
66
+ get specialAttachmentPreset(): EffectPresetWithParameters | undefined;
68
67
  set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
69
- get targetCastingEffectPresets(): AttachmentPreset[];
68
+ get targetCastingEffectPresets(): EffectPresetWithParameters[];
70
69
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
71
- get targetEffectPresets(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
70
+ get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
72
71
  set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
73
- get targetEffectPresetsSD(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
72
+ get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
74
73
  set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
75
- get targetEffectPresetsHD(): TupleOf<AttachmentPreset, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
74
+ get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
76
75
  set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
77
76
  get turnOffButtonPositionX(): number;
78
77
  set turnOffButtonPositionX(buttonPositionX: number);
@@ -112,10 +111,12 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
112
111
  set turnOffTooltipText(turnOffTooltipText: ObjectDataEntryLevelFieldValueSupplier<string>);
113
112
  get turnOffTooltipExtendedText(): string[];
114
113
  set turnOffTooltipExtendedText(turnOffTooltipExtendedText: ObjectDataEntryLevelFieldValueSupplier<string>);
115
- get soundPresetName(): SoundPresetName;
116
- set soundPresetName(soundPresetName: SoundPresetName);
117
- get loopingSoundPresetName(): SoundPresetName;
118
- set loopingSoundPresetName(loopingSoundPresetName: SoundPresetName);
114
+ get casterEffectSoundPresetId(): SoundPresetId | undefined;
115
+ set casterEffectSoundPresetId(casterEffectSoundPresetId: SoundPresetId | undefined);
116
+ get casterEffectLoopingSoundPresetId(): SoundPresetId;
117
+ set casterEffectLoopingSoundPresetId(casterEffectLoopingSoundPresetId: SoundPresetId);
118
+ get targetEffectSoundPresetId(): SoundPresetId | undefined;
119
+ set targetEffectSoundPresetId(targetEffectSoundPresetId: SoundPresetId | undefined);
119
120
  get allowedTargetCombatClassifications(): CombatClassifications[];
120
121
  set allowedTargetCombatClassifications(allowedTargetCombatClassifications: ObjectDataEntryLevelFieldValueSupplier<CombatClassifications>);
121
122
  get areaOfEffect(): number[];
@@ -1,8 +1,8 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
6
  local ____exports = {}
7
7
  local ____unit = require("engine.internal.unit")
8
8
  local Unit = ____unit.Unit
@@ -20,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
20
20
  local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
21
21
  local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
22
22
  local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
23
- local toAttachmentPreset = ____attachment_2Dpreset.toAttachmentPreset
23
+ local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
24
24
  local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
25
25
  local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
26
26
  local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
@@ -31,14 +31,19 @@ local ____entry = require("engine.object-data.entry")
31
31
  local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLevelFieldValue
32
32
  local ObjectDataEntry = ____entry.ObjectDataEntry
33
33
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
34
- local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
34
+ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
35
35
  local ____upgrade = require("engine.object-data.entry.upgrade")
36
36
  local Upgrade = ____upgrade.Upgrade
37
+ local ____sound = require("core.types.sound")
38
+ local isSoundLabelCustom = ____sound.isSoundLabelCustom
39
+ local Sound3D = ____sound.Sound3D
40
+ local SoundSettings = ____sound.SoundSettings
37
41
  local castAnimationFQNByAbilityTypeId = {}
38
42
  local isButtonVisibleFalseAbilityTypes = {}
39
43
  local casterCastingEffectPresetsByAbilityTypeId = {}
40
44
  local casterChannelingEffectPresetsByAbilityTypeId = {}
41
45
  local targetCastingEffectPresetsByAbilityTypeId = {}
46
+ local targetEffectSoundPresetByAbilityTypeId = {}
42
47
  ____exports.AbilityType = __TS__Class()
43
48
  local AbilityType = ____exports.AbilityType
44
49
  AbilityType.name = "AbilityType"
@@ -53,10 +58,7 @@ end
53
58
  function AbilityType.getObjectData(self, map)
54
59
  return map.objects.ability
55
60
  end
56
- AbilityType.idGenerator = __TS__New(
57
- ObjectDataEntryIdGenerator,
58
- fourCC("A000")
59
- )
61
+ AbilityType.idGenerator = abilityTypeIdGenerator
60
62
  __TS__SetDescriptor(
61
63
  AbilityType.prototype,
62
64
  "channelingAnimation",
@@ -117,7 +119,7 @@ __TS__SetDescriptor(
117
119
  return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
118
120
  end,
119
121
  set = function(self, casterCastingEffectPresets)
120
- casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toAttachmentPreset)
122
+ casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
121
123
  end
122
124
  },
123
125
  true
@@ -130,7 +132,7 @@ __TS__SetDescriptor(
130
132
  return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
131
133
  end,
132
134
  set = function(self, casterChannelingEffectPresets)
133
- casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toAttachmentPreset)
135
+ casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
134
136
  end
135
137
  },
136
138
  true
@@ -275,10 +277,10 @@ __TS__SetDescriptor(
275
277
  "lightningTypeIds",
276
278
  {
277
279
  get = function(self)
278
- return self:getObjectDataEntryIdsField("alig")
280
+ return self:getObjectDataEntryNumericIdsField("alig")
279
281
  end,
280
282
  set = function(self, lightningTypeIds)
281
- self:setObjectDataEntryIdsField("alig", lightningTypeIds)
283
+ self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
282
284
  end
283
285
  },
284
286
  true
@@ -369,7 +371,7 @@ __TS__SetDescriptor(
369
371
  return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
370
372
  end,
371
373
  set = function(self, targetCastingEffectPresets)
372
- targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toAttachmentPreset)
374
+ targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
373
375
  end
374
376
  },
375
377
  true
@@ -512,7 +514,7 @@ __TS__SetDescriptor(
512
514
  "techTreeDependencies",
513
515
  {
514
516
  get = function(self)
515
- local techTreeDependencyIds = self:getObjectDataEntryIdsField("areq")
517
+ local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
516
518
  local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
517
519
  return mapIndexed(
518
520
  techTreeDependencyIds,
@@ -532,7 +534,7 @@ __TS__SetDescriptor(
532
534
  map(techTreeDependencies, extractTechTreeDependencyInputLevel),
533
535
  function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
534
536
  )
535
- self:setObjectDataEntryIdsField("areq", techTreeDependencyIds)
537
+ self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
536
538
  self:setNumbersField("arqa", techTreeDependencyInternalLevels)
537
539
  end
538
540
  },
@@ -722,26 +724,40 @@ __TS__SetDescriptor(
722
724
  )
723
725
  __TS__SetDescriptor(
724
726
  AbilityType.prototype,
725
- "soundPresetName",
727
+ "casterEffectSoundPresetId",
726
728
  {
727
729
  get = function(self)
728
- return self:getStringField("aefs")
730
+ local casterEffectSoundPresetId = self:getStringField("aefs")
731
+ return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
729
732
  end,
730
- set = function(self, soundPresetName)
731
- self:setStringField("aefs", soundPresetName)
733
+ set = function(self, casterEffectSoundPresetId)
734
+ self:setStringField("aefs", casterEffectSoundPresetId or "")
732
735
  end
733
736
  },
734
737
  true
735
738
  )
736
739
  __TS__SetDescriptor(
737
740
  AbilityType.prototype,
738
- "loopingSoundPresetName",
741
+ "casterEffectLoopingSoundPresetId",
739
742
  {
740
743
  get = function(self)
741
744
  return self:getStringField("aefl")
742
745
  end,
743
- set = function(self, loopingSoundPresetName)
744
- self:setStringField("aefl", loopingSoundPresetName)
746
+ set = function(self, casterEffectLoopingSoundPresetId)
747
+ self:setStringField("aefl", casterEffectLoopingSoundPresetId)
748
+ end
749
+ },
750
+ true
751
+ )
752
+ __TS__SetDescriptor(
753
+ AbilityType.prototype,
754
+ "targetEffectSoundPresetId",
755
+ {
756
+ get = function(self)
757
+ return targetEffectSoundPresetByAbilityTypeId[self.id]
758
+ end,
759
+ set = function(self, targetEffectSoundPresetId)
760
+ targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
745
761
  end
746
762
  },
747
763
  true
@@ -800,10 +816,10 @@ __TS__SetDescriptor(
800
816
  "buffTypeIds",
801
817
  {
802
818
  get = function(self)
803
- return self:getObjectDataEntryIdsLevelField("abuf")
819
+ return self:getObjectDataEntryNumericIdsLevelField("abuf")
804
820
  end,
805
821
  set = function(self, buffTypeIds)
806
- self:setObjectDataEntryIdsLevelField("abuf", buffTypeIds)
822
+ self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
807
823
  end
808
824
  },
809
825
  true
@@ -852,10 +868,10 @@ __TS__SetDescriptor(
852
868
  "effectBuffTypeIds",
853
869
  {
854
870
  get = function(self)
855
- return self:getObjectDataEntryIdsLevelField("aeff")
871
+ return self:getObjectDataEntryNumericIdsLevelField("aeff")
856
872
  end,
857
873
  set = function(self, effectBuffTypeIds)
858
- self:setObjectDataEntryIdsLevelField("aeff", effectBuffTypeIds)
874
+ self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
859
875
  end
860
876
  },
861
877
  true
@@ -963,13 +979,37 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
963
979
  4,
964
980
  function(caster, ability)
965
981
  if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
966
- Timer:run(function()
967
- caster:playAnimation(animationFQN)
968
- end)
982
+ Timer:run(caster, "playAnimation", animationFQN)
969
983
  end
970
984
  end
971
985
  )
972
986
  end
987
+ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
988
+ if soundPresetId ~= nil then
989
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
990
+ 4,
991
+ function(caster, ability, target)
992
+ if __TS__InstanceOf(target, Unit) then
993
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
994
+ else
995
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
996
+ end
997
+ end
998
+ )
999
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
1000
+ 4,
1001
+ function(caster, ability, x, y)
1002
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
1003
+ end
1004
+ )
1005
+ end
1006
+ end
1007
+ Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
1008
+ local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
1009
+ if isSoundLabelCustom(soundPresetId) then
1010
+ Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
1011
+ end
1012
+ end)
973
1013
  local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
974
1014
  return mapValues(
975
1015
  casterCastingEffectPresetsByAbilityTypeId,
@@ -982,10 +1022,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
982
1022
  function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
983
1023
  )
984
1024
  end)
1025
+ local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
1026
+ return mapValues(
1027
+ casterCastingEffectPresetsByAbilityTypeId,
1028
+ function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
1029
+ )
1030
+ end)
985
1031
  local casterCastingEffectsByCaster = {}
986
1032
  local function handleAbilityCastingStartEvent(caster, ability)
987
1033
  local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
988
1034
  local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1035
+ local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
989
1036
  local effects = {}
990
1037
  if effectModelPaths ~= nil then
991
1038
  for i = 1, #effectModelPaths do
@@ -994,12 +1041,12 @@ local function handleAbilityCastingStartEvent(caster, ability)
994
1041
  if attachmentPoint == nil or attachmentPoint == "" then
995
1042
  attachmentPoint = "origin"
996
1043
  end
997
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1044
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
998
1045
  end
999
1046
  end
1000
1047
  casterCastingEffectsByCaster[caster] = effects
1001
1048
  end
1002
- local function handleAbilityStopEvent(caster)
1049
+ local function handleAbilityStopCastingEvent(caster)
1003
1050
  local effects = casterCastingEffectsByCaster[caster]
1004
1051
  if effects ~= nil then
1005
1052
  for i = 1, #effects do
@@ -1010,8 +1057,8 @@ local function handleAbilityStopEvent(caster)
1010
1057
  end
1011
1058
  for abilityTypeId in pairs(casterCastingEffectModelPathsByAbilityTypeId) do
1012
1059
  Unit.abilityCastingStartEvent[abilityTypeId]:addListener(4, handleAbilityCastingStartEvent)
1013
- Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1014
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEvent)
1060
+ Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1061
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopCastingEvent)
1015
1062
  end
1016
1063
  local casterChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1017
1064
  return mapValues(
@@ -1025,10 +1072,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
1025
1072
  function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1026
1073
  )
1027
1074
  end)
1075
+ local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
1076
+ return mapValues(
1077
+ casterChannelingEffectPresetsByAbilityTypeId,
1078
+ function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
1079
+ )
1080
+ end)
1028
1081
  local casterChannelingEffectsByCaster = {}
1029
1082
  local function handleAbilityChannelingStartEvent(caster, ability)
1030
1083
  local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1031
1084
  local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1085
+ local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
1032
1086
  local effects = {}
1033
1087
  if effectModelPaths ~= nil then
1034
1088
  for i = 1, #effectModelPaths do
@@ -1037,12 +1091,12 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1037
1091
  if attachmentPoint == nil or attachmentPoint == "" then
1038
1092
  attachmentPoint = "origin"
1039
1093
  end
1040
- effects[i] = Effect:createTarget(effectModelPath, caster, attachmentPoint)
1094
+ effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
1041
1095
  end
1042
1096
  end
1043
1097
  casterChannelingEffectsByCaster[caster] = effects
1044
1098
  end
1045
- local function handleAbilityStopEventV2(caster)
1099
+ local function handleAbilityStopChannelingEvent(caster)
1046
1100
  local effects = casterChannelingEffectsByCaster[caster]
1047
1101
  if effects ~= nil then
1048
1102
  for i = 1, #effects do
@@ -1053,7 +1107,7 @@ local function handleAbilityStopEventV2(caster)
1053
1107
  end
1054
1108
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1055
1109
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1056
- Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1057
- Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopEventV2)
1110
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1111
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1058
1112
  end
1059
1113
  return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { BuffPolarity } from "../../auxiliary/buff-polarity";
4
3
  import { BuffResistanceType } from "../../auxiliary/buff-resistance-type";