warscript 0.0.1-dev.2ce63f3 → 0.0.1-dev.2d7cb44
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 +16 -2
- package/core/types/frame.lua +128 -67
- 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 +2 -1
- package/core/types/player.lua +18 -13
- 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 +7 -2
- package/core/types/tileCell.lua +11 -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 +4 -2
- package/engine/behavior.lua +69 -11
- 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 +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +14 -3
- package/engine/buff.d.ts +66 -26
- package/engine/buff.lua +362 -166
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +7 -0
- package/engine/internal/ability.lua +65 -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.lua +3 -3
- 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.lua +3 -3
- 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 +25 -18
- package/engine/internal/unit.d.ts +4 -19
- package/engine/internal/unit.lua +129 -221
- package/engine/local-client.d.ts +27 -1
- package/engine/local-client.lua +298 -58
- 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/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- 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/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -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 +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +177 -119
- 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/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +8 -1
- package/engine/unit.lua +8 -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/arrays.d.ts +7 -1
- package/utility/arrays.lua +17 -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
|
@@ -42,6 +42,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
42
42
|
local ____unit = require("engine.behaviour.unit")
|
|
43
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
44
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
45
46
|
local forEach = ____arrays.forEach
|
|
46
47
|
local ____event = require("event")
|
|
47
48
|
local Event = ____event.Event
|
|
@@ -53,6 +54,10 @@ local ____destructable = require("core.types.destructable")
|
|
|
53
54
|
local Destructable = ____destructable.Destructable
|
|
54
55
|
local ____ability = require("engine.standard.fields.ability")
|
|
55
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,6 +127,9 @@ 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,
|
|
@@ -176,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
176
186
|
end
|
|
177
187
|
end
|
|
178
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
179
190
|
"turnsIntoGhost",
|
|
180
191
|
"stuns",
|
|
181
192
|
"ignoresStunImmunity",
|
|
@@ -188,8 +199,11 @@ local buffNumberParameters = {
|
|
|
188
199
|
"durationIncreaseOnAutoAttack",
|
|
189
200
|
"attackSpeedIncreaseFactor",
|
|
190
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
191
203
|
"evasionProbability",
|
|
192
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
193
207
|
"damageFactor",
|
|
194
208
|
"receivedDamageFactor",
|
|
195
209
|
"maximumAutoAttackCount",
|
|
@@ -203,6 +217,8 @@ local buffNumberParameters = {
|
|
|
203
217
|
"healingOverDuration",
|
|
204
218
|
"damageOnExpiration",
|
|
205
219
|
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
206
222
|
"abilityCooldownFactor"
|
|
207
223
|
}
|
|
208
224
|
local unsuccessfulApplicationMarker = {}
|
|
@@ -238,6 +254,10 @@ local function destroyBuff(buff)
|
|
|
238
254
|
buff:destroy()
|
|
239
255
|
end
|
|
240
256
|
local function expireBuff(buff)
|
|
257
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
258
|
+
return
|
|
259
|
+
end
|
|
260
|
+
buff[100] = 2
|
|
241
261
|
local remainingDamageOverDuration = buff[113] or 0
|
|
242
262
|
local remainingHealingOverDuration = buff[113] or 0
|
|
243
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
@@ -322,33 +342,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
322
342
|
local polarity
|
|
323
343
|
local resistanceType
|
|
324
344
|
local ability
|
|
345
|
+
local abilityBehavior
|
|
325
346
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
326
347
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
327
348
|
polarity = resistanceTypeOrPolarity
|
|
328
349
|
resistanceType = abilityOrParametersOrResistanceType
|
|
329
|
-
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
|
|
330
354
|
ability = parametersOrAbility
|
|
331
|
-
|
|
332
|
-
ability = nil
|
|
355
|
+
elseif parametersOrAbility ~= nil then
|
|
333
356
|
parameters = parametersOrAbility
|
|
334
357
|
end
|
|
335
358
|
else
|
|
336
359
|
typeId = typeIdOrTypeIds
|
|
337
360
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
338
361
|
resistanceType = resistanceTypeOrPolarity
|
|
339
|
-
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
|
|
340
367
|
ability = abilityOrParametersOrResistanceType
|
|
341
368
|
parameters = parametersOrAbility
|
|
342
|
-
|
|
343
|
-
ability = nil
|
|
369
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
344
370
|
parameters = abilityOrParametersOrResistanceType
|
|
371
|
+
else
|
|
372
|
+
parameters = parametersOrAbility
|
|
345
373
|
end
|
|
346
374
|
end
|
|
375
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
347
376
|
self.typeId = typeId
|
|
348
|
-
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
349
|
-
parameters = ability
|
|
350
|
-
ability = nil
|
|
351
|
-
end
|
|
352
377
|
local defaultParameters = self.constructor.defaultParameters
|
|
353
378
|
local level = parameters and parameters.level or defaultParameters.level
|
|
354
379
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -376,14 +401,15 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
376
401
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
377
402
|
if missProbability ~= nil then
|
|
378
403
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
379
|
-
self[
|
|
404
|
+
self[146] = missProbability
|
|
380
405
|
end
|
|
381
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
382
407
|
if buffByTypeId == nil then
|
|
383
408
|
buffByTypeId = {}
|
|
384
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
385
410
|
end
|
|
386
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
387
413
|
if ____opt_15 ~= nil then
|
|
388
414
|
____opt_15:destroy()
|
|
389
415
|
end
|
|
@@ -459,24 +485,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
459
485
|
abilityTypeIds = {}
|
|
460
486
|
self._abilityTypeIds = abilityTypeIds
|
|
461
487
|
end
|
|
462
|
-
for
|
|
488
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
463
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
464
491
|
if addedAbility ~= nil then
|
|
465
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
466
493
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
476
|
-
)
|
|
477
|
-
end
|
|
494
|
+
if abilityParameters.isButtonVisible == false then
|
|
495
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
496
|
+
end
|
|
497
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
498
|
+
field[1]:setValue(
|
|
499
|
+
addedAbility,
|
|
500
|
+
resolveNumberValue(ability, level, field[2])
|
|
501
|
+
)
|
|
478
502
|
end
|
|
479
|
-
abilityTypeIds[
|
|
503
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
480
504
|
end
|
|
481
505
|
end
|
|
482
506
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -488,18 +512,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
488
512
|
self._behaviors = behaviors
|
|
489
513
|
end
|
|
490
514
|
end
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
if
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
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
|
|
498
524
|
end
|
|
499
525
|
end
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
526
|
+
if (next(additionalParameters)) ~= nil then
|
|
527
|
+
self.parameters = additionalParameters
|
|
528
|
+
end
|
|
503
529
|
end
|
|
504
530
|
end
|
|
505
531
|
if duration ~= nil and duration > 0 then
|
|
@@ -513,7 +539,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
513
539
|
end
|
|
514
540
|
function Buff.prototype.onAbilityGained(self, ability)
|
|
515
541
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
516
|
-
local abilityCooldownModifier = self[
|
|
542
|
+
local abilityCooldownModifier = self[148]
|
|
517
543
|
if abilityCooldownModifier then
|
|
518
544
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
519
545
|
end
|
|
@@ -521,24 +547,38 @@ function Buff.prototype.onAbilityGained(self, ability)
|
|
|
521
547
|
end
|
|
522
548
|
function Buff.prototype.onAbilityLost(self, ability)
|
|
523
549
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
524
|
-
local abilityCooldownModifier = self[
|
|
550
|
+
local abilityCooldownModifier = self[148]
|
|
525
551
|
if abilityCooldownModifier then
|
|
526
552
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
527
553
|
end
|
|
528
554
|
end
|
|
529
555
|
end
|
|
530
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)
|
|
531
575
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
532
|
-
Effect:flash(
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
533
577
|
else
|
|
534
578
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
535
579
|
local ____Effect_40 = Effect
|
|
536
580
|
local ____Effect_flash_41 = Effect.flash
|
|
537
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
538
|
-
self[105],
|
|
539
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
540
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
541
|
-
)
|
|
581
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
542
582
|
local ____isWidgetProvided_38
|
|
543
583
|
if isWidgetProvided then
|
|
544
584
|
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
@@ -552,26 +592,22 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
552
592
|
)
|
|
553
593
|
end
|
|
554
594
|
end
|
|
555
|
-
function Buff.prototype.
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
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
|
|
569
610
|
end
|
|
570
|
-
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
571
|
-
____Effect_flash_45(
|
|
572
|
-
____Effect_44,
|
|
573
|
-
__TS__SparseArraySpread(____array_43)
|
|
574
|
-
)
|
|
575
611
|
end
|
|
576
612
|
function Buff.prototype.onCreate(self)
|
|
577
613
|
end
|
|
@@ -601,29 +637,29 @@ function Buff.prototype.onDestroy(self)
|
|
|
601
637
|
behavior:destroy()
|
|
602
638
|
end
|
|
603
639
|
end
|
|
604
|
-
local previousAbilityCooldownModifier = self[
|
|
640
|
+
local previousAbilityCooldownModifier = self[148]
|
|
605
641
|
if previousAbilityCooldownModifier then
|
|
606
642
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
607
643
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
608
644
|
end
|
|
609
645
|
end
|
|
610
|
-
if self[
|
|
646
|
+
if self[143] then
|
|
611
647
|
unit:decrementInvulnerabilityCounter()
|
|
612
648
|
end
|
|
613
|
-
if self[
|
|
649
|
+
if self[142] then
|
|
614
650
|
unit:decrementDisableAutoAttackCounter()
|
|
615
651
|
end
|
|
616
|
-
if self[
|
|
617
|
-
if self[
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
618
654
|
unit:decrementForceStunCounter()
|
|
619
655
|
end
|
|
620
656
|
unit:decrementStunCounter()
|
|
621
657
|
end
|
|
622
|
-
if self[
|
|
658
|
+
if self[139] then
|
|
623
659
|
unit:decrementGhostCounter()
|
|
624
660
|
end
|
|
625
661
|
if self._abilityTypeIds ~= nil then
|
|
626
|
-
for abilityTypeId in
|
|
662
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
627
663
|
unit:removeAbility(abilityTypeId)
|
|
628
664
|
end
|
|
629
665
|
end
|
|
@@ -656,13 +692,15 @@ function Buff.apply(self, ...)
|
|
|
656
692
|
end
|
|
657
693
|
end
|
|
658
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
659
|
-
local
|
|
660
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
661
697
|
if __TS__InstanceOf(buff, self) then
|
|
662
698
|
return buff
|
|
663
699
|
end
|
|
664
700
|
return nil
|
|
665
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
666
704
|
function Buff.prototype.onExpiration(self)
|
|
667
705
|
local unit = self.unit
|
|
668
706
|
if self[120] ~= nil then
|
|
@@ -671,9 +709,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
671
709
|
if self[121] ~= nil then
|
|
672
710
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
673
711
|
end
|
|
674
|
-
if self[
|
|
712
|
+
if self[145] then
|
|
675
713
|
unit:explode()
|
|
676
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
677
715
|
unit:kill()
|
|
678
716
|
end
|
|
679
717
|
end
|
|
@@ -728,6 +766,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
728
766
|
end
|
|
729
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
730
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
|
|
731
781
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
732
782
|
self[133] = damageReceivedEventCount
|
|
733
783
|
if damageReceivedEventCount == self[134] then
|
|
@@ -815,8 +865,8 @@ __TS__SetDescriptor(
|
|
|
815
865
|
return
|
|
816
866
|
end
|
|
817
867
|
self[112] = damageInterval
|
|
818
|
-
local
|
|
819
|
-
local elapsed =
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
820
870
|
local timer = self[114]
|
|
821
871
|
if timer == nil then
|
|
822
872
|
timer = Timer:create()
|
|
@@ -895,8 +945,8 @@ __TS__SetDescriptor(
|
|
|
895
945
|
return
|
|
896
946
|
end
|
|
897
947
|
self[117] = healingInterval
|
|
898
|
-
local
|
|
899
|
-
local elapsed =
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
900
950
|
local timer = self[119]
|
|
901
951
|
if timer == nil then
|
|
902
952
|
timer = Timer:create()
|
|
@@ -977,24 +1027,50 @@ __TS__SetDescriptor(
|
|
|
977
1027
|
},
|
|
978
1028
|
true
|
|
979
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
|
+
)
|
|
980
1056
|
__TS__SetDescriptor(
|
|
981
1057
|
Buff.prototype,
|
|
982
1058
|
"turnsIntoGhost",
|
|
983
1059
|
{
|
|
984
1060
|
get = function(self)
|
|
985
|
-
local
|
|
986
|
-
if
|
|
987
|
-
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
988
1064
|
end
|
|
989
|
-
return
|
|
1065
|
+
return ____self__139_49
|
|
990
1066
|
end,
|
|
991
1067
|
set = function(self, turnsIntoGhost)
|
|
992
|
-
if not turnsIntoGhost and self[
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
993
1069
|
self.object:decrementGhostCounter()
|
|
994
|
-
self[
|
|
995
|
-
elseif turnsIntoGhost and not self[
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
996
1072
|
self.object:incrementGhostCounter()
|
|
997
|
-
self[
|
|
1073
|
+
self[139] = true
|
|
998
1074
|
end
|
|
999
1075
|
end
|
|
1000
1076
|
},
|
|
@@ -1005,25 +1081,25 @@ __TS__SetDescriptor(
|
|
|
1005
1081
|
"stuns",
|
|
1006
1082
|
{
|
|
1007
1083
|
get = function(self)
|
|
1008
|
-
local
|
|
1009
|
-
if
|
|
1010
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
1011
1087
|
end
|
|
1012
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
1013
1089
|
end,
|
|
1014
1090
|
set = function(self, stuns)
|
|
1015
|
-
if not stuns and self[
|
|
1016
|
-
if self[
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1017
1093
|
self.object:decrementForceStunCounter()
|
|
1018
1094
|
end
|
|
1019
1095
|
self.object:decrementStunCounter()
|
|
1020
|
-
self[
|
|
1021
|
-
elseif stuns and not self[
|
|
1022
|
-
if self[
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1023
1099
|
self.object:incrementForceStunCounter()
|
|
1024
1100
|
end
|
|
1025
1101
|
self.object:incrementStunCounter()
|
|
1026
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
1027
1103
|
end
|
|
1028
1104
|
end
|
|
1029
1105
|
},
|
|
@@ -1034,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
1034
1110
|
"ignoresStunImmunity",
|
|
1035
1111
|
{
|
|
1036
1112
|
get = function(self)
|
|
1037
|
-
local
|
|
1038
|
-
if
|
|
1039
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
1040
1116
|
end
|
|
1041
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
1042
1118
|
end,
|
|
1043
1119
|
set = function(self, ignoresStunImmunity)
|
|
1044
|
-
if not ignoresStunImmunity and self[
|
|
1045
|
-
if self[
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1046
1122
|
self.object:decrementForceStunCounter()
|
|
1047
1123
|
end
|
|
1048
|
-
self[
|
|
1049
|
-
elseif ignoresStunImmunity and not self[
|
|
1050
|
-
if self[
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1051
1127
|
self.object:incrementForceStunCounter()
|
|
1052
1128
|
end
|
|
1053
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
1054
1130
|
end
|
|
1055
1131
|
end
|
|
1056
1132
|
},
|
|
@@ -1061,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
1061
1137
|
"disablesAutoAttack",
|
|
1062
1138
|
{
|
|
1063
1139
|
get = function(self)
|
|
1064
|
-
local
|
|
1065
|
-
if
|
|
1066
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
1067
1143
|
end
|
|
1068
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
1069
1145
|
end,
|
|
1070
1146
|
set = function(self, disablesAutoAttack)
|
|
1071
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1072
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1073
|
-
self[
|
|
1074
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1075
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1076
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1077
1153
|
end
|
|
1078
1154
|
end
|
|
1079
1155
|
},
|
|
@@ -1084,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1084
1160
|
"providesInvulnerability",
|
|
1085
1161
|
{
|
|
1086
1162
|
get = function(self)
|
|
1087
|
-
local
|
|
1088
|
-
if
|
|
1089
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1090
1166
|
end
|
|
1091
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1092
1168
|
end,
|
|
1093
1169
|
set = function(self, providesInvulnerability)
|
|
1094
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1095
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1096
|
-
self[
|
|
1097
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1098
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1099
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1100
1176
|
end
|
|
1101
1177
|
end
|
|
1102
1178
|
},
|
|
@@ -1107,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1107
1183
|
"killsOnExpiration",
|
|
1108
1184
|
{
|
|
1109
1185
|
get = function(self)
|
|
1110
|
-
local
|
|
1111
|
-
if
|
|
1112
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1113
1189
|
end
|
|
1114
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1115
1191
|
end,
|
|
1116
1192
|
set = function(self, killsOnExpiration)
|
|
1117
|
-
if not killsOnExpiration and self[
|
|
1118
|
-
self[
|
|
1119
|
-
elseif killsOnExpiration and not self[
|
|
1120
|
-
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
|
|
1121
1197
|
end
|
|
1122
1198
|
end
|
|
1123
1199
|
},
|
|
@@ -1128,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1128
1204
|
"explodesOnExpiration",
|
|
1129
1205
|
{
|
|
1130
1206
|
get = function(self)
|
|
1131
|
-
local
|
|
1132
|
-
if
|
|
1133
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1134
1210
|
end
|
|
1135
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1136
1212
|
end,
|
|
1137
1213
|
set = function(self, killsOnExpiration)
|
|
1138
|
-
if not killsOnExpiration and self[
|
|
1139
|
-
self[
|
|
1140
|
-
elseif killsOnExpiration and not self[
|
|
1141
|
-
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
|
|
1142
1218
|
end
|
|
1143
1219
|
end
|
|
1144
1220
|
},
|
|
@@ -1247,12 +1323,39 @@ __TS__SetDescriptor(
|
|
|
1247
1323
|
},
|
|
1248
1324
|
true
|
|
1249
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
|
+
)
|
|
1250
1339
|
__TS__SetDescriptor(
|
|
1251
1340
|
Buff.prototype,
|
|
1252
1341
|
"duration",
|
|
1253
|
-
{
|
|
1254
|
-
|
|
1255
|
-
|
|
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
|
+
},
|
|
1256
1359
|
true
|
|
1257
1360
|
)
|
|
1258
1361
|
__TS__SetDescriptor(
|
|
@@ -1260,13 +1363,13 @@ __TS__SetDescriptor(
|
|
|
1260
1363
|
"remainingDuration",
|
|
1261
1364
|
{
|
|
1262
1365
|
get = function(self)
|
|
1263
|
-
local
|
|
1264
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1265
1368
|
end,
|
|
1266
1369
|
set = function(self, remainingDuration)
|
|
1267
|
-
local
|
|
1268
|
-
local
|
|
1269
|
-
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)
|
|
1270
1373
|
if remainingDurationDelta ~= 0 then
|
|
1271
1374
|
self[103] = self[103] + remainingDurationDelta
|
|
1272
1375
|
if remainingDuration <= 0 then
|
|
@@ -1281,7 +1384,7 @@ __TS__SetDescriptor(
|
|
|
1281
1384
|
remainingDuration,
|
|
1282
1385
|
self._spellStealPriority,
|
|
1283
1386
|
self._learnLevelMinimum,
|
|
1284
|
-
self[
|
|
1387
|
+
self[146]
|
|
1285
1388
|
) then
|
|
1286
1389
|
local timer = self._timer
|
|
1287
1390
|
if timer == nil then
|
|
@@ -1296,15 +1399,80 @@ __TS__SetDescriptor(
|
|
|
1296
1399
|
},
|
|
1297
1400
|
true
|
|
1298
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
|
+
)
|
|
1299
1467
|
__TS__SetDescriptor(
|
|
1300
1468
|
Buff.prototype,
|
|
1301
1469
|
"abilityCooldownFactor",
|
|
1302
1470
|
{
|
|
1303
1471
|
get = function(self)
|
|
1304
|
-
return self[
|
|
1472
|
+
return self[147] or 1
|
|
1305
1473
|
end,
|
|
1306
1474
|
set = function(self, abilityCooldownFactor)
|
|
1307
|
-
local previousAbilityCooldownModifier = self[
|
|
1475
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1308
1476
|
if previousAbilityCooldownModifier then
|
|
1309
1477
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1310
1478
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
@@ -1316,8 +1484,8 @@ __TS__SetDescriptor(
|
|
|
1316
1484
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1317
1485
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1318
1486
|
end
|
|
1319
|
-
self[
|
|
1320
|
-
self[
|
|
1487
|
+
self[148] = modifier
|
|
1488
|
+
self[147] = abilityCooldownFactor
|
|
1321
1489
|
end
|
|
1322
1490
|
},
|
|
1323
1491
|
true
|
|
@@ -1325,35 +1493,40 @@ __TS__SetDescriptor(
|
|
|
1325
1493
|
Buff.createdEvent = buffCreatedEvent
|
|
1326
1494
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1327
1495
|
(function(self)
|
|
1328
|
-
local function destroyBuffIfNeeded(buff)
|
|
1329
|
-
|
|
1330
|
-
|
|
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
|
|
1331
1504
|
end
|
|
1332
1505
|
end
|
|
1333
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1334
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1335
1508
|
if buffByTypeId ~= nil then
|
|
1336
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1337
1510
|
if buff ~= nil then
|
|
1338
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1339
1512
|
end
|
|
1340
1513
|
end
|
|
1341
1514
|
end
|
|
1342
|
-
____exports.checkBuffs = function(unit)
|
|
1343
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1344
1517
|
end
|
|
1345
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1346
1519
|
0,
|
|
1347
1520
|
function(caster)
|
|
1348
|
-
____exports.checkBuffs(caster)
|
|
1349
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1350
1523
|
end
|
|
1351
1524
|
)
|
|
1352
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1353
1526
|
0,
|
|
1354
1527
|
function(caster, ability, target)
|
|
1355
|
-
____exports.checkBuffs(target)
|
|
1356
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1357
1530
|
end
|
|
1358
1531
|
)
|
|
1359
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1364,17 +1537,40 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1364
1537
|
y,
|
|
1365
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1366
1539
|
)
|
|
1367
|
-
forEach(units, ____exports.checkBuffs)
|
|
1368
|
-
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
|
|
1369
1565
|
end
|
|
1370
1566
|
)
|
|
1371
1567
|
Unit.onDamage:addListener(
|
|
1372
1568
|
0,
|
|
1373
1569
|
function(source, target)
|
|
1374
1570
|
if source ~= nil then
|
|
1375
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1376
1572
|
end
|
|
1377
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1378
1574
|
end
|
|
1379
1575
|
)
|
|
1380
1576
|
buffCreatedEvent:addListener(function(buff)
|