warscript 0.0.1-dev.d6e2c10 → 0.0.1-dev.d77b529

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 (303) hide show
  1. package/core/dummy.lua +4 -2
  2. package/core/types/effect.d.ts +11 -1
  3. package/core/types/effect.lua +43 -77
  4. package/core/types/frame.d.ts +1 -0
  5. package/core/types/frame.lua +112 -37
  6. package/core/types/handle.lua +9 -9
  7. package/core/types/item.d.ts +1 -0
  8. package/core/types/item.lua +1 -0
  9. package/core/types/player.d.ts +2 -1
  10. package/core/types/player.lua +18 -13
  11. package/core/types/playerColor.lua +4 -3
  12. package/core/types/sound.d.ts +1 -1
  13. package/core/types/sound.lua +14 -9
  14. package/core/types/unit.d.ts +5 -0
  15. package/core/types/unit.lua +5 -0
  16. package/core/util.d.ts +3 -1
  17. package/core/util.lua +109 -3
  18. package/decl/native.d.ts +705 -7
  19. package/engine/behavior.d.ts +4 -2
  20. package/engine/behavior.lua +69 -11
  21. package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
  22. package/engine/behaviour/ability/damage.d.ts +4 -0
  23. package/engine/behaviour/ability/damage.lua +19 -15
  24. package/engine/behaviour/ability/emulate-impact.lua +5 -4
  25. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  26. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  27. package/engine/behaviour/ability.d.ts +11 -5
  28. package/engine/behaviour/ability.lua +54 -0
  29. package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
  30. package/engine/behaviour/unit/stun-immunity.lua +5 -4
  31. package/engine/behaviour/unit.d.ts +1 -0
  32. package/engine/behaviour/unit.lua +14 -3
  33. package/engine/buff.d.ts +64 -25
  34. package/engine/buff.lua +345 -156
  35. package/engine/index.d.ts +2 -1
  36. package/engine/internal/ability.d.ts +4 -0
  37. package/engine/internal/ability.lua +56 -36
  38. package/engine/internal/item/fields.d.ts +12 -0
  39. package/engine/internal/item/fields.lua +33 -0
  40. package/engine/internal/item/owner-cache.d.ts +5 -0
  41. package/engine/internal/item/owner-cache.lua +4 -0
  42. package/engine/internal/item+owner.d.ts +2 -0
  43. package/engine/internal/item+owner.lua +27 -4
  44. package/engine/internal/item.d.ts +20 -5
  45. package/engine/internal/item.lua +146 -57
  46. package/engine/internal/mechanics/cast-ability.lua +6 -3
  47. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  48. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  49. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  50. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  51. package/engine/internal/object-data/health-bonus.lua +16 -0
  52. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  53. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  54. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  55. package/engine/internal/object-data/mana-bonus.lua +16 -0
  56. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  57. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  58. package/engine/internal/unit/ability.lua +15 -3
  59. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  60. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  61. package/engine/internal/unit/appearance.d.ts +15 -0
  62. package/engine/internal/unit/appearance.lua +85 -0
  63. package/engine/internal/unit/attributes.d.ts +17 -0
  64. package/engine/internal/unit/attributes.lua +46 -0
  65. package/engine/internal/unit/bonus.d.ts +14 -0
  66. package/engine/internal/unit/bonus.lua +102 -8
  67. package/engine/internal/unit/buff.d.ts +2 -2
  68. package/engine/internal/unit/buff.lua +34 -19
  69. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  70. package/engine/internal/unit/equipment-inventory.lua +233 -0
  71. package/engine/internal/unit/expiration-timer.lua +1 -1
  72. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  73. package/engine/internal/unit/extended-inventory.lua +99 -0
  74. package/engine/internal/unit/fly-height.lua +3 -3
  75. package/engine/internal/unit/ignore-events-items.lua +10 -1
  76. package/engine/internal/unit/interrupts.d.ts +12 -0
  77. package/engine/internal/unit/interrupts.lua +28 -0
  78. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  79. package/engine/internal/unit/inventory.lua +87 -0
  80. package/engine/internal/unit/item-container.d.ts +25 -0
  81. package/engine/internal/unit/item-container.lua +11 -0
  82. package/engine/internal/unit/item-order-events.d.ts +17 -0
  83. package/engine/internal/unit/item-order-events.lua +67 -0
  84. package/engine/internal/unit/item-slot.d.ts +27 -0
  85. package/engine/internal/unit/item-slot.lua +92 -0
  86. package/engine/internal/unit/order.d.ts +3 -3
  87. package/engine/internal/unit/order.lua +10 -10
  88. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  89. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  90. package/engine/internal/unit/range-event.d.ts +12 -0
  91. package/engine/internal/unit/range-event.lua +90 -0
  92. package/engine/internal/unit/scale.lua +3 -3
  93. package/engine/internal/unit+ability.d.ts +2 -1
  94. package/engine/internal/unit+ability.lua +63 -2
  95. package/engine/internal/unit+bonus.lua +3 -3
  96. package/engine/internal/unit+damage.d.ts +9 -0
  97. package/engine/internal/unit+damage.lua +33 -0
  98. package/engine/internal/unit+rally.lua +9 -31
  99. package/engine/internal/unit-missile-data.lua +58 -32
  100. package/engine/internal/unit-missile-launch.lua +25 -18
  101. package/engine/internal/unit.d.ts +3 -18
  102. package/engine/internal/unit.lua +97 -195
  103. package/engine/local-client.d.ts +27 -1
  104. package/engine/local-client.lua +298 -58
  105. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  106. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  107. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  108. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  109. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  110. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  111. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  112. package/engine/object-data/auxiliary/item-class.lua +2 -0
  113. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  114. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  115. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  116. package/engine/object-data/auxiliary/order-type.lua +2 -0
  117. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  118. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  119. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  120. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  121. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  122. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  123. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  124. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  125. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  126. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  127. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  128. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  129. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  130. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  131. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  132. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  133. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  134. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  135. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  136. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  137. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  138. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  139. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  140. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  141. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  142. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  143. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  144. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  145. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  146. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  147. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  148. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  149. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  150. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  151. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  152. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  153. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  154. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  155. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  156. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  157. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  158. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  159. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  160. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  161. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  162. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  163. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  164. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  165. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  166. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  167. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  168. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  169. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  170. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  171. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  172. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  173. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  174. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  175. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  176. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  177. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  178. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  179. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  180. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  181. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  182. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  183. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  184. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  185. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  186. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  187. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  188. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  189. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  190. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  191. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  192. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  193. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  194. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  195. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  196. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  197. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  198. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  199. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  200. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  201. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  202. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  203. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  204. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  205. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  206. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  207. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  208. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  209. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  210. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  211. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  212. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  213. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  214. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  215. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  216. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  217. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  218. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  219. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  220. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  221. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  222. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  223. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  224. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  225. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  226. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  227. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  228. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  229. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  230. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  231. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  232. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  233. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  234. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  235. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  236. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  237. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  238. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  239. package/engine/object-data/entry/ability-type.d.ts +18 -3
  240. package/engine/object-data/entry/ability-type.lua +222 -5
  241. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  242. package/engine/object-data/entry/buff-type.d.ts +6 -2
  243. package/engine/object-data/entry/buff-type.lua +26 -0
  244. package/engine/object-data/entry/destructible-type.d.ts +16 -2
  245. package/engine/object-data/entry/destructible-type.lua +91 -0
  246. package/engine/object-data/entry/item-type.d.ts +18 -3
  247. package/engine/object-data/entry/item-type.lua +84 -0
  248. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  249. package/engine/object-data/entry/lightning-type.lua +1 -1
  250. package/engine/object-data/entry/sound-preset.d.ts +2 -2
  251. package/engine/object-data/entry/unit-type.d.ts +47 -2
  252. package/engine/object-data/entry/unit-type.lua +383 -49
  253. package/engine/object-data/entry/upgrade.d.ts +2 -2
  254. package/engine/object-data/entry.d.ts +6 -1
  255. package/engine/object-data/entry.lua +8 -0
  256. package/engine/object-field/ability.lua +2 -2
  257. package/engine/object-field/item.d.ts +22 -0
  258. package/engine/object-field/item.lua +118 -0
  259. package/engine/object-field/unit.d.ts +7 -4
  260. package/engine/object-field/unit.lua +4 -0
  261. package/engine/object-field.d.ts +3 -1
  262. package/engine/object-field.lua +177 -119
  263. package/engine/random.d.ts +1 -0
  264. package/engine/random.lua +8 -0
  265. package/engine/standard/entries/ability-type.d.ts +3102 -7
  266. package/engine/standard/entries/ability-type.lua +0 -6
  267. package/engine/standard/entries/item-type.d.ts +1299 -0
  268. package/engine/standard/entries/item-type.lua +2 -0
  269. package/engine/standard/entries/lightning-type.d.ts +42 -15
  270. package/engine/standard/entries/lightning-type.lua +0 -14
  271. package/engine/standard/entries/unit-type.d.ts +5 -0
  272. package/engine/standard/entries/unit-type.lua +5 -0
  273. package/engine/standard/fields/item.d.ts +4 -0
  274. package/engine/standard/fields/item.lua +6 -0
  275. package/engine/standard/fields/unit.d.ts +11 -5
  276. package/engine/standard/fields/unit.lua +13 -4
  277. package/engine/unit.d.ts +8 -1
  278. package/engine/unit.lua +8 -1
  279. package/event.d.ts +1 -1
  280. package/lualib_bundle.lua +1 -1
  281. package/math.d.ts +2 -0
  282. package/math.lua +14 -0
  283. package/network.lua +25 -1
  284. package/objutil/buff.lua +10 -8
  285. package/objutil/object.lua +1 -1
  286. package/operation.d.ts +8 -1
  287. package/operation.lua +38 -18
  288. package/package.json +3 -23
  289. package/patch-lua.lua +15 -0
  290. package/utility/linked-map.d.ts +35 -0
  291. package/utility/linked-map.lua +107 -0
  292. package/utility/linked-set.d.ts +3 -1
  293. package/utility/linked-set.lua +27 -0
  294. package/utility/random.d.ts +102 -0
  295. package/utility/random.lua +273 -0
  296. package/utility/records.lua +20 -1
  297. package/utility/unordered-map.d.ts +27 -0
  298. package/utility/unordered-map.lua +99 -0
  299. package/engine/internal/unit/item.lua +0 -78
  300. /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
  301. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  302. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  303. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -3,6 +3,7 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
