warscript 0.0.1-dev.9048d45 → 0.0.1-dev.90da649
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.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +85 -44
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +7 -2
- package/engine/behaviour/ability.lua +28 -22
- package/engine/behaviour/unit/stun-immunity.d.ts +11 -5
- package/engine/behaviour/unit/stun-immunity.lua +53 -28
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +259 -6
- package/engine/buff.d.ts +28 -12
- package/engine/buff.lua +222 -128
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +45 -14
- package/engine/internal/unit.d.ts +43 -17
- package/engine/internal/unit.lua +343 -172
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/curse.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +11 -11
- package/engine/object-data/entry/ability-type.lua +35 -13
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +17 -4
- package/engine/object-data/entry/unit-type.lua +197 -85
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -6
- package/engine/object-field.lua +357 -118
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +2 -3
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +22 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/buff.lua
CHANGED
|
@@ -16,6 +16,7 @@ local internalApplyBuff = ____applicable.internalApplyBuff
|
|
|
16
16
|
local removeBuff = ____applicable.removeBuff
|
|
17
17
|
local ____ability = require("engine.internal.ability")
|
|
18
18
|
local Ability = ____ability.Ability
|
|
19
|
+
local UnitAbility = ____ability.UnitAbility
|
|
19
20
|
local ____ability = require("engine.object-field.ability")
|
|
20
21
|
local AbilityBooleanField = ____ability.AbilityBooleanField
|
|
21
22
|
local AbilityNumberField = ____ability.AbilityNumberField
|
|
@@ -28,9 +29,6 @@ local ____math = require("math")
|
|
|
28
29
|
local max = ____math.max
|
|
29
30
|
local min = ____math.min
|
|
30
31
|
local ____bonus = require("engine.internal.unit.bonus")
|
|
31
|
-
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
32
|
-
local getUnitBonus = ____bonus.getUnitBonus
|
|
33
|
-
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
34
32
|
local UnitBonusType = ____bonus.UnitBonusType
|
|
35
33
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
34
|
local damageArea = ____area_2Ddamage.damageArea
|
|
@@ -53,6 +51,10 @@ local ____item = require("engine.internal.item")
|
|
|
53
51
|
local Item = ____item.Item
|
|
54
52
|
local ____destructable = require("core.types.destructable")
|
|
55
53
|
local Destructable = ____destructable.Destructable
|
|
54
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
55
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
56
|
+
local ____ability = require("engine.behaviour.ability")
|
|
57
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
56
58
|
local getUnitAbility = BlzGetUnitAbility
|
|
57
59
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
58
60
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -101,6 +103,7 @@ local buffParametersKeys = {
|
|
|
101
103
|
armorIncreaseFactor = true,
|
|
102
104
|
attackSpeedIncreaseFactor = true,
|
|
103
105
|
movementSpeedIncreaseFactor = true,
|
|
106
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
104
107
|
evasionProbability = true,
|
|
105
108
|
missProbability = true,
|
|
106
109
|
damageFactor = true,
|
|
@@ -109,6 +112,7 @@ local buffParametersKeys = {
|
|
|
109
112
|
durationIncreaseOnAutoAttack = true,
|
|
110
113
|
maximumDuration = true,
|
|
111
114
|
maximumRemainingDuration = true,
|
|
115
|
+
turnsIntoGhost = true,
|
|
112
116
|
stuns = true,
|
|
113
117
|
ignoresStunImmunity = true,
|
|
114
118
|
providesStunImmunity = true,
|
|
@@ -123,7 +127,8 @@ local buffParametersKeys = {
|
|
|
123
127
|
damageOnExpiration = true,
|
|
124
128
|
healingOnExpiration = true,
|
|
125
129
|
killsOnExpiration = true,
|
|
126
|
-
explodesOnExpiration = true
|
|
130
|
+
explodesOnExpiration = true,
|
|
131
|
+
abilityCooldownFactor = true
|
|
127
132
|
}
|
|
128
133
|
local function resolveEnumValue(ability, level, value)
|
|
129
134
|
if value == nil or type(value) == "number" then
|
|
@@ -174,6 +179,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
174
179
|
end
|
|
175
180
|
end
|
|
176
181
|
local buffBooleanParameters = {
|
|
182
|
+
"turnsIntoGhost",
|
|
177
183
|
"stuns",
|
|
178
184
|
"ignoresStunImmunity",
|
|
179
185
|
"disablesAutoAttack",
|
|
@@ -185,6 +191,7 @@ local buffNumberParameters = {
|
|
|
185
191
|
"durationIncreaseOnAutoAttack",
|
|
186
192
|
"attackSpeedIncreaseFactor",
|
|
187
193
|
"movementSpeedIncreaseFactor",
|
|
194
|
+
"manaRegenerationRateIncreaseFactor",
|
|
188
195
|
"evasionProbability",
|
|
189
196
|
"armorIncrease",
|
|
190
197
|
"damageFactor",
|
|
@@ -199,7 +206,8 @@ local buffNumberParameters = {
|
|
|
199
206
|
"healingPerInterval",
|
|
200
207
|
"healingOverDuration",
|
|
201
208
|
"damageOnExpiration",
|
|
202
|
-
"healingOnExpiration"
|
|
209
|
+
"healingOnExpiration",
|
|
210
|
+
"abilityCooldownFactor"
|
|
203
211
|
}
|
|
204
212
|
local unsuccessfulApplicationMarker = {}
|
|
205
213
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -302,7 +310,8 @@ buffHealingIntervalTimerCallback = function(buff)
|
|
|
302
310
|
source:healTarget(buff[101], healingPerInterval)
|
|
303
311
|
end
|
|
304
312
|
end
|
|
305
|
-
local
|
|
313
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
314
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
306
315
|
____exports.Buff = __TS__Class()
|
|
307
316
|
local Buff = ____exports.Buff
|
|
308
317
|
Buff.name = "Buff"
|
|
@@ -317,33 +326,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
317
326
|
local polarity
|
|
318
327
|
local resistanceType
|
|
319
328
|
local ability
|
|
329
|
+
local abilityBehavior
|
|
320
330
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
321
331
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
322
332
|
polarity = resistanceTypeOrPolarity
|
|
323
333
|
resistanceType = abilityOrParametersOrResistanceType
|
|
324
|
-
if __TS__InstanceOf(parametersOrAbility,
|
|
334
|
+
if __TS__InstanceOf(parametersOrAbility, AbilityBehavior) then
|
|
335
|
+
abilityBehavior = parametersOrAbility
|
|
336
|
+
ability = abilityBehavior.ability
|
|
337
|
+
elseif __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
325
338
|
ability = parametersOrAbility
|
|
326
|
-
|
|
327
|
-
ability = nil
|
|
339
|
+
elseif parametersOrAbility ~= nil then
|
|
328
340
|
parameters = parametersOrAbility
|
|
329
341
|
end
|
|
330
342
|
else
|
|
331
343
|
typeId = typeIdOrTypeIds
|
|
332
344
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
333
345
|
resistanceType = resistanceTypeOrPolarity
|
|
334
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType,
|
|
346
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, AbilityBehavior) then
|
|
347
|
+
abilityBehavior = abilityOrParametersOrResistanceType
|
|
348
|
+
ability = abilityBehavior.ability
|
|
349
|
+
parameters = parametersOrAbility
|
|
350
|
+
elseif __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
335
351
|
ability = abilityOrParametersOrResistanceType
|
|
336
352
|
parameters = parametersOrAbility
|
|
337
|
-
|
|
338
|
-
ability = nil
|
|
353
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
339
354
|
parameters = abilityOrParametersOrResistanceType
|
|
355
|
+
else
|
|
356
|
+
parameters = parametersOrAbility
|
|
340
357
|
end
|
|
341
358
|
end
|
|
359
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
342
360
|
self.typeId = typeId
|
|
343
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
344
|
-
parameters = ability
|
|
345
|
-
ability = nil
|
|
346
|
-
end
|
|
347
361
|
local defaultParameters = self.constructor.defaultParameters
|
|
348
362
|
local level = parameters and parameters.level or defaultParameters.level
|
|
349
363
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -371,7 +385,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
371
385
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
372
386
|
if missProbability ~= nil then
|
|
373
387
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
374
|
-
self[
|
|
388
|
+
self[142] = missProbability
|
|
375
389
|
end
|
|
376
390
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
377
391
|
if buffByTypeId == nil then
|
|
@@ -504,64 +518,68 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
504
518
|
end
|
|
505
519
|
self:onCreate()
|
|
506
520
|
self[100] = 1
|
|
521
|
+
Event.invoke(buffCreatedEvent, self)
|
|
507
522
|
end
|
|
508
|
-
function Buff.prototype.
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
523
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
524
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
525
|
+
local abilityCooldownModifier = self[144]
|
|
526
|
+
if abilityCooldownModifier then
|
|
527
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
528
|
+
end
|
|
529
|
+
end
|
|
512
530
|
end
|
|
513
|
-
function Buff.prototype.
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
531
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
532
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
533
|
+
local abilityCooldownModifier = self[144]
|
|
534
|
+
if abilityCooldownModifier then
|
|
535
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
536
|
+
end
|
|
518
537
|
end
|
|
519
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
520
538
|
end
|
|
521
539
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
522
540
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
523
541
|
Effect:flash(self[105], widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
524
542
|
else
|
|
525
543
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
526
|
-
local
|
|
527
|
-
local
|
|
528
|
-
local
|
|
544
|
+
local ____Effect_40 = Effect
|
|
545
|
+
local ____Effect_flash_41 = Effect.flash
|
|
546
|
+
local ____array_39 = __TS__SparseArrayNew(
|
|
529
547
|
self[105],
|
|
530
548
|
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
531
549
|
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
532
550
|
)
|
|
533
|
-
local
|
|
551
|
+
local ____isWidgetProvided_38
|
|
534
552
|
if isWidgetProvided then
|
|
535
|
-
|
|
553
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
536
554
|
else
|
|
537
|
-
|
|
555
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
538
556
|
end
|
|
539
|
-
__TS__SparseArrayPush(
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
__TS__SparseArraySpread(
|
|
557
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
558
|
+
____Effect_flash_41(
|
|
559
|
+
____Effect_40,
|
|
560
|
+
__TS__SparseArraySpread(____array_39)
|
|
543
561
|
)
|
|
544
562
|
end
|
|
545
563
|
end
|
|
546
564
|
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
547
565
|
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
548
|
-
local
|
|
549
|
-
local
|
|
550
|
-
local
|
|
566
|
+
local ____Effect_44 = Effect
|
|
567
|
+
local ____Effect_flash_45 = Effect.flash
|
|
568
|
+
local ____array_43 = __TS__SparseArrayNew(
|
|
551
569
|
self[106],
|
|
552
570
|
isWidgetProvided and widgetOrDuration or self._unit,
|
|
553
571
|
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
554
572
|
)
|
|
555
|
-
local
|
|
573
|
+
local ____isWidgetProvided_42
|
|
556
574
|
if isWidgetProvided then
|
|
557
|
-
|
|
575
|
+
____isWidgetProvided_42 = duration
|
|
558
576
|
else
|
|
559
|
-
|
|
577
|
+
____isWidgetProvided_42 = widgetOrDuration
|
|
560
578
|
end
|
|
561
|
-
__TS__SparseArrayPush(
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
__TS__SparseArraySpread(
|
|
579
|
+
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
580
|
+
____Effect_flash_45(
|
|
581
|
+
____Effect_44,
|
|
582
|
+
__TS__SparseArraySpread(____array_43)
|
|
565
583
|
)
|
|
566
584
|
end
|
|
567
585
|
function Buff.prototype.onCreate(self)
|
|
@@ -592,26 +610,33 @@ function Buff.prototype.onDestroy(self)
|
|
|
592
610
|
behavior:destroy()
|
|
593
611
|
end
|
|
594
612
|
end
|
|
595
|
-
|
|
613
|
+
local previousAbilityCooldownModifier = self[144]
|
|
614
|
+
if previousAbilityCooldownModifier then
|
|
615
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
616
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
617
|
+
end
|
|
618
|
+
end
|
|
619
|
+
if self[139] then
|
|
620
|
+
unit:decrementInvulnerabilityCounter()
|
|
621
|
+
end
|
|
622
|
+
if self[138] then
|
|
596
623
|
unit:decrementDisableAutoAttackCounter()
|
|
597
624
|
end
|
|
598
|
-
if self[
|
|
599
|
-
if self[
|
|
600
|
-
unit:
|
|
625
|
+
if self[136] then
|
|
626
|
+
if self[137] then
|
|
627
|
+
unit:decrementForceStunCounter()
|
|
601
628
|
end
|
|
602
629
|
unit:decrementStunCounter()
|
|
603
630
|
end
|
|
631
|
+
if self[135] then
|
|
632
|
+
unit:decrementGhostCounter()
|
|
633
|
+
end
|
|
604
634
|
if self._abilityTypeIds ~= nil then
|
|
605
635
|
for abilityTypeId in pairs(self._abilityTypeIds) do
|
|
606
636
|
unit:removeAbility(abilityTypeId)
|
|
607
637
|
end
|
|
608
638
|
end
|
|
609
|
-
|
|
610
|
-
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
611
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
612
|
-
end
|
|
613
|
-
end
|
|
614
|
-
Event.invoke(buffDestroyEvent, self)
|
|
639
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
615
640
|
self[100] = 3
|
|
616
641
|
return UnitBehavior.prototype.onDestroy(self)
|
|
617
642
|
end
|
|
@@ -640,8 +665,8 @@ function Buff.apply(self, ...)
|
|
|
640
665
|
end
|
|
641
666
|
end
|
|
642
667
|
function Buff.getByTypeId(self, unit, typeId)
|
|
643
|
-
local
|
|
644
|
-
local buff =
|
|
668
|
+
local ____opt_46 = buffByTypeIdByUnit[unit]
|
|
669
|
+
local buff = ____opt_46 and ____opt_46[typeId]
|
|
645
670
|
if __TS__InstanceOf(buff, self) then
|
|
646
671
|
return buff
|
|
647
672
|
end
|
|
@@ -655,9 +680,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
655
680
|
if self[121] ~= nil then
|
|
656
681
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
657
682
|
end
|
|
658
|
-
if self[
|
|
683
|
+
if self[141] then
|
|
659
684
|
unit:explode()
|
|
660
|
-
elseif self[
|
|
685
|
+
elseif self[140] then
|
|
661
686
|
unit:kill()
|
|
662
687
|
end
|
|
663
688
|
end
|
|
@@ -799,8 +824,8 @@ __TS__SetDescriptor(
|
|
|
799
824
|
return
|
|
800
825
|
end
|
|
801
826
|
self[112] = damageInterval
|
|
802
|
-
local
|
|
803
|
-
local elapsed =
|
|
827
|
+
local ____opt_48 = self._timer
|
|
828
|
+
local elapsed = ____opt_48 and ____opt_48.elapsed or 0
|
|
804
829
|
local timer = self[114]
|
|
805
830
|
if timer == nil then
|
|
806
831
|
timer = Timer:create()
|
|
@@ -879,8 +904,8 @@ __TS__SetDescriptor(
|
|
|
879
904
|
return
|
|
880
905
|
end
|
|
881
906
|
self[117] = healingInterval
|
|
882
|
-
local
|
|
883
|
-
local elapsed =
|
|
907
|
+
local ____opt_50 = self._timer
|
|
908
|
+
local elapsed = ____opt_50 and ____opt_50.elapsed or 0
|
|
884
909
|
local timer = self[119]
|
|
885
910
|
if timer == nil then
|
|
886
911
|
timer = Timer:create()
|
|
@@ -961,30 +986,53 @@ __TS__SetDescriptor(
|
|
|
961
986
|
},
|
|
962
987
|
true
|
|
963
988
|
)
|
|
989
|
+
__TS__SetDescriptor(
|
|
990
|
+
Buff.prototype,
|
|
991
|
+
"turnsIntoGhost",
|
|
992
|
+
{
|
|
993
|
+
get = function(self)
|
|
994
|
+
local ____self__135_52 = self[135]
|
|
995
|
+
if ____self__135_52 == nil then
|
|
996
|
+
____self__135_52 = false
|
|
997
|
+
end
|
|
998
|
+
return ____self__135_52
|
|
999
|
+
end,
|
|
1000
|
+
set = function(self, turnsIntoGhost)
|
|
1001
|
+
if not turnsIntoGhost and self[135] then
|
|
1002
|
+
self.object:decrementGhostCounter()
|
|
1003
|
+
self[135] = nil
|
|
1004
|
+
elseif turnsIntoGhost and not self[135] then
|
|
1005
|
+
self.object:incrementGhostCounter()
|
|
1006
|
+
self[135] = true
|
|
1007
|
+
end
|
|
1008
|
+
end
|
|
1009
|
+
},
|
|
1010
|
+
true
|
|
1011
|
+
)
|
|
964
1012
|
__TS__SetDescriptor(
|
|
965
1013
|
Buff.prototype,
|
|
966
1014
|
"stuns",
|
|
967
1015
|
{
|
|
968
1016
|
get = function(self)
|
|
969
|
-
local
|
|
970
|
-
if
|
|
971
|
-
|
|
1017
|
+
local ____self__136_53 = self[136]
|
|
1018
|
+
if ____self__136_53 == nil then
|
|
1019
|
+
____self__136_53 = false
|
|
972
1020
|
end
|
|
973
|
-
return
|
|
1021
|
+
return ____self__136_53
|
|
974
1022
|
end,
|
|
975
1023
|
set = function(self, stuns)
|
|
976
|
-
if not stuns and self[
|
|
977
|
-
if self[
|
|
978
|
-
self.object:
|
|
1024
|
+
if not stuns and self[136] then
|
|
1025
|
+
if self[137] then
|
|
1026
|
+
self.object:decrementForceStunCounter()
|
|
979
1027
|
end
|
|
980
1028
|
self.object:decrementStunCounter()
|
|
981
|
-
self[
|
|
982
|
-
elseif stuns and not self[
|
|
983
|
-
if self[
|
|
984
|
-
self.object:
|
|
1029
|
+
self[136] = nil
|
|
1030
|
+
elseif stuns and not self[136] then
|
|
1031
|
+
if self[137] then
|
|
1032
|
+
self.object:incrementForceStunCounter()
|
|
985
1033
|
end
|
|
986
1034
|
self.object:incrementStunCounter()
|
|
987
|
-
self[
|
|
1035
|
+
self[136] = true
|
|
988
1036
|
end
|
|
989
1037
|
end
|
|
990
1038
|
},
|
|
@@ -995,23 +1043,23 @@ __TS__SetDescriptor(
|
|
|
995
1043
|
"ignoresStunImmunity",
|
|
996
1044
|
{
|
|
997
1045
|
get = function(self)
|
|
998
|
-
local
|
|
999
|
-
if
|
|
1000
|
-
|
|
1046
|
+
local ____self__137_54 = self[137]
|
|
1047
|
+
if ____self__137_54 == nil then
|
|
1048
|
+
____self__137_54 = false
|
|
1001
1049
|
end
|
|
1002
|
-
return
|
|
1050
|
+
return ____self__137_54
|
|
1003
1051
|
end,
|
|
1004
1052
|
set = function(self, ignoresStunImmunity)
|
|
1005
|
-
if not ignoresStunImmunity and self[
|
|
1006
|
-
if self[
|
|
1007
|
-
self.object:
|
|
1053
|
+
if not ignoresStunImmunity and self[137] then
|
|
1054
|
+
if self[136] then
|
|
1055
|
+
self.object:decrementForceStunCounter()
|
|
1008
1056
|
end
|
|
1009
|
-
self[
|
|
1010
|
-
elseif ignoresStunImmunity and not self[
|
|
1011
|
-
if self[
|
|
1012
|
-
self.object:
|
|
1057
|
+
self[137] = nil
|
|
1058
|
+
elseif ignoresStunImmunity and not self[137] then
|
|
1059
|
+
if self[136] then
|
|
1060
|
+
self.object:incrementForceStunCounter()
|
|
1013
1061
|
end
|
|
1014
|
-
self[
|
|
1062
|
+
self[137] = true
|
|
1015
1063
|
end
|
|
1016
1064
|
end
|
|
1017
1065
|
},
|
|
@@ -1022,19 +1070,19 @@ __TS__SetDescriptor(
|
|
|
1022
1070
|
"disablesAutoAttack",
|
|
1023
1071
|
{
|
|
1024
1072
|
get = function(self)
|
|
1025
|
-
local
|
|
1026
|
-
if
|
|
1027
|
-
|
|
1073
|
+
local ____self__138_55 = self[138]
|
|
1074
|
+
if ____self__138_55 == nil then
|
|
1075
|
+
____self__138_55 = false
|
|
1028
1076
|
end
|
|
1029
|
-
return
|
|
1077
|
+
return ____self__138_55
|
|
1030
1078
|
end,
|
|
1031
1079
|
set = function(self, disablesAutoAttack)
|
|
1032
|
-
if not disablesAutoAttack and self[
|
|
1080
|
+
if not disablesAutoAttack and self[138] then
|
|
1033
1081
|
self.object:decrementDisableAutoAttackCounter()
|
|
1034
|
-
self[
|
|
1035
|
-
elseif disablesAutoAttack and not self[
|
|
1082
|
+
self[138] = nil
|
|
1083
|
+
elseif disablesAutoAttack and not self[138] then
|
|
1036
1084
|
self.object:incrementDisableAutoAttackCounter()
|
|
1037
|
-
self[
|
|
1085
|
+
self[138] = true
|
|
1038
1086
|
end
|
|
1039
1087
|
end
|
|
1040
1088
|
},
|
|
@@ -1045,19 +1093,19 @@ __TS__SetDescriptor(
|
|
|
1045
1093
|
"providesInvulnerability",
|
|
1046
1094
|
{
|
|
1047
1095
|
get = function(self)
|
|
1048
|
-
local
|
|
1049
|
-
if
|
|
1050
|
-
|
|
1096
|
+
local ____self__139_56 = self[139]
|
|
1097
|
+
if ____self__139_56 == nil then
|
|
1098
|
+
____self__139_56 = false
|
|
1051
1099
|
end
|
|
1052
|
-
return
|
|
1100
|
+
return ____self__139_56
|
|
1053
1101
|
end,
|
|
1054
1102
|
set = function(self, providesInvulnerability)
|
|
1055
|
-
if not providesInvulnerability and self[
|
|
1103
|
+
if not providesInvulnerability and self[139] then
|
|
1056
1104
|
self.object:decrementInvulnerabilityCounter()
|
|
1057
|
-
self[
|
|
1058
|
-
elseif providesInvulnerability and not self[
|
|
1105
|
+
self[139] = nil
|
|
1106
|
+
elseif providesInvulnerability and not self[139] then
|
|
1059
1107
|
self.object:incrementInvulnerabilityCounter()
|
|
1060
|
-
self[
|
|
1108
|
+
self[139] = true
|
|
1061
1109
|
end
|
|
1062
1110
|
end
|
|
1063
1111
|
},
|
|
@@ -1068,17 +1116,17 @@ __TS__SetDescriptor(
|
|
|
1068
1116
|
"killsOnExpiration",
|
|
1069
1117
|
{
|
|
1070
1118
|
get = function(self)
|
|
1071
|
-
local
|
|
1072
|
-
if
|
|
1073
|
-
|
|
1119
|
+
local ____self__140_57 = self[140]
|
|
1120
|
+
if ____self__140_57 == nil then
|
|
1121
|
+
____self__140_57 = false
|
|
1074
1122
|
end
|
|
1075
|
-
return
|
|
1123
|
+
return ____self__140_57
|
|
1076
1124
|
end,
|
|
1077
1125
|
set = function(self, killsOnExpiration)
|
|
1078
|
-
if not killsOnExpiration and self[
|
|
1079
|
-
self[
|
|
1080
|
-
elseif killsOnExpiration and not self[
|
|
1081
|
-
self[
|
|
1126
|
+
if not killsOnExpiration and self[140] then
|
|
1127
|
+
self[140] = nil
|
|
1128
|
+
elseif killsOnExpiration and not self[140] then
|
|
1129
|
+
self[140] = true
|
|
1082
1130
|
end
|
|
1083
1131
|
end
|
|
1084
1132
|
},
|
|
@@ -1089,17 +1137,17 @@ __TS__SetDescriptor(
|
|
|
1089
1137
|
"explodesOnExpiration",
|
|
1090
1138
|
{
|
|
1091
1139
|
get = function(self)
|
|
1092
|
-
local
|
|
1093
|
-
if
|
|
1094
|
-
|
|
1140
|
+
local ____self__141_58 = self[141]
|
|
1141
|
+
if ____self__141_58 == nil then
|
|
1142
|
+
____self__141_58 = false
|
|
1095
1143
|
end
|
|
1096
|
-
return
|
|
1144
|
+
return ____self__141_58
|
|
1097
1145
|
end,
|
|
1098
1146
|
set = function(self, killsOnExpiration)
|
|
1099
|
-
if not killsOnExpiration and self[
|
|
1100
|
-
self[
|
|
1101
|
-
elseif killsOnExpiration and not self[
|
|
1102
|
-
self[
|
|
1147
|
+
if not killsOnExpiration and self[141] then
|
|
1148
|
+
self[141] = nil
|
|
1149
|
+
elseif killsOnExpiration and not self[141] then
|
|
1150
|
+
self[141] = true
|
|
1103
1151
|
end
|
|
1104
1152
|
end
|
|
1105
1153
|
},
|
|
@@ -1208,6 +1256,19 @@ __TS__SetDescriptor(
|
|
|
1208
1256
|
},
|
|
1209
1257
|
true
|
|
1210
1258
|
)
|
|
1259
|
+
__TS__SetDescriptor(
|
|
1260
|
+
Buff.prototype,
|
|
1261
|
+
"manaRegenerationRateIncreaseFactor",
|
|
1262
|
+
{
|
|
1263
|
+
get = function(self)
|
|
1264
|
+
return self:getUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR)
|
|
1265
|
+
end,
|
|
1266
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
1267
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR, manaRegenerationRateIncreaseFactor)
|
|
1268
|
+
end
|
|
1269
|
+
},
|
|
1270
|
+
true
|
|
1271
|
+
)
|
|
1211
1272
|
__TS__SetDescriptor(
|
|
1212
1273
|
Buff.prototype,
|
|
1213
1274
|
"duration",
|
|
@@ -1221,13 +1282,13 @@ __TS__SetDescriptor(
|
|
|
1221
1282
|
"remainingDuration",
|
|
1222
1283
|
{
|
|
1223
1284
|
get = function(self)
|
|
1224
|
-
local
|
|
1225
|
-
return
|
|
1285
|
+
local ____opt_59 = self._timer
|
|
1286
|
+
return ____opt_59 and ____opt_59.remaining or 0
|
|
1226
1287
|
end,
|
|
1227
1288
|
set = function(self, remainingDuration)
|
|
1228
|
-
local
|
|
1229
|
-
local
|
|
1230
|
-
local remainingDurationDelta =
|
|
1289
|
+
local ____remainingDuration_63 = remainingDuration
|
|
1290
|
+
local ____opt_61 = self._timer
|
|
1291
|
+
local remainingDurationDelta = ____remainingDuration_63 - (____opt_61 and ____opt_61.remaining or 0)
|
|
1231
1292
|
if remainingDurationDelta ~= 0 then
|
|
1232
1293
|
self[103] = self[103] + remainingDurationDelta
|
|
1233
1294
|
if remainingDuration <= 0 then
|
|
@@ -1242,7 +1303,7 @@ __TS__SetDescriptor(
|
|
|
1242
1303
|
remainingDuration,
|
|
1243
1304
|
self._spellStealPriority,
|
|
1244
1305
|
self._learnLevelMinimum,
|
|
1245
|
-
self[
|
|
1306
|
+
self[142]
|
|
1246
1307
|
) then
|
|
1247
1308
|
local timer = self._timer
|
|
1248
1309
|
if timer == nil then
|
|
@@ -1257,7 +1318,34 @@ __TS__SetDescriptor(
|
|
|
1257
1318
|
},
|
|
1258
1319
|
true
|
|
1259
1320
|
)
|
|
1260
|
-
|
|
1321
|
+
__TS__SetDescriptor(
|
|
1322
|
+
Buff.prototype,
|
|
1323
|
+
"abilityCooldownFactor",
|
|
1324
|
+
{
|
|
1325
|
+
get = function(self)
|
|
1326
|
+
return self[143] or 1
|
|
1327
|
+
end,
|
|
1328
|
+
set = function(self, abilityCooldownFactor)
|
|
1329
|
+
local previousAbilityCooldownModifier = self[144]
|
|
1330
|
+
if previousAbilityCooldownModifier then
|
|
1331
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1332
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1333
|
+
end
|
|
1334
|
+
end
|
|
1335
|
+
local function modifier(ability, level, cooldown)
|
|
1336
|
+
return cooldown * abilityCooldownFactor
|
|
1337
|
+
end
|
|
1338
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1339
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1340
|
+
end
|
|
1341
|
+
self[144] = modifier
|
|
1342
|
+
self[143] = abilityCooldownFactor
|
|
1343
|
+
end
|
|
1344
|
+
},
|
|
1345
|
+
true
|
|
1346
|
+
)
|
|
1347
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1348
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1261
1349
|
(function(self)
|
|
1262
1350
|
local function destroyBuffIfNeeded(buff)
|
|
1263
1351
|
if getUnitAbility(buff[101].handle, buff.typeId) ~= buff.handle and buff[100] == 1 then
|
|
@@ -1311,5 +1399,11 @@ Buff.destroyEvent = buffDestroyEvent;
|
|
|
1311
1399
|
____exports.checkBuffs(target)
|
|
1312
1400
|
end
|
|
1313
1401
|
)
|
|
1402
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1403
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1404
|
+
end)
|
|
1405
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1406
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1407
|
+
end)
|
|
1314
1408
|
end)(Buff)
|
|
1315
1409
|
return ____exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Handle } from "../../core/types/handle";
|
|
2
|
+
import { Handle, HandleDestructor } from "../../core/types/handle";
|
|
3
3
|
import { Event } from "../../event";
|
|
4
4
|
import type { Item } from "../../core/types/item";
|
|
5
5
|
import type { Unit } from "./unit";
|
|
@@ -55,14 +55,19 @@ export declare class UnrecognizedAbility extends Ability {
|
|
|
55
55
|
export declare class UnitAbility extends Ability {
|
|
56
56
|
readonly owner: Unit;
|
|
57
57
|
private readonly u;
|
|
58
|
+
private d?;
|
|
58
59
|
constructor(handle: jability, typeId: number, owner: Unit);
|
|
59
60
|
incrementHideCounter(): void;
|
|
60
61
|
decrementHideCounter(): void;
|
|
62
|
+
incrementDisableCounter(): void;
|
|
63
|
+
decrementDisableCounter(): void;
|
|
64
|
+
get isDisabled(): boolean;
|
|
61
65
|
get level(): number;
|
|
62
66
|
set level(v: number);
|
|
63
67
|
get cooldownRemaining(): number;
|
|
64
68
|
set cooldownRemaining(cooldownRemaining: number);
|
|
65
69
|
interruptCast(): void;
|
|
70
|
+
protected onDestroy(): HandleDestructor;
|
|
66
71
|
static get onCreate(): Event<[UnitAbility]>;
|
|
67
72
|
static get onDestroy(): Event<[UnitAbility]>;
|
|
68
73
|
}
|
|
@@ -89,6 +94,7 @@ export declare class ItemAbility extends Ability {
|
|
|
89
94
|
get cooldownRemaining(): number;
|
|
90
95
|
set cooldownRemaining(cooldownRemaining: number);
|
|
91
96
|
interruptCast(): void;
|
|
97
|
+
protected onDestroy(): HandleDestructor;
|
|
92
98
|
static get onCreate(): Event<[ItemAbility]>;
|
|
93
99
|
static get onDestroy(): Event<[ItemAbility]>;
|
|
94
100
|
}
|