warscript 0.0.1-dev.eb24bc1 → 0.0.1-dev.eb6b18a

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 (37) hide show
  1. package/engine/behaviour/ability/emulate-impact.lua +9 -2
  2. package/engine/behaviour/ability.lua +8 -17
  3. package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
  4. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  5. package/engine/behaviour/unit.d.ts +24 -0
  6. package/engine/behaviour/unit.lua +158 -4
  7. package/engine/internal/ability.d.ts +4 -0
  8. package/engine/internal/ability.lua +17 -0
  9. package/engine/internal/item/ability.lua +12 -10
  10. package/engine/internal/item.d.ts +3 -1
  11. package/engine/internal/item.lua +75 -3
  12. package/engine/internal/unit/ability.d.ts +35 -0
  13. package/engine/internal/unit/ability.lua +62 -0
  14. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  15. package/engine/internal/unit/allowed-targets.lua +9 -1
  16. package/engine/internal/unit/order.d.ts +20 -0
  17. package/engine/internal/unit/order.lua +136 -0
  18. package/engine/internal/unit-missile-launch.lua +1 -1
  19. package/engine/internal/unit.d.ts +9 -1
  20. package/engine/internal/unit.lua +90 -1
  21. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  22. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  23. package/engine/object-field/unit.d.ts +4 -0
  24. package/engine/object-field/unit.lua +13 -0
  25. package/engine/object-field.d.ts +6 -3
  26. package/engine/object-field.lua +85 -73
  27. package/engine/standard/fields/unit.d.ts +3 -0
  28. package/engine/standard/fields/unit.lua +5 -0
  29. package/engine/text-tag.d.ts +36 -2
  30. package/engine/text-tag.lua +175 -10
  31. package/engine/unit.d.ts +1 -0
  32. package/engine/unit.lua +1 -0
  33. package/package.json +1 -1
  34. package/utility/lua-maps.d.ts +1 -0
  35. package/utility/lua-maps.lua +4 -0
  36. package/core/types/order.d.ts +0 -25
  37. package/core/types/order.lua +0 -55
@@ -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,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