warscript 0.0.1-dev.e196516 → 0.0.1-dev.e27e5b1

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 (192) hide show
  1. package/attributes.d.ts +1 -0
  2. package/attributes.lua +9 -0
  3. package/core/types/frame.d.ts +1 -0
  4. package/core/types/frame.lua +136 -58
  5. package/core/types/handle.lua +6 -9
  6. package/core/types/item.d.ts +1 -0
  7. package/core/types/item.lua +1 -0
  8. package/core/types/player.d.ts +18 -1
  9. package/core/types/player.lua +76 -26
  10. package/core/types/playerCamera.d.ts +2 -0
  11. package/core/types/playerCamera.lua +123 -5
  12. package/core/types/playerColor.lua +4 -3
  13. package/core/types/sound.d.ts +1 -1
  14. package/core/types/sound.lua +14 -9
  15. package/core/types/tileCell.d.ts +11 -1
  16. package/core/types/tileCell.lua +97 -0
  17. package/core/types/timer.d.ts +3 -1
  18. package/core/types/timer.lua +27 -2
  19. package/core/types/unit.d.ts +4 -0
  20. package/core/types/unit.lua +4 -0
  21. package/decl/native.d.ts +711 -11
  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.lua +5 -5
  27. package/engine/behaviour/ability/damage.d.ts +3 -0
  28. package/engine/behaviour/ability/damage.lua +8 -2
  29. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  30. package/engine/behaviour/ability/emulate-impact.lua +7 -5
  31. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  32. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  33. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  34. package/engine/behaviour/ability/restore-mana.lua +6 -6
  35. package/engine/behaviour/ability.d.ts +11 -6
  36. package/engine/behaviour/ability.lua +37 -16
  37. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  38. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  39. package/engine/behaviour/unit.d.ts +27 -5
  40. package/engine/behaviour/unit.lua +181 -27
  41. package/engine/buff.d.ts +67 -22
  42. package/engine/buff.lua +371 -182
  43. package/engine/internal/ability.d.ts +7 -1
  44. package/engine/internal/ability.lua +86 -44
  45. package/engine/internal/item/ability.lua +51 -1
  46. package/engine/internal/item/fields.d.ts +12 -0
  47. package/engine/internal/item/fields.lua +33 -0
  48. package/engine/internal/item+owner.d.ts +1 -0
  49. package/engine/internal/item+owner.lua +19 -6
  50. package/engine/internal/item.d.ts +23 -14
  51. package/engine/internal/item.lua +169 -82
  52. package/engine/internal/mechanics/cast-ability.lua +6 -3
  53. package/engine/internal/misc/frame-coordinates.lua +21 -0
  54. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  55. package/engine/internal/misc/get-terrain-z.lua +11 -0
  56. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  57. package/engine/internal/misc/player-local-handle.lua +5 -0
  58. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  59. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  60. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  61. package/engine/internal/object-data/health-bonus.lua +16 -0
  62. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  63. package/engine/internal/object-data/mana-bonus.lua +16 -0
  64. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  65. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  66. package/engine/internal/unit/ability.d.ts +35 -5
  67. package/engine/internal/unit/ability.lua +111 -24
  68. package/engine/internal/unit/appearance.d.ts +15 -0
  69. package/engine/internal/unit/appearance.lua +85 -0
  70. package/engine/internal/unit/attributes.d.ts +17 -0
  71. package/engine/internal/unit/attributes.lua +46 -0
  72. package/engine/internal/unit/bag.d.ts +18 -0
  73. package/engine/internal/unit/bag.lua +63 -0
  74. package/engine/internal/unit/bonus.d.ts +6 -0
  75. package/engine/internal/unit/bonus.lua +33 -3
  76. package/engine/internal/unit/buff.d.ts +2 -2
  77. package/engine/internal/unit/buff.lua +32 -17
  78. package/engine/internal/unit/equipment.d.ts +36 -0
  79. package/engine/internal/unit/equipment.lua +169 -0
  80. package/engine/internal/unit/fly-height.d.ts +7 -0
  81. package/engine/internal/unit/fly-height.lua +20 -0
  82. package/engine/internal/unit/interrupts.d.ts +12 -0
  83. package/engine/internal/unit/interrupts.lua +28 -0
  84. package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
  85. package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
  86. package/engine/internal/unit/main-selected.lua +12 -27
  87. package/engine/internal/unit/order.d.ts +20 -0
  88. package/engine/internal/unit/order.lua +136 -0
  89. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  90. package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
  91. package/engine/internal/unit/range-event.d.ts +12 -0
  92. package/engine/internal/unit/range-event.lua +90 -0
  93. package/engine/internal/unit/scale.d.ts +7 -0
  94. package/engine/internal/unit/scale.lua +20 -0
  95. package/engine/internal/unit+ability.lua +10 -1
  96. package/engine/internal/unit+bonus.lua +3 -3
  97. package/engine/internal/unit-missile-launch.lua +52 -14
  98. package/engine/internal/unit.d.ts +19 -24
  99. package/engine/internal/unit.lua +233 -246
  100. package/engine/local-client.d.ts +21 -0
  101. package/engine/local-client.lua +150 -7
  102. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  103. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  104. package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
  105. package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
  106. package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
  107. package/engine/object-data/auxiliary/equipment-type.lua +2 -0
  108. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  109. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  110. package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
  111. package/engine/object-data/auxiliary/item-tag.lua +2 -0
  112. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  113. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  114. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  115. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  116. package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
  117. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  118. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  119. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  120. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  121. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  122. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  123. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  124. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  125. package/engine/object-data/entry/ability-type.d.ts +2 -0
  126. package/engine/object-data/entry/ability-type.lua +89 -8
  127. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  128. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  129. package/engine/object-data/entry/destructible-type.lua +155 -0
  130. package/engine/object-data/entry/unit-type.d.ts +15 -2
  131. package/engine/object-data/entry/unit-type.lua +135 -33
  132. package/engine/object-field/ability.d.ts +3 -3
  133. package/engine/object-field/ability.lua +9 -8
  134. package/engine/object-field/item.d.ts +22 -0
  135. package/engine/object-field/item.lua +118 -0
  136. package/engine/object-field/unit.d.ts +31 -5
  137. package/engine/object-field/unit.lua +95 -0
  138. package/engine/object-field.d.ts +12 -4
  139. package/engine/object-field.lua +278 -131
  140. package/engine/random.d.ts +10 -0
  141. package/engine/random.lua +21 -0
  142. package/engine/standard/fields/ability.d.ts +2 -2
  143. package/engine/standard/fields/ability.lua +2 -2
  144. package/engine/standard/fields/item.d.ts +4 -0
  145. package/engine/standard/fields/item.lua +6 -0
  146. package/engine/standard/fields/unit.d.ts +12 -0
  147. package/engine/standard/fields/unit.lua +20 -0
  148. package/engine/synchronization.d.ts +11 -0
  149. package/engine/synchronization.lua +77 -0
  150. package/engine/text-tag.d.ts +26 -3
  151. package/engine/text-tag.lua +217 -11
  152. package/engine/unit.d.ts +10 -1
  153. package/engine/unit.lua +10 -1
  154. package/event.d.ts +1 -1
  155. package/lualib_bundle.lua +1 -1
  156. package/math.d.ts +2 -0
  157. package/math.lua +14 -0
  158. package/net/socket.lua +1 -1
  159. package/network.lua +25 -1
  160. package/objutil/buff.lua +10 -8
  161. package/objutil/object.lua +1 -1
  162. package/operation.d.ts +8 -1
  163. package/operation.lua +38 -18
  164. package/package.json +5 -5
  165. package/patch-lua.lua +15 -0
  166. package/patch-lualib.lua +1 -1
  167. package/utility/arrays.d.ts +1 -0
  168. package/utility/arrays.lua +8 -0
  169. package/utility/callback-array.d.ts +17 -0
  170. package/utility/callback-array.lua +61 -0
  171. package/utility/functions.d.ts +7 -0
  172. package/utility/functions.lua +12 -0
  173. package/utility/linked-map.d.ts +35 -0
  174. package/utility/linked-map.lua +107 -0
  175. package/utility/linked-set.d.ts +4 -1
  176. package/utility/linked-set.lua +46 -1
  177. package/utility/lua-maps.d.ts +11 -2
  178. package/utility/lua-maps.lua +33 -2
  179. package/utility/lua-sets.d.ts +1 -0
  180. package/utility/lua-sets.lua +4 -0
  181. package/utility/random.d.ts +102 -0
  182. package/utility/random.lua +273 -0
  183. package/utility/records.lua +20 -1
  184. package/utility/types.d.ts +3 -0
  185. package/utility/unordered-map.d.ts +27 -0
  186. package/utility/unordered-map.lua +99 -0
  187. package/core/types/order.d.ts +0 -26
  188. package/core/types/order.lua +0 -65
  189. /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
  190. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  191. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  192. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -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,31 @@ 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;
