warscript 0.0.1-dev.ad08e94 → 0.0.1-dev.aeaf398

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 (146) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/frame.lua +24 -21
  4. package/core/types/player.d.ts +16 -0
  5. package/core/types/player.lua +60 -15
  6. package/core/types/playerCamera.d.ts +2 -0
  7. package/core/types/playerCamera.lua +123 -5
  8. package/core/types/sound.lua +5 -0
  9. package/core/types/tileCell.d.ts +11 -1
  10. package/core/types/tileCell.lua +97 -0
  11. package/core/types/timer.d.ts +3 -1
  12. package/core/types/timer.lua +27 -2
  13. package/decl/native.d.ts +846 -790
  14. package/destroyable.d.ts +1 -0
  15. package/destroyable.lua +9 -0
  16. package/engine/behavior.d.ts +14 -1
  17. package/engine/behavior.lua +230 -70
  18. package/engine/behaviour/ability/apply-buff.lua +5 -5
  19. package/engine/behaviour/ability/damage.d.ts +6 -3
  20. package/engine/behaviour/ability/damage.lua +24 -36
  21. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  22. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  23. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  24. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  25. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  26. package/engine/behaviour/ability/restore-mana.lua +6 -6
  27. package/engine/behaviour/ability.d.ts +2 -1
  28. package/engine/behaviour/ability.lua +10 -18
  29. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  30. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  31. package/engine/behaviour/unit.d.ts +39 -3
  32. package/engine/behaviour/unit.lua +269 -6
  33. package/engine/buff.d.ts +21 -8
  34. package/engine/buff.lua +187 -121
  35. package/engine/internal/ability.d.ts +7 -1
  36. package/engine/internal/ability.lua +49 -9
  37. package/engine/internal/item/ability.lua +63 -11
  38. package/engine/internal/item+owner.lua +12 -6
  39. package/engine/internal/item.d.ts +18 -17
  40. package/engine/internal/item.lua +135 -49
  41. package/engine/internal/mechanics/cast-ability.lua +6 -3
  42. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  43. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  44. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  45. package/engine/internal/misc/frame-coordinates.lua +21 -0
  46. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  47. package/engine/internal/misc/get-terrain-z.lua +11 -0
  48. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  49. package/engine/internal/misc/player-local-handle.lua +5 -0
  50. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  51. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  52. package/engine/internal/unit/ability.d.ts +35 -0
  53. package/engine/internal/unit/ability.lua +98 -9
  54. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  55. package/engine/internal/unit/allowed-targets.lua +9 -1
  56. package/engine/internal/unit/attributes.d.ts +17 -0
  57. package/engine/internal/unit/attributes.lua +46 -0
  58. package/engine/internal/unit/bonus.d.ts +2 -0
  59. package/engine/internal/unit/bonus.lua +10 -0
  60. package/engine/internal/unit/fly-height.d.ts +7 -0
  61. package/engine/internal/unit/fly-height.lua +20 -0
  62. package/engine/internal/unit/interrupts.d.ts +12 -0
  63. package/engine/internal/unit/interrupts.lua +28 -0
  64. package/engine/internal/unit/main-selected.lua +12 -27
  65. package/engine/internal/unit/order.d.ts +20 -0
  66. package/engine/internal/unit/order.lua +136 -0
  67. package/engine/internal/unit/scale.d.ts +7 -0
  68. package/engine/internal/unit/scale.lua +20 -0
  69. package/engine/internal/unit+ability.lua +10 -1
  70. package/engine/internal/unit+damage.d.ts +2 -11
  71. package/engine/internal/unit+damage.lua +10 -14
  72. package/engine/internal/unit+spellSteal.lua +1 -2
  73. package/engine/internal/unit-missile-launch.lua +52 -14
  74. package/engine/internal/unit.d.ts +39 -26
  75. package/engine/internal/unit.lua +375 -236
  76. package/engine/local-client.d.ts +2 -0
  77. package/engine/local-client.lua +30 -0
  78. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  79. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  80. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  81. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  82. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  83. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  84. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  85. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  86. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  87. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  88. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  89. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  90. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  91. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  92. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  93. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  94. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  95. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  96. package/engine/object-data/entry/ability-type.lua +11 -3
  97. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  98. package/engine/object-data/entry/buff-type.d.ts +5 -11
  99. package/engine/object-data/entry/buff-type.lua +11 -27
  100. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  101. package/engine/object-data/entry/destructible-type.lua +155 -0
  102. package/engine/object-data/entry/unit-type.d.ts +17 -4
  103. package/engine/object-data/entry/unit-type.lua +197 -85
  104. package/engine/object-field/ability.d.ts +4 -4
  105. package/engine/object-field/ability.lua +7 -6
  106. package/engine/object-field/unit.d.ts +72 -3
  107. package/engine/object-field/unit.lua +268 -7
  108. package/engine/object-field.d.ts +25 -6
  109. package/engine/object-field.lua +357 -118
  110. package/engine/random.d.ts +9 -0
  111. package/engine/random.lua +13 -0
  112. package/engine/standard/entries/buff-type.d.ts +3 -0
  113. package/engine/standard/entries/buff-type.lua +3 -0
  114. package/engine/standard/fields/ability.d.ts +2 -2
  115. package/engine/standard/fields/ability.lua +2 -2
  116. package/engine/standard/fields/unit.d.ts +12 -0
  117. package/engine/standard/fields/unit.lua +20 -0
  118. package/engine/synchronization.d.ts +11 -0
  119. package/engine/synchronization.lua +77 -0
  120. package/engine/text-tag.d.ts +36 -2
  121. package/engine/text-tag.lua +250 -10
  122. package/engine/unit.d.ts +5 -0
  123. package/engine/unit.lua +5 -0
  124. package/net/socket.lua +1 -1
  125. package/objutil/buff.lua +11 -10
  126. package/package.json +2 -2
  127. package/patch-lua.lua +9 -0
  128. package/patch-lualib.lua +1 -1
  129. package/utility/arrays.d.ts +2 -0
  130. package/utility/arrays.lua +11 -0
  131. package/utility/callback-array.d.ts +17 -0
  132. package/utility/callback-array.lua +61 -0
  133. package/utility/functions.d.ts +8 -0
  134. package/utility/functions.lua +13 -0
  135. package/utility/linked-map.d.ts +26 -0
  136. package/utility/linked-map.lua +66 -0
  137. package/utility/linked-set.d.ts +2 -0
  138. package/utility/linked-set.lua +26 -1
  139. package/utility/lua-maps.d.ts +15 -2
  140. package/utility/lua-maps.lua +53 -2
  141. package/utility/lua-sets.d.ts +2 -0
  142. package/utility/lua-sets.lua +7 -0
  143. package/utility/records.lua +20 -1
  144. package/utility/types.d.ts +3 -0
  145. package/core/types/order.d.ts +0 -25
  146. package/core/types/order.lua +0 -55
@@ -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)