warscript 0.0.1-dev.75f6e33 → 0.0.1-dev.7769f27

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 (407) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/dummy.lua +4 -2
  4. package/core/types/effect.d.ts +12 -4
  5. package/core/types/effect.lua +67 -104
  6. package/core/types/frame.d.ts +16 -2
  7. package/core/types/frame.lua +141 -77
  8. package/core/types/handle.lua +9 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/player.d.ts +18 -1
  12. package/core/types/player.lua +76 -26
  13. package/core/types/playerCamera.d.ts +2 -0
  14. package/core/types/playerCamera.lua +123 -5
  15. package/core/types/playerColor.lua +4 -3
  16. package/core/types/sound.d.ts +18 -26
  17. package/core/types/sound.lua +99 -53
  18. package/core/types/tileCell.d.ts +18 -3
  19. package/core/types/tileCell.lua +108 -0
  20. package/core/types/timer.d.ts +9 -8
  21. package/core/types/timer.lua +45 -23
  22. package/core/types/unit.d.ts +5 -0
  23. package/core/types/unit.lua +5 -0
  24. package/core/util.d.ts +3 -1
  25. package/core/util.lua +109 -3
  26. package/decl/native.d.ts +1718 -964
  27. package/destroyable.d.ts +1 -0
  28. package/destroyable.lua +9 -0
  29. package/engine/ability-type-extended-tooltip.d.ts +8 -0
  30. package/engine/ability-type-extended-tooltip.lua +44 -0
  31. package/engine/behavior.d.ts +14 -1
  32. package/engine/behavior.lua +230 -70
  33. package/engine/behaviour/ability/apply-buff.lua +5 -5
  34. package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
  35. package/engine/behaviour/ability/damage.d.ts +13 -3
  36. package/engine/behaviour/ability/damage.lua +41 -49
  37. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  38. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  39. package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
  40. package/engine/behaviour/ability/on-command-impact.lua +1 -0
  41. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  42. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  43. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  44. package/engine/behaviour/ability/restore-mana.lua +6 -6
  45. package/engine/behaviour/ability.d.ts +17 -6
  46. package/engine/behaviour/ability.lua +81 -21
  47. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  48. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  49. package/engine/behaviour/unit.d.ts +41 -2
  50. package/engine/behaviour/unit.lua +270 -6
  51. package/engine/buff.d.ts +79 -27
  52. package/engine/buff.lua +454 -186
  53. package/engine/index.d.ts +2 -1
  54. package/engine/internal/ability.d.ts +14 -1
  55. package/engine/internal/ability.lua +113 -44
  56. package/engine/internal/item/ability.lua +63 -11
  57. package/engine/internal/item/fields.d.ts +12 -0
  58. package/engine/internal/item/fields.lua +33 -0
  59. package/engine/internal/item/owner-cache.d.ts +5 -0
  60. package/engine/internal/item/owner-cache.lua +4 -0
  61. package/engine/internal/item+owner.d.ts +2 -0
  62. package/engine/internal/item+owner.lua +37 -8
  63. package/engine/internal/item.d.ts +32 -16
  64. package/engine/internal/item.lua +257 -82
  65. package/engine/internal/mechanics/ability-duration.lua +1 -1
  66. package/engine/internal/mechanics/cast-ability.lua +6 -3
  67. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  68. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  69. package/engine/internal/misc/frame-coordinates.lua +21 -0
  70. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  71. package/engine/internal/misc/get-terrain-z.lua +11 -0
  72. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  73. package/engine/internal/misc/player-local-handle.lua +5 -0
  74. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  75. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  76. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  77. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  78. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  79. package/engine/internal/object-data/health-bonus.lua +16 -0
  80. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  81. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  82. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  83. package/engine/internal/object-data/mana-bonus.lua +16 -0
  84. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  85. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  86. package/engine/internal/unit/ability.d.ts +35 -0
  87. package/engine/internal/unit/ability.lua +98 -9
  88. package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
  89. package/engine/internal/unit/add-item-to-slot.lua +53 -12
  90. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  91. package/engine/internal/unit/allowed-targets.lua +9 -1
  92. package/engine/internal/unit/appearance.d.ts +15 -0
  93. package/engine/internal/unit/appearance.lua +85 -0
  94. package/engine/internal/unit/attributes.d.ts +17 -0
  95. package/engine/internal/unit/attributes.lua +46 -0
  96. package/engine/internal/unit/bonus.d.ts +14 -0
  97. package/engine/internal/unit/bonus.lua +102 -8
  98. package/engine/internal/unit/buff.d.ts +2 -2
  99. package/engine/internal/unit/buff.lua +34 -19
  100. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  101. package/engine/internal/unit/equipment-inventory.lua +233 -0
  102. package/engine/internal/unit/expiration-timer.lua +1 -1
  103. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  104. package/engine/internal/unit/extended-inventory.lua +99 -0
  105. package/engine/internal/unit/fly-height.d.ts +7 -0
  106. package/engine/internal/unit/fly-height.lua +20 -0
  107. package/engine/internal/unit/ignore-events-items.lua +10 -1
  108. package/engine/internal/unit/interrupts.d.ts +12 -0
  109. package/engine/internal/unit/interrupts.lua +28 -0
  110. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
  111. package/engine/internal/unit/inventory.lua +87 -0
  112. package/engine/internal/unit/item-container.d.ts +25 -0
  113. package/engine/internal/unit/item-container.lua +11 -0
  114. package/engine/internal/unit/item-order-events.d.ts +17 -0
  115. package/engine/internal/unit/item-order-events.lua +67 -0
  116. package/engine/internal/unit/item-slot.d.ts +27 -0
  117. package/engine/internal/unit/item-slot.lua +92 -0
  118. package/engine/internal/unit/main-selected.lua +12 -27
  119. package/engine/internal/unit/order.d.ts +20 -0
  120. package/engine/internal/unit/order.lua +136 -0
  121. package/engine/internal/unit/range-event.d.ts +12 -0
  122. package/engine/internal/unit/range-event.lua +90 -0
  123. package/engine/internal/unit/scale.d.ts +7 -0
  124. package/engine/internal/unit/scale.lua +20 -0
  125. package/engine/internal/unit+ability.d.ts +2 -1
  126. package/engine/internal/unit+ability.lua +73 -3
  127. package/engine/internal/unit+bonus.lua +3 -3
  128. package/engine/internal/unit+damage.d.ts +11 -11
  129. package/engine/internal/unit+damage.lua +43 -14
  130. package/engine/internal/unit+rally.lua +9 -31
  131. package/engine/internal/unit+spellSteal.lua +1 -2
  132. package/engine/internal/unit-missile-data.lua +58 -32
  133. package/engine/internal/unit-missile-launch.lua +65 -27
  134. package/engine/internal/unit.d.ts +44 -34
  135. package/engine/internal/unit.lua +398 -324
  136. package/engine/local-client.d.ts +28 -0
  137. package/engine/local-client.lua +324 -54
  138. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  139. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  140. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
  141. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  142. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  143. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  144. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  145. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  146. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  147. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  148. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  149. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  150. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  151. package/engine/object-data/auxiliary/item-class.lua +2 -0
  152. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  153. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  154. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  155. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  156. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  157. package/engine/object-data/auxiliary/order-type.lua +2 -0
  158. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  159. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  160. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  161. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  162. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  163. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  164. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  165. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  166. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  167. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  168. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  169. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  170. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  171. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  172. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  173. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  174. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  175. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  176. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  177. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  178. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  179. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
  180. package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
  181. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
  182. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  183. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  184. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  185. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  186. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  187. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  188. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  189. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  190. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  191. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  192. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  193. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  194. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  195. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  196. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  197. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  198. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  199. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  200. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  201. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  202. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  203. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  204. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  205. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  206. package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
  207. package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
  208. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  209. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  210. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  211. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  212. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  213. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  214. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  215. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  216. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  217. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  218. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  219. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  220. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  221. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  222. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  223. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  224. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  225. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  226. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  228. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  229. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  230. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  231. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  232. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  233. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  234. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  235. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  236. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  237. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  238. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  239. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  240. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  241. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  242. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  243. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  244. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  245. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  246. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  247. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  248. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  249. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  250. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  251. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  252. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  253. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  254. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  255. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  256. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  257. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  258. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  259. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  260. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  261. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  262. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  263. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  264. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  265. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  266. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  267. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  268. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  269. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  270. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  271. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  272. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  273. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  274. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  275. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  276. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  277. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  278. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  279. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  280. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  281. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  282. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  283. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  284. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  285. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  286. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  288. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  289. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  290. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  291. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  292. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  293. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  294. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  295. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  296. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  297. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  298. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  299. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  300. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  301. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  302. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  303. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  304. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  305. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  306. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  307. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  308. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  309. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  310. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  311. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  312. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  313. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  314. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  315. package/engine/object-data/entry/ability-type/web.lua +52 -0
  316. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  317. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  318. package/engine/object-data/entry/ability-type.d.ts +40 -15
  319. package/engine/object-data/entry/ability-type.lua +318 -21
  320. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  321. package/engine/object-data/entry/buff-type.d.ts +10 -12
  322. package/engine/object-data/entry/buff-type.lua +37 -27
  323. package/engine/object-data/entry/destructible-type.d.ts +32 -2
  324. package/engine/object-data/entry/destructible-type.lua +181 -0
  325. package/engine/object-data/entry/item-type.d.ts +18 -3
  326. package/engine/object-data/entry/item-type.lua +84 -0
  327. package/engine/object-data/entry/lightning-type.d.ts +6 -8
  328. package/engine/object-data/entry/lightning-type.lua +1 -1
  329. package/engine/object-data/entry/sound-preset.d.ts +19 -2
  330. package/engine/object-data/entry/sound-preset.lua +104 -0
  331. package/engine/object-data/entry/unit-type.d.ts +64 -6
  332. package/engine/object-data/entry/unit-type.lua +531 -85
  333. package/engine/object-data/entry/upgrade.d.ts +2 -2
  334. package/engine/object-data/entry.d.ts +6 -1
  335. package/engine/object-data/entry.lua +8 -0
  336. package/engine/object-field/ability.d.ts +4 -4
  337. package/engine/object-field/ability.lua +9 -8
  338. package/engine/object-field/item.d.ts +22 -0
  339. package/engine/object-field/item.lua +118 -0
  340. package/engine/object-field/unit.d.ts +72 -3
  341. package/engine/object-field/unit.lua +268 -7
  342. package/engine/object-field.d.ts +26 -7
  343. package/engine/object-field.lua +360 -119
  344. package/engine/random.d.ts +10 -0
  345. package/engine/random.lua +21 -0
  346. package/engine/standard/entries/ability-type.d.ts +3102 -7
  347. package/engine/standard/entries/ability-type.lua +0 -6
  348. package/engine/standard/entries/buff-type.d.ts +48 -0
  349. package/engine/standard/entries/buff-type.lua +46 -0
  350. package/engine/standard/entries/item-type.d.ts +1299 -0
  351. package/engine/standard/entries/item-type.lua +2 -0
  352. package/engine/standard/entries/lightning-type.d.ts +42 -15
  353. package/engine/standard/entries/lightning-type.lua +0 -14
  354. package/engine/standard/entries/unit-type.d.ts +5 -0
  355. package/engine/standard/entries/unit-type.lua +5 -0
  356. package/engine/standard/fields/ability.d.ts +2 -2
  357. package/engine/standard/fields/ability.lua +2 -2
  358. package/engine/standard/fields/item.d.ts +4 -0
  359. package/engine/standard/fields/item.lua +6 -0
  360. package/engine/standard/fields/unit.d.ts +12 -0
  361. package/engine/standard/fields/unit.lua +20 -0
  362. package/engine/synchronization.d.ts +11 -0
  363. package/engine/synchronization.lua +77 -0
  364. package/engine/text-tag.d.ts +36 -2
  365. package/engine/text-tag.lua +250 -10
  366. package/engine/unit.d.ts +11 -1
  367. package/engine/unit.lua +11 -1
  368. package/event.d.ts +1 -1
  369. package/lualib_bundle.lua +1 -1
  370. package/math.d.ts +2 -0
  371. package/math.lua +14 -0
  372. package/net/socket.lua +1 -1
  373. package/network.lua +25 -1
  374. package/objutil/buff.lua +12 -11
  375. package/objutil/object.lua +1 -1
  376. package/operation.d.ts +8 -1
  377. package/operation.lua +38 -18
  378. package/package.json +3 -23
  379. package/patch-lua.lua +15 -0
  380. package/patch-lualib.lua +1 -1
  381. package/utility/arrays.d.ts +9 -1
  382. package/utility/arrays.lua +28 -0
  383. package/utility/callback-array.d.ts +17 -0
  384. package/utility/callback-array.lua +61 -0
  385. package/utility/functions.d.ts +8 -0
  386. package/utility/functions.lua +13 -0
  387. package/utility/linked-map.d.ts +35 -0
  388. package/utility/linked-map.lua +107 -0
  389. package/utility/linked-set.d.ts +5 -1
  390. package/utility/linked-set.lua +49 -1
  391. package/utility/lua-maps.d.ts +15 -2
  392. package/utility/lua-maps.lua +53 -2
  393. package/utility/lua-sets.d.ts +2 -0
  394. package/utility/lua-sets.lua +7 -0
  395. package/utility/random.d.ts +102 -0
  396. package/utility/random.lua +273 -0
  397. package/utility/records.lua +20 -1
  398. package/utility/types.d.ts +3 -0
  399. package/utility/unordered-map.d.ts +27 -0
  400. package/utility/unordered-map.lua +99 -0
  401. package/core/types/order.d.ts +0 -25
  402. package/core/types/order.lua +0 -55
  403. package/engine/internal/unit/item.lua +0 -78
  404. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  405. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  406. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  407. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -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,35 +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 playFromLabel(label: string, preset: Sound3DPreset, ...positionOrUnit: [Unit] | [number, number, number?]): void;
