warscript 0.0.1-dev.aaf0a9d → 0.0.1-dev.ac2149a

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 (492) hide show
  1. package/attributes.d.ts +18 -0
  2. package/attributes.lua +32 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/dummy.lua +4 -2
  8. package/core/types/effect.d.ts +24 -6
  9. package/core/types/effect.lua +169 -107
  10. package/core/types/frame.d.ts +24 -3
  11. package/core/types/frame.lua +198 -42
  12. package/core/types/group.d.ts +0 -1
  13. package/core/types/handle.d.ts +2 -1
  14. package/core/types/handle.lua +14 -9
  15. package/core/types/image.d.ts +0 -1
  16. package/core/types/item.d.ts +1 -0
  17. package/core/types/item.lua +1 -0
  18. package/core/types/missile.d.ts +2 -2
  19. package/core/types/missile.lua +8 -2
  20. package/core/types/player.d.ts +18 -1
  21. package/core/types/player.lua +76 -26
  22. package/core/types/playerCamera.d.ts +2 -0
  23. package/core/types/playerCamera.lua +123 -5
  24. package/core/types/playerColor.lua +4 -3
  25. package/core/types/sound.d.ts +18 -25
  26. package/core/types/sound.lua +113 -33
  27. package/core/types/tileCell.d.ts +18 -3
  28. package/core/types/tileCell.lua +108 -0
  29. package/core/types/timer.d.ts +9 -8
  30. package/core/types/timer.lua +45 -23
  31. package/core/types/unit.d.ts +5 -0
  32. package/core/types/unit.lua +13 -0
  33. package/core/util.d.ts +3 -1
  34. package/core/util.lua +127 -4
  35. package/decl/index.d.ts +1 -0
  36. package/decl/native.d.ts +1718 -964
  37. package/destroyable.d.ts +1 -0
  38. package/destroyable.lua +9 -0
  39. package/engine/ability.d.ts +1 -1
  40. package/engine/behavior.d.ts +24 -11
  41. package/engine/behavior.lua +233 -73
  42. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  43. package/engine/behaviour/ability/always-enabled.lua +31 -0
  44. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  45. package/engine/behaviour/ability/apply-buff.lua +36 -4
  46. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  47. package/engine/behaviour/ability/apply-unit-behavior.lua +37 -9
  48. package/engine/behaviour/ability/damage.d.ts +43 -11
  49. package/engine/behaviour/ability/damage.lua +89 -39
  50. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  51. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  52. package/engine/behaviour/ability/heal.d.ts +33 -6
  53. package/engine/behaviour/ability/heal.lua +89 -10
  54. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  55. package/engine/behaviour/ability/instant-impact.lua +4 -15
  56. package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
  57. package/engine/behaviour/ability/on-command-impact.lua +26 -0
  58. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  59. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  60. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  61. package/engine/behaviour/ability/restore-mana.lua +29 -0
  62. package/engine/behaviour/ability.d.ts +37 -7
  63. package/engine/behaviour/ability.lua +208 -27
  64. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  65. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  66. package/engine/behaviour/unit.d.ts +49 -4
  67. package/engine/behaviour/unit.lua +293 -2
  68. package/engine/buff.d.ts +168 -59
  69. package/engine/buff.lua +767 -277
  70. package/engine/game-map.d.ts +7 -0
  71. package/engine/game-map.lua +32 -0
  72. package/engine/index.d.ts +2 -1
  73. package/engine/internal/ability.d.ts +31 -15
  74. package/engine/internal/ability.lua +177 -104
  75. package/engine/internal/item/ability.lua +162 -4
  76. package/engine/internal/item/fields.d.ts +12 -0
  77. package/engine/internal/item/fields.lua +33 -0
  78. package/engine/internal/item/owner-cache.d.ts +5 -0
  79. package/engine/internal/item/owner-cache.lua +4 -0
  80. package/engine/internal/item+owner.d.ts +2 -0
  81. package/engine/internal/item+owner.lua +37 -8
  82. package/engine/internal/item.d.ts +34 -18
  83. package/engine/internal/item.lua +308 -102
  84. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  85. package/engine/internal/mechanics/ability-duration.lua +3 -1
  86. package/engine/internal/mechanics/cast-ability.lua +89 -0
  87. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  88. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  89. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  90. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  91. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  92. package/engine/internal/misc/frame-coordinates.lua +21 -0
  93. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  94. package/engine/internal/misc/get-terrain-z.lua +11 -0
  95. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  96. package/engine/internal/misc/player-local-handle.lua +5 -0
  97. package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
  98. package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
  99. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  100. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  101. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  102. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  103. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  104. package/engine/internal/object-data/evasion-probability.lua +16 -0
  105. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  106. package/engine/internal/object-data/health-bonus.lua +16 -0
  107. package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
  108. package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
  109. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  110. package/engine/internal/object-data/mana-bonus.lua +16 -0
  111. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  112. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  113. package/engine/internal/unit/ability.d.ts +45 -1
  114. package/engine/internal/unit/ability.lua +142 -19
  115. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  116. package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
  117. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  118. package/engine/internal/unit/add-item-to-slot.lua +93 -0
  119. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  120. package/engine/internal/unit/allowed-targets.lua +9 -1
  121. package/engine/internal/unit/appearance.d.ts +15 -0
  122. package/engine/internal/unit/appearance.lua +85 -0
  123. package/engine/internal/unit/attributes.d.ts +17 -0
  124. package/engine/internal/unit/attributes.lua +46 -0
  125. package/engine/internal/unit/bonus.d.ts +25 -8
  126. package/engine/internal/unit/bonus.lua +125 -9
  127. package/engine/internal/unit/buff.d.ts +2 -2
  128. package/engine/internal/unit/buff.lua +34 -19
  129. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  130. package/engine/internal/unit/detach-missiles.lua +30 -0
  131. package/engine/internal/unit/equipment-inventory.d.ts +44 -0
  132. package/engine/internal/unit/equipment-inventory.lua +233 -0
  133. package/engine/internal/unit/expiration-timer.lua +1 -1
  134. package/engine/internal/unit/extended-inventory.d.ts +25 -0
  135. package/engine/internal/unit/extended-inventory.lua +99 -0
  136. package/engine/internal/unit/fly-height.d.ts +7 -0
  137. package/engine/internal/unit/fly-height.lua +20 -0
  138. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  139. package/engine/internal/unit/ignore-events-items.lua +14 -0
  140. package/engine/internal/unit/interrupts.d.ts +12 -0
  141. package/engine/internal/unit/interrupts.lua +28 -0
  142. package/engine/internal/unit/inventory.d.ts +28 -0
  143. package/engine/internal/unit/inventory.lua +87 -0
  144. package/engine/internal/unit/item-container.d.ts +25 -0
  145. package/engine/internal/unit/item-container.lua +11 -0
  146. package/engine/internal/unit/item-order-events.d.ts +17 -0
  147. package/engine/internal/unit/item-order-events.lua +67 -0
  148. package/engine/internal/unit/item-slot.d.ts +27 -0
  149. package/engine/internal/unit/item-slot.lua +92 -0
  150. package/engine/internal/unit/main-selected.d.ts +13 -0
  151. package/engine/internal/unit/main-selected.lua +36 -0
  152. package/engine/internal/unit/order.d.ts +20 -0
  153. package/engine/internal/unit/order.lua +136 -0
  154. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  155. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  156. package/engine/internal/unit/range-event.d.ts +12 -0
  157. package/engine/internal/unit/range-event.lua +90 -0
  158. package/engine/internal/unit/scale.d.ts +7 -0
  159. package/engine/internal/unit/scale.lua +20 -0
  160. package/engine/internal/unit+ability.d.ts +2 -1
  161. package/engine/internal/unit+ability.lua +75 -5
  162. package/engine/internal/unit+bonus.lua +3 -3
  163. package/engine/internal/unit+damage.d.ts +11 -11
  164. package/engine/internal/unit+damage.lua +43 -14
  165. package/engine/internal/unit+rally.lua +9 -31
  166. package/engine/internal/unit+spellSteal.lua +1 -2
  167. package/engine/internal/unit+transport.lua +4 -10
  168. package/engine/internal/unit-missile-data.lua +58 -32
  169. package/engine/internal/unit-missile-launch.lua +70 -13
  170. package/engine/internal/unit.d.ts +91 -38
  171. package/engine/internal/unit.lua +667 -352
  172. package/engine/internal/utility.lua +12 -0
  173. package/engine/lightning.d.ts +12 -5
  174. package/engine/lightning.lua +48 -14
  175. package/engine/local-client.d.ts +35 -2
  176. package/engine/local-client.lua +367 -15
  177. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  178. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  179. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  180. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  181. package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -3
  182. package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
  183. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  184. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  185. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  186. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  187. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  188. package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
  189. package/engine/object-data/auxiliary/equipment-type.lua +26 -0
  190. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  191. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  192. package/engine/object-data/auxiliary/item-class.d.ts +11 -0
  193. package/engine/object-data/auxiliary/item-class.lua +2 -0
  194. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  195. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  196. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  197. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  198. package/engine/object-data/auxiliary/order-type.d.ts +939 -0
  199. package/engine/object-data/auxiliary/order-type.lua +2 -0
  200. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  201. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  202. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  203. package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
  204. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  205. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  206. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  207. package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
  208. package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
  209. package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
  210. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  211. package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
  212. package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
  213. package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
  214. package/engine/object-data/entry/ability-type/banshee.lua +13 -0
  215. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
  216. package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
  217. package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
  218. package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
  219. package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
  220. package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
  221. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  222. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  223. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -1
  224. package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
  225. package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -1
  226. package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
  227. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  228. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  229. package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
  230. package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
  231. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  232. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  233. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  234. package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
  235. package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
  236. package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
  237. package/engine/object-data/entry/ability-type/consecration.lua +52 -0
  238. package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
  239. package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
  240. package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
  241. package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
  242. package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
  243. package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
  244. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  245. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  246. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  248. package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
  249. package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
  250. package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
  251. package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
  252. package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
  253. package/engine/object-data/entry/ability-type/equipment.lua +27 -0
  254. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  255. package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
  256. package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
  257. package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
  258. package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
  259. package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
  260. package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
  261. package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
  262. package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
  263. package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
  264. package/engine/object-data/entry/ability-type/grit.lua +65 -0
  265. package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
  266. package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
  267. package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
  268. package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
  269. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
  270. package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
  271. package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
  272. package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
  273. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  274. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  275. package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
  276. package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
  277. package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
  278. package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
  279. package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
  280. package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
  281. package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
  282. package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
  283. package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
  284. package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
  285. package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
  286. package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
  287. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  288. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  289. package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
  290. package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
  291. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  292. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  293. package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
  294. package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
  295. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  296. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  297. package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
  298. package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
  299. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
  300. package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
  301. package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
  302. package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
  303. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
  304. package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
  305. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  306. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  307. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  308. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  309. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  310. package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
  311. package/engine/object-data/entry/ability-type/provoke.lua +66 -0
  312. package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
  313. package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
  314. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  315. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  316. package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
  317. package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
  318. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  319. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  320. package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
  321. package/engine/object-data/entry/ability-type/resolve.lua +39 -0
  322. package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
  323. package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
  324. package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
  325. package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
  326. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  327. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  328. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  329. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  330. package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
  331. package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
  332. package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
  333. package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
  334. package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
  335. package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
  336. package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
  337. package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
  338. package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
  339. package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
  340. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  341. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  342. package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
  343. package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
  344. package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
  345. package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
  346. package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
  347. package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
  348. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
  349. package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
  350. package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
  351. package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
  352. package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
  353. package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
  354. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  355. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  356. package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
  357. package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
  358. package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
  359. package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
  360. package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
  361. package/engine/object-data/entry/ability-type/talents.lua +27 -0
  362. package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
  363. package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
  364. package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
  365. package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
  366. package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
  367. package/engine/object-data/entry/ability-type/warcry.lua +26 -0
  368. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  369. package/engine/object-data/entry/ability-type/web.lua +52 -0
  370. package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
  371. package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
  372. package/engine/object-data/entry/ability-type.d.ts +42 -21
  373. package/engine/object-data/entry/ability-type.lua +338 -44
  374. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  375. package/engine/object-data/entry/buff-type/applicable.lua +143 -202
  376. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  377. package/engine/object-data/entry/buff-type.d.ts +10 -13
  378. package/engine/object-data/entry/buff-type.lua +39 -29
  379. package/engine/object-data/entry/destructible-type.d.ts +32 -3
  380. package/engine/object-data/entry/destructible-type.lua +181 -0
  381. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  382. package/engine/object-data/entry/item-type.d.ts +32 -4
  383. package/engine/object-data/entry/item-type.lua +177 -2
  384. package/engine/object-data/entry/lightning-type.d.ts +6 -9
  385. package/engine/object-data/entry/lightning-type.lua +1 -1
  386. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  387. package/engine/object-data/entry/sound-preset.lua +140 -0
  388. package/engine/object-data/entry/unit-type.d.ts +111 -6
  389. package/engine/object-data/entry/unit-type.lua +945 -118
  390. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  391. package/engine/object-data/entry/upgrade.d.ts +2 -3
  392. package/engine/object-data/entry/upgrade.lua +4 -4
  393. package/engine/object-data/entry.d.ts +23 -17
  394. package/engine/object-data/entry.lua +68 -32
  395. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  396. package/engine/object-field/ability.d.ts +33 -8
  397. package/engine/object-field/ability.lua +63 -3
  398. package/engine/object-field/item.d.ts +22 -0
  399. package/engine/object-field/item.lua +118 -0
  400. package/engine/object-field/unit.d.ts +72 -2
  401. package/engine/object-field/unit.lua +268 -4
  402. package/engine/object-field.d.ts +30 -10
  403. package/engine/object-field.lua +386 -119
  404. package/engine/random.d.ts +11 -0
  405. package/engine/random.lua +30 -0
  406. package/engine/standard/entries/ability-type.d.ts +3102 -7
  407. package/engine/standard/entries/ability-type.lua +0 -6
  408. package/engine/standard/entries/buff-type.d.ts +48 -0
  409. package/engine/standard/entries/buff-type.lua +46 -0
  410. package/engine/standard/entries/item-type.d.ts +1299 -0
  411. package/engine/standard/entries/item-type.lua +2 -0
  412. package/engine/standard/entries/lightning-type.d.ts +42 -15
  413. package/engine/standard/entries/lightning-type.lua +0 -14
  414. package/engine/standard/entries/sound-preset.d.ts +10 -0
  415. package/engine/standard/entries/sound-preset.lua +10 -0
  416. package/engine/standard/entries/unit-type.d.ts +47 -1
  417. package/engine/standard/entries/unit-type.lua +47 -1
  418. package/engine/standard/fields/ability.d.ts +5 -3
  419. package/engine/standard/fields/ability.lua +5 -3
  420. package/engine/standard/fields/item.d.ts +4 -0
  421. package/engine/standard/fields/item.lua +6 -0
  422. package/engine/standard/fields/unit.d.ts +12 -0
  423. package/engine/standard/fields/unit.lua +20 -0
  424. package/engine/synchronization.d.ts +11 -0
  425. package/engine/synchronization.lua +77 -0
  426. package/engine/text-tag.d.ts +36 -2
  427. package/engine/text-tag.lua +250 -10
  428. package/engine/unit.d.ts +14 -0
  429. package/engine/unit.lua +23 -2
  430. package/event.d.ts +3 -4
  431. package/event.lua +9 -5
  432. package/global/vec2.lua +1 -0
  433. package/index.d.ts +1 -0
  434. package/index.lua +1 -0
  435. package/lualib_bundle.lua +147 -43
  436. package/math/vec2.d.ts +2 -9
  437. package/math.d.ts +2 -2
  438. package/math.lua +14 -0
  439. package/net/socket.d.ts +7 -1
  440. package/net/socket.lua +45 -4
  441. package/network.d.ts +1 -0
  442. package/network.lua +28 -3
  443. package/objutil/ability.d.ts +0 -1
  444. package/objutil/buff.d.ts +0 -1
  445. package/objutil/buff.lua +13 -12
  446. package/objutil/object.d.ts +0 -1
  447. package/objutil/object.lua +1 -1
  448. package/objutil/unit.d.ts +0 -1
  449. package/objutil/unit.lua +8 -0
  450. package/operation.d.ts +8 -1
  451. package/operation.lua +38 -18
  452. package/package.json +3 -24
  453. package/patch-lua.d.ts +0 -0
  454. package/patch-lua.lua +25 -0
  455. package/patch-lualib.lua +1 -1
  456. package/property.d.ts +55 -0
  457. package/property.lua +374 -0
  458. package/string.d.ts +30 -0
  459. package/string.lua +14 -0
  460. package/util/stream.d.ts +0 -1
  461. package/utility/arrays.d.ts +19 -6
  462. package/utility/arrays.lua +60 -3
  463. package/utility/bit-set.d.ts +0 -2
  464. package/utility/callback-array.d.ts +17 -0
  465. package/utility/callback-array.lua +61 -0
  466. package/utility/functions.d.ts +8 -0
  467. package/utility/functions.lua +13 -0
  468. package/utility/lazy.d.ts +2 -0
  469. package/utility/lazy.lua +14 -0
  470. package/utility/linked-map.d.ts +35 -0
  471. package/utility/linked-map.lua +107 -0
  472. package/utility/linked-set.d.ts +17 -4
  473. package/utility/linked-set.lua +70 -3
  474. package/utility/lua-maps.d.ts +16 -4
  475. package/utility/lua-maps.lua +53 -2
  476. package/utility/lua-sets.d.ts +3 -2
  477. package/utility/lua-sets.lua +7 -0
  478. package/utility/random.d.ts +102 -0
  479. package/utility/random.lua +273 -0
  480. package/utility/records.lua +20 -1
  481. package/utility/reflection.lua +11 -7
  482. package/utility/types.d.ts +6 -2
  483. package/utility/unordered-map.d.ts +27 -0
  484. package/utility/unordered-map.lua +99 -0
  485. package/core/mapbounds.d.ts +0 -8
  486. package/core/mapbounds.lua +0 -12
  487. package/core/types/order.d.ts +0 -25
  488. package/core/types/order.lua +0 -55
  489. /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.d.ts} +0 -0
  490. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  491. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  492. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -20,6 +20,15 @@ local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLe
