warscript 0.0.1-dev.46e7a52 → 0.0.1-dev.4724d95

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 (124) hide show
  1. package/core/types/frame.d.ts +1 -0
  2. package/core/types/frame.lua +112 -37
  3. package/core/types/handle.lua +6 -9
  4. package/core/types/item.d.ts +1 -0
  5. package/core/types/item.lua +1 -0
  6. package/core/types/player.d.ts +2 -1
  7. package/core/types/player.lua +16 -12
  8. package/core/types/sound.lua +1 -1
  9. package/core/types/tileCell.d.ts +2 -1
  10. package/core/types/tileCell.lua +5 -0
  11. package/destroyable.d.ts +1 -0
  12. package/destroyable.lua +9 -0
  13. package/engine/behavior.d.ts +10 -2
  14. package/engine/behavior.lua +157 -76
  15. package/engine/behaviour/ability/apply-buff.lua +4 -4
  16. package/engine/behaviour/ability/damage.d.ts +3 -0
  17. package/engine/behaviour/ability/damage.lua +8 -2
  18. package/engine/behaviour/ability/emulate-impact.lua +5 -4
  19. package/engine/behaviour/ability.d.ts +11 -6
  20. package/engine/behaviour/ability.lua +31 -1
  21. package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
  22. package/engine/behaviour/unit/stun-immunity.lua +6 -5
  23. package/engine/behaviour/unit.d.ts +7 -3
  24. package/engine/behaviour/unit.lua +101 -24
  25. package/engine/buff.d.ts +65 -18
  26. package/engine/buff.lua +351 -147
  27. package/engine/internal/ability.lua +15 -15
  28. package/engine/internal/item/fields.d.ts +12 -0
  29. package/engine/internal/item/fields.lua +33 -0
  30. package/engine/internal/item.d.ts +4 -5
  31. package/engine/internal/item.lua +37 -40
  32. package/engine/internal/mechanics/cast-ability.lua +6 -3
  33. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  34. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  35. package/engine/internal/object-data/health-bonus.lua +16 -0
  36. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  37. package/engine/internal/object-data/mana-bonus.lua +16 -0
  38. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  39. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  40. package/engine/internal/unit/ability.lua +12 -2
  41. package/engine/internal/unit/attributes.d.ts +17 -0
  42. package/engine/internal/unit/attributes.lua +46 -0
  43. package/engine/internal/unit/bonus.d.ts +6 -0
  44. package/engine/internal/unit/bonus.lua +33 -3
  45. package/engine/internal/unit/fly-height.d.ts +7 -0
  46. package/engine/internal/unit/fly-height.lua +20 -0
  47. package/engine/internal/unit/interrupts.d.ts +12 -0
  48. package/engine/internal/unit/interrupts.lua +28 -0
  49. package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
  50. package/engine/internal/unit/pseudo-passive-abilities.lua +8 -0
  51. package/engine/internal/unit/range-event.d.ts +12 -0
  52. package/engine/internal/unit/range-event.lua +90 -0
  53. package/engine/internal/unit/scale.d.ts +7 -0
  54. package/engine/internal/unit/scale.lua +20 -0
  55. package/engine/internal/unit+bonus.lua +3 -3
  56. package/engine/internal/unit-missile-launch.lua +12 -5
  57. package/engine/internal/unit.d.ts +2 -13
  58. package/engine/internal/unit.lua +79 -148
  59. package/engine/local-client.d.ts +6 -1
  60. package/engine/local-client.lua +60 -5
  61. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  62. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  63. package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
  64. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  65. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  66. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
  67. package/engine/object-data/entry/ability-type/blank-configurable.lua +29 -0
  68. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  69. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  70. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  71. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  72. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  73. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  74. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  75. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  76. package/engine/object-data/entry/ability-type.d.ts +2 -0
  77. package/engine/object-data/entry/ability-type.lua +84 -4
  78. package/engine/object-data/entry/buff-type/applicable.lua +113 -109
  79. package/engine/object-data/entry/destructible-type.d.ts +27 -1
  80. package/engine/object-data/entry/destructible-type.lua +155 -0
  81. package/engine/object-data/entry/unit-type.d.ts +4 -0
  82. package/engine/object-data/entry/unit-type.lua +76 -32
  83. package/engine/object-field/ability.lua +2 -2
  84. package/engine/object-field/item.d.ts +22 -0
  85. package/engine/object-field/item.lua +118 -0
  86. package/engine/object-field/unit.d.ts +20 -5
  87. package/engine/object-field/unit.lua +61 -0
  88. package/engine/object-field.d.ts +10 -2
  89. package/engine/object-field.lua +268 -123
  90. package/engine/random.d.ts +1 -0
  91. package/engine/random.lua +8 -0
  92. package/engine/standard/fields/ability.d.ts +2 -2
  93. package/engine/standard/fields/ability.lua +2 -2
  94. package/engine/standard/fields/item.d.ts +4 -0
  95. package/engine/standard/fields/item.lua +6 -0
  96. package/engine/standard/fields/unit.d.ts +11 -3
  97. package/engine/standard/fields/unit.lua +15 -2
  98. package/engine/text-tag.lua +2 -1
  99. package/engine/unit.d.ts +5 -0
  100. package/engine/unit.lua +5 -0
  101. package/event.d.ts +1 -1
  102. package/lualib_bundle.lua +1 -1
  103. package/math.d.ts +2 -0
  104. package/math.lua +14 -0
  105. package/network.lua +25 -1
  106. package/objutil/buff.lua +9 -7
  107. package/objutil/object.lua +1 -1
  108. package/operation.d.ts +8 -1
  109. package/operation.lua +38 -18
  110. package/package.json +5 -5
  111. package/patch-lua.lua +15 -0
  112. package/utility/linked-map.d.ts +35 -0
  113. package/utility/linked-map.lua +107 -0
  114. package/utility/linked-set.d.ts +3 -1
  115. package/utility/linked-set.lua +27 -0
  116. package/utility/random.d.ts +102 -0
  117. package/utility/random.lua +273 -0
  118. package/utility/records.lua +20 -1
  119. package/utility/unordered-map.d.ts +27 -0
  120. package/utility/unordered-map.lua +99 -0
  121. /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
  122. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  123. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  124. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
