warscript 0.0.1-dev.9ee7706 → 0.0.1-dev.a0c605a

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 (186) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/effect.d.ts +1 -3
  4. package/core/types/effect.lua +26 -29
  5. package/core/types/frame.lua +71 -22
  6. package/core/types/item.d.ts +1 -0
  7. package/core/types/item.lua +1 -0
  8. package/core/types/player.d.ts +16 -0
  9. package/core/types/player.lua +60 -15
  10. package/core/types/playerCamera.d.ts +2 -0
  11. package/core/types/playerCamera.lua +123 -5
  12. package/core/types/sound.lua +6 -1
  13. package/core/types/tileCell.d.ts +11 -1
  14. package/core/types/tileCell.lua +97 -0
  15. package/core/types/timer.d.ts +9 -8
  16. package/core/types/timer.lua +45 -23
  17. package/decl/native.d.ts +846 -790
  18. package/destroyable.d.ts +1 -0
  19. package/destroyable.lua +9 -0
  20. package/engine/behavior.d.ts +14 -1
  21. package/engine/behavior.lua +230 -70
  22. package/engine/behaviour/ability/apply-buff.lua +5 -5
  23. package/engine/behaviour/ability/damage.d.ts +9 -3
  24. package/engine/behaviour/ability/damage.lua +31 -37
  25. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  26. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  27. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  28. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  29. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  30. package/engine/behaviour/ability/restore-mana.lua +6 -6
  31. package/engine/behaviour/ability.d.ts +14 -6
  32. package/engine/behaviour/ability.lua +44 -21
  33. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  34. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  35. package/engine/behaviour/unit.d.ts +39 -3
  36. package/engine/behaviour/unit.lua +269 -6
  37. package/engine/buff.d.ts +67 -22
  38. package/engine/buff.lua +371 -182
  39. package/engine/internal/ability.d.ts +7 -1
  40. package/engine/internal/ability.lua +49 -9
  41. package/engine/internal/item/ability.lua +63 -11
  42. package/engine/internal/item/is-actively-used.d.ts +7 -0
  43. package/engine/internal/item/is-actively-used.lua +20 -0
  44. package/engine/internal/item+owner.lua +12 -6
  45. package/engine/internal/item.d.ts +16 -17
  46. package/engine/internal/item.lua +122 -60
  47. package/engine/internal/mechanics/cast-ability.lua +6 -3
  48. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  49. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  50. package/engine/internal/misc/frame-coordinates.lua +21 -0
  51. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  52. package/engine/internal/misc/get-terrain-z.lua +11 -0
  53. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  54. package/engine/internal/misc/player-local-handle.lua +5 -0
  55. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  56. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  57. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  58. package/engine/internal/object-data/health-bonus.lua +16 -0
  59. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  60. package/engine/internal/object-data/mana-bonus.lua +16 -0
  61. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  62. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  63. package/engine/internal/unit/ability.d.ts +35 -0
  64. package/engine/internal/unit/ability.lua +98 -9
  65. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  66. package/engine/internal/unit/allowed-targets.lua +9 -1
  67. package/engine/internal/unit/attributes.d.ts +17 -0
  68. package/engine/internal/unit/attributes.lua +46 -0
  69. package/engine/internal/unit/bonus.d.ts +6 -0
  70. package/engine/internal/unit/bonus.lua +33 -3
  71. package/engine/internal/unit/fly-height.d.ts +7 -0
  72. package/engine/internal/unit/fly-height.lua +20 -0
  73. package/engine/internal/unit/interrupts.d.ts +12 -0
  74. package/engine/internal/unit/interrupts.lua +28 -0
  75. package/engine/internal/unit/main-selected.lua +12 -27
  76. package/engine/internal/unit/order.d.ts +20 -0
  77. package/engine/internal/unit/order.lua +136 -0
  78. package/engine/internal/unit/range-event.d.ts +12 -0
  79. package/engine/internal/unit/range-event.lua +90 -0
  80. package/engine/internal/unit/scale.d.ts +7 -0
  81. package/engine/internal/unit/scale.lua +20 -0
  82. package/engine/internal/unit+ability.lua +10 -1
  83. package/engine/internal/unit+bonus.lua +3 -3
  84. package/engine/internal/unit+damage.d.ts +2 -11
  85. package/engine/internal/unit+damage.lua +10 -14
  86. package/engine/internal/unit+spellSteal.lua +1 -2
  87. package/engine/internal/unit-missile-launch.lua +52 -14
  88. package/engine/internal/unit.d.ts +40 -27
  89. package/engine/internal/unit.lua +382 -264
  90. package/engine/local-client.d.ts +7 -0
  91. package/engine/local-client.lua +86 -1
  92. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  93. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  94. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  95. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  96. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  97. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  98. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  99. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  100. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  101. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  102. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  103. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  104. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  105. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  106. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  107. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  108. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  109. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  110. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  111. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  112. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  113. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  114. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  115. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  116. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  117. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  118. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  119. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  120. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  121. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  122. package/engine/object-data/entry/ability-type.d.ts +13 -11
  123. package/engine/object-data/entry/ability-type.lua +115 -13
  124. package/engine/object-data/entry/buff-type/applicable.lua +113 -104
  125. package/engine/object-data/entry/buff-type.d.ts +5 -11
  126. package/engine/object-data/entry/buff-type.lua +11 -27
  127. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  128. package/engine/object-data/entry/destructible-type.lua +155 -0
  129. package/engine/object-data/entry/unit-type.d.ts +17 -4
  130. package/engine/object-data/entry/unit-type.lua +197 -85
  131. package/engine/object-field/ability.d.ts +4 -4
  132. package/engine/object-field/ability.lua +9 -8
  133. package/engine/object-field/item.d.ts +22 -0
  134. package/engine/object-field/item.lua +118 -0
  135. package/engine/object-field/unit.d.ts +72 -3
  136. package/engine/object-field/unit.lua +268 -7
  137. package/engine/object-field.d.ts +26 -7
  138. package/engine/object-field.lua +360 -119
  139. package/engine/random.d.ts +10 -0
  140. package/engine/random.lua +21 -0
  141. package/engine/standard/entries/buff-type.d.ts +3 -0
  142. package/engine/standard/entries/buff-type.lua +3 -0
  143. package/engine/standard/fields/ability.d.ts +2 -2
  144. package/engine/standard/fields/ability.lua +2 -2
  145. package/engine/standard/fields/item.d.ts +4 -0
  146. package/engine/standard/fields/item.lua +6 -0
  147. package/engine/standard/fields/unit.d.ts +12 -0
  148. package/engine/standard/fields/unit.lua +20 -0
  149. package/engine/synchronization.d.ts +11 -0
  150. package/engine/synchronization.lua +77 -0
  151. package/engine/text-tag.d.ts +36 -2
  152. package/engine/text-tag.lua +250 -10
  153. package/engine/unit.d.ts +6 -0
  154. package/engine/unit.lua +6 -0
  155. package/lualib_bundle.lua +1 -1
  156. package/math.d.ts +2 -0
  157. package/math.lua +14 -0
  158. package/net/socket.lua +1 -1
  159. package/objutil/buff.lua +11 -10
  160. package/objutil/object.lua +1 -1
  161. package/operation.lua +1 -4
  162. package/package.json +5 -5
  163. package/patch-lua.lua +15 -0
  164. package/patch-lualib.lua +1 -1
  165. package/utility/arrays.d.ts +2 -0
  166. package/utility/arrays.lua +11 -0
  167. package/utility/callback-array.d.ts +17 -0
  168. package/utility/callback-array.lua +61 -0
  169. package/utility/functions.d.ts +8 -0
  170. package/utility/functions.lua +13 -0
  171. package/utility/linked-map.d.ts +34 -0
  172. package/utility/linked-map.lua +101 -0
  173. package/utility/linked-set.d.ts +4 -1
  174. package/utility/linked-set.lua +43 -1
  175. package/utility/lua-maps.d.ts +15 -2
  176. package/utility/lua-maps.lua +53 -2
  177. package/utility/lua-sets.d.ts +2 -0
  178. package/utility/lua-sets.lua +7 -0
  179. package/utility/records.lua +20 -1
  180. package/utility/types.d.ts +3 -0
  181. package/core/types/order.d.ts +0 -25
  182. package/core/types/order.lua +0 -55
  183. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  184. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  185. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  186. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,4 +1,6 @@
