warscript 0.0.1-dev.a58cc52 → 0.0.1-dev.a5a2f5e

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 (168) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/frame.lua +71 -22
  4. package/core/types/item.d.ts +1 -0
  5. package/core/types/item.lua +1 -0
  6. package/core/types/player.d.ts +17 -1
  7. package/core/types/player.lua +70 -24
  8. package/core/types/playerCamera.d.ts +2 -0
  9. package/core/types/playerCamera.lua +123 -5
  10. package/core/types/sound.lua +1 -1
  11. package/core/types/tileCell.d.ts +11 -1
  12. package/core/types/tileCell.lua +97 -0
  13. package/core/types/timer.d.ts +3 -1
  14. package/core/types/timer.lua +27 -2
  15. package/decl/native.d.ts +6 -4
  16. package/destroyable.d.ts +1 -0
  17. package/destroyable.lua +9 -0
  18. package/engine/behavior.d.ts +14 -1
  19. package/engine/behavior.lua +230 -70
  20. package/engine/behaviour/ability/apply-buff.lua +5 -5
  21. package/engine/behaviour/ability/damage.d.ts +7 -2
  22. package/engine/behaviour/ability/damage.lua +31 -37
  23. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  24. package/engine/behaviour/ability/emulate-impact.lua +16 -7
  25. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  26. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  27. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  28. package/engine/behaviour/ability/restore-mana.lua +6 -6
  29. package/engine/behaviour/ability.d.ts +11 -6
  30. package/engine/behaviour/ability.lua +38 -17
  31. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  32. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  33. package/engine/behaviour/unit.d.ts +39 -3
  34. package/engine/behaviour/unit.lua +269 -6
  35. package/engine/buff.d.ts +67 -22
  36. package/engine/buff.lua +371 -182
  37. package/engine/internal/ability.d.ts +7 -1
  38. package/engine/internal/ability.lua +64 -24
  39. package/engine/internal/item/ability.lua +63 -11
  40. package/engine/internal/item/fields.d.ts +12 -0
  41. package/engine/internal/item/fields.lua +33 -0
  42. package/engine/internal/item+owner.lua +12 -6
  43. package/engine/internal/item.d.ts +12 -16
  44. package/engine/internal/item.lua +118 -69
  45. package/engine/internal/mechanics/cast-ability.lua +6 -3
  46. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  47. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  48. package/engine/internal/misc/frame-coordinates.lua +21 -0
  49. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  50. package/engine/internal/misc/get-terrain-z.lua +11 -0
  51. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  52. package/engine/internal/misc/player-local-handle.lua +5 -0
  53. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  54. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  55. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  56. package/engine/internal/object-data/health-bonus.lua +16 -0
  57. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  58. package/engine/internal/object-data/mana-bonus.lua +16 -0
  59. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  60. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  61. package/engine/internal/unit/ability.d.ts +35 -0
  62. package/engine/internal/unit/ability.lua +98 -9
  63. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  64. package/engine/internal/unit/allowed-targets.lua +9 -1
  65. package/engine/internal/unit/attributes.d.ts +17 -0
  66. package/engine/internal/unit/attributes.lua +46 -0
  67. package/engine/internal/unit/bonus.d.ts +6 -0
  68. package/engine/internal/unit/bonus.lua +33 -3
  69. package/engine/internal/unit/fly-height.d.ts +7 -0
  70. package/engine/internal/unit/fly-height.lua +20 -0
  71. package/engine/internal/unit/interrupts.d.ts +12 -0
  72. package/engine/internal/unit/interrupts.lua +28 -0
  73. package/engine/internal/unit/main-selected.lua +12 -27
  74. package/engine/internal/unit/order.d.ts +20 -0
  75. package/engine/internal/unit/order.lua +136 -0
  76. package/engine/internal/unit/range-event.d.ts +12 -0
  77. package/engine/internal/unit/range-event.lua +90 -0
  78. package/engine/internal/unit/scale.d.ts +7 -0
  79. package/engine/internal/unit/scale.lua +20 -0
  80. package/engine/internal/unit+ability.lua +10 -1
  81. package/engine/internal/unit+bonus.lua +3 -3
  82. package/engine/internal/unit+damage.d.ts +1 -1
  83. package/engine/internal/unit+damage.lua +6 -1
  84. package/engine/internal/unit-missile-launch.lua +52 -14
  85. package/engine/internal/unit.d.ts +32 -26
  86. package/engine/internal/unit.lua +351 -269
  87. package/engine/local-client.d.ts +7 -0
  88. package/engine/local-client.lua +86 -1
  89. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  90. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  91. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  92. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  93. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  94. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  95. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  96. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  97. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  98. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  99. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  100. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  101. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  102. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  103. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  104. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  105. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  106. package/engine/object-data/entry/ability-type.d.ts +2 -0
  107. package/engine/object-data/entry/ability-type.lua +89 -8
  108. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  109. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  110. package/engine/object-data/entry/destructible-type.lua +155 -0
  111. package/engine/object-data/entry/unit-type.d.ts +15 -2
  112. package/engine/object-data/entry/unit-type.lua +135 -33
  113. package/engine/object-field/ability.d.ts +3 -3
  114. package/engine/object-field/ability.lua +9 -8
  115. package/engine/object-field/item.d.ts +22 -0
  116. package/engine/object-field/item.lua +118 -0
  117. package/engine/object-field/unit.d.ts +31 -5
  118. package/engine/object-field/unit.lua +95 -0
  119. package/engine/object-field.d.ts +18 -7
  120. package/engine/object-field.lua +294 -135
  121. package/engine/random.d.ts +10 -0
  122. package/engine/random.lua +21 -0
  123. package/engine/standard/fields/ability.d.ts +2 -2
  124. package/engine/standard/fields/ability.lua +2 -2
  125. package/engine/standard/fields/item.d.ts +4 -0
  126. package/engine/standard/fields/item.lua +6 -0
  127. package/engine/standard/fields/unit.d.ts +12 -0
  128. package/engine/standard/fields/unit.lua +20 -0
  129. package/engine/synchronization.d.ts +11 -0
  130. package/engine/synchronization.lua +77 -0
  131. package/engine/text-tag.d.ts +36 -2
  132. package/engine/text-tag.lua +250 -10
  133. package/engine/unit.d.ts +6 -0
  134. package/engine/unit.lua +6 -0
  135. package/lualib_bundle.lua +1 -1
  136. package/math.d.ts +2 -0
  137. package/math.lua +14 -0
  138. package/net/socket.lua +1 -1
  139. package/objutil/buff.lua +10 -8
  140. package/objutil/object.lua +1 -1
  141. package/operation.lua +1 -4
  142. package/package.json +5 -5
  143. package/patch-lua.lua +15 -0
  144. package/patch-lualib.lua +1 -1
  145. package/utility/arrays.d.ts +1 -0
  146. package/utility/arrays.lua +8 -0
  147. package/utility/callback-array.d.ts +17 -0
  148. package/utility/callback-array.lua +61 -0
  149. package/utility/functions.d.ts +7 -0
  150. package/utility/functions.lua +12 -0
  151. package/utility/linked-map.d.ts +35 -0
  152. package/utility/linked-map.lua +107 -0
  153. package/utility/linked-set.d.ts +4 -1
  154. package/utility/linked-set.lua +46 -1
  155. package/utility/lua-maps.d.ts +12 -2
  156. package/utility/lua-maps.lua +37 -2
  157. package/utility/lua-sets.d.ts +1 -0
  158. package/utility/lua-sets.lua +4 -0
  159. package/utility/records.lua +20 -1
  160. package/utility/types.d.ts +3 -0
  161. package/utility/unordered-map.d.ts +27 -0
  162. package/utility/unordered-map.lua +99 -0
  163. package/core/types/order.d.ts +0 -25
  164. package/core/types/order.lua +0 -55
  165. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  166. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  167. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  168. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,10 +1,20 @@
