warscript 0.0.1-dev.32c305a → 0.0.1-dev.3370e98

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 (64) hide show
  1. package/core/types/frame.lua +10 -12
  2. package/core/types/player.lua +3 -1
  3. package/core/types/playerCamera.d.ts +2 -0
  4. package/core/types/playerCamera.lua +79 -5
  5. package/core/types/timer.d.ts +2 -1
  6. package/core/types/timer.lua +7 -2
  7. package/decl/native.d.ts +4 -2
  8. package/engine/behavior.d.ts +2 -0
  9. package/engine/behavior.lua +53 -27
  10. package/engine/behaviour/ability/apply-buff.lua +1 -1
  11. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  12. package/engine/behaviour/ability/emulate-impact.lua +2 -1
  13. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  14. package/engine/behaviour/ability/restore-mana.lua +6 -6
  15. package/engine/behaviour/ability.lua +7 -16
  16. package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
  17. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  18. package/engine/behaviour/unit.d.ts +12 -1
  19. package/engine/behaviour/unit.lua +56 -7
  20. package/engine/buff.d.ts +2 -1
  21. package/engine/buff.lua +9 -3
  22. package/engine/internal/ability.lua +8 -2
  23. package/engine/internal/item/ability.lua +51 -1
  24. package/engine/internal/item+owner.lua +12 -6
  25. package/engine/internal/item.d.ts +1 -0
  26. package/engine/internal/item.lua +7 -3
  27. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  28. package/engine/internal/misc/frame-coordinates.lua +21 -0
  29. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  30. package/engine/internal/misc/get-terrain-z.lua +11 -0
  31. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  32. package/engine/internal/misc/player-local-handle.lua +5 -0
  33. package/engine/internal/unit/ability.d.ts +30 -0
  34. package/engine/internal/unit/ability.lua +48 -0
  35. package/engine/internal/unit/order.d.ts +20 -0
  36. package/engine/internal/unit/order.lua +136 -0
  37. package/engine/internal/unit+ability.lua +1 -1
  38. package/engine/internal/unit-missile-launch.lua +8 -1
  39. package/engine/internal/unit.d.ts +4 -4
  40. package/engine/internal/unit.lua +79 -62
  41. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  42. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  43. package/engine/object-data/entry/ability-type.lua +1 -3
  44. package/engine/object-data/entry/unit-type.d.ts +11 -2
  45. package/engine/object-data/entry/unit-type.lua +59 -1
  46. package/engine/object-field/unit.d.ts +11 -0
  47. package/engine/object-field/unit.lua +34 -0
  48. package/engine/object-field.d.ts +6 -3
  49. package/engine/object-field.lua +85 -73
  50. package/engine/standard/fields/unit.d.ts +4 -0
  51. package/engine/standard/fields/unit.lua +7 -0
  52. package/engine/text-tag.d.ts +36 -2
  53. package/engine/text-tag.lua +249 -10
  54. package/engine/unit.d.ts +1 -0
  55. package/engine/unit.lua +1 -0
  56. package/package.json +2 -2
  57. package/utility/functions.d.ts +7 -0
  58. package/utility/functions.lua +12 -0
  59. package/utility/lua-maps.d.ts +1 -0
  60. package/utility/lua-maps.lua +4 -0
  61. package/utility/lua-sets.d.ts +1 -0
  62. package/utility/lua-sets.lua +4 -0
  63. package/core/types/order.d.ts +0 -26
  64. package/core/types/order.lua +0 -65
@@ -88,4 +88,16 @@ ____exports.apply = function(object, transform, ...)
88
88
  return object
89
89
  end
90
90
  ____exports.identity = function(value) return value end
91
+ ____exports.firstArgument = ____exports.identity
92
+ ____exports.secondArgument = function(_, value) return value end
93
+ ____exports.thirdArgument = function(_first, _second, value) return value end
94
+ ____exports.increment = function(value) return value + 1 end
95
+ ____exports["or"] = function(lhs, rhs) return lhs or rhs end
96
+ ____exports.transform = function(object, transform)
97
+ if type(transform) == "function" then
98
+ return transform(object)
99
+ else
100
+ return object[transform]
101
+ end
102
+ end
91
103
  return ____exports
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import { Flatten, TupleOf } from "./types";
3
+ export declare const emptyLuaMap: <K extends AnyNotNil, V>() => ReadonlyLuaMap<K, V>;
3
4
  export declare const mutableLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
