warscript 0.0.1-dev.1858ab2 → 0.0.1-dev.193ed34

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 (256) hide show
  1. package/attributes.d.ts +17 -0
  2. package/attributes.lua +23 -0
  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 +118 -13
  11. package/core/types/group.d.ts +0 -1
  12. package/core/types/handle.d.ts +2 -1
  13. package/core/types/handle.lua +5 -0
  14. package/core/types/image.d.ts +0 -1
  15. package/core/types/missile.d.ts +2 -2
  16. package/core/types/missile.lua +8 -2
  17. package/core/types/player.lua +3 -1
  18. package/core/types/playerCamera.d.ts +2 -0
  19. package/core/types/playerCamera.lua +79 -5
  20. package/core/types/sound.d.ts +17 -24
  21. package/core/types/sound.lua +99 -24
  22. package/core/types/timer.d.ts +8 -8
  23. package/core/types/timer.lua +25 -23
  24. package/core/types/unit.lua +8 -0
  25. package/core/util.d.ts +1 -1
  26. package/core/util.lua +18 -1
  27. package/decl/index.d.ts +1 -0
  28. package/decl/native.d.ts +844 -788
  29. package/engine/ability.d.ts +1 -1
  30. package/engine/behavior.d.ts +12 -10
  31. package/engine/behavior.lua +59 -33
  32. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  33. package/engine/behaviour/ability/always-enabled.lua +31 -0
  34. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  35. package/engine/behaviour/ability/apply-buff.lua +32 -0
  36. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  37. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  38. package/engine/behaviour/ability/damage.d.ts +39 -11
  39. package/engine/behaviour/ability/damage.lua +83 -37
  40. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  41. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  42. package/engine/behaviour/ability/heal.d.ts +33 -6
  43. package/engine/behaviour/ability/heal.lua +89 -10
  44. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  45. package/engine/behaviour/ability/instant-impact.lua +4 -15
  46. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  47. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  48. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  49. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  50. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  51. package/engine/behaviour/ability/restore-mana.lua +29 -0
  52. package/engine/behaviour/ability.d.ts +27 -4
  53. package/engine/behaviour/ability.lua +152 -26
  54. package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
  55. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  56. package/engine/behaviour/unit.d.ts +36 -2
  57. package/engine/behaviour/unit.lua +186 -0
  58. package/engine/buff.d.ts +104 -41
  59. package/engine/buff.lua +471 -212
  60. package/engine/game-map.d.ts +7 -0
  61. package/engine/game-map.lua +32 -0
  62. package/engine/internal/ability.d.ts +21 -14
  63. package/engine/internal/ability.lua +103 -76
  64. package/engine/internal/item/ability.lua +162 -4
  65. package/engine/internal/item+owner.lua +2 -2
  66. package/engine/internal/item.d.ts +7 -4
  67. package/engine/internal/item.lua +131 -28
  68. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  69. package/engine/internal/mechanics/ability-duration.lua +3 -1
  70. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  71. package/engine/internal/mechanics/cast-ability.lua +86 -0
  72. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  73. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  74. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  75. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  76. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  77. package/engine/internal/misc/get-terrain-z.lua +11 -0
  78. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  79. package/engine/internal/misc/player-local-handle.lua +5 -0
  80. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  81. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  82. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  83. package/engine/internal/object-data/evasion-probability.lua +16 -0
  84. package/engine/internal/unit/ability.d.ts +45 -1
  85. package/engine/internal/unit/ability.lua +98 -14
  86. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  87. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  88. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  89. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  90. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  91. package/engine/internal/unit/allowed-targets.lua +9 -1
  92. package/engine/internal/unit/bonus.d.ts +11 -8
  93. package/engine/internal/unit/bonus.lua +23 -1
  94. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  95. package/engine/internal/unit/detach-missiles.lua +30 -0
  96. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  97. package/engine/internal/unit/ignore-events-items.lua +5 -0
  98. package/engine/internal/unit/item.d.ts +24 -0
  99. package/engine/internal/unit/item.lua +78 -0
  100. package/engine/internal/unit/main-selected.d.ts +13 -0
  101. package/engine/internal/unit/main-selected.lua +51 -0
  102. package/engine/internal/unit/order.d.ts +20 -0
  103. package/engine/internal/unit/order.lua +136 -0
  104. package/engine/internal/unit+ability.lua +2 -2
  105. package/engine/internal/unit+damage.d.ts +2 -11
  106. package/engine/internal/unit+damage.lua +10 -14
  107. package/engine/internal/unit+spellSteal.lua +1 -2
  108. package/engine/internal/unit+transport.lua +4 -10
  109. package/engine/internal/unit-missile-launch.lua +33 -7
  110. package/engine/internal/unit.d.ts +87 -22
  111. package/engine/internal/unit.lua +580 -194
  112. package/engine/internal/utility.lua +12 -0
  113. package/engine/lightning.d.ts +12 -5
  114. package/engine/lightning.lua +48 -14
  115. package/engine/local-client.d.ts +7 -2
  116. package/engine/local-client.lua +82 -0
  117. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  118. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  119. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  120. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  121. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  122. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  123. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  124. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  125. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  126. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  127. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  128. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  129. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  130. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  131. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  132. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  133. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  134. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  135. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  136. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  137. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  138. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  139. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  140. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  141. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  142. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  143. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  144. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  145. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  146. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  147. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  148. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  149. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  150. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  151. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  152. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  153. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  154. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  155. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  156. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  157. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  158. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  159. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  160. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  161. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  162. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  163. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  164. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  165. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  166. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  167. package/engine/object-data/entry/ability-type/web.lua +52 -0
  168. package/engine/object-data/entry/ability-type.d.ts +20 -18
  169. package/engine/object-data/entry/ability-type.lua +91 -36
  170. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  171. package/engine/object-data/entry/buff-type/applicable.lua +39 -102
  172. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  173. package/engine/object-data/entry/buff-type.d.ts +6 -13
  174. package/engine/object-data/entry/buff-type.lua +13 -29
  175. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  176. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  177. package/engine/object-data/entry/item-type.d.ts +15 -2
  178. package/engine/object-data/entry/item-type.lua +93 -2
  179. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  180. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  181. package/engine/object-data/entry/sound-preset.lua +140 -0
  182. package/engine/object-data/entry/unit-type.d.ts +61 -5
  183. package/engine/object-data/entry/unit-type.lua +511 -62
  184. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  185. package/engine/object-data/entry/upgrade.d.ts +1 -2
  186. package/engine/object-data/entry/upgrade.lua +4 -4
  187. package/engine/object-data/entry.d.ts +18 -17
  188. package/engine/object-data/entry.lua +60 -32
  189. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  190. package/engine/object-field/ability.d.ts +33 -8
  191. package/engine/object-field/ability.lua +60 -1
  192. package/engine/object-field/unit.d.ts +57 -2
  193. package/engine/object-field/unit.lua +207 -4
  194. package/engine/object-field.d.ts +17 -6
  195. package/engine/object-field.lua +199 -97
  196. package/engine/random.d.ts +1 -0
  197. package/engine/random.lua +9 -0
  198. package/engine/standard/entries/buff-type.d.ts +3 -0
  199. package/engine/standard/entries/buff-type.lua +3 -0
  200. package/engine/standard/entries/sound-preset.d.ts +10 -0
  201. package/engine/standard/entries/sound-preset.lua +10 -0
  202. package/engine/standard/entries/unit-type.d.ts +42 -1
  203. package/engine/standard/entries/unit-type.lua +42 -1
  204. package/engine/standard/fields/ability.d.ts +3 -1
  205. package/engine/standard/fields/ability.lua +3 -1
  206. package/engine/standard/fields/unit.d.ts +4 -0
  207. package/engine/standard/fields/unit.lua +7 -0
  208. package/engine/text-tag.d.ts +36 -2
  209. package/engine/text-tag.lua +248 -10
  210. package/engine/unit.d.ts +5 -0
  211. package/engine/unit.lua +14 -2
  212. package/event.d.ts +2 -3
  213. package/event.lua +9 -5
  214. package/global/vec2.lua +1 -0
  215. package/index.d.ts +1 -0
  216. package/index.lua +1 -0
  217. package/lualib_bundle.lua +146 -42
  218. package/math/vec2.d.ts +2 -9
  219. package/math.d.ts +0 -2
  220. package/net/socket.d.ts +7 -1
  221. package/net/socket.lua +45 -4
  222. package/network.d.ts +1 -0
  223. package/network.lua +3 -2
  224. package/objutil/ability.d.ts +0 -1
  225. package/objutil/buff.d.ts +0 -1
  226. package/objutil/buff.lua +2 -3
  227. package/objutil/object.d.ts +0 -1
  228. package/objutil/unit.d.ts +0 -1
  229. package/objutil/unit.lua +8 -0
  230. package/package.json +13 -14
  231. package/patch-lua.d.ts +0 -0
  232. package/patch-lua.lua +10 -0
  233. package/property.d.ts +55 -0
  234. package/property.lua +374 -0
  235. package/string.d.ts +30 -0
  236. package/string.lua +14 -0
  237. package/util/stream.d.ts +0 -1
  238. package/utility/arrays.d.ts +12 -5
  239. package/utility/arrays.lua +37 -3
  240. package/utility/bit-set.d.ts +0 -2
  241. package/utility/functions.d.ts +8 -0
  242. package/utility/functions.lua +13 -0
  243. package/utility/lazy.d.ts +2 -0
  244. package/utility/lazy.lua +14 -0
  245. package/utility/linked-set.d.ts +12 -3
  246. package/utility/linked-set.lua +8 -2
  247. package/utility/lua-maps.d.ts +5 -2
  248. package/utility/lua-maps.lua +20 -0
  249. package/utility/lua-sets.d.ts +3 -2
  250. package/utility/lua-sets.lua +7 -0
  251. package/utility/reflection.lua +11 -7
  252. package/utility/types.d.ts +3 -2
  253. package/core/mapbounds.d.ts +0 -8
  254. package/core/mapbounds.lua +0 -12
  255. package/core/types/order.d.ts +0 -25
  256. package/core/types/order.lua +0 -55
