warscript 0.0.1-dev.c8224f3 → 0.0.1-dev.c86de6d

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 (242) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.lua +71 -22
  8. package/core/types/handle.lua +6 -9
  9. package/core/types/item.d.ts +1 -0
  10. package/core/types/item.lua +1 -0
  11. package/core/types/player.d.ts +17 -1
  12. package/core/types/player.lua +70 -24
  13. package/core/types/playerCamera.d.ts +2 -0
  14. package/core/types/playerCamera.lua +123 -5
  15. package/core/types/sound.d.ts +17 -24
  16. package/core/types/sound.lua +100 -25
  17. package/core/types/tileCell.d.ts +11 -1
  18. package/core/types/tileCell.lua +97 -0
  19. package/core/types/timer.d.ts +9 -8
  20. package/core/types/timer.lua +45 -23
  21. package/core/util.lua +6 -1
  22. package/decl/native.d.ts +846 -790
  23. package/destroyable.d.ts +1 -0
  24. package/destroyable.lua +9 -0
  25. package/engine/behavior.d.ts +14 -1
  26. package/engine/behavior.lua +230 -70
  27. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  28. package/engine/behaviour/ability/apply-buff.lua +36 -4
  29. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  30. package/engine/behaviour/ability/damage.d.ts +12 -3
  31. package/engine/behaviour/ability/damage.lua +33 -39
  32. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  33. package/engine/behaviour/ability/emulate-impact.lua +23 -7
  34. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  35. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  36. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  37. package/engine/behaviour/ability/restore-mana.lua +6 -6
  38. package/engine/behaviour/ability.d.ts +15 -5
  39. package/engine/behaviour/ability.lua +72 -24
  40. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  41. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  42. package/engine/behaviour/unit.d.ts +40 -2
  43. package/engine/behaviour/unit.lua +269 -6
  44. package/engine/buff.d.ts +113 -53
  45. package/engine/buff.lua +544 -288
  46. package/engine/internal/ability.d.ts +7 -1
  47. package/engine/internal/ability.lua +64 -24
  48. package/engine/internal/item/ability.lua +63 -11
  49. package/engine/internal/item/fields.d.ts +12 -0
  50. package/engine/internal/item/fields.lua +33 -0
  51. package/engine/internal/item+owner.lua +12 -6
  52. package/engine/internal/item.d.ts +18 -18
  53. package/engine/internal/item.lua +208 -94
  54. package/engine/internal/mechanics/ability-duration.lua +1 -1
  55. package/engine/internal/mechanics/cast-ability.lua +6 -3
  56. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  57. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  58. package/engine/internal/misc/frame-coordinates.lua +21 -0
  59. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  60. package/engine/internal/misc/get-terrain-z.lua +11 -0
  61. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  62. package/engine/internal/misc/player-local-handle.lua +5 -0
  63. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  64. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  65. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  66. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  67. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  68. package/engine/internal/object-data/evasion-probability.lua +16 -0
  69. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  70. package/engine/internal/object-data/health-bonus.lua +16 -0
  71. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  72. package/engine/internal/object-data/mana-bonus.lua +16 -0
  73. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  74. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  75. package/engine/internal/unit/ability.d.ts +35 -0
  76. package/engine/internal/unit/ability.lua +98 -9
  77. package/engine/internal/unit/add-item-to-slot.lua +4 -2
  78. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  79. package/engine/internal/unit/allowed-targets.lua +9 -1
  80. package/engine/internal/unit/attributes.d.ts +17 -0
  81. package/engine/internal/unit/attributes.lua +46 -0
  82. package/engine/internal/unit/bonus.d.ts +8 -0
  83. package/engine/internal/unit/bonus.lua +50 -3
  84. package/engine/internal/unit/fly-height.d.ts +7 -0
  85. package/engine/internal/unit/fly-height.lua +20 -0
  86. package/engine/internal/unit/interrupts.d.ts +12 -0
  87. package/engine/internal/unit/interrupts.lua +28 -0
  88. package/engine/internal/unit/main-selected.lua +12 -27
  89. package/engine/internal/unit/order.d.ts +20 -0
  90. package/engine/internal/unit/order.lua +136 -0
  91. package/engine/internal/unit/range-event.d.ts +12 -0
  92. package/engine/internal/unit/range-event.lua +90 -0
  93. package/engine/internal/unit/scale.d.ts +7 -0
  94. package/engine/internal/unit/scale.lua +20 -0
  95. package/engine/internal/unit+ability.lua +10 -1
  96. package/engine/internal/unit+bonus.lua +3 -3
  97. package/engine/internal/unit+damage.d.ts +2 -11
  98. package/engine/internal/unit+damage.lua +10 -14
  99. package/engine/internal/unit+spellSteal.lua +1 -2
  100. package/engine/internal/unit-missile-launch.lua +52 -14
  101. package/engine/internal/unit.d.ts +43 -25
  102. package/engine/internal/unit.lua +384 -260
  103. package/engine/lightning.d.ts +4 -3
  104. package/engine/lightning.lua +21 -12
  105. package/engine/local-client.d.ts +7 -0
  106. package/engine/local-client.lua +86 -1
  107. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  108. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  109. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  110. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  111. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  112. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  113. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  114. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  115. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  116. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  117. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  118. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  119. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  120. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  121. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  122. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  123. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  124. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  125. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  126. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  127. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  128. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  129. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  130. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  131. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  132. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  133. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  134. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  135. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  136. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  137. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  138. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  139. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  140. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  141. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  142. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  143. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  144. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  145. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  146. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  147. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  148. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  149. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  150. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  151. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  152. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  153. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  154. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  155. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  156. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  157. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  158. package/engine/object-data/entry/ability-type/web.lua +52 -0
  159. package/engine/object-data/entry/ability-type.d.ts +21 -17
  160. package/engine/object-data/entry/ability-type.lua +169 -28
  161. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  162. package/engine/object-data/entry/buff-type.d.ts +6 -12
  163. package/engine/object-data/entry/buff-type.lua +13 -29
  164. package/engine/object-data/entry/destructible-type.d.ts +28 -2
  165. package/engine/object-data/entry/destructible-type.lua +155 -0
  166. package/engine/object-data/entry/item-type.d.ts +1 -1
  167. package/engine/object-data/entry/item-type.lua +4 -4
  168. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  169. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  170. package/engine/object-data/entry/sound-preset.lua +140 -0
  171. package/engine/object-data/entry/unit-type.d.ts +25 -5
  172. package/engine/object-data/entry/unit-type.lua +258 -93
  173. package/engine/object-data/entry/upgrade.d.ts +1 -1
  174. package/engine/object-data/entry/upgrade.lua +4 -4
  175. package/engine/object-data/entry.d.ts +16 -14
  176. package/engine/object-data/entry.lua +60 -32
  177. package/engine/object-field/ability.d.ts +4 -4
  178. package/engine/object-field/ability.lua +9 -8
  179. package/engine/object-field/item.d.ts +22 -0
  180. package/engine/object-field/item.lua +118 -0
  181. package/engine/object-field/unit.d.ts +72 -3
  182. package/engine/object-field/unit.lua +268 -7
  183. package/engine/object-field.d.ts +26 -7
  184. package/engine/object-field.lua +360 -119
  185. package/engine/random.d.ts +10 -0
  186. package/engine/random.lua +21 -0
  187. package/engine/standard/entries/buff-type.d.ts +3 -0
  188. package/engine/standard/entries/buff-type.lua +3 -0
  189. package/engine/standard/entries/sound-preset.d.ts +10 -0
  190. package/engine/standard/entries/sound-preset.lua +10 -0
  191. package/engine/standard/fields/ability.d.ts +2 -2
  192. package/engine/standard/fields/ability.lua +2 -2
  193. package/engine/standard/fields/item.d.ts +4 -0
  194. package/engine/standard/fields/item.lua +6 -0
  195. package/engine/standard/fields/unit.d.ts +12 -0
  196. package/engine/standard/fields/unit.lua +20 -0
  197. package/engine/synchronization.d.ts +11 -0
  198. package/engine/synchronization.lua +77 -0
  199. package/engine/text-tag.d.ts +36 -2
  200. package/engine/text-tag.lua +250 -10
  201. package/engine/unit.d.ts +6 -0
  202. package/engine/unit.lua +6 -0
  203. package/lualib_bundle.lua +1 -1
  204. package/math.d.ts +2 -0
  205. package/math.lua +14 -0
  206. package/net/socket.lua +1 -1
  207. package/network.lua +25 -1
  208. package/objutil/buff.lua +11 -10
  209. package/objutil/object.lua +1 -1
  210. package/objutil/unit.lua +8 -0
  211. package/operation.d.ts +8 -1
  212. package/operation.lua +38 -18
  213. package/package.json +5 -5
  214. package/patch-lua.lua +15 -0
  215. package/patch-lualib.lua +1 -1
  216. package/utility/arrays.d.ts +2 -0
  217. package/utility/arrays.lua +11 -0
  218. package/utility/callback-array.d.ts +17 -0
  219. package/utility/callback-array.lua +61 -0
  220. package/utility/functions.d.ts +8 -0
  221. package/utility/functions.lua +13 -0
  222. package/utility/linked-map.d.ts +35 -0
  223. package/utility/linked-map.lua +107 -0
  224. package/utility/linked-set.d.ts +5 -1
  225. package/utility/linked-set.lua +49 -1
  226. package/utility/lua-maps.d.ts +15 -2
  227. package/utility/lua-maps.lua +53 -2
  228. package/utility/lua-sets.d.ts +2 -0
  229. package/utility/lua-sets.lua +7 -0
  230. package/utility/random.d.ts +102 -0
  231. package/utility/random.lua +273 -0
  232. package/utility/records.lua +20 -1
  233. package/utility/reflection.lua +11 -7
  234. package/utility/types.d.ts +3 -0
  235. package/utility/unordered-map.d.ts +27 -0
  236. package/utility/unordered-map.lua +99 -0
  237. package/core/types/order.d.ts +0 -25
  238. package/core/types/order.lua +0 -55
  239. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  240. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  241. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  242. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/attributes.d.ts CHANGED