+ local __TS__ArraySome = ____lualib.__TS__ArraySome
6
7
  local ____exports = {}
7
8
  local ____unit = require("engine.internal.unit")
8
9
  local Unit = ____unit.Unit
@@ -40,11 +41,17 @@ local Sound3D = ____sound.Sound3D
40
41
  local SoundSettings = ____sound.SoundSettings
41
42
  local ____lua_2Dsets = require("utility.lua-sets")
42
43
  local luaSetOf = ____lua_2Dsets.luaSetOf
44
+ local ____local_2Dclient = require("engine.local-client")
45
+ local LocalClient = ____local_2Dclient.LocalClient
43
46
  local castAnimationFQNByAbilityTypeId = {}
44
47
  local isButtonVisibleFalseAbilityTypes = {}
45
48
  local casterCastingEffectPresetsByAbilityTypeId = {}
46
49
  local casterChannelingEffectPresetsByAbilityTypeId = {}
47
50
  local targetCastingEffectPresetsByAbilityTypeId = {}
51
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
52
+ local targetChannelingEffectPresetsSDByAbilityTypeId = {}
53
+ local targetChannelingEffectPresetsHDByAbilityTypeId = {}
54
+ local targetChannelingEffectPresetsDEByAbilityTypeId = {}
48
55
  local targetEffectSoundPresetByAbilityTypeId = {}