17
+ /** Local input state; do not use to branch synchronized game logic. */
18
+ static isKeyPressed(key: joskeytype): boolean;
19
+ /** Local input state. Uses the same modifier mask as Player key events. */
20
+ static isMetaKeyPressed(key: oskeymeta): boolean;
21
+ /** Local input state. */
22
+ static isMouseButtonPressed(button: jmousebuttontype): boolean;
23
+ static get mouseScreenX(): number;
24
+ static get mouseScreenY(): number;
25
+ static screenToFrameX(x: number): number;
26
+ static screenToFrameY(y: number): number;
27
+ static frameToScreenX(x: number): number;
28
+ static frameToScreenY(y: number): number;
29
+ static get mouseFrameX(): number;
30
+ static get mouseFrameY(): number;
14
31
  static get mouseFocusUnit(): Async<Unit> | undefined;
15
32
  static get mainSelectedUnit(): Async<Unit> | undefined;
16
33
  static get mainSelectedUnitChangeEvent(): Event<[
17
34
  previousMainSelectedUnit: Unit | undefined,
18
35
  newMainSelectedUnit: Unit | undefined
19
36
  ]>;
37
+ static get isInTargetingMode(): boolean;
38
+ static readonly targetingModeEnterEvent: Event<[]>;
39
+ static readonly targetingModeLeaveEvent: Event<[]>;
40
+ static readonly targetingModeStateChangeEvent: Event<[]>;
20
41
  static readonly onDisconnect: TriggerEvent<[]>;
