warscript 0.0.1-dev.ee2345e → 0.0.1-dev.ee6e396

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 (279) hide show
  1. package/attributes.d.ts +6 -1
  2. package/attributes.lua +17 -1
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/config.d.ts +5 -0
  6. package/config.lua +10 -0
  7. package/core/types/effect.d.ts +14 -6
  8. package/core/types/effect.lua +131 -35
  9. package/core/types/frame.d.ts +8 -1
  10. package/core/types/frame.lua +117 -22
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/image.d.ts +0 -1
  13. package/core/types/missile.d.ts +2 -2
  14. package/core/types/missile.lua +8 -2
  15. package/core/types/player.d.ts +16 -0
  16. package/core/types/player.lua +60 -15
  17. package/core/types/playerCamera.d.ts +2 -0
  18. package/core/types/playerCamera.lua +123 -5
  19. package/core/types/sound.d.ts +17 -24
  20. package/core/types/sound.lua +99 -24
  21. package/core/types/tileCell.d.ts +11 -1
  22. package/core/types/tileCell.lua +97 -0
  23. package/core/types/timer.d.ts +9 -8
  24. package/core/types/timer.lua +45 -23
  25. package/core/types/unit.lua +8 -0
  26. package/core/util.d.ts +1 -1
  27. package/core/util.lua +18 -1
  28. package/decl/index.d.ts +1 -0
  29. package/decl/native.d.ts +846 -790
  30. package/destroyable.d.ts +1 -0
  31. package/destroyable.lua +9 -0
  32. package/engine/ability.d.ts +1 -1
  33. package/engine/behavior.d.ts +24 -11
  34. package/engine/behavior.lua +233 -73
  35. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  36. package/engine/behaviour/ability/always-enabled.lua +31 -0
  37. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  38. package/engine/behaviour/ability/apply-buff.lua +36 -4
  39. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  41. package/engine/behaviour/ability/damage.d.ts +39 -11
  42. package/engine/behaviour/ability/damage.lua +83 -37
  43. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  44. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  45. package/engine/behaviour/ability/heal.d.ts +33 -6
  46. package/engine/behaviour/ability/heal.lua +89 -10
  47. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  48. package/engine/behaviour/ability/instant-impact.lua +4 -15
  49. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  50. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  51. package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
  52. package/engine/behaviour/ability/remove-buffs.lua +49 -0
  53. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  54. package/engine/behaviour/ability/restore-mana.lua +29 -0
  55. package/engine/behaviour/ability.d.ts +33 -5
  56. package/engine/behaviour/ability.lua +183 -27
  57. package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
  58. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  59. package/engine/behaviour/unit.d.ts +48 -4
  60. package/engine/behaviour/unit.lua +292 -2
  61. package/engine/buff.d.ts +121 -46
  62. package/engine/buff.lua +567 -248
  63. package/engine/game-map.d.ts +7 -0
  64. package/engine/game-map.lua +32 -0
  65. package/engine/internal/ability.d.ts +23 -14
  66. package/engine/internal/ability.lua +129 -85
  67. package/engine/internal/item/ability.lua +162 -4
  68. package/engine/internal/item+owner.lua +12 -6
  69. package/engine/internal/item.d.ts +20 -19
  70. package/engine/internal/item.lua +191 -74
  71. package/engine/internal/mechanics/ability-duration.lua +1 -1
  72. package/engine/internal/mechanics/cast-ability.lua +6 -3
  73. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  74. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  75. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  76. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  77. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  78. package/engine/internal/misc/frame-coordinates.lua +21 -0
  79. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  80. package/engine/internal/misc/get-terrain-z.lua +11 -0
  81. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  82. package/engine/internal/misc/player-local-handle.lua +5 -0
  83. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  84. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  85. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  86. package/engine/internal/object-data/evasion-probability.lua +16 -0
  87. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  88. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  89. package/engine/internal/unit/ability.d.ts +45 -1
  90. package/engine/internal/unit/ability.lua +128 -17
  91. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  92. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  93. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  94. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  95. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  96. package/engine/internal/unit/allowed-targets.lua +9 -1
  97. package/engine/internal/unit/attributes.d.ts +17 -0
  98. package/engine/internal/unit/attributes.lua +46 -0
  99. package/engine/internal/unit/bonus.d.ts +13 -8
  100. package/engine/internal/unit/bonus.lua +33 -1
  101. package/engine/internal/unit/fly-height.d.ts +7 -0
  102. package/engine/internal/unit/fly-height.lua +20 -0
  103. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  104. package/engine/internal/unit/ignore-events-items.lua +5 -0
  105. package/engine/internal/unit/interrupts.d.ts +12 -0
  106. package/engine/internal/unit/interrupts.lua +28 -0
  107. package/engine/internal/unit/item.d.ts +24 -0
  108. package/engine/internal/unit/item.lua +78 -0
  109. package/engine/internal/unit/main-selected.d.ts +13 -0
  110. package/engine/internal/unit/main-selected.lua +36 -0
  111. package/engine/internal/unit/order.d.ts +20 -0
  112. package/engine/internal/unit/order.lua +136 -0
  113. package/engine/internal/unit/range-event.d.ts +12 -0
  114. package/engine/internal/unit/range-event.lua +90 -0
  115. package/engine/internal/unit/scale.d.ts +7 -0
  116. package/engine/internal/unit/scale.lua +20 -0
  117. package/engine/internal/unit+ability.lua +12 -3
  118. package/engine/internal/unit+damage.d.ts +2 -11
  119. package/engine/internal/unit+damage.lua +10 -14
  120. package/engine/internal/unit+spellSteal.lua +1 -2
  121. package/engine/internal/unit+transport.lua +4 -10
  122. package/engine/internal/unit-missile-launch.lua +70 -13
  123. package/engine/internal/unit.d.ts +97 -36
  124. package/engine/internal/unit.lua +701 -336
  125. package/engine/internal/utility.lua +12 -0
  126. package/engine/lightning.d.ts +12 -5
  127. package/engine/lightning.lua +48 -14
  128. package/engine/local-client.d.ts +9 -2
  129. package/engine/local-client.lua +112 -0
  130. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  131. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  132. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  133. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  134. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  135. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  136. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  137. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  138. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  139. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  140. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  141. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  142. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  143. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  144. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  145. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  146. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  147. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  148. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  149. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  150. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  151. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  152. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  153. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  154. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  155. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  156. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  157. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  158. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  159. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  160. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  161. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  162. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  163. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  164. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  165. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  166. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  167. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  168. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  169. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  170. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  171. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  172. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  173. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  174. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  175. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  176. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  177. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  178. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  179. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  180. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  181. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  182. package/engine/object-data/entry/ability-type/web.lua +52 -0
  183. package/engine/object-data/entry/ability-type.d.ts +19 -18
  184. package/engine/object-data/entry/ability-type.lua +93 -36
  185. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  186. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  187. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  188. package/engine/object-data/entry/buff-type.d.ts +6 -13
  189. package/engine/object-data/entry/buff-type.lua +13 -29
  190. package/engine/object-data/entry/destructible-type.d.ts +28 -3
  191. package/engine/object-data/entry/destructible-type.lua +155 -0
  192. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  193. package/engine/object-data/entry/item-type.d.ts +15 -2
  194. package/engine/object-data/entry/item-type.lua +93 -2
  195. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  196. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  197. package/engine/object-data/entry/sound-preset.lua +140 -0
  198. package/engine/object-data/entry/unit-type.d.ts +62 -7
  199. package/engine/object-data/entry/unit-type.lua +524 -75
  200. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  201. package/engine/object-data/entry/upgrade.d.ts +1 -2
  202. package/engine/object-data/entry/upgrade.lua +4 -4
  203. package/engine/object-data/entry.d.ts +18 -17
  204. package/engine/object-data/entry.lua +60 -32
  205. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  206. package/engine/object-field/ability.d.ts +28 -5
  207. package/engine/object-field/ability.lua +59 -5
  208. package/engine/object-field/unit.d.ts +72 -3
  209. package/engine/object-field/unit.lua +268 -7
  210. package/engine/object-field.d.ts +25 -7
  211. package/engine/object-field.lua +359 -116
  212. package/engine/random.d.ts +10 -0
  213. package/engine/random.lua +22 -0
  214. package/engine/standard/entries/buff-type.d.ts +3 -0
  215. package/engine/standard/entries/buff-type.lua +3 -0
  216. package/engine/standard/entries/sound-preset.d.ts +10 -0
  217. package/engine/standard/entries/sound-preset.lua +10 -0
  218. package/engine/standard/entries/unit-type.d.ts +39 -1
  219. package/engine/standard/entries/unit-type.lua +39 -1
  220. package/engine/standard/fields/ability.d.ts +5 -3
  221. package/engine/standard/fields/ability.lua +5 -3
  222. package/engine/standard/fields/unit.d.ts +12 -0
  223. package/engine/standard/fields/unit.lua +20 -0
  224. package/engine/synchronization.d.ts +11 -0
  225. package/engine/synchronization.lua +77 -0
  226. package/engine/text-tag.d.ts +36 -2
  227. package/engine/text-tag.lua +250 -10
  228. package/engine/unit.d.ts +9 -0
  229. package/engine/unit.lua +18 -2
  230. package/event.d.ts +2 -3
  231. package/event.lua +9 -5
  232. package/index.d.ts +1 -0
  233. package/index.lua +1 -0
  234. package/lualib_bundle.lua +146 -42
  235. package/math/vec2.d.ts +2 -9
  236. package/math.d.ts +0 -2
  237. package/net/socket.d.ts +7 -1
  238. package/net/socket.lua +45 -4
  239. package/network.d.ts +1 -0
  240. package/network.lua +3 -2
  241. package/objutil/ability.d.ts +0 -1
  242. package/objutil/buff.d.ts +0 -1
  243. package/objutil/buff.lua +12 -11
  244. package/objutil/object.d.ts +0 -1
  245. package/objutil/unit.d.ts +0 -1
  246. package/objutil/unit.lua +8 -0
  247. package/package.json +13 -14
  248. package/patch-lua.d.ts +0 -0
  249. package/patch-lua.lua +25 -0
  250. package/patch-lualib.lua +1 -1
  251. package/property.d.ts +55 -0
  252. package/property.lua +374 -0
  253. package/string.d.ts +30 -0
  254. package/string.lua +14 -0
  255. package/util/stream.d.ts +0 -1
  256. package/utility/arrays.d.ts +13 -5
  257. package/utility/arrays.lua +45 -3
  258. package/utility/bit-set.d.ts +0 -2
  259. package/utility/callback-array.d.ts +17 -0
  260. package/utility/callback-array.lua +61 -0
  261. package/utility/functions.d.ts +8 -0
  262. package/utility/functions.lua +13 -0
  263. package/utility/lazy.d.ts +2 -0
  264. package/utility/lazy.lua +14 -0
  265. package/utility/linked-map.d.ts +34 -0
  266. package/utility/linked-map.lua +101 -0
  267. package/utility/linked-set.d.ts +15 -4
  268. package/utility/linked-set.lua +48 -3
  269. package/utility/lua-maps.d.ts +16 -4
  270. package/utility/lua-maps.lua +53 -2
  271. package/utility/lua-sets.d.ts +3 -2
  272. package/utility/lua-sets.lua +7 -0
  273. package/utility/records.lua +20 -1
  274. package/utility/reflection.lua +11 -7
  275. package/utility/types.d.ts +4 -0
  276. package/core/mapbounds.d.ts +0 -8
  277. package/core/mapbounds.lua +0 -12
  278. package/core/types/order.d.ts +0 -25
  279. package/core/types/order.lua +0 -55