4
5
  export declare const mutableWeakLuaMap: <K extends AnyNotNil, V>() => LuaMap<K, V>;
5
6
  export declare const luaMapOf: <K extends AnyNotNil, V>(...pairs: Flatten<TupleOf<[K, V], 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40>>) => LuaMap<K, V>;
@@ -2,6 +2,10 @@ local ____exports = {}
2
2
  local select = _G.select
3
3
  local setmetatable = _G.setmetatable
4
4
  local weakKeysMetatable = {__mode = "k"}
5
+ local EMPTY_LUA_MAP = {}
6
+ ____exports.emptyLuaMap = function()
7
+ return EMPTY_LUA_MAP
8
+ end
5
9
  ____exports.mutableLuaMap = function()
6
10
  return {}
7
11
  end
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
+ export declare const emptyLuaSet: <T extends AnyNotNil>() => ReadonlyLuaSet<T>;
2
3
  export declare const mutableLuaSet: <T extends AnyNotNil>() => LuaSet<T>;
3
4
  export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
4
5
  export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
@@ -1,5 +1,9 @@
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
3
7
  ____exports.mutableLuaSet = function()
4
8
  return {}
5
9
  end
@@ -1,26 +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
- issueTime: number;
10
- } & ({
11
- type: "immediate";
12
- } | {
13
- type: "point";
14
- targetX: number;
15
- targetY: number;
16
- } | {
17
- type: "target";
18
- target: Unit | Item | Destructable;
19
- });
20
- declare module "../../engine/internal/unit" {
21
- interface Unit {
22
- readonly currentOrder: Order;
23
- readonly lastOrder: Order;
24
- issueOrder(order: Order): void;
25
- }
26
- }
@@ -1,65 +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 ____game = require("core.game")
7
- local elapsedTime = ____game.elapsedTime
8
- local getUnitCurrentOrder = GetUnitCurrentOrder
9
- local orders = setmetatable({}, {__mode = "k"})
10
- Unit.onImmediateOrder:addListener(function(unit, orderId)
11
- orders[unit] = {
12
- id = orderId,
13
- startX = unit.x,
14
- startY = unit.y,
15
- issueTime = elapsedTime(),
16
- type = "immediate"
17
- }
18
- end)
19
- Unit.onPointOrder:addListener(function(unit, orderId, x, y)
20
- orders[unit] = {
21
- id = orderId,
22
- startX = unit.x,
23
- startY = unit.y,
24
- issueTime = elapsedTime(),
25
- type = "point",
26
- targetX = x,
27
- targetY = y
28
- }
29
- end)
30
- Unit.onTargetOrder:addListener(function(unit, orderId, target)
31
- orders[unit] = {
32
- id = orderId,
33
- startX = unit.x,
34
- startY = unit.y,
35
- issueTime = elapsedTime(),
36
- type = "target",
37
- target = target
38
- }
39
- end)
40
- __TS__ObjectDefineProperty(
41
- Unit.prototype,
42
- "currentOrder",
43
- {get = function(self)
44
- local currentOrderId = getUnitCurrentOrder(self.handle)
45
- local lastOrder = orders[self]
46
- return lastOrder and (lastOrder.id == currentOrderId or currentOrderId == orderId("patrolAI") and lastOrder.id == orderId("patrol")) and lastOrder or ({id = 0, type = "immediate"})
47
- end}
48
- )
49
- __TS__ObjectDefineProperty(
50
- Unit.prototype,
51
- "lastOrder",
52
- {get = function(self)
53
- return orders[self] or ({id = 0, type = "immediate"})
54
- end}
55
- )
56
- Unit.prototype.issueOrder = function(self, order)
57
- if order.type == "immediate" then
58
- IssueImmediateOrderById(self.handle, order.id)
59
- elseif order.type == "point" then
60
- IssuePointOrderById(self.handle, order.id, order.targetX, order.targetY)
61
- else
62
- IssueTargetOrderById(self.handle, order.id, order.target.handle)
63
- end
64
- end
65
- return ____exports