warscript 0.0.1-dev.ccd5725 → 0.0.1-dev.d18f377

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 (132) hide show
  1. package/attributes.d.ts +0 -1
  2. package/binaryreader.d.ts +1 -0
  3. package/binaryreader.lua +3 -0
  4. package/core/types/effect.d.ts +12 -3
  5. package/core/types/effect.lua +56 -7
  6. package/core/types/frame.d.ts +8 -1
  7. package/core/types/frame.lua +93 -1
  8. package/core/types/group.d.ts +0 -1
  9. package/core/types/image.d.ts +0 -1
  10. package/core/types/missile.d.ts +2 -2
  11. package/core/types/missile.lua +8 -2
  12. package/core/types/unit.lua +8 -0
  13. package/core/util.d.ts +1 -1
  14. package/core/util.lua +6 -0
  15. package/decl/index.d.ts +1 -0
  16. package/engine/ability.d.ts +1 -1
  17. package/engine/behavior.d.ts +10 -10
  18. package/engine/behavior.lua +6 -6
  19. package/engine/behaviour/ability/apply-buff.d.ts +3 -5
  20. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  21. package/engine/behaviour/ability/damage.d.ts +33 -11
  22. package/engine/behaviour/ability/damage.lua +89 -31
  23. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  24. package/engine/behaviour/ability/emulate-impact.lua +29 -0
  25. package/engine/behaviour/ability/heal.d.ts +33 -6
  26. package/engine/behaviour/ability/heal.lua +89 -10
  27. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  28. package/engine/behaviour/ability/instant-impact.lua +4 -15
  29. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  30. package/engine/behaviour/ability/on-command-impact.lua +18 -0
  31. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  32. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  33. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  34. package/engine/behaviour/ability/restore-mana.lua +29 -0
  35. package/engine/behaviour/ability.d.ts +14 -3
  36. package/engine/behaviour/ability.lua +75 -12
  37. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  38. package/engine/behaviour/unit.d.ts +8 -2
  39. package/engine/behaviour/unit.lua +27 -0
  40. package/engine/buff.d.ts +68 -21
  41. package/engine/buff.lua +276 -90
  42. package/engine/game-map.d.ts +7 -0
  43. package/engine/game-map.lua +32 -0
  44. package/engine/internal/ability.d.ts +5 -12
  45. package/engine/internal/ability.lua +13 -74
  46. package/engine/internal/item+owner.lua +2 -2
  47. package/engine/internal/unit/ability.d.ts +10 -1
  48. package/engine/internal/unit/ability.lua +36 -14
  49. package/engine/internal/unit/bonus.d.ts +9 -8
  50. package/engine/internal/unit/bonus.lua +6 -1
  51. package/engine/internal/unit/item.d.ts +24 -0
  52. package/engine/internal/unit/item.lua +84 -0
  53. package/engine/internal/unit/main-selected.d.ts +13 -0
  54. package/engine/internal/unit/main-selected.lua +51 -0
  55. package/engine/internal/unit+ability.lua +2 -2
  56. package/engine/internal/unit+transport.lua +4 -10
  57. package/engine/internal/unit-missile-launch.lua +25 -6
  58. package/engine/internal/unit.d.ts +57 -16
  59. package/engine/internal/unit.lua +313 -122
  60. package/engine/local-client.d.ts +7 -2
  61. package/engine/local-client.lua +82 -0
  62. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  63. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  64. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  65. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  66. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  67. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  68. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  69. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  70. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  71. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  72. package/engine/object-data/entry/ability-type.d.ts +0 -1
  73. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  74. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  75. package/engine/object-data/entry/buff-type.d.ts +0 -1
  76. package/engine/object-data/entry/destructible-type.d.ts +0 -1
  77. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  78. package/engine/object-data/entry/item-type.d.ts +12 -1
  79. package/engine/object-data/entry/item-type.lua +78 -0
  80. package/engine/object-data/entry/lightning-type.d.ts +0 -1
  81. package/engine/object-data/entry/unit-type.d.ts +25 -2
  82. package/engine/object-data/entry/unit-type.lua +255 -49
  83. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  84. package/engine/object-data/entry/upgrade.d.ts +0 -1
  85. package/engine/object-data/entry.d.ts +2 -3
  86. package/engine/object-field/ability.d.ts +19 -2
  87. package/engine/object-field/ability.lua +51 -1
  88. package/engine/object-field.d.ts +0 -1
  89. package/engine/random.d.ts +1 -0
  90. package/engine/random.lua +9 -0
  91. package/engine/standard/entries/unit-type.d.ts +39 -1
  92. package/engine/standard/entries/unit-type.lua +39 -1
  93. package/engine/standard/fields/ability.d.ts +1 -1
  94. package/engine/standard/fields/ability.lua +1 -1
  95. package/engine/unit.d.ts +2 -0
  96. package/engine/unit.lua +11 -2
  97. package/event.d.ts +2 -3
  98. package/event.lua +9 -5
  99. package/index.d.ts +1 -0
  100. package/index.lua +1 -0
  101. package/lualib_bundle.lua +146 -42
  102. package/math/vec2.d.ts +2 -9
  103. package/math.d.ts +0 -2
  104. package/net/socket.d.ts +7 -1
  105. package/net/socket.lua +45 -4
  106. package/network.d.ts +1 -0
  107. package/network.lua +3 -2
  108. package/objutil/ability.d.ts +0 -1
  109. package/objutil/buff.d.ts +0 -1
  110. package/objutil/buff.lua +1 -1
  111. package/objutil/object.d.ts +0 -1
  112. package/objutil/unit.d.ts +0 -1
  113. package/package.json +13 -14
  114. package/patch-lua.d.ts +0 -0
  115. package/patch-lua.lua +10 -0
  116. package/property.d.ts +55 -0
  117. package/property.lua +374 -0
  118. package/string.d.ts +30 -0
  119. package/string.lua +14 -0
  120. package/util/stream.d.ts +0 -1
  121. package/utility/arrays.d.ts +11 -5
  122. package/utility/arrays.lua +34 -3
  123. package/utility/bit-set.d.ts +0 -2
  124. package/utility/lazy.d.ts +2 -0
  125. package/utility/lazy.lua +14 -0
  126. package/utility/linked-set.d.ts +11 -3
  127. package/utility/linked-set.lua +5 -2
  128. package/utility/lua-maps.d.ts +1 -2
  129. package/utility/lua-sets.d.ts +1 -2
  130. package/utility/types.d.ts +1 -0
  131. package/core/mapbounds.d.ts +0 -8
  132. package/core/mapbounds.lua +0 -12
