warscript 0.0.1-dev.47f470c → 0.0.1-dev.4b6e45a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +21 -2
- package/core/types/frame.lua +165 -87
- 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/missile.lua +8 -7
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -26
- package/core/types/sound.lua +105 -55
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- 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 +115 -4
- package/decl/native.d.ts +1719 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +13 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
- package/engine/behaviour/ability/emulate-impact.lua +96 -7
- package/engine/behaviour/ability/instant-impact.d.ts +12 -1
- package/engine/behaviour/ability/instant-impact.lua +17 -2
- 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/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +23 -6
- package/engine/behaviour/ability.lua +145 -29
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +130 -57
- package/engine/buff.lua +643 -294
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- 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 +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- 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/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +114 -9
- 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/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- 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 +17 -0
- package/engine/internal/unit/bonus.lua +113 -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/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/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/shared-vision-counter.d.ts +18 -0
- package/engine/internal/unit/shared-vision-counter.lua +31 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +83 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +96 -68
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +47 -34
- package/engine/internal/unit.lua +413 -323
- package/engine/lightning.lua +4 -4
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/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/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -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-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/auxiliary/unit-weapon-type.d.ts +21 -0
- package/engine/object-data/auxiliary/unit-weapon-type.lua +2 -0
- 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/barrage.d.ts +12 -0
- package/engine/object-data/entry/ability-type/barrage.lua +52 -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/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -11
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -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/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
- package/engine/object-data/entry/ability-type/channel.lua +3 -3
- 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/curse.lua +2 -2
- 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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -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/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/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-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -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/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/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/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -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 +50 -21
- package/engine/object-data/entry/ability-type.lua +376 -27
- package/engine/object-data/entry/buff-type/applicable.lua +124 -108
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +37 -27
- 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 +19 -3
- package/engine/object-data/entry/sound-preset.lua +105 -15
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +8 -3
- package/engine/object-data/entry.lua +22 -7
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -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 +4 -4
- package/engine/standard/fields/ability.lua +4 -4
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +48 -2
- package/engine/text-tag.lua +287 -10
- package/engine/unit.d.ts +12 -1
- package/engine/unit.lua +12 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +2 -2
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +28 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.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
|
@@ -14,8 +14,10 @@ local Unit = ____unit.Unit
|
|
|
14
14
|
local ____applicable = require("engine.object-data.entry.buff-type.applicable")
|
|
15
15
|
local internalApplyBuff = ____applicable.internalApplyBuff
|
|
16
16
|
local removeBuff = ____applicable.removeBuff
|
|
17
|
+
local removeBuffApplicator = ____applicable.removeBuffApplicator
|
|
17
18
|
local ____ability = require("engine.internal.ability")
|
|
18
19
|
local Ability = ____ability.Ability
|
|
20
|
+
local UnitAbility = ____ability.UnitAbility
|
|
19
21
|
local ____ability = require("engine.object-field.ability")
|
|
20
22
|
local AbilityBooleanField = ____ability.AbilityBooleanField
|
|
21
23
|
local AbilityNumberField = ____ability.AbilityNumberField
|
|
@@ -28,9 +30,6 @@ local ____math = require("math")
|
|
|
28
30
|
local max = ____math.max
|
|
29
31
|
local min = ____math.min
|
|
30
32
|
local ____bonus = require("engine.internal.unit.bonus")
|
|
31
|
-
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
32
|
-
local getUnitBonus = ____bonus.getUnitBonus
|
|
33
|
-
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
34
33
|
local UnitBonusType = ____bonus.UnitBonusType
|
|
35
34
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
35
|
local damageArea = ____area_2Ddamage.damageArea
|
|
@@ -44,6 +43,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
44
43
|
local ____unit = require("engine.behaviour.unit")
|
|
45
44
|
local UnitBehavior = ____unit.UnitBehavior
|
|
46
45
|
local ____arrays = require("utility.arrays")
|
|
46
|
+
local emptyArray = ____arrays.emptyArray
|
|
47
47
|
local forEach = ____arrays.forEach
|
|
48
48
|
local ____event = require("event")
|
|
49
49
|
local Event = ____event.Event
|
|
@@ -53,6 +53,15 @@ local ____item = require("engine.internal.item")
|
|
|
53
53
|
local Item = ____item.Item
|
|
54
54
|
local ____destructable = require("core.types.destructable")
|
|
55
55
|
local Destructable = ____destructable.Destructable
|
|
56
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
57
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
58
|
+
local ____ability = require("engine.behaviour.ability")
|
|
59
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
60
|
+
local ____records = require("utility.records")
|
|
61
|
+
local sortedKeysUnnested = ____records.sortedKeysUnnested
|
|
62
|
+
local ____sound = require("core.types.sound")
|
|
63
|
+
local Sound3D = ____sound.Sound3D
|
|
64
|
+
local SoundSettings = ____sound.SoundSettings
|
|
56
65
|
local getUnitAbility = BlzGetUnitAbility
|
|
57
66
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
58
67
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -98,17 +107,21 @@ local buffParametersKeys = {
|
|
|
98
107
|
damageIncrease = true,
|
|
99
108
|
damageIncreaseFactor = true,
|
|
100
109
|
armorIncrease = true,
|
|
101
|
-
|
|
110
|
+
maxHealthIncrease = true,
|
|
111
|
+
maxManaIncrease = true,
|
|
102
112
|
attackSpeedIncreaseFactor = true,
|
|
103
113
|
movementSpeedIncreaseFactor = true,
|
|
114
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
104
115
|
evasionProbability = true,
|
|
105
116
|
missProbability = true,
|
|
106
117
|
damageFactor = true,
|
|
107
118
|
receivedDamageFactor = true,
|
|
119
|
+
returnedMeleeDamageFactor = true,
|
|
108
120
|
receivedMagicDamageFactor = true,
|
|
109
121
|
durationIncreaseOnAutoAttack = true,
|
|
110
122
|
maximumDuration = true,
|
|
111
123
|
maximumRemainingDuration = true,
|
|
124
|
+
turnsIntoGhost = true,
|
|
112
125
|
stuns = true,
|
|
113
126
|
ignoresStunImmunity = true,
|
|
114
127
|
providesStunImmunity = true,
|
|
@@ -119,11 +132,17 @@ local buffParametersKeys = {
|
|
|
119
132
|
maximumAutoAttackCount = true,
|
|
120
133
|
maximumDamageDealtEventCount = true,
|
|
121
134
|
maximumDamageReceivedEventCount = true,
|
|
135
|
+
absorbedDamageFactor = true,
|
|
136
|
+
maximumDamageAbsorbed = true,
|
|
137
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
122
138
|
uniqueGroup = true,
|
|
139
|
+
destructionSoundPresetId = true,
|
|
123
140
|
damageOnExpiration = true,
|
|
124
141
|
healingOnExpiration = true,
|
|
125
142
|
killsOnExpiration = true,
|
|
126
|
-
explodesOnExpiration = true
|
|
143
|
+
explodesOnExpiration = true,
|
|
144
|
+
abilityCooldownFactor = true,
|
|
145
|
+
sharesVisionWithSource = true
|
|
127
146
|
}
|
|
128
147
|
local function resolveEnumValue(ability, level, value)
|
|
129
148
|
if value == nil or type(value) == "number" then
|
|
@@ -174,21 +193,28 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
174
193
|
end
|
|
175
194
|
end
|
|
176
195
|
local buffBooleanParameters = {
|
|
196
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
197
|
+
"turnsIntoGhost",
|
|
177
198
|
"stuns",
|
|
178
199
|
"ignoresStunImmunity",
|
|
179
200
|
"disablesAutoAttack",
|
|
180
201
|
"providesInvulnerability",
|
|
181
202
|
"killsOnExpiration",
|
|
182
|
-
"explodesOnExpiration"
|
|
203
|
+
"explodesOnExpiration",
|
|
204
|
+
"sharesVisionWithSource"
|
|
183
205
|
}
|
|
184
206
|
local buffNumberParameters = {
|
|
185
207
|
"durationIncreaseOnAutoAttack",
|
|
186
208
|
"attackSpeedIncreaseFactor",
|
|
187
209
|
"movementSpeedIncreaseFactor",
|
|
210
|
+
"manaRegenerationRateIncreaseFactor",
|
|
188
211
|
"evasionProbability",
|
|
189
212
|
"armorIncrease",
|
|
213
|
+
"maxHealthIncrease",
|
|
214
|
+
"maxManaIncrease",
|
|
190
215
|
"damageFactor",
|
|
191
216
|
"receivedDamageFactor",
|
|
217
|
+
"returnedMeleeDamageFactor",
|
|
192
218
|
"maximumAutoAttackCount",
|
|
193
219
|
"maximumDamageDealtEventCount",
|
|
194
220
|
"maximumDamageReceivedEventCount",
|
|
@@ -199,7 +225,10 @@ local buffNumberParameters = {
|
|
|
199
225
|
"healingPerInterval",
|
|
200
226
|
"healingOverDuration",
|
|
201
227
|
"damageOnExpiration",
|
|
202
|
-
"healingOnExpiration"
|
|
228
|
+
"healingOnExpiration",
|
|
229
|
+
"absorbedDamageFactor",
|
|
230
|
+
"maximumDamageAbsorbed",
|
|
231
|
+
"abilityCooldownFactor"
|
|
203
232
|
}
|
|
204
233
|
local unsuccessfulApplicationMarker = {}
|
|
205
234
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -233,18 +262,44 @@ end
|
|
|
233
262
|
local function destroyBuff(buff)
|
|
234
263
|
buff:destroy()
|
|
235
264
|
end
|
|
265
|
+
local function destroyBuffOnDeath(buff)
|
|
266
|
+
if buff[100] == 0 then
|
|
267
|
+
Timer:run(destroyBuff, buff)
|
|
268
|
+
else
|
|
269
|
+
buff:destroy()
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
local function shareVisionWithSource(buff)
|
|
273
|
+
local source = buff[102]
|
|
274
|
+
if source ~= nil then
|
|
275
|
+
local player = source.owner
|
|
276
|
+
buff[101]:incrementSharedVisionCounter(player)
|
|
277
|
+
buff[151] = player
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
local function unshareVisionWithSource(buff)
|
|
281
|
+
local player = buff[151]
|
|
282
|
+
if player ~= nil then
|
|
283
|
+
buff[101]:decrementSharedVisionCounter(player)
|
|
284
|
+
buff[151] = nil
|
|
285
|
+
end
|
|
286
|
+
end
|
|
236
287
|
local function expireBuff(buff)
|
|
237
|
-
|
|
238
|
-
|
|
288
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
289
|
+
return
|
|
290
|
+
end
|
|
291
|
+
buff[100] = 2
|
|
292
|
+
local remainingDamageOverDuration = buff[114] or 0
|
|
293
|
+
local remainingHealingOverDuration = buff[114] or 0
|
|
239
294
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
240
295
|
buff:flashSpecialEffect()
|
|
241
296
|
if remainingDamageOverDuration ~= 0 then
|
|
242
297
|
(buff[102] or buff[101]):damageTarget(buff[101], remainingDamageOverDuration)
|
|
243
|
-
buff[
|
|
298
|
+
buff[114] = nil
|
|
244
299
|
end
|
|
245
300
|
if remainingHealingOverDuration ~= 0 then
|
|
246
301
|
(buff[102] or buff[101]):healTarget(buff[101], remainingHealingOverDuration)
|
|
247
|
-
buff[
|
|
302
|
+
buff[119] = nil
|
|
248
303
|
end
|
|
249
304
|
end
|
|
250
305
|
Timer:run(destroyBuff, buff)
|
|
@@ -252,8 +307,8 @@ local function expireBuff(buff)
|
|
|
252
307
|
end
|
|
253
308
|
local function buffDamageIntervalInitialTimerCallback(buff)
|
|
254
309
|
buffDamageIntervalTimerCallback(buff)
|
|
255
|
-
local timer = buff[
|
|
256
|
-
local damageInterval = buff[
|
|
310
|
+
local timer = buff[115]
|
|
311
|
+
local damageInterval = buff[113]
|
|
257
312
|
if timer ~= nil and damageInterval ~= nil and damageInterval > 0 then
|
|
258
313
|
timer:start(damageInterval, true, buffDamageIntervalTimerCallback, buff)
|
|
259
314
|
end
|
|
@@ -261,48 +316,49 @@ end
|
|
|
261
316
|
buffDamageIntervalTimerCallback = function(buff)
|
|
262
317
|
buff:flashSpecialEffect()
|
|
263
318
|
local source = buff[102] or buff[101]
|
|
264
|
-
local remainingDamageOverDuration = buff[
|
|
319
|
+
local remainingDamageOverDuration = buff[114] or 0
|
|
265
320
|
if remainingDamageOverDuration ~= 0 then
|
|
266
|
-
local damageInterval = buff[
|
|
321
|
+
local damageInterval = buff[113] or 0
|
|
267
322
|
if damageInterval ~= 0 then
|
|
268
323
|
local damage = remainingDamageOverDuration / (1 + buff.remainingDuration / damageInterval)
|
|
269
324
|
source:damageTarget(buff[101], damage)
|
|
270
|
-
buff[
|
|
325
|
+
buff[114] = remainingDamageOverDuration - damage
|
|
271
326
|
end
|
|
272
327
|
end
|
|
273
|
-
local damagePerInterval = buff[
|
|
328
|
+
local damagePerInterval = buff[112] or 0
|
|
274
329
|
if remainingDamageOverDuration == 0 or damagePerInterval ~= 0 then
|
|
275
330
|
source:damageTarget(buff[101], damagePerInterval)
|
|
276
331
|
end
|
|
277
332
|
end
|
|
278
333
|
local function buffHealingIntervalInitialTimerCallback(buff)
|
|
279
334
|
buffHealingIntervalTimerCallback(buff)
|
|
280
|
-
local timer = buff[
|
|
281
|
-
local healingInterval = buff[
|
|
335
|
+
local timer = buff[120]
|
|
336
|
+
local healingInterval = buff[118]
|
|
282
337
|
if timer ~= nil and healingInterval ~= nil and healingInterval > 0 then
|
|
283
338
|
timer:start(healingInterval, true, buffHealingIntervalTimerCallback, buff)
|
|
284
339
|
end
|
|
285
340
|
end
|
|
286
341
|
buffHealingIntervalTimerCallback = function(buff)
|
|
287
|
-
if buff[
|
|
342
|
+
if buff[118] ~= buff[113] then
|
|
288
343
|
buff:flashSpecialEffect()
|
|
289
344
|
end
|
|
290
345
|
local source = buff[102] or buff[101]
|
|
291
|
-
local remainingHealingOverDuration = buff[
|
|
346
|
+
local remainingHealingOverDuration = buff[119] or 0
|
|
292
347
|
if remainingHealingOverDuration ~= 0 then
|
|
293
|
-
local healingInterval = buff[
|
|
348
|
+
local healingInterval = buff[118] or 0
|
|
294
349
|
if healingInterval ~= 0 then
|
|
295
350
|
local healing = remainingHealingOverDuration / (1 + buff.remainingDuration / healingInterval)
|
|
296
351
|
source:healTarget(buff[101], healing)
|
|
297
|
-
buff[
|
|
352
|
+
buff[119] = remainingHealingOverDuration - healing
|
|
298
353
|
end
|
|
299
354
|
end
|
|
300
|
-
local healingPerInterval = buff[
|
|
355
|
+
local healingPerInterval = buff[117] or 0
|
|
301
356
|
if remainingHealingOverDuration == 0 or healingPerInterval ~= 0 then
|
|
302
357
|
source:healTarget(buff[101], healingPerInterval)
|
|
303
358
|
end
|
|
304
359
|
end
|
|
305
|
-
local
|
|
360
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
361
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
306
362
|
____exports.Buff = __TS__Class()
|
|
307
363
|
local Buff = ____exports.Buff
|
|
308
364
|
Buff.name = "Buff"
|
|
@@ -317,33 +373,38 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
317
373
|
local polarity
|
|
318
374
|
local resistanceType
|
|
319
375
|
local ability
|
|
376
|
+
local abilityBehavior
|
|
320
377
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
321
378
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
322
379
|
polarity = resistanceTypeOrPolarity
|
|
323
380
|
resistanceType = abilityOrParametersOrResistanceType
|
|
324
|
-
if __TS__InstanceOf(parametersOrAbility,
|
|
381
|
+
if __TS__InstanceOf(parametersOrAbility, AbilityBehavior) then
|
|
382
|
+
abilityBehavior = parametersOrAbility
|
|
383
|
+
ability = abilityBehavior.ability
|
|
384
|
+
elseif __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
325
385
|
ability = parametersOrAbility
|
|
326
|
-
|
|
327
|
-
ability = nil
|
|
386
|
+
elseif parametersOrAbility ~= nil then
|
|
328
387
|
parameters = parametersOrAbility
|
|
329
388
|
end
|
|
330
389
|
else
|
|
331
390
|
typeId = typeIdOrTypeIds
|
|
332
391
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
333
392
|
resistanceType = resistanceTypeOrPolarity
|
|
334
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType,
|
|
393
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, AbilityBehavior) then
|
|
394
|
+
abilityBehavior = abilityOrParametersOrResistanceType
|
|
395
|
+
ability = abilityBehavior.ability
|
|
396
|
+
parameters = parametersOrAbility
|
|
397
|
+
elseif __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
335
398
|
ability = abilityOrParametersOrResistanceType
|
|
336
399
|
parameters = parametersOrAbility
|
|
337
|
-
|
|
338
|
-
ability = nil
|
|
400
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
339
401
|
parameters = abilityOrParametersOrResistanceType
|
|
402
|
+
else
|
|
403
|
+
parameters = parametersOrAbility
|
|
340
404
|
end
|
|
341
405
|
end
|
|
406
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
342
407
|
self.typeId = typeId
|
|
343
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
344
|
-
parameters = ability
|
|
345
|
-
ability = nil
|
|
346
|
-
end
|
|
347
408
|
local defaultParameters = self.constructor.defaultParameters
|
|
348
409
|
local level = parameters and parameters.level or defaultParameters.level
|
|
349
410
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -371,14 +432,15 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
371
432
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
372
433
|
if missProbability ~= nil then
|
|
373
434
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
374
|
-
self[
|
|
435
|
+
self[147] = missProbability
|
|
375
436
|
end
|
|
376
437
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
377
438
|
if buffByTypeId == nil then
|
|
378
439
|
buffByTypeId = {}
|
|
379
440
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
380
441
|
end
|
|
381
|
-
|
|
442
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
443
|
+
local ____opt_15 = self.previousBuff
|
|
382
444
|
if ____opt_15 ~= nil then
|
|
383
445
|
____opt_15:destroy()
|
|
384
446
|
end
|
|
@@ -415,17 +477,18 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
415
477
|
self[102] = source
|
|
416
478
|
self[103] = duration or 0
|
|
417
479
|
self[104] = uniqueGroup
|
|
418
|
-
self[105] =
|
|
419
|
-
self[106] = BlzGetAbilityStringLevelField(self.handle,
|
|
480
|
+
self[105] = parameters and parameters.destructionSoundPresetId or defaultParameters and defaultParameters.destructionSoundPresetId
|
|
481
|
+
self[106] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_EFFECT, 0)
|
|
482
|
+
self[107] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_SPECIAL, 0)
|
|
420
483
|
if parameters ~= nil or (next(defaultParameters)) ~= nil then
|
|
421
484
|
for ____, buffBooleanParameter in ipairs(buffBooleanParameters) do
|
|
422
|
-
local
|
|
423
|
-
local
|
|
424
|
-
local
|
|
425
|
-
if
|
|
426
|
-
|
|
485
|
+
local ____ability_28 = ability
|
|
486
|
+
local ____level_29 = level
|
|
487
|
+
local ____temp_27 = parameters and parameters[buffBooleanParameter]
|
|
488
|
+
if ____temp_27 == nil then
|
|
489
|
+
____temp_27 = defaultParameters[buffBooleanParameter]
|
|
427
490
|
end
|
|
428
|
-
if resolveBooleanValue(
|
|
491
|
+
if resolveBooleanValue(____ability_28, ____level_29, ____temp_27) then
|
|
429
492
|
self[buffBooleanParameter] = true
|
|
430
493
|
end
|
|
431
494
|
end
|
|
@@ -441,11 +504,11 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
441
504
|
end
|
|
442
505
|
local maximumDuration = parameters and parameters.maximumDuration or defaultParameters.maximumDuration
|
|
443
506
|
if maximumDuration ~= nil then
|
|
444
|
-
self[
|
|
507
|
+
self[109] = resolveNumberValue(ability, level, maximumDuration)
|
|
445
508
|
end
|
|
446
509
|
local maximumRemainingDuration = parameters and parameters.maximumRemainingDuration or defaultParameters.maximumRemainingDuration
|
|
447
510
|
if maximumRemainingDuration ~= nil then
|
|
448
|
-
self[
|
|
511
|
+
self[110] = resolveNumberValue(ability, level, maximumRemainingDuration)
|
|
449
512
|
end
|
|
450
513
|
local parametersAbilityTypeIds = parameters and parameters.abilityTypeIds or defaultParameters.abilityTypeIds
|
|
451
514
|
if parametersAbilityTypeIds ~= nil then
|
|
@@ -454,24 +517,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
454
517
|
abilityTypeIds = {}
|
|
455
518
|
self._abilityTypeIds = abilityTypeIds
|
|
456
519
|
end
|
|
457
|
-
for
|
|
520
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
521
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
458
522
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
459
523
|
if addedAbility ~= nil then
|
|
460
524
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
461
525
|
_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
|
|
526
|
+
if abilityParameters.isButtonVisible == false then
|
|
527
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
473
528
|
end
|
|
474
|
-
|
|
529
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
530
|
+
field[1]:setValue(
|
|
531
|
+
addedAbility,
|
|
532
|
+
resolveNumberValue(ability, level, field[2])
|
|
533
|
+
)
|
|
534
|
+
end
|
|
535
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
475
536
|
end
|
|
476
537
|
end
|
|
477
538
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -483,18 +544,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
483
544
|
self._behaviors = behaviors
|
|
484
545
|
end
|
|
485
546
|
end
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
547
|
+
if parameters ~= nil then
|
|
548
|
+
local additionalParameters = {}
|
|
549
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
550
|
+
if not buffParametersKeys[key] then
|
|
551
|
+
if ability then
|
|
552
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
553
|
+
else
|
|
554
|
+
additionalParameters[key] = parameters[key]
|
|
555
|
+
end
|
|
493
556
|
end
|
|
494
557
|
end
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
558
|
+
if (next(additionalParameters)) ~= nil then
|
|
559
|
+
self.parameters = additionalParameters
|
|
560
|
+
end
|
|
498
561
|
end
|
|
499
562
|
end
|
|
500
563
|
if duration ~= nil and duration > 0 then
|
|
@@ -504,65 +567,79 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
504
567
|
end
|
|
505
568
|
self:onCreate()
|
|
506
569
|
self[100] = 1
|
|
570
|
+
Event.invoke(buffCreatedEvent, self)
|
|
507
571
|
end
|
|
508
|
-
function Buff.prototype.
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
572
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
573
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
574
|
+
local abilityCooldownModifier = self[149]
|
|
575
|
+
if abilityCooldownModifier then
|
|
576
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
577
|
+
end
|
|
578
|
+
end
|
|
512
579
|
end
|
|
513
|
-
function Buff.prototype.
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
580
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
581
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
582
|
+
local abilityCooldownModifier = self[149]
|
|
583
|
+
if abilityCooldownModifier then
|
|
584
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
585
|
+
end
|
|
518
586
|
end
|
|
519
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
520
587
|
end
|
|
521
588
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
589
|
+
self:flash(
|
|
590
|
+
self[106],
|
|
591
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
592
|
+
widgetOrXOrParametersOrDuration,
|
|
593
|
+
yOrParametersOrDuration,
|
|
594
|
+
parametersOrDuration
|
|
595
|
+
)
|
|
596
|
+
end
|
|
597
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
598
|
+
self:flash(
|
|
599
|
+
self[107],
|
|
600
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
601
|
+
widgetOrXOrParametersOrDuration,
|
|
602
|
+
yOrParametersOrDuration,
|
|
603
|
+
parametersOrDuration
|
|
604
|
+
)
|
|
605
|
+
end
|
|
606
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
522
607
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
523
|
-
Effect:flash(
|
|
608
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
524
609
|
else
|
|
525
610
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
526
|
-
local
|
|
527
|
-
local
|
|
528
|
-
local
|
|
529
|
-
|
|
530
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
531
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
532
|
-
)
|
|
533
|
-
local ____isWidgetProvided_40
|
|
611
|
+
local ____Effect_44 = Effect
|
|
612
|
+
local ____Effect_flash_45 = Effect.flash
|
|
613
|
+
local ____array_43 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
614
|
+
local ____isWidgetProvided_42
|
|
534
615
|
if isWidgetProvided then
|
|
535
|
-
|
|
616
|
+
____isWidgetProvided_42 = yOrParametersOrDuration
|
|
536
617
|
else
|
|
537
|
-
|
|
618
|
+
____isWidgetProvided_42 = widgetOrXOrParametersOrDuration
|
|
538
619
|
end
|
|
539
|
-
__TS__SparseArrayPush(
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
__TS__SparseArraySpread(
|
|
620
|
+
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
621
|
+
____Effect_flash_45(
|
|
622
|
+
____Effect_44,
|
|
623
|
+
__TS__SparseArraySpread(____array_43)
|
|
543
624
|
)
|
|
544
625
|
end
|
|
545
626
|
end
|
|
546
|
-
function Buff.prototype.
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
627
|
+
function Buff.prototype.expire(self)
|
|
628
|
+
expireBuff(self)
|
|
629
|
+
end
|
|
630
|
+
function Buff.prototype.dispel(self, source)
|
|
631
|
+
if self.isDestroyed or self[100] ~= 1 then
|
|
632
|
+
return
|
|
633
|
+
end
|
|
634
|
+
self[100] = 2
|
|
635
|
+
do
|
|
636
|
+
pcall(function()
|
|
637
|
+
self:onDispel(source)
|
|
638
|
+
end)
|
|
639
|
+
do
|
|
640
|
+
self:destroy()
|
|
641
|
+
end
|
|
560
642
|
end
|
|
561
|
-
__TS__SparseArrayPush(____array_45, ____isWidgetProvided_44)
|
|
562
|
-
____Effect_flash_47(
|
|
563
|
-
____Effect_46,
|
|
564
|
-
__TS__SparseArraySpread(____array_45)
|
|
565
|
-
)
|
|
566
643
|
end
|
|
567
644
|
function Buff.prototype.onCreate(self)
|
|
568
645
|
end
|
|
@@ -570,19 +647,25 @@ function Buff.prototype.onDestroy(self)
|
|
|
570
647
|
check(self[100] ~= 0, "Cannot destroy a buff that has not finished creating yet.")
|
|
571
648
|
self[100] = 2
|
|
572
649
|
local unit = self._unit
|
|
650
|
+
local destructionSoundPresetId = self[105]
|
|
651
|
+
if destructionSoundPresetId ~= nil then
|
|
652
|
+
Sound3D:playFromLabel(destructionSoundPresetId, SoundSettings.Ability, unit)
|
|
653
|
+
end
|
|
573
654
|
if getUnitAbility(unit.handle, self.typeId) == self.handle then
|
|
574
655
|
removeBuff(unit.handle, self.typeId)
|
|
656
|
+
else
|
|
657
|
+
removeBuffApplicator(unit.handle, self.typeId)
|
|
575
658
|
end
|
|
576
659
|
buffByTypeIdByUnit[unit][self.typeId] = nil
|
|
577
|
-
local healingIntervalTimer = self[
|
|
660
|
+
local healingIntervalTimer = self[120]
|
|
578
661
|
if healingIntervalTimer ~= nil then
|
|
579
662
|
healingIntervalTimer:destroy()
|
|
580
|
-
self[
|
|
663
|
+
self[120] = nil
|
|
581
664
|
end
|
|
582
|
-
local damageIntervalTimer = self[
|
|
665
|
+
local damageIntervalTimer = self[115]
|
|
583
666
|
if damageIntervalTimer ~= nil then
|
|
584
667
|
damageIntervalTimer:destroy()
|
|
585
|
-
self[
|
|
668
|
+
self[115] = nil
|
|
586
669
|
end
|
|
587
670
|
if self._timer ~= nil then
|
|
588
671
|
self._timer:destroy()
|
|
@@ -592,26 +675,34 @@ function Buff.prototype.onDestroy(self)
|
|
|
592
675
|
behavior:destroy()
|
|
593
676
|
end
|
|
594
677
|
end
|
|
595
|
-
|
|
678
|
+
local previousAbilityCooldownModifier = self[149]
|
|
679
|
+
if previousAbilityCooldownModifier then
|
|
680
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
681
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
682
|
+
end
|
|
683
|
+
end
|
|
684
|
+
if self[144] then
|
|
685
|
+
unit:decrementInvulnerabilityCounter()
|
|
686
|
+
end
|
|
687
|
+
if self[143] then
|
|
596
688
|
unit:decrementDisableAutoAttackCounter()
|
|
597
689
|
end
|
|
598
|
-
if self[
|
|
599
|
-
if self[
|
|
600
|
-
unit:
|
|
690
|
+
if self[141] then
|
|
691
|
+
if self[142] then
|
|
692
|
+
unit:decrementForceStunCounter()
|
|
601
693
|
end
|
|
602
694
|
unit:decrementStunCounter()
|
|
603
695
|
end
|
|
696
|
+
if self[140] then
|
|
697
|
+
unit:decrementGhostCounter()
|
|
698
|
+
end
|
|
699
|
+
unshareVisionWithSource(self)
|
|
604
700
|
if self._abilityTypeIds ~= nil then
|
|
605
|
-
for abilityTypeId in
|
|
701
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
606
702
|
unit:removeAbility(abilityTypeId)
|
|
607
703
|
end
|
|
608
704
|
end
|
|
609
|
-
|
|
610
|
-
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
611
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
612
|
-
end
|
|
613
|
-
end
|
|
614
|
-
Event.invoke(buffDestroyEvent, self)
|
|
705
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
615
706
|
self[100] = 3
|
|
616
707
|
return UnitBehavior.prototype.onDestroy(self)
|
|
617
708
|
end
|
|
@@ -640,49 +731,51 @@ function Buff.apply(self, ...)
|
|
|
640
731
|
end
|
|
641
732
|
end
|
|
642
733
|
function Buff.getByTypeId(self, unit, typeId)
|
|
643
|
-
local
|
|
644
|
-
local buff =
|
|
734
|
+
local ____opt_46 = buffByTypeIdByUnit[unit]
|
|
735
|
+
local buff = ____opt_46 and ____opt_46[typeId]
|
|
645
736
|
if __TS__InstanceOf(buff, self) then
|
|
646
737
|
return buff
|
|
647
738
|
end
|
|
648
739
|
return nil
|
|
649
740
|
end
|
|
741
|
+
function Buff.prototype.onDispel(self, source)
|
|
742
|
+
end
|
|
650
743
|
function Buff.prototype.onExpiration(self)
|
|
651
744
|
local unit = self.unit
|
|
652
|
-
if self[120] ~= nil then
|
|
653
|
-
(self[102] or unit):damageTarget(unit, self[120] or 0)
|
|
654
|
-
end
|
|
655
745
|
if self[121] ~= nil then
|
|
656
|
-
(self[102] or unit):
|
|
746
|
+
(self[102] or unit):damageTarget(unit, self[121] or 0)
|
|
657
747
|
end
|
|
658
|
-
if self[
|
|
748
|
+
if self[122] ~= nil then
|
|
749
|
+
(self[102] or unit):healTarget(unit, self[121] or 0)
|
|
750
|
+
end
|
|
751
|
+
if self[146] then
|
|
659
752
|
unit:explode()
|
|
660
|
-
elseif self[
|
|
753
|
+
elseif self[145] then
|
|
661
754
|
unit:kill()
|
|
662
755
|
end
|
|
663
756
|
end
|
|
664
757
|
function Buff.prototype.onDeath(self, source)
|
|
665
758
|
local unit = self.unit
|
|
666
|
-
if self[
|
|
759
|
+
if self[123] ~= nil then
|
|
667
760
|
damageArea(
|
|
668
761
|
self[102] or unit,
|
|
669
|
-
self[
|
|
762
|
+
self[123],
|
|
670
763
|
unit.x,
|
|
671
764
|
unit.y,
|
|
765
|
+
self[125] or 0,
|
|
672
766
|
self[124] or 0,
|
|
673
|
-
self[
|
|
767
|
+
self[127] or 0,
|
|
674
768
|
self[126] or 0,
|
|
675
|
-
self[
|
|
676
|
-
self[128] or 0
|
|
677
|
-
self[127] or 0
|
|
769
|
+
self[129] or 0,
|
|
770
|
+
self[128] or 0
|
|
678
771
|
)
|
|
679
772
|
end
|
|
680
773
|
end
|
|
681
774
|
function Buff.prototype.onDamageDealt(self, target, event)
|
|
682
775
|
if event.isAttack then
|
|
683
|
-
if self[
|
|
684
|
-
local durationIncrease = self[
|
|
685
|
-
local maximumDuration = self[
|
|
776
|
+
if self[108] ~= nil then
|
|
777
|
+
local durationIncrease = self[108]
|
|
778
|
+
local maximumDuration = self[109] or 0
|
|
686
779
|
if maximumDuration > 0 then
|
|
687
780
|
durationIncrease = min(
|
|
688
781
|
durationIncrease,
|
|
@@ -690,31 +783,43 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
690
783
|
)
|
|
691
784
|
end
|
|
692
785
|
local remainingDuration = self.remainingDuration + durationIncrease
|
|
693
|
-
local maximumRemainingDuration = self[
|
|
786
|
+
local maximumRemainingDuration = self[110] or 0
|
|
694
787
|
if maximumRemainingDuration > 0 then
|
|
695
788
|
remainingDuration = min(remainingDuration, maximumRemainingDuration)
|
|
696
789
|
end
|
|
697
790
|
self.remainingDuration = remainingDuration
|
|
698
791
|
end
|
|
699
|
-
local autoAttackCount = (self[
|
|
700
|
-
self[
|
|
701
|
-
if autoAttackCount == self[
|
|
792
|
+
local autoAttackCount = (self[130] or 0) + 1
|
|
793
|
+
self[130] = autoAttackCount
|
|
794
|
+
if autoAttackCount == self[131] then
|
|
702
795
|
self:destroy()
|
|
703
796
|
end
|
|
704
797
|
end
|
|
705
798
|
if event.originalAmount ~= 0 then
|
|
706
|
-
local damageDealtEventCount = (self[
|
|
707
|
-
self[
|
|
708
|
-
if damageDealtEventCount == self[
|
|
799
|
+
local damageDealtEventCount = (self[132] or 0) + 1
|
|
800
|
+
self[132] = damageDealtEventCount
|
|
801
|
+
if damageDealtEventCount == self[133] then
|
|
709
802
|
self:destroy()
|
|
710
803
|
end
|
|
711
804
|
end
|
|
712
805
|
end
|
|
713
806
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
714
807
|
if event.originalAmount ~= 0 then
|
|
715
|
-
local
|
|
716
|
-
|
|
717
|
-
|
|
808
|
+
local absorbedDamage = min(event.amount * (self[136] or 1), (self[137] or 0) - (self[138] or 0))
|
|
809
|
+
if absorbedDamage > 0 then
|
|
810
|
+
event.amount = event.amount - absorbedDamage
|
|
811
|
+
self[138] = (self[138] or 0) + absorbedDamage
|
|
812
|
+
local ____self__139_48 = self[139]
|
|
813
|
+
if ____self__139_48 == nil then
|
|
814
|
+
____self__139_48 = true
|
|
815
|
+
end
|
|
816
|
+
if ____self__139_48 and self[138] >= (self[137] or 0) then
|
|
817
|
+
self:destroy()
|
|
818
|
+
end
|
|
819
|
+
end
|
|
820
|
+
local damageReceivedEventCount = (self[134] or 0) + 1
|
|
821
|
+
self[134] = damageReceivedEventCount
|
|
822
|
+
if damageReceivedEventCount == self[135] then
|
|
718
823
|
self:destroy()
|
|
719
824
|
end
|
|
720
825
|
end
|
|
@@ -741,13 +846,13 @@ __TS__SetDescriptor(
|
|
|
741
846
|
"remainingDamageOverDuration",
|
|
742
847
|
{
|
|
743
848
|
get = function(self)
|
|
744
|
-
return self[
|
|
849
|
+
return self[114] or 0
|
|
745
850
|
end,
|
|
746
851
|
set = function(self, remainingDamageOverDuration)
|
|
747
|
-
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[
|
|
748
|
-
self[
|
|
749
|
-
local damageOverDuration = (self[
|
|
750
|
-
self[
|
|
852
|
+
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[114] or 0)
|
|
853
|
+
self[114] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
854
|
+
local damageOverDuration = (self[111] or 0) + remainingDamageOverDurationDelta
|
|
855
|
+
self[111] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
751
856
|
end
|
|
752
857
|
},
|
|
753
858
|
true
|
|
@@ -757,13 +862,13 @@ __TS__SetDescriptor(
|
|
|
757
862
|
"damageOverDuration",
|
|
758
863
|
{
|
|
759
864
|
get = function(self)
|
|
760
|
-
return self[
|
|
865
|
+
return self[111] or 0
|
|
761
866
|
end,
|
|
762
867
|
set = function(self, damageOverDuration)
|
|
763
|
-
local damageOverDurationDelta = damageOverDuration - (self[
|
|
764
|
-
self[
|
|
765
|
-
local remainingDamageOverDuration = (self[
|
|
766
|
-
self[
|
|
868
|
+
local damageOverDurationDelta = damageOverDuration - (self[111] or 0)
|
|
869
|
+
self[111] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
870
|
+
local remainingDamageOverDuration = (self[114] or 0) + damageOverDurationDelta
|
|
871
|
+
self[114] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
767
872
|
end
|
|
768
873
|
},
|
|
769
874
|
true
|
|
@@ -773,10 +878,10 @@ __TS__SetDescriptor(
|
|
|
773
878
|
"damagePerInterval",
|
|
774
879
|
{
|
|
775
880
|
get = function(self)
|
|
776
|
-
return self[
|
|
881
|
+
return self[112] or 0
|
|
777
882
|
end,
|
|
778
883
|
set = function(self, damagePerInterval)
|
|
779
|
-
self[
|
|
884
|
+
self[112] = damagePerInterval ~= 0 and damagePerInterval or nil
|
|
780
885
|
end
|
|
781
886
|
},
|
|
782
887
|
true
|
|
@@ -786,25 +891,25 @@ __TS__SetDescriptor(
|
|
|
786
891
|
"damageInterval",
|
|
787
892
|
{
|
|
788
893
|
get = function(self)
|
|
789
|
-
return self[
|
|
894
|
+
return self[113] or 0
|
|
790
895
|
end,
|
|
791
896
|
set = function(self, damageInterval)
|
|
792
897
|
if damageInterval <= 0 then
|
|
793
|
-
self[
|
|
794
|
-
local timer = self[
|
|
898
|
+
self[113] = damageInterval ~= 0 and damageInterval or nil
|
|
899
|
+
local timer = self[115]
|
|
795
900
|
if timer ~= nil then
|
|
796
901
|
timer:destroy()
|
|
797
|
-
self[
|
|
902
|
+
self[115] = nil
|
|
798
903
|
end
|
|
799
904
|
return
|
|
800
905
|
end
|
|
801
|
-
self[
|
|
802
|
-
local
|
|
803
|
-
local elapsed =
|
|
804
|
-
local timer = self[
|
|
906
|
+
self[113] = damageInterval
|
|
907
|
+
local ____opt_49 = self._timer
|
|
908
|
+
local elapsed = ____opt_49 and ____opt_49.elapsed or 0
|
|
909
|
+
local timer = self[115]
|
|
805
910
|
if timer == nil then
|
|
806
911
|
timer = Timer:create()
|
|
807
|
-
self[
|
|
912
|
+
self[115] = timer
|
|
808
913
|
end
|
|
809
914
|
local initialDelay = damageInterval - (elapsed >= damageInterval and math.fmod(elapsed, damageInterval) or elapsed)
|
|
810
915
|
if initialDelay == damageInterval then
|
|
@@ -821,13 +926,13 @@ __TS__SetDescriptor(
|
|
|
821
926
|
"remainingHealingOverDuration",
|
|
822
927
|
{
|
|
823
928
|
get = function(self)
|
|
824
|
-
return self[
|
|
929
|
+
return self[119] or 0
|
|
825
930
|
end,
|
|
826
931
|
set = function(self, remainingHealingOverDuration)
|
|
827
|
-
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[
|
|
828
|
-
self[
|
|
829
|
-
local healingOverDuration = (self[
|
|
830
|
-
self[
|
|
932
|
+
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[119] or 0)
|
|
933
|
+
self[114] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
934
|
+
local healingOverDuration = (self[116] or 0) + remainingHealingOverDurationDelta
|
|
935
|
+
self[116] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
831
936
|
end
|
|
832
937
|
},
|
|
833
938
|
true
|
|
@@ -837,13 +942,13 @@ __TS__SetDescriptor(
|
|
|
837
942
|
"healingOverDuration",
|
|
838
943
|
{
|
|
839
944
|
get = function(self)
|
|
840
|
-
return self[
|
|
945
|
+
return self[116] or 0
|
|
841
946
|
end,
|
|
842
947
|
set = function(self, healingOverDuration)
|
|
843
|
-
local healingOverDurationDelta = healingOverDuration - (self[
|
|
844
|
-
self[
|
|
845
|
-
local remainingHealingOverDuration = (self[
|
|
846
|
-
self[
|
|
948
|
+
local healingOverDurationDelta = healingOverDuration - (self[116] or 0)
|
|
949
|
+
self[116] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
950
|
+
local remainingHealingOverDuration = (self[119] or 0) + healingOverDurationDelta
|
|
951
|
+
self[119] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
847
952
|
end
|
|
848
953
|
},
|
|
849
954
|
true
|
|
@@ -853,10 +958,10 @@ __TS__SetDescriptor(
|
|
|
853
958
|
"healingPerInterval",
|
|
854
959
|
{
|
|
855
960
|
get = function(self)
|
|
856
|
-
return self[
|
|
961
|
+
return self[117] or 0
|
|
857
962
|
end,
|
|
858
963
|
set = function(self, healingPerInterval)
|
|
859
|
-
self[
|
|
964
|
+
self[117] = healingPerInterval ~= 0 and healingPerInterval or nil
|
|
860
965
|
end
|
|
861
966
|
},
|
|
862
967
|
true
|
|
@@ -866,25 +971,25 @@ __TS__SetDescriptor(
|
|
|
866
971
|
"healingInterval",
|
|
867
972
|
{
|
|
868
973
|
get = function(self)
|
|
869
|
-
return self[
|
|
974
|
+
return self[118] or 0
|
|
870
975
|
end,
|
|
871
976
|
set = function(self, healingInterval)
|
|
872
977
|
if healingInterval <= 0 then
|
|
873
|
-
self[
|
|
874
|
-
local timer = self[
|
|
978
|
+
self[118] = healingInterval ~= 0 and healingInterval or nil
|
|
979
|
+
local timer = self[120]
|
|
875
980
|
if timer ~= nil then
|
|
876
981
|
timer:destroy()
|
|
877
|
-
self[
|
|
982
|
+
self[120] = nil
|
|
878
983
|
end
|
|
879
984
|
return
|
|
880
985
|
end
|
|
881
|
-
self[
|
|
882
|
-
local
|
|
883
|
-
local elapsed =
|
|
884
|
-
local timer = self[
|
|
986
|
+
self[118] = healingInterval
|
|
987
|
+
local ____opt_51 = self._timer
|
|
988
|
+
local elapsed = ____opt_51 and ____opt_51.elapsed or 0
|
|
989
|
+
local timer = self[120]
|
|
885
990
|
if timer == nil then
|
|
886
991
|
timer = Timer:create()
|
|
887
|
-
self[
|
|
992
|
+
self[120] = timer
|
|
888
993
|
end
|
|
889
994
|
local initialDelay = healingInterval - (elapsed >= healingInterval and math.fmod(elapsed, healingInterval) or elapsed)
|
|
890
995
|
if initialDelay == healingInterval then
|
|
@@ -901,10 +1006,10 @@ __TS__SetDescriptor(
|
|
|
901
1006
|
"damageOnExpiration",
|
|
902
1007
|
{
|
|
903
1008
|
get = function(self)
|
|
904
|
-
return self[
|
|
1009
|
+
return self[121] or 0
|
|
905
1010
|
end,
|
|
906
1011
|
set = function(self, damageOnExpiration)
|
|
907
|
-
self[
|
|
1012
|
+
self[121] = damageOnExpiration ~= 0 and damageOnExpiration or nil
|
|
908
1013
|
end
|
|
909
1014
|
},
|
|
910
1015
|
true
|
|
@@ -914,10 +1019,10 @@ __TS__SetDescriptor(
|
|
|
914
1019
|
"healingOnExpiration",
|
|
915
1020
|
{
|
|
916
1021
|
get = function(self)
|
|
917
|
-
return self[
|
|
1022
|
+
return self[122] or 0
|
|
918
1023
|
end,
|
|
919
1024
|
set = function(self, healingOnExpiration)
|
|
920
|
-
self[
|
|
1025
|
+
self[122] = healingOnExpiration ~= 0 and healingOnExpiration or nil
|
|
921
1026
|
end
|
|
922
1027
|
},
|
|
923
1028
|
true
|
|
@@ -948,6 +1053,19 @@ __TS__SetDescriptor(
|
|
|
948
1053
|
},
|
|
949
1054
|
true
|
|
950
1055
|
)
|
|
1056
|
+
__TS__SetDescriptor(
|
|
1057
|
+
Buff.prototype,
|
|
1058
|
+
"returnedMeleeDamageFactor",
|
|
1059
|
+
{
|
|
1060
|
+
get = function(self)
|
|
1061
|
+
return self:getUnitBonus(UnitBonusType.RETURNED_MELEE_DAMAGE_FACTOR)
|
|
1062
|
+
end,
|
|
1063
|
+
set = function(self, returnedMeleeDamageFactor)
|
|
1064
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.RETURNED_MELEE_DAMAGE_FACTOR, returnedMeleeDamageFactor)
|
|
1065
|
+
end
|
|
1066
|
+
},
|
|
1067
|
+
true
|
|
1068
|
+
)
|
|
951
1069
|
__TS__SetDescriptor(
|
|
952
1070
|
Buff.prototype,
|
|
953
1071
|
"armorIncrease",
|
|
@@ -961,30 +1079,79 @@ __TS__SetDescriptor(
|
|
|
961
1079
|
},
|
|
962
1080
|
true
|
|
963
1081
|
)
|
|
1082
|
+
__TS__SetDescriptor(
|
|
1083
|
+
Buff.prototype,
|
|
1084
|
+
"maxHealthIncrease",
|
|
1085
|
+
{
|
|
1086
|
+
get = function(self)
|
|
1087
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1088
|
+
end,
|
|
1089
|
+
set = function(self, maxHealthIncrease)
|
|
1090
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1091
|
+
end
|
|
1092
|
+
},
|
|
1093
|
+
true
|
|
1094
|
+
)
|
|
1095
|
+
__TS__SetDescriptor(
|
|
1096
|
+
Buff.prototype,
|
|
1097
|
+
"maxManaIncrease",
|
|
1098
|
+
{
|
|
1099
|
+
get = function(self)
|
|
1100
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1101
|
+
end,
|
|
1102
|
+
set = function(self, maxManaIncrease)
|
|
1103
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1104
|
+
end
|
|
1105
|
+
},
|
|
1106
|
+
true
|
|
1107
|
+
)
|
|
1108
|
+
__TS__SetDescriptor(
|
|
1109
|
+
Buff.prototype,
|
|
1110
|
+
"turnsIntoGhost",
|
|
1111
|
+
{
|
|
1112
|
+
get = function(self)
|
|
1113
|
+
local ____self__140_53 = self[140]
|
|
1114
|
+
if ____self__140_53 == nil then
|
|
1115
|
+
____self__140_53 = false
|
|
1116
|
+
end
|
|
1117
|
+
return ____self__140_53
|
|
1118
|
+
end,
|
|
1119
|
+
set = function(self, turnsIntoGhost)
|
|
1120
|
+
if not turnsIntoGhost and self[140] then
|
|
1121
|
+
self.object:decrementGhostCounter()
|
|
1122
|
+
self[140] = nil
|
|
1123
|
+
elseif turnsIntoGhost and not self[140] then
|
|
1124
|
+
self.object:incrementGhostCounter()
|
|
1125
|
+
self[140] = true
|
|
1126
|
+
end
|
|
1127
|
+
end
|
|
1128
|
+
},
|
|
1129
|
+
true
|
|
1130
|
+
)
|
|
964
1131
|
__TS__SetDescriptor(
|
|
965
1132
|
Buff.prototype,
|
|
966
1133
|
"stuns",
|
|
967
1134
|
{
|
|
968
1135
|
get = function(self)
|
|
969
|
-
local
|
|
970
|
-
if
|
|
971
|
-
|
|
1136
|
+
local ____self__141_54 = self[141]
|
|
1137
|
+
if ____self__141_54 == nil then
|
|
1138
|
+
____self__141_54 = false
|
|
972
1139
|
end
|
|
973
|
-
return
|
|
1140
|
+
return ____self__141_54
|
|
974
1141
|
end,
|
|
975
1142
|
set = function(self, stuns)
|
|
976
|
-
if not stuns and self[
|
|
977
|
-
if self[
|
|
978
|
-
self.object:
|
|
1143
|
+
if not stuns and self[141] then
|
|
1144
|
+
if self[142] then
|
|
1145
|
+
self.object:decrementForceStunCounter()
|
|
979
1146
|
end
|
|
980
1147
|
self.object:decrementStunCounter()
|
|
981
|
-
self[
|
|
982
|
-
elseif stuns and not self[
|
|
983
|
-
if self[
|
|
984
|
-
self.object:
|
|
1148
|
+
self[141] = nil
|
|
1149
|
+
elseif stuns and not self[141] then
|
|
1150
|
+
if self[142] then
|
|
1151
|
+
self.object:incrementForceStunCounter()
|
|
985
1152
|
end
|
|
986
1153
|
self.object:incrementStunCounter()
|
|
987
|
-
self[
|
|
1154
|
+
self[141] = true
|
|
988
1155
|
end
|
|
989
1156
|
end
|
|
990
1157
|
},
|
|
@@ -995,23 +1162,23 @@ __TS__SetDescriptor(
|
|
|
995
1162
|
"ignoresStunImmunity",
|
|
996
1163
|
{
|
|
997
1164
|
get = function(self)
|
|
998
|
-
local
|
|
999
|
-
if
|
|
1000
|
-
|
|
1165
|
+
local ____self__142_55 = self[142]
|
|
1166
|
+
if ____self__142_55 == nil then
|
|
1167
|
+
____self__142_55 = false
|
|
1001
1168
|
end
|
|
1002
|
-
return
|
|
1169
|
+
return ____self__142_55
|
|
1003
1170
|
end,
|
|
1004
1171
|
set = function(self, ignoresStunImmunity)
|
|
1005
|
-
if not ignoresStunImmunity and self[
|
|
1006
|
-
if self[
|
|
1007
|
-
self.object:
|
|
1172
|
+
if not ignoresStunImmunity and self[142] then
|
|
1173
|
+
if self[141] then
|
|
1174
|
+
self.object:decrementForceStunCounter()
|
|
1008
1175
|
end
|
|
1009
|
-
self[
|
|
1010
|
-
elseif ignoresStunImmunity and not self[
|
|
1011
|
-
if self[
|
|
1012
|
-
self.object:
|
|
1176
|
+
self[142] = nil
|
|
1177
|
+
elseif ignoresStunImmunity and not self[142] then
|
|
1178
|
+
if self[141] then
|
|
1179
|
+
self.object:incrementForceStunCounter()
|
|
1013
1180
|
end
|
|
1014
|
-
self[
|
|
1181
|
+
self[142] = true
|
|
1015
1182
|
end
|
|
1016
1183
|
end
|
|
1017
1184
|
},
|
|
@@ -1022,19 +1189,19 @@ __TS__SetDescriptor(
|
|
|
1022
1189
|
"disablesAutoAttack",
|
|
1023
1190
|
{
|
|
1024
1191
|
get = function(self)
|
|
1025
|
-
local
|
|
1026
|
-
if
|
|
1027
|
-
|
|
1192
|
+
local ____self__143_56 = self[143]
|
|
1193
|
+
if ____self__143_56 == nil then
|
|
1194
|
+
____self__143_56 = false
|
|
1028
1195
|
end
|
|
1029
|
-
return
|
|
1196
|
+
return ____self__143_56
|
|
1030
1197
|
end,
|
|
1031
1198
|
set = function(self, disablesAutoAttack)
|
|
1032
|
-
if not disablesAutoAttack and self[
|
|
1199
|
+
if not disablesAutoAttack and self[143] then
|
|
1033
1200
|
self.object:decrementDisableAutoAttackCounter()
|
|
1034
|
-
self[
|
|
1035
|
-
elseif disablesAutoAttack and not self[
|
|
1201
|
+
self[143] = nil
|
|
1202
|
+
elseif disablesAutoAttack and not self[143] then
|
|
1036
1203
|
self.object:incrementDisableAutoAttackCounter()
|
|
1037
|
-
self[
|
|
1204
|
+
self[143] = true
|
|
1038
1205
|
end
|
|
1039
1206
|
end
|
|
1040
1207
|
},
|
|
@@ -1045,19 +1212,19 @@ __TS__SetDescriptor(
|
|
|
1045
1212
|
"providesInvulnerability",
|
|
1046
1213
|
{
|
|
1047
1214
|
get = function(self)
|
|
1048
|
-
local
|
|
1049
|
-
if
|
|
1050
|
-
|
|
1215
|
+
local ____self__144_57 = self[144]
|
|
1216
|
+
if ____self__144_57 == nil then
|
|
1217
|
+
____self__144_57 = false
|
|
1051
1218
|
end
|
|
1052
|
-
return
|
|
1219
|
+
return ____self__144_57
|
|
1053
1220
|
end,
|
|
1054
1221
|
set = function(self, providesInvulnerability)
|
|
1055
|
-
if not providesInvulnerability and self[
|
|
1222
|
+
if not providesInvulnerability and self[144] then
|
|
1056
1223
|
self.object:decrementInvulnerabilityCounter()
|
|
1057
|
-
self[
|
|
1058
|
-
elseif providesInvulnerability and not self[
|
|
1224
|
+
self[144] = nil
|
|
1225
|
+
elseif providesInvulnerability and not self[144] then
|
|
1059
1226
|
self.object:incrementInvulnerabilityCounter()
|
|
1060
|
-
self[
|
|
1227
|
+
self[144] = true
|
|
1061
1228
|
end
|
|
1062
1229
|
end
|
|
1063
1230
|
},
|
|
@@ -1068,17 +1235,17 @@ __TS__SetDescriptor(
|
|
|
1068
1235
|
"killsOnExpiration",
|
|
1069
1236
|
{
|
|
1070
1237
|
get = function(self)
|
|
1071
|
-
local
|
|
1072
|
-
if
|
|
1073
|
-
|
|
1238
|
+
local ____self__145_58 = self[145]
|
|
1239
|
+
if ____self__145_58 == nil then
|
|
1240
|
+
____self__145_58 = false
|
|
1074
1241
|
end
|
|
1075
|
-
return
|
|
1242
|
+
return ____self__145_58
|
|
1076
1243
|
end,
|
|
1077
1244
|
set = function(self, killsOnExpiration)
|
|
1078
|
-
if not killsOnExpiration and self[
|
|
1079
|
-
self[
|
|
1080
|
-
elseif killsOnExpiration and not self[
|
|
1081
|
-
self[
|
|
1245
|
+
if not killsOnExpiration and self[145] then
|
|
1246
|
+
self[145] = nil
|
|
1247
|
+
elseif killsOnExpiration and not self[145] then
|
|
1248
|
+
self[145] = true
|
|
1082
1249
|
end
|
|
1083
1250
|
end
|
|
1084
1251
|
},
|
|
@@ -1089,17 +1256,40 @@ __TS__SetDescriptor(
|
|
|
1089
1256
|
"explodesOnExpiration",
|
|
1090
1257
|
{
|
|
1091
1258
|
get = function(self)
|
|
1092
|
-
local
|
|
1093
|
-
if
|
|
1094
|
-
|
|
1259
|
+
local ____self__146_59 = self[146]
|
|
1260
|
+
if ____self__146_59 == nil then
|
|
1261
|
+
____self__146_59 = false
|
|
1095
1262
|
end
|
|
1096
|
-
return
|
|
1263
|
+
return ____self__146_59
|
|
1097
1264
|
end,
|
|
1098
1265
|
set = function(self, killsOnExpiration)
|
|
1099
|
-
if not killsOnExpiration and self[
|
|
1100
|
-
self[
|
|
1101
|
-
elseif killsOnExpiration and not self[
|
|
1102
|
-
self[
|
|
1266
|
+
if not killsOnExpiration and self[146] then
|
|
1267
|
+
self[146] = nil
|
|
1268
|
+
elseif killsOnExpiration and not self[146] then
|
|
1269
|
+
self[146] = true
|
|
1270
|
+
end
|
|
1271
|
+
end
|
|
1272
|
+
},
|
|
1273
|
+
true
|
|
1274
|
+
)
|
|
1275
|
+
__TS__SetDescriptor(
|
|
1276
|
+
Buff.prototype,
|
|
1277
|
+
"sharesVisionWithSource",
|
|
1278
|
+
{
|
|
1279
|
+
get = function(self)
|
|
1280
|
+
local ____self__150_60 = self[150]
|
|
1281
|
+
if ____self__150_60 == nil then
|
|
1282
|
+
____self__150_60 = false
|
|
1283
|
+
end
|
|
1284
|
+
return ____self__150_60
|
|
1285
|
+
end,
|
|
1286
|
+
set = function(self, sharesVisionWithSource)
|
|
1287
|
+
if not sharesVisionWithSource and self[150] then
|
|
1288
|
+
unshareVisionWithSource(self)
|
|
1289
|
+
self[150] = nil
|
|
1290
|
+
elseif sharesVisionWithSource and not self[150] then
|
|
1291
|
+
self[150] = true
|
|
1292
|
+
shareVisionWithSource(self)
|
|
1103
1293
|
end
|
|
1104
1294
|
end
|
|
1105
1295
|
},
|
|
@@ -1110,13 +1300,13 @@ __TS__SetDescriptor(
|
|
|
1110
1300
|
"maximumDamageDealtEventCount",
|
|
1111
1301
|
{
|
|
1112
1302
|
get = function(self)
|
|
1113
|
-
return self[
|
|
1303
|
+
return self[133] or 0
|
|
1114
1304
|
end,
|
|
1115
1305
|
set = function(self, maximumDamageDealtEventCount)
|
|
1116
1306
|
if maximumDamageDealtEventCount == 0 then
|
|
1117
|
-
self[
|
|
1307
|
+
self[133] = nil
|
|
1118
1308
|
else
|
|
1119
|
-
self[
|
|
1309
|
+
self[133] = maximumDamageDealtEventCount
|
|
1120
1310
|
end
|
|
1121
1311
|
end
|
|
1122
1312
|
},
|
|
@@ -1127,13 +1317,13 @@ __TS__SetDescriptor(
|
|
|
1127
1317
|
"maximumDamageReceivedEventCount",
|
|
1128
1318
|
{
|
|
1129
1319
|
get = function(self)
|
|
1130
|
-
return self[
|
|
1320
|
+
return self[135] or 0
|
|
1131
1321
|
end,
|
|
1132
1322
|
set = function(self, maximumDamageReceivedEventCount)
|
|
1133
1323
|
if maximumDamageReceivedEventCount == 0 then
|
|
1134
|
-
self[
|
|
1324
|
+
self[135] = nil
|
|
1135
1325
|
else
|
|
1136
|
-
self[
|
|
1326
|
+
self[135] = maximumDamageReceivedEventCount
|
|
1137
1327
|
end
|
|
1138
1328
|
end
|
|
1139
1329
|
},
|
|
@@ -1144,13 +1334,13 @@ __TS__SetDescriptor(
|
|
|
1144
1334
|
"maximumAutoAttackCount",
|
|
1145
1335
|
{
|
|
1146
1336
|
get = function(self)
|
|
1147
|
-
return self[
|
|
1337
|
+
return self[131] or 0
|
|
1148
1338
|
end,
|
|
1149
1339
|
set = function(self, maximumAutoAttackCount)
|
|
1150
1340
|
if maximumAutoAttackCount == 0 then
|
|
1151
|
-
self[
|
|
1341
|
+
self[131] = nil
|
|
1152
1342
|
else
|
|
1153
|
-
self[
|
|
1343
|
+
self[131] = maximumAutoAttackCount
|
|
1154
1344
|
end
|
|
1155
1345
|
end
|
|
1156
1346
|
},
|
|
@@ -1161,10 +1351,10 @@ __TS__SetDescriptor(
|
|
|
1161
1351
|
"durationIncreaseOnAutoAttack",
|
|
1162
1352
|
{
|
|
1163
1353
|
get = function(self)
|
|
1164
|
-
return self[
|
|
1354
|
+
return self[108] or 0
|
|
1165
1355
|
end,
|
|
1166
1356
|
set = function(self, durationIncreaseOnAutoAttack)
|
|
1167
|
-
self[
|
|
1357
|
+
self[108] = durationIncreaseOnAutoAttack
|
|
1168
1358
|
end
|
|
1169
1359
|
},
|
|
1170
1360
|
true
|
|
@@ -1208,12 +1398,39 @@ __TS__SetDescriptor(
|
|
|
1208
1398
|
},
|
|
1209
1399
|
true
|
|
1210
1400
|
)
|
|
1401
|
+
__TS__SetDescriptor(
|
|
1402
|
+
Buff.prototype,
|
|
1403
|
+
"manaRegenerationRateIncreaseFactor",
|
|
1404
|
+
{
|
|
1405
|
+
get = function(self)
|
|
1406
|
+
return self:getUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR)
|
|
1407
|
+
end,
|
|
1408
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
1409
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA_REGENERATION_RATE_FACTOR, manaRegenerationRateIncreaseFactor)
|
|
1410
|
+
end
|
|
1411
|
+
},
|
|
1412
|
+
true
|
|
1413
|
+
)
|
|
1211
1414
|
__TS__SetDescriptor(
|
|
1212
1415
|
Buff.prototype,
|
|
1213
1416
|
"duration",
|
|
1214
|
-
{
|
|
1215
|
-
|
|
1216
|
-
|
|
1417
|
+
{
|
|
1418
|
+
get = function(self)
|
|
1419
|
+
return self[103]
|
|
1420
|
+
end,
|
|
1421
|
+
set = function(self, duration)
|
|
1422
|
+
if duration <= 0 then
|
|
1423
|
+
local timer = self._timer
|
|
1424
|
+
if timer ~= nil then
|
|
1425
|
+
timer:destroy()
|
|
1426
|
+
self._timer = nil
|
|
1427
|
+
end
|
|
1428
|
+
self[103] = 0
|
|
1429
|
+
else
|
|
1430
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
},
|
|
1217
1434
|
true
|
|
1218
1435
|
)
|
|
1219
1436
|
__TS__SetDescriptor(
|
|
@@ -1221,13 +1438,13 @@ __TS__SetDescriptor(
|
|
|
1221
1438
|
"remainingDuration",
|
|
1222
1439
|
{
|
|
1223
1440
|
get = function(self)
|
|
1224
|
-
local
|
|
1225
|
-
return
|
|
1441
|
+
local ____opt_61 = self._timer
|
|
1442
|
+
return ____opt_61 and ____opt_61.remaining or 0
|
|
1226
1443
|
end,
|
|
1227
1444
|
set = function(self, remainingDuration)
|
|
1228
|
-
local
|
|
1229
|
-
local
|
|
1230
|
-
local remainingDurationDelta =
|
|
1445
|
+
local ____remainingDuration_65 = remainingDuration
|
|
1446
|
+
local ____opt_63 = self._timer
|
|
1447
|
+
local remainingDurationDelta = ____remainingDuration_65 - (____opt_63 and ____opt_63.remaining or 0)
|
|
1231
1448
|
if remainingDurationDelta ~= 0 then
|
|
1232
1449
|
self[103] = self[103] + remainingDurationDelta
|
|
1233
1450
|
if remainingDuration <= 0 then
|
|
@@ -1242,7 +1459,7 @@ __TS__SetDescriptor(
|
|
|
1242
1459
|
remainingDuration,
|
|
1243
1460
|
self._spellStealPriority,
|
|
1244
1461
|
self._learnLevelMinimum,
|
|
1245
|
-
self[
|
|
1462
|
+
self[147]
|
|
1246
1463
|
) then
|
|
1247
1464
|
local timer = self._timer
|
|
1248
1465
|
if timer == nil then
|
|
@@ -1257,37 +1474,134 @@ __TS__SetDescriptor(
|
|
|
1257
1474
|
},
|
|
1258
1475
|
true
|
|
1259
1476
|
)
|
|
1260
|
-
|
|
1477
|
+
__TS__SetDescriptor(
|
|
1478
|
+
Buff.prototype,
|
|
1479
|
+
"absorbedDamageFactor",
|
|
1480
|
+
{
|
|
1481
|
+
get = function(self)
|
|
1482
|
+
return self[136] or 1
|
|
1483
|
+
end,
|
|
1484
|
+
set = function(self, absorbedDamageFactor)
|
|
1485
|
+
if absorbedDamageFactor == 1 then
|
|
1486
|
+
self[136] = nil
|
|
1487
|
+
else
|
|
1488
|
+
self[136] = absorbedDamageFactor
|
|
1489
|
+
end
|
|
1490
|
+
end
|
|
1491
|
+
},
|
|
1492
|
+
true
|
|
1493
|
+
)
|
|
1494
|
+
__TS__SetDescriptor(
|
|
1495
|
+
Buff.prototype,
|
|
1496
|
+
"maximumDamageAbsorbed",
|
|
1497
|
+
{
|
|
1498
|
+
get = function(self)
|
|
1499
|
+
return self[137] or 0
|
|
1500
|
+
end,
|
|
1501
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1502
|
+
if maximumDamageAbsorbed == 0 then
|
|
1503
|
+
self[137] = nil
|
|
1504
|
+
else
|
|
1505
|
+
self[137] = maximumDamageAbsorbed
|
|
1506
|
+
end
|
|
1507
|
+
end
|
|
1508
|
+
},
|
|
1509
|
+
true
|
|
1510
|
+
)
|
|
1511
|
+
__TS__SetDescriptor(
|
|
1512
|
+
Buff.prototype,
|
|
1513
|
+
"damageAbsorbed",
|
|
1514
|
+
{get = function(self)
|
|
1515
|
+
return self[138] or 0
|
|
1516
|
+
end},
|
|
1517
|
+
true
|
|
1518
|
+
)
|
|
1519
|
+
__TS__SetDescriptor(
|
|
1520
|
+
Buff.prototype,
|
|
1521
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1522
|
+
{
|
|
1523
|
+
get = function(self)
|
|
1524
|
+
local ____self__139_66 = self[139]
|
|
1525
|
+
if ____self__139_66 == nil then
|
|
1526
|
+
____self__139_66 = true
|
|
1527
|
+
end
|
|
1528
|
+
return ____self__139_66
|
|
1529
|
+
end,
|
|
1530
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1531
|
+
local ____destroysOnMaximumDamageAbsorbed_67
|
|
1532
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1533
|
+
____destroysOnMaximumDamageAbsorbed_67 = nil
|
|
1534
|
+
else
|
|
1535
|
+
____destroysOnMaximumDamageAbsorbed_67 = false
|
|
1536
|
+
end
|
|
1537
|
+
self[139] = ____destroysOnMaximumDamageAbsorbed_67
|
|
1538
|
+
end
|
|
1539
|
+
},
|
|
1540
|
+
true
|
|
1541
|
+
)
|
|
1542
|
+
__TS__SetDescriptor(
|
|
1543
|
+
Buff.prototype,
|
|
1544
|
+
"abilityCooldownFactor",
|
|
1545
|
+
{
|
|
1546
|
+
get = function(self)
|
|
1547
|
+
return self[148] or 1
|
|
1548
|
+
end,
|
|
1549
|
+
set = function(self, abilityCooldownFactor)
|
|
1550
|
+
local previousAbilityCooldownModifier = self[149]
|
|
1551
|
+
if previousAbilityCooldownModifier then
|
|
1552
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1553
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1554
|
+
end
|
|
1555
|
+
end
|
|
1556
|
+
local function modifier(ability, level, cooldown)
|
|
1557
|
+
return cooldown * abilityCooldownFactor
|
|
1558
|
+
end
|
|
1559
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1560
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1561
|
+
end
|
|
1562
|
+
self[149] = modifier
|
|
1563
|
+
self[148] = abilityCooldownFactor
|
|
1564
|
+
end
|
|
1565
|
+
},
|
|
1566
|
+
true
|
|
1567
|
+
)
|
|
1568
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1569
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1261
1570
|
(function(self)
|
|
1262
|
-
local function destroyBuffIfNeeded(buff)
|
|
1263
|
-
|
|
1264
|
-
|
|
1571
|
+
local function destroyBuffIfNeeded(buff, isDispel, source)
|
|
1572
|
+
local currentHandle = getUnitAbility(buff[101].handle, buff.typeId)
|
|
1573
|
+
if currentHandle ~= buff.handle and buff[100] == 1 then
|
|
1574
|
+
if isDispel and currentHandle == nil and buff.unit.isAlive and buff.resistanceType == 1 and (buff._timer == nil or buff.remainingDuration > 0) then
|
|
1575
|
+
buff:dispel(source)
|
|
1576
|
+
else
|
|
1577
|
+
buff:destroy()
|
|
1578
|
+
end
|
|
1265
1579
|
end
|
|
1266
1580
|
end
|
|
1267
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1581
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1268
1582
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1269
1583
|
if buffByTypeId ~= nil then
|
|
1270
1584
|
local buff = buffByTypeId[buffTypeId]
|
|
1271
1585
|
if buff ~= nil then
|
|
1272
|
-
destroyBuffIfNeeded(buff)
|
|
1586
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1273
1587
|
end
|
|
1274
1588
|
end
|
|
1275
1589
|
end
|
|
1276
|
-
____exports.checkBuffs = function(unit)
|
|
1277
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1590
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1591
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1278
1592
|
end
|
|
1279
1593
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1280
1594
|
0,
|
|
1281
1595
|
function(caster)
|
|
1282
|
-
____exports.checkBuffs(caster)
|
|
1283
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1596
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1597
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1284
1598
|
end
|
|
1285
1599
|
)
|
|
1286
1600
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1287
1601
|
0,
|
|
1288
1602
|
function(caster, ability, target)
|
|
1289
|
-
____exports.checkBuffs(target)
|
|
1290
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1603
|
+
____exports.checkBuffs(target, true, caster)
|
|
1604
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1291
1605
|
end
|
|
1292
1606
|
)
|
|
1293
1607
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1298,18 +1612,53 @@ Buff.destroyEvent = buffDestroyEvent;
|
|
|
1298
1612
|
y,
|
|
1299
1613
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1300
1614
|
)
|
|
1301
|
-
forEach(units, ____exports.checkBuffs)
|
|
1302
|
-
Timer:run(
|
|
1615
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1616
|
+
Timer:run(
|
|
1617
|
+
forEach,
|
|
1618
|
+
units,
|
|
1619
|
+
____exports.checkBuffs,
|
|
1620
|
+
true,
|
|
1621
|
+
caster
|
|
1622
|
+
)
|
|
1623
|
+
end
|
|
1624
|
+
)
|
|
1625
|
+
Unit.abilityNoTargetChannelingStartEvent:addListener(
|
|
1626
|
+
0,
|
|
1627
|
+
function(caster, ability)
|
|
1628
|
+
local radius = ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1629
|
+
if radius > 0 then
|
|
1630
|
+
local units = Unit:getInCollisionRange(caster.x, caster.y, radius)
|
|
1631
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1632
|
+
Timer:run(
|
|
1633
|
+
forEach,
|
|
1634
|
+
units,
|
|
1635
|
+
____exports.checkBuffs,
|
|
1636
|
+
true,
|
|
1637
|
+
caster
|
|
1638
|
+
)
|
|
1639
|
+
end
|
|
1303
1640
|
end
|
|
1304
1641
|
)
|
|
1305
1642
|
Unit.onDamage:addListener(
|
|
1306
1643
|
0,
|
|
1307
1644
|
function(source, target)
|
|
1308
1645
|
if source ~= nil then
|
|
1309
|
-
____exports.checkBuffs
|
|
1646
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1310
1647
|
end
|
|
1311
|
-
____exports.checkBuffs
|
|
1648
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1649
|
+
end
|
|
1650
|
+
)
|
|
1651
|
+
Unit.deathEvent:addListener(
|
|
1652
|
+
-999999,
|
|
1653
|
+
function(unit)
|
|
1654
|
+
____exports.Buff:forAll(unit, destroyBuffOnDeath)
|
|
1312
1655
|
end
|
|
1313
1656
|
)
|
|
1657
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1658
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1659
|
+
end)
|
|
1660
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1661
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1662
|
+
end)
|
|
1314
1663
|
end)(Buff)
|
|
1315
1664
|
return ____exports
|