20
20
  local ObjectDataEntry = ____entry.ObjectDataEntry
21
21
  local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
22
22
  local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
23
+ local ____linked_2Dset = require("utility.linked-set")
24
+ local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
25
+ local ____lua_2Dmaps = require("utility.lua-maps")
26
+ local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
27
+ local getOrPut = ____lua_2Dmaps.getOrPut
28
+ local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
29
+ local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
30
+ local ____arrays = require("utility.arrays")
31
+ local emptyArray = ____arrays.emptyArray
23
32
  local compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId = {}
24
33
  local defaultValueByObjectDataEntryIdByObjectFieldId = postcompile(function() return compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId end)
25
34
  local objectFieldById = {}
@@ -29,7 +38,11 @@ local idGenerator = __TS__New(
29
38
  )
30
39
  local ObjectFieldBase = __TS__Class()
31
40
  ObjectFieldBase.name = "ObjectFieldBase"
32
- function ObjectFieldBase.prototype.____constructor(self, id)
41
+ function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
42
+ if isGlobal == nil then
43
+ isGlobal = false
44
+ end
45
+ self.isGlobal = isGlobal
33
46
  self.valueByInstance = setmetatable({}, {__mode = "k"})
34
47
  if objectFieldById[id] ~= nil then
35
48
  error(
@@ -46,10 +59,15 @@ end
46
59
  function ObjectFieldBase.prototype.supports(self, instance)
47
60
  return __TS__InstanceOf(instance, self.instanceClass)
48
61
  end
49
- function ObjectFieldBase.create(self, id)
62
+ function ObjectFieldBase.prototype.hasValue(self, objectDataEntryId)
63
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
64
+ return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[objectDataEntryId] ~= nil or self:hasNativeFieldValue(objectDataEntryId)
65
+ end
66
+ function ObjectFieldBase.create(self, id, isGlobal)
50
67
  return __TS__New(
51
68
  self,
52
- id or idGenerator:next()
69
+ id or idGenerator:next(),
70
+ isGlobal
53
71
  )
54
72
  end
55
73
  function ObjectFieldBase.of(self, id)
@@ -71,10 +89,7 @@ ____exports.ObjectField = __TS__Class()
71
89
  local ObjectField = ____exports.ObjectField
72
90
  ObjectField.name = "ObjectField"
73
91
  __TS__ClassExtends(ObjectField, ObjectFieldBase)
74
- function ObjectField.prototype.accepts(self, value)
75
- return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
76
- end
77
- function ObjectField.prototype.getValue(self, entry)
92
+ function ObjectField.prototype.getValue(self, entry, includeModifiers)
78
93
  if __TS__InstanceOf(entry, ObjectDataEntry) then
79
94
  local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
80
95
  if defaultValueByObjectDataEntryId ~= nil then
@@ -85,22 +100,16 @@ function ObjectField.prototype.getValue(self, entry)
85
100
  end
86
101
  return self.defaultValue
87
102
  end
88
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
89
- if defaultValueByObjectDataEntryId ~= nil then
90
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
91
- if defaultValue ~= nil then
92
- local ____self_valueByInstance_entry_0 = self.valueByInstance[entry]
93
- if ____self_valueByInstance_entry_0 == nil then
94
- ____self_valueByInstance_entry_0 = defaultValue
103
+ if not includeModifiers then
104
+ local originalValueByInstance = self.originalValueByInstance
105
+ if originalValueByInstance ~= nil then
106
+ local originalValue = originalValueByInstance[entry]
107
+ if originalValue ~= nil then
108
+ return originalValue
95
109
  end
96
- return ____self_valueByInstance_entry_0
97
110
  end
98
111
  end
99
- local ____temp_1 = self:getNativeFieldValue(entry)
100
- if ____temp_1 == nil then
101
- ____temp_1 = self.defaultValue
102
- end
103
- return ____temp_1
112
+ return self:getActualValue(entry)
104
113
  end
105
114
  function ObjectField.prototype.setValue(self, entry, value)
106
115
  if __TS__InstanceOf(entry, ObjectDataEntry) then
@@ -115,36 +124,84 @@ function ObjectField.prototype.setValue(self, entry, value)
115
124
  defaultValueByObjectDataEntryId[entry.id] = value
116
125
  return true
117
126
  end
118
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
119
- if defaultValueByObjectDataEntryId ~= nil then
120
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
121
- if defaultValue ~= nil then
122
- local ____self_valueByInstance_entry_2 = self.valueByInstance[entry]
123
- if ____self_valueByInstance_entry_2 == nil then
124
- ____self_valueByInstance_entry_2 = defaultValue
125
- end
126
- local ____self_valueByInstance_entry_2_3 = ____self_valueByInstance_entry_2
127
- if ____self_valueByInstance_entry_2_3 == nil then
128
- ____self_valueByInstance_entry_2_3 = self.defaultValue
127
+ local previousOriginalValue
128
+ local modifiersByInstance = self.modifiersByInstance
129
+ if modifiersByInstance ~= nil then
130
+ local modifiers = modifiersByInstance[entry]
131
+ if modifiers ~= nil and modifiers.size ~= 0 then
132
+ local originalValueByInstance = self.originalValueByInstance
133
+ if originalValueByInstance == nil then
134
+ originalValueByInstance = mutableWeakLuaMap()
135
+ self.originalValueByInstance = originalValueByInstance
129
136
  end
130
- local previousValue = ____self_valueByInstance_entry_2_3
131
- if value ~= previousValue then
132
- self.valueByInstance[entry] = value
133
- self:invokeValueChangeEvent(entry, self, previousValue, value)
137
+ previousOriginalValue = originalValueByInstance[entry]
138
+ if value == previousOriginalValue then
139
+ return true
134
140
  end
135
- return true
141
+ originalValueByInstance[entry] = value
142
+ value = (self:calculateActualValue(entry))
136
143
  end
137
144
  end
138
- local previousValue = self:getNativeFieldValue(entry)
139
- if value ~= previousValue then
140
- if self:setNativeFieldValue(entry, value) then
141
- self:invokeValueChangeEvent(entry, self, previousValue, value)
142
- else
143
- return false
145
+ local previousValue = self:setActualValue(entry, value)
146
+ if previousValue == nil then
147
+ return false
148
+ end
149
+ if previousOriginalValue ~= nil or value ~= previousValue then
150
+ local ____self_invokeValueChangeEvent_2 = self.invokeValueChangeEvent
151
+ local ____entry_1 = entry
152
+ local ____previousOriginalValue_0 = previousOriginalValue
153
+ if ____previousOriginalValue_0 == nil then
154
+ ____previousOriginalValue_0 = previousValue
144
155
  end
156
+ ____self_invokeValueChangeEvent_2(
157
+ self,
158
+ ____entry_1,
159
+ self,
160
+ ____previousOriginalValue_0,
161
+ value
162
+ )
145
163
  end
146
164
  return true
147
165
  end
166
+ function ObjectField.prototype.updateActualValue(self, instance)
167
+ local actualValue, hasModifiers = self:calculateActualValue(instance)
168
+ if hasModifiers then
169
+ self:setActualValue(instance, actualValue)
170
+ end
171
+ end
172
+ function ObjectField.prototype.applyModifier(self, instance, modifier)
173
+ local modifiersByInstance = self.modifiersByInstance
174
+ if modifiersByInstance == nil then
175
+ modifiersByInstance = mutableWeakLuaMap()
176
+ self.modifiersByInstance = modifiersByInstance
177
+ end
178
+ if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
179
+ local originalValueByInstance = self.originalValueByInstance
180
+ if originalValueByInstance == nil then
181
+ originalValueByInstance = mutableWeakLuaMap()
182
+ self.originalValueByInstance = originalValueByInstance
183
+ end
184
+ local ____originalValueByInstance_4 = originalValueByInstance
185
+ local ____instance_5 = instance
186
+ local ____originalValueByInstance_instance_3 = originalValueByInstance[instance]
187
+ if ____originalValueByInstance_instance_3 == nil then
188
+ ____originalValueByInstance_instance_3 = self:getActualValue(instance)
189
+ end
190
+ ____originalValueByInstance_4[____instance_5] = ____originalValueByInstance_instance_3
191
+ self:setActualValue(instance, (self:calculateActualValue(instance)))
192
+ end
193
+ end
194
+ function ObjectField.prototype.removeModifier(self, instance, modifier)
195
+ local modifiersByInstance = self.modifiersByInstance
196
+ if modifiersByInstance ~= nil then
197
+ local modifiers = modifiersByInstance[instance]
198
+ if modifiers ~= nil and modifiers:remove(modifier) then
199
+ self:setActualValue(instance, (self:calculateActualValue(instance)))
200
+ return true
201
+ end
202
+ end
203
+ return false
204
+ end
148
205
  function ObjectField.prototype.removeValue(self, entry)
149
206
  if not warpack.compiletime then
150
207
  return false
@@ -159,6 +216,79 @@ function ObjectField.prototype.removeValue(self, entry)
159
216
  end
160
217
  return false
161
218
  end
219
+ function ObjectField.prototype.trySetValue(self, entry, value)
220
+ if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
221
+ return false
222
+ end
223
+ return self:setValue(entry, value)
224
+ end
225
+ function ObjectField.prototype.getActualValue(self, instance)
226
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
227
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
228
+ local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
229
+ if defaultValue ~= nil or self.isGlobal then
230
+ local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
231
+ if ____self_valueByInstance_instance_6 == nil then
232
+ ____self_valueByInstance_instance_6 = defaultValue
233
+ end
234
+ local ____self_valueByInstance_instance_6_7 = ____self_valueByInstance_instance_6
235
+ if ____self_valueByInstance_instance_6_7 == nil then
236
+ ____self_valueByInstance_instance_6_7 = self.defaultValue
237
+ end
238
+ return ____self_valueByInstance_instance_6_7
239
+ end
240
+ end
241
+ local ____temp_8 = self:getNativeFieldValue(instance)
242
+ if ____temp_8 == nil then
243
+ ____temp_8 = self.defaultValue
244
+ end
245
+ return ____temp_8
246
+ end
247
+ function ObjectField.prototype.setActualValue(self, instance, value)
248
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
249
+ local objectDataEntryId = self:getObjectDataEntryId(instance)
250
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
251
+ local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
252
+ if defaultValue ~= nil or self.isGlobal then
253
+ local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
254
+ if ____self_valueByInstance_instance_9 == nil then
255
+ ____self_valueByInstance_instance_9 = defaultValue
256
+ end
257
+ local ____self_valueByInstance_instance_9_10 = ____self_valueByInstance_instance_9
258
+ if ____self_valueByInstance_instance_9_10 == nil then
259
+ ____self_valueByInstance_instance_9_10 = self.defaultValue
260
+ end
261
+ local previousValue = ____self_valueByInstance_instance_9_10
262
+ self.valueByInstance[instance] = value
263
+ return previousValue
264
+ end
265
+ end
266
+ if not self:hasNativeFieldValue(objectDataEntryId) then
267
+ return nil
268
+ end
269
+ local previousValue = self:getNativeFieldValue(instance)
270
+ if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
271
+ return nil
272
+ end
273
+ return previousValue
274
+ end
275
+ function ObjectField.prototype.calculateActualValue(self, instance)
276
+ local ____opt_11 = self.originalValueByInstance
277
+ local originalValue = ____opt_11 and ____opt_11[instance]
278
+ local ____opt_13 = self.modifiersByInstance
279
+ local modifiers = ____opt_13 and ____opt_13[instance]
280
+ if originalValue ~= nil then
281
+ local value = originalValue
282
+ if modifiers ~= nil then
283
+ for modifier in pairs(modifiers) do
284
+ value = modifier(instance, value, originalValue)
285
+ end
286
+ return value, true
287
+ end
288
+ return value, false
289
+ end
290
+ return self.defaultValue, false
291
+ end
162
292
  function ObjectField.prototype.invokeValueChangeEvent(self, ...)
163
293
  self:invokeValueChangeEventRecursive(
164
294
  getClass(self),
@@ -212,37 +342,37 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
212
342
  if defaultValueByObjectDataEntryId ~= nil then
213
343
  local value = defaultValueByObjectDataEntryId[entry.id]
214
344
  if value ~= nil then
215
- local ____temp_5
345
+ local ____temp_16
216
346
  if index == nil then
217
- ____temp_5 = value
347
+ ____temp_16 = value
218
348
  else
219
- local ____value_index_4 = value[index + 1]
220
- if ____value_index_4 == nil then
221
- ____value_index_4 = self.defaultValue
349
+ local ____value_index_15 = value[index + 1]
350
+ if ____value_index_15 == nil then
351
+ ____value_index_15 = self.defaultValue
222
352
  end
223
- ____temp_5 = ____value_index_4
353
+ ____temp_16 = ____value_index_15
224
354
  end
225
- return ____temp_5
355
+ return ____temp_16
226
356
  end
227
357
  end
228
358
  return index == nil and ({}) or self.defaultValue
229
359
  end
230
360
  local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
231
- if defaultValueByObjectDataEntryId ~= nil then
232
- local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
233
- if defaultValue ~= nil then
234
- local value = self.valueByInstance[entry] or defaultValue
235
- local ____temp_7
361
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
362
+ local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
363
+ if defaultValue ~= nil or self.isGlobal then
364
+ local value = self.valueByInstance[entry] or defaultValue or emptyArray()
365
+ local ____temp_18
236
366
  if index == nil then
237
- ____temp_7 = value
367
+ ____temp_18 = value
238
368
  else
239
- local ____value_index_6 = value[index + 1]
240
- if ____value_index_6 == nil then
241
- ____value_index_6 = self.defaultValue
369
+ local ____value_index_17 = value[index + 1]
370
+ if ____value_index_17 == nil then
371
+ ____value_index_17 = self.defaultValue
242
372
  end
243
- ____temp_7 = ____value_index_6
373
+ ____temp_18 = ____value_index_17
244
374
  end
245
- return ____temp_7
375
+ return ____temp_18
246
376
  end
247
377
  end
248
378
  if index ~= nil then
@@ -273,12 +403,12 @@ ____exports.ObjectLevelField = __TS__Class()
273
403
  local ObjectLevelField = ____exports.ObjectLevelField
274
404
  ObjectLevelField.name = "ObjectLevelField"
275
405
  __TS__ClassExtends(ObjectLevelField, ObjectFieldBase)
276
- function ObjectLevelField.prototype.getValue(self, entry, level)
406
+ function ObjectLevelField.prototype.getValue(self, entry, level, includeModifiers)
277
407
  if level == nil then
278
408
  local result = {}
279
409
  local levelCount = self:getLevelCount(entry)
280
410
  for i = 0, levelCount - 1 do
281
- result[i + 1] = self:getValue(entry, i)
411
+ result[i + 1] = self:getValue(entry, i, includeModifiers)
282
412
  end
283
413
  return result
284
414
  end
@@ -287,36 +417,24 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
287
417
  if defaultValueByObjectDataEntryId ~= nil then
288
418
  local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
289
419
  if valueByLevel ~= nil then
290
- local ____valueByLevel_index_8 = valueByLevel[level + 1]
291
- if ____valueByLevel_index_8 == nil then
292
- ____valueByLevel_index_8 = self.defaultValue
420
+ local ____valueByLevel_index_19 = valueByLevel[level + 1]
421
+ if ____valueByLevel_index_19 == nil then
422
+ ____valueByLevel_index_19 = self.defaultValue
293
423
  end
294
- return ____valueByLevel_index_8
424
+ return ____valueByLevel_index_19
295
425
  end
296
426
  end
297
427
  return self.defaultValue
298
428
  end
299
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
300
- if defaultValueByObjectDataEntryId ~= nil then
301
- local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
302
- if defaultValueByLevel ~= nil then
303
- local ____opt_9 = self.valueByInstance[entry]
304
- local ____temp_11 = ____opt_9 and ____opt_9[level + 1]
305
- if ____temp_11 == nil then
306
- ____temp_11 = defaultValueByLevel[level + 1]
307
- end
308
- local ____temp_11_12 = ____temp_11
309
- if ____temp_11_12 == nil then
310
- ____temp_11_12 = self.defaultValue
311
- end
312
- return ____temp_11_12
429
+ if not includeModifiers then
430
+ local ____opt_22 = self.originalValueByLevelByInstance
431
+ local ____opt_20 = ____opt_22 and ____opt_22[entry]
432
+ local originalValue = ____opt_20 and ____opt_20[level]
433
+ if originalValue ~= nil then
434
+ return originalValue
313
435
  end
314
436
  end
315
- local ____temp_13 = self:getNativeFieldValue(entry, level)
316
- if ____temp_13 == nil then
317
- ____temp_13 = self.defaultValue
318
- end
319
- return ____temp_13
437
+ return self:getActualValue(entry, level)
320
438
  end
321
439
  function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
322
440
  if value == nil then
@@ -356,52 +474,201 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
356
474
  valueByLevel[level + 1] = value
357
475
  return true
358
476
  end
359
- local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
360
- if defaultValueByObjectDataEntryId ~= nil then
361
- local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
362
- if defaultValueByLevel ~= nil then
363
- local valueByLevel = self.valueByInstance[entry]
364
- if valueByLevel == nil then
365
- valueByLevel = {}
366
- self.valueByInstance[entry] = valueByLevel
477
+ local previousOriginalValue
478
+ local modifiersByInstance = self.modifiersByInstance
479
+ if modifiersByInstance ~= nil then
480
+ local modifiers = modifiersByInstance[entry]
481
+ if modifiers ~= nil and modifiers.size ~= 0 then
482
+ local originalValueByLevelByInstance = self.originalValueByLevelByInstance
483
+ if originalValueByLevelByInstance == nil then
484
+ originalValueByLevelByInstance = mutableWeakLuaMap()
485
+ self.originalValueByLevelByInstance = originalValueByLevelByInstance
367
486
  end
368
- local ____valueByLevel_index_14 = valueByLevel[level + 1]
369
- if ____valueByLevel_index_14 == nil then
370
- ____valueByLevel_index_14 = defaultValueByLevel[level + 1]
487
+ local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
488
+ previousOriginalValue = originalValueByLevel[level]
489
+ if value == previousOriginalValue then
490
+ return true
371
491
  end
372
- local ____valueByLevel_index_14_15 = ____valueByLevel_index_14
373
- if ____valueByLevel_index_14_15 == nil then
374
- ____valueByLevel_index_14_15 = self.defaultValue
492
+ originalValueByLevel[level] = value
493
+ value = self:calculateActualValue(entry, level)
494
+ end
495
+ end
496
+ local previousValue = self:setActualValue(entry, level, value)
497
+ if previousValue == nil then
498
+ return false
499
+ end
500
+ if previousOriginalValue ~= nil or value ~= previousValue then
501
+ local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
502
+ local ____entry_25 = entry
503
+ local ____previousOriginalValue_24 = previousOriginalValue
504
+ if ____previousOriginalValue_24 == nil then
505
+ ____previousOriginalValue_24 = previousValue
506
+ end
507
+ ____self_invokeValueChangeEvent_26(
508
+ self,
509
+ ____entry_25,
510
+ self,
511
+ level,
512
+ ____previousOriginalValue_24,
513
+ value
514
+ )
515
+ end
516
+ return true
517
+ end
518
+ function ObjectLevelField.prototype.updateActualValue(self, instance, level)
519
+ local modifiersByInstance = self.modifiersByInstance
520
+ if modifiersByInstance == nil then
521
+ return
522
+ end
523
+ local modifiers = modifiersByInstance[instance]
524
+ if modifiers == nil or modifiers.size == 0 then
525
+ return
526
+ end
527
+ if level == nil then
528
+ for i = 0, self:getLevelCount(instance) - 1 do
529
+ self:updateActualValue(instance, i)
530
+ end
531
+ return
532
+ end
533
+ self:setActualValue(
534
+ instance,
535
+ level,
536
+ self:calculateActualValue(instance, level)
537
+ )
538
+ end
539
+ function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
540
+ local modifiersByInstance = self.modifiersByInstance
541
+ if modifiersByInstance == nil then
542
+ modifiersByInstance = mutableWeakLuaMap()
543
+ self.modifiersByInstance = modifiersByInstance
544
+ end
545
+ if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
546
+ local originalValueByLevelByInstance = self.originalValueByLevelByInstance
547
+ if originalValueByLevelByInstance == nil then
548
+ originalValueByLevelByInstance = mutableWeakLuaMap()
549
+ self.originalValueByLevelByInstance = originalValueByLevelByInstance
550
+ end
551
+ local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
552
+ local levelCount = self:getLevelCount(instance)
553
+ for level = 0, levelCount - 1 do
554
+ local ____originalValueByLevel_level_27 = originalValueByLevel[level]
555
+ if ____originalValueByLevel_level_27 == nil then
556
+ ____originalValueByLevel_level_27 = self:getActualValue(instance, level)
375
557
  end
376
- local previousValue = ____valueByLevel_index_14_15
377
- if value ~= previousValue then
378
- valueByLevel[level + 1] = value
379
- self:invokeValueChangeEvent(
380
- entry,
381
- self,
558
+ originalValueByLevel[level] = ____originalValueByLevel_level_27
559
+ self:setActualValue(
560
+ instance,
561
+ level,
562
+ self:calculateActualValue(instance, level)
563
+ )
564
+ end
565
+ end
566
+ end
567
+ function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
568
+ local modifiersByInstance = self.modifiersByInstance
569
+ if modifiersByInstance ~= nil then
570
+ local modifiers = modifiersByInstance[instance]
571
+ if modifiers ~= nil and modifiers:remove(modifier) then
572
+ local levelCount = self:getLevelCount(instance)
573
+ for level = 0, levelCount - 1 do
574
+ self:setActualValue(
575
+ instance,
382
576
  level,
383
- previousValue,
384
- value
577
+ self:calculateActualValue(instance, level)
385
578
  )
386
579
  end
387
580
  return true
388
581
  end
389
582
  end
390
- local previousValue = self:getNativeFieldValue(entry, level)
391
- if value ~= previousValue then
392
- if self:setNativeFieldValue(entry, level, value) then
393
- self:invokeValueChangeEvent(
394
- entry,
395
- self,
396
- level,
397
- previousValue,
398
- value
399
- )
400
- else
583
+ return false
584
+ end
585
+ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
586
+ if value ~= nil then
587
+ if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
588
+ return false
589
+ end
590
+ if type(levelOrValue) ~= "number" then
401
591
  return false
402
592
  end
593
+ return self:setValue(entry, levelOrValue, value)
403
594
  end
404
- return true
595
+ if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
596
+ return false
597
+ end
598
+ return self:setValue(entry, levelOrValue)
599
+ end
600
+ function ObjectLevelField.prototype.getActualValue(self, instance, level)
601
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
602
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
603
+ local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
604
+ if defaultValueByLevel ~= nil or self.isGlobal then
605
+ local ____opt_28 = self.valueByInstance[instance]
606
+ local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
607
+ if ____temp_30 == nil then
608
+ ____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
609
+ end
610
+ local ____temp_30_31 = ____temp_30
611
+ if ____temp_30_31 == nil then
612
+ ____temp_30_31 = self.defaultValue
613
+ end
614
+ return ____temp_30_31
615
+ end
616
+ end
617
+ local ____temp_32 = self:getNativeFieldValue(instance, level)
618
+ if ____temp_32 == nil then
619
+ ____temp_32 = self.defaultValue
620
+ end
621
+ return ____temp_32
622
+ end
623
+ function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
624
+ local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
625
+ local objectDataEntryId = self:getObjectDataEntryId(instance)
626
+ if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
627
+ local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
628
+ if defaultValueByLevel ~= nil or self.isGlobal then
629
+ local valueByLevel = self.valueByInstance[instance]
630
+ if valueByLevel == nil then
631
+ valueByLevel = {}
632
+ self.valueByInstance[instance] = valueByLevel
633
+ end
634
+ local ____valueByLevel_index_33 = valueByLevel[level + 1]
635
+ if ____valueByLevel_index_33 == nil then
636
+ ____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
637
+ end
638
+ local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
639
+ if ____valueByLevel_index_33_34 == nil then
640
+ ____valueByLevel_index_33_34 = self.defaultValue
641
+ end
642
+ local previousValue = ____valueByLevel_index_33_34
643
+ valueByLevel[level + 1] = value
644
+ return previousValue
645
+ end
646
+ end
647
+ if not self:hasNativeFieldValue(objectDataEntryId) then
648
+ return nil
649
+ end
650
+ local previousValue = self:getNativeFieldValue(instance, level)
651
+ if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
652
+ return nil
653
+ end
654
+ return previousValue
655
+ end
656
+ function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
657
+ local ____opt_37 = self.originalValueByLevelByInstance
658
+ local ____opt_35 = ____opt_37 and ____opt_37[instance]
659
+ local originalValue = ____opt_35 and ____opt_35[level]
660
+ local ____opt_39 = self.modifiersByInstance
661
+ local modifiers = ____opt_39 and ____opt_39[instance]
662
+ if originalValue ~= nil then
663
+ local value = originalValue
664
+ if modifiers ~= nil then
665
+ for modifier in pairs(modifiers) do
666
+ value = modifier(instance, level, value, originalValue)
667
+ end
668
+ end
669
+ return value
670
+ end
671
+ return self.defaultValue
405
672
  end
406
673
  function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
407
674
  self:invokeValueChangeEventRecursive(
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
+ import { ReadonlyNonEmptyArray } from "../utility/types";
2
3
  export declare const randomAngle: () => number;
3
4
  export declare const randomInteger: {
4
5
  (upperBound?: number): number;
@@ -8,3 +9,13 @@ export declare const randomFloat: {
8
9
  (upperBound?: number): number;
9
10
  (lowerBound: number, upperBound: number): number;
10
11
  };
12
+ export declare const randomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
13
+ export declare const randomElement: {
14
+ <T>(array: ReadonlyNonEmptyArray<T>): T;
15
+ <T>(array: ReadonlyArray<T>): T | undefined;
16
+ };
17
+ export declare const random: {
18
+ <T>(element: T, ...elements: T[]): T;
19
+ <T>(...elements: T[]): T | undefined;
20
+ };
21
+ export declare const shuffle: (array: unknown[]) => void;