@@ -1,5 +1,3 @@
1
- /// <reference types="@warscript/language-extensions" />
2
- /// <reference types="@typescript-to-lua/language-extensions" />
3
1
  /** @noSelfInFile */
4
2
  interface IBitSet<T extends number> {
5
3
  readonly has: LuaBitwiseAndEqualsRightMethod<T>;
@@ -0,0 +1,2 @@
1
+ /** @noSelfInFile */
2
+ export declare const lazyRecord: <K extends keyof any, V>(initializer: (key: K) => V) => Readonly<Record<K, V>>;
@@ -0,0 +1,14 @@
1
+ local ____exports = {}
2
+ local rawset = _G.rawset
3
+ local setmetatable = _G.setmetatable
4
+ ____exports.lazyRecord = function(initializer)
5
+ return setmetatable(
6
+ {},
7
+ {__index = function(self, key)
8
+ local value = initializer(key)
9
+ rawset(self, key, value)
10
+ return value
11
+ end}
12
+ )
13
+ end
14
+ return ____exports
@@ -1,5 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
2
+ import { NonEmptyArray, ReadonlyNonEmptyArray } from "./types";
3
3
  type IteratorState<T extends AnyNotNil> = {
4
4
  t: LuaMap<T, T>;
5
5
  n?: T;
@@ -19,6 +19,11 @@ export interface ReadonlyLinkedSet<T extends AnyNotNil> extends LuaPairsKeyItera
19
19
  toArray(): T[];
20
20
  sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
21
21
  }
22
+ export interface ReadonlyNonEmptyLinkedSet<T extends AnyNotNil> extends ReadonlyLinkedSet<T> {
23
+ first(): T;
24
+ last(): T;
25
+ toArray(): NonEmptyArray<T>;
26
+ }
22
27
  export interface LinkedSet<T extends AnyNotNil> extends LuaPairsKeyIterable<T> {
23
28
  readonly __linkedSet: unique symbol;
24
29
  }
@@ -45,6 +50,9 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
45
50
  protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
46
51
  }
