warscript 0.0.1-dev.bb34489 → 0.0.1-dev.bc4cd10

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 (455) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/dummy.lua +4 -2
  8. package/core/types/effect.d.ts +24 -6
  9. package/core/types/effect.lua +169 -107
  10. package/core/types/frame.d.ts +9 -0
  11. package/core/types/frame.lua +193 -23
  12. package/core/types/handle.lua +11 -9
  13. package/core/types/item.d.ts +1 -0
  14. package/core/types/item.lua +1 -0
  15. package/core/types/player.d.ts +18 -1
  16. package/core/types/player.lua +76 -26
  17. package/core/types/playerCamera.d.ts +2 -0
  18. package/core/types/playerCamera.lua +123 -5
  19. package/core/types/playerColor.lua +4 -3
  20. package/core/types/sound.d.ts +18 -25
  21. package/core/types/sound.lua +113 -33
  22. package/core/types/tileCell.d.ts +11 -1
  23. package/core/types/tileCell.lua +97 -0
  24. package/core/types/timer.d.ts +9 -8
  25. package/core/types/timer.lua +45 -23
  26. package/core/types/unit.d.ts +5 -0
  27. package/core/types/unit.lua +5 -0
  28. package/core/util.d.ts +3 -1
  29. package/core/util.lua +127 -4
  30. package/decl/native.d.ts +1718 -964
  31. package/destroyable.d.ts +1 -0
  32. package/destroyable.lua +9 -0
  33. package/engine/behavior.d.ts +16 -3
  34. package/engine/behavior.lua +233 -73
  35. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  36. package/engine/behaviour/ability/always-enabled.lua +31 -0
  37. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  38. package/engine/behaviour/ability/apply-buff.lua +36 -4
  39. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  40. package/engine/behaviour/ability/damage.d.ts +43 -11
  41. package/engine/behaviour/ability/damage.lua +89 -39
  42. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  43. package/engine/behaviour/ability/emulate-impact.lua +44 -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 -19
  48. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  49. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  50. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  51. package/engine/behaviour/ability/remove-buffs.lua +49 -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 +30 -7
  55. package/engine/behaviour/ability.lua +162 -43
  56. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  57. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  58. package/engine/behaviour/unit.d.ts +46 -2
  59. package/engine/behaviour/unit.lua +290 -6
  60. package/engine/buff.d.ts +166 -57
  61. package/engine/buff.lua +766 -274
  62. package/engine/game-map.d.ts +7 -0
  63. package/engine/game-map.lua +32 -0
  64. package/engine/index.d.ts +2 -1
  65. package/engine/internal/ability.d.ts +27 -14
  66. package/engine/internal/ability.lua +168 -104
  67. package/engine/internal/item/ability.lua +162 -4
  68. package/engine/internal/item/fields.d.ts +12 -0
  69. package/engine/internal/item/fields.lua +33 -0
  70. package/engine/internal/item/owner-cache.d.ts +5 -0
  71. package/engine/internal/item/owner-cache.lua +4 -0
  72. package/engine/internal/item+owner.d.ts +2 -0
  73. package/engine/internal/item+owner.lua +37 -8
  74. package/engine/internal/item.d.ts +34 -18
  75. package/engine/internal/item.lua +308 -102
  76. package/engine/internal/mechanics/ability-duration.lua +1 -1
  77. package/engine/internal/mechanics/cast-ability.lua +6 -3
  78. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  79. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  80. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  81. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  82. package/engine/internal/misc/frame-coordinates.lua +21 -0
  83. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  84. package/engine/internal/misc/get-terrain-z.lua +11 -0
  85. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  86. package/engine/internal/misc/player-local-handle.lua +5 -0
  87. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  88. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  89. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  90. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  91. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  92. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  93. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  94. package/engine/internal/object-data/evasion-probability.lua +16 -0
  95. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  96. package/engine/internal/object-data/health-bonus.lua +16 -0
  97. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  98. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  99. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  100. package/engine/internal/object-data/mana-bonus.lua +16 -0
  101. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  102. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  103. package/engine/internal/unit/ability.d.ts +45 -1
  104. package/engine/internal/unit/ability.lua +142 -19
  105. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  106. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  107. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  108. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  109. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  110. package/engine/internal/unit/allowed-targets.lua +9 -1
  111. package/engine/internal/unit/appearance.d.ts +15 -0
  112. package/engine/internal/unit/appearance.lua +85 -0
  113. package/engine/internal/unit/attributes.d.ts +17 -0
  114. package/engine/internal/unit/attributes.lua +46 -0
  115. package/engine/internal/unit/bonus.d.ts +20 -2
  116. package/engine/internal/unit/bonus.lua +125 -9
  117. package/engine/internal/unit/buff.d.ts +2 -2
  118. package/engine/internal/unit/buff.lua +34 -19
  119. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  120. package/engine/internal/unit/equipment-inventory.lua +233 -0
  121. package/engine/internal/unit/expiration-timer.lua +1 -1
  122. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  123. package/engine/internal/unit/extended-inventory.lua +99 -0
  124. package/engine/internal/unit/fly-height.d.ts +7 -0
  125. package/engine/internal/unit/fly-height.lua +20 -0
  126. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  127. package/engine/internal/unit/ignore-events-items.lua +14 -0
  128. package/engine/internal/unit/interrupts.d.ts +12 -0
  129. package/engine/internal/unit/interrupts.lua +28 -0
  130. package/engine/internal/unit/inventory.d.ts +28 -0
  131. package/engine/internal/unit/inventory.lua +87 -0
  132. package/engine/internal/unit/item-container.d.ts +25 -0
  133. package/engine/internal/unit/item-container.lua +11 -0
  134. package/engine/internal/unit/item-order-events.d.ts +17 -0
  135. package/engine/internal/unit/item-order-events.lua +67 -0
  136. package/engine/internal/unit/item-slot.d.ts +27 -0
  137. package/engine/internal/unit/item-slot.lua +92 -0
  138. package/engine/internal/unit/main-selected.d.ts +13 -0
  139. package/engine/internal/unit/main-selected.lua +36 -0
  140. package/engine/internal/unit/order.d.ts +20 -0
  141. package/engine/internal/unit/order.lua +136 -0
  142. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  143. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  144. package/engine/internal/unit/range-event.d.ts +12 -0
  145. package/engine/internal/unit/range-event.lua +90 -0
  146. package/engine/internal/unit/scale.d.ts +7 -0
  147. package/engine/internal/unit/scale.lua +20 -0
  148. package/engine/internal/unit+ability.d.ts +2 -1
  149. package/engine/internal/unit+ability.lua +75 -5
  150. package/engine/internal/unit+bonus.lua +3 -3
  151. package/engine/internal/unit+damage.d.ts +11 -11
  152. package/engine/internal/unit+damage.lua +43 -14
  153. package/engine/internal/unit+rally.lua +9 -31
  154. package/engine/internal/unit+spellSteal.lua +1 -2
  155. package/engine/internal/unit+transport.lua +4 -10
  156. package/engine/internal/unit-missile-data.lua +58 -32
  157. package/engine/internal/unit-missile-launch.lua +70 -13
  158. package/engine/internal/unit.d.ts +57 -31
  159. package/engine/internal/unit.lua +466 -308
  160. package/engine/internal/utility.lua +12 -0
  161. package/engine/lightning.d.ts +12 -5
  162. package/engine/lightning.lua +48 -14
  163. package/engine/local-client.d.ts +35 -2
  164. package/engine/local-client.lua +367 -15
  165. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  166. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  167. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  168. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  169. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  170. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  171. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  172. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  173. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  174. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  175. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  176. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  177. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  178. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  179. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  180. package/engine/object-data/auxiliary/item-class.lua +2 -0
  181. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  182. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  183. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  184. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  185. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  186. package/engine/object-data/auxiliary/order-type.lua +2 -0
  187. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  188. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  189. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  190. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  191. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  192. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  193. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  194. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  195. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  196. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  197. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  198. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  199. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  200. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  201. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  202. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  203. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  204. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  205. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  206. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  207. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  208. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  209. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  210. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  211. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  212. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  213. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  214. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  215. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  216. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  217. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  218. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  219. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  220. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  221. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  222. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  223. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  224. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  225. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  226. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  227. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  228. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  230. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  232. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  233. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  234. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  235. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  236. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  237. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  238. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  239. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  240. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  241. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  242. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  243. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  244. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  245. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  246. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  247. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  248. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  249. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  250. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  251. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  252. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  253. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  254. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  255. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  256. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  257. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  258. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  259. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  260. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  261. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  262. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  263. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  264. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  265. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  266. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  267. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  268. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  269. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  270. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  271. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  272. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  273. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  274. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  275. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  276. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  277. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  278. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  279. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  280. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  281. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  282. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  283. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  284. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  285. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  286. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  287. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  288. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  289. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  290. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  291. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  292. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  293. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  294. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  295. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  296. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  297. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  298. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  299. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  300. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  301. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  302. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  303. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  304. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  305. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  306. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  307. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  308. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  309. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  310. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  311. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  312. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  313. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  314. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  315. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  316. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  317. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  318. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  319. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  320. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  321. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  322. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  323. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  324. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  325. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  326. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  327. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  328. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  329. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  330. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  331. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  332. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  333. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  334. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  335. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  336. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  337. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  338. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  339. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  340. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  341. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  342. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  343. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  344. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  345. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  346. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  347. package/engine/object-data/entry/ability-type/web.lua +52 -0
  348. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  349. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  350. package/engine/object-data/entry/ability-type.d.ts +41 -20
  351. package/engine/object-data/entry/ability-type.lua +337 -44
  352. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  353. package/engine/object-data/entry/buff-type.d.ts +10 -12
  354. package/engine/object-data/entry/buff-type.lua +39 -29
  355. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  356. package/engine/object-data/entry/destructible-type.lua +181 -0
  357. package/engine/object-data/entry/item-type.d.ts +32 -3
  358. package/engine/object-data/entry/item-type.lua +177 -2
  359. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  360. package/engine/object-data/entry/lightning-type.lua +1 -1
  361. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  362. package/engine/object-data/entry/sound-preset.lua +140 -0
  363. package/engine/object-data/entry/unit-type.d.ts +71 -6
  364. package/engine/object-data/entry/unit-type.lua +592 -93
  365. package/engine/object-data/entry/upgrade.d.ts +2 -2
  366. package/engine/object-data/entry/upgrade.lua +4 -4
  367. package/engine/object-data/entry.d.ts +21 -14
  368. package/engine/object-data/entry.lua +68 -32
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  370. package/engine/object-field/ability.d.ts +28 -5
  371. package/engine/object-field/ability.lua +61 -7
  372. package/engine/object-field/item.d.ts +22 -0
  373. package/engine/object-field/item.lua +118 -0
  374. package/engine/object-field/unit.d.ts +72 -3
  375. package/engine/object-field/unit.lua +268 -7
  376. package/engine/object-field.d.ts +26 -7
  377. package/engine/object-field.lua +362 -117
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +21 -0
  380. package/engine/standard/entries/ability-type.d.ts +3102 -7
  381. package/engine/standard/entries/ability-type.lua +0 -6
  382. package/engine/standard/entries/buff-type.d.ts +48 -0
  383. package/engine/standard/entries/buff-type.lua +46 -0
  384. package/engine/standard/entries/item-type.d.ts +1299 -0
  385. package/engine/standard/entries/item-type.lua +2 -0
  386. package/engine/standard/entries/lightning-type.d.ts +42 -15
  387. package/engine/standard/entries/lightning-type.lua +0 -14
  388. package/engine/standard/entries/sound-preset.d.ts +10 -0
  389. package/engine/standard/entries/sound-preset.lua +10 -0
  390. package/engine/standard/entries/unit-type.d.ts +5 -0
  391. package/engine/standard/entries/unit-type.lua +5 -0
  392. package/engine/standard/fields/ability.d.ts +4 -2
  393. package/engine/standard/fields/ability.lua +4 -2
  394. package/engine/standard/fields/item.d.ts +4 -0
  395. package/engine/standard/fields/item.lua +6 -0
  396. package/engine/standard/fields/unit.d.ts +12 -0
  397. package/engine/standard/fields/unit.lua +20 -0
  398. package/engine/synchronization.d.ts +11 -0
  399. package/engine/synchronization.lua +77 -0
  400. package/engine/text-tag.d.ts +36 -2
  401. package/engine/text-tag.lua +250 -10
  402. package/engine/unit.d.ts +13 -0
  403. package/engine/unit.lua +13 -0
  404. package/event.d.ts +1 -1
  405. package/index.d.ts +1 -0
  406. package/index.lua +1 -0
  407. package/lualib_bundle.lua +8 -3
  408. package/math.d.ts +2 -0
  409. package/math.lua +14 -0
  410. package/net/socket.d.ts +7 -1
  411. package/net/socket.lua +45 -4
  412. package/network.d.ts +1 -0
  413. package/network.lua +28 -3
  414. package/objutil/buff.lua +13 -12
  415. package/objutil/object.lua +1 -1
  416. package/objutil/unit.lua +8 -0
  417. package/operation.d.ts +8 -1
  418. package/operation.lua +38 -18
  419. package/package.json +3 -23
  420. package/patch-lua.d.ts +0 -0
  421. package/patch-lua.lua +25 -0
  422. package/patch-lualib.lua +1 -1
  423. package/property.d.ts +55 -0
  424. package/property.lua +374 -0
  425. package/utility/arrays.d.ts +11 -1
  426. package/utility/arrays.lua +57 -3
  427. package/utility/callback-array.d.ts +17 -0
  428. package/utility/callback-array.lua +61 -0
  429. package/utility/functions.d.ts +8 -0
  430. package/utility/functions.lua +13 -0
  431. package/utility/lazy.d.ts +2 -0
  432. package/utility/lazy.lua +14 -0
  433. package/utility/linked-map.d.ts +35 -0
  434. package/utility/linked-map.lua +107 -0
  435. package/utility/linked-set.d.ts +16 -3
  436. package/utility/linked-set.lua +54 -3
  437. package/utility/lua-maps.d.ts +15 -2
  438. package/utility/lua-maps.lua +53 -2
  439. package/utility/lua-sets.d.ts +2 -0
  440. package/utility/lua-sets.lua +7 -0
  441. package/utility/random.d.ts +102 -0
  442. package/utility/random.lua +273 -0
  443. package/utility/records.lua +20 -1
  444. package/utility/reflection.lua +11 -7
  445. package/utility/types.d.ts +4 -0
  446. package/utility/unordered-map.d.ts +27 -0
  447. package/utility/unordered-map.lua +99 -0
  448. package/core/mapbounds.d.ts +0 -8
  449. package/core/mapbounds.lua +0 -12
  450. package/core/types/order.d.ts +0 -25
  451. package/core/types/order.lua +0 -55
  452. /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
  453. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  454. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  455. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
