warscript 0.0.1-dev.404878c

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 (493) hide show
  1. package/LICENSE +23 -0
  2. package/binaryreader.d.ts +20 -0
  3. package/binaryreader.lua +50 -0
  4. package/binarywriter.d.ts +21 -0
  5. package/binarywriter.lua +90 -0
  6. package/core/dummy.d.ts +22 -0
  7. package/core/dummy.lua +133 -0
  8. package/core/game.d.ts +3 -0
  9. package/core/game.lua +24 -0
  10. package/core/mapbounds.d.ts +8 -0
  11. package/core/mapbounds.lua +12 -0
  12. package/core/thread.d.ts +8 -0
  13. package/core/thread.lua +40 -0
  14. package/core/types/ability.d.ts +4 -0
  15. package/core/types/ability.lua +10 -0
  16. package/core/types/async.d.ts +3 -0
  17. package/core/types/async.lua +2 -0
  18. package/core/types/camera.d.ts +4 -0
  19. package/core/types/camera.lua +21 -0
  20. package/core/types/cameraField.d.ts +15 -0
  21. package/core/types/cameraField.lua +38 -0
  22. package/core/types/color.d.ts +16 -0
  23. package/core/types/color.lua +93 -0
  24. package/core/types/destructable.d.ts +31 -0
  25. package/core/types/destructable.lua +245 -0
  26. package/core/types/effect.d.ts +31 -0
  27. package/core/types/effect.lua +209 -0
  28. package/core/types/frame.d.ts +140 -0
  29. package/core/types/frame.lua +882 -0
  30. package/core/types/game.d.ts +8 -0
  31. package/core/types/game.lua +41 -0
  32. package/core/types/group.d.ts +22 -0
  33. package/core/types/group.lua +94 -0
  34. package/core/types/handle.d.ts +48 -0
  35. package/core/types/handle.lua +169 -0
  36. package/core/types/image.d.ts +30 -0
  37. package/core/types/image.lua +121 -0
  38. package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
  39. package/core/types/internal/ability+cooldownRemaining.lua +0 -0
  40. package/core/types/item.d.ts +4 -0
  41. package/core/types/item.lua +6 -0
  42. package/core/types/missile.d.ts +22 -0
  43. package/core/types/missile.lua +233 -0
  44. package/core/types/order.d.ts +25 -0
  45. package/core/types/order.lua +55 -0
  46. package/core/types/player.d.ts +71 -0
  47. package/core/types/player.lua +448 -0
  48. package/core/types/playerCamera.d.ts +32 -0
  49. package/core/types/playerCamera.lua +162 -0
  50. package/core/types/playerColor.d.ts +40 -0
  51. package/core/types/playerColor.lua +203 -0
  52. package/core/types/rect.d.ts +39 -0
  53. package/core/types/rect.lua +152 -0
  54. package/core/types/region.d.ts +14 -0
  55. package/core/types/region.lua +84 -0
  56. package/core/types/sound.d.ts +69 -0
  57. package/core/types/sound.lua +247 -0
  58. package/core/types/tileCell.d.ts +13 -0
  59. package/core/types/tileCell.lua +100 -0
  60. package/core/types/timer.d.ts +36 -0
  61. package/core/types/timer.lua +230 -0
  62. package/core/types/timerDialog.d.ts +19 -0
  63. package/core/types/timerDialog.lua +95 -0
  64. package/core/types/unit.d.ts +10 -0
  65. package/core/types/unit.lua +24 -0
  66. package/core/types/widget.d.ts +5 -0
  67. package/core/types/widget.lua +2 -0
  68. package/core/util.d.ts +62 -0
  69. package/core/util.lua +464 -0
  70. package/core/vecmath/common.d.ts +18 -0
  71. package/core/vecmath/common.lua +29 -0
  72. package/core/vecmath/mat2.d.ts +73 -0
  73. package/core/vecmath/mat2.lua +261 -0
  74. package/core/vecmath/vec3.d.ts +47 -0
  75. package/core/vecmath/vec3.lua +350 -0
  76. package/core/vecmath/vec4.d.ts +54 -0
  77. package/core/vecmath/vec4.lua +400 -0
  78. package/crypto/ecc.d.ts +6 -0
  79. package/crypto/ecc.lua +1734 -0
  80. package/decl/index.d.ts +116 -0
  81. package/decl/native.d.ts +8198 -0
  82. package/destroyable.d.ts +20 -0
  83. package/destroyable.lua +31 -0
  84. package/engine/ability.d.ts +5 -0
  85. package/engine/ability.lua +7 -0
  86. package/engine/behavior.d.ts +28 -0
  87. package/engine/behavior.lua +181 -0
  88. package/engine/behaviour/ability/apply-buff.d.ts +38 -0
  89. package/engine/behaviour/ability/apply-buff.lua +126 -0
  90. package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
  91. package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
  92. package/engine/behaviour/ability/damage.d.ts +25 -0
  93. package/engine/behaviour/ability/damage.lua +75 -0
  94. package/engine/behaviour/ability/heal.d.ts +16 -0
  95. package/engine/behaviour/ability/heal.lua +35 -0
  96. package/engine/behaviour/ability/instant-impact.d.ts +6 -0
  97. package/engine/behaviour/ability/instant-impact.lua +25 -0
  98. package/engine/behaviour/ability.d.ts +40 -0
  99. package/engine/behaviour/ability.lua +175 -0
  100. package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
  101. package/engine/behaviour/unit/stun-immunity.lua +67 -0
  102. package/engine/behaviour/unit.d.ts +20 -0
  103. package/engine/behaviour/unit.lua +75 -0
  104. package/engine/buff.d.ts +221 -0
  105. package/engine/buff.lua +1093 -0
  106. package/engine/constants.d.ts +7 -0
  107. package/engine/constants.lua +8 -0
  108. package/engine/index.d.ts +5 -0
  109. package/engine/index.lua +2 -0
  110. package/engine/internal/ability.d.ts +91 -0
  111. package/engine/internal/ability.lua +531 -0
  112. package/engine/internal/item/ability.d.ts +2 -0
  113. package/engine/internal/item/ability.lua +48 -0
  114. package/engine/internal/item+owner.d.ts +7 -0
  115. package/engine/internal/item+owner.lua +22 -0
  116. package/engine/internal/item.d.ts +86 -0
  117. package/engine/internal/item.lua +580 -0
  118. package/engine/internal/mechanics/ability-duration.d.ts +4 -0
  119. package/engine/internal/mechanics/ability-duration.lua +11 -0
  120. package/engine/internal/mechanics/area-damage.d.ts +2 -0
  121. package/engine/internal/mechanics/area-damage.lua +33 -0
  122. package/engine/internal/misc/dummy-units.d.ts +2 -0
  123. package/engine/internal/misc/dummy-units.lua +14 -0
  124. package/engine/internal/object-data/armor-increase.d.ts +2 -0
  125. package/engine/internal/object-data/armor-increase.lua +19 -0
  126. package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
  127. package/engine/internal/object-data/attribute-bonus.lua +15 -0
  128. package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
  129. package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
  130. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
  131. package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
  132. package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
  133. package/engine/internal/object-data/dummy-inventory.lua +16 -0
  134. package/engine/internal/object-data/dummy-item.d.ts +2 -0
  135. package/engine/internal/object-data/dummy-item.lua +10 -0
  136. package/engine/internal/object-data/ghost-visible.d.ts +2 -0
  137. package/engine/internal/object-data/ghost-visible.lua +15 -0
  138. package/engine/internal/object-data/invulnerable.d.ts +2 -0
  139. package/engine/internal/object-data/invulnerable.lua +11 -0
  140. package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
  141. package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
  142. package/engine/internal/unit/ability.d.ts +143 -0
  143. package/engine/internal/unit/ability.lua +369 -0
  144. package/engine/internal/unit/allowed-targets.d.ts +17 -0
  145. package/engine/internal/unit/allowed-targets.lua +19 -0
  146. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
  147. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
  148. package/engine/internal/unit/bonus.d.ts +41 -0
  149. package/engine/internal/unit/bonus.lua +188 -0
  150. package/engine/internal/unit/buff.d.ts +38 -0
  151. package/engine/internal/unit/buff.lua +81 -0
  152. package/engine/internal/unit/expiration-timer.d.ts +22 -0
  153. package/engine/internal/unit/expiration-timer.lua +44 -0
  154. package/engine/internal/unit/ghost-counter.d.ts +12 -0
  155. package/engine/internal/unit/ghost-counter.lua +26 -0
  156. package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
  157. package/engine/internal/unit/invulnerability-counter.lua +26 -0
  158. package/engine/internal/unit/missile.d.ts +42 -0
  159. package/engine/internal/unit/missile.lua +70 -0
  160. package/engine/internal/unit/movement-speed.d.ts +18 -0
  161. package/engine/internal/unit/movement-speed.lua +42 -0
  162. package/engine/internal/unit/summon-event.d.ts +12 -0
  163. package/engine/internal/unit/summon-event.lua +50 -0
  164. package/engine/internal/unit+ability.d.ts +9 -0
  165. package/engine/internal/unit+ability.lua +59 -0
  166. package/engine/internal/unit+bonus.d.ts +8 -0
  167. package/engine/internal/unit+bonus.lua +40 -0
  168. package/engine/internal/unit+damage.d.ts +69 -0
  169. package/engine/internal/unit+damage.lua +123 -0
  170. package/engine/internal/unit+rally.d.ts +10 -0
  171. package/engine/internal/unit+rally.lua +159 -0
  172. package/engine/internal/unit+spellSteal.d.ts +7 -0
  173. package/engine/internal/unit+spellSteal.lua +64 -0
  174. package/engine/internal/unit+transport.d.ts +12 -0
  175. package/engine/internal/unit+transport.lua +102 -0
  176. package/engine/internal/unit-missile-data.d.ts +2 -0
  177. package/engine/internal/unit-missile-data.lua +107 -0
  178. package/engine/internal/unit-missile-launch.d.ts +7 -0
  179. package/engine/internal/unit-missile-launch.lua +32 -0
  180. package/engine/internal/unit.d.ts +312 -0
  181. package/engine/internal/unit.lua +2430 -0
  182. package/engine/internal/utility.d.ts +2 -0
  183. package/engine/internal/utility.lua +13 -0
  184. package/engine/lightning.d.ts +51 -0
  185. package/engine/lightning.lua +303 -0
  186. package/engine/local-client.d.ts +16 -0
  187. package/engine/local-client.lua +86 -0
  188. package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
  189. package/engine/object-data/auxiliary/animation-name.lua +2 -0
  190. package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
  191. package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
  192. package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
  193. package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
  194. package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
  195. package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
  196. package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
  197. package/engine/object-data/auxiliary/attack-type.lua +2 -0
  198. package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
  199. package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
  200. package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
  201. package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
  202. package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
  203. package/engine/object-data/auxiliary/combat-classification.lua +206 -0
  204. package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
  205. package/engine/object-data/auxiliary/detection-type.lua +2 -0
  206. package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
  207. package/engine/object-data/auxiliary/model-node-name.lua +2 -0
  208. package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
  209. package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
  210. package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
  211. package/engine/object-data/auxiliary/movement-type.lua +2 -0
  212. package/engine/object-data/auxiliary/race.d.ts +14 -0
  213. package/engine/object-data/auxiliary/race.lua +2 -0
  214. package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
  215. package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
  216. package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
  217. package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
  218. package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
  219. package/engine/object-data/auxiliary/targeting-type.lua +2 -0
  220. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
  221. package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
  222. package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
  223. package/engine/object-data/auxiliary/unit-classification.lua +50 -0
  224. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
  225. package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
  226. package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
  228. package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
  230. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
  232. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
  234. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
  235. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
  236. package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
  237. package/engine/object-data/entry/ability-type/bash.lua +78 -0
  238. package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
  239. package/engine/object-data/entry/ability-type/berserk.lua +39 -0
  240. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
  241. package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
  242. package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
  243. package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
  244. package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
  245. package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
  246. package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
  248. package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
  250. package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
  251. package/engine/object-data/entry/ability-type/channel.lua +140 -0
  252. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
  253. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
  254. package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
  256. package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
  257. package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
  258. package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/cripple.lua +52 -0
  260. package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
  261. package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
  262. package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
  263. package/engine/object-data/entry/ability-type/curse.lua +26 -0
  264. package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
  265. package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
  266. package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
  267. package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
  268. package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
  270. package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
  271. package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
  272. package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
  273. package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
  274. package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
  275. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
  276. package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
  277. package/engine/object-data/entry/ability-type/evasion.lua +26 -0
  278. package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
  279. package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
  280. package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
  282. package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
  283. package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
  284. package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
  285. package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
  286. package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
  288. package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
  289. package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
  290. package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
  292. package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
  293. package/engine/object-data/entry/ability-type/heal.lua +26 -0
  294. package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
  295. package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
  296. package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
  297. package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
  298. package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
  300. package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
  301. package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
  302. package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
  303. package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
  304. package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
  305. package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
  306. package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
  307. package/engine/object-data/entry/ability-type/inventory.lua +78 -0
  308. package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
  309. package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
  310. package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
  311. package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
  312. package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
  313. package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
  314. package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
  315. package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
  316. package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
  317. package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
  318. package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
  319. package/engine/object-data/entry/ability-type/recall.lua +39 -0
  320. package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
  321. package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
  322. package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
  323. package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
  324. package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
  325. package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
  326. package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
  327. package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
  328. package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/slow.lua +52 -0
  330. package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
  331. package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
  332. package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
  333. package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
  334. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
  335. package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
  336. package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
  337. package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
  338. package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
  339. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
  340. package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
  341. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
  342. package/engine/object-data/entry/ability-type.d.ts +148 -0
  343. package/engine/object-data/entry/ability-type.lua +1058 -0
  344. package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
  345. package/engine/object-data/entry/buff-type/applicable.lua +377 -0
  346. package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
  347. package/engine/object-data/entry/buff-type/blank.lua +17 -0
  348. package/engine/object-data/entry/buff-type.d.ts +64 -0
  349. package/engine/object-data/entry/buff-type.lua +316 -0
  350. package/engine/object-data/entry/destructible-type.d.ts +21 -0
  351. package/engine/object-data/entry/destructible-type.lua +83 -0
  352. package/engine/object-data/entry/item-type/blank.d.ts +8 -0
  353. package/engine/object-data/entry/item-type/blank.lua +21 -0
  354. package/engine/object-data/entry/item-type.d.ts +49 -0
  355. package/engine/object-data/entry/item-type.lua +259 -0
  356. package/engine/object-data/entry/lightning-type.d.ts +37 -0
  357. package/engine/object-data/entry/lightning-type.lua +191 -0
  358. package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
  359. package/engine/object-data/entry/unit-type/blank.lua +13 -0
  360. package/engine/object-data/entry/unit-type.d.ts +218 -0
  361. package/engine/object-data/entry/unit-type.lua +1306 -0
  362. package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
  363. package/engine/object-data/entry/upgrade/blank.lua +22 -0
  364. package/engine/object-data/entry/upgrade.d.ts +59 -0
  365. package/engine/object-data/entry/upgrade.lua +238 -0
  366. package/engine/object-data/entry.d.ts +80 -0
  367. package/engine/object-data/entry.lua +634 -0
  368. package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
  370. package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
  371. package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
  372. package/engine/object-field/ability.d.ts +115 -0
  373. package/engine/object-field/ability.lua +471 -0
  374. package/engine/object-field/unit.d.ts +15 -0
  375. package/engine/object-field/unit.lua +49 -0
  376. package/engine/object-field.d.ts +84 -0
  377. package/engine/object-field.lua +444 -0
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +9 -0
  380. package/engine/standard/entries/ability-type.d.ts +8 -0
  381. package/engine/standard/entries/ability-type.lua +8 -0
  382. package/engine/standard/entries/lightning-type.d.ts +16 -0
  383. package/engine/standard/entries/lightning-type.lua +16 -0
  384. package/engine/standard/entries/unit-type.d.ts +63 -0
  385. package/engine/standard/entries/unit-type.lua +63 -0
  386. package/engine/standard/entries/upgrade.d.ts +92 -0
  387. package/engine/standard/entries/upgrade.lua +92 -0
  388. package/engine/standard/fields/ability.d.ts +737 -0
  389. package/engine/standard/fields/ability.lua +749 -0
  390. package/engine/standard/pathing-textures.d.ts +6 -0
  391. package/engine/standard/pathing-textures.lua +7 -0
  392. package/engine/text-tag.d.ts +25 -0
  393. package/engine/text-tag.lua +109 -0
  394. package/engine/unit.d.ts +20 -0
  395. package/engine/unit.lua +31 -0
  396. package/event.d.ts +53 -0
  397. package/event.lua +269 -0
  398. package/exception.d.ts +17 -0
  399. package/exception.lua +53 -0
  400. package/file.d.ts +4 -0
  401. package/file.lua +42 -0
  402. package/global/math.d.ts +21 -0
  403. package/global/math.lua +72 -0
  404. package/global/vec2.d.ts +66 -0
  405. package/global/vec2.lua +159 -0
  406. package/index.d.ts +8 -0
  407. package/index.lua +9 -0
  408. package/lualib_bundle.lua +2629 -0
  409. package/math/vec2.d.ts +18 -0
  410. package/math/vec2.lua +42 -0
  411. package/math.d.ts +39 -0
  412. package/math.lua +91 -0
  413. package/net/signal.d.ts +11 -0
  414. package/net/signal.lua +56 -0
  415. package/net/socket.d.ts +9 -0
  416. package/net/socket.lua +26 -0
  417. package/network.d.ts +31 -0
  418. package/network.lua +194 -0
  419. package/objutil/ability.d.ts +710 -0
  420. package/objutil/ability.lua +3781 -0
  421. package/objutil/buff.d.ts +110 -0
  422. package/objutil/buff.lua +769 -0
  423. package/objutil/dummy.d.ts +2 -0
  424. package/objutil/dummy.lua +49 -0
  425. package/objutil/idgen.d.ts +9 -0
  426. package/objutil/idgen.lua +92 -0
  427. package/objutil/item.d.ts +38 -0
  428. package/objutil/item.lua +254 -0
  429. package/objutil/object.d.ts +43 -0
  430. package/objutil/object.lua +213 -0
  431. package/objutil/unit.d.ts +134 -0
  432. package/objutil/unit.lua +913 -0
  433. package/objutil/upgrade.d.ts +22 -0
  434. package/objutil/upgrade.lua +127 -0
  435. package/operation.d.ts +35 -0
  436. package/operation.lua +179 -0
  437. package/package.json +47 -0
  438. package/patch-lualib.d.ts +2 -0
  439. package/patch-lualib.lua +67 -0
  440. package/patch-natives.d.ts +11 -0
  441. package/patch-natives.lua +14 -0
  442. package/string.d.ts +106 -0
  443. package/string.lua +34 -0
  444. package/time/dayOfWeek.d.ts +97 -0
  445. package/time/dayOfWeek.lua +53 -0
  446. package/time/localDate.d.ts +145 -0
  447. package/time/localDate.lua +236 -0
  448. package/time/localDateTime.d.ts +133 -0
  449. package/time/localDateTime.lua +154 -0
  450. package/time/localTime.d.ts +87 -0
  451. package/time/localTime.lua +91 -0
  452. package/time/month.d.ts +146 -0
  453. package/time/month.lua +129 -0
  454. package/time/year.d.ts +117 -0
  455. package/time/year.lua +81 -0
  456. package/types.d.ts +13 -0
  457. package/types.lua +0 -0
  458. package/util/objectPool.d.ts +6 -0
  459. package/util/objectPool.lua +28 -0
  460. package/util/stream.d.ts +29 -0
  461. package/util/stream.lua +453 -0
  462. package/util/stringBuilder.d.ts +8 -0
  463. package/util/stringBuilder.lua +25 -0
  464. package/utility/arrays.d.ts +57 -0
  465. package/utility/arrays.lua +369 -0
  466. package/utility/base64.d.ts +23 -0
  467. package/utility/base64.lua +177 -0
  468. package/utility/bit-set.d.ts +18 -0
  469. package/utility/bit-set.lua +12 -0
  470. package/utility/functions.d.ts +5 -0
  471. package/utility/functions.lua +90 -0
  472. package/utility/json.d.ts +2 -0
  473. package/utility/json.lua +400 -0
  474. package/utility/linked-set.d.ts +49 -0
  475. package/utility/linked-set.lua +181 -0
  476. package/utility/lua-maps.d.ts +6 -0
  477. package/utility/lua-maps.lua +25 -0
  478. package/utility/lua-sets.d.ts +6 -0
  479. package/utility/lua-sets.lua +37 -0
  480. package/utility/lzw.d.ts +2 -0
  481. package/utility/lzw.lua +161 -0
  482. package/utility/observable-array.d.ts +17 -0
  483. package/utility/observable-array.lua +30 -0
  484. package/utility/preconditions.d.ts +23 -0
  485. package/utility/preconditions.lua +58 -0
  486. package/utility/records.d.ts +3 -0
  487. package/utility/records.lua +9 -0
  488. package/utility/reflection.d.ts +4 -0
  489. package/utility/reflection.lua +31 -0
  490. package/utility/strings.d.ts +2 -0
  491. package/utility/strings.lua +44 -0
  492. package/utility/types.d.ts +39 -0
  493. package/utility/types.lua +2 -0