@@ -1,12 +1,18 @@
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
  }
9
13
  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">;
16
+ getOrPut<T>(attribute: Attribute<T>, defaultValue: () => T): T;
12
17
  }
18
+ 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()
@@ -13,4 +20,13 @@ local AttributesHolder = ____exports.AttributesHolder
13
20
  AttributesHolder.name = "AttributesHolder"
14
21
  function AttributesHolder.prototype.____constructor(self)
15
22
  end
23
+ function AttributesHolder.prototype.getOrPut(self, attribute, defaultValue)
24
+ local value = self[attribute]
25
+ if value ~= nil then
26
+ return value
27
+ end
28
+ value = defaultValue()
29
+ self[attribute] = value
30
+ return value
31
+ end
16
32
  return ____exports
package/config.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /** @noSelfInFile */
2
+ export declare class WarscriptConfig {
3
+ private constructor();
4
+ static AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH: boolean;
5
+ }
package/config.lua ADDED
@@ -0,0 +1,10 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local ____exports = {}
4
+ ____exports.WarscriptConfig = __TS__Class()
5
+ local WarscriptConfig = ____exports.WarscriptConfig
6
+ WarscriptConfig.name = "WarscriptConfig"
7
+ function WarscriptConfig.prototype.____constructor(self)
8
+ end
9
+ WarscriptConfig.AUTOMATICALLY_SET_UNIT_TYPE_PORTRAIT_MODEL_PATH = true
10
+ return ____exports
@@ -30,12 +30,10 @@ export declare class Effect extends Handle<jeffect> {
30
30
  set pitch(pitch: number);
31
31
  get roll(): number;
32
32
  set roll(roll: number);
33
- static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, pos: Vec2): T;
34
- static createTarget<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, target: Widget, attachPoint: string): T;
33
+ static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), modelPath: string, xOrWidget: number | Widget, yOrAttachmentPoint?: number | string, parameters?: EffectParameters): T;
35
34
  static flash(modelPath: string, ...args: [
36
35
  ...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint?: string],
37
36
  ...parametersOrDuration: [parametersOrDuration?: EffectParameters | number] | [duration?: number, parameters?: EffectParameters]
38
37
  ]): void;