package/attributes.d.ts CHANGED
@@ -1,13 +1,18 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
2
+ declare const marker: {};
3
3
  export type Attribute<T> = {
4
4
  readonly __attribute: unique symbol;
5
5
  readonly __type: T;
6
+ readonly __marker: typeof marker;
6
7
  } & symbol;
8
+ export declare const attribute: <T>() => Attribute<T>;
9
+ export declare const isAttribute: (value: unknown) => value is Attribute<unknown>;
7
10
  export declare namespace Attribute {
8
11
  const create: <T>() => Attribute<T>;
9
12
  }
10
13
  export declare class AttributesHolder {
11
14
  readonly get: (<T>(attribute: Attribute<T>) => T | undefined) & LuaExtension<"TableGetMethod">;
12
15
  readonly set: (<T>(attribute: Attribute<T>, value: T | undefined) => void) & LuaExtension<"TableSetMethod">;
16
+ getOrPut<T>(attribute: Attribute<T>, defaultValue: () => T): T;
13
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/binaryreader.d.ts CHANGED
@@ -3,6 +3,7 @@ export declare class BinaryReader {
3
3
  private readonly s;
4
4
  private i;
5
5
  constructor(data: string);
6
+ toString(): string;
6
7
  read(fmt: string): any;
7
8
  readBytes(size: number): string;
8
9
  readDouble(): number;
package/binaryreader.lua CHANGED
@@ -9,6 +9,9 @@ function BinaryReader.prototype.____constructor(self, data)
9
9
  self.i = 1
10
10
  self.s = data
11
11
  end
12
+ function BinaryReader.prototype.__tostring(self)
13
+ return self.s
14
+ end
12
15
  function BinaryReader.prototype.read(self, fmt)
13
16
  local value, pos = ____unpack(">" .. fmt, self.s, self.i)
14
17
  self.i = pos
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
@@ -4,15 +4,23 @@ import { Widget } from "./widget";
4
4
  import { PlayerColor } from "./playerColor";
5
5
  declare const enum EffectPropertyKey {
6
6
  COLOR = 100,
7
- PITCH = 101
7
+ PITCH = 101,
8
+ ROLL = 102
8
9
  }
9
10
  export type EffectParameters = {
11
+ readonly delay?: number;
10
12
  readonly scale?: number;
11
13
  readonly color?: PlayerColor;
14
+ readonly pitch?: number;
15
+ readonly roll?: number;
16
+ readonly detached?: boolean;
17
+ readonly zOffset?: number;
18
+ readonly scaleZOffset?: boolean;
12
19
  };
13
20
  export declare class Effect extends Handle<jeffect> {
14
21
  private [EffectPropertyKey.COLOR]?;
15
22
  private [EffectPropertyKey.PITCH]?;
23
+ private [EffectPropertyKey.ROLL]?;
16
24
  protected onDestroy(): HandleDestructor;
17
25
  get color(): PlayerColor;
18
26
  set color(color: PlayerColor);
@@ -20,12 +28,12 @@ export declare class Effect extends Handle<jeffect> {
20
28
  set scale(scale: number);
21
29
  get pitch(): number;
22
30
  set pitch(pitch: number);
23
- static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, pos: Vec2): T;
24
- static createTarget<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), model: string, target: Widget, attachPoint: string): T;
31
+ get roll(): number;
32
+ set roll(roll: number);
33
+ static create<T extends Effect>(this: typeof Effect & (new (handle: jeffect) => T), modelPath: string, xOrWidget: number | Widget, yOrAttachmentPoint?: number | string, parameters?: EffectParameters): T;
25
34
  static flash(modelPath: string, ...args: [
26
- ...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint: string],
27
- ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]
35
+ ...pointOrWidget: [x: number, y: number] | [widget: Widget, attachmentPoint?: string],
36
+ ...parametersOrDuration: [parametersOrDuration?: EffectParameters | number] | [duration?: number, parameters?: EffectParameters]
28
37
  ]): void;
