warscript 0.0.1-dev.ff5dbcd → 0.0.1-dev.fff719b
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 +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +32 -14
- package/engine/buff.lua +249 -152
- 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/mechanics/cast-ability.lua +6 -3
- 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/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- 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/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -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 +52 -14
- package/engine/internal/unit.d.ts +42 -24
- package/engine/internal/unit.lua +377 -232
- 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/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 +5 -0
- package/engine/unit.lua +5 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/package.json +2 -2
- package/patch-lua.lua +9 -0
- 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-map.d.ts +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +26 -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/records.lua +20 -1
- 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
|
|
@@ -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 = {}
|
|
@@ -101,6 +106,7 @@ local buffParametersKeys = {
|
|
|
101
106
|
armorIncreaseFactor = true,
|
|
102
107
|
attackSpeedIncreaseFactor = true,
|
|
103
108
|
movementSpeedIncreaseFactor = true,
|
|
109
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
104
110
|
evasionProbability = true,
|
|
105
111
|
missProbability = true,
|
|
106
112
|
damageFactor = true,
|
|
@@ -109,6 +115,7 @@ local buffParametersKeys = {
|
|
|
109
115
|
durationIncreaseOnAutoAttack = true,
|
|
110
116
|
maximumDuration = true,
|
|
111
117
|
maximumRemainingDuration = true,
|
|
118
|
+
turnsIntoGhost = true,
|
|
112
119
|
stuns = true,
|
|
113
120
|
ignoresStunImmunity = true,
|
|
114
121
|
providesStunImmunity = true,
|
|
@@ -123,7 +130,8 @@ local buffParametersKeys = {
|
|
|
123
130
|
damageOnExpiration = true,
|
|
124
131
|
healingOnExpiration = true,
|
|
125
132
|
killsOnExpiration = true,
|
|
126
|
-
explodesOnExpiration = true
|
|
133
|
+
explodesOnExpiration = true,
|
|
134
|
+
abilityCooldownFactor = true
|
|
127
135
|
}
|
|
128
136
|
local function resolveEnumValue(ability, level, value)
|
|
129
137
|
if value == nil or type(value) == "number" then
|
|
@@ -174,6 +182,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
174
182
|
end
|
|
175
183
|
end
|
|
176
184
|
local buffBooleanParameters = {
|
|
185
|
+
"turnsIntoGhost",
|
|
177
186
|
"stuns",
|
|
178
187
|
"ignoresStunImmunity",
|
|
179
188
|
"disablesAutoAttack",
|
|
@@ -185,6 +194,7 @@ local buffNumberParameters = {
|
|
|
185
194
|
"durationIncreaseOnAutoAttack",
|
|
186
195
|
"attackSpeedIncreaseFactor",
|
|
187
196
|
"movementSpeedIncreaseFactor",
|
|
197
|
+
"manaRegenerationRateIncreaseFactor",
|
|
188
198
|
"evasionProbability",
|
|
189
199
|
"armorIncrease",
|
|
190
200
|
"damageFactor",
|
|
@@ -199,7 +209,8 @@ local buffNumberParameters = {
|
|
|
199
209
|
"healingPerInterval",
|
|
200
210
|
"healingOverDuration",
|
|
201
211
|
"damageOnExpiration",
|
|
202
|
-
"healingOnExpiration"
|
|
212
|
+
"healingOnExpiration",
|
|
213
|
+
"abilityCooldownFactor"
|
|
203
214
|
}
|
|
204
215
|
local unsuccessfulApplicationMarker = {}
|
|
205
216
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -302,7 +313,8 @@ buffHealingIntervalTimerCallback = function(buff)
|
|
|
302
313
|
source:healTarget(buff[101], healingPerInterval)
|
|
303
314
|
end
|
|
304
315
|
end
|
|
305
|
-
local
|
|
316
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
317
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
306
318
|
____exports.Buff = __TS__Class()
|
|
307
319
|
local Buff = ____exports.Buff
|
|
308
320
|
Buff.name = "Buff"
|
|
@@ -317,33 +329,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
317
329
|
local polarity
|
|
318
330
|
local resistanceType
|
|
319
331
|
local ability
|
|
332
|
+
local abilityBehavior
|
|
320
333
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
321
334
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
322
335
|
polarity = resistanceTypeOrPolarity
|
|
323
336
|
resistanceType = abilityOrParametersOrResistanceType
|
|
324
|
-
if __TS__InstanceOf(parametersOrAbility,
|
|
337
|
+
if __TS__InstanceOf(parametersOrAbility, AbilityBehavior) then
|
|
338
|
+
abilityBehavior = parametersOrAbility
|
|
339
|
+
ability = abilityBehavior.ability
|
|
340
|
+
elseif __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
325
341
|
ability = parametersOrAbility
|
|
326
|
-
|
|
327
|
-
ability = nil
|
|
342
|
+
elseif parametersOrAbility ~= nil then
|
|
328
343
|
parameters = parametersOrAbility
|
|
329
344
|
end
|
|
330
345
|
else
|
|
331
346
|
typeId = typeIdOrTypeIds
|
|
332
347
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
333
348
|
resistanceType = resistanceTypeOrPolarity
|
|
334
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType,
|
|
349
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, AbilityBehavior) then
|
|
350
|
+
abilityBehavior = abilityOrParametersOrResistanceType
|
|
351
|
+
ability = abilityBehavior.ability
|
|
352
|
+
parameters = parametersOrAbility
|
|
353
|
+
elseif __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
335
354
|
ability = abilityOrParametersOrResistanceType
|
|
336
355
|
parameters = parametersOrAbility
|
|
337
|
-
|
|
338
|
-
ability = nil
|
|
356
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
339
357
|
parameters = abilityOrParametersOrResistanceType
|
|
358
|
+
else
|
|
359
|
+
parameters = parametersOrAbility
|
|
340
360
|
end
|
|
341
361
|
end
|
|
362
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
342
363
|
self.typeId = typeId
|
|
343
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
344
|
-
parameters = ability
|
|
345
|
-
ability = nil
|
|
346
|
-
end
|
|
347
364
|
local defaultParameters = self.constructor.defaultParameters
|
|
348
365
|
local level = parameters and parameters.level or defaultParameters.level
|
|
349
366
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -371,7 +388,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
371
388
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
372
389
|
if missProbability ~= nil then
|
|
373
390
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
374
|
-
self[
|
|
391
|
+
self[142] = missProbability
|
|
375
392
|
end
|
|
376
393
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
377
394
|
if buffByTypeId == nil then
|
|
@@ -454,24 +471,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
454
471
|
abilityTypeIds = {}
|
|
455
472
|
self._abilityTypeIds = abilityTypeIds
|
|
456
473
|
end
|
|
457
|
-
for
|
|
474
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
475
|
+
local abilityParameters = parametersAbilityTypeIds[abilityTypeId]
|
|
458
476
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
459
477
|
if addedAbility ~= nil then
|
|
460
478
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
461
479
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
471
|
-
)
|
|
472
|
-
end
|
|
480
|
+
if abilityParameters.isButtonVisible == false then
|
|
481
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
482
|
+
end
|
|
483
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
484
|
+
field[1]:setValue(
|
|
485
|
+
addedAbility,
|
|
486
|
+
resolveNumberValue(ability, level, field[2])
|
|
487
|
+
)
|
|
473
488
|
end
|
|
474
|
-
abilityTypeIds[
|
|
489
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
475
490
|
end
|
|
476
491
|
end
|
|
477
492
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -483,18 +498,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
483
498
|
self._behaviors = behaviors
|
|
484
499
|
end
|
|
485
500
|
end
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
501
|
+
if parameters ~= nil then
|
|
502
|
+
local additionalParameters = {}
|
|
503
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
504
|
+
if not buffParametersKeys[key] then
|
|
505
|
+
if ability then
|
|
506
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
507
|
+
else
|
|
508
|
+
additionalParameters[key] = parameters[key]
|
|
509
|
+
end
|
|
493
510
|
end
|
|
494
511
|
end
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
512
|
+
if (next(additionalParameters)) ~= nil then
|
|
513
|
+
self.parameters = additionalParameters
|
|
514
|
+
end
|
|
498
515
|
end
|
|
499
516
|
end
|
|
500
517
|
if duration ~= nil and duration > 0 then
|
|
@@ -504,64 +521,68 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
504
521
|
end
|
|
505
522
|
self:onCreate()
|
|
506
523
|
self[100] = 1
|
|
524
|
+
Event.invoke(buffCreatedEvent, self)
|
|
507
525
|
end
|
|
508
|
-
function Buff.prototype.
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
526
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
527
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
528
|
+
local abilityCooldownModifier = self[144]
|
|
529
|
+
if abilityCooldownModifier then
|
|
530
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
531
|
+
end
|
|
532
|
+
end
|
|
512
533
|
end
|
|
513
|
-
function Buff.prototype.
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
534
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
535
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
536
|
+
local abilityCooldownModifier = self[144]
|
|
537
|
+
if abilityCooldownModifier then
|
|
538
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
539
|
+
end
|
|
518
540
|
end
|
|
519
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
520
541
|
end
|
|
521
542
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
522
543
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
523
544
|
Effect:flash(self[105], widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
524
545
|
else
|
|
525
546
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
526
|
-
local
|
|
527
|
-
local
|
|
528
|
-
local
|
|
547
|
+
local ____Effect_40 = Effect
|
|
548
|
+
local ____Effect_flash_41 = Effect.flash
|
|
549
|
+
local ____array_39 = __TS__SparseArrayNew(
|
|
529
550
|
self[105],
|
|
530
551
|
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
531
552
|
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
532
553
|
)
|
|
533
|
-
local
|
|
554
|
+
local ____isWidgetProvided_38
|
|
534
555
|
if isWidgetProvided then
|
|
535
|
-
|
|
556
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
536
557
|
else
|
|
537
|
-
|
|
558
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
538
559
|
end
|
|
539
|
-
__TS__SparseArrayPush(
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
__TS__SparseArraySpread(
|
|
560
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
561
|
+
____Effect_flash_41(
|
|
562
|
+
____Effect_40,
|
|
563
|
+
__TS__SparseArraySpread(____array_39)
|
|
543
564
|
)
|
|
544
565
|
end
|
|
545
566
|
end
|
|
546
567
|
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
547
568
|
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
548
|
-
local
|
|
549
|
-
local
|
|
550
|
-
local
|
|
569
|
+
local ____Effect_44 = Effect
|
|
570
|
+
local ____Effect_flash_45 = Effect.flash
|
|
571
|
+
local ____array_43 = __TS__SparseArrayNew(
|
|
551
572
|
self[106],
|
|
552
573
|
isWidgetProvided and widgetOrDuration or self._unit,
|
|
553
574
|
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
554
575
|
)
|
|
555
|
-
local
|
|
576
|
+
local ____isWidgetProvided_42
|
|
556
577
|
if isWidgetProvided then
|
|
557
|
-
|
|
578
|
+
____isWidgetProvided_42 = duration
|
|
558
579
|
else
|
|
559
|
-
|
|
580
|
+
____isWidgetProvided_42 = widgetOrDuration
|
|
560
581
|
end
|
|
561
|
-
__TS__SparseArrayPush(
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
__TS__SparseArraySpread(
|
|
582
|
+
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
583
|
+
____Effect_flash_45(
|
|
584
|
+
____Effect_44,
|
|
585
|
+
__TS__SparseArraySpread(____array_43)
|
|
565
586
|
)
|
|
566
587
|
end
|
|
567
588
|
function Buff.prototype.onCreate(self)
|
|
@@ -592,26 +613,33 @@ function Buff.prototype.onDestroy(self)
|
|
|
592
613
|
behavior:destroy()
|
|
593
614
|
end
|
|
594
615
|
end
|
|
595
|
-
|
|
616
|
+
local previousAbilityCooldownModifier = self[144]
|
|
617
|
+
if previousAbilityCooldownModifier then
|
|
618
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
619
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
620
|
+
end
|
|
621
|
+
end
|
|
622
|
+
if self[139] then
|
|
623
|
+
unit:decrementInvulnerabilityCounter()
|
|
624
|
+
end
|
|
625
|
+
if self[138] then
|
|
596
626
|
unit:decrementDisableAutoAttackCounter()
|
|
597
627
|
end
|
|
598
|
-
if self[
|
|
599
|
-
if self[
|
|
600
|
-
unit:
|
|
628
|
+
if self[136] then
|
|
629
|
+
if self[137] then
|
|
630
|
+
unit:decrementForceStunCounter()
|
|
601
631
|
end
|
|
602
632
|
unit:decrementStunCounter()
|
|
603
633
|
end
|
|
634
|
+
if self[135] then
|
|
635
|
+
unit:decrementGhostCounter()
|
|
636
|
+
end
|
|
604
637
|
if self._abilityTypeIds ~= nil then
|
|
605
|
-
for abilityTypeId in
|
|
638
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
606
639
|
unit:removeAbility(abilityTypeId)
|
|
607
640
|
end
|
|
608
641
|
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)
|
|
642
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
615
643
|
self[100] = 3
|
|
616
644
|
return UnitBehavior.prototype.onDestroy(self)
|
|
617
645
|
end
|
|
@@ -640,8 +668,8 @@ function Buff.apply(self, ...)
|
|
|
640
668
|
end
|
|
641
669
|
end
|
|
642
670
|
function Buff.getByTypeId(self, unit, typeId)
|
|
643
|
-
local
|
|
644
|
-
local buff =
|
|
671
|
+
local ____opt_46 = buffByTypeIdByUnit[unit]
|
|
672
|
+
local buff = ____opt_46 and ____opt_46[typeId]
|
|
645
673
|
if __TS__InstanceOf(buff, self) then
|
|
646
674
|
return buff
|
|
647
675
|
end
|
|
@@ -655,9 +683,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
655
683
|
if self[121] ~= nil then
|
|
656
684
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
657
685
|
end
|
|
658
|
-
if self[
|
|
686
|
+
if self[141] then
|
|
659
687
|
unit:explode()
|
|
660
|
-
elseif self[
|
|
688
|
+
elseif self[140] then
|
|
661
689
|
unit:kill()
|
|
662
690
|
end
|
|
663
691
|
end
|
|
@@ -799,8 +827,8 @@ __TS__SetDescriptor(
|
|
|
799
827
|
return
|
|
800
828
|
end
|
|
801
829
|
self[112] = damageInterval
|
|
802
|
-
local
|
|
803
|
-
local elapsed =
|
|
830
|
+
local ____opt_48 = self._timer
|
|
831
|
+
local elapsed = ____opt_48 and ____opt_48.elapsed or 0
|
|
804
832
|
local timer = self[114]
|
|
805
833
|
if timer == nil then
|
|
806
834
|
timer = Timer:create()
|
|
@@ -879,8 +907,8 @@ __TS__SetDescriptor(
|
|
|
879
907
|
return
|
|
880
908
|
end
|
|
881
909
|
self[117] = healingInterval
|
|
882
|
-
local
|
|
883
|
-
local elapsed =
|
|
910
|
+
local ____opt_50 = self._timer
|
|
911
|
+
local elapsed = ____opt_50 and ____opt_50.elapsed or 0
|
|
884
912
|
local timer = self[119]
|
|
885
913
|
if timer == nil then
|
|
886
914
|
timer = Timer:create()
|
|
@@ -961,30 +989,53 @@ __TS__SetDescriptor(
|
|
|
961
989
|
},
|
|
962
990
|
true
|
|
963
991
|
)
|
|
992
|
+
__TS__SetDescriptor(
|
|
993
|
+
Buff.prototype,
|
|
994
|
+
"turnsIntoGhost",
|
|
995
|
+
{
|
|
996
|
+
get = function(self)
|
|
997
|
+
local ____self__135_52 = self[135]
|
|
998
|
+
if ____self__135_52 == nil then
|
|
999
|
+
____self__135_52 = false
|
|
1000
|
+
end
|
|
1001
|
+
return ____self__135_52
|
|
1002
|
+
end,
|
|
1003
|
+
set = function(self, turnsIntoGhost)
|
|
1004
|
+
if not turnsIntoGhost and self[135] then
|
|
1005
|
+
self.object:decrementGhostCounter()
|
|
1006
|
+
self[135] = nil
|
|
1007
|
+
elseif turnsIntoGhost and not self[135] then
|
|
1008
|
+
self.object:incrementGhostCounter()
|
|
1009
|
+
self[135] = true
|
|
1010
|
+
end
|
|
1011
|
+
end
|
|
1012
|
+
},
|
|
1013
|
+
true
|
|
1014
|
+
)
|
|
964
1015
|
__TS__SetDescriptor(
|
|
965
1016
|
Buff.prototype,
|
|
966
1017
|
"stuns",
|
|
967
1018
|
{
|
|
968
1019
|
get = function(self)
|
|
969
|
-
local
|
|
970
|
-
if
|
|
971
|
-
|
|
1020
|
+
local ____self__136_53 = self[136]
|
|
1021
|
+
if ____self__136_53 == nil then
|
|
1022
|
+
____self__136_53 = false
|
|
972
1023
|
end
|
|
973
|
-
return
|
|
1024
|
+
return ____self__136_53
|
|
974
1025
|
end,
|
|
975
1026
|
set = function(self, stuns)
|
|
976
|
-
if not stuns and self[
|
|
977
|
-
if self[
|
|
978
|
-
self.object:
|
|
1027
|
+
if not stuns and self[136] then
|
|
1028
|
+
if self[137] then
|
|
1029
|
+
self.object:decrementForceStunCounter()
|
|
979
1030
|
end
|
|
980
1031
|
self.object:decrementStunCounter()
|
|
981
|
-
self[
|
|
982
|
-
elseif stuns and not self[
|
|
983
|
-
if self[
|
|
984
|
-
self.object:
|
|
1032
|
+
self[136] = nil
|
|
1033
|
+
elseif stuns and not self[136] then
|
|
1034
|
+
if self[137] then
|
|
1035
|
+
self.object:incrementForceStunCounter()
|
|
985
1036
|
end
|
|
986
1037
|
self.object:incrementStunCounter()
|
|
987
|
-
self[
|
|
1038
|
+
self[136] = true
|
|
988
1039
|
end
|
|
989
1040
|
end
|
|
990
1041
|
},
|
|
@@ -995,23 +1046,23 @@ __TS__SetDescriptor(
|
|
|
995
1046
|
"ignoresStunImmunity",
|
|
996
1047
|
{
|
|
997
1048
|
get = function(self)
|
|
998
|
-
local
|
|
999
|
-
if
|
|
1000
|
-
|
|
1049
|
+
local ____self__137_54 = self[137]
|
|
1050
|
+
if ____self__137_54 == nil then
|
|
1051
|
+
____self__137_54 = false
|
|
1001
1052
|
end
|
|
1002
|
-
return
|
|
1053
|
+
return ____self__137_54
|
|
1003
1054
|
end,
|
|
1004
1055
|
set = function(self, ignoresStunImmunity)
|
|
1005
|
-
if not ignoresStunImmunity and self[
|
|
1006
|
-
if self[
|
|
1007
|
-
self.object:
|
|
1056
|
+
if not ignoresStunImmunity and self[137] then
|
|
1057
|
+
if self[136] then
|
|
1058
|
+
self.object:decrementForceStunCounter()
|
|
1008
1059
|
end
|
|
1009
|
-
self[
|
|
1010
|
-
elseif ignoresStunImmunity and not self[
|
|
1011
|
-
if self[
|
|
1012
|
-
self.object:
|
|
1060
|
+
self[137] = nil
|
|
1061
|
+
elseif ignoresStunImmunity and not self[137] then
|
|
1062
|
+
if self[136] then
|
|
1063
|
+
self.object:incrementForceStunCounter()
|
|
1013
1064
|
end
|
|
1014
|
-
self[
|
|
1065
|
+
self[137] = true
|
|
1015
1066
|
end
|
|
1016
1067
|
end
|
|
1017
1068
|
},
|
|
@@ -1022,19 +1073,19 @@ __TS__SetDescriptor(
|
|
|
1022
1073
|
"disablesAutoAttack",
|
|
1023
1074
|
{
|
|
1024
1075
|
get = function(self)
|
|
1025
|
-
local
|
|
1026
|
-
if
|
|
1027
|
-
|
|
1076
|
+
local ____self__138_55 = self[138]
|
|
1077
|
+
if ____self__138_55 == nil then
|
|
1078
|
+
____self__138_55 = false
|
|
1028
1079
|
end
|
|
1029
|
-
return
|
|
1080
|
+
return ____self__138_55
|
|
1030
1081
|
end,
|
|
1031
1082
|
set = function(self, disablesAutoAttack)
|
|
1032
|
-
if not disablesAutoAttack and self[
|
|
1083
|
+
if not disablesAutoAttack and self[138] then
|
|
1033
1084
|
self.object:decrementDisableAutoAttackCounter()
|
|
1034
|
-
self[
|
|
1035
|
-
elseif disablesAutoAttack and not self[
|
|
1085
|
+
self[138] = nil
|
|
1086
|
+
elseif disablesAutoAttack and not self[138] then
|
|
1036
1087
|
self.object:incrementDisableAutoAttackCounter()
|
|
1037
|
-
self[
|
|
1088
|
+
self[138] = true
|
|
1038
1089
|
end
|
|
1039
1090
|
end
|
|
1040
1091
|
},
|
|
@@ -1045,19 +1096,19 @@ __TS__SetDescriptor(
|
|
|
1045
1096
|
"providesInvulnerability",
|
|
1046
1097
|
{
|
|
1047
1098
|
get = function(self)
|
|
1048
|
-
local
|
|
1049
|
-
if
|
|
1050
|
-
|
|
1099
|
+
local ____self__139_56 = self[139]
|
|
1100
|
+
if ____self__139_56 == nil then
|
|
1101
|
+
____self__139_56 = false
|
|
1051
1102
|
end
|
|
1052
|
-
return
|
|
1103
|
+
return ____self__139_56
|
|
1053
1104
|
end,
|
|
1054
1105
|
set = function(self, providesInvulnerability)
|
|
1055
|
-
if not providesInvulnerability and self[
|
|
1106
|
+
if not providesInvulnerability and self[139] then
|
|
1056
1107
|
self.object:decrementInvulnerabilityCounter()
|
|
1057
|
-
self[
|
|
1058
|
-
elseif providesInvulnerability and not self[
|
|
1108
|
+
self[139] = nil
|
|
1109
|
+
elseif providesInvulnerability and not self[139] then
|
|
1059
1110
|
self.object:incrementInvulnerabilityCounter()
|
|
1060
|
-
self[
|
|
1111
|
+
self[139] = true
|
|
1061
1112
|
end
|
|
1062
1113
|
end
|
|
1063
1114
|
},
|
|
@@ -1068,17 +1119,17 @@ __TS__SetDescriptor(
|
|
|
1068
1119
|
"killsOnExpiration",
|
|
1069
1120
|
{
|
|
1070
1121
|
get = function(self)
|
|
1071
|
-
local
|
|
1072
|
-
if
|
|
1073
|
-
|
|
1122
|
+
local ____self__140_57 = self[140]
|
|
1123
|
+
if ____self__140_57 == nil then
|
|
1124
|
+
____self__140_57 = false
|
|
1074
1125
|
end
|
|
1075
|
-
return
|
|
1126
|
+
return ____self__140_57
|
|
1076
1127
|
end,
|
|
1077
1128
|
set = function(self, killsOnExpiration)
|
|
1078
|
-
if not killsOnExpiration and self[
|
|
1079
|
-
self[
|
|
1080
|
-
elseif killsOnExpiration and not self[
|
|
1081
|
-
self[
|
|
1129
|
+
if not killsOnExpiration and self[140] then
|
|
1130
|
+
self[140] = nil
|
|
1131
|
+
elseif killsOnExpiration and not self[140] then
|
|
1132
|
+
self[140] = true
|
|
1082
1133
|
end
|
|
1083
1134
|
end
|
|
1084
1135
|
},
|
|
@@ -1089,17 +1140,17 @@ __TS__SetDescriptor(
|
|
|
1089
1140
|
"explodesOnExpiration",
|
|
1090
1141
|
{
|
|
1091
1142
|
get = function(self)
|
|
1092
|
-
local
|
|
1093
|
-
if
|
|
1094
|
-
|
|
1143
|
+
local ____self__141_58 = self[141]
|
|
1144
|
+
if ____self__141_58 == nil then
|
|
1145
|
+
____self__141_58 = false
|
|
1095
1146
|
end
|
|
1096
|
-
return
|
|
1147
|
+
return ____self__141_58
|
|
1097
1148
|
end,
|
|
1098
1149
|
set = function(self, killsOnExpiration)
|
|
1099
|
-
if not killsOnExpiration and self[
|
|
1100
|
-
self[
|
|
1101
|
-
elseif killsOnExpiration and not self[
|
|
1102
|
-
self[
|
|
1150
|
+
if not killsOnExpiration and self[141] then
|
|
1151
|
+
self[141] = nil
|
|
1152
|
+
elseif killsOnExpiration and not self[141] then
|
|
1153
|
+
self[141] = true
|
|
1103
1154
|
end
|
|
1104
1155
|
end
|
|
1105
1156
|
},
|
|
@@ -1208,6 +1259,19 @@ __TS__SetDescriptor(
|
|
|
1208
1259
|
},
|
|
1209
1260
|
true
|
|
1210
1261
|
)
|
|
1262
|
+
__TS__SetDescriptor(
|
|
1263
|
+
Buff.prototype,
|
|
1264
|
+
"manaRegenerationRateIncreaseFactor",
|
|
1265
|
+
{
|
|
1266
|
+
get = function(self)
|
|
1267
|
+
return self:getUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR)
|
|
1268
|
+
end,
|
|
1269
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
1270
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR, manaRegenerationRateIncreaseFactor)
|
|
1271
|
+
end
|
|
1272
|
+
},
|
|
1273
|
+
true
|
|
1274
|
+
)
|
|
1211
1275
|
__TS__SetDescriptor(
|
|
1212
1276
|
Buff.prototype,
|
|
1213
1277
|
"duration",
|
|
@@ -1221,13 +1285,13 @@ __TS__SetDescriptor(
|
|
|
1221
1285
|
"remainingDuration",
|
|
1222
1286
|
{
|
|
1223
1287
|
get = function(self)
|
|
1224
|
-
local
|
|
1225
|
-
return
|
|
1288
|
+
local ____opt_59 = self._timer
|
|
1289
|
+
return ____opt_59 and ____opt_59.remaining or 0
|
|
1226
1290
|
end,
|
|
1227
1291
|
set = function(self, remainingDuration)
|
|
1228
|
-
local
|
|
1229
|
-
local
|
|
1230
|
-
local remainingDurationDelta =
|
|
1292
|
+
local ____remainingDuration_63 = remainingDuration
|
|
1293
|
+
local ____opt_61 = self._timer
|
|
1294
|
+
local remainingDurationDelta = ____remainingDuration_63 - (____opt_61 and ____opt_61.remaining or 0)
|
|
1231
1295
|
if remainingDurationDelta ~= 0 then
|
|
1232
1296
|
self[103] = self[103] + remainingDurationDelta
|
|
1233
1297
|
if remainingDuration <= 0 then
|
|
@@ -1242,7 +1306,7 @@ __TS__SetDescriptor(
|
|
|
1242
1306
|
remainingDuration,
|
|
1243
1307
|
self._spellStealPriority,
|
|
1244
1308
|
self._learnLevelMinimum,
|
|
1245
|
-
self[
|
|
1309
|
+
self[142]
|
|
1246
1310
|
) then
|
|
1247
1311
|
local timer = self._timer
|
|
1248
1312
|
if timer == nil then
|
|
@@ -1257,7 +1321,34 @@ __TS__SetDescriptor(
|
|
|
1257
1321
|
},
|
|
1258
1322
|
true
|
|
1259
1323
|
)
|
|
1260
|
-
|
|
1324
|
+
__TS__SetDescriptor(
|
|
1325
|
+
Buff.prototype,
|
|
1326
|
+
"abilityCooldownFactor",
|
|
1327
|
+
{
|
|
1328
|
+
get = function(self)
|
|
1329
|
+
return self[143] or 1
|
|
1330
|
+
end,
|
|
1331
|
+
set = function(self, abilityCooldownFactor)
|
|
1332
|
+
local previousAbilityCooldownModifier = self[144]
|
|
1333
|
+
if previousAbilityCooldownModifier then
|
|
1334
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1335
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1336
|
+
end
|
|
1337
|
+
end
|
|
1338
|
+
local function modifier(ability, level, cooldown)
|
|
1339
|
+
return cooldown * abilityCooldownFactor
|
|
1340
|
+
end
|
|
1341
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1342
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1343
|
+
end
|
|
1344
|
+
self[144] = modifier
|
|
1345
|
+
self[143] = abilityCooldownFactor
|
|
1346
|
+
end
|
|
1347
|
+
},
|
|
1348
|
+
true
|
|
1349
|
+
)
|
|
1350
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1351
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1261
1352
|
(function(self)
|
|
1262
1353
|
local function destroyBuffIfNeeded(buff)
|
|
1263
1354
|
if getUnitAbility(buff[101].handle, buff.typeId) ~= buff.handle and buff[100] == 1 then
|
|
@@ -1311,5 +1402,11 @@ Buff.destroyEvent = buffDestroyEvent;
|
|
|
1311
1402
|
____exports.checkBuffs(target)
|
|
1312
1403
|
end
|
|
1313
1404
|
)
|
|
1405
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1406
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1407
|
+
end)
|
|
1408
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1409
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1410
|
+
end)
|
|
1314
1411
|
end)(Buff)
|
|
1315
1412
|
return ____exports
|