+ import type { Unit } from "../../engine/internal/unit";
2
3
  export declare class PlayerCamera {
3
4
  private readonly player;
4
5
  private readonly isLocal;
@@ -28,5 +29,6 @@ export declare class PlayerCamera {
28
29
  get roll(): number;
29
30
  set roll(v: number);
30
31
  reset(): void;
32
+ static isUnitInView(unit: Unit): boolean;
31
33
  static of(player: jplayer): PlayerCamera;
32
34
  }
@@ -3,33 +3,52 @@ local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__New = ____lualib.__TS__New
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local ____exports = {}
6
+ local ____timer = require("core.types.timer")
7
+ local Timer = ____timer.Timer
8
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
9
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
10
+ local ____preconditions = require("utility.preconditions")
11
+ local check = ____preconditions.check
12
+ local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
13
+ local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
14
+ local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
15
+ local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
16
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
17
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
6
18
  local getHandleId = GetHandleId
7
19
  local setCameraField = SetCameraField
8
20
  local getCameraField = GetCameraField
9
21
  local setCameraPosition = SetCameraPosition
22
+ local getCameraEyePositionX = GetCameraEyePositionX
23
+ local getCameraEyePositionY = GetCameraEyePositionY
24
+ local getCameraEyePositionZ = GetCameraEyePositionZ
10
25
  local getCameraTargetPositionX = GetCameraTargetPositionX
11
26
  local getCameraTargetPositionY = GetCameraTargetPositionY
12
27
  local resetToGameCamera = ResetToGameCamera
28
+ local cos = math.cos
13
29
  local deg = math.deg
14
- local localPlayer = GetLocalPlayer()
30
+ local sin = math.sin
31
+ local sqrt = math.sqrt
15
32
  local memoized = {}
16
33
  ____exports.PlayerCamera = __TS__Class()
17
34
  local PlayerCamera = ____exports.PlayerCamera
18
35
  PlayerCamera.name = "PlayerCamera"
19
36
  function PlayerCamera.prototype.____constructor(self, player)
20
37
  local id = getHandleId(player)
21
- if memoized[id] then
22
- error("Double-constructor run player camera!")
23
- end
38
+ check(memoized[id] == nil)
24
39
  memoized[id] = self
25
40
  self.player = player
26
- self.isLocal = player == localPlayer
41
+ self.isLocal = player == PLAYER_LOCAL_HANDLE
27
42
  end
28
43
  function PlayerCamera.prototype.reset(self)
29
44
  if self.isLocal then
30
45
  resetToGameCamera(0)
31
46
  end
32
47
  end
48
+ function PlayerCamera.isUnitInView(self, unit)
49
+ local ____, ____, isInView = ____exports.worldCoordinatesToFrame(unit.x, unit.y, unit.z)
50
+ return isInView
51
+ end
33
52
  function PlayerCamera.of(self, player)
34
53
  return memoized[getHandleId(player)] or __TS__New(____exports.PlayerCamera, player)
35
54
  end
@@ -159,4 +178,103 @@ __TS__SetDescriptor(
159
178
  },
160
179
  true
161
180
  )