29
- static flashTarget(model: string, target: Widget, attachPoint: string, duration?: number): void;
30
38
  }
31
39
  export {};
@@ -2,8 +2,9 @@ local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
4
  local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
5
6
  local ____exports = {}
6
- local dummyPlayer
7
+ local dummyPlayer, addSpecialEffectInternal, flash
7
8
  local ____handle = require("core.types.handle")
8
9
  local Handle = ____handle.Handle
9
10
  local ____playerColor = require("core.types.playerColor")
@@ -12,6 +13,8 @@ local ____player = require("core.types.player")
12
13
  local Player = ____player.Player
13
14
  local ____timer = require("core.types.timer")
14
15
  local Timer = ____timer.Timer
16
+ local ____unit = require("engine.internal.unit")
17
+ local Unit = ____unit.Unit
15
18
  local ____pairs = _G.pairs
16
19
  local select = _G.select
17
20
  local mathRad = math.rad
@@ -22,10 +25,28 @@ local getSpecialEffectScale = BlzGetSpecialEffectScale
22
25
  local playSpecialEffect = BlzPlaySpecialEffect
23
26
  local setSpecialEffectScale = BlzSetSpecialEffectScale
24
27
  local setSpecialEffectPitch = BlzSetSpecialEffectPitch
28
+ local setSpecialEffectRoll = BlzSetSpecialEffectRoll
25
29
  local setSpecialEffectColorByPlayer = BlzSetSpecialEffectColorByPlayer