39
- static flashTarget(model: string, target: Widget, attachPoint: string, duration?: number): void;
40
38
  }
41
39
  export {};
@@ -4,7 +4,7 @@ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
6
6
  local ____exports = {}
7
- local dummyPlayer, flash
7
+ local dummyPlayer, addSpecialEffectInternal, flash
8
8
  local ____handle = require("core.types.handle")
9
9
  local Handle = ____handle.Handle
10
10
  local ____playerColor = require("core.types.playerColor")
@@ -119,6 +119,7 @@ local function setSpecialEffectColor(effect, color)
119
119
  dummyPlayer.color = dummyColor
120
120
  end
121
121
  local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor, pitch = setSpecialEffectPitchDegrees, roll = setSpecialEffectRollDegrees}
122
+ local setterProperties = {"scale", "color", "pitch", "roll"}
122
123
  dummyPlayer = Player.neutralExtra
123
124
  local temporaryEffects = {}
124
125
  local temporaryEffectsDurations = {}
@@ -177,11 +178,14 @@ function Effect.prototype.onDestroy(self)
177
178
  destroyEffect(self.handle)
178
179
  return Handle.prototype.onDestroy(self)
179
180
  end
180
- function Effect.create(self, model, pos)
181
- return self:of(addSpecialEffect(model, pos.x, pos.y))
182
- end
183
- function Effect.createTarget(self, model, target, attachPoint)
184
- return self:of(addSpecialEffectTarget(model, target.handle, attachPoint))
181
+ function Effect.create(self, modelPath, xOrWidget, yOrAttachmentPoint, parameters)
182
+ local effect = self:of(addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters))
183
+ if parameters ~= nil then
184
+ effect[100] = parameters.color
185
+ effect[101] = parameters.pitch
186
+ effect[102] = parameters.roll
187
+ end
188
+ return effect
185
189
  end
186
190
  function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, parametersOrDuration, parameters)
187
191
  if type(parametersOrDuration) ~= "number" then
@@ -206,24 +210,12 @@ function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, paramete
206
210
  parameters
207
211
  )
208
212
  end