49
56
  ____exports.AbilityType = __TS__Class()
50
57
  local AbilityType = ____exports.AbilityType
@@ -204,6 +211,19 @@ __TS__SetDescriptor(
204
211
  },
205
212
  true
206
213
  )
214
+ __TS__SetDescriptor(
215
+ AbilityType.prototype,
216
+ "iconPathDE",
217
+ {
218
+ get = function(self)
219
+ return self:getStringField("aart:de")
220
+ end,
221
+ set = function(self, iconPathDE)
222
+ self:setStringField("aart:de", iconPathDE)
223
+ end
224
+ },
225
+ true
226
+ )
207
227
  __TS__SetDescriptor(
208
228
  AbilityType.prototype,
209
229
  "isButtonVisible",
@@ -326,6 +346,19 @@ __TS__SetDescriptor(
326
346
  },
327
347
  true
328
348
  )
349
+ __TS__SetDescriptor(
350
+ AbilityType.prototype,
351
+ "missileModelPathDE",
352
+ {
353
+ get = function(self)
354
+ return self:getStringField("amat:de")
355
+ end,
356
+ set = function(self, missileModelPathDE)
357
+ self:setStringField("amat:de", missileModelPathDE)
358
+ end
359
+ },
360
+ true
361
+ )
329
362
  __TS__SetDescriptor(
330
363
  AbilityType.prototype,
331
364
  "missileMovementArc",
@@ -378,6 +411,58 @@ __TS__SetDescriptor(
378
411
  },
379
412
  true
380
413
  )
414
+ __TS__SetDescriptor(
415
+ AbilityType.prototype,
416
+ "targetChannelingEffectPresets",
417
+ {
418
+ get = function(self)
419
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
420
+ end,
421
+ set = function(self, targetChannelingEffectPresets)
422
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
423
+ end
424
+ },
425
+ true
426
+ )
427
+ __TS__SetDescriptor(
428
+ AbilityType.prototype,
429
+ "targetChannelingEffectPresetsSD",
430
+ {
431
+ get = function(self)
432
+ return targetChannelingEffectPresetsSDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
433
+ end,
434
+ set = function(self, targetChannelingEffectPresetsSD)
435
+ targetChannelingEffectPresetsSDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsSD, toEffectPreset)
436
+ end
437
+ },
438
+ true
439
+ )
440
+ __TS__SetDescriptor(
441
+ AbilityType.prototype,
442
+ "targetChannelingEffectPresetsHD",
443
+ {
444
+ get = function(self)
445
+ return targetChannelingEffectPresetsHDByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
446
+ end,
447
+ set = function(self, targetChannelingEffectPresetsHD)
448
+ targetChannelingEffectPresetsHDByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsHD, toEffectPreset)
449
+ end
450
+ },
451
+ true
452
+ )
453
+ __TS__SetDescriptor(
454
+ AbilityType.prototype,
455
+ "targetChannelingEffectPresetsDE",
456
+ {
457
+ get = function(self)
458
+ return targetChannelingEffectPresetsDEByAbilityTypeId[self.id] or self.targetChannelingEffectPresets
459
+ end,
460
+ set = function(self, targetChannelingEffectPresetsDE)
461
+ targetChannelingEffectPresetsDEByAbilityTypeId[self.id] = map(targetChannelingEffectPresetsDE, toEffectPreset)
462
+ end
463
+ },
464
+ true
465
+ )
381
466
  __TS__SetDescriptor(
382
467
  AbilityType.prototype,
383
468
  "targetEffectPresets",
@@ -459,6 +544,33 @@ __TS__SetDescriptor(
459
544
  },
460
545
  true
461
546
  )
