warscript 0.0.1-dev.84677fb → 0.0.1-dev.858ac09

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 (181) hide show
  1. package/attributes.d.ts +0 -1
  2. package/binaryreader.d.ts +1 -0
  3. package/binaryreader.lua +3 -0
  4. package/config.d.ts +5 -0
  5. package/config.lua +10 -0
  6. package/core/types/effect.d.ts +13 -3
  7. package/core/types/effect.lua +116 -17
  8. package/core/types/frame.d.ts +8 -1
  9. package/core/types/frame.lua +93 -1
  10. package/core/types/group.d.ts +0 -1
  11. package/core/types/image.d.ts +0 -1
  12. package/core/types/missile.d.ts +2 -2
  13. package/core/types/missile.lua +8 -2
  14. package/core/types/sound.d.ts +1 -0
  15. package/core/types/sound.lua +36 -2
  16. package/core/types/unit.lua +8 -0
  17. package/core/util.d.ts +1 -1
  18. package/core/util.lua +18 -1
  19. package/decl/index.d.ts +1 -0
  20. package/engine/ability.d.ts +1 -1
  21. package/engine/behavior.d.ts +10 -10
  22. package/engine/behavior.lua +6 -6
  23. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  24. package/engine/behaviour/ability/always-enabled.lua +31 -0
  25. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  26. package/engine/behaviour/ability/apply-buff.lua +32 -0
  27. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  28. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  29. package/engine/behaviour/ability/damage.d.ts +36 -11
  30. package/engine/behaviour/ability/damage.lua +90 -32
  31. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  32. package/engine/behaviour/ability/emulate-impact.lua +28 -0
  33. package/engine/behaviour/ability/heal.d.ts +33 -6
  34. package/engine/behaviour/ability/heal.lua +89 -10
  35. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  36. package/engine/behaviour/ability/instant-impact.lua +4 -19
  37. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  38. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  39. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  40. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  41. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  42. package/engine/behaviour/ability/restore-mana.lua +29 -0
  43. package/engine/behaviour/ability.d.ts +23 -3
  44. package/engine/behaviour/ability.lua +146 -13
  45. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  46. package/engine/behaviour/unit.d.ts +10 -2
  47. package/engine/behaviour/unit.lua +27 -0
  48. package/engine/buff.d.ts +98 -41
  49. package/engine/buff.lua +434 -212
  50. package/engine/game-map.d.ts +7 -0
  51. package/engine/game-map.lua +32 -0
  52. package/engine/internal/ability.d.ts +16 -13
  53. package/engine/internal/ability.lua +80 -76
  54. package/engine/internal/item/ability.lua +106 -0
  55. package/engine/internal/item+owner.lua +2 -2
  56. package/engine/internal/item.d.ts +2 -2
  57. package/engine/internal/item.lua +56 -25
  58. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  59. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  60. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  61. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  62. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  63. package/engine/internal/object-data/evasion-probability.lua +16 -0
  64. package/engine/internal/unit/ability.d.ts +10 -1
  65. package/engine/internal/unit/ability.lua +36 -14
  66. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  67. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  68. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  69. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  70. package/engine/internal/unit/bonus.d.ts +11 -8
  71. package/engine/internal/unit/bonus.lua +23 -1
  72. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  73. package/engine/internal/unit/ignore-events-items.lua +5 -0
  74. package/engine/internal/unit/item.d.ts +24 -0
  75. package/engine/internal/unit/item.lua +78 -0
  76. package/engine/internal/unit/main-selected.d.ts +13 -0
  77. package/engine/internal/unit/main-selected.lua +51 -0
  78. package/engine/internal/unit+ability.lua +2 -2
  79. package/engine/internal/unit+transport.lua +4 -10
  80. package/engine/internal/unit-missile-launch.lua +24 -5
  81. package/engine/internal/unit.d.ts +32 -12
  82. package/engine/internal/unit.lua +183 -88
  83. package/engine/internal/utility.lua +12 -0
  84. package/engine/lightning.d.ts +12 -5
  85. package/engine/lightning.lua +48 -14
  86. package/engine/local-client.d.ts +7 -2
  87. package/engine/local-client.lua +82 -0
  88. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  89. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  90. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  91. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  92. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  93. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  94. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  95. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  96. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  97. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  98. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  99. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  100. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  101. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  102. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  103. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  104. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  105. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  106. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  107. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  108. package/engine/object-data/entry/ability-type.d.ts +8 -7
  109. package/engine/object-data/entry/ability-type.lua +62 -27
  110. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  111. package/engine/object-data/entry/buff-type/applicable.lua +13 -37
  112. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  113. package/engine/object-data/entry/buff-type.d.ts +1 -2
  114. package/engine/object-data/entry/buff-type.lua +2 -2
  115. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  116. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  117. package/engine/object-data/entry/item-type.d.ts +15 -2
  118. package/engine/object-data/entry/item-type.lua +93 -2
  119. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  120. package/engine/object-data/entry/sound-preset.d.ts +16 -0
  121. package/engine/object-data/entry/sound-preset.lua +36 -0
  122. package/engine/object-data/entry/unit-type.d.ts +8 -2
  123. package/engine/object-data/entry/unit-type.lua +61 -8
  124. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  125. package/engine/object-data/entry/upgrade.d.ts +1 -2
  126. package/engine/object-data/entry/upgrade.lua +4 -4
  127. package/engine/object-data/entry.d.ts +18 -17
  128. package/engine/object-data/entry.lua +60 -32
  129. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  130. package/engine/object-field/ability.d.ts +26 -3
  131. package/engine/object-field/ability.lua +54 -1
  132. package/engine/object-field.d.ts +2 -3
  133. package/engine/object-field.lua +4 -0
  134. package/engine/random.d.ts +1 -0
  135. package/engine/random.lua +9 -0
  136. package/engine/standard/entries/sound-preset.d.ts +10 -0
  137. package/engine/standard/entries/sound-preset.lua +10 -0
  138. package/engine/standard/entries/unit-type.d.ts +1 -0
  139. package/engine/standard/entries/unit-type.lua +1 -0
  140. package/engine/standard/fields/ability.d.ts +3 -1
  141. package/engine/standard/fields/ability.lua +3 -1
  142. package/engine/unit.d.ts +3 -0
  143. package/engine/unit.lua +12 -2
  144. package/event.d.ts +2 -3
  145. package/event.lua +9 -5
  146. package/index.d.ts +1 -0
  147. package/index.lua +1 -0
  148. package/lualib_bundle.lua +146 -42
  149. package/math/vec2.d.ts +2 -9
  150. package/math.d.ts +0 -2
  151. package/net/socket.d.ts +7 -1
  152. package/net/socket.lua +45 -4
  153. package/network.d.ts +1 -0
  154. package/network.lua +3 -2
  155. package/objutil/ability.d.ts +0 -1
  156. package/objutil/buff.d.ts +0 -1
  157. package/objutil/buff.lua +1 -1
  158. package/objutil/object.d.ts +0 -1
  159. package/objutil/unit.d.ts +0 -1
  160. package/objutil/unit.lua +8 -0
  161. package/package.json +13 -13
  162. package/patch-lua.d.ts +0 -0
  163. package/patch-lua.lua +10 -0
  164. package/property.d.ts +55 -0
  165. package/property.lua +374 -0
  166. package/string.d.ts +16 -0
  167. package/string.lua +5 -0
  168. package/util/stream.d.ts +0 -1
  169. package/utility/arrays.d.ts +11 -5
  170. package/utility/arrays.lua +34 -3
  171. package/utility/bit-set.d.ts +0 -2
  172. package/utility/lazy.d.ts +2 -0
  173. package/utility/lazy.lua +14 -0
  174. package/utility/linked-set.d.ts +11 -3
  175. package/utility/linked-set.lua +5 -2
  176. package/utility/lua-maps.d.ts +1 -2
  177. package/utility/lua-sets.d.ts +1 -2
  178. package/utility/reflection.lua +11 -7
  179. package/utility/types.d.ts +1 -0
  180. package/core/mapbounds.d.ts +0 -8
  181. package/core/mapbounds.lua +0 -12
