warscript 0.0.1-dev.e0e46c4 → 0.0.1-dev.e147c49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +1 -0
- package/attributes.lua +9 -0
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +136 -58
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +3 -1
- package/core/types/timer.lua +27 -2
- package/core/types/unit.d.ts +4 -0
- package/core/types/unit.lua +4 -0
- package/decl/native.d.ts +711 -11
- 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 +4 -4
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +18 -15
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +7 -5
- 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 +12 -6
- package/engine/behaviour/ability.lua +42 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +9 -5
- package/engine/behaviour/unit/stun-immunity.lua +17 -7
- package/engine/behaviour/unit.d.ts +16 -5
- package/engine/behaviour/unit.lua +133 -26
- package/engine/buff.d.ts +73 -27
- package/engine/buff.lua +424 -193
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +86 -44
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.d.ts +1 -0
- package/engine/internal/item+owner.lua +19 -6
- package/engine/internal/item.d.ts +23 -14
- package/engine/internal/item.lua +169 -82
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +14 -14
- package/engine/internal/unit/ability.lua +86 -47
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bag.d.ts +18 -0
- package/engine/internal/unit/bag.lua +63 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment.d.ts +36 -0
- package/engine/internal/unit/equipment.lua +169 -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/{item.d.ts → inventory.d.ts} +3 -3
- package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +18 -24
- package/engine/internal/unit.lua +180 -206
- package/engine/local-client.d.ts +27 -0
- package/engine/local-client.lua +518 -54
- 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/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
- package/engine/object-data/auxiliary/equipment-type.lua +2 -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/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -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/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +12 -3
- package/engine/object-data/entry/ability-type.lua +142 -8
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +12 -3
- package/engine/object-data/entry/item-type.lua +52 -0
- package/engine/object-data/entry/lightning-type.d.ts +2 -2
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +62 -4
- package/engine/object-data/entry/unit-type.lua +474 -38
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +4 -1
- package/engine/object-field/ability.d.ts +3 -3
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +27 -5
- package/engine/object-field/unit.lua +82 -0
- package/engine/object-field.d.ts +12 -4
- package/engine/object-field.lua +273 -126
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +11 -2
- package/engine/standard/fields/unit.lua +16 -1
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +1 -1
- package/engine/text-tag.lua +92 -17
- package/engine/unit.d.ts +9 -1
- package/engine/unit.lua +9 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +10 -8
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +8 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +4 -0
- package/utility/functions.lua +9 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +46 -1
- package/utility/lua-maps.d.ts +11 -2
- package/utility/lua-maps.lua +33 -2
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/frame-coordinates.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.lua
CHANGED
|
@@ -16,6 +16,7 @@ local internalApplyBuff = ____applicable.internalApplyBuff
|
|
|
16
16
|
local removeBuff = ____applicable.removeBuff
|
|
17
17
|
local ____ability = require("engine.internal.ability")
|
|
18
18
|
local Ability = ____ability.Ability
|
|
19
|
+
local UnitAbility = ____ability.UnitAbility
|
|
19
20
|
local ____ability = require("engine.object-field.ability")
|
|
20
21
|
local AbilityBooleanField = ____ability.AbilityBooleanField
|
|
21
22
|
local AbilityNumberField = ____ability.AbilityNumberField
|
|
@@ -28,9 +29,6 @@ local ____math = require("math")
|
|
|
28
29
|
local max = ____math.max
|
|
29
30
|
local min = ____math.min
|
|
30
31
|
local ____bonus = require("engine.internal.unit.bonus")
|
|
31
|
-
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
32
|
-
local getUnitBonus = ____bonus.getUnitBonus
|
|
33
|
-
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
34
32
|
local UnitBonusType = ____bonus.UnitBonusType
|
|
35
33
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
34
|
local damageArea = ____area_2Ddamage.damageArea
|
|
@@ -44,6 +42,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
44
42
|
local ____unit = require("engine.behaviour.unit")
|
|
45
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
46
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
47
46
|
local forEach = ____arrays.forEach
|
|
48
47
|
local ____event = require("event")
|
|
49
48
|
local Event = ____event.Event
|
|
@@ -53,6 +52,12 @@ local ____item = require("engine.internal.item")
|
|
|
53
52
|
local Item = ____item.Item
|
|
54
53
|
local ____destructable = require("core.types.destructable")
|
|
55
54
|
local Destructable = ____destructable.Destructable
|
|
55
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
56
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
57
|
+
local ____ability = require("engine.behaviour.ability")
|
|
58
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
59
|
+
local ____records = require("utility.records")
|
|
60
|
+
local sortedKeysUnnested = ____records.sortedKeysUnnested
|
|
56
61
|
local getUnitAbility = BlzGetUnitAbility
|
|
57
62
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
58
63
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -98,9 +103,11 @@ local buffParametersKeys = {
|
|
|
98
103
|
damageIncrease = true,
|
|
99
104
|
damageIncreaseFactor = true,
|
|
100
105
|
armorIncrease = true,
|
|
101
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
102
108
|
attackSpeedIncreaseFactor = true,
|
|
103
109
|
movementSpeedIncreaseFactor = true,
|
|
110
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
104
111
|
evasionProbability = true,
|
|
105
112
|
missProbability = true,
|
|
106
113
|
damageFactor = true,
|
|
@@ -120,11 +127,15 @@ local buffParametersKeys = {
|
|
|
120
127
|
maximumAutoAttackCount = true,
|
|
121
128
|
maximumDamageDealtEventCount = true,
|
|
122
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
123
133
|
uniqueGroup = true,
|
|
124
134
|
damageOnExpiration = true,
|
|
125
135
|
healingOnExpiration = true,
|
|
126
136
|
killsOnExpiration = true,
|
|
127
|
-
explodesOnExpiration = true
|
|
137
|
+
explodesOnExpiration = true,
|
|
138
|
+
abilityCooldownFactor = true
|
|
128
139
|
}
|
|
129
140
|
local function resolveEnumValue(ability, level, value)
|
|
130
141
|
if value == nil or type(value) == "number" then
|
|
@@ -175,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
175
186
|
end
|
|
176
187
|
end
|
|
177
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
178
190
|
"turnsIntoGhost",
|
|
179
191
|
"stuns",
|
|
180
192
|
"ignoresStunImmunity",
|
|
@@ -187,8 +199,11 @@ local buffNumberParameters = {
|
|
|
187
199
|
"durationIncreaseOnAutoAttack",
|
|
188
200
|
"attackSpeedIncreaseFactor",
|
|
189
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
190
203
|
"evasionProbability",
|
|
191
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
192
207
|
"damageFactor",
|
|
193
208
|
"receivedDamageFactor",
|
|
194
209
|
"maximumAutoAttackCount",
|
|
@@ -201,7 +216,10 @@ local buffNumberParameters = {
|
|
|
201
216
|
"healingPerInterval",
|
|
202
217
|
"healingOverDuration",
|
|
203
218
|
"damageOnExpiration",
|
|
204
|
-
"healingOnExpiration"
|
|
219
|
+
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
222
|
+
"abilityCooldownFactor"
|
|
205
223
|
}
|
|
206
224
|
local unsuccessfulApplicationMarker = {}
|
|
207
225
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -236,6 +254,10 @@ local function destroyBuff(buff)
|
|
|
236
254
|
buff:destroy()
|
|
237
255
|
end
|
|
238
256
|
local function expireBuff(buff)
|
|
257
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
258
|
+
return
|
|
259
|
+
end
|
|
260
|
+
buff[100] = 2
|
|
239
261
|
local remainingDamageOverDuration = buff[113] or 0
|
|
240
262
|
local remainingHealingOverDuration = buff[113] or 0
|
|
241
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
@@ -320,33 +342,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
320
342
|
local polarity
|
|
321
343
|
local resistanceType
|
|
322
344
|
local ability
|
|
345
|
+
local abilityBehavior
|
|
323
346
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
324
347
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
325
348
|
polarity = resistanceTypeOrPolarity
|
|
326
349
|
resistanceType = abilityOrParametersOrResistanceType
|
|
327
|
-
if __TS__InstanceOf(parametersOrAbility,
|
|
350
|
+
if __TS__InstanceOf(parametersOrAbility, AbilityBehavior) then
|
|
351
|
+
abilityBehavior = parametersOrAbility
|
|
352
|
+
ability = abilityBehavior.ability
|
|
353
|
+
elseif __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
328
354
|
ability = parametersOrAbility
|
|
329
|
-
|
|
330
|
-
ability = nil
|
|
355
|
+
elseif parametersOrAbility ~= nil then
|
|
331
356
|
parameters = parametersOrAbility
|
|
332
357
|
end
|
|
333
358
|
else
|
|
334
359
|
typeId = typeIdOrTypeIds
|
|
335
360
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
336
361
|
resistanceType = resistanceTypeOrPolarity
|
|
337
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType,
|
|
362
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, AbilityBehavior) then
|
|
363
|
+
abilityBehavior = abilityOrParametersOrResistanceType
|
|
364
|
+
ability = abilityBehavior.ability
|
|
365
|
+
parameters = parametersOrAbility
|
|
366
|
+
elseif __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
338
367
|
ability = abilityOrParametersOrResistanceType
|
|
339
368
|
parameters = parametersOrAbility
|
|
340
|
-
|
|
341
|
-
ability = nil
|
|
369
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
342
370
|
parameters = abilityOrParametersOrResistanceType
|
|
371
|
+
else
|
|
372
|
+
parameters = parametersOrAbility
|
|
343
373
|
end
|
|
344
374
|
end
|
|
375
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
345
376
|
self.typeId = typeId
|
|
346
|
-
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
347
|
-
parameters = ability
|
|
348
|
-
ability = nil
|
|
349
|
-
end
|
|
350
377
|
local defaultParameters = self.constructor.defaultParameters
|
|
351
378
|
local level = parameters and parameters.level or defaultParameters.level
|
|
352
379
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -374,14 +401,15 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
374
401
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
375
402
|
if missProbability ~= nil then
|
|
376
403
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
377
|
-
self[
|
|
404
|
+
self[146] = missProbability
|
|
378
405
|
end
|
|
379
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
380
407
|
if buffByTypeId == nil then
|
|
381
408
|
buffByTypeId = {}
|
|
382
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
383
410
|
end
|
|
384
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
385
413
|
if ____opt_15 ~= nil then
|
|
386
414
|
____opt_15:destroy()
|
|
387
415
|
end
|
|
@@ -457,24 +485,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
457
485
|
abilityTypeIds = {}
|
|
458
486
|
self._abilityTypeIds = abilityTypeIds
|
|
459
487
|
end
|
|
460
|
-
for
|
|
488
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
461
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
462
491
|
if addedAbility ~= nil then
|
|
463
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
464
493
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
if not resolveBooleanValue(ability, level, abilityParameterValue) then
|
|
468
|
-
_unit:hideAbility(abilityTypeId, true)
|
|
469
|
-
end
|
|
470
|
-
elseif abilityParameterKey ~= "level" then
|
|
471
|
-
abilityParameterKey:setValue(
|
|
472
|
-
addedAbility,
|
|
473
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
474
|
-
)
|
|
475
|
-
end
|
|
494
|
+
if abilityParameters.isButtonVisible == false then
|
|
495
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
476
496
|
end
|
|
477
|
-
|
|
497
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
498
|
+
field[1]:setValue(
|
|
499
|
+
addedAbility,
|
|
500
|
+
resolveNumberValue(ability, level, field[2])
|
|
501
|
+
)
|
|
502
|
+
end
|
|
503
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
478
504
|
end
|
|
479
505
|
end
|
|
480
506
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -486,18 +512,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
486
512
|
self._behaviors = behaviors
|
|
487
513
|
end
|
|
488
514
|
end
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
if
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
515
|
+
if parameters ~= nil then
|
|
516
|
+
local additionalParameters = {}
|
|
517
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
518
|
+
if not buffParametersKeys[key] then
|
|
519
|
+
if ability then
|
|
520
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
521
|
+
else
|
|
522
|
+
additionalParameters[key] = parameters[key]
|
|
523
|
+
end
|
|
496
524
|
end
|
|
497
525
|
end
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
526
|
+
if (next(additionalParameters)) ~= nil then
|
|
527
|
+
self.parameters = additionalParameters
|
|
528
|
+
end
|
|
501
529
|
end
|
|
502
530
|
end
|
|
503
531
|
if duration ~= nil and duration > 0 then
|
|
@@ -509,64 +537,77 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
509
537
|
self[100] = 1
|
|
510
538
|
Event.invoke(buffCreatedEvent, self)
|
|
511
539
|
end
|
|
512
|
-
function Buff.prototype.
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
540
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
541
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
542
|
+
local abilityCooldownModifier = self[148]
|
|
543
|
+
if abilityCooldownModifier then
|
|
544
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
545
|
+
end
|
|
546
|
+
end
|
|
516
547
|
end
|
|
517
|
-
function Buff.prototype.
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
548
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
549
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
550
|
+
local abilityCooldownModifier = self[148]
|
|
551
|
+
if abilityCooldownModifier then
|
|
552
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
553
|
+
end
|
|
522
554
|
end
|
|
523
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
524
555
|
end
|
|
525
556
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
557
|
+
self:flash(
|
|
558
|
+
self[105],
|
|
559
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
560
|
+
widgetOrXOrParametersOrDuration,
|
|
561
|
+
yOrParametersOrDuration,
|
|
562
|
+
parametersOrDuration
|
|
563
|
+
)
|
|
564
|
+
end
|
|
565
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
566
|
+
self:flash(
|
|
567
|
+
self[106],
|
|
568
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
569
|
+
widgetOrXOrParametersOrDuration,
|
|
570
|
+
yOrParametersOrDuration,
|
|
571
|
+
parametersOrDuration
|
|
572
|
+
)
|
|
573
|
+
end
|
|
574
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
526
575
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
527
|
-
Effect:flash(
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
528
577
|
else
|
|
529
578
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
530
|
-
local
|
|
531
|
-
local
|
|
532
|
-
local
|
|
533
|
-
|
|
534
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
535
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
536
|
-
)
|
|
537
|
-
local ____isWidgetProvided_40
|
|
579
|
+
local ____Effect_40 = Effect
|
|
580
|
+
local ____Effect_flash_41 = Effect.flash
|
|
581
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
582
|
+
local ____isWidgetProvided_38
|
|
538
583
|
if isWidgetProvided then
|
|
539
|
-
|
|
584
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
540
585
|
else
|
|
541
|
-
|
|
586
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
542
587
|
end
|
|
543
|
-
__TS__SparseArrayPush(
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
__TS__SparseArraySpread(
|
|
588
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
589
|
+
____Effect_flash_41(
|
|
590
|
+
____Effect_40,
|
|
591
|
+
__TS__SparseArraySpread(____array_39)
|
|
547
592
|
)
|
|
548
593
|
end
|
|
549
594
|
end
|
|
550
|
-
function Buff.prototype.
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
595
|
+
function Buff.prototype.expire(self)
|
|
596
|
+
expireBuff(self)
|
|
597
|
+
end
|
|
598
|
+
function Buff.prototype.dispel(self, source)
|
|
599
|
+
if self.isDestroyed or self[100] ~= 1 then
|
|
600
|
+
return
|
|
601
|
+
end
|
|
602
|
+
self[100] = 2
|
|
603
|
+
do
|
|
604
|
+
pcall(function()
|
|
605
|
+
self:onDispel(source)
|
|
606
|
+
end)
|
|
607
|
+
do
|
|
608
|
+
self:destroy()
|
|
609
|
+
end
|
|
564
610
|
end
|
|
565
|
-
__TS__SparseArrayPush(____array_45, ____isWidgetProvided_44)
|
|
566
|
-
____Effect_flash_47(
|
|
567
|
-
____Effect_46,
|
|
568
|
-
__TS__SparseArraySpread(____array_45)
|
|
569
|
-
)
|
|
570
611
|
end
|
|
571
612
|
function Buff.prototype.onCreate(self)
|
|
572
613
|
end
|
|
@@ -596,31 +637,32 @@ function Buff.prototype.onDestroy(self)
|
|
|
596
637
|
behavior:destroy()
|
|
597
638
|
end
|
|
598
639
|
end
|
|
599
|
-
|
|
640
|
+
local previousAbilityCooldownModifier = self[148]
|
|
641
|
+
if previousAbilityCooldownModifier then
|
|
642
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
643
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
644
|
+
end
|
|
645
|
+
end
|
|
646
|
+
if self[143] then
|
|
600
647
|
unit:decrementInvulnerabilityCounter()
|
|
601
648
|
end
|
|
602
|
-
if self[
|
|
649
|
+
if self[142] then
|
|
603
650
|
unit:decrementDisableAutoAttackCounter()
|
|
604
651
|
end
|
|
605
|
-
if self[
|
|
606
|
-
if self[
|
|
607
|
-
unit:
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
654
|
+
unit:decrementForceStunCounter()
|
|
608
655
|
end
|
|
609
656
|
unit:decrementStunCounter()
|
|
610
657
|
end
|
|
611
|
-
if self[
|
|
658
|
+
if self[139] then
|
|
612
659
|
unit:decrementGhostCounter()
|
|
613
660
|
end
|
|
614
661
|
if self._abilityTypeIds ~= nil then
|
|
615
|
-
for abilityTypeId in
|
|
662
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
616
663
|
unit:removeAbility(abilityTypeId)
|
|
617
664
|
end
|
|
618
665
|
end
|
|
619
|
-
if self._bonusIdByBonusType ~= nil then
|
|
620
|
-
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
621
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
622
|
-
end
|
|
623
|
-
end
|
|
624
666
|
Event.invoke(buffBeingDestroyedEvent, self)
|
|
625
667
|
self[100] = 3
|
|
626
668
|
return UnitBehavior.prototype.onDestroy(self)
|
|
@@ -650,13 +692,15 @@ function Buff.apply(self, ...)
|
|
|
650
692
|
end
|
|
651
693
|
end
|
|
652
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
653
|
-
local
|
|
654
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
655
697
|
if __TS__InstanceOf(buff, self) then
|
|
656
698
|
return buff
|
|
657
699
|
end
|
|
658
700
|
return nil
|
|
659
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
660
704
|
function Buff.prototype.onExpiration(self)
|
|
661
705
|
local unit = self.unit
|
|
662
706
|
if self[120] ~= nil then
|
|
@@ -665,9 +709,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
665
709
|
if self[121] ~= nil then
|
|
666
710
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
667
711
|
end
|
|
668
|
-
if self[
|
|
712
|
+
if self[145] then
|
|
669
713
|
unit:explode()
|
|
670
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
671
715
|
unit:kill()
|
|
672
716
|
end
|
|
673
717
|
end
|
|
@@ -722,6 +766,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
722
766
|
end
|
|
723
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
724
768
|
if event.originalAmount ~= 0 then
|
|
769
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
770
|
+
if absorbedDamage > 0 then
|
|
771
|
+
event.amount = event.amount - absorbedDamage
|
|
772
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
773
|
+
local ____self__138_44 = self[138]
|
|
774
|
+
if ____self__138_44 == nil then
|
|
775
|
+
____self__138_44 = true
|
|
776
|
+
end
|
|
777
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
778
|
+
self:destroy()
|
|
779
|
+
end
|
|
780
|
+
end
|
|
725
781
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
726
782
|
self[133] = damageReceivedEventCount
|
|
727
783
|
if damageReceivedEventCount == self[134] then
|
|
@@ -809,8 +865,8 @@ __TS__SetDescriptor(
|
|
|
809
865
|
return
|
|
810
866
|
end
|
|
811
867
|
self[112] = damageInterval
|
|
812
|
-
local
|
|
813
|
-
local elapsed =
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
814
870
|
local timer = self[114]
|
|
815
871
|
if timer == nil then
|
|
816
872
|
timer = Timer:create()
|
|
@@ -889,8 +945,8 @@ __TS__SetDescriptor(
|
|
|
889
945
|
return
|
|
890
946
|
end
|
|
891
947
|
self[117] = healingInterval
|
|
892
|
-
local
|
|
893
|
-
local elapsed =
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
894
950
|
local timer = self[119]
|
|
895
951
|
if timer == nil then
|
|
896
952
|
timer = Timer:create()
|
|
@@ -971,24 +1027,50 @@ __TS__SetDescriptor(
|
|
|
971
1027
|
},
|
|
972
1028
|
true
|
|
973
1029
|
)
|
|
1030
|
+
__TS__SetDescriptor(
|
|
1031
|
+
Buff.prototype,
|
|
1032
|
+
"maxHealthIncrease",
|
|
1033
|
+
{
|
|
1034
|
+
get = function(self)
|
|
1035
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1036
|
+
end,
|
|
1037
|
+
set = function(self, maxHealthIncrease)
|
|
1038
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1039
|
+
end
|
|
1040
|
+
},
|
|
1041
|
+
true
|
|
1042
|
+
)
|
|
1043
|
+
__TS__SetDescriptor(
|
|
1044
|
+
Buff.prototype,
|
|
1045
|
+
"maxManaIncrease",
|
|
1046
|
+
{
|
|
1047
|
+
get = function(self)
|
|
1048
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1049
|
+
end,
|
|
1050
|
+
set = function(self, maxManaIncrease)
|
|
1051
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1052
|
+
end
|
|
1053
|
+
},
|
|
1054
|
+
true
|
|
1055
|
+
)
|
|
974
1056
|
__TS__SetDescriptor(
|
|
975
1057
|
Buff.prototype,
|
|
976
1058
|
"turnsIntoGhost",
|
|
977
1059
|
{
|
|
978
1060
|
get = function(self)
|
|
979
|
-
local
|
|
980
|
-
if
|
|
981
|
-
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
982
1064
|
end
|
|
983
|
-
return
|
|
1065
|
+
return ____self__139_49
|
|
984
1066
|
end,
|
|
985
1067
|
set = function(self, turnsIntoGhost)
|
|
986
|
-
if not turnsIntoGhost and self[
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
987
1069
|
self.object:decrementGhostCounter()
|
|
988
|
-
self[
|
|
989
|
-
elseif turnsIntoGhost and not self[
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
990
1072
|
self.object:incrementGhostCounter()
|
|
991
|
-
self[
|
|
1073
|
+
self[139] = true
|
|
992
1074
|
end
|
|
993
1075
|
end
|
|
994
1076
|
},
|
|
@@ -999,25 +1081,25 @@ __TS__SetDescriptor(
|
|
|
999
1081
|
"stuns",
|
|
1000
1082
|
{
|
|
1001
1083
|
get = function(self)
|
|
1002
|
-
local
|
|
1003
|
-
if
|
|
1004
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
1005
1087
|
end
|
|
1006
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
1007
1089
|
end,
|
|
1008
1090
|
set = function(self, stuns)
|
|
1009
|
-
if not stuns and self[
|
|
1010
|
-
if self[
|
|
1011
|
-
self.object:
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1093
|
+
self.object:decrementForceStunCounter()
|
|
1012
1094
|
end
|
|
1013
1095
|
self.object:decrementStunCounter()
|
|
1014
|
-
self[
|
|
1015
|
-
elseif stuns and not self[
|
|
1016
|
-
if self[
|
|
1017
|
-
self.object:
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1099
|
+
self.object:incrementForceStunCounter()
|
|
1018
1100
|
end
|
|
1019
1101
|
self.object:incrementStunCounter()
|
|
1020
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
1021
1103
|
end
|
|
1022
1104
|
end
|
|
1023
1105
|
},
|
|
@@ -1028,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
1028
1110
|
"ignoresStunImmunity",
|
|
1029
1111
|
{
|
|
1030
1112
|
get = function(self)
|
|
1031
|
-
local
|
|
1032
|
-
if
|
|
1033
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
1034
1116
|
end
|
|
1035
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
1036
1118
|
end,
|
|
1037
1119
|
set = function(self, ignoresStunImmunity)
|
|
1038
|
-
if not ignoresStunImmunity and self[
|
|
1039
|
-
if self[
|
|
1040
|
-
self.object:
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1122
|
+
self.object:decrementForceStunCounter()
|
|
1041
1123
|
end
|
|
1042
|
-
self[
|
|
1043
|
-
elseif ignoresStunImmunity and not self[
|
|
1044
|
-
if self[
|
|
1045
|
-
self.object:
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1127
|
+
self.object:incrementForceStunCounter()
|
|
1046
1128
|
end
|
|
1047
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
1048
1130
|
end
|
|
1049
1131
|
end
|
|
1050
1132
|
},
|
|
@@ -1055,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
1055
1137
|
"disablesAutoAttack",
|
|
1056
1138
|
{
|
|
1057
1139
|
get = function(self)
|
|
1058
|
-
local
|
|
1059
|
-
if
|
|
1060
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
1061
1143
|
end
|
|
1062
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
1063
1145
|
end,
|
|
1064
1146
|
set = function(self, disablesAutoAttack)
|
|
1065
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1066
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1067
|
-
self[
|
|
1068
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1069
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1070
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1071
1153
|
end
|
|
1072
1154
|
end
|
|
1073
1155
|
},
|
|
@@ -1078,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1078
1160
|
"providesInvulnerability",
|
|
1079
1161
|
{
|
|
1080
1162
|
get = function(self)
|
|
1081
|
-
local
|
|
1082
|
-
if
|
|
1083
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1084
1166
|
end
|
|
1085
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1086
1168
|
end,
|
|
1087
1169
|
set = function(self, providesInvulnerability)
|
|
1088
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1089
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1090
|
-
self[
|
|
1091
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1092
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1093
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1094
1176
|
end
|
|
1095
1177
|
end
|
|
1096
1178
|
},
|
|
@@ -1101,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1101
1183
|
"killsOnExpiration",
|
|
1102
1184
|
{
|
|
1103
1185
|
get = function(self)
|
|
1104
|
-
local
|
|
1105
|
-
if
|
|
1106
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1107
1189
|
end
|
|
1108
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1109
1191
|
end,
|
|
1110
1192
|
set = function(self, killsOnExpiration)
|
|
1111
|
-
if not killsOnExpiration and self[
|
|
1112
|
-
self[
|
|
1113
|
-
elseif killsOnExpiration and not self[
|
|
1114
|
-
self[
|
|
1193
|
+
if not killsOnExpiration and self[144] then
|
|
1194
|
+
self[144] = nil
|
|
1195
|
+
elseif killsOnExpiration and not self[144] then
|
|
1196
|
+
self[144] = true
|
|
1115
1197
|
end
|
|
1116
1198
|
end
|
|
1117
1199
|
},
|
|
@@ -1122,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1122
1204
|
"explodesOnExpiration",
|
|
1123
1205
|
{
|
|
1124
1206
|
get = function(self)
|
|
1125
|
-
local
|
|
1126
|
-
if
|
|
1127
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1128
1210
|
end
|
|
1129
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1130
1212
|
end,
|
|
1131
1213
|
set = function(self, killsOnExpiration)
|
|
1132
|
-
if not killsOnExpiration and self[
|
|
1133
|
-
self[
|
|
1134
|
-
elseif killsOnExpiration and not self[
|
|
1135
|
-
self[
|
|
1214
|
+
if not killsOnExpiration and self[145] then
|
|
1215
|
+
self[145] = nil
|
|
1216
|
+
elseif killsOnExpiration and not self[145] then
|
|
1217
|
+
self[145] = true
|
|
1136
1218
|
end
|
|
1137
1219
|
end
|
|
1138
1220
|
},
|
|
@@ -1241,12 +1323,39 @@ __TS__SetDescriptor(
|
|
|
1241
1323
|
},
|
|
1242
1324
|
true
|
|
1243
1325
|
)
|
|
1326
|
+
__TS__SetDescriptor(
|
|
1327
|
+
Buff.prototype,
|
|
1328
|
+
"manaRegenerationRateIncreaseFactor",
|
|
1329
|
+
{
|
|
1330
|
+
get = function(self)
|
|
1331
|
+
return self:getUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR)
|
|
1332
|
+
end,
|
|
1333
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
1334
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR, manaRegenerationRateIncreaseFactor)
|
|
1335
|
+
end
|
|
1336
|
+
},
|
|
1337
|
+
true
|
|
1338
|
+
)
|
|
1244
1339
|
__TS__SetDescriptor(
|
|
1245
1340
|
Buff.prototype,
|
|
1246
1341
|
"duration",
|
|
1247
|
-
{
|
|
1248
|
-
|
|
1249
|
-
|
|
1342
|
+
{
|
|
1343
|
+
get = function(self)
|
|
1344
|
+
return self[103]
|
|
1345
|
+
end,
|
|
1346
|
+
set = function(self, duration)
|
|
1347
|
+
if duration <= 0 then
|
|
1348
|
+
local timer = self._timer
|
|
1349
|
+
if timer ~= nil then
|
|
1350
|
+
timer:destroy()
|
|
1351
|
+
self._timer = nil
|
|
1352
|
+
end
|
|
1353
|
+
self[103] = 0
|
|
1354
|
+
else
|
|
1355
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1356
|
+
end
|
|
1357
|
+
end
|
|
1358
|
+
},
|
|
1250
1359
|
true
|
|
1251
1360
|
)
|
|
1252
1361
|
__TS__SetDescriptor(
|
|
@@ -1254,13 +1363,13 @@ __TS__SetDescriptor(
|
|
|
1254
1363
|
"remainingDuration",
|
|
1255
1364
|
{
|
|
1256
1365
|
get = function(self)
|
|
1257
|
-
local
|
|
1258
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1259
1368
|
end,
|
|
1260
1369
|
set = function(self, remainingDuration)
|
|
1261
|
-
local
|
|
1262
|
-
local
|
|
1263
|
-
local remainingDurationDelta =
|
|
1370
|
+
local ____remainingDuration_60 = remainingDuration
|
|
1371
|
+
local ____opt_58 = self._timer
|
|
1372
|
+
local remainingDurationDelta = ____remainingDuration_60 - (____opt_58 and ____opt_58.remaining or 0)
|
|
1264
1373
|
if remainingDurationDelta ~= 0 then
|
|
1265
1374
|
self[103] = self[103] + remainingDurationDelta
|
|
1266
1375
|
if remainingDuration <= 0 then
|
|
@@ -1275,7 +1384,7 @@ __TS__SetDescriptor(
|
|
|
1275
1384
|
remainingDuration,
|
|
1276
1385
|
self._spellStealPriority,
|
|
1277
1386
|
self._learnLevelMinimum,
|
|
1278
|
-
self[
|
|
1387
|
+
self[146]
|
|
1279
1388
|
) then
|
|
1280
1389
|
local timer = self._timer
|
|
1281
1390
|
if timer == nil then
|
|
@@ -1290,38 +1399,134 @@ __TS__SetDescriptor(
|
|
|
1290
1399
|
},
|
|
1291
1400
|
true
|
|
1292
1401
|
)
|
|
1402
|
+
__TS__SetDescriptor(
|
|
1403
|
+
Buff.prototype,
|
|
1404
|
+
"absorbedDamageFactor",
|
|
1405
|
+
{
|
|
1406
|
+
get = function(self)
|
|
1407
|
+
return self[135] or 1
|
|
1408
|
+
end,
|
|
1409
|
+
set = function(self, absorbedDamageFactor)
|
|
1410
|
+
if absorbedDamageFactor == 1 then
|
|
1411
|
+
self[135] = nil
|
|
1412
|
+
else
|
|
1413
|
+
self[135] = absorbedDamageFactor
|
|
1414
|
+
end
|
|
1415
|
+
end
|
|
1416
|
+
},
|
|
1417
|
+
true
|
|
1418
|
+
)
|
|
1419
|
+
__TS__SetDescriptor(
|
|
1420
|
+
Buff.prototype,
|
|
1421
|
+
"maximumDamageAbsorbed",
|
|
1422
|
+
{
|
|
1423
|
+
get = function(self)
|
|
1424
|
+
return self[136] or 0
|
|
1425
|
+
end,
|
|
1426
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1427
|
+
if maximumDamageAbsorbed == 0 then
|
|
1428
|
+
self[136] = nil
|
|
1429
|
+
else
|
|
1430
|
+
self[136] = maximumDamageAbsorbed
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
},
|
|
1434
|
+
true
|
|
1435
|
+
)
|
|
1436
|
+
__TS__SetDescriptor(
|
|
1437
|
+
Buff.prototype,
|
|
1438
|
+
"damageAbsorbed",
|
|
1439
|
+
{get = function(self)
|
|
1440
|
+
return self[137] or 0
|
|
1441
|
+
end},
|
|
1442
|
+
true
|
|
1443
|
+
)
|
|
1444
|
+
__TS__SetDescriptor(
|
|
1445
|
+
Buff.prototype,
|
|
1446
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1447
|
+
{
|
|
1448
|
+
get = function(self)
|
|
1449
|
+
local ____self__138_61 = self[138]
|
|
1450
|
+
if ____self__138_61 == nil then
|
|
1451
|
+
____self__138_61 = true
|
|
1452
|
+
end
|
|
1453
|
+
return ____self__138_61
|
|
1454
|
+
end,
|
|
1455
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1456
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1457
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1458
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1459
|
+
else
|
|
1460
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1461
|
+
end
|
|
1462
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1463
|
+
end
|
|
1464
|
+
},
|
|
1465
|
+
true
|
|
1466
|
+
)
|
|
1467
|
+
__TS__SetDescriptor(
|
|
1468
|
+
Buff.prototype,
|
|
1469
|
+
"abilityCooldownFactor",
|
|
1470
|
+
{
|
|
1471
|
+
get = function(self)
|
|
1472
|
+
return self[147] or 1
|
|
1473
|
+
end,
|
|
1474
|
+
set = function(self, abilityCooldownFactor)
|
|
1475
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1476
|
+
if previousAbilityCooldownModifier then
|
|
1477
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1478
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1479
|
+
end
|
|
1480
|
+
end
|
|
1481
|
+
local function modifier(ability, level, cooldown)
|
|
1482
|
+
return cooldown * abilityCooldownFactor
|
|
1483
|
+
end
|
|
1484
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1485
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1486
|
+
end
|
|
1487
|
+
self[148] = modifier
|
|
1488
|
+
self[147] = abilityCooldownFactor
|
|
1489
|
+
end
|
|
1490
|
+
},
|
|
1491
|
+
true
|
|
1492
|
+
)
|
|
1293
1493
|
Buff.createdEvent = buffCreatedEvent
|
|
1294
1494
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1295
1495
|
(function(self)
|
|
1296
|
-
local function destroyBuffIfNeeded(buff)
|
|
1297
|
-
|
|
1298
|
-
|
|
1496
|
+
local function destroyBuffIfNeeded(buff, isDispel, source)
|
|
1497
|
+
local currentHandle = getUnitAbility(buff[101].handle, buff.typeId)
|
|
1498
|
+
if currentHandle ~= buff.handle and buff[100] == 1 then
|
|
1499
|
+
if isDispel and currentHandle == nil and buff.unit.isAlive and buff.resistanceType == 1 and (buff._timer == nil or buff.remainingDuration > 0) then
|
|
1500
|
+
buff:dispel(source)
|
|
1501
|
+
else
|
|
1502
|
+
buff:destroy()
|
|
1503
|
+
end
|
|
1299
1504
|
end
|
|
1300
1505
|
end
|
|
1301
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1302
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1303
1508
|
if buffByTypeId ~= nil then
|
|
1304
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1305
1510
|
if buff ~= nil then
|
|
1306
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1307
1512
|
end
|
|
1308
1513
|
end
|
|
1309
1514
|
end
|
|
1310
|
-
____exports.checkBuffs = function(unit)
|
|
1311
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1312
1517
|
end
|
|
1313
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1314
1519
|
0,
|
|
1315
1520
|
function(caster)
|
|
1316
|
-
____exports.checkBuffs(caster)
|
|
1317
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1318
1523
|
end
|
|
1319
1524
|
)
|
|
1320
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1321
1526
|
0,
|
|
1322
1527
|
function(caster, ability, target)
|
|
1323
|
-
____exports.checkBuffs(target)
|
|
1324
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1325
1530
|
end
|
|
1326
1531
|
)
|
|
1327
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1332,21 +1537,47 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1332
1537
|
y,
|
|
1333
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1334
1539
|
)
|
|
1335
|
-
forEach(units, ____exports.checkBuffs)
|
|
1336
|
-
Timer:run(
|
|
1540
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1541
|
+
Timer:run(
|
|
1542
|
+
forEach,
|
|
1543
|
+
units,
|
|
1544
|
+
____exports.checkBuffs,
|
|
1545
|
+
true,
|
|
1546
|
+
caster
|
|
1547
|
+
)
|
|
1548
|
+
end
|
|
1549
|
+
)
|
|
1550
|
+
Unit.abilityNoTargetChannelingStartEvent:addListener(
|
|
1551
|
+
0,
|
|
1552
|
+
function(caster, ability)
|
|
1553
|
+
local radius = ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1554
|
+
if radius > 0 then
|
|
1555
|
+
local units = Unit:getInCollisionRange(caster.x, caster.y, radius)
|
|
1556
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1557
|
+
Timer:run(
|
|
1558
|
+
forEach,
|
|
1559
|
+
units,
|
|
1560
|
+
____exports.checkBuffs,
|
|
1561
|
+
true,
|
|
1562
|
+
caster
|
|
1563
|
+
)
|
|
1564
|
+
end
|
|
1337
1565
|
end
|
|
1338
1566
|
)
|
|
1339
1567
|
Unit.onDamage:addListener(
|
|
1340
1568
|
0,
|
|
1341
1569
|
function(source, target)
|
|
1342
1570
|
if source ~= nil then
|
|
1343
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1344
1572
|
end
|
|
1345
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1346
1574
|
end
|
|
1347
1575
|
)
|
|
1348
1576
|
buffCreatedEvent:addListener(function(buff)
|
|
1349
1577
|
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1350
1578
|
end)
|
|
1579
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1580
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1581
|
+
end)
|
|
1351
1582
|
end)(Buff)
|
|
1352
1583
|
return ____exports
|