warscript 0.0.1-dev.b530e1f → 0.0.1-dev.b9f7033

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 (264) 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/binarywriter.lua +12 -0
  6. package/config.d.ts +5 -0
  7. package/config.lua +10 -0
  8. package/core/types/effect.d.ts +14 -6
  9. package/core/types/effect.lua +131 -35
  10. package/core/types/frame.d.ts +8 -1
  11. package/core/types/frame.lua +117 -22
  12. package/core/types/group.d.ts +0 -1
  13. package/core/types/handle.d.ts +2 -1
  14. package/core/types/handle.lua +5 -0
  15. package/core/types/image.d.ts +0 -1
  16. package/core/types/missile.d.ts +2 -2
  17. package/core/types/missile.lua +8 -2
  18. package/core/types/player.lua +3 -1
  19. package/core/types/playerCamera.d.ts +2 -0
  20. package/core/types/playerCamera.lua +123 -5
  21. package/core/types/sound.d.ts +17 -24
  22. package/core/types/sound.lua +99 -24
  23. package/core/types/tileCell.d.ts +9 -0
  24. package/core/types/tileCell.lua +92 -0
  25. package/core/types/timer.d.ts +8 -8
  26. package/core/types/timer.lua +39 -23
  27. package/core/types/unit.lua +8 -0
  28. package/core/util.d.ts +1 -1
  29. package/core/util.lua +18 -1
  30. package/decl/index.d.ts +1 -0
  31. package/decl/native.d.ts +846 -790
  32. package/engine/ability.d.ts +1 -1
  33. package/engine/behavior.d.ts +15 -10
  34. package/engine/behavior.lua +112 -33
  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 +32 -0
  39. package/engine/behaviour/ability/apply-unit-behavior.d.ts +13 -4
  40. package/engine/behaviour/ability/apply-unit-behavior.lua +32 -9
  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 +16 -0
  52. package/engine/behaviour/ability/remove-buffs.lua +28 -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 +27 -4
  56. package/engine/behaviour/ability.lua +152 -26
  57. package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
  58. package/engine/behaviour/unit/stun-immunity.lua +43 -27
  59. package/engine/behaviour/unit.d.ts +40 -2
  60. package/engine/behaviour/unit.lua +208 -0
  61. package/engine/buff.d.ts +104 -44
  62. package/engine/buff.lua +453 -215
  63. package/engine/game-map.d.ts +7 -0
  64. package/engine/game-map.lua +32 -0
  65. package/engine/internal/ability.d.ts +24 -15
  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 +8 -7
  70. package/engine/internal/item.lua +153 -51
  71. package/engine/internal/mechanics/ability-duration.d.ts +1 -3
  72. package/engine/internal/mechanics/ability-duration.lua +3 -1
  73. package/engine/internal/mechanics/cast-ability.d.ts +2 -0
  74. package/engine/internal/mechanics/cast-ability.lua +86 -0
  75. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  76. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  77. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  78. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  79. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  80. package/engine/internal/misc/frame-coordinates.lua +21 -0
  81. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  82. package/engine/internal/misc/get-terrain-z.lua +11 -0
  83. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  84. package/engine/internal/misc/player-local-handle.lua +5 -0
  85. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  86. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  87. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  88. package/engine/internal/object-data/evasion-probability.lua +16 -0
  89. package/engine/internal/unit/ability.d.ts +45 -1
  90. package/engine/internal/unit/ability.lua +98 -14
  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/bonus.d.ts +11 -8
  98. package/engine/internal/unit/bonus.lua +23 -1
  99. package/engine/internal/unit/detach-missiles.d.ts +7 -0
  100. package/engine/internal/unit/detach-missiles.lua +30 -0
  101. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  102. package/engine/internal/unit/ignore-events-items.lua +5 -0
  103. package/engine/internal/unit/item.d.ts +24 -0
  104. package/engine/internal/unit/item.lua +78 -0
  105. package/engine/internal/unit/main-selected.d.ts +13 -0
  106. package/engine/internal/unit/main-selected.lua +51 -0
  107. package/engine/internal/unit/order.d.ts +20 -0
  108. package/engine/internal/unit/order.lua +136 -0
  109. package/engine/internal/unit+ability.lua +12 -3
  110. package/engine/internal/unit+damage.d.ts +2 -11
  111. package/engine/internal/unit+damage.lua +10 -14
  112. package/engine/internal/unit+spellSteal.lua +1 -2
  113. package/engine/internal/unit+transport.lua +4 -10
  114. package/engine/internal/unit-missile-launch.lua +33 -7
  115. package/engine/internal/unit.d.ts +89 -24
  116. package/engine/internal/unit.lua +594 -206
  117. package/engine/internal/utility.lua +12 -0
  118. package/engine/lightning.d.ts +12 -5
  119. package/engine/lightning.lua +48 -14
  120. package/engine/local-client.d.ts +7 -2
  121. package/engine/local-client.lua +82 -0
  122. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  123. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  124. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  125. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  126. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -3
  127. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  128. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  129. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  130. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  131. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  132. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  133. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  134. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  135. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  136. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  137. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  138. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  139. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  140. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  141. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  142. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  143. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  144. package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
  145. package/engine/object-data/entry/ability-type/blink.lua +39 -0
  146. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  147. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  148. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  149. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  150. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  151. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  152. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  153. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  154. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  155. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  156. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  157. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  158. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  159. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  160. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  161. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  162. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  163. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  164. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  165. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  166. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  167. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  168. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  169. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  170. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  171. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  172. package/engine/object-data/entry/ability-type/web.lua +52 -0
  173. package/engine/object-data/entry/ability-type.d.ts +19 -18
  174. package/engine/object-data/entry/ability-type.lua +90 -36
  175. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  176. package/engine/object-data/entry/buff-type/applicable.lua +39 -102
  177. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  178. package/engine/object-data/entry/buff-type.d.ts +6 -13
  179. package/engine/object-data/entry/buff-type.lua +13 -29
  180. package/engine/object-data/entry/destructible-type.d.ts +1 -2
  181. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  182. package/engine/object-data/entry/item-type.d.ts +15 -2
  183. package/engine/object-data/entry/item-type.lua +93 -2
  184. package/engine/object-data/entry/lightning-type.d.ts +1 -2
  185. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  186. package/engine/object-data/entry/sound-preset.lua +140 -0
  187. package/engine/object-data/entry/unit-type.d.ts +61 -5
  188. package/engine/object-data/entry/unit-type.lua +511 -62
  189. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  190. package/engine/object-data/entry/upgrade.d.ts +1 -2
  191. package/engine/object-data/entry/upgrade.lua +4 -4
  192. package/engine/object-data/entry.d.ts +18 -17
  193. package/engine/object-data/entry.lua +60 -32
  194. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  195. package/engine/object-field/ability.d.ts +33 -8
  196. package/engine/object-field/ability.lua +61 -1
  197. package/engine/object-field/unit.d.ts +57 -2
  198. package/engine/object-field/unit.lua +207 -4
  199. package/engine/object-field.d.ts +17 -5
  200. package/engine/object-field.lua +201 -97
  201. package/engine/random.d.ts +10 -0
  202. package/engine/random.lua +22 -0
  203. package/engine/standard/entries/buff-type.d.ts +3 -0
  204. package/engine/standard/entries/buff-type.lua +3 -0
  205. package/engine/standard/entries/sound-preset.d.ts +10 -0
  206. package/engine/standard/entries/sound-preset.lua +10 -0
  207. package/engine/standard/entries/unit-type.d.ts +42 -1
  208. package/engine/standard/entries/unit-type.lua +42 -1
  209. package/engine/standard/fields/ability.d.ts +3 -1
  210. package/engine/standard/fields/ability.lua +3 -1
  211. package/engine/standard/fields/unit.d.ts +4 -0
  212. package/engine/standard/fields/unit.lua +7 -0
  213. package/engine/text-tag.d.ts +36 -2
  214. package/engine/text-tag.lua +249 -10
  215. package/engine/unit.d.ts +5 -0
  216. package/engine/unit.lua +14 -2
  217. package/event.d.ts +2 -3
  218. package/event.lua +9 -5
  219. package/global/vec2.lua +1 -0
  220. package/index.d.ts +1 -0
  221. package/index.lua +1 -0
  222. package/lualib_bundle.lua +146 -42
  223. package/math/vec2.d.ts +2 -9
  224. package/math.d.ts +0 -2
  225. package/net/socket.d.ts +7 -1
  226. package/net/socket.lua +45 -4
  227. package/network.d.ts +1 -0
  228. package/network.lua +3 -2
  229. package/objutil/ability.d.ts +0 -1
  230. package/objutil/buff.d.ts +0 -1
  231. package/objutil/buff.lua +2 -3
  232. package/objutil/object.d.ts +0 -1
  233. package/objutil/unit.d.ts +0 -1
  234. package/objutil/unit.lua +8 -0
  235. package/package.json +13 -14
  236. package/patch-lua.d.ts +0 -0
  237. package/patch-lua.lua +10 -0
  238. package/patch-lualib.lua +1 -1
  239. package/property.d.ts +55 -0
  240. package/property.lua +374 -0
  241. package/string.d.ts +30 -0
  242. package/string.lua +14 -0
  243. package/util/stream.d.ts +0 -1
  244. package/utility/arrays.d.ts +12 -5
  245. package/utility/arrays.lua +37 -3
  246. package/utility/bit-set.d.ts +0 -2
  247. package/utility/callback-array.d.ts +13 -0
  248. package/utility/callback-array.lua +46 -0
  249. package/utility/functions.d.ts +8 -0
  250. package/utility/functions.lua +13 -0
  251. package/utility/lazy.d.ts +2 -0
  252. package/utility/lazy.lua +14 -0
  253. package/utility/linked-set.d.ts +12 -3
  254. package/utility/linked-set.lua +8 -2
  255. package/utility/lua-maps.d.ts +16 -4
  256. package/utility/lua-maps.lua +53 -2
  257. package/utility/lua-sets.d.ts +3 -2
  258. package/utility/lua-sets.lua +7 -0
  259. package/utility/reflection.lua +11 -7
  260. package/utility/types.d.ts +3 -2
  261. package/core/mapbounds.d.ts +0 -8
  262. package/core/mapbounds.lua +0 -12
  263. package/core/types/order.d.ts +0 -25
  264. package/core/types/order.lua +0 -55