547
+ __TS__SetDescriptor(
548
+ AbilityType.prototype,
549
+ "targetEffectPresetsDE",
550
+ {
551
+ get = function(self)
552
+ return self:getAttachmentPresetListField(
553
+ "atat:de",
554
+ array(
555
+ 6,
556
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
557
+ )
558
+ )
559
+ end,
560
+ set = function(self, targetEffectPresetsDE)
561
+ self:setAttachmentPresetListField(
562
+ "atat:de",
563
+ array(
564
+ 6,
565
+ function(i) return ("ata" .. tostring(i)) .. ":de" end
566
+ ),
567
+ "atac:de",
568
+ targetEffectPresetsDE
569
+ )
570
+ end
571
+ },
572
+ true
573
+ )
462
574
  __TS__SetDescriptor(
463
575
  AbilityType.prototype,
464
576
  "turnOffButtonPositionX",
@@ -969,7 +1081,7 @@ __TS__SetDescriptor(
969
1081
  },
970
1082
  true
971
1083
  )
972
- local _ = postcompile(function()
1084
+ postcompile(function()
973
1085
  for abilityType in pairs(isButtonVisibleFalseAbilityTypes) do
974
1086
  abilityType.hotkey = ""
975
1087
  abilityType.buttonPositionX = 0
@@ -1099,18 +1211,123 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1099
1211
  end
1100
1212
  casterChannelingEffectsByCaster[caster] = effects
1101
1213
  end
1214
+ local targetChannelingEffectsDataByAbilityTypeId = postcompile(function()
1215
+ local function toData(presets)
1216
+ if presets == nil then
1217
+ return nil
1218
+ end
1219
+ local attachmentPoints = map(presets, extractAttachmentPresetInputNodeFQN)
1220
+ local parameters = map(presets, "parameters")
1221
+ return {
1222
+ modelPaths = map(presets, extractAttachmentPresetInputModelPath),
1223
+ attachmentPoints = __TS__ArraySome(
1224
+ attachmentPoints,
1225
+ function(____, attachmentPoint) return attachmentPoint ~= "" end
1226
+ ) and attachmentPoints or nil,
1227
+ parameters = __TS__ArraySome(
1228
+ presets,
1229
+ function(____, preset) return preset.parameters ~= nil end
1230
+ ) and parameters or nil
1231
+ }
1232
+ end
1233
+ local abilityTypeIds = {}
1234
+ for ____, presetsByAbilityTypeId in ipairs({targetChannelingEffectPresetsByAbilityTypeId, targetChannelingEffectPresetsSDByAbilityTypeId, targetChannelingEffectPresetsHDByAbilityTypeId, targetChannelingEffectPresetsDEByAbilityTypeId}) do
1235
+ for abilityTypeId in pairs(presetsByAbilityTypeId) do
1236
+ abilityTypeIds[abilityTypeId] = true
1237
+ end
1238
+ end
1239
+ local result = {}
1240
+ for abilityTypeId in pairs(abilityTypeIds) do
1241
+ local presets = targetChannelingEffectPresetsByAbilityTypeId[abilityTypeId]
1242
+ local presetsSD = targetChannelingEffectPresetsSDByAbilityTypeId[abilityTypeId]
1243
+ local presetsHD = targetChannelingEffectPresetsHDByAbilityTypeId[abilityTypeId]
1244
+ local presetsDE = targetChannelingEffectPresetsDEByAbilityTypeId[abilityTypeId]
1245
+ local ____math_max_8 = math.max
1246
+ local ____opt_0 = presetsSD or presets
1247
+ local ____temp_6 = ____opt_0 and #____opt_0 or 0
1248
+ local ____opt_2 = presetsHD or presets
1249
+ local ____temp_7 = ____opt_2 and #____opt_2 or 0
1250
+ local ____opt_4 = presetsDE or presets
1251
+ result[abilityTypeId] = {
1252
+ effectCount = ____math_max_8(____temp_6, ____temp_7, ____opt_4 and #____opt_4 or 0),
1253
+ data = toData(presets),
1254
+ dataSD = toData(presetsSD),
1255
+ dataHD = toData(presetsHD),
1256
+ dataDE = toData(presetsDE)
1257
+ }
1258
+ end
1259
+ return result
1260
+ end)
1261
+ local targetChannelingEffectsByCaster = {}
1262
+ local function createTargetChannelingEffects(caster, abilityTypeId, xOrWidget, y)
1263
+ local effectsData = targetChannelingEffectsDataByAbilityTypeId[abilityTypeId]
1264
+ if effectsData == nil then
1265
+ return
1266
+ end
1267
+ local graphicsMode = LocalClient.graphicsMode
1268
+ local ____temp_10
1269
+ if graphicsMode == 0 then
1270
+ ____temp_10 = effectsData.dataSD
1271
+ else
1272
+ local ____temp_9
1273
+ if graphicsMode == 1 then
1274
+ ____temp_9 = effectsData.dataHD
1275
+ else
1276
+ ____temp_9 = effectsData.dataDE
1277
+ end
1278
+ ____temp_10 = ____temp_9
1279
+ end
1280
+ local data = ____temp_10 or effectsData.data
1281
+ local modelPaths = data and data.modelPaths
1282
+ local attachmentPoints = data and data.attachmentPoints
1283
+ local parameters = data and data.parameters
1284
+ local effects = {}
1285
+ for i = 1, effectsData.effectCount do
1286
+ local effectModelPath = modelPaths and modelPaths[i] or ""
1287
+ local effectParameters = parameters and parameters[i]
1288
+ if type(xOrWidget) == "number" then
1289
+ effects[i] = Effect:create(effectModelPath, xOrWidget, y, effectParameters)
1290
+ else
1291
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1292
+ if attachmentPoint == nil or attachmentPoint == "" then
1293
+ attachmentPoint = "origin"
1294
+ end
1295
+ effects[i] = Effect:create(effectModelPath, xOrWidget, attachmentPoint, effectParameters)
1296
+ end
1297
+ end
1298
+ targetChannelingEffectsByCaster[caster] = effects
1299
+ end
1300
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1301
+ createTargetChannelingEffects(caster, ability.typeId, target)
1302
+ end
1303
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1304
+ createTargetChannelingEffects(caster, ability.typeId, x, y)
1305
+ end
1102
1306
  local function handleAbilityStopChannelingEvent(caster)
1103
- local effects = casterChannelingEffectsByCaster[caster]
1104
- if effects ~= nil then
1105
- for i = 1, #effects do
1106
- effects[i]:destroy()
1307
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1308
+ if casterEffects ~= nil then
1309
+ for i = 1, #casterEffects do
1310
+ casterEffects[i]:destroy()
1107
1311
  end
1108
1312
  casterChannelingEffectsByCaster[caster] = nil
1109
1313
  end
1314
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1315
+ if targetEffects ~= nil then
1316
+ for i = 1, #targetEffects do
1317
+ targetEffects[i]:destroy()
1318
+ end
1319
+ targetChannelingEffectsByCaster[caster] = nil
1320
+ end
1110
1321
  end
1111
1322
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1112
1323
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1113
1324
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1114
1325
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1115
1326
  end
1327
+ for abilityTypeId in pairs(targetChannelingEffectsDataByAbilityTypeId) do
1328
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1329
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1330
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1331
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1332
+ end
1116
1333
  return ____exports
@@ -65,123 +65,127 @@ function ApplicableBuffType.wrap(self, other)
65
65
  return __TS__New(____exports.ApplicableBuffType, other.object)
66
66
  end
67
67
  ApplicableBuffType.BASE_ID = fourCC("BHbz")
68
- local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(postcompile(function()
69
- local function prepareAbilityType(abilityTypeConstructor, applicableBuffType)
70
- local abilityType = abilityTypeConstructor:create()
71
- abilityType.isInternal = true
72
- abilityType.levelCount = applicableBuffType.levelCount
73
- abilityType.buttonPositionX = 0
74
- abilityType.buttonPositionY = -11
75
- abilityType.casterAttachmentPresets = {}
76
- abilityType.targetEffectPresets = {}
77
- abilityType.casterEffectSoundPresetId = nil
78
- abilityType.learnLevelMinimum = 6
79
- abilityType.race = "other"
80
- abilityType.shouldCheckTechTreeDependencies = false
81
- abilityType.techTreeDependencies = {}
82
- abilityType.allowedTargetCombatClassifications = combatClassificationsOf(
83
- 4,
84
- 2,
85
- 2097152,
86
- 8,
87
- 1048576,
88
- 16
89
- )
90
- abilityType.areaOfEffect = 0
91
- abilityType.castRange = 999999
92
- abilityType.cooldown = 0
93
- abilityType.manaCost = 0
94
- abilityType.buffDuration = 0
95
- abilityType.heroBuffDuration = 0
96
- return abilityType
97
- end
98
- local multilevelPhysicalPositiveApplicatorAbilityTypes = {}
99
- local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId = {}
100
- for applicableBuffType in pairs(compiletimeApplicableBuffTypes) do
101
- local applicatorAbilityTypeIdByApplicatorType = {}
102
- if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
103
- if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
104
- local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
105
- applicatorAbilityType.missProbability = 0
106
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
107
- applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
68
+ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(
69
+ postcompile(function()
70
+ local function prepareAbilityType(abilityTypeConstructor, applicableBuffType)
71
+ local abilityType = abilityTypeConstructor:create()
72
+ abilityType.isInternal = true
73
+ abilityType.levelCount = applicableBuffType.levelCount
74
+ abilityType.buttonPositionX = 0
75
+ abilityType.buttonPositionY = -11
76
+ abilityType.casterAttachmentPresets = {}
77
+ abilityType.targetEffectPresets = {}
78
+ abilityType.casterEffectSoundPresetId = nil
79
+ abilityType.learnLevelMinimum = 6
80
+ abilityType.race = "other"
81
+ abilityType.shouldCheckTechTreeDependencies = false
82
+ abilityType.techTreeDependencies = {}
83
+ abilityType.allowedTargetCombatClassifications = combatClassificationsOf(
84
+ 4,
85
+ 2,
86
+ 2097152,
87
+ 8,
88
+ 1048576,
89
+ 16
90
+ )
91
+ abilityType.areaOfEffect = 0
92
+ abilityType.castRange = 999999
93
+ abilityType.cooldown = 0
94
+ abilityType.manaCost = 0
95
+ abilityType.buffDuration = 0
96
+ abilityType.heroBuffDuration = 0
97
+ return abilityType
98
+ end
99
+ local multilevelPhysicalPositiveApplicatorAbilityTypes = {}
100
+ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId = {}
101
+ for applicableBuffType in pairs(compiletimeApplicableBuffTypes) do
102
+ local applicatorAbilityTypeIdByApplicatorType = {}
103
+ if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
104
+ if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
105
+ local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
106
+ applicatorAbilityType.missProbability = 0
107
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
108
+ applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
109
+ end
110
+ if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
111
+ local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
112
+ applicatorAbilityType.attackSpeedIncreaseFactor = 0
113
+ applicatorAbilityType.movementSpeedIncreaseFactor = 0
114
+ applicatorAbilityType.scaleIncrease = 0
115
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
116
+ applicatorAbilityTypeIdByApplicatorType[852101] = applicatorAbilityType.id
117
+ end
108
118
  end
109
- if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
110
- local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
111
- applicatorAbilityType.attackSpeedIncreaseFactor = 0
112
- applicatorAbilityType.movementSpeedIncreaseFactor = 0
113
- applicatorAbilityType.scaleIncrease = 0
119
+ if applicableBuffType.resistanceType == 2 or applicableBuffType.resistanceType == nil then
120
+ if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
121
+ local applicatorAbilityType = prepareAbilityType(SlowPoisonAbilityType, applicableBuffType)
122
+ applicatorAbilityType.damagePerSecond = 0
123
+ applicatorAbilityType.movementSpeedDecreaseFactor = 0
124
+ applicatorAbilityType.attackSpeedDecreaseFactor = 0
125
+ applicatorAbilityType.isDamageStacking = false
126
+ applicatorAbilityType.isMovementSpeedFactorStacking = false
127
+ applicatorAbilityType.isAttackSpeedFactorStacking = false
128
+ applicatorAbilityType.isAbleToKill = false
129
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
130
+ applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
131
+ end
132
+ if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
133
+ local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
134
+ applicatorAbilityType.attackSpeedIncreaseFactor = 0
135
+ applicatorAbilityType.movementSpeedIncreaseFactor = 0
136
+ applicatorAbilityType.receivedDamageIncreaseFactor = 0
137
+ applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
138
+ if applicatorAbilityType.levelCount > 1 then
139
+ multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
140
+ end
141
+ applicatorAbilityTypeIdByApplicatorType[852100] = applicatorAbilityType.id
142
+ end
143
+ end
144
+ if applicableBuffType.polarity == 0 or applicableBuffType.polarity == nil then
145
+ local applicatorAbilityType = prepareAbilityType(PermanentImmolationAbilityType, applicableBuffType)
146
+ applicatorAbilityType.levelCount = 1
147
+ applicatorAbilityType.damagePerInterval = 0
148
+ applicatorAbilityType.castRange = 0
149
+ applicatorAbilityType.buffDuration = MAXIMUM_INTEGER
150
+ applicatorAbilityType.heroBuffDuration = MAXIMUM_INTEGER
151
+ applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
114
152
  applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
115
- applicatorAbilityTypeIdByApplicatorType[852101] = applicatorAbilityType.id
153
+ applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
116
154
  end
155
+ applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
117
156
  end
118
- if applicableBuffType.resistanceType == 2 or applicableBuffType.resistanceType == nil then
119
- if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
120
- local applicatorAbilityType = prepareAbilityType(SlowPoisonAbilityType, applicableBuffType)
121
- applicatorAbilityType.damagePerSecond = 0
122
- applicatorAbilityType.movementSpeedDecreaseFactor = 0
123
- applicatorAbilityType.attackSpeedDecreaseFactor = 0
124
- applicatorAbilityType.isDamageStacking = false
125
- applicatorAbilityType.isMovementSpeedFactorStacking = false
126
- applicatorAbilityType.isAttackSpeedFactorStacking = false
127
- applicatorAbilityType.isAbleToKill = false
128
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
129
- applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
130
- end
131
- if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
132
- local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
133
- applicatorAbilityType.attackSpeedIncreaseFactor = 0
134
- applicatorAbilityType.movementSpeedIncreaseFactor = 0
135
- applicatorAbilityType.receivedDamageIncreaseFactor = 0
136
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
137
- if applicatorAbilityType.levelCount > 1 then
138
- multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
157
+ local applicatorUpgradeIds = {}
158
+ local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
159
+ for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
160
+ local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
161
+ local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
162
+ local applicatorUpgrade = BlankUpgrade:create()
163
+ applicatorUpgrade.isInternal = true
164
+ applicatorUpgrade.levelCount = maxLevelCount - 1
165
+ applicatorUpgrade.effects = map(
166
+ applicatorAbilityTypeIds,
167
+ function(applicatorAbilityTypeId)
168
+ return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
139
169
  end
140
- applicatorAbilityTypeIdByApplicatorType[852100] = applicatorAbilityType.id
170
+ )
171
+ applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
172
+ for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
173
+ applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
141
174
  end
142
175
  end
143
- if applicableBuffType.polarity == 0 or applicableBuffType.polarity == nil then
144
- local applicatorAbilityType = prepareAbilityType(PermanentImmolationAbilityType, applicableBuffType)
145
- applicatorAbilityType.levelCount = 1
146
- applicatorAbilityType.damagePerInterval = 0
147
- applicatorAbilityType.castRange = 0
148
- applicatorAbilityType.buffDuration = MAXIMUM_INTEGER
149
- applicatorAbilityType.heroBuffDuration = MAXIMUM_INTEGER
150
- applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
151
- applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
152
- applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
153
- end
154
- applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
155
- end
156
- local applicatorUpgradeIds = {}
157
- local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
158
- for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
159
- local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
160
- local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
161
- local applicatorUpgrade = BlankUpgrade:create()
162
- applicatorUpgrade.isInternal = true
163
- applicatorUpgrade.levelCount = maxLevelCount - 1
164
- applicatorUpgrade.effects = map(
165
- applicatorAbilityTypeIds,
166
- function(applicatorAbilityTypeId)
167
- return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
168
- end
169
- )
170
- applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
171
- for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
172
- applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
176
+ for ____, unitType in ipairs(UnitType:getAll()) do
177
+ local ____array_0 = __TS__SparseArrayNew(table.unpack(unitType.affectingUpgradeIds))
178
+ __TS__SparseArrayPush(
179
+ ____array_0,
180
+ table.unpack(applicatorUpgradeIds)
181
+ )
182
+ unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
173
183
  end
174
- end
175
- for ____, unitType in ipairs(UnitType:getAll()) do
176
- local ____array_0 = __TS__SparseArrayNew(table.unpack(unitType.affectingUpgradeIds))
177
- __TS__SparseArrayPush(
178
- ____array_0,
179
- table.unpack(applicatorUpgradeIds)
180
- )
181
- unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
182
- end
183
- return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
184
- end))
184
+ return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
185
+ end),
186
+ 1,
187
+ 2
188
+ )
185
189
  local EVASION_ABILITY_TYPE_IDS = postcompile(function()
186
190
  return AbilityType:getAllIdsByBaseIds(map({
187
191
  "AEev",
@@ -3,9 +3,9 @@ import { TupleOf } from "../../../utility/types";
3
3
  import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
4
4
  import { Race } from "../auxiliary/race";
5
5
  import { SoundPresetName } from "../auxiliary/sound-preset-name";
6
- import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
6
+ import { ObjectDataEntry, ObjectDataEntryConstructor, CustomObjectDataEntryId } from "../entry";
7
7
  import { LightningTypeId } from "./lightning-type";
8
- export type BuffTypeId = ObjectDataEntryId & number & {
8
+ export type BuffTypeId = CustomObjectDataEntryId & number & {
9
9
  readonly __buffTypeId: unique symbol;
10
10
  };
11
11
  export type StandardBuffTypeId = BuffTypeId & {
@@ -24,6 +24,8 @@ export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> exten
24
24
  set iconPathSD(iconPathSD: string);
25
25
  get iconPathHD(): string;
26
26
  set iconPathHD(iconPathHD: string);
27
+ get iconPathDE(): string;
28
+ set iconPathDE(iconPathDE: string);
27
29
  get isMissileHoming(): boolean;
28
30
  set isMissileHoming(isMissileHoming: boolean);
29
31
  get lightningTypeIds(): LightningTypeId[];
@@ -34,6 +36,8 @@ export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> exten
34
36
  set missileModelPathSD(missileModelPathSD: string);
35
37
  get missileModelPathHD(): string;
36
38
  set missileModelPathHD(missileModelPathHD: string);
39
+ get missileModelPathDE(): string;
40
+ set missileModelPathDE(missileModelPathDE: string);
37
41
  get missileMovementArc(): number;
38
42
  set missileMovementArc(missileMovementArc: number);
39
43
  get missileMovementSpeed(): number;
@@ -78,6 +78,19 @@ __TS__SetDescriptor(
78
78
  },
79
79
  true
80
80
  )
81
+ __TS__SetDescriptor(
82
+ BuffType.prototype,
83
+ "iconPathDE",
84
+ {
85
+ get = function(self)
86
+ return self:getStringField("fart:de")
87
+ end,
88
+ set = function(self, iconPathDE)
89
+ self:setStringField("fart:de", iconPathDE)
90
+ end
91
+ },
92
+ true
93
+ )
81
94
  __TS__SetDescriptor(
82
95
  BuffType.prototype,
83
96
  "isMissileHoming",
@@ -143,6 +156,19 @@ __TS__SetDescriptor(
143
156
  },
144
157
  true
145
158
  )
159
+ __TS__SetDescriptor(
160
+ BuffType.prototype,
161
+ "missileModelPathDE",
162
+ {
163
+ get = function(self)
164
+ return self:getStringField("fmat:de")
165
+ end,
166
+ set = function(self, missileModelPathDE)
167
+ self:setStringField("fmat:de", missileModelPathDE)
168
+ end
169
+ },
170
+ true
171
+ )
146
172
  __TS__SetDescriptor(
147
173
  BuffType.prototype,
148
174
  "missileMovementArc",
@@ -1,8 +1,8 @@
1
1
  /** @noSelfInFile */
2
2
  import { ArmorSoundType } from "../auxiliary/armor-sound-type";
3
3
  import { CombatClassifications } from "../auxiliary/combat-classification";
4
- import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
5
- export type DestructibleTypeId = ObjectDataEntryId & number & {
4
+ import { ObjectDataEntry, ObjectDataEntryConstructor, CustomObjectDataEntryId } from "../entry";
5
+ export type DestructibleTypeId = CustomObjectDataEntryId & number & {
6
6
  readonly __destructibleTypeId: unique symbol;
7
7
  };
8
8
  export type StandardDestructibleTypeId = DestructibleTypeId & {
@@ -15,22 +15,36 @@ export declare abstract class DestructibleType extends ObjectDataEntry<Destructi
15
15
  protected static getObjectData(map: WarMap): WarObjects;
16
16
  get fixedFacing(): number;
17
17
  set fixedFacing(fixedFacing: number);
18
+ get flyOverHeight(): number;
19
+ set flyOverHeight(flyOverHeight: number);
18
20
  get modelPath(): string;
19
21
  set modelPath(modelPath: string);
20
22
  get modelPathSD(): string;
21
23
  set modelPathSD(modelPathSD: string);
22
24
  get modelPathHD(): string;
23
25
  set modelPathHD(modelPathHD: string);
26
+ get modelPathDE(): string;
27
+ set modelPathDE(modelPathDE: string);
28
+ get occlusionHeight(): number;
29
+ set occlusionHeight(occlusionHeight: number);
24
30
  get armorSoundType(): ArmorSoundType;
25
31
  set armorSoundType(armorSoundType: ArmorSoundType);
26
32
  get armorSoundTypeSD(): ArmorSoundType;
27
33
  set armorSoundTypeSD(armorSoundTypeSD: ArmorSoundType);
28
34
  get armorSoundTypeHD(): ArmorSoundType;
29
35
  set armorSoundTypeHD(armorSoundTypeHD: ArmorSoundType);
36
+ get armorSoundTypeDE(): ArmorSoundType;
37
+ set armorSoundTypeDE(armorSoundTypeDE: ArmorSoundType);
30
38
  get combatClassifications(): CombatClassifications;
31
39
  set combatClassifications(combatClassifications: CombatClassifications);
40
+ get cliffHeight(): number;
41
+ set cliffHeight(cliffHeight: number);
42
+ get isWalkable(): boolean;
43
+ set isWalkable(isWalkable: boolean);
32
44
  get pathingTexturePath(): string;
33
45
  set pathingTexturePath(pathingTexturePath: string);
34
46
  get deadPathingTexturePath(): string;
35
47
  set deadPathingTexturePath(deadPathingTexturePath: string);
48
+ get name(): string;
49
+ set name(name: string);
36
50
  }