warscript 0.0.1-dev.91a4dce → 0.0.1-dev.9381e62
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/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +112 -37
- 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 +4 -2
- package/core/types/player.lua +42 -25
- 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 +2 -1
- package/core/types/tileCell.lua +5 -0
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +705 -7
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability.d.ts +13 -6
- package/engine/behaviour/ability.lua +56 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
- package/engine/behaviour/unit/stun-immunity.lua +6 -5
- package/engine/behaviour/unit.d.ts +8 -3
- package/engine/behaviour/unit.lua +102 -24
- package/engine/buff.d.ts +73 -24
- package/engine/buff.lua +418 -166
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +56 -36
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +27 -4
- package/engine/internal/item.d.ts +20 -5
- package/engine/internal/item.lua +146 -57
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -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/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -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.lua +15 -3
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- 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/bonus.d.ts +14 -0
- package/engine/internal/unit/bonus.lua +102 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- 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} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/order.d.ts +3 -3
- package/engine/internal/unit/order.lua +10 -10
- 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.d.ts +2 -1
- package/engine/internal/unit+ability.lua +63 -2
- 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+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +29 -19
- package/engine/internal/unit.d.ts +14 -28
- package/engine/internal/unit.lua +158 -247
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -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 +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -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-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.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/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.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/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- 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/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -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/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -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/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -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/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -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/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -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-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -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 +25 -6
- package/engine/object-data/entry/ability-type.lua +244 -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 +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +51 -2
- package/engine/object-data/entry/unit-type.lua +415 -37
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +10 -2
- package/engine/object-field.lua +268 -123
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +45 -0
- package/engine/standard/entries/buff-type.lua +43 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- 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 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +10 -1
- package/engine/unit.lua +10 -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/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/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +27 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.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
|
|
@@ -41,6 +42,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
41
42
|
local ____unit = require("engine.behaviour.unit")
|
|
42
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
43
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
44
46
|
local forEach = ____arrays.forEach
|
|
45
47
|
local ____event = require("event")
|
|
46
48
|
local Event = ____event.Event
|
|
@@ -50,6 +52,12 @@ local ____item = require("engine.internal.item")
|
|
|
50
52
|
local Item = ____item.Item
|
|
51
53
|
local ____destructable = require("core.types.destructable")
|
|
52
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
|
|
53
61
|
local getUnitAbility = BlzGetUnitAbility
|
|
54
62
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
55
63
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -95,9 +103,11 @@ local buffParametersKeys = {
|
|
|
95
103
|
damageIncrease = true,
|
|
96
104
|
damageIncreaseFactor = true,
|
|
97
105
|
armorIncrease = true,
|
|
98
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
99
108
|
attackSpeedIncreaseFactor = true,
|
|
100
109
|
movementSpeedIncreaseFactor = true,
|
|
110
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
101
111
|
evasionProbability = true,
|
|
102
112
|
missProbability = true,
|
|
103
113
|
damageFactor = true,
|
|
@@ -117,11 +127,15 @@ local buffParametersKeys = {
|
|
|
117
127
|
maximumAutoAttackCount = true,
|
|
118
128
|
maximumDamageDealtEventCount = true,
|
|
119
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
120
133
|
uniqueGroup = true,
|
|
121
134
|
damageOnExpiration = true,
|
|
122
135
|
healingOnExpiration = true,
|
|
123
136
|
killsOnExpiration = true,
|
|
124
|
-
explodesOnExpiration = true
|
|
137
|
+
explodesOnExpiration = true,
|
|
138
|
+
abilityCooldownFactor = true
|
|
125
139
|
}
|
|
126
140
|
local function resolveEnumValue(ability, level, value)
|
|
127
141
|
if value == nil or type(value) == "number" then
|
|
@@ -172,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
172
186
|
end
|
|
173
187
|
end
|
|
174
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
175
190
|
"turnsIntoGhost",
|
|
176
191
|
"stuns",
|
|
177
192
|
"ignoresStunImmunity",
|
|
@@ -184,8 +199,11 @@ local buffNumberParameters = {
|
|
|
184
199
|
"durationIncreaseOnAutoAttack",
|
|
185
200
|
"attackSpeedIncreaseFactor",
|
|
186
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
187
203
|
"evasionProbability",
|
|
188
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
189
207
|
"damageFactor",
|
|
190
208
|
"receivedDamageFactor",
|
|
191
209
|
"maximumAutoAttackCount",
|
|
@@ -198,7 +216,10 @@ local buffNumberParameters = {
|
|
|
198
216
|
"healingPerInterval",
|
|
199
217
|
"healingOverDuration",
|
|
200
218
|
"damageOnExpiration",
|
|
201
|
-
"healingOnExpiration"
|
|
219
|
+
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
222
|
+
"abilityCooldownFactor"
|
|
202
223
|
}
|
|
203
224
|
local unsuccessfulApplicationMarker = {}
|
|
204
225
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -233,6 +254,10 @@ local function destroyBuff(buff)
|
|
|
233
254
|
buff:destroy()
|
|
234
255
|
end
|
|
235
256
|
local function expireBuff(buff)
|
|
257
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
258
|
+
return
|
|
259
|
+
end
|
|
260
|
+
buff[100] = 2
|
|
236
261
|
local remainingDamageOverDuration = buff[113] or 0
|
|
237
262
|
local remainingHealingOverDuration = buff[113] or 0
|
|
238
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
@@ -317,33 +342,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
317
342
|
local polarity
|
|
318
343
|
local resistanceType
|
|
319
344
|
local ability
|
|
345
|
+
local abilityBehavior
|
|
320
346
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
321
347
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
322
348
|
polarity = resistanceTypeOrPolarity
|
|
323
349
|
resistanceType = abilityOrParametersOrResistanceType
|
|
324
|
-
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
|
|
325
354
|
ability = parametersOrAbility
|
|
326
|
-
|
|
327
|
-
ability = nil
|
|
355
|
+
elseif parametersOrAbility ~= nil then
|
|
328
356
|
parameters = parametersOrAbility
|
|
329
357
|
end
|
|
330
358
|
else
|
|
331
359
|
typeId = typeIdOrTypeIds
|
|
332
360
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
333
361
|
resistanceType = resistanceTypeOrPolarity
|
|
334
|
-
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
|
|
335
367
|
ability = abilityOrParametersOrResistanceType
|
|
336
368
|
parameters = parametersOrAbility
|
|
337
|
-
|
|
338
|
-
ability = nil
|
|
369
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
339
370
|
parameters = abilityOrParametersOrResistanceType
|
|
371
|
+
else
|
|
372
|
+
parameters = parametersOrAbility
|
|
340
373
|
end
|
|
341
374
|
end
|
|
375
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
342
376
|
self.typeId = typeId
|
|
343
|
-
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
344
|
-
parameters = ability
|
|
345
|
-
ability = nil
|
|
346
|
-
end
|
|
347
377
|
local defaultParameters = self.constructor.defaultParameters
|
|
348
378
|
local level = parameters and parameters.level or defaultParameters.level
|
|
349
379
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -371,14 +401,15 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
371
401
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
372
402
|
if missProbability ~= nil then
|
|
373
403
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
374
|
-
self[
|
|
404
|
+
self[146] = missProbability
|
|
375
405
|
end
|
|
376
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
377
407
|
if buffByTypeId == nil then
|
|
378
408
|
buffByTypeId = {}
|
|
379
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
380
410
|
end
|
|
381
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
382
413
|
if ____opt_15 ~= nil then
|
|
383
414
|
____opt_15:destroy()
|
|
384
415
|
end
|
|
@@ -454,24 +485,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
454
485
|
abilityTypeIds = {}
|
|
455
486
|
self._abilityTypeIds = abilityTypeIds
|
|
456
487
|
end
|
|
457
|
-
for
|
|
488
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
458
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
459
491
|
if addedAbility ~= nil then
|
|
460
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
461
493
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
if not resolveBooleanValue(ability, level, abilityParameterValue) then
|
|
465
|
-
_unit:hideAbility(abilityTypeId, true)
|
|
466
|
-
end
|
|
467
|
-
elseif abilityParameterKey ~= "level" then
|
|
468
|
-
abilityParameterKey:setValue(
|
|
469
|
-
addedAbility,
|
|
470
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
471
|
-
)
|
|
472
|
-
end
|
|
494
|
+
if abilityParameters.isButtonVisible == false then
|
|
495
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
473
496
|
end
|
|
474
|
-
|
|
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
|
|
475
504
|
end
|
|
476
505
|
end
|
|
477
506
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -483,18 +512,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
483
512
|
self._behaviors = behaviors
|
|
484
513
|
end
|
|
485
514
|
end
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
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
|
|
493
524
|
end
|
|
494
525
|
end
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
526
|
+
if (next(additionalParameters)) ~= nil then
|
|
527
|
+
self.parameters = additionalParameters
|
|
528
|
+
end
|
|
498
529
|
end
|
|
499
530
|
end
|
|
500
531
|
if duration ~= nil and duration > 0 then
|
|
@@ -506,18 +537,48 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
506
537
|
self[100] = 1
|
|
507
538
|
Event.invoke(buffCreatedEvent, self)
|
|
508
539
|
end
|
|
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
|
|
547
|
+
end
|
|
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
|
|
554
|
+
end
|
|
555
|
+
end
|
|
509
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)
|
|
510
575
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
511
|
-
Effect:flash(
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
512
577
|
else
|
|
513
578
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
514
579
|
local ____Effect_40 = Effect
|
|
515
580
|
local ____Effect_flash_41 = Effect.flash
|
|
516
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
517
|
-
self[105],
|
|
518
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
519
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
520
|
-
)
|
|
581
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
521
582
|
local ____isWidgetProvided_38
|
|
522
583
|
if isWidgetProvided then
|
|
523
584
|
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
@@ -531,26 +592,22 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
531
592
|
)
|
|
532
593
|
end
|
|
533
594
|
end
|
|
534
|
-
function Buff.prototype.
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
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
|
|
548
610
|
end
|
|
549
|
-
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
550
|
-
____Effect_flash_45(
|
|
551
|
-
____Effect_44,
|
|
552
|
-
__TS__SparseArraySpread(____array_43)
|
|
553
|
-
)
|
|
554
611
|
end
|
|
555
612
|
function Buff.prototype.onCreate(self)
|
|
556
613
|
end
|
|
@@ -580,23 +637,29 @@ function Buff.prototype.onDestroy(self)
|
|
|
580
637
|
behavior:destroy()
|
|
581
638
|
end
|
|
582
639
|
end
|
|
583
|
-
|
|
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
|
|
584
647
|
unit:decrementInvulnerabilityCounter()
|
|
585
648
|
end
|
|
586
|
-
if self[
|
|
649
|
+
if self[142] then
|
|
587
650
|
unit:decrementDisableAutoAttackCounter()
|
|
588
651
|
end
|
|
589
|
-
if self[
|
|
590
|
-
if self[
|
|
591
|
-
unit:
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
654
|
+
unit:decrementForceStunCounter()
|
|
592
655
|
end
|
|
593
656
|
unit:decrementStunCounter()
|
|
594
657
|
end
|
|
595
|
-
if self[
|
|
658
|
+
if self[139] then
|
|
596
659
|
unit:decrementGhostCounter()
|
|
597
660
|
end
|
|
598
661
|
if self._abilityTypeIds ~= nil then
|
|
599
|
-
for abilityTypeId in
|
|
662
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
600
663
|
unit:removeAbility(abilityTypeId)
|
|
601
664
|
end
|
|
602
665
|
end
|
|
@@ -629,13 +692,15 @@ function Buff.apply(self, ...)
|
|
|
629
692
|
end
|
|
630
693
|
end
|
|
631
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
632
|
-
local
|
|
633
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
634
697
|
if __TS__InstanceOf(buff, self) then
|
|
635
698
|
return buff
|
|
636
699
|
end
|
|
637
700
|
return nil
|
|
638
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
639
704
|
function Buff.prototype.onExpiration(self)
|
|
640
705
|
local unit = self.unit
|
|
641
706
|
if self[120] ~= nil then
|
|
@@ -644,9 +709,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
644
709
|
if self[121] ~= nil then
|
|
645
710
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
646
711
|
end
|
|
647
|
-
if self[
|
|
712
|
+
if self[145] then
|
|
648
713
|
unit:explode()
|
|
649
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
650
715
|
unit:kill()
|
|
651
716
|
end
|
|
652
717
|
end
|
|
@@ -701,6 +766,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
701
766
|
end
|
|
702
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
703
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
|
|
704
781
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
705
782
|
self[133] = damageReceivedEventCount
|
|
706
783
|
if damageReceivedEventCount == self[134] then
|
|
@@ -788,8 +865,8 @@ __TS__SetDescriptor(
|
|
|
788
865
|
return
|
|
789
866
|
end
|
|
790
867
|
self[112] = damageInterval
|
|
791
|
-
local
|
|
792
|
-
local elapsed =
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
793
870
|
local timer = self[114]
|
|
794
871
|
if timer == nil then
|
|
795
872
|
timer = Timer:create()
|
|
@@ -868,8 +945,8 @@ __TS__SetDescriptor(
|
|
|
868
945
|
return
|
|
869
946
|
end
|
|
870
947
|
self[117] = healingInterval
|
|
871
|
-
local
|
|
872
|
-
local elapsed =
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
873
950
|
local timer = self[119]
|
|
874
951
|
if timer == nil then
|
|
875
952
|
timer = Timer:create()
|
|
@@ -950,24 +1027,50 @@ __TS__SetDescriptor(
|
|
|
950
1027
|
},
|
|
951
1028
|
true
|
|
952
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
|
+
)
|
|
953
1056
|
__TS__SetDescriptor(
|
|
954
1057
|
Buff.prototype,
|
|
955
1058
|
"turnsIntoGhost",
|
|
956
1059
|
{
|
|
957
1060
|
get = function(self)
|
|
958
|
-
local
|
|
959
|
-
if
|
|
960
|
-
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
961
1064
|
end
|
|
962
|
-
return
|
|
1065
|
+
return ____self__139_49
|
|
963
1066
|
end,
|
|
964
1067
|
set = function(self, turnsIntoGhost)
|
|
965
|
-
if not turnsIntoGhost and self[
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
966
1069
|
self.object:decrementGhostCounter()
|
|
967
|
-
self[
|
|
968
|
-
elseif turnsIntoGhost and not self[
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
969
1072
|
self.object:incrementGhostCounter()
|
|
970
|
-
self[
|
|
1073
|
+
self[139] = true
|
|
971
1074
|
end
|
|
972
1075
|
end
|
|
973
1076
|
},
|
|
@@ -978,25 +1081,25 @@ __TS__SetDescriptor(
|
|
|
978
1081
|
"stuns",
|
|
979
1082
|
{
|
|
980
1083
|
get = function(self)
|
|
981
|
-
local
|
|
982
|
-
if
|
|
983
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
984
1087
|
end
|
|
985
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
986
1089
|
end,
|
|
987
1090
|
set = function(self, stuns)
|
|
988
|
-
if not stuns and self[
|
|
989
|
-
if self[
|
|
990
|
-
self.object:
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1093
|
+
self.object:decrementForceStunCounter()
|
|
991
1094
|
end
|
|
992
1095
|
self.object:decrementStunCounter()
|
|
993
|
-
self[
|
|
994
|
-
elseif stuns and not self[
|
|
995
|
-
if self[
|
|
996
|
-
self.object:
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1099
|
+
self.object:incrementForceStunCounter()
|
|
997
1100
|
end
|
|
998
1101
|
self.object:incrementStunCounter()
|
|
999
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
1000
1103
|
end
|
|
1001
1104
|
end
|
|
1002
1105
|
},
|
|
@@ -1007,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
1007
1110
|
"ignoresStunImmunity",
|
|
1008
1111
|
{
|
|
1009
1112
|
get = function(self)
|
|
1010
|
-
local
|
|
1011
|
-
if
|
|
1012
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
1013
1116
|
end
|
|
1014
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
1015
1118
|
end,
|
|
1016
1119
|
set = function(self, ignoresStunImmunity)
|
|
1017
|
-
if not ignoresStunImmunity and self[
|
|
1018
|
-
if self[
|
|
1019
|
-
self.object:
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1122
|
+
self.object:decrementForceStunCounter()
|
|
1020
1123
|
end
|
|
1021
|
-
self[
|
|
1022
|
-
elseif ignoresStunImmunity and not self[
|
|
1023
|
-
if self[
|
|
1024
|
-
self.object:
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1127
|
+
self.object:incrementForceStunCounter()
|
|
1025
1128
|
end
|
|
1026
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
1027
1130
|
end
|
|
1028
1131
|
end
|
|
1029
1132
|
},
|
|
@@ -1034,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
1034
1137
|
"disablesAutoAttack",
|
|
1035
1138
|
{
|
|
1036
1139
|
get = function(self)
|
|
1037
|
-
local
|
|
1038
|
-
if
|
|
1039
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
1040
1143
|
end
|
|
1041
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
1042
1145
|
end,
|
|
1043
1146
|
set = function(self, disablesAutoAttack)
|
|
1044
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1045
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1046
|
-
self[
|
|
1047
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1048
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1049
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1050
1153
|
end
|
|
1051
1154
|
end
|
|
1052
1155
|
},
|
|
@@ -1057,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1057
1160
|
"providesInvulnerability",
|
|
1058
1161
|
{
|
|
1059
1162
|
get = function(self)
|
|
1060
|
-
local
|
|
1061
|
-
if
|
|
1062
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1063
1166
|
end
|
|
1064
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1065
1168
|
end,
|
|
1066
1169
|
set = function(self, providesInvulnerability)
|
|
1067
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1068
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1069
|
-
self[
|
|
1070
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1071
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1072
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1073
1176
|
end
|
|
1074
1177
|
end
|
|
1075
1178
|
},
|
|
@@ -1080,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1080
1183
|
"killsOnExpiration",
|
|
1081
1184
|
{
|
|
1082
1185
|
get = function(self)
|
|
1083
|
-
local
|
|
1084
|
-
if
|
|
1085
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1086
1189
|
end
|
|
1087
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1088
1191
|
end,
|
|
1089
1192
|
set = function(self, killsOnExpiration)
|
|
1090
|
-
if not killsOnExpiration and self[
|
|
1091
|
-
self[
|
|
1092
|
-
elseif killsOnExpiration and not self[
|
|
1093
|
-
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
|
|
1094
1197
|
end
|
|
1095
1198
|
end
|
|
1096
1199
|
},
|
|
@@ -1101,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1101
1204
|
"explodesOnExpiration",
|
|
1102
1205
|
{
|
|
1103
1206
|
get = function(self)
|
|
1104
|
-
local
|
|
1105
|
-
if
|
|
1106
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1107
1210
|
end
|
|
1108
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1109
1212
|
end,
|
|
1110
1213
|
set = function(self, killsOnExpiration)
|
|
1111
|
-
if not killsOnExpiration and self[
|
|
1112
|
-
self[
|
|
1113
|
-
elseif killsOnExpiration and not self[
|
|
1114
|
-
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
|
|
1115
1218
|
end
|
|
1116
1219
|
end
|
|
1117
1220
|
},
|
|
@@ -1220,12 +1323,39 @@ __TS__SetDescriptor(
|
|
|
1220
1323
|
},
|
|
1221
1324
|
true
|
|
1222
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
|
+
)
|
|
1223
1339
|
__TS__SetDescriptor(
|
|
1224
1340
|
Buff.prototype,
|
|
1225
1341
|
"duration",
|
|
1226
|
-
{
|
|
1227
|
-
|
|
1228
|
-
|
|
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
|
+
},
|
|
1229
1359
|
true
|
|
1230
1360
|
)
|
|
1231
1361
|
__TS__SetDescriptor(
|
|
@@ -1233,13 +1363,13 @@ __TS__SetDescriptor(
|
|
|
1233
1363
|
"remainingDuration",
|
|
1234
1364
|
{
|
|
1235
1365
|
get = function(self)
|
|
1236
|
-
local
|
|
1237
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1238
1368
|
end,
|
|
1239
1369
|
set = function(self, remainingDuration)
|
|
1240
|
-
local
|
|
1241
|
-
local
|
|
1242
|
-
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)
|
|
1243
1373
|
if remainingDurationDelta ~= 0 then
|
|
1244
1374
|
self[103] = self[103] + remainingDurationDelta
|
|
1245
1375
|
if remainingDuration <= 0 then
|
|
@@ -1254,7 +1384,7 @@ __TS__SetDescriptor(
|
|
|
1254
1384
|
remainingDuration,
|
|
1255
1385
|
self._spellStealPriority,
|
|
1256
1386
|
self._learnLevelMinimum,
|
|
1257
|
-
self[
|
|
1387
|
+
self[146]
|
|
1258
1388
|
) then
|
|
1259
1389
|
local timer = self._timer
|
|
1260
1390
|
if timer == nil then
|
|
@@ -1269,38 +1399,134 @@ __TS__SetDescriptor(
|
|
|
1269
1399
|
},
|
|
1270
1400
|
true
|
|
1271
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
|
+
)
|
|
1272
1493
|
Buff.createdEvent = buffCreatedEvent
|
|
1273
1494
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1274
1495
|
(function(self)
|
|
1275
|
-
local function destroyBuffIfNeeded(buff)
|
|
1276
|
-
|
|
1277
|
-
|
|
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
|
|
1278
1504
|
end
|
|
1279
1505
|
end
|
|
1280
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1281
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1282
1508
|
if buffByTypeId ~= nil then
|
|
1283
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1284
1510
|
if buff ~= nil then
|
|
1285
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1286
1512
|
end
|
|
1287
1513
|
end
|
|
1288
1514
|
end
|
|
1289
|
-
____exports.checkBuffs = function(unit)
|
|
1290
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1291
1517
|
end
|
|
1292
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1293
1519
|
0,
|
|
1294
1520
|
function(caster)
|
|
1295
|
-
____exports.checkBuffs(caster)
|
|
1296
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1297
1523
|
end
|
|
1298
1524
|
)
|
|
1299
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1300
1526
|
0,
|
|
1301
1527
|
function(caster, ability, target)
|
|
1302
|
-
____exports.checkBuffs(target)
|
|
1303
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1304
1530
|
end
|
|
1305
1531
|
)
|
|
1306
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1311,21 +1537,47 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1311
1537
|
y,
|
|
1312
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1313
1539
|
)
|
|
1314
|
-
forEach(units, ____exports.checkBuffs)
|
|
1315
|
-
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
|
|
1316
1565
|
end
|
|
1317
1566
|
)
|
|
1318
1567
|
Unit.onDamage:addListener(
|
|
1319
1568
|
0,
|
|
1320
1569
|
function(source, target)
|
|
1321
1570
|
if source ~= nil then
|
|
1322
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1323
1572
|
end
|
|
1324
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1325
1574
|
end
|
|
1326
1575
|
)
|
|
1327
1576
|
buffCreatedEvent:addListener(function(buff)
|
|
1328
1577
|
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1329
1578
|
end)
|
|
1579
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1580
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1581
|
+
end)
|
|
1330
1582
|
end)(Buff)
|
|
1331
1583
|
return ____exports
|