warscript 0.0.1-dev.a4deb44 → 0.0.1-dev.a5a2f5e

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 (319) 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/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +164 -23
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/item.d.ts +1 -0
  16. package/core/types/item.lua +1 -0
  17. package/core/types/missile.d.ts +2 -2
  18. package/core/types/missile.lua +8 -2
  19. package/core/types/player.d.ts +17 -1
  20. package/core/types/player.lua +70 -24
  21. package/core/types/playerCamera.d.ts +2 -0
  22. package/core/types/playerCamera.lua +123 -5
  23. package/core/types/sound.d.ts +17 -24
  24. package/core/types/sound.lua +100 -25
  25. package/core/types/tileCell.d.ts +11 -1
  26. package/core/types/tileCell.lua +97 -0
  27. package/core/types/timer.d.ts +9 -8
  28. package/core/types/timer.lua +45 -23
  29. package/core/types/unit.lua +8 -0
  30. package/core/util.d.ts +1 -1
  31. package/core/util.lua +18 -1
  32. package/decl/index.d.ts +1 -0
  33. package/decl/native.d.ts +846 -790
  34. package/destroyable.d.ts +1 -0
  35. package/destroyable.lua +9 -0
  36. package/engine/ability.d.ts +1 -1
  37. package/engine/behavior.d.ts +24 -11
  38. package/engine/behavior.lua +233 -73
  39. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  40. package/engine/behaviour/ability/always-enabled.lua +31 -0
  41. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  42. package/engine/behaviour/ability/apply-buff.lua +36 -4
  43. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  44. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  45. package/engine/behaviour/ability/damage.d.ts +42 -11
  46. package/engine/behaviour/ability/damage.lua +89 -37
  47. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  48. package/engine/behaviour/ability/emulate-impact.lua +44 -0
  49. package/engine/behaviour/ability/heal.d.ts +33 -6
  50. package/engine/behaviour/ability/heal.lua +89 -10
  51. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  52. package/engine/behaviour/ability/instant-impact.lua +4 -15
  53. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  54. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  55. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  56. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  57. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  58. package/engine/behaviour/ability/restore-mana.lua +29 -0
  59. package/engine/behaviour/ability.d.ts +35 -7
  60. package/engine/behaviour/ability.lua +183 -27
  61. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  62. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  63. package/engine/behaviour/unit.d.ts +48 -4
  64. package/engine/behaviour/unit.lua +292 -2
  65. package/engine/buff.d.ts +160 -53
  66. package/engine/buff.lua +711 -269
  67. package/engine/game-map.d.ts +7 -0
  68. package/engine/game-map.lua +32 -0
  69. package/engine/internal/ability.d.ts +23 -14
  70. package/engine/internal/ability.lua +129 -85
  71. package/engine/internal/item/ability.lua +162 -4
  72. package/engine/internal/item/fields.d.ts +12 -0
  73. package/engine/internal/item/fields.lua +33 -0
  74. package/engine/internal/item+owner.lua +12 -6
  75. package/engine/internal/item.d.ts +16 -19
  76. package/engine/internal/item.lua +174 -94
  77. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  78. package/engine/internal/mechanics/ability-duration.lua +3 -1
  79. package/engine/internal/mechanics/cast-ability.lua +89 -0
  80. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  81. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  82. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  83. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  84. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  85. package/engine/internal/misc/frame-coordinates.lua +21 -0
  86. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  87. package/engine/internal/misc/get-terrain-z.lua +11 -0
  88. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  89. package/engine/internal/misc/player-local-handle.lua +5 -0
  90. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  91. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  92. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  93. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  94. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  95. package/engine/internal/object-data/evasion-probability.lua +16 -0
  96. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  97. package/engine/internal/object-data/health-bonus.lua +16 -0
  98. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  99. package/engine/internal/object-data/mana-bonus.lua +16 -0
  100. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  101. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  102. package/engine/internal/unit/ability.d.ts +45 -1
  103. package/engine/internal/unit/ability.lua +128 -17
  104. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  105. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  106. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  107. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  108. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  109. package/engine/internal/unit/allowed-targets.lua +9 -1
  110. package/engine/internal/unit/attributes.d.ts +17 -0
  111. package/engine/internal/unit/attributes.lua +46 -0
  112. package/engine/internal/unit/bonus.d.ts +17 -8
  113. package/engine/internal/unit/bonus.lua +56 -4
  114. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  115. package/engine/internal/unit/detach-missiles.lua +30 -0
  116. package/engine/internal/unit/fly-height.d.ts +7 -0
  117. package/engine/internal/unit/fly-height.lua +20 -0
  118. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  119. package/engine/internal/unit/ignore-events-items.lua +5 -0
  120. package/engine/internal/unit/interrupts.d.ts +12 -0
  121. package/engine/internal/unit/interrupts.lua +28 -0
  122. package/engine/internal/unit/item.d.ts +24 -0
  123. package/engine/internal/unit/item.lua +78 -0
  124. package/engine/internal/unit/main-selected.d.ts +13 -0
  125. package/engine/internal/unit/main-selected.lua +36 -0
  126. package/engine/internal/unit/order.d.ts +20 -0
  127. package/engine/internal/unit/order.lua +136 -0
  128. package/engine/internal/unit/range-event.d.ts +12 -0
  129. package/engine/internal/unit/range-event.lua +90 -0
  130. package/engine/internal/unit/scale.d.ts +7 -0
  131. package/engine/internal/unit/scale.lua +20 -0
  132. package/engine/internal/unit+ability.lua +12 -3
  133. package/engine/internal/unit+bonus.lua +3 -3
  134. package/engine/internal/unit+damage.d.ts +2 -11
  135. package/engine/internal/unit+damage.lua +10 -14
  136. package/engine/internal/unit+spellSteal.lua +1 -2
  137. package/engine/internal/unit+transport.lua +4 -10
  138. package/engine/internal/unit-missile-launch.lua +70 -13
  139. package/engine/internal/unit.d.ts +97 -36
  140. package/engine/internal/unit.lua +701 -336
  141. package/engine/internal/utility.lua +12 -0
  142. package/engine/lightning.d.ts +12 -5
  143. package/engine/lightning.lua +48 -14
  144. package/engine/local-client.d.ts +14 -2
  145. package/engine/local-client.lua +168 -1
  146. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  147. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  148. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  149. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  150. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  151. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  152. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  153. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  154. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  155. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  156. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  157. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  158. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  159. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  160. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  161. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  162. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  163. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  164. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  165. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  166. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  167. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  168. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  169. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  170. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  171. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  172. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  173. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  174. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  175. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  176. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  177. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  178. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  179. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  180. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  181. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  182. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  183. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  184. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  185. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  186. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  187. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  188. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  189. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  190. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  191. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  192. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  193. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  194. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  195. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  196. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  197. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  198. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  199. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  200. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  201. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  202. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  203. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  204. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  205. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  206. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  207. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  208. package/engine/object-data/entry/ability-type/web.lua +52 -0
  209. package/engine/object-data/entry/ability-type.d.ts +21 -18
  210. package/engine/object-data/entry/ability-type.lua +177 -40
  211. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  212. package/engine/object-data/entry/buff-type/applicable.lua +143 -202
  213. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  214. package/engine/object-data/entry/buff-type.d.ts +6 -13
  215. package/engine/object-data/entry/buff-type.lua +13 -29
  216. package/engine/object-data/entry/destructible-type.d.ts +28 -3
  217. package/engine/object-data/entry/destructible-type.lua +155 -0
  218. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  219. package/engine/object-data/entry/item-type.d.ts +15 -2
  220. package/engine/object-data/entry/item-type.lua +93 -2
  221. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  222. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  223. package/engine/object-data/entry/sound-preset.lua +140 -0
  224. package/engine/object-data/entry/unit-type.d.ts +65 -5
  225. package/engine/object-data/entry/unit-type.lua +555 -62
  226. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  227. package/engine/object-data/entry/upgrade.d.ts +1 -2
  228. package/engine/object-data/entry/upgrade.lua +4 -4
  229. package/engine/object-data/entry.d.ts +18 -17
  230. package/engine/object-data/entry.lua +60 -32
  231. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  232. package/engine/object-field/ability.d.ts +28 -5
  233. package/engine/object-field/ability.lua +61 -7
  234. package/engine/object-field/item.d.ts +22 -0
  235. package/engine/object-field/item.lua +118 -0
  236. package/engine/object-field/unit.d.ts +72 -3
  237. package/engine/object-field/unit.lua +268 -7
  238. package/engine/object-field.d.ts +26 -8
  239. package/engine/object-field.lua +362 -117
  240. package/engine/random.d.ts +11 -0
  241. package/engine/random.lua +30 -0
  242. package/engine/standard/entries/buff-type.d.ts +3 -0
  243. package/engine/standard/entries/buff-type.lua +3 -0
  244. package/engine/standard/entries/sound-preset.d.ts +10 -0
  245. package/engine/standard/entries/sound-preset.lua +10 -0
  246. package/engine/standard/entries/unit-type.d.ts +42 -1
  247. package/engine/standard/entries/unit-type.lua +42 -1
  248. package/engine/standard/fields/ability.d.ts +5 -3
  249. package/engine/standard/fields/ability.lua +5 -3
  250. package/engine/standard/fields/item.d.ts +4 -0
  251. package/engine/standard/fields/item.lua +6 -0
  252. package/engine/standard/fields/unit.d.ts +12 -0
  253. package/engine/standard/fields/unit.lua +20 -0
  254. package/engine/synchronization.d.ts +11 -0
  255. package/engine/synchronization.lua +77 -0
  256. package/engine/text-tag.d.ts +36 -2
  257. package/engine/text-tag.lua +250 -10
  258. package/engine/unit.d.ts +10 -0
  259. package/engine/unit.lua +19 -2
  260. package/event.d.ts +2 -3
  261. package/event.lua +9 -5
  262. package/global/vec2.lua +1 -0
  263. package/index.d.ts +1 -0
  264. package/index.lua +1 -0
  265. package/lualib_bundle.lua +147 -43
  266. package/math/vec2.d.ts +2 -9
  267. package/math.d.ts +2 -2
  268. package/math.lua +14 -0
  269. package/net/socket.d.ts +7 -1
  270. package/net/socket.lua +45 -4
  271. package/network.d.ts +1 -0
  272. package/network.lua +3 -2
  273. package/objutil/ability.d.ts +0 -1
  274. package/objutil/buff.d.ts +0 -1
  275. package/objutil/buff.lua +12 -11
  276. package/objutil/object.d.ts +0 -1
  277. package/objutil/object.lua +1 -1
  278. package/objutil/unit.d.ts +0 -1
  279. package/objutil/unit.lua +8 -0
  280. package/operation.lua +1 -4
  281. package/package.json +13 -14
  282. package/patch-lua.d.ts +0 -0
  283. package/patch-lua.lua +25 -0
  284. package/patch-lualib.lua +1 -1
  285. package/property.d.ts +55 -0
  286. package/property.lua +374 -0
  287. package/string.d.ts +30 -0
  288. package/string.lua +14 -0
  289. package/util/stream.d.ts +0 -1
  290. package/utility/arrays.d.ts +13 -5
  291. package/utility/arrays.lua +45 -3
  292. package/utility/bit-set.d.ts +0 -2
  293. package/utility/callback-array.d.ts +17 -0
  294. package/utility/callback-array.lua +61 -0
  295. package/utility/functions.d.ts +8 -0
  296. package/utility/functions.lua +13 -0
  297. package/utility/lazy.d.ts +2 -0
  298. package/utility/lazy.lua +14 -0
  299. package/utility/linked-map.d.ts +35 -0
  300. package/utility/linked-map.lua +107 -0
  301. package/utility/linked-set.d.ts +16 -4
  302. package/utility/linked-set.lua +54 -3
  303. package/utility/lua-maps.d.ts +16 -4
  304. package/utility/lua-maps.lua +53 -2
  305. package/utility/lua-sets.d.ts +3 -2
  306. package/utility/lua-sets.lua +7 -0
  307. package/utility/records.lua +20 -1
  308. package/utility/reflection.lua +11 -7
  309. package/utility/types.d.ts +6 -2
  310. package/utility/unordered-map.d.ts +27 -0
  311. package/utility/unordered-map.lua +99 -0
  312. package/core/mapbounds.d.ts +0 -8
  313. package/core/mapbounds.lua +0 -12
  314. package/core/types/order.d.ts +0 -25
  315. package/core/types/order.lua +0 -55
  316. /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.d.ts} +0 -0
  317. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  318. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  319. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -5,21 +5,25 @@ local checkNotNull = ____preconditions.checkNotNull