68
- static createAtPosition(fileName: string, preset: Sound3DPreset, x?: number, y?: number, z?: number): Sound3D;
69
- 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;
70
62
  }
@@ -5,20 +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
14
  local createSoundFromLabel = CreateSoundFromLabel
10
- local setSoundPitch = SetSoundPitch
15
+ local killSoundWhenDone = KillSoundWhenDone
11
16
  local setSoundChannel = SetSoundChannel
17
+ local setSoundDistanceCutoff = SetSoundDistanceCutoff
18
+ local setSoundDistances = SetSoundDistances
19
+ local setSoundPitch = SetSoundPitch
20
+ local setSoundPlayPosition = SetSoundPlayPosition
12
21
  local setSoundPosition = SetSoundPosition
13
22
  local setSoundVolume = SetSoundVolume
14
- local setSoundDistances = SetSoundDistances
15
- local setSoundDistanceCutoff = SetSoundDistanceCutoff
16
23
  local startSound = StartSound
17
- local setSoundPlayPosition = SetSoundPlayPosition
24
+ local startSoundEx = StartSoundEx
18
25
  local stopSound = StopSound
19
- local attachSoundToUnit = AttachSoundToUnit
20
- local killSoundWhenDone = KillSoundWhenDone
21
- ____exports.SoundChannel = SoundChannel or ({})
26
+ ____exports.SoundChannel = ____exports.SoundChannel or ({})
22
27
  ____exports.SoundChannel.General = 0
