warscript 0.0.1-dev.404878c → 0.0.1-dev.40c20e7

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