warscript 0.0.1-dev.671d3cf → 0.0.1-dev.6be8f21
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 +5 -0
- package/attributes.lua +8 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +4 -0
- package/core/types/frame.lua +71 -0
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +7 -8
- package/core/types/timer.lua +18 -21
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +840 -786
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +59 -33
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- 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 +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability.d.ts +20 -4
- package/engine/behaviour/ability.lua +111 -47
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -3
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +33 -0
- package/engine/behaviour/unit.lua +183 -4
- package/engine/buff.d.ts +85 -43
- package/engine/buff.lua +391 -226
- package/engine/internal/ability.d.ts +20 -13
- package/engine/internal/ability.lua +103 -76
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +131 -28
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- 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/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +98 -14
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- 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 +6 -2
- package/engine/internal/unit/bonus.lua +23 -1
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +2 -2
- 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 +25 -6
- package/engine/internal/unit.d.ts +53 -14
- package/engine/internal/unit.lua +369 -143
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -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/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/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- 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/blank-configurable.lua +12 -1
- 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/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.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/feral-spirit.lua +2 -2
- 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/phoenix-morph.lua +4 -4
- 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/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- 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 +19 -17
- package/engine/object-data/entry/ability-type.lua +89 -33
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +10 -3
- package/engine/object-data/entry/unit-type.lua +155 -92
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -6
- package/engine/object-field.lua +187 -89
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +175 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +4 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +37 -3
- package/utility/functions.d.ts +6 -0
- package/utility/functions.lua +6 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -2
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +4 -0
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/buff.lua
CHANGED
|
@@ -35,6 +35,7 @@ local UnitBonusType = ____bonus.UnitBonusType
|
|
|
35
35
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
36
|
local damageArea = ____area_2Ddamage.damageArea
|
|
37
37
|
local ____preconditions = require("utility.preconditions")
|
|
38
|
+
local check = ____preconditions.check
|
|
38
39
|
local checkNotNull = ____preconditions.checkNotNull
|
|
39
40
|
local ____effect = require("core.types.effect")
|
|
40
41
|
local Effect = ____effect.Effect
|
|
@@ -44,8 +45,14 @@ local ____unit = require("engine.behaviour.unit")
|
|
|
44
45
|
local UnitBehavior = ____unit.UnitBehavior
|
|
45
46
|
local ____arrays = require("utility.arrays")
|
|
46
47
|
local forEach = ____arrays.forEach
|
|
48
|
+
local ____event = require("event")
|
|
49
|
+
local Event = ____event.Event
|
|
47
50
|
local ____ability_2Dduration = require("engine.internal.mechanics.ability-duration")
|
|
48
51
|
local getAbilityDuration = ____ability_2Dduration.getAbilityDuration
|
|
52
|
+
local ____item = require("engine.internal.item")
|
|
53
|
+
local Item = ____item.Item
|
|
54
|
+
local ____destructable = require("core.types.destructable")
|
|
55
|
+
local Destructable = ____destructable.Destructable
|
|
49
56
|
local getUnitAbility = BlzGetUnitAbility
|
|
50
57
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
51
58
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -94,11 +101,15 @@ local buffParametersKeys = {
|
|
|
94
101
|
armorIncreaseFactor = true,
|
|
95
102
|
attackSpeedIncreaseFactor = true,
|
|
96
103
|
movementSpeedIncreaseFactor = true,
|
|
104
|
+
evasionProbability = true,
|
|
105
|
+
missProbability = true,
|
|
106
|
+
damageFactor = true,
|
|
97
107
|
receivedDamageFactor = true,
|
|
98
108
|
receivedMagicDamageFactor = true,
|
|
99
109
|
durationIncreaseOnAutoAttack = true,
|
|
100
110
|
maximumDuration = true,
|
|
101
111
|
maximumRemainingDuration = true,
|
|
112
|
+
turnsIntoGhost = true,
|
|
102
113
|
stuns = true,
|
|
103
114
|
ignoresStunImmunity = true,
|
|
104
115
|
providesStunImmunity = true,
|
|
@@ -107,12 +118,26 @@ local buffParametersKeys = {
|
|
|
107
118
|
disablesAutoAttack = true,
|
|
108
119
|
destroysOnDamage = true,
|
|
109
120
|
maximumAutoAttackCount = true,
|
|
121
|
+
maximumDamageDealtEventCount = true,
|
|
122
|
+
maximumDamageReceivedEventCount = true,
|
|
110
123
|
uniqueGroup = true,
|
|
111
124
|
damageOnExpiration = true,
|
|
112
125
|
healingOnExpiration = true,
|
|
113
126
|
killsOnExpiration = true,
|
|
114
127
|
explodesOnExpiration = true
|
|
115
128
|
}
|
|
129
|
+
local function resolveEnumValue(ability, level, value)
|
|
130
|
+
if value == nil or type(value) == "number" then
|
|
131
|
+
return value
|
|
132
|
+
end
|
|
133
|
+
if ability == nil then
|
|
134
|
+
error(
|
|
135
|
+
__TS__New(IllegalArgumentException),
|
|
136
|
+
0
|
|
137
|
+
)
|
|
138
|
+
end
|
|
139
|
+
return value:getValue(ability, level or ability.level)
|
|
140
|
+
end
|
|
116
141
|
local function resolveNumberValue(ability, level, value)
|
|
117
142
|
if value == nil or type(value) == "number" then
|
|
118
143
|
return value
|
|
@@ -150,6 +175,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
150
175
|
end
|
|
151
176
|
end
|
|
152
177
|
local buffBooleanParameters = {
|
|
178
|
+
"turnsIntoGhost",
|
|
153
179
|
"stuns",
|
|
154
180
|
"ignoresStunImmunity",
|
|
155
181
|
"disablesAutoAttack",
|
|
@@ -161,9 +187,13 @@ local buffNumberParameters = {
|
|
|
161
187
|
"durationIncreaseOnAutoAttack",
|
|
162
188
|
"attackSpeedIncreaseFactor",
|
|
163
189
|
"movementSpeedIncreaseFactor",
|
|
190
|
+
"evasionProbability",
|
|
164
191
|
"armorIncrease",
|
|
192
|
+
"damageFactor",
|
|
165
193
|
"receivedDamageFactor",
|
|
166
194
|
"maximumAutoAttackCount",
|
|
195
|
+
"maximumDamageDealtEventCount",
|
|
196
|
+
"maximumDamageReceivedEventCount",
|
|
167
197
|
"damageInterval",
|
|
168
198
|
"damagePerInterval",
|
|
169
199
|
"damageOverDuration",
|
|
@@ -198,7 +228,7 @@ local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
|
198
228
|
return checkNotNull(firstNativeBuffTypeId)
|
|
199
229
|
end
|
|
200
230
|
local function destroyBuffIfItHasSameUniqueGroup(buff, uniqueGroup)
|
|
201
|
-
if buff[
|
|
231
|
+
if buff[104] == uniqueGroup then
|
|
202
232
|
buff:destroy()
|
|
203
233
|
end
|
|
204
234
|
end
|
|
@@ -206,17 +236,17 @@ local function destroyBuff(buff)
|
|
|
206
236
|
buff:destroy()
|
|
207
237
|
end
|
|
208
238
|
local function expireBuff(buff)
|
|
209
|
-
local remainingDamageOverDuration = buff[
|
|
210
|
-
local remainingHealingOverDuration = buff[
|
|
239
|
+
local remainingDamageOverDuration = buff[113] or 0
|
|
240
|
+
local remainingHealingOverDuration = buff[113] or 0
|
|
211
241
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
212
242
|
buff:flashSpecialEffect()
|
|
213
243
|
if remainingDamageOverDuration ~= 0 then
|
|
214
|
-
(buff[
|
|
215
|
-
buff[
|
|
244
|
+
(buff[102] or buff[101]):damageTarget(buff[101], remainingDamageOverDuration)
|
|
245
|
+
buff[113] = nil
|
|
216
246
|
end
|
|
217
247
|
if remainingHealingOverDuration ~= 0 then
|
|
218
|
-
(buff[
|
|
219
|
-
buff[
|
|
248
|
+
(buff[102] or buff[101]):healTarget(buff[101], remainingHealingOverDuration)
|
|
249
|
+
buff[118] = nil
|
|
220
250
|
end
|
|
221
251
|
end
|
|
222
252
|
Timer:run(destroyBuff, buff)
|
|
@@ -224,56 +254,58 @@ local function expireBuff(buff)
|
|
|
224
254
|
end
|
|
225
255
|
local function buffDamageIntervalInitialTimerCallback(buff)
|
|
226
256
|
buffDamageIntervalTimerCallback(buff)
|
|
227
|
-
local timer = buff[
|
|
228
|
-
local damageInterval = buff[
|
|
257
|
+
local timer = buff[114]
|
|
258
|
+
local damageInterval = buff[112]
|
|
229
259
|
if timer ~= nil and damageInterval ~= nil and damageInterval > 0 then
|
|
230
260
|
timer:start(damageInterval, true, buffDamageIntervalTimerCallback, buff)
|
|
231
261
|
end
|
|
232
262
|
end
|
|
233
263
|
buffDamageIntervalTimerCallback = function(buff)
|
|
234
264
|
buff:flashSpecialEffect()
|
|
235
|
-
local source = buff[
|
|
236
|
-
local remainingDamageOverDuration = buff[
|
|
265
|
+
local source = buff[102] or buff[101]
|
|
266
|
+
local remainingDamageOverDuration = buff[113] or 0
|
|
237
267
|
if remainingDamageOverDuration ~= 0 then
|
|
238
|
-
local damageInterval = buff[
|
|
268
|
+
local damageInterval = buff[112] or 0
|
|
239
269
|
if damageInterval ~= 0 then
|
|
240
270
|
local damage = remainingDamageOverDuration / (1 + buff.remainingDuration / damageInterval)
|
|
241
|
-
source:damageTarget(buff[
|
|
242
|
-
buff[
|
|
271
|
+
source:damageTarget(buff[101], damage)
|
|
272
|
+
buff[113] = remainingDamageOverDuration - damage
|
|
243
273
|
end
|
|
244
274
|
end
|
|
245
|
-
local damagePerInterval = buff[
|
|
275
|
+
local damagePerInterval = buff[111] or 0
|
|
246
276
|
if remainingDamageOverDuration == 0 or damagePerInterval ~= 0 then
|
|
247
|
-
source:damageTarget(buff[
|
|
277
|
+
source:damageTarget(buff[101], damagePerInterval)
|
|
248
278
|
end
|
|
249
279
|
end
|
|
250
280
|
local function buffHealingIntervalInitialTimerCallback(buff)
|
|
251
281
|
buffHealingIntervalTimerCallback(buff)
|
|
252
|
-
local timer = buff[
|
|
253
|
-
local healingInterval = buff[
|
|
282
|
+
local timer = buff[119]
|
|
283
|
+
local healingInterval = buff[117]
|
|
254
284
|
if timer ~= nil and healingInterval ~= nil and healingInterval > 0 then
|
|
255
285
|
timer:start(healingInterval, true, buffHealingIntervalTimerCallback, buff)
|
|
256
286
|
end
|
|
257
287
|
end
|
|
258
288
|
buffHealingIntervalTimerCallback = function(buff)
|
|
259
|
-
if buff[
|
|
289
|
+
if buff[117] ~= buff[112] then
|
|
260
290
|
buff:flashSpecialEffect()
|
|
261
291
|
end
|
|
262
|
-
local source = buff[
|
|
263
|
-
local remainingHealingOverDuration = buff[
|
|
292
|
+
local source = buff[102] or buff[101]
|
|
293
|
+
local remainingHealingOverDuration = buff[118] or 0
|
|
264
294
|
if remainingHealingOverDuration ~= 0 then
|
|
265
|
-
local healingInterval = buff[
|
|
295
|
+
local healingInterval = buff[117] or 0
|
|
266
296
|
if healingInterval ~= 0 then
|
|
267
297
|
local healing = remainingHealingOverDuration / (1 + buff.remainingDuration / healingInterval)
|
|
268
|
-
source:healTarget(buff[
|
|
269
|
-
buff[
|
|
298
|
+
source:healTarget(buff[101], healing)
|
|
299
|
+
buff[118] = remainingHealingOverDuration - healing
|
|
270
300
|
end
|
|
271
301
|
end
|
|
272
|
-
local healingPerInterval = buff[
|
|
302
|
+
local healingPerInterval = buff[116] or 0
|
|
273
303
|
if remainingHealingOverDuration == 0 or healingPerInterval ~= 0 then
|
|
274
|
-
source:healTarget(buff[
|
|
304
|
+
source:healTarget(buff[101], healingPerInterval)
|
|
275
305
|
end
|
|
276
306
|
end
|
|
307
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
308
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
277
309
|
____exports.Buff = __TS__Class()
|
|
278
310
|
local Buff = ____exports.Buff
|
|
279
311
|
Buff.name = "Buff"
|
|
@@ -282,7 +314,8 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
282
314
|
UnitBehavior.prototype.____constructor(self, _unit)
|
|
283
315
|
self._unit = _unit
|
|
284
316
|
self.parameters = nil
|
|
285
|
-
self[100] =
|
|
317
|
+
self[100] = 0
|
|
318
|
+
self[101] = _unit
|
|
286
319
|
local typeId
|
|
287
320
|
local polarity
|
|
288
321
|
local resistanceType
|
|
@@ -291,7 +324,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
291
324
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
292
325
|
polarity = resistanceTypeOrPolarity
|
|
293
326
|
resistanceType = abilityOrParametersOrResistanceType
|
|
294
|
-
if __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
327
|
+
if __TS__InstanceOf(parametersOrAbility, Ability) or parametersOrAbility == nil then
|
|
295
328
|
ability = parametersOrAbility
|
|
296
329
|
else
|
|
297
330
|
ability = nil
|
|
@@ -301,7 +334,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
301
334
|
typeId = typeIdOrTypeIds
|
|
302
335
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
303
336
|
resistanceType = resistanceTypeOrPolarity
|
|
304
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
337
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) or abilityOrParametersOrResistanceType == nil then
|
|
305
338
|
ability = abilityOrParametersOrResistanceType
|
|
306
339
|
parameters = parametersOrAbility
|
|
307
340
|
else
|
|
@@ -310,9 +343,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
310
343
|
end
|
|
311
344
|
end
|
|
312
345
|
self.typeId = typeId
|
|
313
|
-
|
|
314
|
-
self.resistanceType = resistanceType
|
|
315
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
346
|
+
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
316
347
|
parameters = ability
|
|
317
348
|
ability = nil
|
|
318
349
|
end
|
|
@@ -338,14 +369,21 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
338
369
|
learnLevelMinimum = learnLevelMinimum or ability:getField(ABILITY_IF_REQUIRED_LEVEL)
|
|
339
370
|
duration = duration or getAbilityDuration(ability, _unit)
|
|
340
371
|
end
|
|
372
|
+
self.polarity = resolveEnumValue(ability, level, polarity)
|
|
373
|
+
self.resistanceType = resolveEnumValue(ability, level, resistanceType)
|
|
374
|
+
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
375
|
+
if missProbability ~= nil then
|
|
376
|
+
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
377
|
+
self[142] = missProbability
|
|
378
|
+
end
|
|
341
379
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
342
380
|
if buffByTypeId == nil then
|
|
343
381
|
buffByTypeId = {}
|
|
344
382
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
345
383
|
end
|
|
346
|
-
local
|
|
347
|
-
if
|
|
348
|
-
|
|
384
|
+
local ____opt_15 = buffByTypeId[typeId]
|
|
385
|
+
if ____opt_15 ~= nil then
|
|
386
|
+
____opt_15:destroy()
|
|
349
387
|
end
|
|
350
388
|
local uniqueGroup = parameters and parameters.uniqueGroup or defaultParameters and defaultParameters.uniqueGroup
|
|
351
389
|
if uniqueGroup ~= nil then
|
|
@@ -354,18 +392,21 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
354
392
|
if not internalApplyBuff(
|
|
355
393
|
_unit,
|
|
356
394
|
typeId,
|
|
357
|
-
polarity,
|
|
358
|
-
resistanceType,
|
|
395
|
+
self.polarity,
|
|
396
|
+
self.resistanceType,
|
|
359
397
|
level,
|
|
360
398
|
duration,
|
|
361
399
|
spellStealPriority,
|
|
362
|
-
learnLevelMinimum
|
|
400
|
+
learnLevelMinimum,
|
|
401
|
+
missProbability
|
|
363
402
|
) then
|
|
403
|
+
self[100] = 1
|
|
364
404
|
UnitBehavior.prototype.destroy(self)
|
|
365
405
|
error(unsuccessfulApplicationMarker, 0)
|
|
366
406
|
end
|
|
367
407
|
local handle = BlzGetUnitAbility(_unit.handle, typeId)
|
|
368
408
|
if handle == nil then
|
|
409
|
+
self[100] = 1
|
|
369
410
|
UnitBehavior.prototype.destroy(self)
|
|
370
411
|
error(unsuccessfulApplicationMarker, 0)
|
|
371
412
|
end
|
|
@@ -374,20 +415,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
374
415
|
self._level = level
|
|
375
416
|
self._spellStealPriority = spellStealPriority
|
|
376
417
|
self._learnLevelMinimum = learnLevelMinimum
|
|
377
|
-
self[
|
|
378
|
-
self[
|
|
379
|
-
self[
|
|
380
|
-
self[
|
|
381
|
-
self[
|
|
418
|
+
self[102] = source
|
|
419
|
+
self[103] = duration or 0
|
|
420
|
+
self[104] = uniqueGroup
|
|
421
|
+
self[105] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_EFFECT, 0)
|
|
422
|
+
self[106] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_SPECIAL, 0)
|
|
382
423
|
if parameters ~= nil or (next(defaultParameters)) ~= nil then
|
|
383
424
|
for ____, buffBooleanParameter in ipairs(buffBooleanParameters) do
|
|
384
|
-
local
|
|
385
|
-
local
|
|
386
|
-
local
|
|
387
|
-
if
|
|
388
|
-
|
|
425
|
+
local ____ability_24 = ability
|
|
426
|
+
local ____level_25 = level
|
|
427
|
+
local ____temp_23 = parameters and parameters[buffBooleanParameter]
|
|
428
|
+
if ____temp_23 == nil then
|
|
429
|
+
____temp_23 = defaultParameters[buffBooleanParameter]
|
|
389
430
|
end
|
|
390
|
-
if resolveBooleanValue(
|
|
431
|
+
if resolveBooleanValue(____ability_24, ____level_25, ____temp_23) then
|
|
391
432
|
self[buffBooleanParameter] = true
|
|
392
433
|
end
|
|
393
434
|
end
|
|
@@ -403,11 +444,11 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
403
444
|
end
|
|
404
445
|
local maximumDuration = parameters and parameters.maximumDuration or defaultParameters.maximumDuration
|
|
405
446
|
if maximumDuration ~= nil then
|
|
406
|
-
self[
|
|
447
|
+
self[108] = resolveNumberValue(ability, level, maximumDuration)
|
|
407
448
|
end
|
|
408
449
|
local maximumRemainingDuration = parameters and parameters.maximumRemainingDuration or defaultParameters.maximumRemainingDuration
|
|
409
450
|
if maximumRemainingDuration ~= nil then
|
|
410
|
-
self[
|
|
451
|
+
self[109] = resolveNumberValue(ability, level, maximumRemainingDuration)
|
|
411
452
|
end
|
|
412
453
|
local parametersAbilityTypeIds = parameters and parameters.abilityTypeIds or defaultParameters.abilityTypeIds
|
|
413
454
|
if parametersAbilityTypeIds ~= nil then
|
|
@@ -464,10 +505,13 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
464
505
|
timer:start(duration, false, expireBuff, self)
|
|
465
506
|
self._timer = timer
|
|
466
507
|
end
|
|
508
|
+
self:onCreate()
|
|
509
|
+
self[100] = 1
|
|
510
|
+
Event.invoke(buffCreatedEvent, self)
|
|
467
511
|
end
|
|
468
512
|
function Buff.prototype.getUnitBonus(self, bonusType)
|
|
469
|
-
local
|
|
470
|
-
local bonusId =
|
|
513
|
+
local ____opt_38 = self._bonusIdByBonusType
|
|
514
|
+
local bonusId = ____opt_38 and ____opt_38[bonusType]
|
|
471
515
|
return bonusId == nil and 0 or getUnitBonus(self._unit, bonusType, bonusId)
|
|
472
516
|
end
|
|
473
517
|
function Buff.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
@@ -478,63 +522,71 @@ function Buff.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
|
478
522
|
end
|
|
479
523
|
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
480
524
|
end
|
|
481
|
-
function Buff.prototype.flashEffect(self,
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
local ____Effect_flash_41 = Effect.flash
|
|
485
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
486
|
-
self[104],
|
|
487
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
488
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
489
|
-
)
|
|
490
|
-
local ____isWidgetProvided_38
|
|
491
|
-
if isWidgetProvided then
|
|
492
|
-
____isWidgetProvided_38 = duration
|
|
525
|
+
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
526
|
+
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
527
|
+
Effect:flash(self[105], widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
493
528
|
else
|
|
494
|
-
|
|
529
|
+
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
530
|
+
local ____Effect_42 = Effect
|
|
531
|
+
local ____Effect_flash_43 = Effect.flash
|
|
532
|
+
local ____array_41 = __TS__SparseArrayNew(
|
|
533
|
+
self[105],
|
|
534
|
+
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
535
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
536
|
+
)
|
|
537
|
+
local ____isWidgetProvided_40
|
|
538
|
+
if isWidgetProvided then
|
|
539
|
+
____isWidgetProvided_40 = yOrParametersOrDuration
|
|
540
|
+
else
|
|
541
|
+
____isWidgetProvided_40 = widgetOrXOrParametersOrDuration
|
|
542
|
+
end
|
|
543
|
+
__TS__SparseArrayPush(____array_41, ____isWidgetProvided_40)
|
|
544
|
+
____Effect_flash_43(
|
|
545
|
+
____Effect_42,
|
|
546
|
+
__TS__SparseArraySpread(____array_41)
|
|
547
|
+
)
|
|
495
548
|
end
|
|
496
|
-
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
497
|
-
____Effect_flash_41(
|
|
498
|
-
____Effect_40,
|
|
499
|
-
__TS__SparseArraySpread(____array_39)
|
|
500
|
-
)
|
|
501
549
|
end
|
|
502
550
|
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
503
551
|
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
504
|
-
local
|
|
505
|
-
local
|
|
506
|
-
local
|
|
507
|
-
self[
|
|
552
|
+
local ____Effect_46 = Effect
|
|
553
|
+
local ____Effect_flash_47 = Effect.flash
|
|
554
|
+
local ____array_45 = __TS__SparseArrayNew(
|
|
555
|
+
self[106],
|
|
508
556
|
isWidgetProvided and widgetOrDuration or self._unit,
|
|
509
557
|
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
510
558
|
)
|
|
511
|
-
local
|
|
559
|
+
local ____isWidgetProvided_44
|
|
512
560
|
if isWidgetProvided then
|
|
513
|
-
|
|
561
|
+
____isWidgetProvided_44 = duration
|
|
514
562
|
else
|
|
515
|
-
|
|
563
|
+
____isWidgetProvided_44 = widgetOrDuration
|
|
516
564
|
end
|
|
517
|
-
__TS__SparseArrayPush(
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
__TS__SparseArraySpread(
|
|
565
|
+
__TS__SparseArrayPush(____array_45, ____isWidgetProvided_44)
|
|
566
|
+
____Effect_flash_47(
|
|
567
|
+
____Effect_46,
|
|
568
|
+
__TS__SparseArraySpread(____array_45)
|
|
521
569
|
)
|
|
522
570
|
end
|
|
571
|
+
function Buff.prototype.onCreate(self)
|
|
572
|
+
end
|
|
523
573
|
function Buff.prototype.onDestroy(self)
|
|
574
|
+
check(self[100] ~= 0, "Cannot destroy a buff that has not finished creating yet.")
|
|
575
|
+
self[100] = 2
|
|
524
576
|
local unit = self._unit
|
|
525
577
|
if getUnitAbility(unit.handle, self.typeId) == self.handle then
|
|
526
578
|
removeBuff(unit.handle, self.typeId)
|
|
527
579
|
end
|
|
528
580
|
buffByTypeIdByUnit[unit][self.typeId] = nil
|
|
529
|
-
local healingIntervalTimer = self[
|
|
581
|
+
local healingIntervalTimer = self[119]
|
|
530
582
|
if healingIntervalTimer ~= nil then
|
|
531
583
|
healingIntervalTimer:destroy()
|
|
532
|
-
self[
|
|
584
|
+
self[119] = nil
|
|
533
585
|
end
|
|
534
|
-
local damageIntervalTimer = self[
|
|
586
|
+
local damageIntervalTimer = self[114]
|
|
535
587
|
if damageIntervalTimer ~= nil then
|
|
536
588
|
damageIntervalTimer:destroy()
|
|
537
|
-
self[
|
|
589
|
+
self[114] = nil
|
|
538
590
|
end
|
|
539
591
|
if self._timer ~= nil then
|
|
540
592
|
self._timer:destroy()
|
|
@@ -544,15 +596,21 @@ function Buff.prototype.onDestroy(self)
|
|
|
544
596
|
behavior:destroy()
|
|
545
597
|
end
|
|
546
598
|
end
|
|
547
|
-
if self[
|
|
599
|
+
if self[139] then
|
|
600
|
+
unit:decrementInvulnerabilityCounter()
|
|
601
|
+
end
|
|
602
|
+
if self[138] then
|
|
548
603
|
unit:decrementDisableAutoAttackCounter()
|
|
549
604
|
end
|
|
550
|
-
if self[
|
|
551
|
-
if self[
|
|
605
|
+
if self[136] then
|
|
606
|
+
if self[137] then
|
|
552
607
|
unit:decrementStunCounter()
|
|
553
608
|
end
|
|
554
609
|
unit:decrementStunCounter()
|
|
555
610
|
end
|
|
611
|
+
if self[135] then
|
|
612
|
+
unit:decrementGhostCounter()
|
|
613
|
+
end
|
|
556
614
|
if self._abilityTypeIds ~= nil then
|
|
557
615
|
for abilityTypeId in pairs(self._abilityTypeIds) do
|
|
558
616
|
unit:removeAbility(abilityTypeId)
|
|
@@ -563,6 +621,8 @@ function Buff.prototype.onDestroy(self)
|
|
|
563
621
|
removeUnitBonus(unit, bonusType, bonusId)
|
|
564
622
|
end
|
|
565
623
|
end
|
|
624
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
625
|
+
self[100] = 3
|
|
566
626
|
return UnitBehavior.prototype.onDestroy(self)
|
|
567
627
|
end
|
|
568
628
|
function Buff.apply(self, ...)
|
|
@@ -590,8 +650,8 @@ function Buff.apply(self, ...)
|
|
|
590
650
|
end
|
|
591
651
|
end
|
|
592
652
|
function Buff.getByTypeId(self, unit, typeId)
|
|
593
|
-
local
|
|
594
|
-
local buff =
|
|
653
|
+
local ____opt_48 = buffByTypeIdByUnit[unit]
|
|
654
|
+
local buff = ____opt_48 and ____opt_48[typeId]
|
|
595
655
|
if __TS__InstanceOf(buff, self) then
|
|
596
656
|
return buff
|
|
597
657
|
end
|
|
@@ -599,56 +659,72 @@ function Buff.getByTypeId(self, unit, typeId)
|
|
|
599
659
|
end
|
|
600
660
|
function Buff.prototype.onExpiration(self)
|
|
601
661
|
local unit = self.unit
|
|
602
|
-
if self[119] ~= nil then
|
|
603
|
-
(self[101] or unit):damageTarget(unit, self[119] or 0)
|
|
604
|
-
end
|
|
605
662
|
if self[120] ~= nil then
|
|
606
|
-
(self[
|
|
663
|
+
(self[102] or unit):damageTarget(unit, self[120] or 0)
|
|
607
664
|
end
|
|
608
|
-
if self[
|
|
665
|
+
if self[121] ~= nil then
|
|
666
|
+
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
667
|
+
end
|
|
668
|
+
if self[141] then
|
|
609
669
|
unit:explode()
|
|
610
|
-
elseif self[
|
|
670
|
+
elseif self[140] then
|
|
611
671
|
unit:kill()
|
|
612
672
|
end
|
|
613
673
|
end
|
|
614
674
|
function Buff.prototype.onDeath(self, source)
|
|
615
675
|
local unit = self.unit
|
|
616
|
-
if self[
|
|
676
|
+
if self[122] ~= nil then
|
|
617
677
|
damageArea(
|
|
618
|
-
self[
|
|
619
|
-
self[
|
|
678
|
+
self[102] or unit,
|
|
679
|
+
self[122],
|
|
620
680
|
unit.x,
|
|
621
681
|
unit.y,
|
|
682
|
+
self[124] or 0,
|
|
622
683
|
self[123] or 0,
|
|
623
|
-
self[
|
|
684
|
+
self[126] or 0,
|
|
624
685
|
self[125] or 0,
|
|
625
|
-
self[
|
|
626
|
-
self[127] or 0
|
|
627
|
-
self[126] or 0
|
|
686
|
+
self[128] or 0,
|
|
687
|
+
self[127] or 0
|
|
628
688
|
)
|
|
629
689
|
end
|
|
630
690
|
end
|
|
631
691
|
function Buff.prototype.onDamageDealt(self, target, event)
|
|
632
692
|
if event.isAttack then
|
|
633
|
-
if self[
|
|
634
|
-
local durationIncrease = self[
|
|
635
|
-
local maximumDuration = self[
|
|
693
|
+
if self[107] ~= nil then
|
|
694
|
+
local durationIncrease = self[107]
|
|
695
|
+
local maximumDuration = self[108] or 0
|
|
636
696
|
if maximumDuration > 0 then
|
|
637
697
|
durationIncrease = min(
|
|
638
698
|
durationIncrease,
|
|
639
|
-
max(0, maximumDuration - self[
|
|
699
|
+
max(0, maximumDuration - self[103])
|
|
640
700
|
)
|
|
641
701
|
end
|
|
642
702
|
local remainingDuration = self.remainingDuration + durationIncrease
|
|
643
|
-
local maximumRemainingDuration = self[
|
|
703
|
+
local maximumRemainingDuration = self[109] or 0
|
|
644
704
|
if maximumRemainingDuration > 0 then
|
|
645
705
|
remainingDuration = min(remainingDuration, maximumRemainingDuration)
|
|
646
706
|
end
|
|
647
707
|
self.remainingDuration = remainingDuration
|
|
648
708
|
end
|
|
649
|
-
local autoAttackCount = (self[
|
|
650
|
-
self[
|
|
651
|
-
if autoAttackCount == self[
|
|
709
|
+
local autoAttackCount = (self[129] or 0) + 1
|
|
710
|
+
self[129] = autoAttackCount
|
|
711
|
+
if autoAttackCount == self[130] then
|
|
712
|
+
self:destroy()
|
|
713
|
+
end
|
|
714
|
+
end
|
|
715
|
+
if event.originalAmount ~= 0 then
|
|
716
|
+
local damageDealtEventCount = (self[131] or 0) + 1
|
|
717
|
+
self[131] = damageDealtEventCount
|
|
718
|
+
if damageDealtEventCount == self[132] then
|
|
719
|
+
self:destroy()
|
|
720
|
+
end
|
|
721
|
+
end
|
|
722
|
+
end
|
|
723
|
+
function Buff.prototype.onDamageReceived(self, source, event)
|
|
724
|
+
if event.originalAmount ~= 0 then
|
|
725
|
+
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
726
|
+
self[133] = damageReceivedEventCount
|
|
727
|
+
if damageReceivedEventCount == self[134] then
|
|
652
728
|
self:destroy()
|
|
653
729
|
end
|
|
654
730
|
end
|
|
@@ -658,7 +734,7 @@ __TS__SetDescriptor(
|
|
|
658
734
|
Buff.prototype,
|
|
659
735
|
"source",
|
|
660
736
|
{get = function(self)
|
|
661
|
-
return self[
|
|
737
|
+
return self[102] or self._unit
|
|
662
738
|
end},
|
|
663
739
|
true
|
|
664
740
|
)
|
|
@@ -675,13 +751,13 @@ __TS__SetDescriptor(
|
|
|
675
751
|
"remainingDamageOverDuration",
|
|
676
752
|
{
|
|
677
753
|
get = function(self)
|
|
678
|
-
return self[
|
|
754
|
+
return self[113] or 0
|
|
679
755
|
end,
|
|
680
756
|
set = function(self, remainingDamageOverDuration)
|
|
681
|
-
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[
|
|
682
|
-
self[
|
|
683
|
-
local damageOverDuration = (self[
|
|
684
|
-
self[
|
|
757
|
+
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[113] or 0)
|
|
758
|
+
self[113] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
759
|
+
local damageOverDuration = (self[110] or 0) + remainingDamageOverDurationDelta
|
|
760
|
+
self[110] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
685
761
|
end
|
|
686
762
|
},
|
|
687
763
|
true
|
|
@@ -691,13 +767,13 @@ __TS__SetDescriptor(
|
|
|
691
767
|
"damageOverDuration",
|
|
692
768
|
{
|
|
693
769
|
get = function(self)
|
|
694
|
-
return self[
|
|
770
|
+
return self[110] or 0
|
|
695
771
|
end,
|
|
696
772
|
set = function(self, damageOverDuration)
|
|
697
|
-
local damageOverDurationDelta = damageOverDuration - (self[
|
|
698
|
-
self[
|
|
699
|
-
local remainingDamageOverDuration = (self[
|
|
700
|
-
self[
|
|
773
|
+
local damageOverDurationDelta = damageOverDuration - (self[110] or 0)
|
|
774
|
+
self[110] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
775
|
+
local remainingDamageOverDuration = (self[113] or 0) + damageOverDurationDelta
|
|
776
|
+
self[113] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
701
777
|
end
|
|
702
778
|
},
|
|
703
779
|
true
|
|
@@ -707,10 +783,10 @@ __TS__SetDescriptor(
|
|
|
707
783
|
"damagePerInterval",
|
|
708
784
|
{
|
|
709
785
|
get = function(self)
|
|
710
|
-
return self[
|
|
786
|
+
return self[111] or 0
|
|
711
787
|
end,
|
|
712
788
|
set = function(self, damagePerInterval)
|
|
713
|
-
self[
|
|
789
|
+
self[111] = damagePerInterval ~= 0 and damagePerInterval or nil
|
|
714
790
|
end
|
|
715
791
|
},
|
|
716
792
|
true
|
|
@@ -720,25 +796,25 @@ __TS__SetDescriptor(
|
|
|
720
796
|
"damageInterval",
|
|
721
797
|
{
|
|
722
798
|
get = function(self)
|
|
723
|
-
return self[
|
|
799
|
+
return self[112] or 0
|
|
724
800
|
end,
|
|
725
801
|
set = function(self, damageInterval)
|
|
726
802
|
if damageInterval <= 0 then
|
|
727
|
-
self[
|
|
728
|
-
local timer = self[
|
|
803
|
+
self[112] = damageInterval ~= 0 and damageInterval or nil
|
|
804
|
+
local timer = self[114]
|
|
729
805
|
if timer ~= nil then
|
|
730
806
|
timer:destroy()
|
|
731
|
-
self[
|
|
807
|
+
self[114] = nil
|
|
732
808
|
end
|
|
733
809
|
return
|
|
734
810
|
end
|
|
735
|
-
self[
|
|
736
|
-
local
|
|
737
|
-
local elapsed =
|
|
738
|
-
local timer = self[
|
|
811
|
+
self[112] = damageInterval
|
|
812
|
+
local ____opt_50 = self._timer
|
|
813
|
+
local elapsed = ____opt_50 and ____opt_50.elapsed or 0
|
|
814
|
+
local timer = self[114]
|
|
739
815
|
if timer == nil then
|
|
740
816
|
timer = Timer:create()
|
|
741
|
-
self[
|
|
817
|
+
self[114] = timer
|
|
742
818
|
end
|
|
743
819
|
local initialDelay = damageInterval - (elapsed >= damageInterval and math.fmod(elapsed, damageInterval) or elapsed)
|
|
744
820
|
if initialDelay == damageInterval then
|
|
@@ -755,13 +831,13 @@ __TS__SetDescriptor(
|
|
|
755
831
|
"remainingHealingOverDuration",
|
|
756
832
|
{
|
|
757
833
|
get = function(self)
|
|
758
|
-
return self[
|
|
834
|
+
return self[118] or 0
|
|
759
835
|
end,
|
|
760
836
|
set = function(self, remainingHealingOverDuration)
|
|
761
|
-
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[
|
|
762
|
-
self[
|
|
763
|
-
local healingOverDuration = (self[
|
|
764
|
-
self[
|
|
837
|
+
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[118] or 0)
|
|
838
|
+
self[113] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
839
|
+
local healingOverDuration = (self[115] or 0) + remainingHealingOverDurationDelta
|
|
840
|
+
self[115] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
765
841
|
end
|
|
766
842
|
},
|
|
767
843
|
true
|
|
@@ -771,13 +847,13 @@ __TS__SetDescriptor(
|
|
|
771
847
|
"healingOverDuration",
|
|
772
848
|
{
|
|
773
849
|
get = function(self)
|
|
774
|
-
return self[
|
|
850
|
+
return self[115] or 0
|
|
775
851
|
end,
|
|
776
852
|
set = function(self, healingOverDuration)
|
|
777
|
-
local healingOverDurationDelta = healingOverDuration - (self[
|
|
778
|
-
self[
|
|
779
|
-
local remainingHealingOverDuration = (self[
|
|
780
|
-
self[
|
|
853
|
+
local healingOverDurationDelta = healingOverDuration - (self[115] or 0)
|
|
854
|
+
self[115] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
855
|
+
local remainingHealingOverDuration = (self[118] or 0) + healingOverDurationDelta
|
|
856
|
+
self[118] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
781
857
|
end
|
|
782
858
|
},
|
|
783
859
|
true
|
|
@@ -787,10 +863,10 @@ __TS__SetDescriptor(
|
|
|
787
863
|
"healingPerInterval",
|
|
788
864
|
{
|
|
789
865
|
get = function(self)
|
|
790
|
-
return self[
|
|
866
|
+
return self[116] or 0
|
|
791
867
|
end,
|
|
792
868
|
set = function(self, healingPerInterval)
|
|
793
|
-
self[
|
|
869
|
+
self[116] = healingPerInterval ~= 0 and healingPerInterval or nil
|
|
794
870
|
end
|
|
795
871
|
},
|
|
796
872
|
true
|
|
@@ -800,25 +876,25 @@ __TS__SetDescriptor(
|
|
|
800
876
|
"healingInterval",
|
|
801
877
|
{
|
|
802
878
|
get = function(self)
|
|
803
|
-
return self[
|
|
879
|
+
return self[117] or 0
|
|
804
880
|
end,
|
|
805
881
|
set = function(self, healingInterval)
|
|
806
882
|
if healingInterval <= 0 then
|
|
807
|
-
self[
|
|
808
|
-
local timer = self[
|
|
883
|
+
self[117] = healingInterval ~= 0 and healingInterval or nil
|
|
884
|
+
local timer = self[119]
|
|
809
885
|
if timer ~= nil then
|
|
810
886
|
timer:destroy()
|
|
811
|
-
self[
|
|
887
|
+
self[119] = nil
|
|
812
888
|
end
|
|
813
889
|
return
|
|
814
890
|
end
|
|
815
|
-
self[
|
|
816
|
-
local
|
|
817
|
-
local elapsed =
|
|
818
|
-
local timer = self[
|
|
891
|
+
self[117] = healingInterval
|
|
892
|
+
local ____opt_52 = self._timer
|
|
893
|
+
local elapsed = ____opt_52 and ____opt_52.elapsed or 0
|
|
894
|
+
local timer = self[119]
|
|
819
895
|
if timer == nil then
|
|
820
896
|
timer = Timer:create()
|
|
821
|
-
self[
|
|
897
|
+
self[119] = timer
|
|
822
898
|
end
|
|
823
899
|
local initialDelay = healingInterval - (elapsed >= healingInterval and math.fmod(elapsed, healingInterval) or elapsed)
|
|
824
900
|
if initialDelay == healingInterval then
|
|
@@ -835,10 +911,10 @@ __TS__SetDescriptor(
|
|
|
835
911
|
"damageOnExpiration",
|
|
836
912
|
{
|
|
837
913
|
get = function(self)
|
|
838
|
-
return self[
|
|
914
|
+
return self[120] or 0
|
|
839
915
|
end,
|
|
840
916
|
set = function(self, damageOnExpiration)
|
|
841
|
-
self[
|
|
917
|
+
self[120] = damageOnExpiration ~= 0 and damageOnExpiration or nil
|
|
842
918
|
end
|
|
843
919
|
},
|
|
844
920
|
true
|
|
@@ -848,10 +924,23 @@ __TS__SetDescriptor(
|
|
|
848
924
|
"healingOnExpiration",
|
|
849
925
|
{
|
|
850
926
|
get = function(self)
|
|
851
|
-
return self[
|
|
927
|
+
return self[121] or 0
|
|
852
928
|
end,
|
|
853
929
|
set = function(self, healingOnExpiration)
|
|
854
|
-
self[
|
|
930
|
+
self[121] = healingOnExpiration ~= 0 and healingOnExpiration or nil
|
|
931
|
+
end
|
|
932
|
+
},
|
|
933
|
+
true
|
|
934
|
+
)
|
|
935
|
+
__TS__SetDescriptor(
|
|
936
|
+
Buff.prototype,
|
|
937
|
+
"damageFactor",
|
|
938
|
+
{
|
|
939
|
+
get = function(self)
|
|
940
|
+
return self:getUnitBonus(UnitBonusType.DAMAGE_FACTOR)
|
|
941
|
+
end,
|
|
942
|
+
set = function(self, damageFactor)
|
|
943
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.DAMAGE_FACTOR, damageFactor)
|
|
855
944
|
end
|
|
856
945
|
},
|
|
857
946
|
true
|
|
@@ -882,30 +971,53 @@ __TS__SetDescriptor(
|
|
|
882
971
|
},
|
|
883
972
|
true
|
|
884
973
|
)
|
|
974
|
+
__TS__SetDescriptor(
|
|
975
|
+
Buff.prototype,
|
|
976
|
+
"turnsIntoGhost",
|
|
977
|
+
{
|
|
978
|
+
get = function(self)
|
|
979
|
+
local ____self__135_54 = self[135]
|
|
980
|
+
if ____self__135_54 == nil then
|
|
981
|
+
____self__135_54 = false
|
|
982
|
+
end
|
|
983
|
+
return ____self__135_54
|
|
984
|
+
end,
|
|
985
|
+
set = function(self, turnsIntoGhost)
|
|
986
|
+
if not turnsIntoGhost and self[135] then
|
|
987
|
+
self.object:decrementGhostCounter()
|
|
988
|
+
self[135] = nil
|
|
989
|
+
elseif turnsIntoGhost and not self[135] then
|
|
990
|
+
self.object:incrementGhostCounter()
|
|
991
|
+
self[135] = true
|
|
992
|
+
end
|
|
993
|
+
end
|
|
994
|
+
},
|
|
995
|
+
true
|
|
996
|
+
)
|
|
885
997
|
__TS__SetDescriptor(
|
|
886
998
|
Buff.prototype,
|
|
887
999
|
"stuns",
|
|
888
1000
|
{
|
|
889
1001
|
get = function(self)
|
|
890
|
-
local
|
|
891
|
-
if
|
|
892
|
-
|
|
1002
|
+
local ____self__136_55 = self[136]
|
|
1003
|
+
if ____self__136_55 == nil then
|
|
1004
|
+
____self__136_55 = false
|
|
893
1005
|
end
|
|
894
|
-
return
|
|
1006
|
+
return ____self__136_55
|
|
895
1007
|
end,
|
|
896
1008
|
set = function(self, stuns)
|
|
897
|
-
if not stuns and self[
|
|
898
|
-
if self[
|
|
1009
|
+
if not stuns and self[136] then
|
|
1010
|
+
if self[137] then
|
|
899
1011
|
self.object:decrementStunCounter()
|
|
900
1012
|
end
|
|
901
1013
|
self.object:decrementStunCounter()
|
|
902
|
-
self[
|
|
903
|
-
elseif stuns and not self[
|
|
904
|
-
if self[
|
|
1014
|
+
self[136] = nil
|
|
1015
|
+
elseif stuns and not self[136] then
|
|
1016
|
+
if self[137] then
|
|
905
1017
|
self.object:incrementStunCounter()
|
|
906
1018
|
end
|
|
907
1019
|
self.object:incrementStunCounter()
|
|
908
|
-
self[
|
|
1020
|
+
self[136] = true
|
|
909
1021
|
end
|
|
910
1022
|
end
|
|
911
1023
|
},
|
|
@@ -916,23 +1028,23 @@ __TS__SetDescriptor(
|
|
|
916
1028
|
"ignoresStunImmunity",
|
|
917
1029
|
{
|
|
918
1030
|
get = function(self)
|
|
919
|
-
local
|
|
920
|
-
if
|
|
921
|
-
|
|
1031
|
+
local ____self__137_56 = self[137]
|
|
1032
|
+
if ____self__137_56 == nil then
|
|
1033
|
+
____self__137_56 = false
|
|
922
1034
|
end
|
|
923
|
-
return
|
|
1035
|
+
return ____self__137_56
|
|
924
1036
|
end,
|
|
925
1037
|
set = function(self, ignoresStunImmunity)
|
|
926
|
-
if not ignoresStunImmunity and self[
|
|
927
|
-
if self[
|
|
1038
|
+
if not ignoresStunImmunity and self[137] then
|
|
1039
|
+
if self[136] then
|
|
928
1040
|
self.object:decrementStunCounter()
|
|
929
1041
|
end
|
|
930
|
-
self[
|
|
931
|
-
elseif ignoresStunImmunity and not self[
|
|
932
|
-
if self[
|
|
1042
|
+
self[137] = nil
|
|
1043
|
+
elseif ignoresStunImmunity and not self[137] then
|
|
1044
|
+
if self[136] then
|
|
933
1045
|
self.object:incrementStunCounter()
|
|
934
1046
|
end
|
|
935
|
-
self[
|
|
1047
|
+
self[137] = true
|
|
936
1048
|
end
|
|
937
1049
|
end
|
|
938
1050
|
},
|
|
@@ -943,19 +1055,19 @@ __TS__SetDescriptor(
|
|
|
943
1055
|
"disablesAutoAttack",
|
|
944
1056
|
{
|
|
945
1057
|
get = function(self)
|
|
946
|
-
local
|
|
947
|
-
if
|
|
948
|
-
|
|
1058
|
+
local ____self__138_57 = self[138]
|
|
1059
|
+
if ____self__138_57 == nil then
|
|
1060
|
+
____self__138_57 = false
|
|
949
1061
|
end
|
|
950
|
-
return
|
|
1062
|
+
return ____self__138_57
|
|
951
1063
|
end,
|
|
952
1064
|
set = function(self, disablesAutoAttack)
|
|
953
|
-
if not disablesAutoAttack and self[
|
|
1065
|
+
if not disablesAutoAttack and self[138] then
|
|
954
1066
|
self.object:decrementDisableAutoAttackCounter()
|
|
955
|
-
self[
|
|
956
|
-
elseif disablesAutoAttack and not self[
|
|
1067
|
+
self[138] = nil
|
|
1068
|
+
elseif disablesAutoAttack and not self[138] then
|
|
957
1069
|
self.object:incrementDisableAutoAttackCounter()
|
|
958
|
-
self[
|
|
1070
|
+
self[138] = true
|
|
959
1071
|
end
|
|
960
1072
|
end
|
|
961
1073
|
},
|
|
@@ -966,19 +1078,19 @@ __TS__SetDescriptor(
|
|
|
966
1078
|
"providesInvulnerability",
|
|
967
1079
|
{
|
|
968
1080
|
get = function(self)
|
|
969
|
-
local
|
|
970
|
-
if
|
|
971
|
-
|
|
1081
|
+
local ____self__139_58 = self[139]
|
|
1082
|
+
if ____self__139_58 == nil then
|
|
1083
|
+
____self__139_58 = false
|
|
972
1084
|
end
|
|
973
|
-
return
|
|
1085
|
+
return ____self__139_58
|
|
974
1086
|
end,
|
|
975
1087
|
set = function(self, providesInvulnerability)
|
|
976
|
-
if not providesInvulnerability and self[
|
|
1088
|
+
if not providesInvulnerability and self[139] then
|
|
977
1089
|
self.object:decrementInvulnerabilityCounter()
|
|
978
|
-
self[
|
|
979
|
-
elseif providesInvulnerability and not self[
|
|
1090
|
+
self[139] = nil
|
|
1091
|
+
elseif providesInvulnerability and not self[139] then
|
|
980
1092
|
self.object:incrementInvulnerabilityCounter()
|
|
981
|
-
self[
|
|
1093
|
+
self[139] = true
|
|
982
1094
|
end
|
|
983
1095
|
end
|
|
984
1096
|
},
|
|
@@ -989,17 +1101,17 @@ __TS__SetDescriptor(
|
|
|
989
1101
|
"killsOnExpiration",
|
|
990
1102
|
{
|
|
991
1103
|
get = function(self)
|
|
992
|
-
local
|
|
993
|
-
if
|
|
994
|
-
|
|
1104
|
+
local ____self__140_59 = self[140]
|
|
1105
|
+
if ____self__140_59 == nil then
|
|
1106
|
+
____self__140_59 = false
|
|
995
1107
|
end
|
|
996
|
-
return
|
|
1108
|
+
return ____self__140_59
|
|
997
1109
|
end,
|
|
998
1110
|
set = function(self, killsOnExpiration)
|
|
999
|
-
if not killsOnExpiration and self[
|
|
1000
|
-
self[
|
|
1001
|
-
elseif killsOnExpiration and not self[
|
|
1002
|
-
self[
|
|
1111
|
+
if not killsOnExpiration and self[140] then
|
|
1112
|
+
self[140] = nil
|
|
1113
|
+
elseif killsOnExpiration and not self[140] then
|
|
1114
|
+
self[140] = true
|
|
1003
1115
|
end
|
|
1004
1116
|
end
|
|
1005
1117
|
},
|
|
@@ -1010,17 +1122,51 @@ __TS__SetDescriptor(
|
|
|
1010
1122
|
"explodesOnExpiration",
|
|
1011
1123
|
{
|
|
1012
1124
|
get = function(self)
|
|
1013
|
-
local
|
|
1014
|
-
if
|
|
1015
|
-
|
|
1125
|
+
local ____self__141_60 = self[141]
|
|
1126
|
+
if ____self__141_60 == nil then
|
|
1127
|
+
____self__141_60 = false
|
|
1016
1128
|
end
|
|
1017
|
-
return
|
|
1129
|
+
return ____self__141_60
|
|
1018
1130
|
end,
|
|
1019
1131
|
set = function(self, killsOnExpiration)
|
|
1020
|
-
if not killsOnExpiration and self[
|
|
1021
|
-
self[
|
|
1022
|
-
elseif killsOnExpiration and not self[
|
|
1023
|
-
self[
|
|
1132
|
+
if not killsOnExpiration and self[141] then
|
|
1133
|
+
self[141] = nil
|
|
1134
|
+
elseif killsOnExpiration and not self[141] then
|
|
1135
|
+
self[141] = true
|
|
1136
|
+
end
|
|
1137
|
+
end
|
|
1138
|
+
},
|
|
1139
|
+
true
|
|
1140
|
+
)
|
|
1141
|
+
__TS__SetDescriptor(
|
|
1142
|
+
Buff.prototype,
|
|
1143
|
+
"maximumDamageDealtEventCount",
|
|
1144
|
+
{
|
|
1145
|
+
get = function(self)
|
|
1146
|
+
return self[132] or 0
|
|
1147
|
+
end,
|
|
1148
|
+
set = function(self, maximumDamageDealtEventCount)
|
|
1149
|
+
if maximumDamageDealtEventCount == 0 then
|
|
1150
|
+
self[132] = nil
|
|
1151
|
+
else
|
|
1152
|
+
self[132] = maximumDamageDealtEventCount
|
|
1153
|
+
end
|
|
1154
|
+
end
|
|
1155
|
+
},
|
|
1156
|
+
true
|
|
1157
|
+
)
|
|
1158
|
+
__TS__SetDescriptor(
|
|
1159
|
+
Buff.prototype,
|
|
1160
|
+
"maximumDamageReceivedEventCount",
|
|
1161
|
+
{
|
|
1162
|
+
get = function(self)
|
|
1163
|
+
return self[134] or 0
|
|
1164
|
+
end,
|
|
1165
|
+
set = function(self, maximumDamageReceivedEventCount)
|
|
1166
|
+
if maximumDamageReceivedEventCount == 0 then
|
|
1167
|
+
self[134] = nil
|
|
1168
|
+
else
|
|
1169
|
+
self[134] = maximumDamageReceivedEventCount
|
|
1024
1170
|
end
|
|
1025
1171
|
end
|
|
1026
1172
|
},
|
|
@@ -1031,13 +1177,13 @@ __TS__SetDescriptor(
|
|
|
1031
1177
|
"maximumAutoAttackCount",
|
|
1032
1178
|
{
|
|
1033
1179
|
get = function(self)
|
|
1034
|
-
return self[
|
|
1180
|
+
return self[130] or 0
|
|
1035
1181
|
end,
|
|
1036
1182
|
set = function(self, maximumAutoAttackCount)
|
|
1037
1183
|
if maximumAutoAttackCount == 0 then
|
|
1038
|
-
self[
|
|
1184
|
+
self[130] = nil
|
|
1039
1185
|
else
|
|
1040
|
-
self[
|
|
1186
|
+
self[130] = maximumAutoAttackCount
|
|
1041
1187
|
end
|
|
1042
1188
|
end
|
|
1043
1189
|
},
|
|
@@ -1048,10 +1194,10 @@ __TS__SetDescriptor(
|
|
|
1048
1194
|
"durationIncreaseOnAutoAttack",
|
|
1049
1195
|
{
|
|
1050
1196
|
get = function(self)
|
|
1051
|
-
return self[
|
|
1197
|
+
return self[107] or 0
|
|
1052
1198
|
end,
|
|
1053
1199
|
set = function(self, durationIncreaseOnAutoAttack)
|
|
1054
|
-
self[
|
|
1200
|
+
self[107] = durationIncreaseOnAutoAttack
|
|
1055
1201
|
end
|
|
1056
1202
|
},
|
|
1057
1203
|
true
|
|
@@ -1082,11 +1228,24 @@ __TS__SetDescriptor(
|
|
|
1082
1228
|
},
|
|
1083
1229
|
true
|
|
1084
1230
|
)
|
|
1231
|
+
__TS__SetDescriptor(
|
|
1232
|
+
Buff.prototype,
|
|
1233
|
+
"evasionProbability",
|
|
1234
|
+
{
|
|
1235
|
+
get = function(self)
|
|
1236
|
+
return self:getUnitBonus(UnitBonusType.EVASION_PROBABILITY)
|
|
1237
|
+
end,
|
|
1238
|
+
set = function(self, evasionProbability)
|
|
1239
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.EVASION_PROBABILITY, evasionProbability)
|
|
1240
|
+
end
|
|
1241
|
+
},
|
|
1242
|
+
true
|
|
1243
|
+
)
|
|
1085
1244
|
__TS__SetDescriptor(
|
|
1086
1245
|
Buff.prototype,
|
|
1087
1246
|
"duration",
|
|
1088
1247
|
{get = function(self)
|
|
1089
|
-
return self[
|
|
1248
|
+
return self[103]
|
|
1090
1249
|
end},
|
|
1091
1250
|
true
|
|
1092
1251
|
)
|
|
@@ -1095,15 +1254,15 @@ __TS__SetDescriptor(
|
|
|
1095
1254
|
"remainingDuration",
|
|
1096
1255
|
{
|
|
1097
1256
|
get = function(self)
|
|
1098
|
-
local
|
|
1099
|
-
return
|
|
1257
|
+
local ____opt_61 = self._timer
|
|
1258
|
+
return ____opt_61 and ____opt_61.remaining or 0
|
|
1100
1259
|
end,
|
|
1101
1260
|
set = function(self, remainingDuration)
|
|
1102
|
-
local
|
|
1103
|
-
local
|
|
1104
|
-
local remainingDurationDelta =
|
|
1261
|
+
local ____remainingDuration_65 = remainingDuration
|
|
1262
|
+
local ____opt_63 = self._timer
|
|
1263
|
+
local remainingDurationDelta = ____remainingDuration_65 - (____opt_63 and ____opt_63.remaining or 0)
|
|
1105
1264
|
if remainingDurationDelta ~= 0 then
|
|
1106
|
-
self[
|
|
1265
|
+
self[103] = self[103] + remainingDurationDelta
|
|
1107
1266
|
if remainingDuration <= 0 then
|
|
1108
1267
|
Timer:run(destroyBuff, self)
|
|
1109
1268
|
else
|
|
@@ -1115,7 +1274,8 @@ __TS__SetDescriptor(
|
|
|
1115
1274
|
self._level,
|
|
1116
1275
|
remainingDuration,
|
|
1117
1276
|
self._spellStealPriority,
|
|
1118
|
-
self._learnLevelMinimum
|
|
1277
|
+
self._learnLevelMinimum,
|
|
1278
|
+
self[142]
|
|
1119
1279
|
) then
|
|
1120
1280
|
local timer = self._timer
|
|
1121
1281
|
if timer == nil then
|
|
@@ -1129,10 +1289,12 @@ __TS__SetDescriptor(
|
|
|
1129
1289
|
end
|
|
1130
1290
|
},
|
|
1131
1291
|
true
|
|
1132
|
-
)
|
|
1292
|
+
)
|
|
1293
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1294
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1133
1295
|
(function(self)
|
|
1134
1296
|
local function destroyBuffIfNeeded(buff)
|
|
1135
|
-
if getUnitAbility(buff[
|
|
1297
|
+
if getUnitAbility(buff[101].handle, buff.typeId) ~= buff.handle and buff[100] == 1 then
|
|
1136
1298
|
buff:destroy()
|
|
1137
1299
|
end
|
|
1138
1300
|
end
|
|
@@ -1183,5 +1345,8 @@ __TS__SetDescriptor(
|
|
|
1183
1345
|
____exports.checkBuffs(target)
|
|
1184
1346
|
end
|
|
1185
1347
|
)
|
|
1348
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1349
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1350
|
+
end)
|
|
1186
1351
|
end)(Buff)
|
|
1187
1352
|
return ____exports
|