21
42
  }
@@ -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,16 +17,31 @@ 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
18
- local loadTOCFile = BlzLoadTOCFile
19
- local getLocalClientWidth = BlzGetLocalClientWidth
20
- local getLocalClientHeight = BlzGetLocalClientHeight
21
- local isLocalClientActive = BlzIsLocalClientActive
22
- local isHeroUnitId = IsHeroUnitId
20
+ local ____color = require("core.types.color")
21
+ local Color = ____color.Color
22
+ local ____arrays = require("utility.arrays")
23
+ local array = ____arrays.array
24
+ local frameToPixelX = BlzFrameToPixelX
25
+ local frameToPixelY = BlzFrameToPixelY
23
26
  local getHandleId = GetHandleId
27
+ local getLocalClientHeight = BlzGetLocalClientHeight
28
+ local getLocalClientWidth = BlzGetLocalClientWidth
29
+ local getLocale = BlzGetLocale
24
30
  local getMouseFocusUnit = BlzGetMouseFocusUnit
31
+ local getMouseScreenPosX = BlzGetMouseScreenPosX
32
+ local getMouseScreenPosY = BlzGetMouseScreenPosY
25
33
  local getUnitRealField = BlzGetUnitRealField
26
34
  local getUnitTypeId = GetUnitTypeId