5
5
  -- @internal For use by internal systems only.
6
6
  ____exports.implementReadonlyNumberIndexSupplier = function(clazz, supplier)
7
7
  local metatable = checkNotNull(getmetatable(clazz))
8
- local originalIndex = checkNotNull(metatable.__index)
8
+ local originalIndex = checkNotNull(rawget(metatable, "__index"))
9
9
  local memoizedValueByKey = {}
10
- metatable.__index = setmetatable(
11
- memoizedValueByKey,
12
- {__index = function(self, key)
10
+ rawset(
11
+ metatable,
12
+ "__index",
13
+ function(self, key)
13
14
  if type(key) == "number" then
14
- local value = supplier(key)
15
- memoizedValueByKey[key] = value
15
+ local value = memoizedValueByKey[key]
16
+ if value == nil then
17
+ value = supplier(key)
18
+ memoizedValueByKey[key] = value
19
+ end
16
20
  return value
17
21
  end
18
22
  if type(originalIndex) == "function" then
19
23
  return originalIndex(self, key)
20
24
  end
21
25
  return originalIndex[key]
22
- end}
26
+ end
23
27
  )
24
28
  end
25
29
  ____exports.getClass = function(object)
@@ -2,6 +2,7 @@
2
2
  export type AnyNonNullable = {};
3
3
  export type IsExactlyAny<T> = boolean extends (T extends never ? true : false) ? true : false;
4
4
  export type NonEmptyArray<T> = [T, ...T[]];
5
+ export type ReadonlyNonEmptyArray<T> = readonly [T, ...T[]];
5
6
  export type InvertRecordType<T extends Record<PropertyKey, PropertyKey | null | undefined>> = {
6
7
  [P in keyof T as NonNullable<T[P]>]: P;
7
8
  };
@@ -12,14 +13,14 @@ export type ValueOf<T> = T[keyof T];
12
13
  export type EntryOf<T> = ValueOf<{
13
14
  [K in keyof T]: [K, T[K]];
14
15
  }>;
15
- export type MutableKeys<T extends object> = {
16
+ export type MutableKeys<T extends object> = keyof T & {
16
17
  [P in keyof T]-?: IfEquals<{
17
18
  [Q in P]: T[P];
18
19
  }, {
19
20
  -readonly [Q in P]: T[P];
20
21
  }, P>;
21
22
  }[keyof T];
22
- export type ReadonlyKeys<T extends object> = {
23
+ export type ReadonlyKeys<T extends object> = keyof T & {
23
24
  [P in keyof T]-?: IfEquals<{
24
25
  [Q in P]: T[P];
25
26
  }, {
@@ -36,4 +37,7 @@ export type Flatten<T extends readonly any[], A extends readonly any[] = []> = T
36
37
  export type Prohibit<T, K extends keyof any> = T & {
37
38
  [P in K]?: never;
38
39
  };
40
+ type TupleSplit<T, N extends number, O extends readonly any[] = readonly []> = O["length"] extends N ? [O, T] : T extends readonly [infer F, ...infer R] ? TupleSplit<readonly [...R], N, readonly [...O, F]> : [O, T];
41
+ export type TakeFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[0];
42
+ export type SkipFirst<T extends readonly any[], N extends number> = TupleSplit<T, N>[1];
39
43
  export {};
@@ -0,0 +1,27 @@
1
+ /** @noSelfInFile */
2
+ type OneSidedTypeGuard = {
3
+ readonly __oneSidedTypeGuard: unique symbol;
4
+ };
5
+ export interface ReadonlyUnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
6
+ get(key: K): V | undefined;
7
+ contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
8
+ readonly size: number;
9
+ }
10
+ export interface UnorderedMap<K extends AnyNotNil, V> extends LuaPairsIterable<K, V> {
11
+ readonly __unorderedMap: unique symbol;
12
+ }
13
+ export declare class UnorderedMap<K extends AnyNotNil, V> implements ReadonlyUnorderedMap<K, V> {
14
+ private readonly v;
15
+ private s;
16
+ get(key: K): V | undefined;
17
+ getOrPut(key: K, defaultValue: (this: void) => V): V;
18
+ put(key: K, value: V): void;
19
+ remove(key: K): boolean;
20
+ contains(key: AnyNotNil): key is K & OneSidedTypeGuard;
21
+ get size(): number;
22
+ protected __len(): number;
23
+ protected __pairs(this: UnorderedMap<K, V>): ReturnType<typeof pairs>;
24
+ }
25
+ export declare const emptyUnorderedMap: <K extends AnyNotNil, V>() => ReadonlyUnorderedMap<K, V>;
26
+ export declare const mutableUnorderedMap: <K extends AnyNotNil, V>() => UnorderedMap<K, V>;
27
+ export {};
@@ -0,0 +1,99 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
5
+ local __TS__New = ____lualib.__TS__New
6
+ local ____exports = {}
7
+ local ____exception = require("exception")
8
+ local UnsupportedOperationException = ____exception.UnsupportedOperationException
9
+ ____exports.UnorderedMap = __TS__Class()
10
+ local UnorderedMap = ____exports.UnorderedMap
11
+ UnorderedMap.name = "UnorderedMap"
12
+ function UnorderedMap.prototype.____constructor(self)
13
+ self.v = {}
14
+ self.s = 0
15
+ end
16
+ function UnorderedMap.prototype.get(self, key)
17
+ return self.v[key]
18
+ end
19
+ function UnorderedMap.prototype.getOrPut(self, key, defaultValue)
20
+ local value = self.v[key]
21
+ if value ~= nil then
22
+ return value
23
+ end
24
+ value = defaultValue()
25
+ if value ~= nil then
26
+ self.v[key] = value
27
+ self.s = self.s + 1
28
+ end
29
+ return value
30
+ end
31
+ function UnorderedMap.prototype.put(self, key, value)
32
+ local has = self.v[key] ~= nil
33
+ self.v[key] = value
34
+ if value ~= nil and not has then
35
+ self.s = self.s + 1
36
+ elseif value == nil and has then
37
+ self.s = self.s - 1
38
+ end
39
+ end
40
+ function UnorderedMap.prototype.remove(self, key)
41
+ if self.v[key] ~= nil then
42
+ self.v[key] = nil
43
+ self.s = self.s - 1
44
+ return true
45
+ end
46
+ return false
47
+ end
48
+ function UnorderedMap.prototype.contains(self, key)
49
+ return self.v[key] ~= nil
50
+ end
51
+ function UnorderedMap.prototype.__len(self)
52
+ return self.s
53
+ end
54
+ function UnorderedMap.prototype.__pairs(self)
55
+ return pairs(self.v)
56
+ end
57
+ __TS__SetDescriptor(
58
+ UnorderedMap.prototype,
59
+ "size",
60
+ {get = function(self)
61
+ return self.s
62
+ end},
63
+ true
64
+ )
65
+ local EmptyUnorderedMap = __TS__Class()
66
+ EmptyUnorderedMap.name = "EmptyUnorderedMap"
67
+ __TS__ClassExtends(EmptyUnorderedMap, ____exports.UnorderedMap)
68
+ function EmptyUnorderedMap.prototype.getOrPut(self)
69
+ error(
70
+ __TS__New(UnsupportedOperationException),
71
+ 0
72
+ )
73
+ end
74
+ function EmptyUnorderedMap.prototype.put(self)
75
+ error(
76
+ __TS__New(UnsupportedOperationException),
77
+ 0
78
+ )
79
+ end
80
+ function EmptyUnorderedMap.prototype.remove(self)
81
+ error(
82
+ __TS__New(UnsupportedOperationException),
83
+ 0
84
+ )
85
+ end
86
+ function EmptyUnorderedMap.prototype.__len(self)
87
+ return 0
88
+ end
89
+ function EmptyUnorderedMap.prototype.__pairs(self)
90
+ return pairs(self.v)
91
+ end
92
+ local EMPTY_UNORDERED_MAP = __TS__New(EmptyUnorderedMap)
93
+ ____exports.emptyUnorderedMap = function()
94
+ return EMPTY_UNORDERED_MAP
95
+ end
96
+ ____exports.mutableUnorderedMap = function()
97
+ return __TS__New(____exports.UnorderedMap)
98
+ end
99
+ return ____exports
@@ -1,8 +0,0 @@
1
- /** @noSelfInFile */
2
- import { Rect } from "./types/rect";
3
- import { Region } from "./types/region";
4
- export declare const boundRect: Rect;
5
- export declare const boundRegion: Region;
6
- export declare const boundMin: Readonly<Vec2>;
7
- export declare const boundMax: Readonly<Vec2>;
8
- export declare const boundCenter: Readonly<Vec2>;
@@ -1,12 +0,0 @@
1
- local ____exports = {}
2
- local ____rect = require("core.types.rect")
3
- local Rect = ____rect.Rect
4
- local ____region = require("core.types.region")
5
- local Region = ____region.Region
6
- ____exports.boundRect = Rect:of(GetWorldBounds())
7
- ____exports.boundRegion = Region:create()
8
- ____exports.boundRegion:addRect(____exports.boundRect)
9
- ____exports.boundMin = vec2(____exports.boundRect.minX, ____exports.boundRect.minY)
10
- ____exports.boundMax = vec2(____exports.boundRect.maxX, ____exports.boundRect.maxY)
11
- ____exports.boundCenter = (____exports.boundMin + ____exports.boundMax) * 0.5
12
- return ____exports
@@ -1,25 +0,0 @@
1
- /** @noSelfInFile */
2
- import { Unit } from "./unit";
3
- import { Item } from "./item";
4
- import { Destructable } from "./destructable";
5
- export type Order = {
6
- id: number;
7
- startX: number;
8
- startY: number;
9
- } & ({
10
- type: "immediate";
11
- } | {
12
- type: "point";
13
- targetX: number;
14
- targetY: number;
15
- } | {
16
- type: "target";
17
- target: Unit | Item | Destructable;
18
- });
19
- declare module "../../engine/internal/unit" {
20
- interface Unit {
21
- readonly currentOrder: Order;
22
- readonly lastOrder: Order;
23
- issueOrder(order: Order): void;
24
- }
25
- }
@@ -1,55 +0,0 @@
1
- local ____lualib = require("lualib_bundle")
2
- local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
- local ____exports = {}
4
- local ____unit = require("core.types.unit")
5
- local Unit = ____unit.Unit
6
- local getUnitCurrentOrder = GetUnitCurrentOrder
7
- local orders = setmetatable({}, {__mode = "k"})
8
- Unit.onImmediateOrder:addListener(function(unit, orderId)
9
- orders[unit] = {id = orderId, startX = unit.x, startY = unit.y, type = "immediate"}
10
- end)
11
- Unit.onPointOrder:addListener(function(unit, orderId, x, y)
12
- orders[unit] = {
13
- id = orderId,
14
- startX = unit.x,
15
- startY = unit.y,
16
- type = "point",
17
- targetX = x,
18
- targetY = y
19
- }
20
- end)
21
- Unit.onTargetOrder:addListener(function(unit, orderId, target)
22
- orders[unit] = {
23
- id = orderId,
24
- startX = unit.x,
25
- startY = unit.y,
26
- type = "target",
27
- target = target
28
- }
29
- end)
30
- __TS__ObjectDefineProperty(
31
- Unit.prototype,
32
- "currentOrder",
33
- {get = function(self)
34
- local currentOrderId = getUnitCurrentOrder(self.handle)
35
- local lastOrder = orders[self]
36
- return lastOrder and (lastOrder.id == currentOrderId or currentOrderId == orderId("patrolAI") and lastOrder.id == orderId("patrol")) and lastOrder or ({id = 0, type = "immediate"})
37
- end}
38
- )
39
- __TS__ObjectDefineProperty(
40
- Unit.prototype,
41
- "lastOrder",
42
- {get = function(self)
43
- return orders[self] or ({id = 0, type = "immediate"})
44
- end}
45
- )
46
- Unit.prototype.issueOrder = function(self, order)
47
- if order.type == "immediate" then
48
- IssueImmediateOrderById(self.handle, order.id)
49
- elseif order.type == "point" then
50
- IssuePointOrderById(self.handle, order.id, order.targetX, order.targetY)
51
- else
52
- IssueTargetOrderById(self.handle, order.id, order.target.handle)
53
- end
54
- end
55
- return ____exports