warscript 0.0.1-dev.a5f2d10 → 0.0.1-dev.a856ae3

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 (233) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.lua +71 -22
  8. package/core/types/item.d.ts +1 -0
  9. package/core/types/item.lua +1 -0
  10. package/core/types/player.d.ts +16 -0
  11. package/core/types/player.lua +60 -15
  12. package/core/types/playerCamera.d.ts +2 -0
  13. package/core/types/playerCamera.lua +123 -5
  14. package/core/types/sound.d.ts +17 -24
  15. package/core/types/sound.lua +100 -25
  16. package/core/types/tileCell.d.ts +11 -1
  17. package/core/types/tileCell.lua +97 -0
  18. package/core/types/timer.d.ts +9 -8
  19. package/core/types/timer.lua +45 -23
  20. package/core/util.lua +6 -1
  21. package/decl/native.d.ts +846 -790
  22. package/destroyable.d.ts +1 -0
  23. package/destroyable.lua +9 -0
  24. package/engine/behavior.d.ts +14 -1
  25. package/engine/behavior.lua +230 -70
  26. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  27. package/engine/behaviour/ability/apply-buff.lua +36 -4
  28. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  29. package/engine/behaviour/ability/damage.d.ts +12 -3
  30. package/engine/behaviour/ability/damage.lua +33 -39
  31. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  32. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  33. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  34. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  35. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  36. package/engine/behaviour/ability/restore-mana.lua +6 -6
  37. package/engine/behaviour/ability.d.ts +15 -6
  38. package/engine/behaviour/ability.lua +56 -21
  39. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  40. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  41. package/engine/behaviour/unit.d.ts +40 -2
  42. package/engine/behaviour/unit.lua +269 -6
  43. package/engine/buff.d.ts +110 -53
  44. package/engine/buff.lua +529 -288
  45. package/engine/internal/ability.d.ts +7 -1
  46. package/engine/internal/ability.lua +49 -9
  47. package/engine/internal/item/ability.lua +63 -11
  48. package/engine/internal/item/fields.d.ts +12 -0
  49. package/engine/internal/item/fields.lua +33 -0
  50. package/engine/internal/item+owner.lua +12 -6
  51. package/engine/internal/item.d.ts +16 -19
  52. package/engine/internal/item.lua +174 -94
  53. package/engine/internal/mechanics/ability-duration.lua +1 -1
  54. package/engine/internal/mechanics/cast-ability.lua +6 -3
  55. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  56. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  57. package/engine/internal/misc/frame-coordinates.lua +21 -0
  58. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  59. package/engine/internal/misc/get-terrain-z.lua +11 -0
  60. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  61. package/engine/internal/misc/player-local-handle.lua +5 -0
  62. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  63. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  64. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  65. package/engine/internal/object-data/health-bonus.lua +16 -0
  66. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  67. package/engine/internal/object-data/mana-bonus.lua +16 -0
  68. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  69. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  70. package/engine/internal/unit/ability.d.ts +35 -0
  71. package/engine/internal/unit/ability.lua +98 -9
  72. package/engine/internal/unit/add-item-to-slot.lua +4 -2
  73. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  74. package/engine/internal/unit/allowed-targets.lua +9 -1
  75. package/engine/internal/unit/attributes.d.ts +17 -0
  76. package/engine/internal/unit/attributes.lua +46 -0
  77. package/engine/internal/unit/bonus.d.ts +6 -0
  78. package/engine/internal/unit/bonus.lua +33 -3
  79. package/engine/internal/unit/fly-height.d.ts +7 -0
  80. package/engine/internal/unit/fly-height.lua +20 -0
  81. package/engine/internal/unit/interrupts.d.ts +12 -0
  82. package/engine/internal/unit/interrupts.lua +28 -0
  83. package/engine/internal/unit/main-selected.lua +12 -27
  84. package/engine/internal/unit/order.d.ts +20 -0
  85. package/engine/internal/unit/order.lua +136 -0
  86. package/engine/internal/unit/range-event.d.ts +12 -0
  87. package/engine/internal/unit/range-event.lua +90 -0
  88. package/engine/internal/unit/scale.d.ts +7 -0
  89. package/engine/internal/unit/scale.lua +20 -0
  90. package/engine/internal/unit+ability.lua +10 -1
  91. package/engine/internal/unit+bonus.lua +3 -3
  92. package/engine/internal/unit+damage.d.ts +2 -11
  93. package/engine/internal/unit+damage.lua +10 -14
  94. package/engine/internal/unit+spellSteal.lua +1 -2
  95. package/engine/internal/unit-missile-launch.lua +52 -14
  96. package/engine/internal/unit.d.ts +43 -25
  97. package/engine/internal/unit.lua +384 -260
  98. package/engine/lightning.d.ts +4 -3
  99. package/engine/lightning.lua +21 -12
  100. package/engine/local-client.d.ts +7 -0
  101. package/engine/local-client.lua +86 -1
  102. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  103. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  104. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  105. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  106. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  107. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  108. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  109. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  110. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  111. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  112. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  113. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  114. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  115. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  116. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  117. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  118. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  119. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  120. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  121. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  122. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  123. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  124. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  125. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  126. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  127. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  128. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  129. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  130. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  131. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  132. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  133. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  134. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  135. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  136. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  137. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  138. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  139. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  140. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  141. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  142. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  143. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  144. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  145. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  146. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  147. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  148. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  149. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  150. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  151. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  152. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  153. package/engine/object-data/entry/ability-type/web.lua +52 -0
  154. package/engine/object-data/entry/ability-type.d.ts +21 -17
  155. package/engine/object-data/entry/ability-type.lua +169 -28
  156. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  157. package/engine/object-data/entry/buff-type.d.ts +6 -12
  158. package/engine/object-data/entry/buff-type.lua +13 -29
  159. package/engine/object-data/entry/destructible-type.d.ts +28 -2
  160. package/engine/object-data/entry/destructible-type.lua +155 -0
  161. package/engine/object-data/entry/item-type.d.ts +1 -1
  162. package/engine/object-data/entry/item-type.lua +4 -4
  163. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  164. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  165. package/engine/object-data/entry/sound-preset.lua +140 -0
  166. package/engine/object-data/entry/unit-type.d.ts +25 -5
  167. package/engine/object-data/entry/unit-type.lua +258 -93
  168. package/engine/object-data/entry/upgrade.d.ts +1 -1
  169. package/engine/object-data/entry/upgrade.lua +4 -4
  170. package/engine/object-data/entry.d.ts +16 -14
  171. package/engine/object-data/entry.lua +60 -32
  172. package/engine/object-field/ability.d.ts +4 -4
  173. package/engine/object-field/ability.lua +9 -8
  174. package/engine/object-field/item.d.ts +22 -0
  175. package/engine/object-field/item.lua +118 -0
  176. package/engine/object-field/unit.d.ts +72 -3
  177. package/engine/object-field/unit.lua +268 -7
  178. package/engine/object-field.d.ts +26 -7
  179. package/engine/object-field.lua +360 -119
  180. package/engine/random.d.ts +10 -0
  181. package/engine/random.lua +21 -0
  182. package/engine/standard/entries/buff-type.d.ts +3 -0
  183. package/engine/standard/entries/buff-type.lua +3 -0
  184. package/engine/standard/entries/sound-preset.d.ts +10 -0
  185. package/engine/standard/entries/sound-preset.lua +10 -0
  186. package/engine/standard/fields/ability.d.ts +2 -2
  187. package/engine/standard/fields/ability.lua +2 -2
  188. package/engine/standard/fields/item.d.ts +4 -0
  189. package/engine/standard/fields/item.lua +6 -0
  190. package/engine/standard/fields/unit.d.ts +12 -0
  191. package/engine/standard/fields/unit.lua +20 -0
  192. package/engine/synchronization.d.ts +11 -0
  193. package/engine/synchronization.lua +77 -0
  194. package/engine/text-tag.d.ts +36 -2
  195. package/engine/text-tag.lua +250 -10
  196. package/engine/unit.d.ts +6 -0
  197. package/engine/unit.lua +6 -0
  198. package/lualib_bundle.lua +1 -1
  199. package/math.d.ts +2 -0
  200. package/math.lua +14 -0
  201. package/net/socket.lua +1 -1
  202. package/objutil/buff.lua +11 -10
  203. package/objutil/object.lua +1 -1
  204. package/objutil/unit.lua +8 -0
  205. package/operation.lua +1 -4
  206. package/package.json +5 -5
  207. package/patch-lua.lua +15 -0
  208. package/patch-lualib.lua +1 -1
  209. package/utility/arrays.d.ts +2 -0
  210. package/utility/arrays.lua +11 -0
  211. package/utility/callback-array.d.ts +17 -0
  212. package/utility/callback-array.lua +61 -0
  213. package/utility/functions.d.ts +8 -0
  214. package/utility/functions.lua +13 -0
  215. package/utility/linked-map.d.ts +35 -0
  216. package/utility/linked-map.lua +107 -0
  217. package/utility/linked-set.d.ts +5 -1
  218. package/utility/linked-set.lua +49 -1
  219. package/utility/lua-maps.d.ts +15 -2
  220. package/utility/lua-maps.lua +53 -2
  221. package/utility/lua-sets.d.ts +2 -0
  222. package/utility/lua-sets.lua +7 -0
  223. package/utility/records.lua +20 -1
  224. package/utility/reflection.lua +11 -7
  225. package/utility/types.d.ts +3 -0
  226. package/utility/unordered-map.d.ts +27 -0
  227. package/utility/unordered-map.lua +99 -0
  228. package/core/types/order.d.ts +0 -25
  229. package/core/types/order.lua +0 -55
  230. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  231. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  232. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  233. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,7 +1,7 @@