1
1
  /** @noSelfInFile */
2
+ export declare const emptyLuaSet: <T extends AnyNotNil>() => ReadonlyLuaSet<T>;
3
+ export declare const mutableLuaSet: <T extends AnyNotNil>() => LuaSet<T>;
2
4
  export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
3
5
  export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
4
6
  export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
@@ -1,5 +1,12 @@
1
1
  local ____exports = {}
2
2
  local select = _G.select
3
+ local EMPTY_LUA_SET = {}
4
+ ____exports.emptyLuaSet = function()
5
+ return EMPTY_LUA_SET
6
+ end
7
+ ____exports.mutableLuaSet = function()
8
+ return {}
9
+ end
3
10
  ____exports.luaSetOf = function(...)
4
11
  local luaSet = {}
5
12
  for i = 1, select("#", ...) do
@@ -1,9 +1,28 @@
1
1
  local ____exports = {}
2
+ local ____pairs = _G.pairs
3
+ local tableSort = table.sort
2
4
  ____exports.invertRecord = function(record)
3
5
  local invertRecord = {}
4
- for key, value in pairs(record) do
6
+ for key, value in ____pairs(record) do
5
7
  invertRecord[value] = key
6
8
  end
7
9
  return invertRecord
8
10
  end
11
+ local sortedKeysInternal = {}
12
+ local lastSortedKeysLength = 0
13
+ ---
14
+ -- @internal For use by internal systems only.
15
+ ____exports.sortedKeysUnnested = function(record)
16
+ local length = 0
17
+ for key in ____pairs(record) do
18
+ length = length + 1
19
+ sortedKeysInternal[length] = key
20
+ end
21
+ for i = length + 1, lastSortedKeysLength do
22
+ sortedKeysInternal[i] = nil
23
+ end
24
+ lastSortedKeysLength = length
25
+ tableSort(sortedKeysInternal)
26
+ return sortedKeysInternal
27
+ end
9
28
  return ____exports
@@ -37,4 +37,7 @@ export type Flatten<T extends readonly any[], A extends readonly any[] = []> = T
37
37
  export type Prohibit<T, K extends keyof any> = T & {
38
38
  [P in K]?: never;
39
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];
40
43
  export {};
@@ -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