209
- function Effect.flashTarget(self, model, target, attachPoint, duration)
210
- local effect = addSpecialEffectTarget(model, target.handle, attachPoint)
211
- if effect ~= nil then
212
- if duration and duration > 0 then
213
- temporaryEffectsCount = temporaryEffectsCount + 1
214
- temporaryEffects[temporaryEffectsCount] = effect
215
- temporaryEffectsDurations[temporaryEffectsCount] = duration
216
- else
217
- destroyEffect(effect)
218
- end
219
- end
220
- end
221
213
  __TS__SetDescriptor(
222
214
  Effect.prototype,
223
215
  "color",
224
216
  {
225
217
  get = function(self)
226
- return self[100] or PlayerColor.black
218
+ return self[100] or PlayerColor.red
227
219
  end,
228
220
  set = function(self, color)
229
221
  setSpecialEffectColor(self.handle, color)
@@ -273,30 +265,35 @@ __TS__SetDescriptor(
273
265
  },
274
266
  true
275
267
  )
276
- flash = function(modelPath, xOrWidget, yOrOrAttachmentPoint, duration, parameters)
268
+ addSpecialEffectInternal = function(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
277
269
  local coordinatesProvided = type(xOrWidget) == "number"
278
270
  local isPositional = coordinatesProvided or (parameters and parameters.detached) == true
279
271
  local x = not isPositional and 0 or (coordinatesProvided and xOrWidget or xOrWidget.x)
280
- local y = not isPositional and 0 or (coordinatesProvided and yOrOrAttachmentPoint or xOrWidget.y)
281
- local effect = isPositional and addSpecialEffect(modelPath, x, y) or addSpecialEffectTarget(modelPath, xOrWidget.handle, yOrOrAttachmentPoint or "origin")
282
- if isPositional and not coordinatesProvided and (parameters and parameters.scale) == nil and __TS__InstanceOf(xOrWidget, Unit) then
283
- setSpecialEffectScale(effect, xOrWidget.scale)
284
- end
272
+ local y = not isPositional and 0 or (coordinatesProvided and yOrAttachmentPoint or xOrWidget.y)
273
+ local effect = isPositional and addSpecialEffect(modelPath, x, y) or addSpecialEffectTarget(modelPath, xOrWidget.handle, yOrAttachmentPoint or "origin")
285
274
  if parameters ~= nil then
286
- for key, value in ____pairs(parameters) do
287
- if key ~= "zOffset" and key ~= "detached" and key ~= "scaleZOffset" and key ~= "delay" then
288
- setters[key](effect, value)
275
+ if isPositional and parameters.scale == nil and __TS__InstanceOf(xOrWidget, Unit) then
276
+ setSpecialEffectScale(effect, xOrWidget.scale)
277
+ end
278
+ for ____, property in ipairs(setterProperties) do
279
+ local value = parameters[property]
280
+ if value ~= nil then
281
+ setters[property](effect, value)
289
282
  end
290
283
  end
291
284
  if isPositional and parameters.zOffset ~= nil then
292
285
  moveLocation(location, x, y)
293
286
  local z = __TS__InstanceOf(xOrWidget, Unit) and getLocationZ(location) + xOrWidget.flyHeight or getLocationZ(location)
294
- BlzSetSpecialEffectZ(
287
+ setSpecialEffectZ(
295
288
  effect,
296
289
  z + parameters.zOffset * (parameters.scaleZOffset and getSpecialEffectScale(effect) or 1)
297
290
  )
298
291
  end
299
292
  end
293
+ return effect
294
+ end
295
+ flash = function(modelPath, xOrWidget, yOrAttachmentPoint, duration, parameters)
296
+ local effect = addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
300
297
  if duration ~= nil and duration > 0 then
301
298
  temporaryEffectsCount = temporaryEffectsCount + 1
302
299
  temporaryEffects[temporaryEffectsCount] = effect
@@ -15,13 +15,32 @@ local Event = ____event.Event
15
15
  local TriggerEvent = ____event.TriggerEvent
16
16
  local ____timer = require("core.types.timer")
17
17
  local Timer = ____timer.Timer
18
+ local ____frame_2Dcoordinates = require("engine.internal.misc.frame-coordinates")
19
+ local FRAME_MAX_Y = ____frame_2Dcoordinates.FRAME_MAX_Y
20
+ local FRAME_MIN_Y = ____frame_2Dcoordinates.FRAME_MIN_Y
21
+ local getFrameMinXMaxX = ____frame_2Dcoordinates.getFrameMinXMaxX
22
+ local ____playerCamera = require("core.types.playerCamera")
23
+ local frameCoordinatesToWorld = ____playerCamera.frameCoordinatesToWorld
24
+ local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
25
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
26
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
27
+ local ____lua_2Dsets = require("utility.lua-sets")
28
+ local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
29
+ local ____socket = require("net.socket")
30
+ local Socket = ____socket.Socket
31
+ local ____lua_2Dmaps = require("utility.lua-maps")
32
+ local getOrPut = ____lua_2Dmaps.getOrPut
33
+ local luaMapInvert = ____lua_2Dmaps.luaMapInvert
34
+ local luaMapOf = ____lua_2Dmaps.luaMapOf
35
+ local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
18
36
  local frameClick = BlzFrameClick
19
37
  local frameGetEnable = BlzFrameGetEnable
20
38
  local frameIsVisible = BlzFrameIsVisible
21
39
  local frameSetEnable = BlzFrameSetEnable
22
40
  local frameSetScale = BlzFrameSetScale
23
- local getCameraTargetPositionX = GetCameraTargetPositionX
24
- local getCameraTargetPositionY = GetCameraTargetPositionY
41
+ local getHandleId = GetHandleId
42
+ local getOriginFrame = BlzGetOriginFrame
43
+ local location = Location
25
44
  local ____rawget = _G.rawget
26
45
  local rawset = _G.rawset
27
46
  local invoke = Event.invoke
@@ -123,6 +142,30 @@ do
123
142
  FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
124
143
  end
125
144
  local tooltipByFrame = setmetatable({}, {__mode = "k"})
145
+ local keyByAsyncInitOriginFrameType = luaMapOf(ORIGIN_FRAME_PORTRAIT_HP_TEXT, "hp", ORIGIN_FRAME_PORTRAIT_MANA_TEXT, "mana")
146
+ local asyncInitOriginFrameTypeByKey = luaMapInvert(keyByAsyncInitOriginFrameType)
147
+ local seenAsyncInitOriginFrameTypes = mutableLuaSet()
148
+ local seenAsyncInitOriginFrameTypesSocket = __TS__New(Socket)
149
+ local seenPlayersByAsyncInitOriginFrameType = mutableLuaMap()
150
+ seenAsyncInitOriginFrameTypesSocket.onMessage:addListener(function(player, key)
151
+ local asyncInitOriginFrameType = asyncInitOriginFrameTypeByKey[key]
152
+ if asyncInitOriginFrameType ~= nil then
153
+ getOrPut(seenPlayersByAsyncInitOriginFrameType, asyncInitOriginFrameType, mutableLuaSet)[player] = true
154
+ end
155
+ end)
156
+ local function haveAllPlayersSeenAsyncInitOriginFrameType(frame)
157
+ local players = seenPlayersByAsyncInitOriginFrameType[frame]
158
+ if players == nil then
159
+ return false
160
+ end
161
+ for ____, player in ipairs(Player.all) do
162
+ if player.isUser and player.isPlaying and not (players[player] ~= nil) then
163
+ return false
164
+ end
165
+ end
166
+ keyByAsyncInitOriginFrameType[frame] = nil
167
+ return true
168
+ end
126
169
  ____exports.Frame = __TS__Class()
127
170
  local Frame = ____exports.Frame
128
171
  Frame.name = "Frame"
@@ -301,7 +344,17 @@ function Frame.byOrigin(self, frameType, index)
301
344
  if index == nil then
302
345
  index = 0
303
346
  end
304
- return self:of(BlzGetOriginFrame(frameType, index))
347
+ local frame = getOriginFrame(frameType, index)
348
+ local asyncInitOriginFrameTypeKey = keyByAsyncInitOriginFrameType[frameType]
349
+ if index == 0 and asyncInitOriginFrameTypeKey ~= nil and not haveAllPlayersSeenAsyncInitOriginFrameType(frameType) then
350
+ if getHandleId(frame) == 0 or seenAsyncInitOriginFrameTypes[frameType] ~= nil then
351
+ location(0, 0)
352
+ else
353
+ seenAsyncInitOriginFrameTypes[frameType] = true
354
+ seenAsyncInitOriginFrameTypesSocket:send(asyncInitOriginFrameTypeKey)
355
+ end
356
+ end
357
+ return self:of(frame)
305
358
  end
306
359
  Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
307
360
  Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
@@ -344,27 +397,21 @@ __TS__ObjectDefineProperty(
344
397
  Frame,
345
398
  "minX",
346
399
  {get = function(self)
347
- local w = BlzGetLocalClientWidth()
348
- local h = BlzGetLocalClientHeight()
349
- local width4by3 = (w - h / 600 * 800) / 2
350
- local pxtodpi = 0.6 / h
351
- return -width4by3 * pxtodpi
400
+ local minX = getFrameMinXMaxX()
401
+ return minX
352
402
  end}
353
403
  )
354
404
  __TS__ObjectDefineProperty(
355
405
  Frame,
356
406
  "maxX",
357
407
  {get = function(self)
358
- local w = BlzGetLocalClientWidth()
359
- local h = BlzGetLocalClientHeight()
360
- local width4by3 = (w - h / 600 * 800) / 2
361
- local pxtodpi = 0.6 / h
362
- return (-width4by3 + w) * pxtodpi
408
+ local ____, maxX = getFrameMinXMaxX()
409
+ return maxX
363
410
  end}
364
411
  )
365
412
  Frame.centerX = 0.4
366
- Frame.minY = 0
367
- Frame.maxY = 0.6
413
+ Frame.minY = FRAME_MIN_Y
414
+ Frame.maxY = FRAME_MAX_Y
368
415
  Frame.centerY = 0.3
369
416
  __TS__SetDescriptor(
370
417
  Frame.prototype,
@@ -938,16 +985,19 @@ __TS__ObjectDefineProperty(
938
985
  local event = __TS__New(Event)
939
986
  local syncX = 0
940
987
  local syncY = 0
941
- local syncCamX = getCameraTargetPositionX()
942
- local syncCamY = getCameraTargetPositionY()
988
+ local syncFrameX = 0
989
+ local syncFrameY = 0
943
990
  local lastX = syncX
944
991
  local lastY = syncY
945
992
  self.onMouseMove:addListener(function(player, x, y)
946
993
  if player.isLocal then
947
994
  syncX = x
948
995
  syncY = y
949
- syncCamX = getCameraTargetPositionX()
950
- syncCamY = getCameraTargetPositionY()
996
+ syncFrameX, syncFrameY = worldCoordinatesToFrame(
997
+ x,
998
+ y,
999
+ getTerrainZ(x, y)
1000
+ )
951
1001
  lastX = x
952
1002
  lastY = y
953
1003
  invoke(event, x, y)
@@ -957,9 +1007,8 @@ __TS__ObjectDefineProperty(
957
1007
  if syncX == 0 and syncY == 0 then
958
1008
  return
959
1009
  end
960
- local x = syncX + (getCameraTargetPositionX() - syncCamX)
961
- local y = syncY + (getCameraTargetPositionY() - syncCamY)
962
- if x ~= lastX or y ~= lastY then
1010
+ local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
1011
+ if isDefinite and (x ~= lastX or y ~= lastY) then
963
1012
  lastX = x
964
1013
  lastY = y
965
1014
  invoke(event, x, y)
@@ -15,6 +15,8 @@ local ____exception = require("exception")
15
15
  local IllegalStateException = ____exception.IllegalStateException
16
16
  local ____attributes = require("attributes")
17
17
  local AttributesHolder = ____attributes.AttributesHolder
18
+ local ____preconditions = require("utility.preconditions")
19
+ local checkNotNull = ____preconditions.checkNotNull
18
20
  local getHandleId = GetHandleId
19
21
  local onCreateEventByHandleConstructor = {}
20
22
  local onDestroyEventByHandleConstructor = {}
@@ -66,17 +68,12 @@ function Handle.prototype.onDestroy(self, ...)
66
68
  return nil
67
69
  end
68
70
  function Handle.prototype.destroy(self, ...)
71
+ if self[0] == 2 or self[0] == 3 then
72
+ return nil
73
+ end
69
74
  local clazz = self.constructor
70
75
  local id = getHandleId(self.handle)
71
- if not clazz.memoized[id] then
72
- error(
73
- __TS__New(
74
- IllegalStateException,
75
- "Double-destroy run for handle " .. tostring(id)
76
- ),
77
- 0
78
- )
79
- end
76
+ checkNotNull(clazz.memoized[id])
80
77
  self[0] = 2
81
78
  if self.onDestroyEvent then
82
79
  Event.invoke(self.onDestroyEvent)
@@ -1,4 +1,5 @@
1
1
  /** @noSelfInFile */
2
2
  import { Item } from "../../engine/internal/item";
3
3
  import "../../engine/internal/item+owner";
4
+ import "../../engine/internal/item/fields";
4
5
  export { Item };
@@ -2,5 +2,6 @@ local ____exports = {}
2
2
  local ____item = require("engine.internal.item")
3
3
  local Item = ____item.Item
4
4
  require("engine.internal.item+owner")
5
+ require("engine.internal.item.fields")
5
6
  ____exports.Item = Item
6
7
  return ____exports
@@ -7,6 +7,18 @@ import { UpgradeId } from "../../engine/object-data/entry/upgrade";
7
7
  interface Unit {
8
8
  handle: junit;
9
9
  }
10
+ export declare const enum PlayerAllianceType {
11
+ PASSIVE = 0,
12
+ RESCUABLE = 1,
13
+ HELP_REQUEST = 2,
14
+ HELP_RESPONSE = 3,
15
+ SHARED_XP = 4,
16
+ SHARED_SPELLS = 5,
17
+ SHARED_VISION = 6,
18
+ SHARED_VISION_FORCED = 7,
19
+ SHARED_CONTROL = 8,
20
+ SHARED_ADVANCED_CONTROL = 9
21
+ }
10
22
  export declare class Player extends Handle<jplayer> {
11
23
  static readonly all: Player[];
12
24
  static readonly local: Player;
@@ -16,6 +28,7 @@ export declare class Player extends Handle<jplayer> {
16
28
  static readonly neutralExtra: Player;
17
29
  private static events;
18
30
  readonly id: number;
31
+ readonly slotState: jplayerslotstate;
19
32
  constructor(handle: jplayer);
20
33
  onDestroy(): HandleDestructor;
21
34
  toString(): string;
@@ -33,7 +46,6 @@ export declare class Player extends Handle<jplayer> {
33
46
  get isUser(): boolean;
34
47
  get isPlaying(): boolean;
35
48
  get controller(): jmapcontrol;
36
- get slotState(): jplayerslotstate;
37
49
  clearSelection(): void;
38
50
  selectSingle(unit: Unit): void;
39
51
  select(unit: Unit): void;
@@ -42,6 +54,8 @@ export declare class Player extends Handle<jplayer> {
42
54
  forceUICancel(): void;
43
55
  isAllyOf(other: Player): boolean;
44
56
  isEnemyOf(other: Player): boolean;
57
+ setAlliance(other: Player, type: PlayerAllianceType, value: boolean): void;
58
+ getAlliance(other: Player, type: PlayerAllianceType): boolean;
45
59
  setAbilityAvailable(abilityId: number, available: boolean): void;
46
60
  getMaximumUpgradeLevel(upgradeId: UpgradeId): number;
47
61
  setMaximumUpgradeLevel(upgradeId: UpgradeId, maximumLevel: number): void;
@@ -50,6 +64,7 @@ export declare class Player extends Handle<jplayer> {
50
64
  setUpgradeLevel(upgradeId: UpgradeId, level: number): void;
51
65
  private static getEvent;
52
66
  private static getMouseEvent;
67
+ static get allianceChangedEvent(): Readonly<Record<PlayerAllianceType, Event<[Player]>>>;
53
68
  static get onLeave(): Event<[Player]>;
54
69
  static get onMouseDown(): Event<[Player, jmousebuttontype]>;
55
70
  static get onMouseUp(): Event<[Player, jmousebuttontype]>;
@@ -66,6 +81,7 @@ export declare class Player extends Handle<jplayer> {
66
81
  };
67
82
  };
68
83
  static get onChat(): Event<[player: Player, message: string]>;
84
+ static readonly colorChangedEvent: Event<[Player]>;
69
85
  static byId(id: number): Player | undefined;
70
86
  }
71
87
  export {};
@@ -1,7 +1,7 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
2
3
  local __TS__Class = ____lualib.__TS__Class
3
4
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
- local __TS__New = ____lualib.__TS__New
5
5
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
6
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
7
7
  local ____exports = {}
@@ -21,20 +21,42 @@ local ____exception = require("exception")
21
21
  local IllegalStateException = ____exception.IllegalStateException
22
22
  local ____math = require("math")
23
23
  local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
24
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
25
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
26
+ local ____lazy = require("utility.lazy")
27
+ local lazyRecord = ____lazy.lazyRecord
28
+ local getPlayerAlliance = GetPlayerAlliance
24
29
  local getPlayerColor = GetPlayerColor
25
30
  local getPlayerName = GetPlayerName
26
31
  local getPlayerTechCount = GetPlayerTechCount
27
32
  local getPlayerTechMaxAllowed = GetPlayerTechMaxAllowed
33
+ local getTriggerPlayer = GetTriggerPlayer
34
+ local setPlayerAlliance = SetPlayerAlliance
28
35
  local setPlayerTechMaxAllowed = SetPlayerTechMaxAllowed
29
36
  local setPlayerTechResearched = SetPlayerTechResearched
30
37
  local setPlayerAbilityAvailable = SetPlayerAbilityAvailable
38
+ local triggerRegisterPlayerAllianceChange = TriggerRegisterPlayerAllianceChange
31
39
  local playerNative = _G.Player
40
+ local nativeByPlayerAllianceType = {
41
+ [0] = ALLIANCE_PASSIVE,
42
+ [1] = ALLIANCE_RESCUABLE,
43
+ [2] = ALLIANCE_HELP_REQUEST,
44
+ [3] = ALLIANCE_HELP_RESPONSE,
45
+ [4] = ALLIANCE_SHARED_XP,
46
+ [5] = ALLIANCE_SHARED_SPELLS,
47
+ [6] = ALLIANCE_SHARED_VISION,
48
+ [7] = ALLIANCE_SHARED_VISION_FORCED,
49
+ [8] = ALLIANCE_SHARED_CONTROL,
50
+ [9] = ALLIANCE_SHARED_ADVANCED_CONTROL
51
+ }
52
+ local playerColorChangedEvent = __TS__New(Event)
32
53
  ____exports.Player = __TS__Class()
33
54
  local Player = ____exports.Player
34
55
  Player.name = "Player"
35
56
  __TS__ClassExtends(Player, Handle)
36
57
  function Player.prototype.____constructor(self, handle)
37
58
  Handle.prototype.____constructor(self, handle)
59
+ self.slotState = GetPlayerSlotState(self.handle)
38
60
  self.id = GetPlayerId(handle)
39
61
  end
40
62
  function Player.prototype.onDestroy(self)
@@ -83,6 +105,12 @@ end
83
105
  function Player.prototype.isEnemyOf(self, other)
84
106
  return IsPlayerEnemy(self.handle, other.handle)
85
107
  end
108
+ function Player.prototype.setAlliance(self, other, ____type, value)
109
+ setPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type], value)
110
+ end
111
+ function Player.prototype.getAlliance(self, other, ____type)
112
+ return getPlayerAlliance(self.handle, other.handle, nativeByPlayerAllianceType[____type])
113
+ end
86
114
  function Player.prototype.setAbilityAvailable(self, abilityId, available)
87
115
  setPlayerAbilityAvailable(self.handle, abilityId, available)
88
116
  end
@@ -122,14 +150,11 @@ function Player.getMouseEvent(self, event, collector)
122
150
  self.events[eventId] = __TS__New(
123
151
  TriggerEvent,
124
152
  function(trigger)
125
- Timer:simple(
126
- 0,
127
- function()
128
- for ____, player in ipairs(____exports.Player.all) do
129
- TriggerRegisterPlayerEvent(trigger, player.handle, event)
130
- end
153
+ Timer:run(function()
154
+ for ____, player in ipairs(____exports.Player.all) do
155
+ TriggerRegisterPlayerEvent(trigger, player.handle, event)
131
156
  end
132
- )
157
+ end)
133
158
  end,
134
159
  collector or (function() return {} end)
135
160
  )
@@ -178,7 +203,7 @@ function Player.getKeyEvent(self, isDown)
178
203
  TriggerAddCondition(
179
204
  trigger,
180
205
  Condition(function()
181
- local player = ____exports.Player:of(GetTriggerPlayer())
206
+ local player = ____exports.Player:of(getTriggerPlayer())
182
207
  local key = BlzGetTriggerPlayerKey()
183
208
  local metaKey = BlzGetTriggerPlayerMetaKey()
184
209
  Event.invoke(event, player, key, metaKey)
@@ -249,7 +274,7 @@ Player.all = (function()
249
274
  end
250
275
  return all
251
276
  end)()
252
- Player["local"] = ____exports.Player:of(GetLocalPlayer())
277
+ Player["local"] = ____exports.Player:of(PLAYER_LOCAL_HANDLE)
253
278
  Player.neutralPassive = ____exports.Player.all[PLAYER_NEUTRAL_PASSIVE + 1]
254
279
  Player.neutralAggressive = ____exports.Player.all[PLAYER_NEUTRAL_AGGRESSIVE + 1]
255
280
  Player.neutralVictim = ____exports.Player.all[bj_PLAYER_NEUTRAL_VICTIM + 1]
@@ -277,6 +302,7 @@ __TS__SetDescriptor(
277
302
  end,
278
303
  set = function(self, color)
279
304
  SetPlayerColor(self.handle, color.handle)
305
+ Event.invoke(playerColorChangedEvent, self)
280
306
  end
281
307
  },
282
308
  true
@@ -339,7 +365,7 @@ __TS__SetDescriptor(
339
365
  Player.prototype,
340
366
  "isUser",
341
367
  {get = function(self)
342
- return GetPlayerController(self.handle) == MAP_CONTROL_USER
368
+ return self.controller == MAP_CONTROL_USER
343
369
  end},
344
370
  true
345
371
  )
@@ -347,7 +373,7 @@ __TS__SetDescriptor(
347
373
  Player.prototype,
348
374
  "isPlaying",
349
375
  {get = function(self)
350
- return GetPlayerSlotState(self.handle) == PLAYER_SLOT_STATE_PLAYING
376
+ return self.slotState == PLAYER_SLOT_STATE_PLAYING
351
377
  end},
352
378
  true
353
379
  )
@@ -355,17 +381,30 @@ __TS__SetDescriptor(
355
381
  Player.prototype,
356
382
  "controller",
357
383
  {get = function(self)
358
- return GetPlayerController(self.handle)
384
+ local controller = GetPlayerController(self.handle)
385
+ rawset(self, "controller", controller)
386
+ return controller
359
387
  end},
360
388
  true
361
389
  )
362
- __TS__SetDescriptor(
363
- Player.prototype,
364
- "slotState",
390
+ __TS__ObjectDefineProperty(
391
+ Player,
392
+ "allianceChangedEvent",
365
393
  {get = function(self)
366
- return GetPlayerSlotState(self.handle)
367
- end},
368
- true
394
+ local event = lazyRecord(function(____type)
395
+ return __TS__New(
396
+ TriggerEvent,
397
+ function(trigger)
398
+ for ____, player in ipairs(____exports.Player.all) do
399
+ triggerRegisterPlayerAllianceChange(trigger, player.handle, nativeByPlayerAllianceType[____type])
400
+ end
401
+ end,
402
+ function() return ____exports.Player:of(getTriggerPlayer()) end
403
+ )
404
+ end)
405
+ rawset(self, "allianceChangedEvent", event)
406
+ return event
407
+ end}
369
408
  )
370
409
  __TS__ObjectDefineProperty(
371
410
  Player,
@@ -373,7 +412,7 @@ __TS__ObjectDefineProperty(
373
412
  {get = function(self)
374
413
  return ____exports.Player:getEvent(
375
414
  EVENT_PLAYER_LEAVE,
376
- function() return ____exports.Player:of(GetTriggerPlayer()) end
415
+ function() return ____exports.Player:of(getTriggerPlayer()) end
377
416
  )
378
417
  end}
379
418
  )
@@ -383,7 +422,7 @@ __TS__ObjectDefineProperty(
383
422
  {get = function(self)
384
423
  return ____exports.Player:getMouseEvent(
385
424
  EVENT_PLAYER_MOUSE_DOWN,
386
- function() return ____exports.Player:of(GetTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
425
+ function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
387
426
  )
388
427
  end}
389
428
  )
@@ -393,7 +432,7 @@ __TS__ObjectDefineProperty(
393
432
  {get = function(self)
394
433
  return ____exports.Player:getMouseEvent(
395
434
  EVENT_PLAYER_MOUSE_UP,
396
- function() return ____exports.Player:of(GetTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
435
+ function() return ____exports.Player:of(getTriggerPlayer()), BlzGetTriggerPlayerMouseButton() end
397
436
  )
398
437
  end}
399
438
  )
@@ -403,7 +442,7 @@ __TS__ObjectDefineProperty(
403
442
  {get = function(self)
404
443
  return ____exports.Player:getMouseEvent(
405
444
  EVENT_PLAYER_MOUSE_MOVE,
406
- function() return ____exports.Player:of(GetTriggerPlayer()), vec2(
445
+ function() return ____exports.Player:of(getTriggerPlayer()), vec2(
407
446
  BlzGetTriggerPlayerMouseX(),
408
447
  BlzGetTriggerPlayerMouseY()
409
448
  ) end
@@ -439,10 +478,17 @@ __TS__ObjectDefineProperty(
439
478
  TriggerRegisterPlayerChatEvent(trigger, player.handle, "", false)
440
479
  end
441
480
  end,
442
- function() return ____exports.Player:of(GetTriggerPlayer()), GetEventPlayerChatString() end
481
+ function() return ____exports.Player:of(getTriggerPlayer()), GetEventPlayerChatString() end
443
482
  )
444
483
  rawset(self, "onChat", event)
445
484
  return event
446
485
  end}
447
486
  )
487
+ Player.colorChangedEvent = playerColorChangedEvent
488
+ ____exports.Player.onLeave:addListener(
489
+ 999999,
490
+ function(player)
491
+ rawset(player, "slotState", PLAYER_SLOT_STATE_LEFT)
492
+ end
493
+ )
448
494
  return ____exports