23
28
  ____exports.SoundChannel[____exports.SoundChannel.General] = "General"
24
29
  ____exports.SoundChannel.UnitSelection = 1
@@ -49,29 +54,21 @@ ____exports.SoundChannel.Birth = 13
49
54
  ____exports.SoundChannel[____exports.SoundChannel.Birth] = "Birth"
50
55
  ____exports.SoundChannel.Fire = 14
51
56
  ____exports.SoundChannel[____exports.SoundChannel.Fire] = "Fire"
52
- ____exports.SoundEax = SoundEax or ({})
53
- ____exports.SoundEax.Default = "DefaultEAXON"
54
- ____exports.SoundEax.Acknowledgements = "HeroAcksEAX"
55
- ____exports.SoundEax.Environment = "DoodadsEAX"
56
- ____exports.SoundEax.Drums = "KotoDrumsEAX"
57
- ____exports.SoundEax.Attacks = "CombatSoundsEAX"
58
- ____exports.SoundEax.Abilities = "SpellsEAX"
59
- ____exports.SoundEax.Missiles = "MissilesEAX"
60
- ____exports.SoundPreset = {}
61
- local SoundPreset = ____exports.SoundPreset
57
+ ____exports.SoundSettings = {}
58
+ local SoundSettings = ____exports.SoundSettings
62
59
  do