@@ -1,10 +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
4
5
  local __TS__InstanceOf = ____lualib.__TS__InstanceOf
5
6
  local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
6
- local __TS__New = ____lualib.__TS__New
7
7
  local ____exports = {}
8
+ local actualizeTargetingModeState
8
9
  local ____unit = require("core.types.unit")
9
10
  local Unit = ____unit.Unit
10
11
  local ____event = require("event")
@@ -18,6 +19,8 @@ local ____timer = require("core.types.timer")
18
19
  local Timer = ____timer.Timer
19
20
  local ____color = require("core.types.color")
20
21
  local Color = ____color.Color
22
+ local ____arrays = require("utility.arrays")
23
+ local array = ____arrays.array
21
24
  local loadTOCFile = BlzLoadTOCFile
22
25
  local getLocalClientWidth = BlzGetLocalClientWidth
23
26
  local getLocalClientHeight = BlzGetLocalClientHeight
@@ -62,12 +65,16 @@ local function compareUnitsSelectionPriority(a, b)
62
65
  end
63
66
  local mainSelectedUnitChangeEvent
64
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)
65
72
  ____exports.LocalClient = __TS__Class()
66
73
  local LocalClient = ____exports.LocalClient
67
74
  LocalClient.name = "LocalClient"
68
75
  function LocalClient.prototype.____constructor(self)
69
76
  end
70
- function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraEffects, blue, extraEffects)
77
+ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
71
78
  if redOrColor == nil then
72
79
  pingMinimap(x, y, duration)
73
80
  elseif __TS__InstanceOf(redOrColor, Color) then
@@ -78,7 +85,7 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
78
85
  redOrColor.r,
79
86
  redOrColor.g,
80
87
  redOrColor.b,
81
- greenOrExtraEffects or false
88
+ greenOrFlashy or false
82
89
  )
83
90
  else
84
91
  pingMinimapEx(
@@ -86,9 +93,9 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
86
93
  y,
87
94
  duration,
88
95
  redOrColor,
89
- greenOrExtraEffects,
96
+ greenOrFlashy,
90
97
  blue,
91
- extraEffects or false
98
+ flashy or false
92
99
  )