181
+ local cameraEyeX = 0
182
+ local cameraEyeY = 0
183
+ local cameraEyeZ = 0
184
+ local cameraAngleOfAttack = 0
185
+ local cameraAngleOfAttackCos = 0
186
+ local cameraAngleOfAttackSin = 0
187
+ local cameraRotation = 0
188
+ local cameraRotationCos = 0
189
+ local cameraRotationSin = 0
190
+ local cameraAngleOfAttackCosRotationCos = 0
191
+ local cameraAngleOfAttackCosRotationSin = 0
192
+ local cameraAngleOfAttackSinRotationCos = 0
193
+ local cameraAngleOfAttackSinRotationSin = 0
194
+ local yCenterScreenShift = 0
195
+ local scaleFactor = 0
196
+ local frameMinX = 0
197
+ local frameMaxX = 0
198
+ local isCameraViewPrecalculated = false
199
+ local function precalculateCameraView()
200
+ cameraEyeX = getCameraEyePositionX()
201
+ cameraEyeY = getCameraEyePositionY()
202
+ cameraEyeZ = getCameraEyePositionZ()
203
+ cameraAngleOfAttack = getCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK)
204
+ cameraAngleOfAttackCos = cos(cameraAngleOfAttack)
205
+ cameraAngleOfAttackSin = sin(cameraAngleOfAttack)
206
+ cameraRotation = getCameraField(CAMERA_FIELD_ROTATION)
207
+ cameraRotationCos = cos(cameraRotation)
208
+ cameraRotationSin = sin(cameraRotation)
209
+ cameraAngleOfAttackCosRotationCos = cameraAngleOfAttackCos * cameraRotationCos
210
+ cameraAngleOfAttackCosRotationSin = cameraAngleOfAttackCos * cameraRotationSin
211
+ cameraAngleOfAttackSinRotationCos = cameraAngleOfAttackSin * cameraRotationCos
212
+ cameraAngleOfAttackSinRotationSin = cameraAngleOfAttackSin * cameraRotationSin
213
+ yCenterScreenShift = 0.1284 * cameraAngleOfAttackCos
214
+ local cameraFieldOfView = getCameraField(CAMERA_FIELD_FIELD_OF_VIEW)
215
+ scaleFactor = 0.0524 * cameraFieldOfView ^ 3 - 0.0283 * cameraFieldOfView ^ 2 + 1.061 * cameraFieldOfView
216
+ frameMinX, frameMaxX = getFrameMinXMaxX()
217
+ isCameraViewPrecalculated = true
218
+ end
219
+ Timer.onPeriod[1 / 64]:addListener(
220
+ 4,
221
+ function()
222
+ isCameraViewPrecalculated = false
223
+ end
224
+ )
225
+ ---
226
+ -- @internal For use by internal systems only.
227
+ ____exports.worldCoordinatesToFrame = function(x, y, z)
228
+ if not isCameraViewPrecalculated then
229
+ precalculateCameraView()
230
+ end
231
+ local dx = x - cameraEyeX
232
+ local dy = y - cameraEyeY
233
+ local dz = z - cameraEyeZ
234
+ local xPrime = scaleFactor * (-cameraAngleOfAttackCosRotationCos * dx - cameraAngleOfAttackCosRotationSin * dy - cameraAngleOfAttackSin * dz)
235
+ local frameX = 0.4 + (cameraRotationCos * dy - cameraRotationSin * dx) / xPrime
236
+ local frameY = 0.42625 - yCenterScreenShift + (cameraAngleOfAttackSinRotationCos * dx + cameraAngleOfAttackSinRotationSin * dy - cameraAngleOfAttackCos * dz) / xPrime
237
+ return frameX, frameY, xPrime < 0 and frameX >= frameMinX and frameX <= frameMaxX and frameY >= FRAME_MIN_Y and frameY <= FRAME_MAX_Y
238
+ end
239
+ ---
240
+ -- @internal For use by internal systems only.
241
+ ____exports.frameCoordinatesToWorld = function(x, y)
242
+ if not isCameraViewPrecalculated then
243
+ precalculateCameraView()
244
+ end
245
+ local a = (x - 0.4) * scaleFactor
246
+ local b = (0.42625 - yCenterScreenShift - y) * scaleFactor
247
+ local nx = 1 / sqrt(1 + a * a + b * b)
248
+ local ny = sqrt(1 - (1 + b * b) * nx * nx)
249
+ local nz = sqrt(1 - nx * nx - ny * ny)
250
+ if a > 0 then
251
+ ny = -ny
252
+ end
253
+ if b < 0 then
254
+ nz = -nz
255
+ end
256
+ local nxPrime = cameraAngleOfAttackCosRotationCos * nx - cameraRotationSin * ny + cameraAngleOfAttackSinRotationCos * nz
257
+ local nyPrime = cameraAngleOfAttackCosRotationSin * nx + cameraRotationCos * ny + cameraAngleOfAttackSinRotationSin * nz
258
+ local nzPrime = -cameraAngleOfAttackSin * nx + cameraAngleOfAttackCos * nz
259
+ local zGuess = getTerrainZ(cameraEyeX, cameraEyeY)
260
+ local xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
261
+ local yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
262
+ local zWorld = getTerrainZ(xGuess, yGuess)
263
+ local deltaZ = zWorld - zGuess
264
+ zGuess = zWorld
265
+ local zWorldOld = zWorld
266
+ local deltaZOld = deltaZ
267
+ local i = 0
268
+ while (deltaZ > 1 or deltaZ < -1) and i < 50 do
269
+ xGuess = cameraEyeX + nxPrime * (cameraEyeZ - zGuess) / nzPrime
270
+ yGuess = cameraEyeY + nyPrime * (cameraEyeZ - zGuess) / nzPrime
271
+ zWorld = getTerrainZ(xGuess, yGuess)
272
+ deltaZ = zWorld - zGuess
273
+ zGuess = (deltaZOld * zWorld - deltaZ * zWorldOld) / (deltaZOld - deltaZ)
274
+ zWorldOld = zWorld
275
+ deltaZOld = deltaZ
276
+ i = i + 1
277
+ end
278
+ return xGuess, yGuess, zWorld, i < 50
279
+ end
162
280
  return ____exports