package/math/vec2.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  /** Gets the height of the terrain at the position specified by the vector. */
4
3
  export declare const getTerrainZ: (x: number, y: number) => number;
@@ -7,12 +6,6 @@ export declare const angleBetweenPoints: (x1: number, y1: number, x2: number, y2
7
6
  /** Returns the distance between a and b. */
8
7
  export declare const distance: (x1: number, y1: number, x2: number, y2: number) => number;
9
8
  /** Moves a point current towards target. */
10
- export declare const moveTowards: (x1: number, y1: number, x2: number, y2: number, distance: number) => LuaMultiReturn<[
11
- number,
12
- number
13
- ]>;
9
+ export declare const moveTowards: (x1: number, y1: number, x2: number, y2: number, distance: number) => LuaMultiReturn<[number, number]>;
14
10
  /** Gets a polar offset from this vector. Angle should be specified in degrees. */
15
- export declare const polarOffset: (x: number, y: number, angle: number, distance: number) => LuaMultiReturn<[
16
- number,
17
- number
18
- ]>;
11
+ export declare const polarOffset: (x: number, y: number, angle: number, distance: number) => LuaMultiReturn<[number, number]>;
package/math.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="lua-types/5.3" />
2
- /// <reference types="lua-types/5.3" />
3
1
  /** @noSelfInFile */
4
2
  export declare const MINIMUM_POSITIVE_NORMALIZED_FLOAT: number;
5
3
  export declare const MINIMUM_POSITIVE_FLOAT: number;
package/net/socket.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  /** @noSelfInFile */
2
2
  import { Event } from "../event";
3
3
  import { Player } from "../core/types/player";
4
+ declare const enum SocketPropertyKey {
5
+ ID = 0,
6
+ CHUNK_ID = 1
7
+ }
4
8
  export declare class Socket {
5
- private readonly id;
9
+ private readonly [SocketPropertyKey.ID];
10
+ private readonly [SocketPropertyKey.CHUNK_ID];
6
11
  readonly onMessage: Event<[Player, string]>;
7
12
  constructor();
8
13
  send(data: string): void;
9
14
  }
15
+ export {};
package/net/socket.lua CHANGED
@@ -7,6 +7,11 @@ local Event = ____event.Event
7
7
  local ____network = require("network")
8
8
  local send = ____network.send
9
9
  local onReceive = ____network.onReceive
10
+ local MAX_PAYLOAD_LENGTH = ____network.MAX_PAYLOAD_LENGTH
11
+ local ____math = require("math")
12
+ local ceil = ____math.ceil
13
+ local stringSub = string.sub
14
+ local tableConcat = table.concat
10
15
  local nextId = 0
11
16
  ____exports.Socket = __TS__Class()
12
17
  local Socket = ____exports.Socket
@@ -14,13 +19,49 @@ Socket.name = "Socket"
14
19
  function Socket.prototype.____constructor(self)
15
20
  local ____tostring_0 = tostring
16
21
  nextId = nextId + 1
17
- self.id = ____tostring_0(nextId)
22
+ self[0] = ____tostring_0(nextId)
23
+ local ____tostring_1 = tostring
24
+ nextId = nextId + 1
25
+ self[1] = ____tostring_1(nextId)
18
26
  self.onMessage = __TS__New(Event)
19
- onReceive[self.id]:addListener(function(sender, data)
20
- Event.invoke(self.onMessage, sender, data)
27
+ local chunksByPlayer = {}
28
+ onReceive[self[0]]:addListener(function(sender, data)
29
+ local chunks = chunksByPlayer[sender]
30
+ if chunks ~= nil then
31
+ chunks[#chunks + 1] = data
32
+ Event.invoke(
33
+ self.onMessage,
34
+ sender,
35
+ tableConcat(chunks)
36
+ )
37
+ chunksByPlayer[sender] = nil
38
+ else
39
+ Event.invoke(self.onMessage, sender, data)
40
+ end
41
+ end)
42
+ onReceive[self[1]]:addListener(function(sender, data)
43
+ local chunks = chunksByPlayer[sender]
44
+ if chunks == nil then
45
+ chunks = {}
46
+ chunksByPlayer[sender] = chunks
47
+ end
48
+ chunks[#chunks + 1] = data
21
49
  end)
22
50
  end
23
51
  function Socket.prototype.send(self, data)
24
- send(self.id, data)
52
+ local chunks = ceil(#data / MAX_PAYLOAD_LENGTH) - 1
53
+ local offset = 1
54
+ for _ = 0, chunks - 1 do
55
+ local nextOffset = offset + MAX_PAYLOAD_LENGTH
56
+ send(
57
+ self[1],
58
+ stringSub(data, offset, nextOffset - 1)
59
+ )
60
+ offset = nextOffset
61
+ end
62
+ send(
63
+ self[0],
64
+ stringSub(data, offset)
65
+ )
25
66
  end
26
67
  return ____exports
package/network.d.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  import { Event } from "./event";
3
3
  import { Player } from "./core/types/player";
4
4
  import { Operation, OperationContinue, OperationMonitor } from "./operation";
5
+ export declare const MAX_PAYLOAD_LENGTH = 255;
5
6
  export declare const onReceive: {
6
7
  [prefix: string]: Event<[Player, string]>;
7
8
  } & {
package/network.lua CHANGED
@@ -25,6 +25,7 @@ local concat = table.concat
25
25
  local pack = string.pack
26
26
  local sub = string.sub
27
27
  local ____unpack = string.unpack
28
+ ____exports.MAX_PAYLOAD_LENGTH = 255
28
29
  ____exports.onReceive = setmetatable(
29
30
  {},
30
31
  {__index = function(self, prefix)
@@ -42,11 +43,11 @@ ____exports.onReceive = setmetatable(
42
43
  end}
43
44
  )
44
45
  function ____exports.send(id, payload)
45
- if #payload > 255 then
46
+ if #payload > ____exports.MAX_PAYLOAD_LENGTH then
46
47
  error(
47
48
  __TS__New(
48
49
  IllegalArgumentException,
49
- "payload length must be <= 256, but was " .. tostring(#payload)
50
+ (("payload length must be <= " .. tostring(____exports.MAX_PAYLOAD_LENGTH)) .. ", but was ") .. tostring(#payload)
50
51
  ),
51
52
  0
52
53
  )
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { LevelFieldValueProvider, ObjectDefinition } from "./object";
4
3
  export declare namespace AbilityDefinition {
package/objutil/buff.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ObjectDefinition } from "./object";
4
3
  import { Unit } from "../core/types/unit";
package/objutil/buff.lua CHANGED
@@ -762,7 +762,7 @@ Unit.onDamaging:addListener(function(source, target, event)
762
762
  end)
763
763
  end
764
764
  end)
765
- Unit.onItemPickup:addListener(function(unit, item)
765
+ Unit.itemPickedUpEvent:addListener(function(unit, item)
766
766
  if item.powerup and item:hasAbility(fourCC("APdi")) then
767
767
  end
768
768
  end)
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  export type LevelFieldValueProvider<T> = T | T[] | ((level: number, value: T) => T);
4
3
  export declare namespace ObjectDefinition {
package/objutil/unit.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="warpack-types/warpack" />
2
1
  /** @noSelfInFile */
3
2
  import { ObjectDefinition } from "./object";
4
3
  import { AbilityDefinition } from "./ability";
package/objutil/unit.lua CHANGED
@@ -11,6 +11,8 @@ local ____exports = {}
11
11
  local ____object = require("objutil.object")
12
12
  local ObjectDefinition = ____object.ObjectDefinition
13
13
  local idgen = require("objutil.idgen")
14
+ local ____config = require("config")
15
+ local WarscriptConfig = ____config.WarscriptConfig
14
16
  local attackTypes = setmetatable(
15
17
  {
16
18
  normal = "normal",
@@ -593,6 +595,9 @@ __TS__SetDescriptor(
593
595
  end,
594
596
  set = function(self, v)
595
597
  self:setStringField("umdl", v)
598
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
599
+ self:setStringField("upor", "")
600
+ end
596
601
  end
597
602
  },
598
603
  true
@@ -606,6 +611,9 @@ __TS__SetDescriptor(
606
611
  end,
607
612
  set = function(self, v)
608
613
  self.object:setField("umdl:hd", v)
614
+ if WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH then
615
+ self.object:setField("upor:hd", "")
616
+ end
609
617
  end
610
618
  },
611
619
  true
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "warscript",
4
- "version": "0.0.1-dev.84677fb",
4
+ "version": "0.0.1-dev.858ac09",
5
5
  "description": "A typescript library for Warcraft III using Warpack.",
6
6
  "keywords": [
7
7
  "warcraft",
@@ -22,22 +22,22 @@
22
22
  },
23
23
  "peerDependencies": {
24
24
  "@warscript/language-extensions": "^0.0.1",
25
- "@warscript/tstl-plugin": "^0.0.3",
25
+ "@warscript/tstl-plugin": "^0.0.4",
26
26
  "lua-types": "^2.13.1",
27
- "warpack": "0.0.1-dev.ec41c86"
27
+ "warpack": "0.0.1-dev.dfbb169"
28
28
  },
29
29
  "devDependencies": {
30
- "@typescript-eslint/eslint-plugin": "^5.59.11",
31
- "@typescript-eslint/parser": "^5.59.11",
32
- "async": "^3.2.0",
30
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
31
+ "@typescript-eslint/parser": "^8.13.0",
32
+ "async": "^3.2.6",
33
33
  "copyfiles": "^2.4.1",
34
- "eslint": "^8.42.0",
35
- "eslint-config-prettier": "^8.8.0",
36
- "eslint-plugin-prettier": "^3.4.0",
37
- "prettier": "^2.8.8",
38
- "rimraf": "^5.0.5",
39
- "ts-node": "^10.9.1",
40
- "tsc-watch": "^4.2.9"
34
+ "eslint": "^9.14.0",
35
+ "eslint-config-prettier": "^9.1.0",
36
+ "eslint-plugin-prettier": "^5.2.1",
37
+ "prettier": "^3.3.3",
38
+ "rimraf": "^6.0.1",
39
+ "ts-node": "^10.9.2",
40
+ "tsc-watch": "^6.2.0"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public",
package/patch-lua.d.ts ADDED
File without changes
package/patch-lua.lua ADDED
@@ -0,0 +1,10 @@
1
+ local getmetatable = _G.getmetatable
2
+ local ipairs = _G.ipairs
3
+
4
+ _G.ipairs = function(t)
5
+ local metatable = getmetatable(t)
6
+ if metatable and metatable.__ipairs then
7
+ return metatable.__ipairs(t)
8
+ end
9
+ return ipairs(t)
10
+ end
package/property.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ /** @noSelfInFile */
2
+ import { Player } from "./core/types/player";
3
+ import { Event } from "./event";
4
+ export declare class PersistentPropertiesConfig {
5
+ static defaultFileName: string;
6
+ }
7
+ declare const enum PropertyPropertyKey {
8
+ DEFAULT_VALUE = 0,
9
+ VALUE = 1,
10
+ IS_CHANGED = 2
11
+ }
12
+ export declare class Property<T> {
13
+ readonly valueChangeEvent: Event<[newValue: T, oldValue: T]>;
14
+ private [PropertyPropertyKey.DEFAULT_VALUE];
15
+ private [PropertyPropertyKey.VALUE];
16
+ private [PropertyPropertyKey.IS_CHANGED]?;
17
+ constructor(defaultValue: T);
18
+ get defaultValue(): T;
19
+ set defaultValue(defaultValue: T);
20
+ get value(): T;
21
+ set value(value: T);
22
+ get isChanged(): boolean;
23
+ reset(): boolean;
24
+ set(value: T): boolean;
25
+ get(): T;
26
+ }
27
+ declare const enum PlayerPropertyPropertyKey {
28
+ DEFAULT_VALUE = 0,
29
+ VALUE_BY_PLAYER = 1,
30
+ IS_CHANGED_BY_PLAYER = 2
31
+ }
32
+ export declare class PlayerProperty<T> {
33
+ readonly valueChangeEvent: Event<[player: Player, newValue: T, oldValue: T]>;
34
+ private readonly [PlayerPropertyPropertyKey.DEFAULT_VALUE];
35
+ private readonly [PlayerPropertyPropertyKey.VALUE_BY_PLAYER];
36
+ private readonly [PlayerPropertyPropertyKey.IS_CHANGED_BY_PLAYER];
37
+ constructor(defaultValue: T);
38
+ isChanged(player: Player): boolean;
39
+ reset(player: Player): boolean;
40
+ set(player: Player, value: T): boolean;
41
+ get(player: Player): T;
42
+ }
43
+ export declare class PersistentProperty<T extends undefined | boolean | number | string> extends Property<T> {
44
+ readonly id: number;
45
+ constructor(id: number, defaultValue: T, valueChangeEventListener?: (newValue: T, oldValue: T) => void);
46
+ reset(): boolean;
47
+ set(value: T): boolean;
48
+ }
49
+ export declare class PersistentPlayerProperty<T extends string | number | boolean> extends PlayerProperty<T> {
50
+ readonly id: number;
51
+ constructor(id: number, initialValue: T, valueChangeEventListener?: (player: Player, newValue: T, oldValue: T) => void);
52
+ reset(player: Player): boolean;
53
+ set(player: Player, value: T): boolean;
54
+ }
55
+ export {};