47
52
  export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
48
- export declare const linkedSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LinkedSet<T>;
49
- export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LinkedSet<T>;
53
+ export declare const mutableLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => LinkedSet<T>;
54
+ export declare const mutableLinkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LinkedSet<T>;
55
+ export declare const linkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
56
+ export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: ReadonlyArray<T>) => ReadonlyLinkedSet<T>;
57
+ export declare const nonEmptyLinkedSetOf: <T extends AnyNotNil>(...elements: ReadonlyNonEmptyArray<T>) => ReadonlyNonEmptyLinkedSet<T>;
50
58
  export {};
@@ -177,14 +177,14 @@ local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
177
177
  ____exports.emptyLinkedSet = function()
178
178
  return EMPTY_LINKED_SET
179
179
  end
180
- ____exports.linkedSetOf = function(...)
180
+ ____exports.mutableLinkedSetOf = function(...)
181
181
  local linkedSet = __TS__New(____exports.LinkedSet)
182
182
  for i = 1, select("#", ...) do
183
183
  linkedSet:add((select(i, ...)))
184
184
  end
185
185
  return linkedSet
186
186
  end
187
- ____exports.linkedSetOfNotNull = function(...)
187
+ ____exports.mutableLinkedSetOfNotNull = function(...)
188
188
  local linkedSet = __TS__New(____exports.LinkedSet)
189
189
  for i = 1, select("#", ...) do
190
190
  local element = (select(i, ...))
@@ -194,4 +194,7 @@ ____exports.linkedSetOfNotNull = function(...)
194
194
  end
195
195
  return linkedSet
196
196
  end
197
+ ____exports.linkedSetOf = function(...) return ____exports.mutableLinkedSetOf(...) end
198
+ ____exports.linkedSetOfNotNull = function(...) return ____exports.mutableLinkedSetOfNotNull(...) end
199
+ ____exports.nonEmptyLinkedSetOf = function(...) return ____exports.linkedSetOf(...) end
197
200
  return ____exports
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Flatten, TupleOf } from "./types";
4
- export declare const luaMapOf: <K extends AnyNotNil, V>(...pairs: Flatten<TupleOf<[K, V], 0 | 2 | 1 | 22 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 31 | 40 | 30 | 32 | 23 | 24 | 25 | 26 | 28 | 29 | 33 | 34 | 35 | 36 | 37 | 38 | 39>>) => LuaMap<K, V>;
3
+ 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>;
5
4
  export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap: LuaMap<K, V>) => LuaMap<V, K>;
6
5
  export declare const mapValues: <K extends AnyNotNil, V1, V2>(luaMap: LuaMap<K, V1>, transform: (value: V1) => V2) => LuaMap<K, V2>;
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
4
- export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LuaSet<T>;
3
+ export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | undefined | null)[]) => LuaSet<T>;
5
4
  export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
6
5
  export declare const luaSetContainsAnyOf: <T extends AnyNotNil>(luaSet: ReadonlyLuaSet<T>, ...elements: readonly T[]) => boolean;
@@ -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
  };
@@ -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