@@ -27,7 +27,7 @@ ____exports.LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD = AbilityIntegerField:c
27
27
  ____exports.HERO_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aher"))
28
28
  ____exports.ITEM_ABILITY_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("aite"))
29
29
  ____exports.CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD = AbilityBooleanField:create(fourCC("achd"))
30
- ____exports.ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
30
+ ____exports.MISSILE_ARC_ABILITY_FLOAT_FIELD = AbilityFloatField:create(fourCC("amac"))
31
31
  ____exports.NAME_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("anam"))
32
32
  ____exports.ICON_ACTIVATED_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("auar"))
33
33
  ____exports.ICON_RESEARCH_ABILITY_STRING_FIELD = AbilityStringField:create(fourCC("arar"))
@@ -698,6 +698,8 @@ ____exports.DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBoolean
698
698
  ____exports.ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD = AbilityBooleanLevelField:create(fourCC("Ntm4"))
699
699
  ____exports.ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD = AbilityStringLevelField:create(fourCC("aart"))
700
700
  ____exports.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("acat"))
701
+ ____exports.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("acap"))
702
+ ____exports.CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("aca1"))
701
703
  ____exports.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = AbilityStringArrayField:create(fourCC("atat"))
702
704
  ____exports.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata0"))
703
705
  ____exports.TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = AbilityStringField:create(fourCC("ata1"))
