warscript 0.0.1-dev.f0a9ffe → 0.0.1-dev.f0daa48
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 +1 -0
- package/attributes.lua +9 -0
- 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.lua +1 -1
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +3 -2
- package/core/types/timer.lua +22 -2
- package/decl/native.d.ts +2 -2
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +12 -1
- package/engine/behavior.lua +199 -65
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability.d.ts +11 -6
- package/engine/behaviour/ability.lua +31 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
- package/engine/behaviour/unit/stun-immunity.lua +17 -7
- package/engine/behaviour/unit.d.ts +15 -5
- package/engine/behaviour/unit.lua +126 -22
- package/engine/buff.d.ts +64 -21
- package/engine/buff.lua +360 -178
- package/engine/internal/ability.d.ts +3 -1
- package/engine/internal/ability.lua +26 -9
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +13 -15
- package/engine/internal/item.lua +63 -49
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -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 +14 -14
- package/engine/internal/unit/ability.lua +72 -45
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.lua +1 -1
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -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+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +51 -20
- package/engine/internal/unit.d.ts +18 -22
- package/engine/internal/unit.lua +179 -200
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -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/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -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/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +88 -5
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- 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/unit-type.d.ts +4 -0
- package/engine/object-data/entry/unit-type.lua +76 -32
- package/engine/object-field/ability.d.ts +3 -3
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/unit.d.ts +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +12 -4
- package/engine/object-field.lua +273 -126
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -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 +11 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +1 -1
- package/engine/text-tag.lua +92 -17
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -0
- package/lualib_bundle.lua +118 -47
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +10 -8
- package/objutil/object.lua +1 -1
- package/operation.lua +23 -17
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +8 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +40 -1
- package/utility/lua-maps.d.ts +11 -2
- package/utility/lua-maps.lua +33 -2
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
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
|
|
@@ -44,6 +42,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
44
42
|
local ____unit = require("engine.behaviour.unit")
|
|
45
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
46
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
47
46
|
local forEach = ____arrays.forEach
|
|
48
47
|
local ____event = require("event")
|
|
49
48
|
local Event = ____event.Event
|
|
@@ -53,6 +52,12 @@ local ____item = require("engine.internal.item")
|
|
|
53
52
|
local Item = ____item.Item
|
|
54
53
|
local ____destructable = require("core.types.destructable")
|
|
55
54
|
local Destructable = ____destructable.Destructable
|
|
55
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
56
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
57
|
+
local ____ability = require("engine.behaviour.ability")
|
|
58
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
59
|
+
local ____records = require("utility.records")
|
|
60
|
+
local sortedKeysUnnested = ____records.sortedKeysUnnested
|
|
56
61
|
local getUnitAbility = BlzGetUnitAbility
|
|
57
62
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
58
63
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -98,9 +103,11 @@ local buffParametersKeys = {
|
|
|
98
103
|
damageIncrease = true,
|
|
99
104
|
damageIncreaseFactor = true,
|
|
100
105
|
armorIncrease = true,
|
|
101
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
102
108
|
attackSpeedIncreaseFactor = true,
|
|
103
109
|
movementSpeedIncreaseFactor = true,
|
|
110
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
104
111
|
evasionProbability = true,
|
|
105
112
|
missProbability = true,
|
|
106
113
|
damageFactor = true,
|
|
@@ -120,11 +127,15 @@ local buffParametersKeys = {
|
|
|
120
127
|
maximumAutoAttackCount = true,
|
|
121
128
|
maximumDamageDealtEventCount = true,
|
|
122
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
123
133
|
uniqueGroup = true,
|
|
124
134
|
damageOnExpiration = true,
|
|
125
135
|
healingOnExpiration = true,
|
|
126
136
|
killsOnExpiration = true,
|
|
127
|
-
explodesOnExpiration = true
|
|
137
|
+
explodesOnExpiration = true,
|
|
138
|
+
abilityCooldownFactor = true
|
|
128
139
|
}
|
|
129
140
|
local function resolveEnumValue(ability, level, value)
|
|
130
141
|
if value == nil or type(value) == "number" then
|
|
@@ -175,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
175
186
|
end
|
|
176
187
|
end
|
|
177
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
178
190
|
"turnsIntoGhost",
|
|
179
191
|
"stuns",
|
|
180
192
|
"ignoresStunImmunity",
|
|
@@ -187,8 +199,11 @@ local buffNumberParameters = {
|
|
|
187
199
|
"durationIncreaseOnAutoAttack",
|
|
188
200
|
"attackSpeedIncreaseFactor",
|
|
189
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
190
203
|
"evasionProbability",
|
|
191
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
192
207
|
"damageFactor",
|
|
193
208
|
"receivedDamageFactor",
|
|
194
209
|
"maximumAutoAttackCount",
|
|
@@ -201,7 +216,10 @@ local buffNumberParameters = {
|
|
|
201
216
|
"healingPerInterval",
|
|
202
217
|
"healingOverDuration",
|
|
203
218
|
"damageOnExpiration",
|
|
204
|
-
"healingOnExpiration"
|
|
219
|
+
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
222
|
+
"abilityCooldownFactor"
|
|
205
223
|
}
|
|
206
224
|
local unsuccessfulApplicationMarker = {}
|
|
207
225
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -320,33 +338,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
320
338
|
local polarity
|
|
321
339
|
local resistanceType
|
|
322
340
|
local ability
|
|
341
|
+
local abilityBehavior
|
|
323
342
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
324
343
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
325
344
|
polarity = resistanceTypeOrPolarity
|
|
326
345
|
resistanceType = abilityOrParametersOrResistanceType
|
|
327
|
-
if __TS__InstanceOf(parametersOrAbility,
|
|
346
|
+
if __TS__InstanceOf(parametersOrAbility, AbilityBehavior) then
|
|
347
|
+
abilityBehavior = parametersOrAbility
|
|
348
|
+
ability = abilityBehavior.ability
|
|
349
|
+
elseif __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
328
350
|
ability = parametersOrAbility
|
|
329
|
-
|
|
330
|
-
ability = nil
|
|
351
|
+
elseif parametersOrAbility ~= nil then
|
|
331
352
|
parameters = parametersOrAbility
|
|
332
353
|
end
|
|
333
354
|
else
|
|
334
355
|
typeId = typeIdOrTypeIds
|
|
335
356
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
336
357
|
resistanceType = resistanceTypeOrPolarity
|
|
337
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType,
|
|
358
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, AbilityBehavior) then
|
|
359
|
+
abilityBehavior = abilityOrParametersOrResistanceType
|
|
360
|
+
ability = abilityBehavior.ability
|
|
361
|
+
parameters = parametersOrAbility
|
|
362
|
+
elseif __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
338
363
|
ability = abilityOrParametersOrResistanceType
|
|
339
364
|
parameters = parametersOrAbility
|
|
340
|
-
|
|
341
|
-
ability = nil
|
|
365
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
342
366
|
parameters = abilityOrParametersOrResistanceType
|
|
367
|
+
else
|
|
368
|
+
parameters = parametersOrAbility
|
|
343
369
|
end
|
|
344
370
|
end
|
|
371
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
345
372
|
self.typeId = typeId
|
|
346
|
-
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
347
|
-
parameters = ability
|
|
348
|
-
ability = nil
|
|
349
|
-
end
|
|
350
373
|
local defaultParameters = self.constructor.defaultParameters
|
|
351
374
|
local level = parameters and parameters.level or defaultParameters.level
|
|
352
375
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -374,7 +397,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
374
397
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
375
398
|
if missProbability ~= nil then
|
|
376
399
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
377
|
-
self[
|
|
400
|
+
self[146] = missProbability
|
|
378
401
|
end
|
|
379
402
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
380
403
|
if buffByTypeId == nil then
|
|
@@ -457,24 +480,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
457
480
|
abilityTypeIds = {}
|
|
458
481
|
self._abilityTypeIds = abilityTypeIds
|
|
459
482
|
end
|
|
460
|
-
for
|
|
483
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
484
|
+
local abilityParameters = parametersAbilityTypeIds[abilityTypeId]
|
|
461
485
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
462
486
|
if addedAbility ~= nil then
|
|
463
487
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
464
488
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
if not resolveBooleanValue(ability, level, abilityParameterValue) then
|
|
468
|
-
_unit:hideAbility(abilityTypeId, true)
|
|
469
|
-
end
|
|
470
|
-
elseif abilityParameterKey ~= "level" then
|
|
471
|
-
abilityParameterKey:setValue(
|
|
472
|
-
addedAbility,
|
|
473
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
474
|
-
)
|
|
475
|
-
end
|
|
489
|
+
if abilityParameters.isButtonVisible == false then
|
|
490
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
476
491
|
end
|
|
477
|
-
|
|
492
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
493
|
+
field[1]:setValue(
|
|
494
|
+
addedAbility,
|
|
495
|
+
resolveNumberValue(ability, level, field[2])
|
|
496
|
+
)
|
|
497
|
+
end
|
|
498
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
478
499
|
end
|
|
479
500
|
end
|
|
480
501
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -486,18 +507,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
486
507
|
self._behaviors = behaviors
|
|
487
508
|
end
|
|
488
509
|
end
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
if
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
510
|
+
if parameters ~= nil then
|
|
511
|
+
local additionalParameters = {}
|
|
512
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
513
|
+
if not buffParametersKeys[key] then
|
|
514
|
+
if ability then
|
|
515
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
516
|
+
else
|
|
517
|
+
additionalParameters[key] = parameters[key]
|
|
518
|
+
end
|
|
496
519
|
end
|
|
497
520
|
end
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
521
|
+
if (next(additionalParameters)) ~= nil then
|
|
522
|
+
self.parameters = additionalParameters
|
|
523
|
+
end
|
|
501
524
|
end
|
|
502
525
|
end
|
|
503
526
|
if duration ~= nil and duration > 0 then
|
|
@@ -509,64 +532,63 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
509
532
|
self[100] = 1
|
|
510
533
|
Event.invoke(buffCreatedEvent, self)
|
|
511
534
|
end
|
|
512
|
-
function Buff.prototype.
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
535
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
536
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
537
|
+
local abilityCooldownModifier = self[148]
|
|
538
|
+
if abilityCooldownModifier then
|
|
539
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
540
|
+
end
|
|
541
|
+
end
|
|
516
542
|
end
|
|
517
|
-
function Buff.prototype.
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
543
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
544
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
545
|
+
local abilityCooldownModifier = self[148]
|
|
546
|
+
if abilityCooldownModifier then
|
|
547
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
548
|
+
end
|
|
522
549
|
end
|
|
523
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
524
550
|
end
|
|
525
551
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
552
|
+
self:flash(
|
|
553
|
+
self[105],
|
|
554
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
555
|
+
widgetOrXOrParametersOrDuration,
|
|
556
|
+
yOrParametersOrDuration,
|
|
557
|
+
parametersOrDuration
|
|
558
|
+
)
|
|
559
|
+
end
|
|
560
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
561
|
+
self:flash(
|
|
562
|
+
self[106],
|
|
563
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
564
|
+
widgetOrXOrParametersOrDuration,
|
|
565
|
+
yOrParametersOrDuration,
|
|
566
|
+
parametersOrDuration
|
|
567
|
+
)
|
|
568
|
+
end
|
|
569
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
526
570
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
527
|
-
Effect:flash(
|
|
571
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
528
572
|
else
|
|
529
573
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
530
|
-
local
|
|
531
|
-
local
|
|
532
|
-
local
|
|
533
|
-
|
|
534
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
535
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
536
|
-
)
|
|
537
|
-
local ____isWidgetProvided_40
|
|
574
|
+
local ____Effect_40 = Effect
|
|
575
|
+
local ____Effect_flash_41 = Effect.flash
|
|
576
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
577
|
+
local ____isWidgetProvided_38
|
|
538
578
|
if isWidgetProvided then
|
|
539
|
-
|
|
579
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
540
580
|
else
|
|
541
|
-
|
|
581
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
542
582
|
end
|
|
543
|
-
__TS__SparseArrayPush(
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
__TS__SparseArraySpread(
|
|
583
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
584
|
+
____Effect_flash_41(
|
|
585
|
+
____Effect_40,
|
|
586
|
+
__TS__SparseArraySpread(____array_39)
|
|
547
587
|
)
|
|
548
588
|
end
|
|
549
589
|
end
|
|
550
|
-
function Buff.prototype.
|
|
551
|
-
|
|
552
|
-
local ____Effect_46 = Effect
|
|
553
|
-
local ____Effect_flash_47 = Effect.flash
|
|
554
|
-
local ____array_45 = __TS__SparseArrayNew(
|
|
555
|
-
self[106],
|
|
556
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
557
|
-
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
558
|
-
)
|
|
559
|
-
local ____isWidgetProvided_44
|
|
560
|
-
if isWidgetProvided then
|
|
561
|
-
____isWidgetProvided_44 = duration
|
|
562
|
-
else
|
|
563
|
-
____isWidgetProvided_44 = widgetOrDuration
|
|
564
|
-
end
|
|
565
|
-
__TS__SparseArrayPush(____array_45, ____isWidgetProvided_44)
|
|
566
|
-
____Effect_flash_47(
|
|
567
|
-
____Effect_46,
|
|
568
|
-
__TS__SparseArraySpread(____array_45)
|
|
569
|
-
)
|
|
590
|
+
function Buff.prototype.expire(self)
|
|
591
|
+
expireBuff(self)
|
|
570
592
|
end
|
|
571
593
|
function Buff.prototype.onCreate(self)
|
|
572
594
|
end
|
|
@@ -596,31 +618,32 @@ function Buff.prototype.onDestroy(self)
|
|
|
596
618
|
behavior:destroy()
|
|
597
619
|
end
|
|
598
620
|
end
|
|
599
|
-
|
|
621
|
+
local previousAbilityCooldownModifier = self[148]
|
|
622
|
+
if previousAbilityCooldownModifier then
|
|
623
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
624
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
625
|
+
end
|
|
626
|
+
end
|
|
627
|
+
if self[143] then
|
|
600
628
|
unit:decrementInvulnerabilityCounter()
|
|
601
629
|
end
|
|
602
|
-
if self[
|
|
630
|
+
if self[142] then
|
|
603
631
|
unit:decrementDisableAutoAttackCounter()
|
|
604
632
|
end
|
|
605
|
-
if self[
|
|
606
|
-
if self[
|
|
607
|
-
unit:
|
|
633
|
+
if self[140] then
|
|
634
|
+
if self[141] then
|
|
635
|
+
unit:decrementForceStunCounter()
|
|
608
636
|
end
|
|
609
637
|
unit:decrementStunCounter()
|
|
610
638
|
end
|
|
611
|
-
if self[
|
|
639
|
+
if self[139] then
|
|
612
640
|
unit:decrementGhostCounter()
|
|
613
641
|
end
|
|
614
642
|
if self._abilityTypeIds ~= nil then
|
|
615
|
-
for abilityTypeId in
|
|
643
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
616
644
|
unit:removeAbility(abilityTypeId)
|
|
617
645
|
end
|
|
618
646
|
end
|
|
619
|
-
if self._bonusIdByBonusType ~= nil then
|
|
620
|
-
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
621
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
622
|
-
end
|
|
623
|
-
end
|
|
624
647
|
Event.invoke(buffBeingDestroyedEvent, self)
|
|
625
648
|
self[100] = 3
|
|
626
649
|
return UnitBehavior.prototype.onDestroy(self)
|
|
@@ -650,8 +673,8 @@ function Buff.apply(self, ...)
|
|
|
650
673
|
end
|
|
651
674
|
end
|
|
652
675
|
function Buff.getByTypeId(self, unit, typeId)
|
|
653
|
-
local
|
|
654
|
-
local buff =
|
|
676
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
677
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
655
678
|
if __TS__InstanceOf(buff, self) then
|
|
656
679
|
return buff
|
|
657
680
|
end
|
|
@@ -665,9 +688,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
665
688
|
if self[121] ~= nil then
|
|
666
689
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
667
690
|
end
|
|
668
|
-
if self[
|
|
691
|
+
if self[145] then
|
|
669
692
|
unit:explode()
|
|
670
|
-
elseif self[
|
|
693
|
+
elseif self[144] then
|
|
671
694
|
unit:kill()
|
|
672
695
|
end
|
|
673
696
|
end
|
|
@@ -722,6 +745,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
722
745
|
end
|
|
723
746
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
724
747
|
if event.originalAmount ~= 0 then
|
|
748
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
749
|
+
if absorbedDamage > 0 then
|
|
750
|
+
event.amount = event.amount - absorbedDamage
|
|
751
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
752
|
+
local ____self__138_44 = self[138]
|
|
753
|
+
if ____self__138_44 == nil then
|
|
754
|
+
____self__138_44 = true
|
|
755
|
+
end
|
|
756
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
757
|
+
self:destroy()
|
|
758
|
+
end
|
|
759
|
+
end
|
|
725
760
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
726
761
|
self[133] = damageReceivedEventCount
|
|
727
762
|
if damageReceivedEventCount == self[134] then
|
|
@@ -809,8 +844,8 @@ __TS__SetDescriptor(
|
|
|
809
844
|
return
|
|
810
845
|
end
|
|
811
846
|
self[112] = damageInterval
|
|
812
|
-
local
|
|
813
|
-
local elapsed =
|
|
847
|
+
local ____opt_45 = self._timer
|
|
848
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
814
849
|
local timer = self[114]
|
|
815
850
|
if timer == nil then
|
|
816
851
|
timer = Timer:create()
|
|
@@ -889,8 +924,8 @@ __TS__SetDescriptor(
|
|
|
889
924
|
return
|
|
890
925
|
end
|
|
891
926
|
self[117] = healingInterval
|
|
892
|
-
local
|
|
893
|
-
local elapsed =
|
|
927
|
+
local ____opt_47 = self._timer
|
|
928
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
894
929
|
local timer = self[119]
|
|
895
930
|
if timer == nil then
|
|
896
931
|
timer = Timer:create()
|
|
@@ -971,24 +1006,50 @@ __TS__SetDescriptor(
|
|
|
971
1006
|
},
|
|
972
1007
|
true
|
|
973
1008
|
)
|
|
1009
|
+
__TS__SetDescriptor(
|
|
1010
|
+
Buff.prototype,
|
|
1011
|
+
"maxHealthIncrease",
|
|
1012
|
+
{
|
|
1013
|
+
get = function(self)
|
|
1014
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1015
|
+
end,
|
|
1016
|
+
set = function(self, maxHealthIncrease)
|
|
1017
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1018
|
+
end
|
|
1019
|
+
},
|
|
1020
|
+
true
|
|
1021
|
+
)
|
|
1022
|
+
__TS__SetDescriptor(
|
|
1023
|
+
Buff.prototype,
|
|
1024
|
+
"maxManaIncrease",
|
|
1025
|
+
{
|
|
1026
|
+
get = function(self)
|
|
1027
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1028
|
+
end,
|
|
1029
|
+
set = function(self, maxManaIncrease)
|
|
1030
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1031
|
+
end
|
|
1032
|
+
},
|
|
1033
|
+
true
|
|
1034
|
+
)
|
|
974
1035
|
__TS__SetDescriptor(
|
|
975
1036
|
Buff.prototype,
|
|
976
1037
|
"turnsIntoGhost",
|
|
977
1038
|
{
|
|
978
1039
|
get = function(self)
|
|
979
|
-
local
|
|
980
|
-
if
|
|
981
|
-
|
|
1040
|
+
local ____self__139_49 = self[139]
|
|
1041
|
+
if ____self__139_49 == nil then
|
|
1042
|
+
____self__139_49 = false
|
|
982
1043
|
end
|
|
983
|
-
return
|
|
1044
|
+
return ____self__139_49
|
|
984
1045
|
end,
|
|
985
1046
|
set = function(self, turnsIntoGhost)
|
|
986
|
-
if not turnsIntoGhost and self[
|
|
1047
|
+
if not turnsIntoGhost and self[139] then
|
|
987
1048
|
self.object:decrementGhostCounter()
|
|
988
|
-
self[
|
|
989
|
-
elseif turnsIntoGhost and not self[
|
|
1049
|
+
self[139] = nil
|
|
1050
|
+
elseif turnsIntoGhost and not self[139] then
|
|
990
1051
|
self.object:incrementGhostCounter()
|
|
991
|
-
self[
|
|
1052
|
+
self[139] = true
|
|
992
1053
|
end
|
|
993
1054
|
end
|
|
994
1055
|
},
|
|
@@ -999,25 +1060,25 @@ __TS__SetDescriptor(
|
|
|
999
1060
|
"stuns",
|
|
1000
1061
|
{
|
|
1001
1062
|
get = function(self)
|
|
1002
|
-
local
|
|
1003
|
-
if
|
|
1004
|
-
|
|
1063
|
+
local ____self__140_50 = self[140]
|
|
1064
|
+
if ____self__140_50 == nil then
|
|
1065
|
+
____self__140_50 = false
|
|
1005
1066
|
end
|
|
1006
|
-
return
|
|
1067
|
+
return ____self__140_50
|
|
1007
1068
|
end,
|
|
1008
1069
|
set = function(self, stuns)
|
|
1009
|
-
if not stuns and self[
|
|
1010
|
-
if self[
|
|
1011
|
-
self.object:
|
|
1070
|
+
if not stuns and self[140] then
|
|
1071
|
+
if self[141] then
|
|
1072
|
+
self.object:decrementForceStunCounter()
|
|
1012
1073
|
end
|
|
1013
1074
|
self.object:decrementStunCounter()
|
|
1014
|
-
self[
|
|
1015
|
-
elseif stuns and not self[
|
|
1016
|
-
if self[
|
|
1017
|
-
self.object:
|
|
1075
|
+
self[140] = nil
|
|
1076
|
+
elseif stuns and not self[140] then
|
|
1077
|
+
if self[141] then
|
|
1078
|
+
self.object:incrementForceStunCounter()
|
|
1018
1079
|
end
|
|
1019
1080
|
self.object:incrementStunCounter()
|
|
1020
|
-
self[
|
|
1081
|
+
self[140] = true
|
|
1021
1082
|
end
|
|
1022
1083
|
end
|
|
1023
1084
|
},
|
|
@@ -1028,23 +1089,23 @@ __TS__SetDescriptor(
|
|
|
1028
1089
|
"ignoresStunImmunity",
|
|
1029
1090
|
{
|
|
1030
1091
|
get = function(self)
|
|
1031
|
-
local
|
|
1032
|
-
if
|
|
1033
|
-
|
|
1092
|
+
local ____self__141_51 = self[141]
|
|
1093
|
+
if ____self__141_51 == nil then
|
|
1094
|
+
____self__141_51 = false
|
|
1034
1095
|
end
|
|
1035
|
-
return
|
|
1096
|
+
return ____self__141_51
|
|
1036
1097
|
end,
|
|
1037
1098
|
set = function(self, ignoresStunImmunity)
|
|
1038
|
-
if not ignoresStunImmunity and self[
|
|
1039
|
-
if self[
|
|
1040
|
-
self.object:
|
|
1099
|
+
if not ignoresStunImmunity and self[141] then
|
|
1100
|
+
if self[140] then
|
|
1101
|
+
self.object:decrementForceStunCounter()
|
|
1041
1102
|
end
|
|
1042
|
-
self[
|
|
1043
|
-
elseif ignoresStunImmunity and not self[
|
|
1044
|
-
if self[
|
|
1045
|
-
self.object:
|
|
1103
|
+
self[141] = nil
|
|
1104
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1105
|
+
if self[140] then
|
|
1106
|
+
self.object:incrementForceStunCounter()
|
|
1046
1107
|
end
|
|
1047
|
-
self[
|
|
1108
|
+
self[141] = true
|
|
1048
1109
|
end
|
|
1049
1110
|
end
|
|
1050
1111
|
},
|
|
@@ -1055,19 +1116,19 @@ __TS__SetDescriptor(
|
|
|
1055
1116
|
"disablesAutoAttack",
|
|
1056
1117
|
{
|
|
1057
1118
|
get = function(self)
|
|
1058
|
-
local
|
|
1059
|
-
if
|
|
1060
|
-
|
|
1119
|
+
local ____self__142_52 = self[142]
|
|
1120
|
+
if ____self__142_52 == nil then
|
|
1121
|
+
____self__142_52 = false
|
|
1061
1122
|
end
|
|
1062
|
-
return
|
|
1123
|
+
return ____self__142_52
|
|
1063
1124
|
end,
|
|
1064
1125
|
set = function(self, disablesAutoAttack)
|
|
1065
|
-
if not disablesAutoAttack and self[
|
|
1126
|
+
if not disablesAutoAttack and self[142] then
|
|
1066
1127
|
self.object:decrementDisableAutoAttackCounter()
|
|
1067
|
-
self[
|
|
1068
|
-
elseif disablesAutoAttack and not self[
|
|
1128
|
+
self[142] = nil
|
|
1129
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1069
1130
|
self.object:incrementDisableAutoAttackCounter()
|
|
1070
|
-
self[
|
|
1131
|
+
self[142] = true
|
|
1071
1132
|
end
|
|
1072
1133
|
end
|
|
1073
1134
|
},
|
|
@@ -1078,19 +1139,19 @@ __TS__SetDescriptor(
|
|
|
1078
1139
|
"providesInvulnerability",
|
|
1079
1140
|
{
|
|
1080
1141
|
get = function(self)
|
|
1081
|
-
local
|
|
1082
|
-
if
|
|
1083
|
-
|
|
1142
|
+
local ____self__143_53 = self[143]
|
|
1143
|
+
if ____self__143_53 == nil then
|
|
1144
|
+
____self__143_53 = false
|
|
1084
1145
|
end
|
|
1085
|
-
return
|
|
1146
|
+
return ____self__143_53
|
|
1086
1147
|
end,
|
|
1087
1148
|
set = function(self, providesInvulnerability)
|
|
1088
|
-
if not providesInvulnerability and self[
|
|
1149
|
+
if not providesInvulnerability and self[143] then
|
|
1089
1150
|
self.object:decrementInvulnerabilityCounter()
|
|
1090
|
-
self[
|
|
1091
|
-
elseif providesInvulnerability and not self[
|
|
1151
|
+
self[143] = nil
|
|
1152
|
+
elseif providesInvulnerability and not self[143] then
|
|
1092
1153
|
self.object:incrementInvulnerabilityCounter()
|
|
1093
|
-
self[
|
|
1154
|
+
self[143] = true
|
|
1094
1155
|
end
|
|
1095
1156
|
end
|
|
1096
1157
|
},
|
|
@@ -1101,17 +1162,17 @@ __TS__SetDescriptor(
|
|
|
1101
1162
|
"killsOnExpiration",
|
|
1102
1163
|
{
|
|
1103
1164
|
get = function(self)
|
|
1104
|
-
local
|
|
1105
|
-
if
|
|
1106
|
-
|
|
1165
|
+
local ____self__144_54 = self[144]
|
|
1166
|
+
if ____self__144_54 == nil then
|
|
1167
|
+
____self__144_54 = false
|
|
1107
1168
|
end
|
|
1108
|
-
return
|
|
1169
|
+
return ____self__144_54
|
|
1109
1170
|
end,
|
|
1110
1171
|
set = function(self, killsOnExpiration)
|
|
1111
|
-
if not killsOnExpiration and self[
|
|
1112
|
-
self[
|
|
1113
|
-
elseif killsOnExpiration and not self[
|
|
1114
|
-
self[
|
|
1172
|
+
if not killsOnExpiration and self[144] then
|
|
1173
|
+
self[144] = nil
|
|
1174
|
+
elseif killsOnExpiration and not self[144] then
|
|
1175
|
+
self[144] = true
|
|
1115
1176
|
end
|
|
1116
1177
|
end
|
|
1117
1178
|
},
|
|
@@ -1122,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1122
1183
|
"explodesOnExpiration",
|
|
1123
1184
|
{
|
|
1124
1185
|
get = function(self)
|
|
1125
|
-
local
|
|
1126
|
-
if
|
|
1127
|
-
|
|
1186
|
+
local ____self__145_55 = self[145]
|
|
1187
|
+
if ____self__145_55 == nil then
|
|
1188
|
+
____self__145_55 = false
|
|
1128
1189
|
end
|
|
1129
|
-
return
|
|
1190
|
+
return ____self__145_55
|
|
1130
1191
|
end,
|
|
1131
1192
|
set = function(self, killsOnExpiration)
|
|
1132
|
-
if not killsOnExpiration and self[
|
|
1133
|
-
self[
|
|
1134
|
-
elseif killsOnExpiration and not self[
|
|
1135
|
-
self[
|
|
1193
|
+
if not killsOnExpiration and self[145] then
|
|
1194
|
+
self[145] = nil
|
|
1195
|
+
elseif killsOnExpiration and not self[145] then
|
|
1196
|
+
self[145] = true
|
|
1136
1197
|
end
|
|
1137
1198
|
end
|
|
1138
1199
|
},
|
|
@@ -1241,12 +1302,39 @@ __TS__SetDescriptor(
|
|
|
1241
1302
|
},
|
|
1242
1303
|
true
|
|
1243
1304
|
)
|
|
1305
|
+
__TS__SetDescriptor(
|
|
1306
|
+
Buff.prototype,
|
|
1307
|
+
"manaRegenerationRateIncreaseFactor",
|
|
1308
|
+
{
|
|
1309
|
+
get = function(self)
|
|
1310
|
+
return self:getUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR)
|
|
1311
|
+
end,
|
|
1312
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
1313
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR, manaRegenerationRateIncreaseFactor)
|
|
1314
|
+
end
|
|
1315
|
+
},
|
|
1316
|
+
true
|
|
1317
|
+
)
|
|
1244
1318
|
__TS__SetDescriptor(
|
|
1245
1319
|
Buff.prototype,
|
|
1246
1320
|
"duration",
|
|
1247
|
-
{
|
|
1248
|
-
|
|
1249
|
-
|
|
1321
|
+
{
|
|
1322
|
+
get = function(self)
|
|
1323
|
+
return self[103]
|
|
1324
|
+
end,
|
|
1325
|
+
set = function(self, duration)
|
|
1326
|
+
if duration <= 0 then
|
|
1327
|
+
local timer = self._timer
|
|
1328
|
+
if timer ~= nil then
|
|
1329
|
+
timer:destroy()
|
|
1330
|
+
self._timer = nil
|
|
1331
|
+
end
|
|
1332
|
+
self[103] = 0
|
|
1333
|
+
else
|
|
1334
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1335
|
+
end
|
|
1336
|
+
end
|
|
1337
|
+
},
|
|
1250
1338
|
true
|
|
1251
1339
|
)
|
|
1252
1340
|
__TS__SetDescriptor(
|
|
@@ -1254,13 +1342,13 @@ __TS__SetDescriptor(
|
|
|
1254
1342
|
"remainingDuration",
|
|
1255
1343
|
{
|
|
1256
1344
|
get = function(self)
|
|
1257
|
-
local
|
|
1258
|
-
return
|
|
1345
|
+
local ____opt_56 = self._timer
|
|
1346
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1259
1347
|
end,
|
|
1260
1348
|
set = function(self, remainingDuration)
|
|
1261
|
-
local
|
|
1262
|
-
local
|
|
1263
|
-
local remainingDurationDelta =
|
|
1349
|
+
local ____remainingDuration_60 = remainingDuration
|
|
1350
|
+
local ____opt_58 = self._timer
|
|
1351
|
+
local remainingDurationDelta = ____remainingDuration_60 - (____opt_58 and ____opt_58.remaining or 0)
|
|
1264
1352
|
if remainingDurationDelta ~= 0 then
|
|
1265
1353
|
self[103] = self[103] + remainingDurationDelta
|
|
1266
1354
|
if remainingDuration <= 0 then
|
|
@@ -1275,7 +1363,7 @@ __TS__SetDescriptor(
|
|
|
1275
1363
|
remainingDuration,
|
|
1276
1364
|
self._spellStealPriority,
|
|
1277
1365
|
self._learnLevelMinimum,
|
|
1278
|
-
self[
|
|
1366
|
+
self[146]
|
|
1279
1367
|
) then
|
|
1280
1368
|
local timer = self._timer
|
|
1281
1369
|
if timer == nil then
|
|
@@ -1290,6 +1378,97 @@ __TS__SetDescriptor(
|
|
|
1290
1378
|
},
|
|
1291
1379
|
true
|
|
1292
1380
|
)
|
|
1381
|
+
__TS__SetDescriptor(
|
|
1382
|
+
Buff.prototype,
|
|
1383
|
+
"absorbedDamageFactor",
|
|
1384
|
+
{
|
|
1385
|
+
get = function(self)
|
|
1386
|
+
return self[135] or 1
|
|
1387
|
+
end,
|
|
1388
|
+
set = function(self, absorbedDamageFactor)
|
|
1389
|
+
if absorbedDamageFactor == 1 then
|
|
1390
|
+
self[135] = nil
|
|
1391
|
+
else
|
|
1392
|
+
self[135] = absorbedDamageFactor
|
|
1393
|
+
end
|
|
1394
|
+
end
|
|
1395
|
+
},
|
|
1396
|
+
true
|
|
1397
|
+
)
|
|
1398
|
+
__TS__SetDescriptor(
|
|
1399
|
+
Buff.prototype,
|
|
1400
|
+
"maximumDamageAbsorbed",
|
|
1401
|
+
{
|
|
1402
|
+
get = function(self)
|
|
1403
|
+
return self[136] or 0
|
|
1404
|
+
end,
|
|
1405
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1406
|
+
if maximumDamageAbsorbed == 0 then
|
|
1407
|
+
self[136] = nil
|
|
1408
|
+
else
|
|
1409
|
+
self[136] = maximumDamageAbsorbed
|
|
1410
|
+
end
|
|
1411
|
+
end
|
|
1412
|
+
},
|
|
1413
|
+
true
|
|
1414
|
+
)
|
|
1415
|
+
__TS__SetDescriptor(
|
|
1416
|
+
Buff.prototype,
|
|
1417
|
+
"damageAbsorbed",
|
|
1418
|
+
{get = function(self)
|
|
1419
|
+
return self[137] or 0
|
|
1420
|
+
end},
|
|
1421
|
+
true
|
|
1422
|
+
)
|
|
1423
|
+
__TS__SetDescriptor(
|
|
1424
|
+
Buff.prototype,
|
|
1425
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1426
|
+
{
|
|
1427
|
+
get = function(self)
|
|
1428
|
+
local ____self__138_61 = self[138]
|
|
1429
|
+
if ____self__138_61 == nil then
|
|
1430
|
+
____self__138_61 = true
|
|
1431
|
+
end
|
|
1432
|
+
return ____self__138_61
|
|
1433
|
+
end,
|
|
1434
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1435
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1436
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1437
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1438
|
+
else
|
|
1439
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1440
|
+
end
|
|
1441
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1442
|
+
end
|
|
1443
|
+
},
|
|
1444
|
+
true
|
|
1445
|
+
)
|
|
1446
|
+
__TS__SetDescriptor(
|
|
1447
|
+
Buff.prototype,
|
|
1448
|
+
"abilityCooldownFactor",
|
|
1449
|
+
{
|
|
1450
|
+
get = function(self)
|
|
1451
|
+
return self[147] or 1
|
|
1452
|
+
end,
|
|
1453
|
+
set = function(self, abilityCooldownFactor)
|
|
1454
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1455
|
+
if previousAbilityCooldownModifier then
|
|
1456
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1457
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1458
|
+
end
|
|
1459
|
+
end
|
|
1460
|
+
local function modifier(ability, level, cooldown)
|
|
1461
|
+
return cooldown * abilityCooldownFactor
|
|
1462
|
+
end
|
|
1463
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1464
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1465
|
+
end
|
|
1466
|
+
self[148] = modifier
|
|
1467
|
+
self[147] = abilityCooldownFactor
|
|
1468
|
+
end
|
|
1469
|
+
},
|
|
1470
|
+
true
|
|
1471
|
+
)
|
|
1293
1472
|
Buff.createdEvent = buffCreatedEvent
|
|
1294
1473
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1295
1474
|
(function(self)
|
|
@@ -1348,5 +1527,8 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1348
1527
|
buffCreatedEvent:addListener(function(buff)
|
|
1349
1528
|
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1350
1529
|
end)
|
|
1530
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1531
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1532
|
+
end)
|
|
1351
1533
|
end)(Buff)
|
|
1352
1534
|
return ____exports
|