warscript 0.0.1-dev.524f1b8 → 0.0.1-dev.539675b

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 (61) hide show
  1. package/attributes.d.ts +5 -0
  2. package/attributes.lua +8 -1
  3. package/core/types/order.d.ts +1 -0
  4. package/core/types/order.lua +11 -1
  5. package/decl/native.d.ts +840 -786
  6. package/engine/behaviour/ability/damage.d.ts +6 -3
  7. package/engine/behaviour/ability/damage.lua +24 -36
  8. package/engine/behaviour/ability/emulate-impact.lua +16 -2
  9. package/engine/behaviour/ability.lua +1 -1
  10. package/engine/behaviour/unit.d.ts +15 -0
  11. package/engine/behaviour/unit.lua +114 -4
  12. package/engine/internal/ability.d.ts +4 -0
  13. package/engine/internal/ability.lua +17 -0
  14. package/engine/internal/item/ability.lua +12 -10
  15. package/engine/internal/item.d.ts +5 -2
  16. package/engine/internal/item.lua +75 -3
  17. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  18. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  19. package/engine/internal/unit/ability.d.ts +5 -0
  20. package/engine/internal/unit/ability.lua +14 -0
  21. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  22. package/engine/internal/unit/allowed-targets.lua +9 -1
  23. package/engine/internal/unit+damage.d.ts +2 -11
  24. package/engine/internal/unit+damage.lua +10 -14
  25. package/engine/internal/unit+spellSteal.lua +1 -2
  26. package/engine/internal/unit-missile-launch.lua +1 -1
  27. package/engine/internal/unit.d.ts +21 -3
  28. package/engine/internal/unit.lua +178 -37
  29. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  30. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  31. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  32. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  33. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  34. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  35. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  36. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  37. package/engine/object-data/entry/buff-type.d.ts +5 -11
  38. package/engine/object-data/entry/buff-type.lua +11 -27
  39. package/engine/object-data/entry/unit-type.d.ts +2 -2
  40. package/engine/object-data/entry/unit-type.lua +94 -84
  41. package/engine/object-field/ability.d.ts +1 -1
  42. package/engine/object-field/unit.d.ts +46 -3
  43. package/engine/object-field/unit.lua +173 -7
  44. package/engine/object-field.d.ts +15 -4
  45. package/engine/object-field.lua +184 -90
  46. package/engine/standard/entries/buff-type.d.ts +3 -0
  47. package/engine/standard/entries/buff-type.lua +3 -0
  48. package/engine/text-tag.d.ts +12 -1
  49. package/engine/text-tag.lua +44 -10
  50. package/objutil/buff.lua +1 -2
  51. package/package.json +2 -2
  52. package/utility/arrays.d.ts +1 -0
  53. package/utility/arrays.lua +3 -0
  54. package/utility/functions.d.ts +1 -0
  55. package/utility/functions.lua +1 -0
  56. package/utility/linked-set.d.ts +1 -0
  57. package/utility/linked-set.lua +3 -0
  58. package/utility/lua-maps.d.ts +4 -0
  59. package/utility/lua-maps.lua +20 -0
  60. package/utility/lua-sets.d.ts +1 -0
  61. package/utility/lua-sets.lua +3 -0
package/attributes.d.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  /** @noSelfInFile */
2
+ declare const marker: {};
2
3
  export type Attribute<T> = {
3
4
  readonly __attribute: unique symbol;
4
5
  readonly __type: T;
6
+ readonly __marker: typeof marker;
5
7
  } & symbol;
8
+ export declare const attribute: <T>() => Attribute<T>;
9
+ export declare const isAttribute: (value: unknown) => value is Attribute<unknown>;
6
10
  export declare namespace Attribute {
7
11
  const create: <T>() => Attribute<T>;
8
12
  }
@@ -10,3 +14,4 @@ export declare class AttributesHolder {
10
14
  readonly get: (<T>(attribute: Attribute<T>) => T | undefined) & LuaExtension<"TableGetMethod">;
11
15
  readonly set: (<T>(attribute: Attribute<T>, value: T | undefined) => void) & LuaExtension<"TableSetMethod">;
12
16
  }
17
+ export {};
package/attributes.lua CHANGED
@@ -1,11 +1,18 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local ____exports = {}
4
+ local marker = {}
5
+ ____exports.attribute = function()
6
+ return {__marker = marker}
7
+ end
8
+ ____exports.isAttribute = function(value)
9
+ return type(value) == "table" and rawget(value, "__marker") == marker
10
+ end
4
11
  ____exports.Attribute = {}
5
12
  local Attribute = ____exports.Attribute
6
13
  do
7
14
  Attribute.create = function()
8
- return {}
15
+ return {__marker = marker}
9
16
  end
10
17
  end
11
18
  ____exports.AttributesHolder = __TS__Class()
@@ -6,6 +6,7 @@ export type Order = {
6
6
  id: number;
7
7
  startX: number;
8
8
  startY: number;
9
+ issueTime: number;
9
10
  } & ({
10
11
  type: "immediate";
11
12
  } | {
@@ -3,16 +3,25 @@ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
3
3
  local ____exports = {}
4
4
  local ____unit = require("core.types.unit")
5
5
  local Unit = ____unit.Unit
6
+ local ____game = require("core.game")
7
+ local elapsedTime = ____game.elapsedTime
6
8
  local getUnitCurrentOrder = GetUnitCurrentOrder
7
9
  local orders = setmetatable({}, {__mode = "k"})
8
10
  Unit.onImmediateOrder:addListener(function(unit, orderId)
9
- orders[unit] = {id = orderId, startX = unit.x, startY = unit.y, type = "immediate"}
11
+ orders[unit] = {
12
+ id = orderId,
13
+ startX = unit.x,
14
+ startY = unit.y,
15
+ issueTime = elapsedTime(),
16
+ type = "immediate"
17
+ }
10
18
  end)
11
19
  Unit.onPointOrder:addListener(function(unit, orderId, x, y)
12
20
  orders[unit] = {
13
21
  id = orderId,
14
22
  startX = unit.x,
15
23
  startY = unit.y,
24
+ issueTime = elapsedTime(),
16
25
  type = "point",
17
26
  targetX = x,
18
27
  targetY = y
@@ -23,6 +32,7 @@ Unit.onTargetOrder:addListener(function(unit, orderId, target)
23
32
  id = orderId,
24
33
  startX = unit.x,
25
34
  startY = unit.y,
35
+ issueTime = elapsedTime(),
26
36
  type = "target",
27
37
  target = target
28
38
  }