@@ -0,0 +1,4 @@
1
+ /** @noSelfInFile */
2
+ import { UnitClassificationsField, UnitPropulsionWindowField } from "../../object-field/unit";
3
+ export declare const PROPULSION_WINDOW_UNIT_FLOAT_FIELD: UnitPropulsionWindowField & symbol;
4
+ export declare const UNIT_CLASSIFICATIONS_FIELD: UnitClassificationsField & symbol;
@@ -0,0 +1,7 @@
1
+ local ____exports = {}
2
+ local ____unit = require("engine.object-field.unit")
3
+ local UnitClassificationsField = ____unit.UnitClassificationsField
4
+ local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
5
+ ____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
6
+ ____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
7
+ return ____exports
@@ -1,5 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { Color } from "../core/types/color";
3
+ import { Unit } from "./internal/unit";
4
+ import { AbstractDestroyable, Destructor } from "../destroyable";
3
5
  export type TextTagPreset = {
4
6
  fadepoint: number;
5
7
  lifespan: number;
@@ -10,9 +12,39 @@ export type TextTagPreset = {
10
12
  velocityY: number;
11
13
  color: Color;
12
14
  };
13
- export declare class TextTag {
14
- private readonly handle;
15
+ declare const enum TextTagPropertyKey {
16
+ UNIT = 100,
17
+ HANDLE = 101,
18
+ CONFIGURATION = 102,
19
+ TEXT = 103,
20
+ FONT_SIZE = 104,
21
+ COLOR = 105,
22
+ X = 106,
23
+ Y = 107
24
+ }
25
+ export declare class TextTag extends AbstractDestroyable {
26
+ private [TextTagPropertyKey.HANDLE]?;
27
+ private [TextTagPropertyKey.CONFIGURATION]?;
28
+ private [TextTagPropertyKey.TEXT]?;
29
+ private [TextTagPropertyKey.FONT_SIZE]?;
30
+ private [TextTagPropertyKey.COLOR]?;
31
+ private [TextTagPropertyKey.UNIT]?;
32
+ private [TextTagPropertyKey.X]?;
33
+ private [TextTagPropertyKey.Y]?;
15
34
  private constructor();
35
+ protected onDestroy(): Destructor;
36
+ get text(): string;
37
+ set text(text: string);
38
+ get fontSize(): number;
39
+ set fontSize(fontSize: number);
40
+ get color(): Color;
41
+ set color(color: Color);
42
+ get unit(): Unit | undefined;
43
+ set unit(unit: Unit | undefined);
44
+ get x(): number;
45
+ set x(x: number);
46
+ get y(): number;
47
+ set y(y: number);
16
48
  static BASE: Readonly<TextTagPreset>;
17
49
  static BASH: Readonly<TextTagPreset>;
18
50
  static CRITICAL_STRIKE: Readonly<TextTagPreset>;
@@ -22,4 +54,6 @@ export declare class TextTag {
22
54
  static MISS: Readonly<TextTagPreset>;
23
55
  static SHADOW_STRIKE: Readonly<TextTagPreset>;
24
56
  static flash(configuration: Readonly<TextTagPreset>, text: string, x: number, y: number, z?: number): void;
57
+ static create(configuration: Readonly<TextTagPreset>, text: string, unit: Unit): TextTag;
25
58
  }
59
+ export {};
@@ -1,9 +1,22 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__New = ____lualib.__TS__New
5
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
3
6
  local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
4
7
  local ____exports = {}
5
8
  local ____color = require("core.types.color")
6
9
  local Color = ____color.Color
10
+ local ____timer = require("core.types.timer")
11
+ local Timer = ____timer.Timer
12
+ local ____destroyable = require("destroyable")
13
+ local AbstractDestroyable = ____destroyable.AbstractDestroyable
14
+ local ____playerCamera = require("core.types.playerCamera")
15
+ local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
16
+ local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
17
+ local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
18
+ local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
19
+ local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
7
20
  local createTextTag = CreateTextTag
8
21
  local destroyTextTag = DestroyTextTag
9
22
  local setTextTagText = SetTextTagText
@@ -17,17 +30,14 @@ local setTextTagPermanent = SetTextTagPermanent
17
30
  local setTextTagAge = SetTextTagAge
18
31
  local setTextTagLifespan = SetTextTagLifespan
19
32
  local setTextTagFadepoint = SetTextTagFadepoint
33
+ local isUnitHidden = IsUnitHidden
34
+ local isUnitLoaded = IsUnitLoaded
35
+ local isUnitVisible = IsUnitVisible
36
+ local getUnitFlyHeight = GetUnitFlyHeight
37
+ local getUnitX = GetUnitX
38
+ local getUnitY = GetUnitY
20
39
  local DEFAULT_FONT_SIZE = 0.024
21
- ____exports.TextTag = __TS__Class()
22
- local TextTag = ____exports.TextTag
23
- TextTag.name = "TextTag"
24
- function TextTag.prototype.____constructor(self, handle)
25
- self.handle = handle
26
- end
27
- function TextTag.flash(self, configuration, text, x, y, z)
28
- local textTag = createTextTag()
29
- setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
30
- setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
40
+ local function applyConfiguration(textTag, configuration)
31
41
  setTextTagFadepoint(textTag, configuration.fadepoint)
32
42
  setTextTagLifespan(textTag, configuration.lifespan)
33
43
  local color = configuration.color
@@ -42,6 +52,212 @@ function TextTag.flash(self, configuration, text, x, y, z)
42
52
  setTextTagPermanent(textTag, false)
43
53
  setTextTagVisibility(textTag, true)
44
54
  end
55
+ local unitTextTags = setmetatable({}, {__mode = "k"})
56
+ local function ensureHandle(textTag)
57
+ local handle = textTag[101]
58
+ if handle == nil then
59
+ handle = createTextTag()
60
+ applyConfiguration(handle, textTag[102])
61
+ setTextTagPermanent(handle, true)
62
+ setTextTagText(handle, textTag[103] or "", textTag[104] or DEFAULT_FONT_SIZE)
63
+ local color = textTag[105]
64
+ if color ~= nil then
65
+ setTextTagColor(
66
+ handle,
67
+ color.r,
68
+ color.g,
69
+ color.b,
70
+ color.a
71
+ )
72
+ end
73
+ local unit = textTag[100]
74
+ if unit ~= nil then
75
+ setTextTagPosUnit(handle, unit.handle, textTag[102].offsetZ)
76
+ else
77
+ setTextTagPos(handle, textTag[106] or 0, textTag[107] or 0, 0)
78
+ end
79
+ textTag[101] = handle
80
+ end
81
+ return handle
82
+ end
83
+ ____exports.TextTag = __TS__Class()
84
+ local TextTag = ____exports.TextTag
85
+ TextTag.name = "TextTag"
86
+ __TS__ClassExtends(TextTag, AbstractDestroyable)
87
+ function TextTag.prototype.____constructor(self, handle)
88
+ AbstractDestroyable.prototype.____constructor(self)
89
+ self[101] = handle
90
+ end
91
+ function TextTag.prototype.onDestroy(self)
92
+ local handle = self[101]
93
+ if handle ~= nil then
94
+ destroyTextTag(handle)
95
+ self[101] = nil
96
+ end
97
+ unitTextTags[self] = nil
98
+ return AbstractDestroyable.prototype.onDestroy(self)
99
+ end
100
+ function TextTag.flash(self, configuration, text, x, y, z)
101
+ local textTag = createTextTag()
102
+ setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
103
+ setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
104
+ applyConfiguration(textTag, configuration)
105
+ end
106
+ function TextTag.create(self, configuration, text, unit)
107
+ local textTag = __TS__New(____exports.TextTag)
108
+ textTag[100] = unit
109
+ textTag[102] = configuration
110
+ ensureHandle(textTag)
111
+ unitTextTags[textTag] = true
112
+ return textTag
113
+ end
114
+ __TS__SetDescriptor(
115
+ TextTag.prototype,
116
+ "text",
117
+ {
118
+ get = function(self)
119
+ return self[103] or ""
120
+ end,
121
+ set = function(self, text)
122
+ setTextTagText(
123
+ ensureHandle(self),
124
+ text,
125
+ self[104] or DEFAULT_FONT_SIZE
126
+ )
127
+ self[103] = text
128
+ end
129
+ },
130
+ true
131
+ )
132
+ __TS__SetDescriptor(
133
+ TextTag.prototype,
134
+ "fontSize",
135
+ {
136
+ get = function(self)
137
+ return self[104] or DEFAULT_FONT_SIZE
138
+ end,
139
+ set = function(self, fontSize)
140
+ setTextTagText(
141
+ ensureHandle(self),
142
+ self[103] or "",
143
+ DEFAULT_FONT_SIZE
144
+ )
145
+ self[104] = fontSize
146
+ end
147
+ },
148
+ true
149
+ )
150
+ __TS__SetDescriptor(
151
+ TextTag.prototype,
152
+ "color",
153
+ {
154
+ get = function(self)
155
+ return self[105] or Color.white
156
+ end,
157
+ set = function(self, color)
158
+ setTextTagColor(
159
+ ensureHandle(self),
160
+ color.r,
161
+ color.g,
162
+ color.b,
163
+ color.a
164
+ )
165
+ self[105] = color
166
+ end
167
+ },
168
+ true
169
+ )
170
+ __TS__SetDescriptor(
171
+ TextTag.prototype,
172
+ "unit",
173
+ {
174
+ get = function(self)
175
+ return self[100]
176
+ end,
177
+ set = function(self, unit)
178
+ if unit ~= nil then
179
+ setTextTagPosUnit(
180
+ ensureHandle(self),
181
+ unit.handle,
182
+ 0
183
+ )
184
+ self[106] = nil
185
+ self[107] = nil
186
+ unitTextTags[self] = true
187
+ elseif self[100] ~= nil then
188
+ local unit = self[100]
189
+ local x = unit.x
190
+ local y = unit.y
191
+ setTextTagPos(
192
+ ensureHandle(self),
193
+ x,
194
+ y,
195
+ 0
196
+ )
197
+ self[106] = x
198
+ self[107] = y
199
+ unitTextTags[self] = nil
200
+ end
201
+ self[100] = unit
202
+ end
203
+ },
204
+ true
205
+ )
206
+ __TS__SetDescriptor(
207
+ TextTag.prototype,
208
+ "x",
209
+ {
210
+ get = function(self)
211
+ local ____self__106_2 = self[106]
212
+ if ____self__106_2 == nil then
213
+ local ____opt_0 = self[100]
214
+ ____self__106_2 = ____opt_0 and ____opt_0.x
215
+ end
216
+ return ____self__106_2 or 0
217
+ end,
218
+ set = function(self, x)
219
+ local ____ensureHandle_result_6 = ensureHandle(self)
220
+ local ____x_7 = x
221
+ local ____self__107_5 = self[107]
222
+ if ____self__107_5 == nil then
223
+ local ____opt_3 = self[100]
224
+ ____self__107_5 = ____opt_3 and ____opt_3.y
225
+ end
226
+ setTextTagPos(____ensureHandle_result_6, ____x_7, ____self__107_5 or 0, 0)
227
+ self[106] = x
228
+ self[100] = nil
229
+ unitTextTags[self] = nil
230
+ end
231
+ },
232
+ true
233
+ )
234
+ __TS__SetDescriptor(
235
+ TextTag.prototype,
236
+ "y",
237
+ {
238
+ get = function(self)
239
+ local ____self__107_10 = self[107]
240
+ if ____self__107_10 == nil then
241
+ local ____opt_8 = self[100]
242
+ ____self__107_10 = ____opt_8 and ____opt_8.y
243
+ end
244
+ return ____self__107_10 or 0
245
+ end,
246
+ set = function(self, y)
247
+ local ____ensureHandle_result_14 = ensureHandle(self)
248
+ local ____self__106_13 = self[106]
249
+ if ____self__106_13 == nil then
250
+ local ____opt_11 = self[100]
251
+ ____self__106_13 = ____opt_11 and ____opt_11.x
252
+ end
253
+ setTextTagPos(____ensureHandle_result_14, ____self__106_13 or 0, y, 0)
254
+ self[107] = y
255
+ self[100] = nil
256
+ unitTextTags[self] = nil
257
+ end
258
+ },
259
+ true
260
+ )
45
261
  TextTag.BASE = {
46
262
  fadepoint = 2,
47
263
  lifespan = 3,
@@ -106,4 +322,26 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
106
322
  lifespan = 5
107
323
  }
108
324
  )
325
+ Timer.onPeriod[1 / 64]:addListener(function()
326
+ for textTag in pairs(unitTextTags) do
327
+ local unit = textTag[100].handle
328
+ local x = getUnitX(unit)
329
+ local y = getUnitY(unit)
330
+ local ____, ____, isInView = worldCoordinatesToFrame(
331
+ x,
332
+ y,
333
+ getUnitFlyHeight(unit) + getTerrainZ(x, y)
334
+ )
335
+ if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) then
336
+ setTextTagPosUnit(
337
+ ensureHandle(textTag),
338
+ unit,
339
+ textTag[102].offsetZ
340
+ )
341
+ elseif textTag[101] ~= nil then
342
+ destroyTextTag(textTag[101])
343
+ textTag[101] = nil
344
+ end
345
+ end
346
+ end)
109
347
  return ____exports
package/engine/unit.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  /** @noSelfInFile */
2
2
  import "./internal/unit";
3
+ import "./internal/unit/order";
3
4
  import "./internal/unit/ability";
4
5
  import "./internal/unit/allowed-targets";
5
6
  import "./internal/unit/buff";
6
7
  import "./internal/unit/expiration-timer";
8
+ import "./internal/unit/item";
7
9
  import "./internal/unit+ability";
8
10
  import "./internal/unit+damage";
9
11
  import "./internal/unit+rally";
@@ -14,6 +16,9 @@ import "./internal/unit/missile";
14
16
  import "./internal/unit-missile-launch";
15
17
  import "./internal/unit/ghost-counter";
16
18
  import "./internal/unit/invulnerability-counter";
19
+ import "./internal/unit/detach-missiles";
20
+ import "./internal/unit/main-selected";
21
+ import "./internal/unit/add-item-to-slot-init";
17
22
  import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
18
23
  export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
19
24
  export * from "./internal/unit+damage";
package/engine/unit.lua CHANGED
@@ -1,9 +1,11 @@
1
1
  local ____exports = {}
2
2
  require("engine.internal.unit")
3
+ require("engine.internal.unit.order")
3
4
  require("engine.internal.unit.ability")
4
5
  require("engine.internal.unit.allowed-targets")
5
6
  require("engine.internal.unit.buff")
6
7
  require("engine.internal.unit.expiration-timer")
8
+ require("engine.internal.unit.item")
7
9
  require("engine.internal.unit+ability")
8
10
  require("engine.internal.unit+damage")
9
11
  require("engine.internal.unit+rally")
@@ -14,11 +16,13 @@ require("engine.internal.unit.missile")
14
16
  require("engine.internal.unit-missile-launch")
15
17
  require("engine.internal.unit.ghost-counter")
16
18
  require("engine.internal.unit.invulnerability-counter")
19
+ require("engine.internal.unit.detach-missiles")
20
+ require("engine.internal.unit.main-selected")
21
+ require("engine.internal.unit.add-item-to-slot-init")
17
22
  require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
18
23
  do
19
24
  local ____unit = require("engine.internal.unit")
20
- local Unit = ____unit.Unit
21
- ____exports.Unit = Unit
25
+ ____exports.Unit = ____unit.Unit
22
26
  end
23
27
  do
24
28
  local ____export = require("engine.internal.unit+damage")
@@ -28,4 +32,12 @@ do
28
32
  end
29
33
  end
30
34
  end
35
+ do
36
+ local ____export = require("engine.internal.unit+rally")
37
+ for ____exportKey, ____exportValue in pairs(____export) do
38
+ if ____exportKey ~= "default" then
39
+ ____exports[____exportKey] = ____exportValue
40
+ end
41
+ end
42
+ end
31
43
  return ____exports
package/event.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- /// <reference types="@typescript-to-lua/language-extensions" />
2
1
  /** @noSelfInFile */
3
- export type EventListener<T extends any[]> = (...args: T) => void;
2
+ export type EventListener<T extends any[]> = (this: void, ...args: T) => void;
4
3
  export declare const enum EventListenerPriority {
5
4
  LOWEST = 0,
6
5
  LOW = 1,
@@ -38,7 +37,7 @@ export type EventDispatchTable<EventType extends Event<any>, KeyType extends num
38
37
  };
39
38
  export type DispatchingEvent<P extends any[], T extends Event<P> = Event<P>, S extends Event<P> = Event<P>> = T & EventDispatchTable<S>;
40
39
  export declare const createDispatchingEvent: {
41
- <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (...args: EventParameters<T>) => number, ...createEvent: [...(Event<any> extends S ? [(() => S)?] : [() => S])]): DispatchingEvent<EventParameters<T>, T>;
40
+ <T extends Event<any>, S extends Event<EventParameters<T>>>(underlyingEvent: T, extractKey: (this: void, ...args: EventParameters<T>) => number, invokeEvent?: (this: void, event: S, ...args: EventParameters<T>) => unknown, ...createEvent: [...(Event<any> extends S ? [((this: void) => S)?] : [(this: void) => S])]): DispatchingEvent<EventParameters<T>, T, S>;
42
41
  };