63
- SoundPreset.UI = {channel = ____exports.SoundChannel.UI, eax = ____exports.SoundEax.Default, fadeInRate = 12700, fadeOutRate = 12700}
64
- SoundPreset.Music = {
60
+ SoundSettings.UI = {channel = ____exports.SoundChannel.UI, eax = "DefaultEAXON", fadeInRate = 12700, fadeOutRate = 12700}
61
+ SoundSettings.Music = {
65
62
  channel = ____exports.SoundChannel.Music,
66
- eax = ____exports.SoundEax.Default,
63
+ eax = "DefaultEAXON",
67
64
  fadeInRate = 12700,
68
65
  fadeOutRate = 12700,
69
66
  looping = true
70
67
  }
71
- SoundPreset.Attack = {channel = ____exports.SoundChannel.Combat, eax = ____exports.SoundEax.Attacks, fadeInRate = 10, fadeOutRate = 10}
72
- SoundPreset.Ability = {
68
+ SoundSettings.Attack = {channel = ____exports.SoundChannel.Combat, eax = "CombatSoundsEAX", fadeInRate = 10, fadeOutRate = 10}
69
+ SoundSettings.Ability = {
73
70
  channel = ____exports.SoundChannel.Animations,
74
- eax = ____exports.SoundEax.Abilities,
71
+ eax = "SpellsEAX",
75
72
  stopWhenOutOfRange = true,
76
73
  volume = 127,
77
74
  fadeInRate = 1,
@@ -81,9 +78,9 @@ do
81
78
  maxDistance = 3500,
82
79
  distanceCutoff = 3000
83
80
  }
84
- SoundPreset.AbilityLooping = {
81
+ SoundSettings.AbilityLooping = {
85
82
  channel = ____exports.SoundChannel.Birth,
86
- eax = ____exports.SoundEax.Abilities,
83
+ eax = "SpellsEAX",
87
84
  looping = true,
88
85
  stopWhenOutOfRange = true,
89
86
  volume = 127,
@@ -94,9 +91,9 @@ do
94
91
  maxDistance = 3000,
95
92
  distanceCutoff = 3000
96
93
  }
97
- SoundPreset.Missile = {
94
+ SoundSettings.Missile = {
98
95
  channel = ____exports.SoundChannel.Animations,
99
- eax = ____exports.SoundEax.Missiles,
96
+ eax = "MissilesEAX",
100
97
  stopWhenOutOfRange = true,
101
98
  volume = 127,
102
99
  fadeInRate = 1,
@@ -107,6 +104,29 @@ do
107
104
  distanceCutoff = 3000
108
105
  }
109
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
110
130
  local function createPresetSound(fileName, preset)
111
131
  local ____fileName_1 = fileName
112
132
  local ____preset_looping_0 = preset.looping
@@ -120,7 +140,7 @@ local function createPresetSound(fileName, preset)
120
140
  true,
121
141
  preset.fadeInRate or 12700,
122
142
  preset.fadeOutRate or 12700,
123
- preset.eax or ____exports.SoundEax.Default
143
+ preset.eax or "DefaultEAXON"
124
144
  )
125
145
  setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
126
146
  setSoundVolume(sound, preset.volume or 127)
@@ -143,7 +163,7 @@ local function createPreset3DSound(fileName, preset)
143
163
  ____preset_stopWhenOutOfRange_3,
144
164
  preset.fadeInRate or 12700,
145
165
  preset.fadeOutRate or 12700,
146
- preset.eax or ____exports.SoundEax.Default
166
+ preset.eax or "DefaultEAXON"
147
167
  )
148
168
  setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
149
169
  setSoundVolume(sound, preset.volume or 127)
@@ -153,29 +173,51 @@ local function createPreset3DSound(fileName, preset)
153
173
  return sound
154
174
  end
155
175
  local function createPreset3DSoundFromLabel(label, preset)
156
- local ____label_7 = label
157
- local ____preset_looping_5 = preset.looping
158
- if ____preset_looping_5 == nil then
159
- ____preset_looping_5 = false
160
- end
161
- local ____preset_stopWhenOutOfRange_6 = preset.stopWhenOutOfRange
162
- if ____preset_stopWhenOutOfRange_6 == nil then
163
- ____preset_stopWhenOutOfRange_6 = true
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
164
220
  end
165
- local sound = createSoundFromLabel(
166
- ____label_7,
167
- ____preset_looping_5,
168
- true,
169
- ____preset_stopWhenOutOfRange_6,
170
- preset.fadeInRate or 12700,
171
- preset.fadeOutRate or 12700
172
- )
173
- setSoundChannel(sound, preset.channel or ____exports.SoundChannel.General)
174
- setSoundVolume(sound, preset.volume or 127)
175
- setSoundPitch(sound, preset.pitch or 1)
176
- setSoundDistances(sound, preset.minDistance or 600, preset.maxDistance or 8000)
177
- setSoundDistanceCutoff(sound, preset.distanceCutoff or 1500)
178
- return sound
179
221
  end
180
222
  ____exports.Sound = __TS__Class()
181
223
  local Sound = ____exports.Sound
@@ -185,8 +227,12 @@ function Sound.prototype.onDestroy(self, fadeOut)
185
227
  stopSound(self.handle, true, fadeOut or false)
186
228
  return Handle.prototype.onDestroy(self)
187
229
  end
188
- function Sound.prototype.start(self, milliseconds)
189
- 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
190
236
  if milliseconds then
191
237
  setSoundPlayPosition(self.handle, milliseconds)
192
238
  end
@@ -1,13 +1,28 @@
1
1
  /** @noSelfInFile */
2
- export declare class TileCell implements Readonly<Vec2> {
3
- private readonly id;
2
+ import { AttributesHolder } from "../../attributes";
3
+ export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
4
+ /** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
5
+ readonly id: number;
4
6
  readonly x: number;
5
7
  readonly y: number;
6
8
  readonly z: undefined;
7
- protected constructor(id: number, x: number, y: number, z: undefined);
9
+ protected constructor(
10
+ /** Identifies the cell the same way on every client; see {@link TileCell.getById}. */
11
+ id: number, x: number, y: number, z: undefined);
12
+ get up(): TileCell;
13
+ get down(): TileCell;
14
+ get left(): TileCell;
15
+ get right(): TileCell;
16
+ get terrainTypeId(): number;
17
+ set terrainTypeId(terrainTypeId: number);
18
+ get terrainVariance(): number;
19
+ set terrainVariance(terrainVariance: number);
20
+ randomizeTerrainVariance(): void;
8
21
  isInRangeOf(x: number, y: number, range: number): boolean;
9
22
  isInRangeOf(tileCell: TileCell, range: number): boolean;
10
23
  static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
11
24
  static getInRange(x: number, y: number, range: number): TileCell[];
12
25
  static of(this: void, x: number, y: number): TileCell;
26
+ /** The cell with the given {@link id}, e.g. one received over the network. */
27
+ static getById(this: void, id: number): TileCell;
13
28
  }
@@ -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,91 @@ function TileCell.of(x, y)
97
118
  nil
98
119
  )