93
100
  end
94
101
  end
@@ -128,6 +135,13 @@ __TS__ObjectDefineProperty(
128
135
  return isLocalClientActive()
129
136
  end}
130
137
  )
138
+ __TS__ObjectDefineProperty(
139
+ LocalClient,
140
+ "isMinimized",
141
+ {get = function(self)
142
+ return getLocalClientHeight() == 0
143
+ end}
144
+ )
131
145
  __TS__ObjectDefineProperty(
132
146
  LocalClient,
133
147
  "mouseFocusUnit",
@@ -181,6 +195,16 @@ __TS__ObjectDefineProperty(
181
195
  return mainSelectedUnitChangeEvent
182
196
  end}
183
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
184
208
  LocalClient.onDisconnect = __TS__New(
185
209
  TriggerEvent,
186
210
  function(trigger)
@@ -188,6 +212,37 @@ LocalClient.onDisconnect = __TS__New(
188
212
  end,
189
213
  function() return end
190
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)
191
246
  warpack.afterMapInit(function()
192
247
  rawset(
193
248
  ____exports.LocalClient,
@@ -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,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,8 @@ 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
26
28
  local isChannelingAbilityTypeIds = {}
27
29
  local usesAttackAnimationByAbilityTypeId = {}
28
30
  ____exports.BlankConfigurableAbilityType = __TS__Class()
@@ -35,6 +37,7 @@ function BlankConfigurableAbilityType.prototype.____constructor(self, object)
35
37
  self.autoOrderTypeStringIdByTargetingType = {}
36
38
  self._usesAttackAnimation = false
37
39
  self._isChanneling = false
40
+ self._isPassive = false
38
41
  self.buttonPositionX = 0
39
42
  self.buttonPositionY = 0
40
43
  self.casterAttachmentPresets = {}
@@ -105,6 +108,24 @@ __TS__SetDescriptor(
105
108
  },
106
109
  true
107
110
  )
111
+ __TS__SetDescriptor(
112
+ BlankConfigurableAbilityType.prototype,
113
+ "isPassive",
114
+ {
115
+ get = function(self)
116
+ return self._isPassive
117
+ end,
118
+ set = function(self, isPassive)
119
+ if isPassive then
120
+ compiletimePseudoPassiveAbilityTypeIds[self.id] = true
121
+ else
122
+ compiletimePseudoPassiveAbilityTypeIds[self.id] = nil
123
+ end
124
+ self._isPassive = isPassive
125
+ end
126
+ },
127
+ true
128
+ )
108
129
  __TS__SetDescriptor(
109
130
  BlankConfigurableAbilityType.prototype,
110
131
  "targetingType",
@@ -209,6 +230,14 @@ do
209
230
  end
210
231
  )
211
232
  end
233
+ local _ = postcompile(function()
234
+ for abilityTypeId in pairs(compiletimePseudoPassiveAbilityTypeIds) do
235
+ local abilityType = checkNotNull(____exports.BlankConfigurableAbilityType:of(abilityTypeId))
236
+ abilityType.hotkey = ""
237
+ abilityType.baseOrderTypeStringId = ""
238
+ abilityType.targetingType = 0
239
+ end
240
+ end)
212
241
  for abilityTypeId, usesAttackAnimation in pairs(postcompile(function()
213
242
  for abilityTypeId, usesAttackAnimation in pairs(usesAttackAnimationByAbilityTypeId) do
214
243
  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>;
@@ -45,6 +45,7 @@ local isButtonVisibleFalseAbilityTypes = {}
45
45
  local casterCastingEffectPresetsByAbilityTypeId = {}
46
46
  local casterChannelingEffectPresetsByAbilityTypeId = {}
47
47
  local targetCastingEffectPresetsByAbilityTypeId = {}
48
+ local targetChannelingEffectPresetsByAbilityTypeId = {}
48
49
  local targetEffectSoundPresetByAbilityTypeId = {}
49
50
  ____exports.AbilityType = __TS__Class()
50
51
  local AbilityType = ____exports.AbilityType
@@ -378,6 +379,19 @@ __TS__SetDescriptor(
378
379
  },
379
380
  true
380
381
  )
382
+ __TS__SetDescriptor(
383
+ AbilityType.prototype,
384
+ "targetChannelingEffectPresets",
385
+ {
386
+ get = function(self)
387
+ return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
388
+ end,
389
+ set = function(self, targetChannelingEffectPresets)
390
+ targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
391
+ end
392
+ },
393
+ true
394
+ )
381
395
  __TS__SetDescriptor(
382
396
  AbilityType.prototype,
383
397
  "targetEffectPresets",
@@ -1099,18 +1113,84 @@ local function handleAbilityChannelingStartEvent(caster, ability)
1099
1113
  end
1100
1114
  casterChannelingEffectsByCaster[caster] = effects
1101
1115
  end
1116
+ local targetChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
1117
+ return mapValues(
1118
+ targetChannelingEffectPresetsByAbilityTypeId,
1119
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputModelPath) end
1120
+ )
1121
+ end)
1122
+ local targetChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(function()
1123
+ return mapValues(
1124
+ targetChannelingEffectPresetsByAbilityTypeId,
1125
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
1126
+ )
1127
+ end)
1128
+ local targetChannelingEffectParametersByAbilityTypeId = postcompile(function()
1129
+ return mapValues(
1130
+ targetChannelingEffectPresetsByAbilityTypeId,
1131
+ function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, "parameters") end
1132
+ )
1133
+ end)
1134
+ local targetChannelingEffectsByCaster = {}
1135
+ local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
1136
+ local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1137
+ local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1138
+ local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
1139
+ local effects = {}
1140
+ if effectModelPaths ~= nil then
1141
+ for i = 1, #effectModelPaths do
1142
+ local effectModelPath = effectModelPaths[i]
1143
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1144
+ if attachmentPoint == nil or attachmentPoint == "" then
1145
+ attachmentPoint = "origin"
1146
+ end
1147
+ effects[i] = Effect:create(effectModelPath, target, attachmentPoint, parameters and parameters[i])
1148
+ end
1149
+ end
1150
+ targetChannelingEffectsByCaster[caster] = effects
1151
+ end
1152
+ local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
1153
+ local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
1154
+ local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
1155
+ local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
1156
+ local effects = {}
1157
+ if effectModelPaths ~= nil then
1158
+ for i = 1, #effectModelPaths do
1159
+ local effectModelPath = effectModelPaths[i]
1160
+ local attachmentPoint = attachmentPoints and attachmentPoints[i]
1161
+ if attachmentPoint == nil or attachmentPoint == "" then
1162
+ attachmentPoint = "origin"
1163
+ end
1164
+ effects[i] = Effect:create(effectModelPath, x, y, parameters and parameters[i])
1165
+ end
1166
+ end
1167
+ targetChannelingEffectsByCaster[caster] = effects
1168
+ end
1102
1169
  local function handleAbilityStopChannelingEvent(caster)
1103
- local effects = casterChannelingEffectsByCaster[caster]
1104
- if effects ~= nil then
1105
- for i = 1, #effects do
1106
- effects[i]:destroy()
1170
+ local casterEffects = casterChannelingEffectsByCaster[caster]
1171
+ if casterEffects ~= nil then
1172
+ for i = 1, #casterEffects do
1173
+ casterEffects[i]:destroy()
1107
1174
  end
1108
1175
  casterChannelingEffectsByCaster[caster] = nil
1109
1176
  end
1177
+ local targetEffects = targetChannelingEffectsByCaster[caster]
1178
+ if targetEffects ~= nil then
1179
+ for i = 1, #targetEffects do
1180
+ targetEffects[i]:destroy()
1181
+ end
1182
+ targetChannelingEffectsByCaster[caster] = nil
1183
+ end
1110
1184
  end
1111
1185
  for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
1112
1186
  Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
1113
1187
  Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1114
1188
  Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1115
1189
  end
1190
+ for abilityTypeId in pairs(targetChannelingEffectModelPathsByAbilityTypeId) do
1191
+ Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
1192
+ Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
1193
+ Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1194
+ Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
1195
+ end
1116
1196
  return ____exports