26
30
  local specialEffectAddSubAnimation = BlzSpecialEffectAddSubAnimation
27
31
  local specialEffectClearSubAnimations = BlzSpecialEffectClearSubAnimations
28
32
  local specialEffectRemoveSubAnimation = BlzSpecialEffectRemoveSubAnimation
33
+ local setSpecialEffectZ = BlzSetSpecialEffectZ
34
+ local getLocationZ = GetLocationZ
35
+ local getUnitZ = BlzGetUnitZ
36
+ local moveLocation = MoveLocation
37
+ local location = Location(0, 0)
38
+ local function setSpecialEffectPitchDegrees(effect, pitch)
39
+ setSpecialEffectPitch(
40
+ effect,
41
+ -mathRad(pitch)
42
+ )
43
+ end
44
+ local function setSpecialEffectRollDegrees(effect, roll)
45
+ setSpecialEffectRoll(
46
+ effect,
47
+ -mathRad(roll)
48
+ )
49
+ end
29
50
  local animTypeByAnimationName = {
30
51
  attack = ANIM_TYPE_ATTACK,
31
52
  birth = ANIM_TYPE_BIRTH,
@@ -97,11 +118,19 @@ local function setSpecialEffectColor(effect, color)
97
118
  setSpecialEffectColorByPlayer(effect, dummyPlayer.handle)
98
119
  dummyPlayer.color = dummyColor
99
120
  end
100
- local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor}
121
+ local setters = {scale = setSpecialEffectScale, color = setSpecialEffectColor, pitch = setSpecialEffectPitchDegrees, roll = setSpecialEffectRollDegrees}
122
+ local setterProperties = {"scale", "color", "pitch", "roll"}
101
123
  dummyPlayer = Player.neutralExtra
102
124
  local temporaryEffects = {}
103
125
  local temporaryEffectsDurations = {}
104
126
  local temporaryEffectsCount = 0
127
+ local delayedEffectsModelPath = {}
128
+ local delayedEffectsXOrWidget = {}
129
+ local delayedEffectsYOrAttachmentPoint = {}
130
+ local delayedEffectsDuration = {}
131
+ local delayedEffectsParameters = {}
132
+ local delayedEffectsDelay = {}
133
+ local delayedEffectsCount = 0
105
134
  local period = 1 / 32