@@ -16,7 +16,7 @@ export declare const LEVEL_SKIP_REQUIREMENT_ABILITY_INTEGER_FIELD: AbilityIntege
16
16
  export declare const HERO_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
17
17
  export declare const ITEM_ABILITY_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
18
18
  export declare const CHECK_DEPENDENCIES_ABILITY_BOOLEAN_FIELD: AbilityBooleanField & symbol;
19
- export declare const ARF_MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
19
+ export declare const MISSILE_ARC_ABILITY_FLOAT_FIELD: AbilityFloatField & symbol;
20
20
  export declare const NAME_ABILITY_STRING_FIELD: AbilityStringField & symbol;
21
21
  export declare const ICON_ACTIVATED_ABILITY_STRING_FIELD: AbilityStringField & symbol;
22
22
  export declare const ICON_RESEARCH_ABILITY_STRING_FIELD: AbilityStringField & symbol;
@@ -687,6 +687,8 @@ export declare const DISABLE_OTHER_ABILITIES_ABILITY_BOOLEAN_LEVEL_FIELD: Abilit
687
687
  export declare const ALLOW_BOUNTY_ABILITY_BOOLEAN_LEVEL_FIELD: AbilityBooleanLevelField & symbol;
688
688
  export declare const ICON_NORMAL_ABILITY_STRING_LEVEL_FIELD: AbilityStringLevelField & symbol;