27
- local getLocale = BlzGetLocale
35
+ local isHeroUnitId = IsHeroUnitId
36
+ local isKeyPressed = BlzIsKeyPressed
37
+ local isLocalClientActive = BlzIsLocalClientActive
38
+ local isMetaKeyPressed = BlzIsMetaKeyPressed
39
+ local isMouseButtonPressed = BlzIsMouseButtonPressed
40
+ local loadTOCFile = BlzLoadTOCFile
41
+ local pingMinimap = PingMinimap
42
+ local pingMinimapEx = PingMinimapEx
43
+ local pixelToFrameX = BlzPixelToFrameX
44
+ local pixelToFrameY = BlzPixelToFrameY
28
45
  local tableSort = table.sort
29
46
  local tocPath = "_warscript\\IsHD.toc"
30
47
  compiletime(function()
@@ -57,11 +74,61 @@ local function compareUnitsSelectionPriority(a, b)
57
74
  end
58
75
  local mainSelectedUnitChangeEvent
59
76
  local previousMainSelectedUnit
77
+ local lastTargetingModeState = false
78
+ local targetingModeEnterEvent = __TS__New(Event)
79
+ local targetingModeLeaveEvent = __TS__New(Event)
80
+ local targetingModeStateChangeEvent = __TS__New(Event)
60
81
  ____exports.LocalClient = __TS__Class()
61
82
  local LocalClient = ____exports.LocalClient
62
83
  LocalClient.name = "LocalClient"
63
84
  function LocalClient.prototype.____constructor(self)
64
85
  end
86
+ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
87
+ if redOrColor == nil then
88
+ pingMinimap(x, y, duration)
89
+ elseif __TS__InstanceOf(redOrColor, Color) then
90
+ pingMinimapEx(
91
+ x,
92
+ y,
93
+ duration,
94
+ redOrColor.r,
95
+ redOrColor.g,
96
+ redOrColor.b,
97
+ greenOrFlashy or false
98
+ )
99
+ else
100
+ pingMinimapEx(
101
+ x,
102
+ y,
103
+ duration,
104
+ redOrColor,
105
+ greenOrFlashy,
106
+ blue,
107
+ flashy or false
108
+ )
109
+ end
110
+ end
111
+ function LocalClient.isKeyPressed(self, key)
112
+ return isKeyPressed(key)
113
+ end
114
+ function LocalClient.isMetaKeyPressed(self, key)
115
+ return isMetaKeyPressed(key)
116
+ end
117
+ function LocalClient.isMouseButtonPressed(self, button)
118
+ return isMouseButtonPressed(button)
119
+ end
120
+ function LocalClient.screenToFrameX(self, x)
121
+ return pixelToFrameX(x)
122
+ end
123
+ function LocalClient.screenToFrameY(self, y)
124
+ return pixelToFrameY(y)
125
+ end
126
+ function LocalClient.frameToScreenX(self, x)
127
+ return frameToPixelX(x)
128
+ end
129
+ function LocalClient.frameToScreenY(self, y)
130
+ return frameToPixelY(y)
131
+ end
65
132
  LocalClient.locale = getLocale()
66
133
  __TS__ObjectDefineProperty(
67
134
  LocalClient,
@@ -98,6 +165,41 @@ __TS__ObjectDefineProperty(
98
165
  return isLocalClientActive()
99
166
  end}
100
167
  )
168
+ __TS__ObjectDefineProperty(
169
+ LocalClient,
170
+ "isMinimized",
171
+ {get = function(self)
172
+ return getLocalClientHeight() == 0
173
+ end}
174
+ )
175
+ __TS__ObjectDefineProperty(
176
+ LocalClient,
177
+ "mouseScreenX",
178
+ {get = function(self)
179
+ return getMouseScreenPosX()
180
+ end}
181
+ )
182
+ __TS__ObjectDefineProperty(
183
+ LocalClient,
184
+ "mouseScreenY",
185
+ {get = function(self)
186
+ return getMouseScreenPosY()
187
+ end}
188
+ )
189
+ __TS__ObjectDefineProperty(
190
+ LocalClient,
191
+ "mouseFrameX",
192
+ {get = function(self)
193
+ return pixelToFrameX(getMouseScreenPosX())
194
+ end}
195
+ )
196
+ __TS__ObjectDefineProperty(
197
+ LocalClient,
198
+ "mouseFrameY",
199
+ {get = function(self)
200
+ return pixelToFrameY(getMouseScreenPosY())
201
+ end}
202
+ )
101
203
  __TS__ObjectDefineProperty(
102
204
  LocalClient,
103
205
  "mouseFocusUnit",
@@ -151,6 +253,16 @@ __TS__ObjectDefineProperty(
151
253
  return mainSelectedUnitChangeEvent
152
254
  end}
153
255
  )
256
+ __TS__ObjectDefineProperty(
257
+ LocalClient,
258
+ "isInTargetingMode",
259
+ {get = function(self)
260
+ return actualizeTargetingModeState()
261
+ end}
262
+ )
263
+ LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
264
+ LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
265
+ LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
154
266
  LocalClient.onDisconnect = __TS__New(
155
267
  TriggerEvent,
156
268
  function(trigger)
@@ -158,6 +270,37 @@ LocalClient.onDisconnect = __TS__New(
158
270
  end,
159
271
  function() return end
160
272
  )
273
+ local commandButtons = array(
274
+ 12,
275
+ function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
276
+ )
277
+ local function getTargetingModeState()
278
+ for i = 0, 10 do
279
+ if commandButtons[i + 1].visible then
280
+ return false
281
+ end
282
+ end
283
+ return commandButtons[12].visible
284
+ end
285
+ actualizeTargetingModeState = function()
286
+ if getTargetingModeState() then
287
+ if not lastTargetingModeState then
288
+ lastTargetingModeState = true
289
+ Event.invoke(targetingModeEnterEvent)
290
+ Event.invoke(targetingModeStateChangeEvent)
291
+ end
292
+ return true
293
+ end
294
+ if lastTargetingModeState then
295
+ lastTargetingModeState = false
296
+ Event.invoke(targetingModeLeaveEvent)
297
+ Event.invoke(targetingModeStateChangeEvent)
298
+ end
299
+ return false
300
+ end
301
+ Timer.onPeriod[1 / 64]:addListener(function()
302
+ actualizeTargetingModeState()
303
+ end)
161
304
  warpack.afterMapInit(function()
162
305
  rawset(
163
306
  ____exports.LocalClient,
@@ -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
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum EquipmentSlot {
3
+ HEAD = 0,
4
+ CHEST = 1,
5
+ GLOVES = 2,
6
+ BOOTS = 3,
7
+ RING = 4,
8
+ ALTERNATE_RING = 5,
9
+ PRIMARY = 6,
10
+ OFFHAND = 7,
11
+ TRINKET = 8
12
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -0,0 +1,13 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum EquipmentType {
3
+ NONE = 0,
4
+ HEAD = 1,
5
+ CHEST = 2,
6
+ GLOVES = 3,
7
+ BOOTS = 4,
8
+ RING = 5,
9
+ PRIMARY = 6,
10
+ OFFHAND = 7,
11
+ TRINKET = 8,
12
+ ANY = 9
13
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ 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
@@ -0,0 +1,12 @@
1
+ /** @noSelfInFile */
2
+ export declare const enum ItemTag {
3
+ UNDEFINED = 0,
4
+ DROPPABLE = 1,
5
+ QUEST_REWARD = 2,
6
+ BOSS_DROP = 3,
7
+ SECRET = 4,
8
+ PUZZLE = 5,
9
+ WORLD = 6,
10
+ SHOP = 7,
11
+ ANY = 8
12
+ }
@@ -0,0 +1,2 @@
1
+ local ____exports = {}
2
+ return ____exports
@@ -1,5 +1,5 @@
1
1
  local ____exports = {}
2
- ____exports.UnitAttribute = UnitAttribute or ({})
2
+ ____exports.UnitAttribute = ____exports.UnitAttribute or ({})
3
3
  ____exports.UnitAttribute.STRENGTH = 1
4
4
  ____exports.UnitAttribute[____exports.UnitAttribute.STRENGTH] = "STRENGTH"
5
5
  ____exports.UnitAttribute.INTELLIGENCE = 2
@@ -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,11 +7,14 @@ export declare class BlankConfigurableAbilityType extends ChannelAbilityType {
7
7
  private readonly autoOrderTypeStringIdByTargetingType;
8
8
  private _usesAttackAnimation;
9
9
  private _isChanneling;
10
+ private _isPassive;
10
11
  constructor(object: WarObject);
11
12
  get usesAttackAnimation(): boolean;
12
13
  set usesAttackAnimation(usesAttackAnimation: boolean);
13
14
  get isChanneling(): boolean;
14
15
  set isChanneling(isChanneling: boolean);
16
+ get isPassive(): boolean;
17
+ set isPassive(isPassive: boolean);
15
18
  get targetingType(): ChannelAbilityTypeTargetingType[];
16
19
  set targetingType(targetingType: ObjectDataEntryLevelFieldValueSupplier<ChannelAbilityTypeTargetingType>);
17
20
  get baseOrderTypeStringId(): string[];
@@ -23,6 +23,9 @@ local ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD = ____ability.A
23
23
  local AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD = ____ability.AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD
24
24
  local ____linked_2Dset = require("utility.linked-set")
25
25
  local LinkedSet = ____linked_2Dset.LinkedSet
26
+ local ____pseudo_2Dpassive_2Dabilities = require("engine.internal.unit.pseudo-passive-abilities")
27
+ local compiletimePseudoPassiveAbilityTypeIds = ____pseudo_2Dpassive_2Dabilities.compiletimePseudoPassiveAbilityTypeIds
28
+ local pseudoPassiveAbilityOrderTypeStringId = ____pseudo_2Dpassive_2Dabilities.pseudoPassiveAbilityOrderTypeStringId
26
29
  local isChannelingAbilityTypeIds = {}
27
30
  local usesAttackAnimationByAbilityTypeId = {}
28
31
  ____exports.BlankConfigurableAbilityType = __TS__Class()
@@ -35,6 +38,7 @@ function BlankConfigurableAbilityType.prototype.____constructor(self, object)
35
38
  self.autoOrderTypeStringIdByTargetingType = {}
36
39
  self._usesAttackAnimation = false
37
40
  self._isChanneling = false
41
+ self._isPassive = false
38
42
  self.buttonPositionX = 0
39
43
  self.buttonPositionY = 0
40
44
  self.casterAttachmentPresets = {}
@@ -105,6 +109,24 @@ __TS__SetDescriptor(
105
109
  },
106
110
  true
107
111
  )
112
+ __TS__SetDescriptor(
113
+ BlankConfigurableAbilityType.prototype,
114
+ "isPassive",
115
+ {
116
+ get = function(self)
117
+ return self._isPassive
118
+ end,
119
+ set = function(self, isPassive)
120
+ if isPassive then
121
+ compiletimePseudoPassiveAbilityTypeIds[self.id] = true
122
+ else
123
+ compiletimePseudoPassiveAbilityTypeIds[self.id] = nil
124
+ end
125
+ self._isPassive = isPassive
126
+ end
127
+ },
128
+ true
129
+ )
108
130
  __TS__SetDescriptor(
109
131
  BlankConfigurableAbilityType.prototype,
110
132
  "targetingType",
@@ -209,6 +231,14 @@ do
209
231
  end
210
232
  )
211
233
  end
234
+ local _ = postcompile(function()
235
+ for abilityTypeId in pairs(compiletimePseudoPassiveAbilityTypeIds) do
236
+ local abilityType = checkNotNull(____exports.BlankConfigurableAbilityType:of(abilityTypeId))
237
+ abilityType.hotkey = ""
238
+ abilityType.baseOrderTypeStringId = pseudoPassiveAbilityOrderTypeStringId
239
+ abilityType.targetingType = 0
240
+ end
241
+ end)
212
242
  for abilityTypeId, usesAttackAnimation in pairs(postcompile(function()
213
243
  for abilityTypeId, usesAttackAnimation in pairs(usesAttackAnimationByAbilityTypeId) do
214
244
  if usesAttackAnimation then
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class HealthBonusAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get healthBonus(): number[];
7
+ set healthBonus(healthBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.HealthBonusAbilityType = __TS__Class()
9
+ local HealthBonusAbilityType = ____exports.HealthBonusAbilityType
10
+ HealthBonusAbilityType.name = "HealthBonusAbilityType"
11
+ __TS__ClassExtends(HealthBonusAbilityType, AbilityType)
12
+ HealthBonusAbilityType.BASE_ID = fourCC("AIlf")
13
+ __TS__SetDescriptor(
14
+ HealthBonusAbilityType.prototype,
15
+ "healthBonus",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Ilif")
19
+ end,
20
+ set = function(self, healthBonus)
21
+ self:setNumberLevelField("Ilif", healthBonus)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class ManaBonusAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get manaBonus(): number[];
7
+ set manaBonus(manaBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.ManaBonusAbilityType = __TS__Class()
9
+ local ManaBonusAbilityType = ____exports.ManaBonusAbilityType
10
+ ManaBonusAbilityType.name = "ManaBonusAbilityType"
11
+ __TS__ClassExtends(ManaBonusAbilityType, AbilityType)
12
+ ManaBonusAbilityType.BASE_ID = fourCC("AImb")
13
+ __TS__SetDescriptor(
14
+ ManaBonusAbilityType.prototype,
15
+ "manaBonus",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Iman")
19
+ end,
20
+ set = function(self, manaBonus)
21
+ self:setNumberLevelField("Iman", manaBonus)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class ManaRegenerationAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get manaRegenerationRateIncreaseFactor(): number[];
7
+ set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.ManaRegenerationAbilityType = __TS__Class()
9
+ local ManaRegenerationAbilityType = ____exports.ManaRegenerationAbilityType
10
+ ManaRegenerationAbilityType.name = "ManaRegenerationAbilityType"
11
+ __TS__ClassExtends(ManaRegenerationAbilityType, AbilityType)
12
+ ManaRegenerationAbilityType.BASE_ID = fourCC("AIrn")
13
+ __TS__SetDescriptor(
14
+ ManaRegenerationAbilityType.prototype,
15
+ "manaRegenerationRateIncreaseFactor",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Imrp")
19
+ end,
20
+ set = function(self, manaRegenerationRateIncreaseFactor)
21
+ self:setNumberLevelField("Imrp", manaRegenerationRateIncreaseFactor)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -0,0 +1,8 @@
1
+ /** @noSelfInFile */
2
+ import { AbilityType, AbilityTypeId } from "../ability-type";
3
+ import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
4
+ export declare class ReincarnationAbilityType extends AbilityType {
5
+ static readonly BASE_ID: AbilityTypeId;
6
+ get reincarnationDelay(): number[];
7
+ set reincarnationDelay(reincarnationDelay: ObjectDataEntryLevelFieldValueSupplier<number>);
8
+ }
@@ -0,0 +1,26 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local ____exports = {}
6
+ local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
7
+ local AbilityType = ____ability_2Dtype.AbilityType
8
+ ____exports.ReincarnationAbilityType = __TS__Class()
9
+ local ReincarnationAbilityType = ____exports.ReincarnationAbilityType
10
+ ReincarnationAbilityType.name = "ReincarnationAbilityType"
11
+ __TS__ClassExtends(ReincarnationAbilityType, AbilityType)
12
+ ReincarnationAbilityType.BASE_ID = fourCC("AOre")
13
+ __TS__SetDescriptor(
14
+ ReincarnationAbilityType.prototype,
15
+ "reincarnationDelay",
16
+ {
17
+ get = function(self)
18
+ return self:getNumberLevelField("Ore1")
19
+ end,
20
+ set = function(self, reincarnationDelay)
21
+ self:setNumberLevelField("Ore1", reincarnationDelay)
22
+ end
23
+ },
24
+ true
25
+ )
26
+ return ____exports
@@ -67,6 +67,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
67
67
  set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
68
68
  get targetCastingEffectPresets(): EffectPresetWithParameters[];
69
69
  set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
70
+ get targetChannelingEffectPresets(): EffectPresetWithParameters[];
71
+ set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
70
72
  get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
71
73
  set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
72
74
  get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;