99
120
  end
121
+ function TileCell.getById(id)
122
+ local yId = (id + 16384) // 32768
123
+ local xId = id - yId * 32768
124
+ return tileCellById[id] or __TS__New(
125
+ ____exports.TileCell,
126
+ id,
127
+ xId * 128,
128
+ yId * 128,
129
+ nil
130
+ )
131
+ end
132
+ __TS__SetDescriptor(
133
+ TileCell.prototype,
134
+ "up",
135
+ {get = function(self)
136
+ return ____exports.TileCell.of(self.x, self.y + 128)
137
+ end},
138
+ true
139
+ )
140
+ __TS__SetDescriptor(
141
+ TileCell.prototype,
142
+ "down",
143
+ {get = function(self)
144
+ return ____exports.TileCell.of(self.x, self.y - 128)
145
+ end},
146
+ true
147
+ )
148
+ __TS__SetDescriptor(
149
+ TileCell.prototype,
150
+ "left",
151
+ {get = function(self)
152
+ return ____exports.TileCell.of(self.x - 128, self.y)
153
+ end},
154
+ true
155
+ )
156
+ __TS__SetDescriptor(
157
+ TileCell.prototype,
158
+ "right",
159
+ {get = function(self)
160
+ return ____exports.TileCell.of(self.x + 128, self.y)
161
+ end},
162
+ true
163
+ )
164
+ __TS__SetDescriptor(
165
+ TileCell.prototype,
166
+ "terrainTypeId",
167
+ {
168
+ get = function(self)
169
+ return getTerrainType(self.x, self.y)
170
+ end,
171
+ set = function(self, terrainTypeId)
172
+ local x = self.x
173
+ local y = self.y
174
+ setTerrainType(
175
+ x,
176
+ y,
177
+ terrainTypeId,
178
+ getTerrainVariance(x, y),
179
+ 1,
180
+ 1
181
+ )
182
+ end
183
+ },
184
+ true
185
+ )
186
+ __TS__SetDescriptor(
187
+ TileCell.prototype,
188
+ "terrainVariance",
189
+ {
190
+ get = function(self)
191
+ return getTerrainVariance(self.x, self.y)
192
+ end,
193
+ set = function(self, terrainVariance)
194
+ local x = self.x
195
+ local y = self.y
196
+ setTerrainType(
197
+ x,
198
+ y,
199
+ getTerrainType(x, y),
200
+ terrainVariance,
201
+ 1,
202
+ 1
203
+ )
204
+ end
205
+ },
206
+ true
207
+ )
100
208
  return ____exports