43
42
  export declare class DependentInitializingEvent<T extends any[], R extends any[]> extends InitializingEvent<R, EventListener<T>> {
44
43
  constructor(underlyingEvent: Event<T>, priority: EventListenerPriority, collector: (...args: T) => LuaMultiReturn<[false] | [true, ...R]>);
package/event.lua CHANGED
@@ -146,8 +146,13 @@ function TriggerEvent.prototype.____constructor(self, r, c)
146
146
  end
147
147
  )
148
148
  end
149
- ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, createEvent)
150
- local actualCreateEvent = createEvent or (function() return __TS__New(____exports.Event) end)
149
+ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, invokeEvent, createEvent)
150
+ if invokeEvent == nil then
151
+ invokeEvent = ____exports.Event.invoke
152
+ end
153
+ if createEvent == nil then
154
+ createEvent = function() return __TS__New(____exports.Event) end
155
+ end
151
156
  local initialized = false
152
157
  return setmetatable(
153
158
  {},
@@ -157,17 +162,16 @@ ____exports.createDispatchingEvent = function(underlyingEvent, extractKey, creat
157
162
  return underlyingEvent[id]
158
163
  end
159
164
  if not initialized then
160
- local invoke = ____exports.Event.invoke
161
165
  underlyingEvent:addListener(function(...)
162
166
  local key = extractKey(...)
163
167
  local event = rawget(self, key)
164
168
  if event then
165
- invoke(event, ...)
169
+ invokeEvent(event, ...)
166
170
  end
167
171
  end)
168
172
  initialized = true
169
173
  end
170
- local event = actualCreateEvent()
174
+ local event = createEvent()
171
175
  rawset(self, id, event)
172
176
  return event
173
177
  end,
package/global/vec2.lua CHANGED
@@ -15,6 +15,7 @@ local abs = math.abs
15
15
 
16
16
  local location = Location and Location(0, 0)
17
17
  local moveLocation = MoveLocation
18
+ local getLocationZ = GetLocationZ
18
19
 
19
20
  local vec2 = {}
20
21
 
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /** @noSelfInFile */
2
2
  import "./types";
3
+ import "./patch-lua";
3
4
  import "./patch-lualib";
4
5
  import "./patch-natives";
5
6
  import "./global/math";
package/index.lua CHANGED
@@ -1,5 +1,6 @@
1
1
  local ____exports = {}
2
2
  require("types")
3
+ require("patch-lua")
3
4
  require("patch-lualib")
4
5
  require("patch-natives")
5
6
  require("global.math")