1
1
  /** @noSelfInFile */
2
- export declare class TileCell implements Readonly<Vec2> {
2
+ import { AttributesHolder } from "../../attributes";
3
+ export declare class TileCell extends AttributesHolder implements Readonly<Vec2> {
3
4
  private readonly id;
4
5
  readonly x: number;
5
6
  readonly y: number;
6
7
  readonly z: undefined;
7
8
  protected constructor(id: number, x: number, y: number, z: undefined);
9
+ get up(): TileCell;
10
+ get down(): TileCell;
11
+ get left(): TileCell;
12
+ get right(): TileCell;
13
+ get terrainTypeId(): number;
14
+ set terrainTypeId(terrainTypeId: number);
15
+ get terrainVariance(): number;
16
+ set terrainVariance(terrainVariance: number);
17
+ randomizeTerrainVariance(): void;
8
18
  isInRangeOf(x: number, y: number, range: number): boolean;
9
19
  isInRangeOf(tileCell: TileCell, range: number): boolean;
10
20
  static getInRect(minX: number, minY: number, maxX: number, maxY: number): TileCell[];
@@ -1,7 +1,14 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
3
4
  local __TS__New = ____lualib.__TS__New
5
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
6
  local ____exports = {}
7
+ local ____attributes = require("attributes")
8
+ local AttributesHolder = ____attributes.AttributesHolder
9
+ local getTerrainType = GetTerrainType
10
+ local setTerrainType = SetTerrainType
11
+ local getTerrainVariance = GetTerrainVariance
5
12
  local abs = math.abs
6
13
  local ____type = math.type
7
14
  local ult = math.ult
@@ -9,13 +16,27 @@ local tileCellById = {}
9
16
  ____exports.TileCell = __TS__Class()
10
17
  local TileCell = ____exports.TileCell
11
18
  TileCell.name = "TileCell"
19
+ __TS__ClassExtends(TileCell, AttributesHolder)
12
20
  function TileCell.prototype.____constructor(self, id, x, y, z)
21
+ AttributesHolder.prototype.____constructor(self)
13
22
  self.id = id
14
23
  self.x = x
15
24
  self.y = y
16
25
  self.z = z
17
26
  tileCellById[id] = self
18
27
  end
28
+ function TileCell.prototype.randomizeTerrainVariance(self)
29
+ local x = self.x
30
+ local y = self.y
31
+ setTerrainType(
32
+ x,
33
+ y,
34
+ getTerrainType(x, y),
35
+ -1,
36
+ 1,
37
+ 1
38
+ )
39
+ end
19
40
  function TileCell.prototype.isInRangeOf(self, x, y, range)
20
41
  if range == nil then
21
42
  range = y
@@ -97,4 +118,80 @@ function TileCell.of(x, y)
97
118
  nil
98
119
  )
99
120
  end
121
+ __TS__SetDescriptor(
122
+ TileCell.prototype,
123
+ "up",
124
+ {get = function(self)
125
+ return ____exports.TileCell.of(self.x, self.y + 128)
126
+ end},
127
+ true
128
+ )
129
+ __TS__SetDescriptor(
130
+ TileCell.prototype,
131
+ "down",
132
+ {get = function(self)
133
+ return ____exports.TileCell.of(self.x, self.y - 128)
134
+ end},
135
+ true
136
+ )
137
+ __TS__SetDescriptor(
138
+ TileCell.prototype,
139
+ "left",
140
+ {get = function(self)
141
+ return ____exports.TileCell.of(self.x - 128, self.y)
142
+ end},
143
+ true
144
+ )
145
+ __TS__SetDescriptor(
146
+ TileCell.prototype,
147
+ "right",
148
+ {get = function(self)
149
+ return ____exports.TileCell.of(self.x + 128, self.y)
150
+ end},
151
+ true
152
+ )
153
+ __TS__SetDescriptor(
154
+ TileCell.prototype,
155
+ "terrainTypeId",
156
+ {
157
+ get = function(self)
158
+ return getTerrainType(self.x, self.y)
159
+ end,
160
+ set = function(self, terrainTypeId)
161
+ local x = self.x
162
+ local y = self.y
163
+ setTerrainType(
164
+ x,
165
+ y,
166
+ terrainTypeId,
167
+ getTerrainVariance(x, y),
168
+ 1,
169
+ 1
170
+ )
171
+ end
172
+ },
173
+ true
174
+ )
175
+ __TS__SetDescriptor(
176
+ TileCell.prototype,
177
+ "terrainVariance",
178
+ {
179
+ get = function(self)
180
+ return getTerrainVariance(self.x, self.y)
181
+ end,
182
+ set = function(self, terrainVariance)
183
+ local x = self.x
184
+ local y = self.y
185
+ setTerrainType(
186
+ x,
187
+ y,
188
+ getTerrainType(x, y),
189
+ terrainVariance,
190
+ 1,
191
+ 1
192
+ )
193
+ end
194
+ },
195
+ true
196
+ )
100
197
  return ____exports
@@ -1,6 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { Event } from "../../event";
3
3
  import { AbstractDestroyable, Destructor } from "../../destroyable";
4
+ import { CallbackId } from "../../utility/callback-array";
4
5
  declare const enum TimerPropertyKey {
5
6
  HANDLE = 0,
6
7
  DESTROY_ON_EXPIRATION = 1,
@@ -22,7 +23,8 @@ export declare class Timer extends AbstractDestroyable {
22
23
  pause(): void;
23
24
  resume(): void;
24
25
  static create(): Timer;
25
- static run<Args extends any[]>(callback: (...args: Args) => void, ...args: Args): void;
26
+ static run<T, K extends KeysOfType<T, (this: T, ...args: any) => any>>(object: T, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): CallbackId;
27
+ static run<Args extends any[]>(callback: (this: void, ...args: Args) => void, ...args: Args): CallbackId;
26
28
  static simple<Args extends any[]>(timeout: number, callback: (...args: Args) => void, ...args: Args): Timer;
27
29
  static periodic<Args extends any[]>(period: number, callback: (this: void, timer: Timer, ...args: Args) => void, ...args: Args): Timer;
28
30
  static counted(period: number, count: number, callback: (this: void, timer: Timer) => void): Timer;
@@ -12,6 +12,11 @@ local ____objectPool = require("util.objectPool")
12
12
  local ObjectPool = ____objectPool.ObjectPool
13
13
  local ____destroyable = require("destroyable")
14
14
  local AbstractDestroyable = ____destroyable.AbstractDestroyable
15
+ local ____callback_2Darray = require("utility.callback-array")
16
+ local addCallback = ____callback_2Darray.addCallback
17
+ local callbackArray = ____callback_2Darray.callbackArray
18
+ local consumeCallback = ____callback_2Darray.consumeCallback
19
+ local consumeCallbacks = ____callback_2Darray.consumeCallbacks
15
20
  local createTimer = CreateTimer
16
21
  local timerStart = TimerStart
17
22
  local pauseTimer = PauseTimer
@@ -24,6 +29,7 @@ local getHandleId = GetHandleId
24
29
  local ____pcall = _G.pcall
25
30
  local ____print = _G.print
26
31
  local select = _G.select
32
+ local ____type = _G.type
27
33
  local safeCall = warpack.safeCall
28
34
  local corunning = coroutine.running
29
35
  local coresume = coroutine.resume
@@ -48,6 +54,17 @@ local function timerSafeCall()
48
54
  end
49
55
  end
50
56
  end
57
+ local zeroTimerScheduled = false
58
+ local zeroTimerCallbacks = callbackArray()
59
+ ---
60
+ -- @internal For use by internal systems only.
61
+ ____exports.consumeZeroTimerCallback = function(id)
62
+ consumeCallback(zeroTimerCallbacks, id)
63
+ end
64
+ local function invokeZeroTimerCallbacks()
65
+ zeroTimerScheduled = false
66
+ consumeCallbacks(zeroTimerCallbacks)
67
+ end
51
68
  ____exports.Timer = __TS__Class()
52
69
  local Timer = ____exports.Timer
53
70
  Timer.name = "Timer"
@@ -81,8 +98,16 @@ end
81
98
  function Timer.create(self)
82
99
  return __TS__New(____exports.Timer)
83
100
  end
84
- function Timer.run(self, callback, ...)
85
- ____exports.Timer:simple(0, callback, ...)
101
+ function Timer.run(self, objectOrCallback, keyOrFirstArg, ...)
102
+ if not zeroTimerScheduled then
103
+ zeroTimerScheduled = true
104
+ ____exports.Timer:simple(0, invokeZeroTimerCallbacks)
105
+ end
106
+ if ____type(objectOrCallback) == "function" then
107
+ return addCallback(zeroTimerCallbacks, objectOrCallback, keyOrFirstArg, ...)
108
+ else
109
+ return addCallback(zeroTimerCallbacks, objectOrCallback[keyOrFirstArg], objectOrCallback, ...)
110
+ end
86
111
  end
87
112
  function Timer.simple(self, timeout, callback, ...)
88
113
  local timer = __TS__New(____exports.Timer)
package/decl/native.d.ts CHANGED
@@ -388,13 +388,15 @@ declare interface jmovetype extends jhandle {
388
388
  declare interface jtargetflag extends jhandle {
389
389
  __jtargetflag: never
390
390
  }
391
- declare interface jarmortype extends jhandle {
391
+ declare type jarmortype = symbol &
392
+ jhandle & {
392
393
  __jarmortype: never
393
394
  }
394
395
  declare interface jheroattribute extends jhandle {
395
396
  __jheroattribute: never
396
397
  }
397
- declare interface jdefensetype extends jhandle {
398
+ declare type jdefensetype = symbol &
399
+ jhandle & {
398
400
  __jdefensetype: never
399
401
  }
400
402
  declare interface jregentype extends jhandle {
@@ -5257,8 +5259,8 @@ declare function BlzRemoveAbilityStringLevelArrayField(
5257
5259
  level: number,
5258
5260
  value: string,
5259
5261
  ): boolean
5260
- declare function BlzGetItemAbilityByIndex(whichItem: jitem, index: number): jability | null
5261
- declare function BlzGetItemAbility(whichItem: jitem, abilCode: number): jability | null
5262
+ declare function BlzGetItemAbilityByIndex(whichItem: jitem, index: number): jability | undefined
5263
+ declare function BlzGetItemAbility(whichItem: jitem, abilCode: number): jability | undefined
5262
5264
  declare function BlzItemAddAbility(whichItem: jitem, abilCode: number): boolean
5263
5265
  declare function BlzGetItemBooleanField(whichItem: jitem, whichField: jitembooleanfield): boolean
5264
5266
  declare function BlzGetItemIntegerField(whichItem: jitem, whichField: jitemintegerfield): number
package/destroyable.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface Destroyable {
10
10
  destroy(): void;
11
11
  }
12
12
  export declare abstract class AbstractDestroyable implements Destroyable {
13
+ get isDestroyed(): boolean;
13
14
  /**
14
15
  * An overriding function should always call the super one at the end of it,
15
16
  * in the following manner: `return super.onDestroy()`.
package/destroyable.lua CHANGED
@@ -1,6 +1,7 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__New = ____lualib.__TS__New
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
4
5
  local ____exports = {}
5
6
  local ____exception = require("exception")
6
7
  local IllegalStateException = ____exception.IllegalStateException
@@ -28,4 +29,12 @@ function AbstractDestroyable.prototype.destroy(self)
28
29
  end
29
30
  return true
30
31
  end
32
+ __TS__SetDescriptor(
33
+ AbstractDestroyable.prototype,
34
+ "isDestroyed",
35
+ {get = function(self)
36
+ return stateByDestroyable[self] ~= nil
37
+ end},
38
+ true
39
+ )
31
40
  return ____exports
@@ -1,5 +1,11 @@
1
1
  /** @noSelfInFile */
2
2
  import { AbstractDestroyable, Destructor } from "../destroyable";
3
+ import { Event } from "../event";
4
+ export declare const enum BehaviorPriority {
5
+ HIGH = 0,
6
+ MEDIUM = 1,
7
+ LOW = 2
8
+ }
3
9
  export type BehaviorConstructor<T extends Behavior<AnyNotNil>, Parameters extends any[] = any[]> = OmitConstructor<typeof Behavior<any>> & (abstract new (...parameters: Parameters) => T);
4
10
  declare const enum BehaviorPropertyKey {
5
11
  PREVIOUS_BEHAVIOR = 0,
@@ -8,11 +14,16 @@ declare const enum BehaviorPropertyKey {
8
14
  }
9
15
  export declare abstract class Behavior<T extends AnyNotNil, PeriodicActionParameters extends any[] = any[]> extends AbstractDestroyable {
10
16
  protected readonly object: T;
17
+ readonly priority: BehaviorPriority;
11
18
  private [BehaviorPropertyKey.PREVIOUS_BEHAVIOR]?;
12
19
  private [BehaviorPropertyKey.NEXT_BEHAVIOR]?;
13
20
  private [BehaviorPropertyKey.TIMER]?;
14
- protected constructor(object: T);
21
+ constructor(object: T, priority?: BehaviorPriority);
15
22
  protected onDestroy(): Destructor;
23
+ protected registerGlobalEvent<K extends string, Args extends any[]>(this: Behavior<any, PeriodicActionParameters> & Record<K, (this: this, ...args: Args) => unknown>, event: Event<[...Args]>, listener: K): void;
24
+ protected deregisterGlobalEvent(event: Event<any>): boolean;
25
+ protected registerEvent<K extends string, Args extends any[]>(this: Behavior<any, PeriodicActionParameters> & Record<K, (this: this, ...args: Args) => unknown>, event: Event<[...Args]>, extractObject: (...args: Args) => T | undefined, listener: K): void;
26
+ protected deregisterEvent(event: Event<any>): boolean;
16
27
  protected onPeriod(...parameters: PeriodicActionParameters): void;
17
28
  protected startPeriodicAction(interval: number, ...parameters: PeriodicActionParameters): void;
18
29
  protected stopPeriodicAction(): void;
@@ -24,5 +35,7 @@ export declare abstract class Behavior<T extends AnyNotNil, PeriodicActionParame
24
35
  static forFirst<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], K extends KeysOfType<T, (this: T, ...args: any) => any>>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, count: number, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): number;
25
36
  static forAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[]>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => unknown, ...parameters: ConsumerParameters): number;
26
37
  static forAll<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], K extends KeysOfType<T, (this: T, ...args: any) => any>>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, key: K, ...parameters: T[K] extends (this: T, ...args: any) => any ? Parameters<T[K]> : never): number;
38
+ static reduce<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], ConsumerParameters extends any[], Accumulator, R>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, operation: (this: void, accumulator: Accumulator, value: R) => Accumulator, initial: Accumulator, consumer: (this: void, behavior: T, ...parameters: ConsumerParameters) => R, ...parameters: ConsumerParameters): Accumulator;
39
+ static reduce<T extends Behavior<AnyNotNil>, ConstructorParameters extends any[], Accumulator, R, K extends KeysOfType<T, (this: T, ...args: any) => R>>(this: BehaviorConstructor<T, ConstructorParameters>, object: T extends Behavior<infer Object> ? Object : never, operation: (this: void, accumulator: Accumulator, value: R) => Accumulator, initial: Accumulator, key: K, ...parameters: T[K] extends (this: T, ...args: any) => R ? Parameters<T[K]> : never): Accumulator;
27
40
  }
28
41
  export {};