106
135
  Timer.onPeriod[period]:addListener(function()
107
136
  local i = 1
@@ -110,12 +139,36 @@ Timer.onPeriod[period]:addListener(function()
110
139
  if duration <= 0 then
111
140
  destroyEffect(temporaryEffects[i])
112
141
  temporaryEffects[i] = temporaryEffects[temporaryEffectsCount]
142
+ temporaryEffectsDurations[i] = temporaryEffectsDurations[temporaryEffectsCount]
113
143
  temporaryEffectsCount = temporaryEffectsCount - 1
114
144
  else
115
145
  temporaryEffectsDurations[i] = duration - period
116
146
  i = i + 1
117
147
  end
118
148
  end
149
+ i = 1
150
+ while i <= delayedEffectsCount do
151
+ local delay = delayedEffectsDelay[i]
152
+ if delay <= 0 then
153
+ flash(
154
+ delayedEffectsModelPath[i],
155
+ delayedEffectsXOrWidget[i],
156
+ delayedEffectsYOrAttachmentPoint[i],
157
+ delayedEffectsDuration[i],
158
+ delayedEffectsParameters[i]
159
+ )
160
+ delayedEffectsModelPath[i] = delayedEffectsModelPath[delayedEffectsCount]
161
+ delayedEffectsXOrWidget[i] = delayedEffectsXOrWidget[delayedEffectsCount]
162
+ delayedEffectsYOrAttachmentPoint[i] = delayedEffectsYOrAttachmentPoint[delayedEffectsCount]
163
+ delayedEffectsDuration[i] = delayedEffectsDuration[delayedEffectsCount]
164
+ delayedEffectsParameters[i] = delayedEffectsParameters[delayedEffectsCount]
165
+ delayedEffectsDelay[i] = delayedEffectsDelay[delayedEffectsCount]
166
+ delayedEffectsCount = delayedEffectsCount - 1
167
+ else
168
+ delayedEffectsDelay[i] = delay - period
169
+ i = i + 1
170
+ end
171
+ end
119
172
  end)
120
173
  ____exports.Effect = __TS__Class()
121
174
  local Effect = ____exports.Effect
@@ -125,49 +178,44 @@ function Effect.prototype.onDestroy(self)
125
178
  destroyEffect(self.handle)
126
179
  return Handle.prototype.onDestroy(self)
127
180
  end
128
- function Effect.create(self, model, pos)
129
- return self:of(addSpecialEffect(model, pos.x, pos.y))
130
- end
131
- function Effect.createTarget(self, model, target, attachPoint)
132
- 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
133
189
  end
134
190
  function Effect.flash(self, modelPath, xOrWidget, yOrOrAttachmentPoint, parametersOrDuration, parameters)
135
191
  if type(parametersOrDuration) ~= "number" then
136
192
  parameters = parametersOrDuration
137
193
  parametersOrDuration = nil
138
194
  end
139
- local effect = type(xOrWidget) == "number" and addSpecialEffect(modelPath, xOrWidget, yOrOrAttachmentPoint) or addSpecialEffectTarget(modelPath, xOrWidget.handle, yOrOrAttachmentPoint)
140
- if parameters ~= nil then
141
- for key, value in ____pairs(parameters) do
142
- setters[key](effect, value)
143
- end
144
- end
145
- if parametersOrDuration ~= nil and parametersOrDuration > 0 then
146
- temporaryEffectsCount = temporaryEffectsCount + 1
147
- temporaryEffects[temporaryEffectsCount] = effect
148
- temporaryEffectsDurations[temporaryEffectsCount] = parametersOrDuration
195
+ if parameters and (parameters.delay or 0) > 0 then
196
+ delayedEffectsCount = delayedEffectsCount + 1
197
+ delayedEffectsModelPath[delayedEffectsCount] = modelPath
198
+ delayedEffectsXOrWidget[delayedEffectsCount] = xOrWidget
199
+ delayedEffectsYOrAttachmentPoint[delayedEffectsCount] = yOrOrAttachmentPoint
200
+ delayedEffectsDuration[delayedEffectsCount] = parametersOrDuration
201
+ delayedEffectsParameters[delayedEffectsCount] = parameters
202
+ delayedEffectsDelay[delayedEffectsCount] = parameters.delay
149
203
  return
150
204
  end
151
- destroyEffect(effect)
152
- end
153
- function Effect.flashTarget(self, model, target, attachPoint, duration)
154
- local effect = addSpecialEffectTarget(model, target.handle, attachPoint)
155
- if effect ~= nil then
156
- if duration and duration > 0 then
157
- temporaryEffectsCount = temporaryEffectsCount + 1
158
- temporaryEffects[temporaryEffectsCount] = effect
159
- temporaryEffectsDurations[temporaryEffectsCount] = duration
160
- else
161
- destroyEffect(effect)
162
- end
163
- end
205
+ flash(
206
+ modelPath,
207
+ xOrWidget,
208
+ yOrOrAttachmentPoint,
209
+ parametersOrDuration,
210
+ parameters
211
+ )
164
212
  end
165
213
  __TS__SetDescriptor(
166
214
  Effect.prototype,
167
215
  "color",
168
216
  {
169
217
  get = function(self)
170
- return self[100] or PlayerColor.black
218
+ return self[100] or PlayerColor.red
171
219
  end,
172
220
  set = function(self, color)
173
221
  setSpecialEffectColor(self.handle, color)
@@ -197,13 +245,61 @@ __TS__SetDescriptor(
197
245
  return self[101] or 0
198
246
  end,
199
247
  set = function(self, pitch)
200
- setSpecialEffectPitch(
201
- self.handle,
202
- -mathRad(pitch)
203
- )
248
+ setSpecialEffectPitchDegrees(self.handle, pitch)
204
249
  self[101] = pitch
205
250
  end
206
251
  },
207
252
  true
208
253
  )
254
+ __TS__SetDescriptor(
255
+ Effect.prototype,
256
+ "roll",
257
+ {
258
+ get = function(self)
259
+ return self[102] or 0
260
+ end,
261
+ set = function(self, roll)
262
+ setSpecialEffectRollDegrees(self.handle, roll)
263
+ self[102] = roll
264
+ end
265
+ },
266
+ true
267
+ )
268
+ addSpecialEffectInternal = function(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
269
+ local coordinatesProvided = type(xOrWidget) == "number"
270
+ local isPositional = coordinatesProvided or (parameters and parameters.detached) == true
271
+ local x = not isPositional and 0 or (coordinatesProvided and xOrWidget or xOrWidget.x)
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")
274
+ if parameters ~= nil then
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)
282
+ end
283
+ end
284
+ if isPositional and parameters.zOffset ~= nil then
285
+ moveLocation(location, x, y)
286
+ local z = __TS__InstanceOf(xOrWidget, Unit) and getLocationZ(location) + xOrWidget.flyHeight or getLocationZ(location)
287
+ setSpecialEffectZ(
288
+ effect,
289
+ z + parameters.zOffset * (parameters.scaleZOffset and getSpecialEffectScale(effect) or 1)
290
+ )
291
+ end
292
+ end
293
+ return effect
294
+ end
295
+ flash = function(modelPath, xOrWidget, yOrAttachmentPoint, duration, parameters)
296
+ local effect = addSpecialEffectInternal(modelPath, xOrWidget, yOrAttachmentPoint, parameters)
297
+ if duration ~= nil and duration > 0 then
298
+ temporaryEffectsCount = temporaryEffectsCount + 1
299
+ temporaryEffects[temporaryEffectsCount] = effect
300
+ temporaryEffectsDurations[temporaryEffectsCount] = duration
301
+ return
302
+ end
303
+ destroyEffect(effect)
304
+ end
209
305
  return ____exports
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Handle, HandleDestructor } from "./handle";
4
3
  import { Player } from "./player";
@@ -26,9 +25,14 @@ export declare class Frame extends Handle<jframehandle> {
26
25
  static readonly GAME_UI: Frame;
27
26
  static readonly CONSOLE_UI: Frame;
28
27
  static readonly CONSOLE_UI_BACKDROP: Frame;
28
+ private static readonly CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD;
29
+ static readonly CONSOLE_TOP_BAR: Frame;
30
+ static readonly CONSOLE_BOTTOM_BAR: Frame;
29
31
  static readonly WORLD: Frame;
30
32
  static readonly CHAT: Frame;
31
33
  static readonly TIME_OF_DAY_CLOCK: Frame;
34
+ private static readonly SIMPLE_FRAME_TEST_CHILD;
35
+ static get uiScale(): number;
32
36
  static get leftBorder(): Frame;
33
37
  static get rightBorder(): Frame;
34
38
  static get minX(): number;
@@ -76,6 +80,8 @@ export declare class Frame extends Handle<jframehandle> {
76
80
  get onMouseLeave(): FrameEvent;
77
81
  get onMouseUp(): FrameEvent;
78
82
  get onMouseWheel(): FrameEvent<[number]>;
83
+ get mouseEnterLocalEvent(): Event;
84
+ get mouseLeaveLocalEvent(): Event;
79
85
  get popupMenuItemChangeEvent(): FrameEvent<[
80
86
  popupMenu: Frame,
81
87
  previousValue: number,
@@ -105,6 +111,7 @@ export declare class Frame extends Handle<jframehandle> {
105
111
  enable(): void;
106
112
  addText(text: string): void;
107
113
  clearAllPoints(): void;
114
+ get children(): Frame[];
108
115
  getChild(index: number): Frame;
109
116
  getChildrenCount(): number;
110
117
  setSize(width: number, height: number): void;
@@ -15,13 +15,20 @@ 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
18
27
  local frameClick = BlzFrameClick
19
28
  local frameGetEnable = BlzFrameGetEnable
20
29
  local frameIsVisible = BlzFrameIsVisible
21
30
  local frameSetEnable = BlzFrameSetEnable
22
31
  local frameSetScale = BlzFrameSetScale
23
- local getCameraTargetPositionX = GetCameraTargetPositionX
24
- local getCameraTargetPositionY = GetCameraTargetPositionY
25
32
  local ____rawget = _G.rawget
26
33
  local rawset = _G.rawset
27
34
  local invoke = Event.invoke
@@ -62,8 +69,10 @@ local function updateBorders()
62
69
  local width4by3 = (w - h / 600 * 800) / 2
63
70
  local pxtodpi = 0.6 / h
64
71
  BlzFrameSetAbsPoint(leftBorder, FRAMEPOINT_TOPLEFT, -width4by3 * pxtodpi, 0.6)
72
+ BlzFrameSetScale(leftBorder, 1)
65
73
  BlzFrameSetSize(leftBorder, 0.001, 0.6)
66
74
  BlzFrameSetAbsPoint(rightBorder, FRAMEPOINT_TOPRIGHT, (-width4by3 + w) * pxtodpi, 0.6)
75
+ BlzFrameSetScale(rightBorder, 1)
67
76
  BlzFrameSetSize(rightBorder, 0.001, 0.6)
68
77
  end
69
78
  local worldFrame = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
@@ -120,6 +129,7 @@ do
120
129
  FramePoint.BOTTOM = FRAMEPOINT_BOTTOM
121
130
  FramePoint.BOTTOM_RIGHT = FRAMEPOINT_BOTTOMRIGHT
122
131
  end
132
+ local tooltipByFrame = setmetatable({}, {__mode = "k"})
123
133
  ____exports.Frame = __TS__Class()
124
134
  local Frame = ____exports.Frame
125
135
  Frame.name = "Frame"
@@ -240,6 +250,7 @@ function Frame.prototype.setTextColor(self, color)
240
250
  end
241
251
  function Frame.prototype.setTooltip(self, tooltip)
242
252
  BlzFrameSetTooltip(self.handle, tooltip.handle)
253
+ tooltipByFrame[self] = tooltip
243
254
  end
244
255
  function Frame.prototype.setMinMaxValue(self, minValue, maxValue)
245
256
  BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
@@ -267,7 +278,16 @@ function Frame.createSimple(self, name, parent, createContext)
267
278
  ))
268
279
  end
269
280
  function Frame.create(self, name, parent, priority, createContext)
270
- return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
281
+ if parent == ____exports.Frame.CONSOLE_UI_BACKDROP then
282
+ local helper = ____exports.Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD.handle
283
+ BlzFrameSetScale(helper, 1)
284
+ local frame = BlzCreateFrame(name, helper, priority or 0, createContext or 0)
285
+ BlzFrameSetScale(helper, ____exports.Frame.uiScale)
286
+ BlzFrameSetParent(frame, ____exports.Frame.CONSOLE_UI_BACKDROP.handle)
287
+ return self:of(frame)
288
+ else
289
+ return self:of(BlzCreateFrame(name, parent.handle, priority or 0, createContext or 0))
290
+ end
271
291
  end
272
292
  function Frame.createByType(self, typeName, name, parent, inherits, createContext)
273
293
  return self:of(BlzCreateFrameByType(
@@ -293,9 +313,20 @@ end
293
313
  Frame.GAME_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_GAME_UI)
294
314
  Frame.CONSOLE_UI = ____exports.Frame:byOrigin(ORIGIN_FRAME_SIMPLE_UI_PARENT)
295
315
  Frame.CONSOLE_UI_BACKDROP = ____exports.Frame:byName("ConsoleUIBackdrop")
316
+ Frame.CONSOLE_UI_BACKDROP_UI_SCALE_HELPER_CHILD = ____exports.Frame:createByType("FRAME", "ConsoleUIBackdropUIScaleHelperChild", ____exports.Frame.CONSOLE_UI_BACKDROP)
317
+ Frame.CONSOLE_TOP_BAR = ____exports.Frame:byName("ConsoleTopBar")
318
+ Frame.CONSOLE_BOTTOM_BAR = ____exports.Frame:byName("ConsoleBottomBar")
296
319
  Frame.WORLD = ____exports.Frame:byOrigin(ORIGIN_FRAME_WORLD_FRAME)
297
320
  Frame.CHAT = ____exports.Frame:byOrigin(ORIGIN_FRAME_CHAT_MSG)
298
321
  Frame.TIME_OF_DAY_CLOCK = ____exports.Frame.GAME_UI:getChild(5):getChild(0)
322
+ Frame.SIMPLE_FRAME_TEST_CHILD = ____exports.Frame:createByType("SIMPLEFRAME", "SimpleFrameTestParent", ____exports.Frame.CONSOLE_UI)
323
+ __TS__ObjectDefineProperty(
324
+ Frame,
325
+ "uiScale",
326
+ {get = function(self)
327
+ return ____exports.Frame.CONSOLE_BOTTOM_BAR.width / 0.8
328
+ end}
329
+ )
299
330
  __TS__ObjectDefineProperty(
300
331
  Frame,
301
332
  "leftBorder",
@@ -320,27 +351,21 @@ __TS__ObjectDefineProperty(
320
351
  Frame,
321
352
  "minX",
322
353
  {get = function(self)
323
- local w = BlzGetLocalClientWidth()
324
- local h = BlzGetLocalClientHeight()
325
- local width4by3 = (w - h / 600 * 800) / 2
326
- local pxtodpi = 0.6 / h
327
- return -width4by3 * pxtodpi
354
+ local minX = getFrameMinXMaxX()
355
+ return minX
328
356
  end}
329
357
  )
330
358
  __TS__ObjectDefineProperty(
331
359
  Frame,
332
360
  "maxX",
333
361
  {get = function(self)
334
- local w = BlzGetLocalClientWidth()
335
- local h = BlzGetLocalClientHeight()
336
- local width4by3 = (w - h / 600 * 800) / 2
337
- local pxtodpi = 0.6 / h
338
- return (-width4by3 + w) * pxtodpi
362
+ local ____, maxX = getFrameMinXMaxX()
363
+ return maxX
339
364
  end}
340
365
  )
341
366
  Frame.centerX = 0.4
342
- Frame.minY = 0
343
- Frame.maxY = 0.6
367
+ Frame.minY = FRAME_MIN_Y
368
+ Frame.maxY = FRAME_MAX_Y
344
369
  Frame.centerY = 0.3
345
370
  __TS__SetDescriptor(
346
371
  Frame.prototype,
@@ -597,6 +622,62 @@ __TS__SetDescriptor(
597
622
  end},
598
623
  true
599
624
  )
625
+ __TS__SetDescriptor(
626
+ Frame.prototype,
627
+ "mouseEnterLocalEvent",
628
+ {get = function(self)
629
+ local event = __TS__New(Event)
630
+ if not (tooltipByFrame[self] ~= nil) then
631
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
632
+ local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
633
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
634
+ self:setTooltip(tooltip)
635
+ end
636
+ local isMouseInside = false
637
+ Timer.onPeriod[1 / 64]:addListener(function()
638
+ local tooltip = tooltipByFrame[self]
639
+ if tooltip and tooltip.visible then
640
+ if not isMouseInside then
641
+ isMouseInside = true
642
+ Event.invoke(event)
643
+ end
644
+ else
645
+ isMouseInside = false
646
+ end
647
+ end)
648
+ rawset(self, "mouseEnterLocalEvent", event)
649
+ return event
650
+ end},
651
+ true
652
+ )
653
+ __TS__SetDescriptor(
654
+ Frame.prototype,
655
+ "mouseLeaveLocalEvent",
656
+ {get = function(self)
657
+ local event = __TS__New(Event)
658
+ if not (tooltipByFrame[self] ~= nil) then
659
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = self
660
+ local tooltip = ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent == self and ____exports.Frame:createByType("SIMPLEFRAME", "", ____exports.Frame.CONSOLE_UI) or ____exports.Frame:createByType("FRAME", "", ____exports.Frame.GAME_UI)
661
+ ____exports.Frame.SIMPLE_FRAME_TEST_CHILD.parent = ____exports.Frame.CONSOLE_UI
662
+ self:setTooltip(tooltip)
663
+ end
664
+ local isMouseInside = false
665
+ Timer.onPeriod[1 / 64]:addListener(function()
666
+ local tooltip = tooltipByFrame[self]
667
+ if tooltip and tooltip.visible then
668
+ isMouseInside = true
669
+ else
670
+ if isMouseInside then
671
+ isMouseInside = false
672
+ Event.invoke(event)
673
+ end
674
+ end
675
+ end)
676
+ rawset(self, "mouseLeaveLocalEvent", event)
677
+ return event
678
+ end},
679
+ true
680
+ )
600
681
  __TS__SetDescriptor(
601
682
  Frame.prototype,
602
683
  "popupMenuItemChangeEvent",
@@ -699,6 +780,18 @@ __TS__SetDescriptor(
699
780
  end},
700
781
  true
701
782
  )
783
+ __TS__SetDescriptor(
784
+ Frame.prototype,
785
+ "children",
786
+ {get = function(self)
787
+ local children = {}
788
+ for i = 0, self:getChildrenCount() - 1 do
789
+ children[i + 1] = self:getChild(i)
790
+ end
791
+ return children
792
+ end},
793
+ true
794
+ )
702
795
  __TS__ObjectDefineProperty(
703
796
  Frame,
704
797
  "onKeyPress",
@@ -846,16 +939,19 @@ __TS__ObjectDefineProperty(
846
939
  local event = __TS__New(Event)
847
940
  local syncX = 0
848
941
  local syncY = 0
849
- local syncCamX = getCameraTargetPositionX()
850
- local syncCamY = getCameraTargetPositionY()
942
+ local syncFrameX = 0
943
+ local syncFrameY = 0
851
944
  local lastX = syncX
852
945
  local lastY = syncY
853
946
  self.onMouseMove:addListener(function(player, x, y)
854
947
  if player.isLocal then
855
948
  syncX = x
856
949
  syncY = y
857
- syncCamX = getCameraTargetPositionX()
858
- syncCamY = getCameraTargetPositionY()
950
+ syncFrameX, syncFrameY = worldCoordinatesToFrame(
951
+ x,
952
+ y,
953
+ getTerrainZ(x, y)
954
+ )
859
955
  lastX = x
860
956
  lastY = y
861
957
  invoke(event, x, y)
@@ -865,9 +961,8 @@ __TS__ObjectDefineProperty(
865
961
  if syncX == 0 and syncY == 0 then
866
962
  return
867
963
  end
868
- local x = syncX + (getCameraTargetPositionX() - syncCamX)
869
- local y = syncY + (getCameraTargetPositionY() - syncCamY)
870
- if x ~= lastX or y ~= lastY then
964
+ local x, y, ____, isDefinite = frameCoordinatesToWorld(syncFrameX, syncFrameY)
965
+ if isDefinite and (x ~= lastX or y ~= lastY) then
871
966
  lastX = x
872
967
  lastY = y
873
968
  invoke(event, x, y)
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Widget } from "./widget";
4
3
  import { Unit } from "../../engine/internal/unit";
@@ -1,4 +1,3 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
2
  import { Handle, HandleDestructor } from "./handle";
4
3
  import { Color } from "./color";