1
1
  /** @noSelfInFile */
2
2
  import { LightningTypeId } from "./object-data/entry/lightning-type";
3
- import { Handle, HandleDestructor } from "../core/types/handle";
4
3
  import { Unit } from "../core/types/unit";
4
+ import { AbstractDestroyable, Destructor } from "../destroyable";
5
5
  declare const enum LightningPropertyKey {
6
6
  CHECK_VISIBILITY = 100,
7
7
  SOURCE_UNIT = 101,
@@ -16,7 +16,8 @@ declare const enum LightningPropertyKey {
16
16
  FADING = 110
17
17
  }
18
18
  export type LightningConstructor<T extends Lightning> = typeof Lightning & (new (handle: jlightning, typeId: LightningTypeId) => T);
19
- export declare class Lightning extends Handle<jlightning> {
19
+ export declare class Lightning extends AbstractDestroyable {
20
+ readonly handle: jlightning;
20
21
  readonly typeId: LightningTypeId;
21
22
  private [LightningPropertyKey.CHECK_VISIBILITY]?;
22
23
  private [LightningPropertyKey.SOURCE_UNIT]?;
@@ -30,7 +31,7 @@ export declare class Lightning extends Handle<jlightning> {
30
31
  private [LightningPropertyKey.DURATION]?;
31
32
  private [LightningPropertyKey.FADING]?;
32
33
  constructor(handle: jlightning, typeId: LightningTypeId);
33
- protected onDestroy(): HandleDestructor;
34
+ protected onDestroy(): Destructor;
34
35
  static create<T extends Lightning>(this: LightningConstructor<T>, typeId: LightningTypeId, ...parameters: [
35
36
  ...checkVisibility: [boolean] | [],
36
37
  ...sourceAndTarget: [sourceX: number, sourceY: number, targetX: number, targetY: number] | [
@@ -1,15 +1,16 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__Class = ____lualib.__TS__Class
3
3
  local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__New = ____lualib.__TS__New
4
5
  local ____exports = {}
5
- local ____handle = require("core.types.handle")
6
- local Handle = ____handle.Handle
7
6
  local ____timer = require("core.types.timer")
8
7
  local Timer = ____timer.Timer
9
8
  local ____functions = require("utility.functions")
10
9
  local forwardByN = ____functions.forwardByN
11
10
  local ____unit_2Dmissile_2Ddata = require("engine.internal.unit-missile-data")
12
11
  local MISSILE_DATA_BY_UNIT_TYPE_ID = ____unit_2Dmissile_2Ddata.MISSILE_DATA_BY_UNIT_TYPE_ID
12
+ local ____destroyable = require("destroyable")
13
+ local AbstractDestroyable = ____destroyable.AbstractDestroyable
13
14
  local ____type = _G.type
14
15
  local select = _G.select
15
16
  local cos = math.cos
@@ -41,9 +42,10 @@ local temporaryLightningsCount = 0
41
42
  ____exports.Lightning = __TS__Class()
42
43
  local Lightning = ____exports.Lightning
43
44
  Lightning.name = "Lightning"
44
- __TS__ClassExtends(Lightning, Handle)
45
+ __TS__ClassExtends(Lightning, AbstractDestroyable)
45
46
  function Lightning.prototype.____constructor(self, handle, typeId)
46
- Handle.prototype.____constructor(self, handle)
47
+ AbstractDestroyable.prototype.____constructor(self)
48
+ self.handle = handle
47
49
  self.typeId = typeId
48
50
  end
49
51
  function Lightning.prototype.onDestroy(self)
@@ -51,7 +53,7 @@ function Lightning.prototype.onDestroy(self)
51
53
  unitToPointLightnings[self] = nil
52
54
  pointToUnitLightnings[self] = nil
53
55
  destroyLightning(self.handle)
54
- return Handle.prototype.onDestroy(self)
56
+ return AbstractDestroyable.prototype.onDestroy(self)
55
57
  end
56
58
  function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, sourceYOrTargetXOrTargetUnit, sourceZOrTargetXOrTargetUnitOrTargetY, targetXOrTargetUnitOrTargetYOrTargetZ, targetY, targetZ)
57
59
  if type(checkVisibility) ~= "boolean" then
@@ -67,7 +69,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
67
69
  )
68
70
  end
69
71
  if targetZ ~= nil then
70
- return self:of(
72
+ return __TS__New(
73
+ self,
71
74
  addLightningEx(
72
75
  util.id2s(typeId),
73
76
  checkVisibility,
@@ -84,7 +87,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
84
87
  if targetXOrTargetUnitOrTargetYOrTargetZ ~= nil then
85
88
  if ____type(targetXOrTargetUnitOrTargetYOrTargetZ) == "number" then
86
89
  if ____type(sourceXOrSourceUnit) == "number" then
87
- return self:of(
90
+ return __TS__New(
91
+ self,
88
92
  addLightning(
89
93
  util.id2s(typeId),
90
94
  checkVisibility,
@@ -97,7 +101,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
97
101
  )
98
102
  end
99
103
  local unit = sourceXOrSourceUnit.handle
100
- local lightning = self:of(
104
+ local lightning = __TS__New(
105
+ self,
101
106
  addLightningEx(
102
107
  util.id2s(typeId),
103
108
  checkVisibility,
@@ -122,7 +127,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
122
127
  return lightning
123
128
  end
124
129
  local unit = targetXOrTargetUnitOrTargetYOrTargetZ.handle
125
- local lightning = self:of(
130
+ local lightning = __TS__New(
131
+ self,
126
132
  addLightningEx(
127
133
  util.id2s(typeId),
128
134
  checkVisibility,
@@ -151,7 +157,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
151
157
  local unit = sourceXOrSourceUnit.handle
152
158
  moveLocation(location, sourceYOrTargetXOrTargetUnit, sourceZOrTargetXOrTargetUnitOrTargetY)
153
159
  local z = getLocationZ(location)
154
- local lightning = self:of(
160
+ local lightning = __TS__New(
161
+ self,
155
162
  addLightningEx(
156
163
  util.id2s(typeId),
157
164
  checkVisibility,
@@ -178,7 +185,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
178
185
  local unit = sourceZOrTargetXOrTargetUnitOrTargetY.handle
179
186
  moveLocation(location, sourceXOrSourceUnit, sourceYOrTargetXOrTargetUnit)
180
187
  local z = getLocationZ(location)
181
- local lightning = self:of(
188
+ local lightning = __TS__New(
189
+ self,
182
190
  addLightningEx(
183
191
  util.id2s(typeId),
184
192
  checkVisibility,
@@ -204,7 +212,8 @@ function Lightning.create(self, typeId, checkVisibility, sourceXOrSourceUnit, so
204
212
  end
205
213
  local sourceUnit = sourceXOrSourceUnit.handle
206
214
  local targetUnit = sourceYOrTargetXOrTargetUnit.handle
207
- local lightning = self:of(
215
+ local lightning = __TS__New(
216
+ self,
208
217
  addLightningEx(
209
218
  util.id2s(typeId),
210
219
  checkVisibility,
@@ -3,6 +3,7 @@ import { Unit } from "../core/types/unit";
3
3
  import { Async } from "../core/types/async";
4
4
  import { Event, TriggerEvent } from "../event";
5
5
  import { GraphicsMode } from "./index";
6
+ import { Color } from "../core/types/color";
6
7
  export declare class LocalClient {
7
8
  private constructor();
8
9
  static readonly locale: string;
@@ -11,11 +12,17 @@ export declare class LocalClient {
11
12
  static get isHD(): boolean;
12
13
  static get graphicsMode(): GraphicsMode;
13
14
  static get isActive(): boolean;
15
+ static get isMinimized(): boolean;
16
+ static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, flashy?: boolean] | [color: Color, flashy?: boolean]): void;
14
17
  static get mouseFocusUnit(): Async<Unit> | undefined;
15
18
  static get mainSelectedUnit(): Async<Unit> | undefined;
16
19
  static get mainSelectedUnitChangeEvent(): Event<[
17
20
  previousMainSelectedUnit: Unit | undefined,
18
21
  newMainSelectedUnit: Unit | undefined
19
22
  ]>;
23
+ static get isInTargetingMode(): boolean;
24
+ static readonly targetingModeEnterEvent: Event<[]>;
25
+ static readonly targetingModeLeaveEvent: Event<[]>;
26
+ static readonly targetingModeStateChangeEvent: Event<[]>;
20
27
  static readonly onDisconnect: TriggerEvent<[]>;
21
28
  }
@@ -1,9 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__ArrayMap = ____lualib.__TS__ArrayMap
3
+ local __TS__New = ____lualib.__TS__New
3
4
  local __TS__Class = ____lualib.__TS__Class
5
+ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
4
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
5
- local __TS__New = ____lualib.__TS__New
6
7
  local ____exports = {}
8
+ local actualizeTargetingModeState
7
9
  local ____unit = require("core.types.unit")
8
10
  local Unit = ____unit.Unit
9
11
  local ____event = require("event")
@@ -15,6 +17,10 @@ local ____player = require("core.types.player")
15
17
  local Player = ____player.Player
16
18
  local ____timer = require("core.types.timer")
17
19
  local Timer = ____timer.Timer
20
+ local ____color = require("core.types.color")
21
+ local Color = ____color.Color
22
+ local ____arrays = require("utility.arrays")
23
+ local array = ____arrays.array
18
24
  local loadTOCFile = BlzLoadTOCFile
19
25
  local getLocalClientWidth = BlzGetLocalClientWidth
20
26
  local getLocalClientHeight = BlzGetLocalClientHeight
@@ -25,6 +31,8 @@ local getMouseFocusUnit = BlzGetMouseFocusUnit
25
31
  local getUnitRealField = BlzGetUnitRealField
26
32
  local getUnitTypeId = GetUnitTypeId
27
33
  local getLocale = BlzGetLocale
34
+ local pingMinimap = PingMinimap
35
+ local pingMinimapEx = PingMinimapEx
28
36
  local tableSort = table.sort
29
37
  local tocPath = "_warscript\\IsHD.toc"
30
38
  compiletime(function()
@@ -57,11 +65,40 @@ local function compareUnitsSelectionPriority(a, b)
57
65
  end
58
66
  local mainSelectedUnitChangeEvent
59
67
  local previousMainSelectedUnit
68
+ local lastTargetingModeState = false
69
+ local targetingModeEnterEvent = __TS__New(Event)
70
+ local targetingModeLeaveEvent = __TS__New(Event)
71
+ local targetingModeStateChangeEvent = __TS__New(Event)
60
72
  ____exports.LocalClient = __TS__Class()
61
73
  local LocalClient = ____exports.LocalClient
62
74
  LocalClient.name = "LocalClient"
63
75
  function LocalClient.prototype.____constructor(self)
64
76
  end
77
+ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
78
+ if redOrColor == nil then
79
+ pingMinimap(x, y, duration)
80
+ elseif __TS__InstanceOf(redOrColor, Color) then
81
+ pingMinimapEx(
82
+ x,
83
+ y,
84
+ duration,
85
+ redOrColor.r,
86
+ redOrColor.g,
87
+ redOrColor.b,
88
+ greenOrFlashy or false
89
+ )
90
+ else
91
+ pingMinimapEx(
92
+ x,
93
+ y,
94
+ duration,
95
+ redOrColor,
96
+ greenOrFlashy,
97
+ blue,
98
+ flashy or false
99
+ )
100
+ end
101
+ end
65
102
  LocalClient.locale = getLocale()
66
103
  __TS__ObjectDefineProperty(
67
104
  LocalClient,
@@ -98,6 +135,13 @@ __TS__ObjectDefineProperty(
98
135
  return isLocalClientActive()
99
136
  end}
100
137
  )
138
+ __TS__ObjectDefineProperty(
139
+ LocalClient,
140
+ "isMinimized",
141
+ {get = function(self)
142
+ return getLocalClientHeight() == 0
143
+ end}
144
+ )
101
145
  __TS__ObjectDefineProperty(
102
146
  LocalClient,
103
147
  "mouseFocusUnit",
@@ -151,6 +195,16 @@ __TS__ObjectDefineProperty(
151
195
  return mainSelectedUnitChangeEvent
152
196
  end}
153
197
  )
198
+ __TS__ObjectDefineProperty(
199
+ LocalClient,
200
+ "isInTargetingMode",
201
+ {get = function(self)
202
+ return actualizeTargetingModeState()
203
+ end}
204
+ )
205
+ LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
206
+ LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
207
+ LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
154
208
  LocalClient.onDisconnect = __TS__New(
155
209
  TriggerEvent,
156
210
  function(trigger)
@@ -158,6 +212,37 @@ LocalClient.onDisconnect = __TS__New(
158
212
  end,
159
213
  function() return end
160
214
  )
215
+ local commandButtons = array(
216
+ 12,
217
+ function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
218
+ )
219
+ local function getTargetingModeState()
220
+ for i = 0, 10 do
221
+ if commandButtons[i + 1].visible then
222
+ return false
223
+ end
224
+ end
225
+ return commandButtons[12].visible
226
+ end
227
+ actualizeTargetingModeState = function()
228
+ if getTargetingModeState() then
229
+ if not lastTargetingModeState then
230
+ lastTargetingModeState = true
231
+ Event.invoke(targetingModeEnterEvent)
232
+ Event.invoke(targetingModeStateChangeEvent)
233
+ end
234
+ return true
235
+ end
236
+ if lastTargetingModeState then
237
+ lastTargetingModeState = false
238
+ Event.invoke(targetingModeLeaveEvent)
239
+ Event.invoke(targetingModeStateChangeEvent)
240
+ end
241
+ return false
242
+ end
243
+ Timer.onPeriod[1 / 64]:addListener(function()
244
+ actualizeTargetingModeState()
245
+ end)
161
246
  warpack.afterMapInit(function()
162
247
  rawset(
163
248
  ____exports.LocalClient,
@@ -12,3 +12,4 @@ export declare const enum AnimationName {
12
12
  STAND = "stand",
13
13
  WALK = "walk"
14
14
  }
15
+ export declare const isAnimationName: (value: string) => value is AnimationName;
@@ -1,2 +1,18 @@
1
1
  local ____exports = {}
2
+ local animationNames = {
3
+ attack = true,
4
+ birth = true,
5
+ death = true,
6
+ decay = true,
7
+ dissipate = true,
8
+ morph = true,
9
+ portrait = true,
10
+ sleep = true,
11
+ spell = true,
12
+ stand = true,
13
+ walk = true
14
+ }
15
+ ____exports.isAnimationName = function(value)
16
+ return animationNames[value] ~= nil
17
+ end
2
18
  return ____exports
@@ -0,0 +1,11 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum ArmorType {
3
+ LIGHT = 0,
4
+ MEDIUM = 1,
5
+ HEAVY = 2,
6
+ FORTIFIED = 3,
7
+ NORMAL = 4,
8
+ HERO = 5,
9
+ DIVINE = 6,
10
+ UNARMORED = 7
11
+ }
@@ -0,0 +1,46 @@
1
+ local ____exports = {}
2
+ local ____records = require("utility.records")
3
+ local invertRecord = ____records.invertRecord
4
+ local stringByArmorType = {
5
+ [0] = "small",
6
+ [1] = "medium",
7
+ [2] = "large",
8
+ [3] = "fort",
9
+ [4] = "normal",
10
+ [5] = "hero",
11
+ [6] = "divine",
12
+ [7] = "none"
13
+ }
14
+ local armorTypeByString = invertRecord(stringByArmorType)
15
+ local nativeByArmorType = {
16
+ [0] = DEFENSE_TYPE_LIGHT,
17
+ [1] = DEFENSE_TYPE_MEDIUM,
18
+ [2] = DEFENSE_TYPE_LARGE,
19
+ [3] = DEFENSE_TYPE_FORT,
20
+ [4] = DEFENSE_TYPE_NORMAL,
21
+ [5] = DEFENSE_TYPE_HERO,
22
+ [6] = DEFENSE_TYPE_DIVINE,
23
+ [7] = DEFENSE_TYPE_NONE
24
+ }
25
+ local armorTypeByNative = invertRecord(nativeByArmorType)
26
+ ---
27
+ -- @internal For use by internal systems only.
28
+ ____exports.armorTypeToString = function(armorType)
29
+ return stringByArmorType[armorType]
30
+ end
31
+ ---
32
+ -- @internal For use by internal systems only.
33
+ ____exports.stringToArmorType = function(____string)
34
+ return armorTypeByString[____string] or 7
35
+ end
36
+ ---
37
+ -- @internal For use by internal systems only.
38
+ ____exports.armorTypeToNative = function(armorType)
39
+ return nativeByArmorType[armorType]
40
+ end
41
+ ---
42
+ -- @internal For use by internal systems only.
43
+ ____exports.nativeToArmorType = function(armorType)
44
+ return armorTypeByNative[armorType]
45
+ end
46
+ return ____exports
@@ -2,13 +2,18 @@
2
2
  import { ModelNodeName } from "./model-node-name";
3
3
  import { ModelNodeQualifier } from "./model-node-qualifier";
4
4
  import { Optional } from "../../../utility/types";
5
+ import { EffectParameters } from "../../../core/types/effect";
5
6
  export type AttachmentPreset = {
6
7
  modelPath: string;
7
8
  nodeName: ModelNodeName;
8
9
  nodeQualifiers: ModelNodeQualifier[];
9
10
  };
10
- export type AttachmentPresetInput = Optional<AttachmentPreset, "nodeQualifiers"> | string;
11
- export declare const toAttachmentPreset: (attachmentPresetInput: AttachmentPresetInput) => AttachmentPreset;
11
+ export type EffectPresetWithParameters = AttachmentPreset & {
12
+ parameters?: EffectParameters;
13
+ };
14
+ export type AttachmentPresetInput<T extends AttachmentPreset = AttachmentPreset> = Optional<T, "nodeName" | "nodeQualifiers"> | string;
15
+ export type EffectPresetWithParametersInput = AttachmentPresetInput<EffectPresetWithParameters>;
16
+ export declare const toEffectPreset: (effectPresetInput: EffectPresetWithParametersInput) => EffectPresetWithParameters;
12
17
  export declare const extractAttachmentPresetInputModelPath: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
13
18
  export declare const extractAttachmentPresetInputNodeFQN: (attachmentPresetInput: AttachmentPresetInput | undefined) => string;
14
19
  export declare const splitAttachmentNodeFQN: (attachmentNodeFQN: string) => LuaMultiReturn<[attachmentNodeName: ModelNodeName, attachmentNodeQualifiers: ModelNodeQualifier[]]>;
@@ -1,9 +1,10 @@
1
1
  local ____lualib = require("lualib_bundle")
2
+ local __TS__ArrayJoin = ____lualib.__TS__ArrayJoin
2
3
  local __TS__StringSplit = ____lualib.__TS__StringSplit
3
4
  local __TS__ArraySlice = ____lualib.__TS__ArraySlice
4
5
  local ____exports = {}
5
- ____exports.toAttachmentPreset = function(attachmentPresetInput)
6
- return type(attachmentPresetInput) == "string" and ({modelPath = attachmentPresetInput, nodeName = "origin", nodeQualifiers = {}}) or ({modelPath = attachmentPresetInput.modelPath, nodeName = attachmentPresetInput.nodeName, nodeQualifiers = attachmentPresetInput.nodeQualifiers or ({})})
6
+ ____exports.toEffectPreset = function(effectPresetInput)
7
+ return type(effectPresetInput) == "string" and ({modelPath = effectPresetInput, nodeName = "origin", nodeQualifiers = {}}) or ({modelPath = effectPresetInput.modelPath, nodeName = effectPresetInput.nodeName or "origin", nodeQualifiers = effectPresetInput.nodeQualifiers or ({}), parameters = effectPresetInput.parameters})
7
8
  end
8
9
  ____exports.extractAttachmentPresetInputModelPath = function(attachmentPresetInput)
9
10
  return type(attachmentPresetInput) == "string" and attachmentPresetInput or (attachmentPresetInput and attachmentPresetInput.modelPath or "")
@@ -12,7 +13,7 @@ ____exports.extractAttachmentPresetInputNodeFQN = function(attachmentPresetInput
12
13
  if type(attachmentPresetInput) == "string" or attachmentPresetInput == nil then
13
14
  return ""
14
15
  end
15
- return table.concat(
16
+ return __TS__ArrayJoin(
16
17
  {
17
18
  attachmentPresetInput.nodeName,
18
19
  table.unpack(attachmentPresetInput.nodeQualifiers or ({}))
@@ -1,11 +1,10 @@
1
1
  /** @noSelfInFile */
2
2
  export declare const enum AttackType {
3
- NONE = "unknown",
4
- NORMAL = "normal",
5
- PIERCE = "pierce",
6
- SIEGE = "siege",
7
- SPELL = "spells",
8
- CHAOS = "chaos",
9
- MAGIC = "magic",
10
- HERO = "hero"
3
+ SPELL = 0,
4
+ NORMAL = 1,
5
+ PIERCE = 2,
6
+ SIEGE = 3,
7
+ MAGIC = 4,
8
+ CHAOS = 5,
9
+ HERO = 6
11
10
  }
@@ -1,2 +1,44 @@
1
1
  local ____exports = {}
2
+ local ____records = require("utility.records")
3
+ local invertRecord = ____records.invertRecord
4
+ local stringByAttackType = {
5
+ [1] = "normal",
6
+ [2] = "pierce",
7
+ [3] = "siege",
8
+ [0] = "spells",
9
+ [5] = "chaos",
10
+ [4] = "magic",
11
+ [6] = "hero"
12
+ }
13
+ local attackTypeByString = invertRecord(stringByAttackType)
14
+ local nativeByAttackType = {
15
+ [1] = ATTACK_TYPE_MELEE,
16
+ [2] = ATTACK_TYPE_PIERCE,
17
+ [3] = ATTACK_TYPE_SIEGE,
18
+ [0] = ATTACK_TYPE_NORMAL,
19
+ [5] = ATTACK_TYPE_CHAOS,
20
+ [4] = ATTACK_TYPE_MAGIC,
21
+ [6] = ATTACK_TYPE_HERO
22
+ }
23
+ local attackTypeByNative = invertRecord(nativeByAttackType)
24
+ ---
25
+ -- @internal For use by internal systems only.
26
+ ____exports.attackTypeToString = function(attackType)
27
+ return attackType ~= nil and stringByAttackType[attackType] or "unknown"
28
+ end
29
+ ---
30
+ -- @internal For use by internal systems only.
31
+ ____exports.stringToAttackType = function(____string)
32
+ return attackTypeByString[____string]
33
+ end
34
+ ---
35
+ -- @internal For use by internal systems only.
36
+ ____exports.attackTypeToNative = function(attackType)
37
+ return nativeByAttackType[attackType]
38
+ end
39
+ ---
40
+ -- @internal For use by internal systems only.
41
+ ____exports.nativeToAttackType = function(attackType)
42
+ return attackTypeByNative[attackType]
43
+ end
2
44
  return ____exports
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum HealthRegenerationType {
3
+ NONE = 0,
4
+ ALWAYS = 1,
5
+ BLIGHT = 2,
6
+ DAY = 3,
7
+ NIGHT = 4
8
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -1,10 +1,10 @@
1
1
  /** @noSelfInFile */
2
2
  export declare const enum MovementType {
3
- NONE = "",
4
- FLOAT = "float",
5
- FLY = "fly",
6
- FOOT = "foot",
7
- HORSE = "horse",
8
- HOVER = "hover",
9
- AMPHIBIOUS = "amph"
3
+ NONE = 0,
4
+ FOOT = 1,
5
+ FLY = 2,
6
+ HORSE = 4,
7
+ HOVER = 8,
8
+ FLOAT = 16,
9
+ AMPHIBIOUS = 32
10
10
  }
@@ -1,2 +1,24 @@
1
1
  local ____exports = {}
2
+ local ____records = require("utility.records")
3
+ local invertRecord = ____records.invertRecord
4
+ local stringByMovementType = {
5
+ [0] = "",
6
+ [16] = "float",
7
+ [2] = "fly",
8
+ [1] = "foot",
9
+ [4] = "horse",
10
+ [8] = "hover",
11
+ [32] = "amph"
12
+ }
13
+ local movementTypeByString = invertRecord(stringByMovementType)
14
+ ---
15
+ -- @internal For use by internal systems only.
16
+ ____exports.movementTypeToString = function(movementType)
17
+ return stringByMovementType[movementType]
18
+ end
19
+ ---
20
+ -- @internal For use by internal systems only.
21
+ ____exports.stringToMovementType = function(____string)
22
+ return movementTypeByString[____string] or 0
23
+ end
2
24
  return ____exports
@@ -0,0 +1,10 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum SoundEax {
3
+ DEFAULT = "DefaultEAXON",
4
+ ACKNOWLEDGEMENTS = "HeroAcksEAX",
5
+ ENVIRONMENT = "DoodadsEAX",
6
+ DRUMS = "KotoDrumsEAX",
7
+ ATTACKS = "CombatSoundsEAX",
8
+ ABILITIES = "SpellsEAX",
9
+ MISSILES = "MissilesEAX"
10
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -12,5 +12,5 @@ export type TechTreeDependency = {
12
12
  level: number;
13
13
  };
14
14
  export type TechTreeDependencyInput = TechTreeDependency | UnitTypeId | UpgradeId;
15
- export declare const extractTechTreeDependencyInputObjectDataEntryId: (techTreeDependencyInput: TechTreeDependencyInput) => ObjectDataEntryId;
15
+ export declare const extractTechTreeDependencyInputObjectDataEntryId: (techTreeDependencyInput: TechTreeDependencyInput) => ObjectDataEntryId & number;
16
16
  export declare const extractTechTreeDependencyInputLevel: (techTreeDependencyInput: TechTreeDependencyInput) => number;
@@ -0,0 +1,6 @@
1
+ /** @noSelfInFile */
2
+ export declare enum UnitAttribute {
3
+ STRENGTH = 1,
4
+ INTELLIGENCE = 2,
5
+ AGILITY = 3
6
+ }
@@ -0,0 +1,9 @@
1
+ local ____exports = {}
2
+ ____exports.UnitAttribute = ____exports.UnitAttribute or ({})
3
+ ____exports.UnitAttribute.STRENGTH = 1
4
+ ____exports.UnitAttribute[____exports.UnitAttribute.STRENGTH] = "STRENGTH"
5
+ ____exports.UnitAttribute.INTELLIGENCE = 2
6
+ ____exports.UnitAttribute[____exports.UnitAttribute.INTELLIGENCE] = "INTELLIGENCE"
7
+ ____exports.UnitAttribute.AGILITY = 3
8
+ ____exports.UnitAttribute[____exports.UnitAttribute.AGILITY] = "AGILITY"
9
+ return ____exports
@@ -1,8 +1,8 @@
1
1
  /** @noSelfInFile */
2
2
  import { AbilityType, AbilityTypeId } from "../ability-type";
3
3
  import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
- export declare class ArmorIncreaseAbilityType extends AbilityType {
4
+ export declare class ArmorBonusAbilityType extends AbilityType {
5
5
  static readonly BASE_ID: AbilityTypeId;
6
- get armorIncrease(): number[];
7
- set armorIncrease(armorIncrease: ObjectDataEntryLevelFieldValueSupplier<number>);
6
+ get armorBonus(): number[];
7
+ set armorBonus(armorBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
8
8
  }
@@ -5,20 +5,20 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
5
  local ____exports = {}
6
6
  local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
7
  local AbilityType = ____ability_2Dtype.AbilityType
8
- ____exports.ArmorIncreaseAbilityType = __TS__Class()
9
- local ArmorIncreaseAbilityType = ____exports.ArmorIncreaseAbilityType
10
- ArmorIncreaseAbilityType.name = "ArmorIncreaseAbilityType"
11
- __TS__ClassExtends(ArmorIncreaseAbilityType, AbilityType)
12
- ArmorIncreaseAbilityType.BASE_ID = fourCC("AId1")
8
+ ____exports.ArmorBonusAbilityType = __TS__Class()
9
+ local ArmorBonusAbilityType = ____exports.ArmorBonusAbilityType
10
+ ArmorBonusAbilityType.name = "ArmorBonusAbilityType"
11
+ __TS__ClassExtends(ArmorBonusAbilityType, AbilityType)
12
+ ArmorBonusAbilityType.BASE_ID = fourCC("AId1")
13
13
  __TS__SetDescriptor(
14
- ArmorIncreaseAbilityType.prototype,
15
- "armorIncrease",
14
+ ArmorBonusAbilityType.prototype,
15
+ "armorBonus",
16
16
  {
17
17
  get = function(self)
18
18
  return self:getNumberLevelField("Idef")
19
19
  end,
20
- set = function(self, armorIncrease)
21
- self:setNumberLevelField("Idef", armorIncrease)
20
+ set = function(self, armorBonus)
21
+ self:setNumberLevelField("Idef", armorBonus)
22
22
  end
23
23
  },
24
24
  true
@@ -7,4 +7,6 @@ export declare class BerserkAbilityType extends AbilityType {
7
7
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
8
8
  get attackSpeedIncreaseFactor(): number[];
9
9
  set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
10
+ get receivedDamageIncreaseFactor(): number[];
11
+ set receivedDamageIncreaseFactor(receivedDamageIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
10
12
  }