689
689
  export declare const CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
690
+ export declare const CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
691
+ export declare const CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
690
692
  export declare const TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD: AbilityStringArrayField & symbol;
691
693
  export declare const TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
692
694
  export declare const TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD: AbilityStringField & symbol;
@@ -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,213 @@ 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[103] = text
109
+ textTag[100] = unit
110
+ textTag[102] = configuration
111
+ ensureHandle(textTag)
112
+ unitTextTags[textTag] = true
113
+ return textTag
114
+ end
115
+ __TS__SetDescriptor(
116
+ TextTag.prototype,
117
+ "text",
118
+ {
119
+ get = function(self)
120
+ return self[103] or ""
121
+ end,
122
+ set = function(self, text)
123
+ setTextTagText(
124
+ ensureHandle(self),
125
+ text,
126
+ self[104] or DEFAULT_FONT_SIZE
127
+ )
128
+ self[103] = text
129
+ end
130
+ },
131
+ true
132
+ )
133
+ __TS__SetDescriptor(
134
+ TextTag.prototype,
135
+ "fontSize",
136
+ {
137
+ get = function(self)
138
+ return self[104] or DEFAULT_FONT_SIZE
139
+ end,
140
+ set = function(self, fontSize)
141
+ setTextTagText(
142
+ ensureHandle(self),
143
+ self[103] or "",
144
+ DEFAULT_FONT_SIZE
145
+ )
146
+ self[104] = fontSize
147
+ end
148
+ },
149
+ true
150
+ )
151
+ __TS__SetDescriptor(
152
+ TextTag.prototype,
153
+ "color",
154
+ {
155
+ get = function(self)
156
+ return self[105] or Color.white
157
+ end,
158
+ set = function(self, color)
159
+ setTextTagColor(
160
+ ensureHandle(self),
161
+ color.r,
162
+ color.g,
163
+ color.b,
164
+ color.a
165
+ )
166
+ self[105] = color
167
+ end
168
+ },
169
+ true
170
+ )
171
+ __TS__SetDescriptor(
172
+ TextTag.prototype,
173
+ "unit",
174
+ {
175
+ get = function(self)
176
+ return self[100]
177
+ end,
178
+ set = function(self, unit)
179
+ if unit ~= nil then
180
+ setTextTagPosUnit(
181
+ ensureHandle(self),
182
+ unit.handle,
183
+ 0
184
+ )
185
+ self[106] = nil
186
+ self[107] = nil
187
+ unitTextTags[self] = true
188
+ elseif self[100] ~= nil then
189
+ local unit = self[100]
190
+ local x = unit.x
191
+ local y = unit.y
192
+ setTextTagPos(
193
+ ensureHandle(self),
194
+ x,
195
+ y,
196
+ 0
197
+ )
198
+ self[106] = x
199
+ self[107] = y
200
+ unitTextTags[self] = nil
201
+ end
202
+ self[100] = unit
203
+ end
204
+ },
205
+ true
206
+ )
207
+ __TS__SetDescriptor(
208
+ TextTag.prototype,
209
+ "x",
210
+ {
211
+ get = function(self)
212
+ local ____self__106_2 = self[106]
213
+ if ____self__106_2 == nil then
214
+ local ____opt_0 = self[100]
215
+ ____self__106_2 = ____opt_0 and ____opt_0.x
216
+ end
217
+ return ____self__106_2 or 0
218
+ end,
219
+ set = function(self, x)
220
+ local ____ensureHandle_result_6 = ensureHandle(self)
221
+ local ____x_7 = x
222
+ local ____self__107_5 = self[107]
223
+ if ____self__107_5 == nil then
224
+ local ____opt_3 = self[100]
225
+ ____self__107_5 = ____opt_3 and ____opt_3.y
226
+ end
227
+ setTextTagPos(____ensureHandle_result_6, ____x_7, ____self__107_5 or 0, 0)
228
+ self[106] = x
229
+ self[100] = nil
230
+ unitTextTags[self] = nil
231
+ end
232
+ },
233
+ true
234
+ )
235
+ __TS__SetDescriptor(
236
+ TextTag.prototype,
237
+ "y",
238
+ {
239
+ get = function(self)
240
+ local ____self__107_10 = self[107]
241
+ if ____self__107_10 == nil then
242
+ local ____opt_8 = self[100]
243
+ ____self__107_10 = ____opt_8 and ____opt_8.y
244
+ end
245
+ return ____self__107_10 or 0
246
+ end,
247
+ set = function(self, y)
248
+ local ____ensureHandle_result_14 = ensureHandle(self)
249
+ local ____self__106_13 = self[106]
250
+ if ____self__106_13 == nil then
251
+ local ____opt_11 = self[100]
252
+ ____self__106_13 = ____opt_11 and ____opt_11.x
253
+ end
254
+ setTextTagPos(____ensureHandle_result_14, ____self__106_13 or 0, y, 0)
255
+ self[107] = y
256
+ self[100] = nil
257
+ unitTextTags[self] = nil
258
+ end
259
+ },
260
+ true
261
+ )
45
262
  TextTag.BASE = {
46
263
  fadepoint = 2,
47
264
  lifespan = 3,
@@ -106,4 +323,26 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
106
323
  lifespan = 5
107
324
  }
108
325
  )
326
+ Timer.onPeriod[1 / 64]:addListener(function()
327
+ for textTag in pairs(unitTextTags) do
328
+ local unit = textTag[100].handle
329
+ local x = getUnitX(unit)
330
+ local y = getUnitY(unit)
331
+ local ____, ____, isInView = worldCoordinatesToFrame(
332
+ x,
333
+ y,
334
+ getUnitFlyHeight(unit) + getTerrainZ(x, y)
335
+ )
336
+ if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) then
337
+ setTextTagPosUnit(
338
+ ensureHandle(textTag),
339
+ unit,
340
+ textTag[102].offsetZ
341
+ )
342
+ elseif textTag[101] ~= nil then
343
+ destroyTextTag(textTag[101])
344
+ textTag[101] = nil
345
+ end
346
+ end
347
+ end)
109
348
  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")