@@ -0,0 +1,634 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayIsArray = ____lualib.__TS__ArrayIsArray
3
+ local __TS__Class = ____lualib.__TS__Class
4
+ local __TS__New = ____lualib.__TS__New
5
+ local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
6
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
7
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
8
+ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
9
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
10
+ local __TS__StringSplit = ____lualib.__TS__StringSplit
11
+ local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
12
+ local ____exports = {}
13
+ local booleanToData, dataToBoolean, numberToData, dataToNumber, stringToData, dataToString, objectDataEntryIdToData, dataToObjectDataEntryId, booleansToData, dataToBooleans, numbersToData, dataToNumbers, stringsToData, dataToStrings, objectDataEntryIdsToData, dataToObjectDataEntryIds, isDataNotBlank
14
+ local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
15
+ local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
16
+ local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
17
+ local splitAttachmentNodeFQN = ____attachment_2Dpreset.splitAttachmentNodeFQN
18
+ local ____exception = require("exception")
19
+ local IllegalStateException = ____exception.IllegalStateException
20
+ local ____arrays = require("utility.arrays")
21
+ local map = ____arrays.map
22
+ local zip = ____arrays.zip
23
+ local ____preconditions = require("utility.preconditions")
24
+ local check = ____preconditions.check
25
+ local ____math = require("math")
26
+ local max = ____math.max
27
+ ____exports.extractObjectDataEntryLevelFieldValue = function(supplier, level, currentValue)
28
+ local ____Array_isArray_result_1
29
+ if __TS__ArrayIsArray(supplier) then
30
+ ____Array_isArray_result_1 = supplier[level + 1]
31
+ else
32
+ local ____temp_0
33
+ if type(supplier) == "function" then
34
+ ____temp_0 = supplier(level, currentValue)
35
+ else
36
+ ____temp_0 = supplier
37
+ end
38
+ ____Array_isArray_result_1 = ____temp_0
39
+ end
40
+ return ____Array_isArray_result_1
41
+ end
42
+ ____exports.extractObjectDataEntryLevelArrayFieldValue = function(supplier, level, currentValue)
43
+ return type(supplier) == "function" and supplier(level, currentValue) or (__TS__ArrayIsArray(supplier[1]) and supplier[1] or supplier)
44
+ end
45
+ local objectDataEntryByObjectDataEntryId = {}
46
+ local internalObjectDataEntryIds = {}
47
+ ____exports.ObjectDataEntry = __TS__Class()
48
+ local ObjectDataEntry = ____exports.ObjectDataEntry
49
+ ObjectDataEntry.name = "ObjectDataEntry"
50
+ function ObjectDataEntry.prototype.____constructor(self, object)
51
+ self.object = object
52
+ self.levelFieldParametersByField = {}
53
+ self.maxAffectedLevelByField = {}
54
+ self._isInternal = false
55
+ if not warpack.compiletime then
56
+ error(
57
+ __TS__New(IllegalStateException, "Object data entries cannot be constructed in runtime."),
58
+ 0
59
+ )
60
+ end
61
+ objectDataEntryByObjectDataEntryId[self.id] = self
62
+ end
63
+ function ObjectDataEntry.generateId(self)
64
+ error(
65
+ __TS__New(IllegalStateException, "An object type definition must override the 'generateId' static method."),
66
+ 0
67
+ )
68
+ end
69
+ function ObjectDataEntry.getObjectData(self, map)
70
+ error(
71
+ __TS__New(IllegalStateException, "An object type definition must override the 'getObjectData' static method."),
72
+ 0
73
+ )
74
+ end
75
+ function ObjectDataEntry.getAllIdsByBaseIds(self, baseIds)
76
+ return map(
77
+ self:getAllByBaseIds(baseIds),
78
+ "id"
79
+ )
80
+ end
81
+ function ObjectDataEntry.create(self, id, properties)
82
+ if type(id) == "table" then
83
+ id = nil
84
+ properties = id
85
+ end
86
+ if currentMap == nil then
87
+ error(
88
+ __TS__New(IllegalStateException, "Cannot create a new object type when not compiling a map."),
89
+ 0
90
+ )
91
+ end
92
+ local constructor = self
93
+ local registry = constructor:getObjectData(currentMap)
94
+ local baseId = self.BASE_ID
95
+ if baseId == 0 then
96
+ error(
97
+ __TS__New(IllegalStateException, "An object type definition must override the BASE_ID static property."),
98
+ 0
99
+ )
100
+ end
101
+ local object = registry:newObject(
102
+ objectDataEntryIdToData(id or constructor:generateId()),
103
+ objectDataEntryIdToData(baseId)
104
+ )
105
+ local objectDataEntry = __TS__New(self, object)
106
+ if properties ~= nil then
107
+ __TS__ObjectAssign(objectDataEntry, properties)
108
+ end
109
+ return objectDataEntry
110
+ end
111
+ function ObjectDataEntry.getAllByBaseIds(self, baseIds)
112
+ if currentMap == nil then
113
+ return {}
114
+ end
115
+ local dataBaseIds = {}
116
+ if __TS__ArrayIsArray(baseIds) then
117
+ for ____, baseId in ipairs(baseIds) do
118
+ dataBaseIds[objectDataEntryIdToData(baseId)] = true
119
+ end
120
+ else
121
+ dataBaseIds[objectDataEntryIdToData(baseIds)] = true
122
+ end
123
+ local result = {}
124
+ local constructor = self
125
+ for id, object in pairs(constructor:getObjectData(currentMap).all) do
126
+ if dataBaseIds[object.parentId or id] ~= nil then
127
+ local objectDataEntry = self:of(dataToObjectDataEntryId(id))
128
+ if objectDataEntry ~= nil and not objectDataEntry.isInternal then
129
+ result[#result + 1] = objectDataEntry
130
+ end
131
+ end
132
+ end
133
+ return result
134
+ end
135
+ function ObjectDataEntry.getAll(self)
136
+ if currentMap == nil then
137
+ return {}
138
+ end
139
+ local constructor = self
140
+ local result = {}
141
+ for id in pairs(constructor:getObjectData(currentMap).all) do
142
+ local objectDataEntry = self:of(dataToObjectDataEntryId(id))
143
+ if objectDataEntry ~= nil and not objectDataEntry.isInternal then
144
+ result[#result + 1] = objectDataEntry
145
+ end
146
+ end
147
+ return result
148
+ end
149
+ function ObjectDataEntry.of(self, id)
150
+ if currentMap == nil then
151
+ return nil
152
+ end
153
+ local constructor = self
154
+ local registry = constructor:getObjectData(currentMap)
155
+ local object = registry:getObject(objectDataEntryIdToData(id))
156
+ if object == nil then
157
+ return nil
158
+ end
159
+ local objectDataEntry = objectDataEntryByObjectDataEntryId[dataToObjectDataEntryId(object.id)]
160
+ if objectDataEntry == nil then
161
+ if not constructor.IS_SYNTHETIC and (self.BASE_ID == 0 or dataToObjectDataEntryId(object.parentId) == self.BASE_ID) then
162
+ local AbstractObjectDataEntryView = __TS__Class()
163
+ AbstractObjectDataEntryView.name = "AbstractObjectDataEntryView"
164
+ __TS__ClassExtends(AbstractObjectDataEntryView, constructor)
165
+ function AbstractObjectDataEntryView.prototype.____constructor(self, object)
166
+ constructor.prototype.____constructor(self, object)
167
+ end
168
+ objectDataEntry = __TS__New(AbstractObjectDataEntryView, object)
169
+ else
170
+ return nil
171
+ end
172
+ elseif not __TS__InstanceOf(objectDataEntry, self) then
173
+ return nil
174
+ end
175
+ return objectDataEntry
176
+ end
177
+ function ObjectDataEntry.prototype.getFieldValue(self, field, ...)
178
+ return field:getValue(self, ...)
179
+ end
180
+ function ObjectDataEntry.prototype.setFieldValue(self, field, ...)
181
+ check(field:setValue(self, ...))
182
+ end
183
+ function ObjectDataEntry.prototype.getBooleanField(self, field)
184
+ return dataToBoolean(self.object:getField(field))
185
+ end
186
+ function ObjectDataEntry.prototype.setBooleanField(self, field, value)
187
+ self.object:setField(
188
+ field,
189
+ booleanToData(value)
190
+ )
191
+ end
192
+ function ObjectDataEntry.prototype.getNumberField(self, field)
193
+ return dataToNumber(self.object:getField(field))
194
+ end
195
+ function ObjectDataEntry.prototype.setNumberField(self, field, value)
196
+ self.object:setField(
197
+ field,
198
+ numberToData(value)
199
+ )
200
+ if field == "levels" or field == "maxlevel" or field == "alev" or field == "glvl" then
201
+ for otherField, levelFieldParameters in pairs(self.levelFieldParametersByField) do
202
+ local ____levelFieldParameters_2 = levelFieldParameters
203
+ local supplier = ____levelFieldParameters_2.supplier
204
+ local extractor = ____levelFieldParameters_2.extractor
205
+ local dataToValue = ____levelFieldParameters_2.dataToValue
206
+ local valueToData = ____levelFieldParameters_2.valueToData
207
+ local maxAffectedLevel = self.maxAffectedLevelByField[otherField] or 0
208
+ if value > maxAffectedLevel then
209
+ self.maxAffectedLevelByField[otherField] = value
210
+ for level = maxAffectedLevel + 1, value do
211
+ local value = extractor(
212
+ supplier,
213
+ level - 1,
214
+ dataToValue(self.object:getField((otherField .. "+") .. tostring(level)))
215
+ )
216
+ self.object:setField(
217
+ (otherField .. "+") .. tostring(level),
218
+ valueToData(value)
219
+ )
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
225
+ function ObjectDataEntry.prototype.getStringField(self, field)
226
+ return dataToString(self.object:getField(field))
227
+ end
228
+ function ObjectDataEntry.prototype.setStringField(self, field, value)
229
+ self.object:setField(
230
+ field,
231
+ stringToData(value)
232
+ )
233
+ end
234
+ function ObjectDataEntry.prototype.getObjectDataEntryIdField(self, field)
235
+ return dataToObjectDataEntryId(self.object:getField(field))
236
+ end
237
+ function ObjectDataEntry.prototype.setObjectDataEntryIdField(self, field, value)
238
+ self.object:setField(
239
+ field,
240
+ objectDataEntryIdToData(value)
241
+ )
242
+ end
243
+ function ObjectDataEntry.prototype.getAttachmentPresetField(self, modelPathField, nodeFQNField)
244
+ local modelPath = self:getStringField(modelPathField)
245
+ if modelPath ~= "" then
246
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField(nodeFQNField))
247
+ return {modelPath = modelPath, nodeName = nodeName, nodeQualifiers = nodeQualifiers}
248
+ end
249
+ return nil
250
+ end
251
+ function ObjectDataEntry.prototype.setAttachmentPresetField(self, modelPathField, nodeFQNField, attachmentPreset)
252
+ self:setStringField(
253
+ modelPathField,
254
+ extractAttachmentPresetInputModelPath(attachmentPreset)
255
+ )
256
+ self:setStringField(
257
+ nodeFQNField,
258
+ extractAttachmentPresetInputNodeFQN(attachmentPreset)
259
+ )
260
+ end
261
+ function ObjectDataEntry.prototype.getBooleansField(self, field)
262
+ return dataToBooleans(self.object:getField(field))
263
+ end
264
+ function ObjectDataEntry.prototype.setBooleansField(self, field, values)
265
+ self.object:setField(
266
+ field,
267
+ booleansToData(values)
268
+ )
269
+ end
270
+ function ObjectDataEntry.prototype.getNumbersField(self, field)
271
+ return dataToNumbers(self.object:getField(field))
272
+ end
273
+ function ObjectDataEntry.prototype.setNumbersField(self, field, values)
274
+ self.object:setField(
275
+ field,
276
+ numbersToData(values)
277
+ )
278
+ end
279
+ function ObjectDataEntry.prototype.getStringsField(self, field)
280
+ return dataToStrings(self.object:getField(field))
281
+ end
282
+ function ObjectDataEntry.prototype.setStringsField(self, field, values)
283
+ self.object:setField(
284
+ field,
285
+ stringsToData(values)
286
+ )
287
+ end
288
+ function ObjectDataEntry.prototype.getObjectDataEntryIdsField(self, field)
289
+ return dataToObjectDataEntryIds(self.object:getField(field))
290
+ end
291
+ function ObjectDataEntry.prototype.setObjectDataEntryIdsField(self, field, values)
292
+ self.object:setField(
293
+ field,
294
+ objectDataEntryIdsToData(values)
295
+ )
296
+ end
297
+ function ObjectDataEntry.prototype.getAttachmentPresetListField(self, modelPathListField, nodeFQNFields)
298
+ local modelPaths = self:getStringsField(modelPathListField)
299
+ return zip(
300
+ modelPaths,
301
+ nodeFQNFields,
302
+ function(modelPath, nodeFQNField)
303
+ local nodeName, nodeQualifiers = splitAttachmentNodeFQN(self:getStringField(nodeFQNField))
304
+ return {modelPath = modelPath, nodeName = nodeName, nodeQualifiers = nodeQualifiers}
305
+ end
306
+ )
307
+ end
308
+ function ObjectDataEntry.prototype.setAttachmentPresetListField(self, modelPathListField, nodeFQNFields, lengthField, attachmentPresets)
309
+ self:setStringsField(
310
+ modelPathListField,
311
+ map(attachmentPresets, extractAttachmentPresetInputModelPath)
312
+ )
313
+ for i = 0, #nodeFQNFields - 1 do
314
+ self:setStringField(
315
+ nodeFQNFields[i + 1],
316
+ extractAttachmentPresetInputNodeFQN(attachmentPresets[i + 1])
317
+ )
318
+ end
319
+ self:setNumberField(lengthField, #attachmentPresets)
320
+ end
321
+ function ObjectDataEntry.prototype.setFlagLevelFieldValue(self, fieldId, flag, supplier)
322
+ self:setNumberLevelField(
323
+ fieldId,
324
+ function(level, currentValue)
325
+ local value = ____exports.extractObjectDataEntryLevelFieldValue(supplier, level, currentValue & flag ~= 0)
326
+ return currentValue & ~flag | (value and flag or 0)
327
+ end
328
+ )
329
+ end
330
+ function ObjectDataEntry.prototype.getFlagLevelFieldValue(self, fieldId, flag)
331
+ return __TS__ArrayMap(
332
+ self:getNumberLevelField(fieldId),
333
+ function(____, value) return value & flag ~= 0 end
334
+ )
335
+ end
336
+ function ObjectDataEntry.prototype.getBooleanLevelField(self, field)
337
+ return self:getLevelField(field, dataToBoolean)
338
+ end
339
+ function ObjectDataEntry.prototype.setBooleanLevelField(self, field, values)
340
+ self:setLevelField(
341
+ field,
342
+ values,
343
+ ____exports.extractObjectDataEntryLevelFieldValue,
344
+ dataToBoolean,
345
+ booleanToData
346
+ )
347
+ end
348
+ function ObjectDataEntry.prototype.getNumberLevelField(self, field)
349
+ return self:getLevelField(field, dataToNumber)
350
+ end
351
+ function ObjectDataEntry.prototype.setNumberLevelField(self, field, values)
352
+ self:setLevelField(
353
+ field,
354
+ values,
355
+ ____exports.extractObjectDataEntryLevelFieldValue,
356
+ dataToNumber,
357
+ numberToData
358
+ )
359
+ end
360
+ function ObjectDataEntry.prototype.getStringLevelField(self, field)
361
+ return self:getLevelField(field, dataToString)
362
+ end
363
+ function ObjectDataEntry.prototype.setStringLevelField(self, field, values)
364
+ self:setLevelField(
365
+ field,
366
+ values,
367
+ ____exports.extractObjectDataEntryLevelFieldValue,
368
+ dataToString,
369
+ stringToData
370
+ )
371
+ end
372
+ function ObjectDataEntry.prototype.getObjectDataEntryIdLevelField(self, field)
373
+ return self:getLevelField(field, dataToObjectDataEntryId)
374
+ end
375
+ function ObjectDataEntry.prototype.setObjectDataEntryIdLevelField(self, field, values)
376
+ self:setLevelField(
377
+ field,
378
+ values,
379
+ ____exports.extractObjectDataEntryLevelFieldValue,
380
+ dataToObjectDataEntryId,
381
+ objectDataEntryIdToData
382
+ )
383
+ end
384
+ function ObjectDataEntry.prototype.getBooleansLevelField(self, field)
385
+ return self:getLevelField(field, dataToBooleans)
386
+ end
387
+ function ObjectDataEntry.prototype.setBooleansLevelField(self, field, values)
388
+ self:setLevelField(
389
+ field,
390
+ values,
391
+ ____exports.extractObjectDataEntryLevelArrayFieldValue,
392
+ dataToBooleans,
393
+ booleansToData
394
+ )
395
+ end
396
+ function ObjectDataEntry.prototype.getNumbersLevelField(self, field)
397
+ return self:getLevelField(field, dataToNumbers)
398
+ end
399
+ function ObjectDataEntry.prototype.setNumbersLevelField(self, field, values)
400
+ self:setLevelField(
401
+ field,
402
+ values,
403
+ ____exports.extractObjectDataEntryLevelArrayFieldValue,
404
+ dataToNumbers,
405
+ numbersToData
406
+ )
407
+ end
408
+ function ObjectDataEntry.prototype.getStringsLevelField(self, field)
409
+ return self:getLevelField(field, dataToStrings)
410
+ end
411
+ function ObjectDataEntry.prototype.setStringsLevelField(self, field, values)
412
+ self:setLevelField(
413
+ field,
414
+ values,
415
+ ____exports.extractObjectDataEntryLevelArrayFieldValue,
416
+ dataToStrings,
417
+ stringsToData
418
+ )
419
+ end
420
+ function ObjectDataEntry.prototype.getObjectDataEntryIdsLevelField(self, field)
421
+ return self:getLevelField(field, dataToObjectDataEntryIds)
422
+ end
423
+ function ObjectDataEntry.prototype.setObjectDataEntryIdsLevelField(self, field, values)
424
+ self:setLevelField(
425
+ field,
426
+ values,
427
+ ____exports.extractObjectDataEntryLevelArrayFieldValue,
428
+ dataToObjectDataEntryIds,
429
+ objectDataEntryIdsToData
430
+ )
431
+ end
432
+ function ObjectDataEntry.prototype.getLevelField(self, field, dataToValue)
433
+ local values = {}
434
+ local object = self.object
435
+ for level = 1, tonumber(object:getField("levels")) or 1 do
436
+ values[level] = dataToValue(object:getField((field .. "+") .. tostring(level)))
437
+ end
438
+ return values
439
+ end
440
+ function ObjectDataEntry.prototype.setLevelField(self, field, supplier, extractor, dataToValue, valueToData)
441
+ local levelFieldParameters = {supplier = supplier, extractor = extractor, dataToValue = dataToValue, valueToData = valueToData}
442
+ if type(supplier) == "function" then
443
+ local previousLevelFieldParameters = self.levelFieldParametersByField[field]
444
+ if previousLevelFieldParameters ~= nil then
445
+ local previousSupplier = previousLevelFieldParameters.supplier
446
+ levelFieldParameters.supplier = function(level, currentValue)
447
+ return supplier(
448
+ level,
449
+ extractor(previousSupplier, level, currentValue)
450
+ )
451
+ end
452
+ levelFieldParameters.dataToValue = previousLevelFieldParameters.dataToValue
453
+ end
454
+ end
455
+ self.levelFieldParametersByField[field] = levelFieldParameters
456
+ local object = self.object
457
+ local maxAffectedLevel = max(
458
+ self.maxAffectedLevelByField[field] or 0,
459
+ tonumber(object:getField("levels")) or tonumber(object:getField("maxlevel")) or 0
460
+ )
461
+ self.maxAffectedLevelByField[field] = maxAffectedLevel
462
+ for level = 1, maxAffectedLevel do
463
+ local value = extractor(
464
+ supplier,
465
+ level - 1,
466
+ dataToValue(object:getField((field .. "+") .. tostring(level)))
467
+ )
468
+ object:setField(
469
+ (field .. "+") .. tostring(level),
470
+ valueToData(value)
471
+ )
472
+ end
473
+ end
474
+ ObjectDataEntry.BASE_ID = 0
475
+ ObjectDataEntry.IS_SYNTHETIC = false
476
+ __TS__SetDescriptor(
477
+ ObjectDataEntry.prototype,
478
+ "isInternal",
479
+ {
480
+ get = function(self)
481
+ return self._isInternal
482
+ end,
483
+ set = function(self, isInternal)
484
+ if isInternal then
485
+ internalObjectDataEntryIds[self.id] = true
486
+ else
487
+ internalObjectDataEntryIds[self.id] = nil
488
+ end
489
+ self._isInternal = isInternal
490
+ end
491
+ },
492
+ true
493
+ )
494
+ __TS__SetDescriptor(
495
+ ObjectDataEntry.prototype,
496
+ "id",
497
+ {get = function(self)
498
+ return dataToObjectDataEntryId(self.object.id)
499
+ end},
500
+ true
501
+ )
502
+ __TS__SetDescriptor(
503
+ ObjectDataEntry.prototype,
504
+ "baseId",
505
+ {get = function(self)
506
+ return dataToObjectDataEntryId(self.object.parentId or self.object.id)
507
+ end},
508
+ true
509
+ )
510
+ __TS__SetDescriptor(
511
+ ObjectDataEntry.prototype,
512
+ "isCustom",
513
+ {get = function(self)
514
+ return self.object.parentId ~= nil
515
+ end},
516
+ true
517
+ )
518
+ booleanToData = function(value)
519
+ return value and 1 or 0
520
+ end
521
+ dataToBoolean = function(data)
522
+ return (tonumber(data) or 0) == 1
523
+ end
524
+ numberToData = function(value)
525
+ return value
526
+ end
527
+ dataToNumber = function(data)
528
+ return tonumber(data) or 0
529
+ end
530
+ stringToData = function(value)
531
+ return value
532
+ end
533
+ dataToString = function(data)
534
+ return tostring(data or "")
535
+ end
536
+ objectDataEntryIdToData = function(value)
537
+ return value == 0 and "" or string.pack(">I4", value)
538
+ end
539
+ dataToObjectDataEntryId = function(data)
540
+ local dataString = dataToString(data)
541
+ if isDataNotBlank(nil, dataString) then
542
+ return (string.unpack(">I4", dataString))
543
+ else
544
+ return 0
545
+ end
546
+ end
547
+ booleansToData = function(value)
548
+ return table.concat(
549
+ __TS__ArrayMap(
550
+ value,
551
+ function(____, boolean) return booleanToData(boolean) end
552
+ ),
553
+ ","
554
+ )
555
+ end
556
+ dataToBooleans = function(data)
557
+ return __TS__ArrayMap(
558
+ __TS__ArrayFilter(
559
+ __TS__StringSplit(
560
+ dataToString(data),
561
+ ","
562
+ ),
563
+ isDataNotBlank
564
+ ),
565
+ function(____, data) return dataToBoolean(data) end
566
+ )
567
+ end
568
+ numbersToData = function(value)
569
+ return table.concat(
570
+ __TS__ArrayMap(
571
+ value,
572
+ function(____, number) return numberToData(number) end
573
+ ),
574
+ ","
575
+ )
576
+ end
577
+ dataToNumbers = function(data)
578
+ return __TS__ArrayMap(
579
+ __TS__ArrayFilter(
580
+ __TS__StringSplit(
581
+ dataToString(data),
582
+ ","
583
+ ),
584
+ isDataNotBlank
585
+ ),
586
+ function(____, data) return dataToNumber(data) end
587
+ )
588
+ end
589
+ stringsToData = function(value)
590
+ return table.concat(
591
+ __TS__ArrayMap(
592
+ value,
593
+ function(____, ____string) return stringToData(____string) end
594
+ ),
595
+ ","
596
+ )
597
+ end
598
+ dataToStrings = function(data)
599
+ return __TS__ArrayMap(
600
+ __TS__ArrayFilter(
601
+ __TS__StringSplit(
602
+ dataToString(data),
603
+ ","
604
+ ),
605
+ isDataNotBlank
606
+ ),
607
+ function(____, data) return dataToString(data) end
608
+ )
609
+ end
610
+ objectDataEntryIdsToData = function(value)
611
+ return table.concat(
612
+ __TS__ArrayMap(
613
+ value,
614
+ function(____, objectDataEntryId) return objectDataEntryIdToData(objectDataEntryId) end
615
+ ),
616
+ ","
617
+ )
618
+ end
619
+ dataToObjectDataEntryIds = function(data)
620
+ return __TS__ArrayMap(
621
+ __TS__ArrayFilter(
622
+ __TS__StringSplit(
623
+ dataToString(data),
624
+ ","
625
+ ),
626
+ isDataNotBlank
627
+ ),
628
+ function(____, data) return dataToObjectDataEntryId(data) end
629
+ )
630
+ end
631
+ isDataNotBlank = function(self, data)
632
+ return data:isNotBlank() and data ~= "_"
633
+ end
634
+ return ____exports
@@ -0,0 +1,6 @@
1
+ /** @noSelfInFile */
2
+ export declare class ObjectDataEntryIdGenerator {
3
+ private id;
4
+ constructor(firstId: number);
5
+ next(): number;
6
+ }
@@ -0,0 +1,63 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local ____exports = {}
4
+ local ____preconditions = require("utility.preconditions")
5
+ local checkNotNull = ____preconditions.checkNotNull
6
+ local function nextValidChar(char)
7
+ if char < 48 or char > 126 then
8
+ return 48
9
+ end
10
+ if char == 57 then
11
+ return 97
12
+ end
13
+ return char + 1
14
+ end
15
+ local function isIdOccupied(id)
16
+ if currentMap ~= nil then
17
+ for ____, objectData in pairs(currentMap.objects) do
18
+ if objectData:getObject(id) ~= nil then
19
+ return true
20
+ end
21
+ end
22
+ end
23
+ return false
24
+ end
25
+ local function nextIdFrom(id)
26
+ local b1, b2, b3, b4 = string.byte(
27
+ util.id2s(id),
28
+ 1,
29
+ 4
30
+ )
31
+ while isIdOccupied(string.char(b1, b2, b3, b4)) do
32
+ if b4 < 126 then
33
+ b4 = nextValidChar(b4)
34
+ elseif b3 < 126 then
35
+ b4 = 48
36
+ b3 = nextValidChar(b3)
37
+ elseif b2 < 126 then
38
+ b4 = 48
39
+ b3 = 48
40
+ b2 = nextValidChar(b2)
41
+ elseif b1 < 126 then
42
+ b4 = 48
43
+ b3 = 48
44
+ b2 = 48
45
+ b1 = nextValidChar(b1)
46
+ else
47
+ return nil
48
+ end
49
+ end
50
+ return util.s2id(string.char(b1, b2, b3, b4))
51
+ end
52
+ ____exports.ObjectDataEntryIdGenerator = __TS__Class()
53
+ local ObjectDataEntryIdGenerator = ____exports.ObjectDataEntryIdGenerator
54
+ ObjectDataEntryIdGenerator.name = "ObjectDataEntryIdGenerator"
55
+ function ObjectDataEntryIdGenerator.prototype.____constructor(self, firstId)
56
+ self.id = firstId
57
+ end
58
+ function ObjectDataEntryIdGenerator.prototype.next(self)
59
+ local id = checkNotNull(nextIdFrom(self.id))
60
+ self.id = id
61
+ return id
62
+ end
63
+ return ____exports
@@ -0,0 +1,9 @@
1
+ /** @noSelfInFile */
2
+ import { TargetingType } from "../auxiliary/targeting-type";
3
+ export declare class OrderTypeStringIdFactory {
4
+ private positionByTargetingType;
5
+ private recycleQueueByTargetingType;
6
+ next(targetingType: TargetingType): string;
7
+ recycle(orderString: string): void;
8
+ }
9
+ export declare const orderTypeStringIdFactory: OrderTypeStringIdFactory;