@@ -10,6 +10,7 @@ local ____color = require("core.types.color")
10
10
  local Color = ____color.Color
11
11
  local ____exception = require("exception")
12
12
  local IllegalStateException = ____exception.IllegalStateException
13
+ local getHandleId = GetHandleId
13
14
  local byId = {}
14
15
  local byName = {}
15
16
  ____exports.PlayerColor = __TS__Class()
@@ -81,7 +82,7 @@ PlayerColor.data = util.contextFn(
81
82
  PLAYER_COLOR_SNOW,
82
83
  PLAYER_COLOR_EMERALD,
83
84
  PLAYER_COLOR_PEANUT,
84
- ConvertPlayerColor(PLAYER_NEUTRAL_AGGRESSIVE)
85
+ PLAYER_COLOR_BLACK
85
86
  }
86
87
  local rgbaColors = {
87
88
  Color:of(255, 2, 2),
@@ -141,7 +142,7 @@ PlayerColor.data = util.contextFn(
141
142
  do
142
143
  local i = 0
143
144
  while i < #handles do
144
- data[GetHandleId(handles[i + 1])] = {rgba = rgbaColors[i + 1], name = names[i + 1]}
145
+ data[getHandleId(handles[i + 1])] = {rgba = rgbaColors[i + 1], name = names[i + 1]}
145
146
  i = i + 1
146
147
  end
147
148
  end
@@ -172,7 +173,7 @@ PlayerColor.coal = ____exports.PlayerColor:of(PLAYER_COLOR_COAL)
172
173
  PlayerColor.snow = ____exports.PlayerColor:of(PLAYER_COLOR_SNOW)
173
174
  PlayerColor.emerald = ____exports.PlayerColor:of(PLAYER_COLOR_EMERALD)
174
175
  PlayerColor.peanut = ____exports.PlayerColor:of(PLAYER_COLOR_PEANUT)
175
- PlayerColor.black = ____exports.PlayerColor:of(ConvertPlayerColor(PLAYER_NEUTRAL_AGGRESSIVE))
176
+ PlayerColor.black = ____exports.PlayerColor:of(PLAYER_COLOR_BLACK)
176
177
  PlayerColor.all = {
177
178
  ____exports.PlayerColor.red,
178
179
  ____exports.PlayerColor.blue,
@@ -1,6 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { Handle, HandleDestructor } from "./handle";
3
3
  import { Unit } from "./unit";
4
+ import { SoundEax } from "../../engine/object-data/auxiliary/sound-eax";
4
5
  export declare enum SoundChannel {
5
6
  General = 0,
6
7
  UnitSelection = 1,
@@ -18,16 +19,7 @@ export declare enum SoundChannel {
18
19
  Birth = 13,
19
20
  Fire = 14
20
21
  }
21
- export declare enum SoundEax {
22
- Default = "DefaultEAXON",
23
- Acknowledgements = "HeroAcksEAX",
24
- Environment = "DoodadsEAX",
25
- Drums = "KotoDrumsEAX",
26
- Attacks = "CombatSoundsEAX",
27
- Abilities = "SpellsEAX",
28
- Missiles = "MissilesEAX"
29
- }
30
- export type SoundPreset = Readonly<{
22
+ export type SoundSettings = Readonly<{
31
23
  channel?: SoundChannel;
32
24
  eax?: SoundEax;
33
25
  fadeInRate?: number;
@@ -36,34 +28,35 @@ export type SoundPreset = Readonly<{
36
28
  volume?: number;
37
29
  pitch?: number;
38
30
  }>;
39
- export type Sound3DPreset = SoundPreset & Readonly<{
31
+ export type Sound3DSettings = SoundSettings & Readonly<{
40
32
  stopWhenOutOfRange?: boolean;
41
33
  minDistance?: number;
42
34
  maxDistance?: number;
43
35
  distanceCutoff?: number;
44
36
  }>;
45
- export declare namespace SoundPreset {
46
- const UI: SoundPreset;
47
- const Music: SoundPreset;
48
- const Attack: Sound3DPreset;
49
- const Ability: Sound3DPreset;
50
- const AbilityLooping: Sound3DPreset;
51
- const Missile: Sound3DPreset;
37
+ export declare namespace SoundSettings {
38
+ const UI: SoundSettings;
39
+ const Music: SoundSettings;
40
+ const Attack: Sound3DSettings;
41
+ const Ability: Sound3DSettings;
42
+ const AbilityLooping: Sound3DSettings;
43
+ const Missile: Sound3DSettings;
52
44
  }
53
45
  export declare class Sound extends Handle<jsound, [fadeOut?: boolean]> {
54
46
  private _volume?;
55
47
  protected onDestroy(fadeOut?: boolean): HandleDestructor;
56
48
  get volume(): number;
57
49
  set volume(v: number);
58
- start(milliseconds?: number): void;
50
+ start(milliseconds?: number, fadeIn?: boolean): void;
59
51
  stop(fadeOut?: boolean): void;
60
52
  restart(milliseconds?: number): void;
61
- static play(fileName: string, preset: SoundPreset): void;
62
- static create(fileName: string, preset: SoundPreset): Sound;
53
+ static play(fileName: string, preset: SoundSettings): void;
54
+ static create(fileName: string, preset: SoundSettings): Sound;
63
55
  }
64
56
  export declare class Sound3D extends Sound {
65
- static playAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): void;
66
- static playOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): void;
67
- static createAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): Sound3D;
68
- static createOnUnit(fileName: string, preset: Sound3DPreset, unit: Unit): Sound3D;
57
+ static playAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): void;
58
+ static playOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): void;
59
+ static playFromLabel(label: string, preset: Sound3DSettings, ...positionOrUnit: [Unit] | [number, number, number?]): void;
60
+ static createAtPosition(fileName: string, preset: Sound3DSettings, x?: number, y?: number, z?: number): Sound3D;
61
+ static createOnUnit(fileName: string, preset: Sound3DSettings, unit: Unit): Sound3D;
69
62
  }
@@ -5,21 +5,25 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local ____exports = {}
6
6
  local ____handle = require("core.types.handle")
7
7
  local Handle = ____handle.Handle
8
+ local ____sound_2Dpreset = require("engine.object-data.entry.sound-preset")
9
+ local SoundPreset = ____sound_2Dpreset.SoundPreset
10
+ local ____random = require("engine.random")
11
+ local randomInteger = ____random.randomInteger
12
+ local attachSoundToUnit = AttachSoundToUnit
8
13
  local createSound = CreateSound
9
- local setSoundPitch = SetSoundPitch
14
+ local createSoundFromLabel = CreateSoundFromLabel
15
+ local killSoundWhenDone = KillSoundWhenDone
10
16
  local setSoundChannel = SetSoundChannel
17
+ local setSoundDistanceCutoff = SetSoundDistanceCutoff
18
+ local setSoundDistances = SetSoundDistances
19
+ local setSoundPitch = SetSoundPitch
20
+ local setSoundPlayPosition = SetSoundPlayPosition
11
21
  local setSoundPosition = SetSoundPosition
12
22
  local setSoundVolume = SetSoundVolume
13
- local setSoundDistances = SetSoundDistances
14
- local setSoundDistanceCutoff = SetSoundDistanceCutoff
15
- local setSoundConeAngles = SetSoundConeAngles
16
- local setSoundConeOrientation = SetSoundConeOrientation
17
23
  local startSound = StartSound
18
- local setSoundPlayPosition = SetSoundPlayPosition
24
+ local startSoundEx = StartSoundEx
19
25
  local stopSound = StopSound
20
- local attachSoundToUnit = AttachSoundToUnit
21
- local killSoundWhenDone = KillSoundWhenDone
22
- ____exports.SoundChannel = SoundChannel or ({})
26
+ ____exports.SoundChannel = ____exports.SoundChannel or ({})
23
27
  ____exports.SoundChannel.General = 0
24
28
  ____exports.SoundChannel[____exports.SoundChannel.General] = "General"
25
29
  ____exports.SoundChannel.UnitSelection = 1
@@ -50,29 +54,21 @@ ____exports.SoundChannel.Birth = 13
50
54
  ____exports.SoundChannel[____exports.SoundChannel.Birth] = "Birth"
51
55
  ____exports.SoundChannel.Fire = 14
52
56
  ____exports.SoundChannel[____exports.SoundChannel.Fire] = "Fire"
53
- ____exports.SoundEax = SoundEax or ({})
54
- ____exports.SoundEax.Default = "DefaultEAXON"
55
- ____exports.SoundEax.Acknowledgements = "HeroAcksEAX"
56
- ____exports.SoundEax.Environment = "DoodadsEAX"
57
- ____exports.SoundEax.Drums = "KotoDrumsEAX"
58
- ____exports.SoundEax.Attacks = "CombatSoundsEAX"
59
- ____exports.SoundEax.Abilities = "SpellsEAX"
60
- ____exports.SoundEax.Missiles = "MissilesEAX"
61
- ____exports.SoundPreset = {}
62
- local SoundPreset = ____exports.SoundPreset
57
+ ____exports.SoundSettings = {}
58
+ local SoundSettings = ____exports.SoundSettings
63
59
  do
64
- SoundPreset.UI = {channel = ____exports.SoundChannel.UI, eax = ____exports.SoundEax.Default, fadeInRate = 12700, fadeOutRate = 12700}
65
- SoundPreset.Music = {
60
+ SoundSettings.UI = {channel = ____exports.SoundChannel.UI, eax = "DefaultEAXON", fadeInRate = 12700, fadeOutRate = 12700}
61
+ SoundSettings.Music = {
66
62
  channel = ____exports.SoundChannel.Music,
67
- eax = ____exports.SoundEax.Default,
63
+ eax = "DefaultEAXON",
68
64
  fadeInRate = 12700,
69
65
  fadeOutRate = 12700,
70
66
  looping = true
71
67
  }
72
- SoundPreset.Attack = {channel = ____exports.SoundChannel.Combat, eax = ____exports.SoundEax.Attacks, fadeInRate = 10, fadeOutRate = 10}
73
- SoundPreset.Ability = {
68
+ SoundSettings.Attack = {channel = ____exports.SoundChannel.Combat, eax = "CombatSoundsEAX", fadeInRate = 10, fadeOutRate = 10}
69
+ SoundSettings.Ability = {
74
70
  channel = ____exports.SoundChannel.Animations,
75
- eax = ____exports.SoundEax.Abilities,
71
+ eax = "SpellsEAX",
76
72
  stopWhenOutOfRange = true,
77
73
  volume = 127,
78
74
  fadeInRate = 1,
@@ -82,9 +78,9 @@ do
82
78
  maxDistance = 3500,
83
79
  distanceCutoff = 3000
84
80
  }
85
- SoundPreset.AbilityLooping = {
81
+ SoundSettings.AbilityLooping = {
86
82
  channel = ____exports.SoundChannel.Birth,
87
- eax = ____exports.SoundEax.Abilities,
83
+ eax = "SpellsEAX",
88
84
  looping = true,
89
85
  stopWhenOutOfRange = true,
90
86
  volume = 127,
@@ -95,9 +91,9 @@ do
95
91
  maxDistance = 3000,
96
92
  distanceCutoff = 3000
97
93
  }
98
- SoundPreset.Missile = {
94
+ SoundSettings.Missile = {
99
95
  channel = ____exports.SoundChannel.Animations,
100
- eax = ____exports.SoundEax.Missiles,
96
+ eax = "MissilesEAX",
101
97
  stopWhenOutOfRange = true,
102
98
  volume = 127,
103
99
  fadeInRate = 1,
@@ -108,6 +104,29 @@ do
108
104
  distanceCutoff = 3000
109
105
  }
110
106
  end
107
+ local customSoundPresetDataByLabel = postcompile(function()
108
+ local customSoundPresetDataByLabel = {}
109
+ for ____, soundPreset in ipairs(SoundPreset:getAll()) do
110
+ if soundPreset.isCustom then
111
+ customSoundPresetDataByLabel[soundPreset.id] = {
112
+ filePaths = soundPreset.filePaths,
113
+ volume = soundPreset.volume,
114
+ pitch = soundPreset.pitch,
115
+ channel = soundPreset.channel,
116
+ minimumDistance = soundPreset.minimumDistance,
117
+ maximumDistance = soundPreset.maximumDistance,
118
+ distanceCutoff = soundPreset.distanceCutoff,
119
+ eax = soundPreset.eax
120
+ }
121
+ end
122
+ end
123
+ return customSoundPresetDataByLabel
124
+ end)
125
+ ---
126
+ -- @internal For use by internal systems only.
127
+ ____exports.isSoundLabelCustom = function(label)
128
+ return customSoundPresetDataByLabel[label] ~= nil
129
+ end
111
130
  local function createPresetSound(fileName, preset)
112
131
  local ____fileName_1 = fileName
113
132
  local ____preset_looping_0 = preset.looping
@@ -121,7 +140,7 @@ local function createPresetSound(fileName, preset)
121
140
  true,
122
141
  preset.fadeInRate or 12700,
123
142
  preset.fadeOutRate or 12700,
124
- preset.eax or ____exports.SoundEax.Default
143
+ preset.eax or "DefaultEAXON"
125
144
  )
126
145
  setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
127
146
  setSoundVolume(sound, preset.volume or 127)
@@ -144,7 +163,7 @@ local function createPreset3DSound(fileName, preset)
144
163
  ____preset_stopWhenOutOfRange_3,
145
164
  preset.fadeInRate or 12700,
146
165
  preset.fadeOutRate or 12700,
147
- preset.eax or ____exports.SoundEax.Default
166
+ preset.eax or "DefaultEAXON"
148
167
  )
149
168
  setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
150
169
  setSoundVolume(sound, preset.volume or 127)
@@ -153,6 +172,53 @@ local function createPreset3DSound(fileName, preset)
153
172
  setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
154
173
  return sound
155
174
  end
175
+ local function createPreset3DSoundFromLabel(label, preset)
176
+ local customSoundPresetData = customSoundPresetDataByLabel[label]
177
+ if customSoundPresetData == nil then
178
+ local ____label_7 = label
179
+ local ____preset_looping_5 = preset.looping
180
+ if ____preset_looping_5 == nil then
181
+ ____preset_looping_5 = false
182
+ end
183
+ local ____preset_stopWhenOutOfRange_6 = preset.stopWhenOutOfRange
184
+ if ____preset_stopWhenOutOfRange_6 == nil then
185
+ ____preset_stopWhenOutOfRange_6 = true
186
+ end
187
+ return createSoundFromLabel(
188
+ ____label_7,
189
+ ____preset_looping_5,
190
+ true,
191
+ ____preset_stopWhenOutOfRange_6,
192
+ preset.fadeInRate or 12700,
193
+ preset.fadeOutRate or 12700
194
+ )
195
+ else
196
+ local ____customSoundPresetData_filePaths_index_10 = customSoundPresetData.filePaths[randomInteger(#customSoundPresetData.filePaths - 1) + 1]
197
+ local ____preset_looping_8 = preset.looping
198
+ if ____preset_looping_8 == nil then
199
+ ____preset_looping_8 = false
200
+ end
201
+ local ____preset_stopWhenOutOfRange_9 = preset.stopWhenOutOfRange
202
+ if ____preset_stopWhenOutOfRange_9 == nil then
203
+ ____preset_stopWhenOutOfRange_9 = true
204
+ end
205
+ local sound = createSound(
206
+ ____customSoundPresetData_filePaths_index_10,
207
+ ____preset_looping_8,
208
+ true,
209
+ ____preset_stopWhenOutOfRange_9,
210
+ preset.fadeInRate or 12700,
211
+ preset.fadeOutRate or 12700,
212
+ customSoundPresetData.eax
213
+ )
214
+ setSoundChannel(sound, customSoundPresetData.channel)
215
+ setSoundVolume(sound, customSoundPresetData.volume)
216
+ setSoundPitch(sound, customSoundPresetData.pitch)
217
+ setSoundDistances(sound, customSoundPresetData.minimumDistance, customSoundPresetData.maximumDistance)
218
+ setSoundDistanceCutoff(sound, customSoundPresetData.distanceCutoff)
219
+ return sound
220
+ end
221
+ end
156
222
  ____exports.Sound = __TS__Class()
157
223
  local Sound = ____exports.Sound
158
224
  Sound.name = "Sound"
@@ -161,8 +227,12 @@ function Sound.prototype.onDestroy(self, fadeOut)
161
227
  stopSound(self.handle, true, fadeOut or false)
162
228
  return Handle.prototype.onDestroy(self)
163
229
  end
164
- function Sound.prototype.start(self, milliseconds)
165
- startSound(self.handle)
230
+ function Sound.prototype.start(self, milliseconds, fadeIn)
231
+ if fadeIn == nil then
232
+ startSound(self.handle)
233
+ else
234
+ startSoundEx(self.handle, fadeIn)
235
+ end
166
236
  if milliseconds then
167
237
  setSoundPlayPosition(self.handle, milliseconds)
168
238
  end
@@ -225,6 +295,16 @@ function Sound3D.playOnUnit(self, fileName, preset, unit)
225
295
  startSound(sound)
226
296
  killSoundWhenDone(sound)
227
297
  end
298
+ function Sound3D.playFromLabel(self, label, preset, unitOrX, y, z)
299
+ local sound = createPreset3DSoundFromLabel(label, preset)
300
+ if type(unitOrX) ~= "number" then
301
+ attachSoundToUnit(sound, unitOrX.handle)
302
+ else
303
+ setSoundPosition(sound, unitOrX, y or 0, z or 0)
304
+ end
305
+ startSound(sound)
306
+ killSoundWhenDone(sound)
307
+ end
228
308
  function Sound3D.createAtPosition(self, fileName, preset, x, y, z)
229
309
  if x == nil then
230
310
  x = 0
@@ -1,10 +1,20 @@
1
1
  /** @noSelfInFile */
2
- export declare class TileCell implements Readonly<Vec2> {
2
+ import { AttributesHolder } from "../../attributes";
3
+ export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
3
4
  private readonly id;
4
5
  readonly x: number;
5
6
  readonly y: number;
6
7
  readonly z: undefined;
7
8
  protected constructor(id: number, x: number, y: number, z: undefined);
9
+ get up(): TileCell;
10
+ get down(): TileCell;
11
+ get left(): TileCell;
12
+ get right(): TileCell;
13
+ get terrainTypeId(): number;
14
+ set terrainTypeId(terrainTypeId: number);
15
+ get terrainVariance(): number;
16
+ set terrainVariance(terrainVariance: number);
17
+ randomizeTerrainVariance(): void;
8
18
  isInRangeOf(x: number, y: number, range: number): boolean;
9
19
  isInRangeOf(tileCell: TileCell, range: number): boolean;
10
20
  static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
@@ -1,7 +1,14 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
3
4
  local __TS__New = ____lualib.__TS__New
5
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
6
  local ____exports = {}
7
+ local ____attributes = require("attributes")
8
+ local AttributesHolder = ____attributes.AttributesHolder
9
+ local getTerrainType = GetTerrainType
10
+ local setTerrainType = SetTerrainType
11
+ local getTerrainVariance = GetTerrainVariance
5
12
  local abs = math.abs
6
13
  local ____type = math.type
7
14
  local ult = math.ult
@@ -9,13 +16,27 @@ local tileCellById = {}
9
16
  ____exports.TileCell = __TS__Class()
10
17
  local TileCell = ____exports.TileCell
11
18
  TileCell.name = "TileCell"
19
+ __TS__ClassExtends(TileCell, AttributesHolder)
12
20
  function TileCell.prototype.____constructor(self, id, x, y, z)
21
+ AttributesHolder.prototype.____constructor(self)
13
22
  self.id = id
14
23
  self.x = x
15
24
  self.y = y
16
25
  self.z = z
17
26
  tileCellById[id] = self
18
27
  end
28
+ function TileCell.prototype.randomizeTerrainVariance(self)
29
+ local x = self.x
30
+ local y = self.y
31
+ setTerrainType(
32
+ x,
33
+ y,
34
+ getTerrainType(x, y),
35
+ -1,
36
+ 1,
37
+ 1
38
+ )
39
+ end
19
40
  function TileCell.prototype.isInRangeOf(self, x, y, range)
20
41
  if range == nil then
21
42
  range = y
@@ -97,4 +118,80 @@ function TileCell.of(x, y)
97
118
  nil
98
119
  )
99
120
  end
121
+ __TS__SetDescriptor(
122
+ TileCell.prototype,
123
+ "up",
124
+ {get = function(self)
125
+ return ____exports.TileCell.of(self.x, self.y + 128)
126
+ end},
127
+ true
128
+ )
129
+ __TS__SetDescriptor(
130
+ TileCell.prototype,
131
+ "down",
132
+ {get = function(self)
133
+ return ____exports.TileCell.of(self.x, self.y - 128)
134
+ end},
135
+ true
136
+ )
137
+ __TS__SetDescriptor(
138
+ TileCell.prototype,
139
+ "left",
140
+ {get = function(self)
141
+ return ____exports.TileCell.of(self.x - 128, self.y)
142
+ end},
143
+ true
144
+ )
145
+ __TS__SetDescriptor(
146
+ TileCell.prototype,
147
+ "right",
148
+ {get = function(self)
149
+ return ____exports.TileCell.of(self.x + 128, self.y)
150
+ end},
151
+ true
152
+ )
153
+ __TS__SetDescriptor(
154
+ TileCell.prototype,
155
+ "terrainTypeId",
156
+ {
157
+ get = function(self)
158
+ return getTerrainType(self.x, self.y)
159
+ end,
160
+ set = function(self, terrainTypeId)
161
+ local x = self.x
162
+ local y = self.y
163
+ setTerrainType(
164
+ x,
165
+ y,
166
+ terrainTypeId,
167
+ getTerrainVariance(x, y),
168
+ 1,
169
+ 1
170
+ )
171
+ end
172
+ },
173
+ true
174
+ )
175
+ __TS__SetDescriptor(
176
+ TileCell.prototype,
177
+ "terrainVariance",
178
+ {
179
+ get = function(self)
180
+ return getTerrainVariance(self.x, self.y)
181
+ end,
182
+ set = function(self, terrainVariance)
183
+ local x = self.x
184
+ local y = self.y
185
+ setTerrainType(
186
+ x,
187
+ y,
188
+ getTerrainType(x, y),
189
+ terrainVariance,
190
+ 1,
191
+ 1
192
+ )
193
+ end
194
+ },
195
+ true
196
+ )
100
197
  return ____exports