warscript 0.0.1-dev.0b2f1d6 → 0.0.1-dev.0d18530
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/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +24 -6
- package/core/types/effect.lua +169 -107
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +136 -58
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -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 +121 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- 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 +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
- package/engine/behaviour/ability/on-command-impact.lua +26 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -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 +30 -7
- package/engine/behaviour/ability.lua +162 -43
- 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 +127 -60
- package/engine/buff.lua +627 -312
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +27 -3
- package/engine/internal/ability.lua +174 -32
- package/engine/internal/item/ability.lua +162 -4
- 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 +34 -18
- package/engine/internal/item.lua +308 -102
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/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/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/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.d.ts +45 -1
- package/engine/internal/unit/ability.lua +142 -5
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +93 -0
- 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 +16 -0
- package/engine/internal/unit/bonus.lua +119 -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.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +14 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +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/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +73 -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 +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +44 -32
- package/engine/internal/unit.lua +425 -307
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/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-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/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/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.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
- 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/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/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/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/feral-spirit.lua +2 -2
- 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/phoenix-morph.lua +4 -4
- 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/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/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 +41 -20
- package/engine/object-data/entry/ability-type.lua +337 -44
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +39 -29
- 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 +20 -3
- package/engine/object-data/entry/item-type.lua +99 -2
- 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 +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +71 -6
- package/engine/object-data/entry/unit-type.lua +592 -93
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +21 -14
- package/engine/object-data/entry.lua +68 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +12 -6
- package/engine/object-field/ability.lua +10 -6
- 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 +362 -117
- 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/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +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 +36 -2
- package/engine/text-tag.lua +250 -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 +8 -0
- 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 +7 -0
- package/utility/arrays.lua +47 -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/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -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 -84
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.lua
CHANGED
|
@@ -16,6 +16,7 @@ local internalApplyBuff = ____applicable.internalApplyBuff
|
|
|
16
16
|
local removeBuff = ____applicable.removeBuff
|
|
17
17
|
local ____ability = require("engine.internal.ability")
|
|
18
18
|
local Ability = ____ability.Ability
|
|
19
|
+
local UnitAbility = ____ability.UnitAbility
|
|
19
20
|
local ____ability = require("engine.object-field.ability")
|
|
20
21
|
local AbilityBooleanField = ____ability.AbilityBooleanField
|
|
21
22
|
local AbilityNumberField = ____ability.AbilityNumberField
|
|
@@ -28,13 +29,11 @@ local ____math = require("math")
|
|
|
28
29
|
local max = ____math.max
|
|
29
30
|
local min = ____math.min
|
|
30
31
|
local ____bonus = require("engine.internal.unit.bonus")
|
|
31
|
-
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
32
|
-
local getUnitBonus = ____bonus.getUnitBonus
|
|
33
|
-
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
34
32
|
local UnitBonusType = ____bonus.UnitBonusType
|
|
35
33
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
34
|
local damageArea = ____area_2Ddamage.damageArea
|
|
37
35
|
local ____preconditions = require("utility.preconditions")
|
|
36
|
+
local check = ____preconditions.check
|
|
38
37
|
local checkNotNull = ____preconditions.checkNotNull
|
|
39
38
|
local ____effect = require("core.types.effect")
|
|
40
39
|
local Effect = ____effect.Effect
|
|
@@ -43,9 +42,22 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
43
42
|
local ____unit = require("engine.behaviour.unit")
|
|
44
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
45
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
46
46
|
local forEach = ____arrays.forEach
|
|
47
|
+
local ____event = require("event")
|
|
48
|
+
local Event = ____event.Event
|
|
47
49
|
local ____ability_2Dduration = require("engine.internal.mechanics.ability-duration")
|
|
48
50
|
local getAbilityDuration = ____ability_2Dduration.getAbilityDuration
|
|
51
|
+
local ____item = require("engine.internal.item")
|
|
52
|
+
local Item = ____item.Item
|
|
53
|
+
local ____destructable = require("core.types.destructable")
|
|
54
|
+
local Destructable = ____destructable.Destructable
|
|
55
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
56
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
57
|
+
local ____ability = require("engine.behaviour.ability")
|
|
58
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
59
|
+
local ____records = require("utility.records")
|
|
60
|
+
local sortedKeysUnnested = ____records.sortedKeysUnnested
|
|
49
61
|
local getUnitAbility = BlzGetUnitAbility
|
|
50
62
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
51
63
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -91,15 +103,20 @@ local buffParametersKeys = {
|
|
|
91
103
|
damageIncrease = true,
|
|
92
104
|
damageIncreaseFactor = true,
|
|
93
105
|
armorIncrease = true,
|
|
94
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
95
108
|
attackSpeedIncreaseFactor = true,
|
|
96
109
|
movementSpeedIncreaseFactor = true,
|
|
110
|
+
manaRegenerationRateIncreaseFactor = true,
|
|
111
|
+
evasionProbability = true,
|
|
112
|
+
missProbability = true,
|
|
97
113
|
damageFactor = true,
|
|
98
114
|
receivedDamageFactor = true,
|
|
99
115
|
receivedMagicDamageFactor = true,
|
|
100
116
|
durationIncreaseOnAutoAttack = true,
|
|
101
117
|
maximumDuration = true,
|
|
102
118
|
maximumRemainingDuration = true,
|
|
119
|
+
turnsIntoGhost = true,
|
|
103
120
|
stuns = true,
|
|
104
121
|
ignoresStunImmunity = true,
|
|
105
122
|
providesStunImmunity = true,
|
|
@@ -110,11 +127,15 @@ local buffParametersKeys = {
|
|
|
110
127
|
maximumAutoAttackCount = true,
|
|
111
128
|
maximumDamageDealtEventCount = true,
|
|
112
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
113
133
|
uniqueGroup = true,
|
|
114
134
|
damageOnExpiration = true,
|
|
115
135
|
healingOnExpiration = true,
|
|
116
136
|
killsOnExpiration = true,
|
|
117
|
-
explodesOnExpiration = true
|
|
137
|
+
explodesOnExpiration = true,
|
|
138
|
+
abilityCooldownFactor = true
|
|
118
139
|
}
|
|
119
140
|
local function resolveEnumValue(ability, level, value)
|
|
120
141
|
if value == nil or type(value) == "number" then
|
|
@@ -165,6 +186,8 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
165
186
|
end
|
|
166
187
|
end
|
|
167
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
190
|
+
"turnsIntoGhost",
|
|
168
191
|
"stuns",
|
|
169
192
|
"ignoresStunImmunity",
|
|
170
193
|
"disablesAutoAttack",
|
|
@@ -176,7 +199,11 @@ local buffNumberParameters = {
|
|
|
176
199
|
"durationIncreaseOnAutoAttack",
|
|
177
200
|
"attackSpeedIncreaseFactor",
|
|
178
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
203
|
+
"evasionProbability",
|
|
179
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
180
207
|
"damageFactor",
|
|
181
208
|
"receivedDamageFactor",
|
|
182
209
|
"maximumAutoAttackCount",
|
|
@@ -189,7 +216,10 @@ local buffNumberParameters = {
|
|
|
189
216
|
"healingPerInterval",
|
|
190
217
|
"healingOverDuration",
|
|
191
218
|
"damageOnExpiration",
|
|
192
|
-
"healingOnExpiration"
|
|
219
|
+
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
222
|
+
"abilityCooldownFactor"
|
|
193
223
|
}
|
|
194
224
|
local unsuccessfulApplicationMarker = {}
|
|
195
225
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -216,7 +246,7 @@ local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
|
216
246
|
return checkNotNull(firstNativeBuffTypeId)
|
|
217
247
|
end
|
|
218
248
|
local function destroyBuffIfItHasSameUniqueGroup(buff, uniqueGroup)
|
|
219
|
-
if buff[
|
|
249
|
+
if buff[104] == uniqueGroup then
|
|
220
250
|
buff:destroy()
|
|
221
251
|
end
|
|
222
252
|
end
|
|
@@ -224,17 +254,21 @@ local function destroyBuff(buff)
|
|
|
224
254
|
buff:destroy()
|
|
225
255
|
end
|
|
226
256
|
local function expireBuff(buff)
|
|
227
|
-
|
|
228
|
-
|
|
257
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
258
|
+
return
|
|
259
|
+
end
|
|
260
|
+
buff[100] = 2
|
|
261
|
+
local remainingDamageOverDuration = buff[113] or 0
|
|
262
|
+
local remainingHealingOverDuration = buff[113] or 0
|
|
229
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
230
264
|
buff:flashSpecialEffect()
|
|
231
265
|
if remainingDamageOverDuration ~= 0 then
|
|
232
|
-
(buff[
|
|
233
|
-
buff[
|
|
266
|
+
(buff[102] or buff[101]):damageTarget(buff[101], remainingDamageOverDuration)
|
|
267
|
+
buff[113] = nil
|
|
234
268
|
end
|
|
235
269
|
if remainingHealingOverDuration ~= 0 then
|
|
236
|
-
(buff[
|
|
237
|
-
buff[
|
|
270
|
+
(buff[102] or buff[101]):healTarget(buff[101], remainingHealingOverDuration)
|
|
271
|
+
buff[118] = nil
|
|
238
272
|
end
|
|
239
273
|
end
|
|
240
274
|
Timer:run(destroyBuff, buff)
|
|
@@ -242,56 +276,58 @@ local function expireBuff(buff)
|
|
|
242
276
|
end
|
|
243
277
|
local function buffDamageIntervalInitialTimerCallback(buff)
|
|
244
278
|
buffDamageIntervalTimerCallback(buff)
|
|
245
|
-
local timer = buff[
|
|
246
|
-
local damageInterval = buff[
|
|
279
|
+
local timer = buff[114]
|
|
280
|
+
local damageInterval = buff[112]
|
|
247
281
|
if timer ~= nil and damageInterval ~= nil and damageInterval > 0 then
|
|
248
282
|
timer:start(damageInterval, true, buffDamageIntervalTimerCallback, buff)
|
|
249
283
|
end
|
|
250
284
|
end
|
|
251
285
|
buffDamageIntervalTimerCallback = function(buff)
|
|
252
286
|
buff:flashSpecialEffect()
|
|
253
|
-
local source = buff[
|
|
254
|
-
local remainingDamageOverDuration = buff[
|
|
287
|
+
local source = buff[102] or buff[101]
|
|
288
|
+
local remainingDamageOverDuration = buff[113] or 0
|
|
255
289
|
if remainingDamageOverDuration ~= 0 then
|
|
256
|
-
local damageInterval = buff[
|
|
290
|
+
local damageInterval = buff[112] or 0
|
|
257
291
|
if damageInterval ~= 0 then
|
|
258
292
|
local damage = remainingDamageOverDuration / (1 + buff.remainingDuration / damageInterval)
|
|
259
|
-
source:damageTarget(buff[
|
|
260
|
-
buff[
|
|
293
|
+
source:damageTarget(buff[101], damage)
|
|
294
|
+
buff[113] = remainingDamageOverDuration - damage
|
|
261
295
|
end
|
|
262
296
|
end
|
|
263
|
-
local damagePerInterval = buff[
|
|
297
|
+
local damagePerInterval = buff[111] or 0
|
|
264
298
|
if remainingDamageOverDuration == 0 or damagePerInterval ~= 0 then
|
|
265
|
-
source:damageTarget(buff[
|
|
299
|
+
source:damageTarget(buff[101], damagePerInterval)
|
|
266
300
|
end
|
|
267
301
|
end
|
|
268
302
|
local function buffHealingIntervalInitialTimerCallback(buff)
|
|
269
303
|
buffHealingIntervalTimerCallback(buff)
|
|
270
|
-
local timer = buff[
|
|
271
|
-
local healingInterval = buff[
|
|
304
|
+
local timer = buff[119]
|
|
305
|
+
local healingInterval = buff[117]
|
|
272
306
|
if timer ~= nil and healingInterval ~= nil and healingInterval > 0 then
|
|
273
307
|
timer:start(healingInterval, true, buffHealingIntervalTimerCallback, buff)
|
|
274
308
|
end
|
|
275
309
|
end
|
|
276
310
|
buffHealingIntervalTimerCallback = function(buff)
|
|
277
|
-
if buff[
|
|
311
|
+
if buff[117] ~= buff[112] then
|
|
278
312
|
buff:flashSpecialEffect()
|
|
279
313
|
end
|
|
280
|
-
local source = buff[
|
|
281
|
-
local remainingHealingOverDuration = buff[
|
|
314
|
+
local source = buff[102] or buff[101]
|
|
315
|
+
local remainingHealingOverDuration = buff[118] or 0
|
|
282
316
|
if remainingHealingOverDuration ~= 0 then
|
|
283
|
-
local healingInterval = buff[
|
|
317
|
+
local healingInterval = buff[117] or 0
|
|
284
318
|
if healingInterval ~= 0 then
|
|
285
319
|
local healing = remainingHealingOverDuration / (1 + buff.remainingDuration / healingInterval)
|
|
286
|
-
source:healTarget(buff[
|
|
287
|
-
buff[
|
|
320
|
+
source:healTarget(buff[101], healing)
|
|
321
|
+
buff[118] = remainingHealingOverDuration - healing
|
|
288
322
|
end
|
|
289
323
|
end
|
|
290
|
-
local healingPerInterval = buff[
|
|
324
|
+
local healingPerInterval = buff[116] or 0
|
|
291
325
|
if remainingHealingOverDuration == 0 or healingPerInterval ~= 0 then
|
|
292
|
-
source:healTarget(buff[
|
|
326
|
+
source:healTarget(buff[101], healingPerInterval)
|
|
293
327
|
end
|
|
294
328
|
end
|
|
329
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
330
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
295
331
|
____exports.Buff = __TS__Class()
|
|
296
332
|
local Buff = ____exports.Buff
|
|
297
333
|
Buff.name = "Buff"
|
|
@@ -300,38 +336,44 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
300
336
|
UnitBehavior.prototype.____constructor(self, _unit)
|
|
301
337
|
self._unit = _unit
|
|
302
338
|
self.parameters = nil
|
|
303
|
-
self[100] =
|
|
339
|
+
self[100] = 0
|
|
340
|
+
self[101] = _unit
|
|
304
341
|
local typeId
|
|
305
342
|
local polarity
|
|
306
343
|
local resistanceType
|
|
307
344
|
local ability
|
|
345
|
+
local abilityBehavior
|
|
308
346
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
309
347
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
310
348
|
polarity = resistanceTypeOrPolarity
|
|
311
349
|
resistanceType = abilityOrParametersOrResistanceType
|
|
312
|
-
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
|
|
313
354
|
ability = parametersOrAbility
|
|
314
|
-
|
|
315
|
-
ability = nil
|
|
355
|
+
elseif parametersOrAbility ~= nil then
|
|
316
356
|
parameters = parametersOrAbility
|
|
317
357
|
end
|
|
318
358
|
else
|
|
319
359
|
typeId = typeIdOrTypeIds
|
|
320
360
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
321
361
|
resistanceType = resistanceTypeOrPolarity
|
|
322
|
-
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
|
|
323
367
|
ability = abilityOrParametersOrResistanceType
|
|
324
368
|
parameters = parametersOrAbility
|
|
325
|
-
|
|
326
|
-
ability = nil
|
|
369
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
327
370
|
parameters = abilityOrParametersOrResistanceType
|
|
371
|
+
else
|
|
372
|
+
parameters = parametersOrAbility
|
|
328
373
|
end
|
|
329
374
|
end
|
|
375
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
330
376
|
self.typeId = typeId
|
|
331
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
332
|
-
parameters = ability
|
|
333
|
-
ability = nil
|
|
334
|
-
end
|
|
335
377
|
local defaultParameters = self.constructor.defaultParameters
|
|
336
378
|
local level = parameters and parameters.level or defaultParameters.level
|
|
337
379
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -356,14 +398,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
356
398
|
end
|
|
357
399
|
self.polarity = resolveEnumValue(ability, level, polarity)
|
|
358
400
|
self.resistanceType = resolveEnumValue(ability, level, resistanceType)
|
|
401
|
+
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
402
|
+
if missProbability ~= nil then
|
|
403
|
+
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
404
|
+
self[146] = missProbability
|
|
405
|
+
end
|
|
359
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
360
407
|
if buffByTypeId == nil then
|
|
361
408
|
buffByTypeId = {}
|
|
362
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
363
410
|
end
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
413
|
+
if ____opt_15 ~= nil then
|
|
414
|
+
____opt_15:destroy()
|
|
367
415
|
end
|
|
368
416
|
local uniqueGroup = parameters and parameters.uniqueGroup or defaultParameters and defaultParameters.uniqueGroup
|
|
369
417
|
if uniqueGroup ~= nil then
|
|
@@ -377,13 +425,16 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
377
425
|
level,
|
|
378
426
|
duration,
|
|
379
427
|
spellStealPriority,
|
|
380
|
-
learnLevelMinimum
|
|
428
|
+
learnLevelMinimum,
|
|
429
|
+
missProbability
|
|
381
430
|
) then
|
|
431
|
+
self[100] = 1
|
|
382
432
|
UnitBehavior.prototype.destroy(self)
|
|
383
433
|
error(unsuccessfulApplicationMarker, 0)
|
|
384
434
|
end
|
|
385
435
|
local handle = BlzGetUnitAbility(_unit.handle, typeId)
|
|
386
436
|
if handle == nil then
|
|
437
|
+
self[100] = 1
|
|
387
438
|
UnitBehavior.prototype.destroy(self)
|
|
388
439
|
error(unsuccessfulApplicationMarker, 0)
|
|
389
440
|
end
|
|
@@ -392,20 +443,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
392
443
|
self._level = level
|
|
393
444
|
self._spellStealPriority = spellStealPriority
|
|
394
445
|
self._learnLevelMinimum = learnLevelMinimum
|
|
395
|
-
self[
|
|
396
|
-
self[
|
|
397
|
-
self[
|
|
398
|
-
self[
|
|
399
|
-
self[
|
|
446
|
+
self[102] = source
|
|
447
|
+
self[103] = duration or 0
|
|
448
|
+
self[104] = uniqueGroup
|
|
449
|
+
self[105] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_EFFECT, 0)
|
|
450
|
+
self[106] = BlzGetAbilityStringLevelField(self.handle, ABILITY_SLF_SPECIAL, 0)
|
|
400
451
|
if parameters ~= nil or (next(defaultParameters)) ~= nil then
|
|
401
452
|
for ____, buffBooleanParameter in ipairs(buffBooleanParameters) do
|
|
402
|
-
local
|
|
403
|
-
local
|
|
404
|
-
local
|
|
405
|
-
if
|
|
406
|
-
|
|
453
|
+
local ____ability_24 = ability
|
|
454
|
+
local ____level_25 = level
|
|
455
|
+
local ____temp_23 = parameters and parameters[buffBooleanParameter]
|
|
456
|
+
if ____temp_23 == nil then
|
|
457
|
+
____temp_23 = defaultParameters[buffBooleanParameter]
|
|
407
458
|
end
|
|
408
|
-
if resolveBooleanValue(
|
|
459
|
+
if resolveBooleanValue(____ability_24, ____level_25, ____temp_23) then
|
|
409
460
|
self[buffBooleanParameter] = true
|
|
410
461
|
end
|
|
411
462
|
end
|
|
@@ -421,11 +472,11 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
421
472
|
end
|
|
422
473
|
local maximumDuration = parameters and parameters.maximumDuration or defaultParameters.maximumDuration
|
|
423
474
|
if maximumDuration ~= nil then
|
|
424
|
-
self[
|
|
475
|
+
self[108] = resolveNumberValue(ability, level, maximumDuration)
|
|
425
476
|
end
|
|
426
477
|
local maximumRemainingDuration = parameters and parameters.maximumRemainingDuration or defaultParameters.maximumRemainingDuration
|
|
427
478
|
if maximumRemainingDuration ~= nil then
|
|
428
|
-
self[
|
|
479
|
+
self[109] = resolveNumberValue(ability, level, maximumRemainingDuration)
|
|
429
480
|
end
|
|
430
481
|
local parametersAbilityTypeIds = parameters and parameters.abilityTypeIds or defaultParameters.abilityTypeIds
|
|
431
482
|
if parametersAbilityTypeIds ~= nil then
|
|
@@ -434,24 +485,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
434
485
|
abilityTypeIds = {}
|
|
435
486
|
self._abilityTypeIds = abilityTypeIds
|
|
436
487
|
end
|
|
437
|
-
for
|
|
488
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
438
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
439
491
|
if addedAbility ~= nil then
|
|
440
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
441
493
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
if not resolveBooleanValue(ability, level, abilityParameterValue) then
|
|
445
|
-
_unit:hideAbility(abilityTypeId, true)
|
|
446
|
-
end
|
|
447
|
-
elseif abilityParameterKey ~= "level" then
|
|
448
|
-
abilityParameterKey:setValue(
|
|
449
|
-
addedAbility,
|
|
450
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
451
|
-
)
|
|
452
|
-
end
|
|
494
|
+
if abilityParameters.isButtonVisible == false then
|
|
495
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
453
496
|
end
|
|
454
|
-
|
|
497
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
498
|
+
field[1]:setValue(
|
|
499
|
+
addedAbility,
|
|
500
|
+
resolveNumberValue(ability, level, field[2])
|
|
501
|
+
)
|
|
502
|
+
end
|
|
503
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
455
504
|
end
|
|
456
505
|
end
|
|
457
506
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -463,18 +512,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
463
512
|
self._behaviors = behaviors
|
|
464
513
|
end
|
|
465
514
|
end
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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
|
|
473
524
|
end
|
|
474
525
|
end
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
526
|
+
if (next(additionalParameters)) ~= nil then
|
|
527
|
+
self.parameters = additionalParameters
|
|
528
|
+
end
|
|
478
529
|
end
|
|
479
530
|
end
|
|
480
531
|
if duration ~= nil and duration > 0 then
|
|
@@ -482,77 +533,101 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
482
533
|
timer:start(duration, false, expireBuff, self)
|
|
483
534
|
self._timer = timer
|
|
484
535
|
end
|
|
536
|
+
self:onCreate()
|
|
537
|
+
self[100] = 1
|
|
538
|
+
Event.invoke(buffCreatedEvent, self)
|
|
485
539
|
end
|
|
486
|
-
function Buff.prototype.
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
local bonusIdByBonusType = self._bonusIdByBonusType
|
|
493
|
-
if bonusIdByBonusType == nil then
|
|
494
|
-
bonusIdByBonusType = {}
|
|
495
|
-
self._bonusIdByBonusType = bonusIdByBonusType
|
|
540
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
541
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
542
|
+
local abilityCooldownModifier = self[148]
|
|
543
|
+
if abilityCooldownModifier then
|
|
544
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
545
|
+
end
|
|
496
546
|
end
|
|
497
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
498
547
|
end
|
|
499
|
-
function Buff.prototype.
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
506
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
507
|
-
)
|
|
508
|
-
local ____isWidgetProvided_38
|
|
509
|
-
if isWidgetProvided then
|
|
510
|
-
____isWidgetProvided_38 = duration
|
|
511
|
-
else
|
|
512
|
-
____isWidgetProvided_38 = widgetOrDuration
|
|
548
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
549
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
550
|
+
local abilityCooldownModifier = self[148]
|
|
551
|
+
if abilityCooldownModifier then
|
|
552
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
553
|
+
end
|
|
513
554
|
end
|
|
514
|
-
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
515
|
-
____Effect_flash_41(
|
|
516
|
-
____Effect_40,
|
|
517
|
-
__TS__SparseArraySpread(____array_39)
|
|
518
|
-
)
|
|
519
555
|
end
|
|
520
|
-
function Buff.prototype.
|
|
521
|
-
|
|
522
|
-
local ____Effect_44 = Effect
|
|
523
|
-
local ____Effect_flash_45 = Effect.flash
|
|
524
|
-
local ____array_43 = __TS__SparseArrayNew(
|
|
556
|
+
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
557
|
+
self:flash(
|
|
525
558
|
self[105],
|
|
526
|
-
|
|
527
|
-
|
|
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
|
|
528
572
|
)
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
573
|
+
end
|
|
574
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
575
|
+
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
532
577
|
else
|
|
533
|
-
|
|
578
|
+
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
579
|
+
local ____Effect_40 = Effect
|
|
580
|
+
local ____Effect_flash_41 = Effect.flash
|
|
581
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
582
|
+
local ____isWidgetProvided_38
|
|
583
|
+
if isWidgetProvided then
|
|
584
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
585
|
+
else
|
|
586
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
587
|
+
end
|
|
588
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
589
|
+
____Effect_flash_41(
|
|
590
|
+
____Effect_40,
|
|
591
|
+
__TS__SparseArraySpread(____array_39)
|
|
592
|
+
)
|
|
534
593
|
end
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
594
|
+
end
|
|
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
|
|
610
|
+
end
|
|
611
|
+
end
|
|
612
|
+
function Buff.prototype.onCreate(self)
|
|
540
613
|
end
|
|
541
614
|
function Buff.prototype.onDestroy(self)
|
|
615
|
+
check(self[100] ~= 0, "Cannot destroy a buff that has not finished creating yet.")
|
|
616
|
+
self[100] = 2
|
|
542
617
|
local unit = self._unit
|
|
543
618
|
if getUnitAbility(unit.handle, self.typeId) == self.handle then
|
|
544
619
|
removeBuff(unit.handle, self.typeId)
|
|
545
620
|
end
|
|
546
621
|
buffByTypeIdByUnit[unit][self.typeId] = nil
|
|
547
|
-
local healingIntervalTimer = self[
|
|
622
|
+
local healingIntervalTimer = self[119]
|
|
548
623
|
if healingIntervalTimer ~= nil then
|
|
549
624
|
healingIntervalTimer:destroy()
|
|
550
|
-
self[
|
|
625
|
+
self[119] = nil
|
|
551
626
|
end
|
|
552
|
-
local damageIntervalTimer = self[
|
|
627
|
+
local damageIntervalTimer = self[114]
|
|
553
628
|
if damageIntervalTimer ~= nil then
|
|
554
629
|
damageIntervalTimer:destroy()
|
|
555
|
-
self[
|
|
630
|
+
self[114] = nil
|
|
556
631
|
end
|
|
557
632
|
if self._timer ~= nil then
|
|
558
633
|
self._timer:destroy()
|
|
@@ -562,25 +637,34 @@ function Buff.prototype.onDestroy(self)
|
|
|
562
637
|
behavior:destroy()
|
|
563
638
|
end
|
|
564
639
|
end
|
|
565
|
-
|
|
640
|
+
local previousAbilityCooldownModifier = self[148]
|
|
641
|
+
if previousAbilityCooldownModifier then
|
|
642
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
643
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
644
|
+
end
|
|
645
|
+
end
|
|
646
|
+
if self[143] then
|
|
647
|
+
unit:decrementInvulnerabilityCounter()
|
|
648
|
+
end
|
|
649
|
+
if self[142] then
|
|
566
650
|
unit:decrementDisableAutoAttackCounter()
|
|
567
651
|
end
|
|
568
|
-
if self[
|
|
569
|
-
if self[
|
|
570
|
-
unit:
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
654
|
+
unit:decrementForceStunCounter()
|
|
571
655
|
end
|
|
572
656
|
unit:decrementStunCounter()
|
|
573
657
|
end
|
|
658
|
+
if self[139] then
|
|
659
|
+
unit:decrementGhostCounter()
|
|
660
|
+
end
|
|
574
661
|
if self._abilityTypeIds ~= nil then
|
|
575
|
-
for abilityTypeId in
|
|
662
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
576
663
|
unit:removeAbility(abilityTypeId)
|
|
577
664
|
end
|
|
578
665
|
end
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
582
|
-
end
|
|
583
|
-
end
|
|
666
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
667
|
+
self[100] = 3
|
|
584
668
|
return UnitBehavior.prototype.onDestroy(self)
|
|
585
669
|
end
|
|
586
670
|
function Buff.apply(self, ...)
|
|
@@ -608,81 +692,95 @@ function Buff.apply(self, ...)
|
|
|
608
692
|
end
|
|
609
693
|
end
|
|
610
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
611
|
-
local
|
|
612
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
613
697
|
if __TS__InstanceOf(buff, self) then
|
|
614
698
|
return buff
|
|
615
699
|
end
|
|
616
700
|
return nil
|
|
617
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
618
704
|
function Buff.prototype.onExpiration(self)
|
|
619
705
|
local unit = self.unit
|
|
620
|
-
if self[119] ~= nil then
|
|
621
|
-
(self[101] or unit):damageTarget(unit, self[119] or 0)
|
|
622
|
-
end
|
|
623
706
|
if self[120] ~= nil then
|
|
624
|
-
(self[
|
|
707
|
+
(self[102] or unit):damageTarget(unit, self[120] or 0)
|
|
625
708
|
end
|
|
626
|
-
if self[
|
|
709
|
+
if self[121] ~= nil then
|
|
710
|
+
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
711
|
+
end
|
|
712
|
+
if self[145] then
|
|
627
713
|
unit:explode()
|
|
628
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
629
715
|
unit:kill()
|
|
630
716
|
end
|
|
631
717
|
end
|
|
632
718
|
function Buff.prototype.onDeath(self, source)
|
|
633
719
|
local unit = self.unit
|
|
634
|
-
if self[
|
|
720
|
+
if self[122] ~= nil then
|
|
635
721
|
damageArea(
|
|
636
|
-
self[
|
|
637
|
-
self[
|
|
722
|
+
self[102] or unit,
|
|
723
|
+
self[122],
|
|
638
724
|
unit.x,
|
|
639
725
|
unit.y,
|
|
726
|
+
self[124] or 0,
|
|
640
727
|
self[123] or 0,
|
|
641
|
-
self[
|
|
728
|
+
self[126] or 0,
|
|
642
729
|
self[125] or 0,
|
|
643
|
-
self[
|
|
644
|
-
self[127] or 0
|
|
645
|
-
self[126] or 0
|
|
730
|
+
self[128] or 0,
|
|
731
|
+
self[127] or 0
|
|
646
732
|
)
|
|
647
733
|
end
|
|
648
734
|
end
|
|
649
735
|
function Buff.prototype.onDamageDealt(self, target, event)
|
|
650
736
|
if event.isAttack then
|
|
651
|
-
if self[
|
|
652
|
-
local durationIncrease = self[
|
|
653
|
-
local maximumDuration = self[
|
|
737
|
+
if self[107] ~= nil then
|
|
738
|
+
local durationIncrease = self[107]
|
|
739
|
+
local maximumDuration = self[108] or 0
|
|
654
740
|
if maximumDuration > 0 then
|
|
655
741
|
durationIncrease = min(
|
|
656
742
|
durationIncrease,
|
|
657
|
-
max(0, maximumDuration - self[
|
|
743
|
+
max(0, maximumDuration - self[103])
|
|
658
744
|
)
|
|
659
745
|
end
|
|
660
746
|
local remainingDuration = self.remainingDuration + durationIncrease
|
|
661
|
-
local maximumRemainingDuration = self[
|
|
747
|
+
local maximumRemainingDuration = self[109] or 0
|
|
662
748
|
if maximumRemainingDuration > 0 then
|
|
663
749
|
remainingDuration = min(remainingDuration, maximumRemainingDuration)
|
|
664
750
|
end
|
|
665
751
|
self.remainingDuration = remainingDuration
|
|
666
752
|
end
|
|
667
|
-
local autoAttackCount = (self[
|
|
668
|
-
self[
|
|
669
|
-
if autoAttackCount == self[
|
|
753
|
+
local autoAttackCount = (self[129] or 0) + 1
|
|
754
|
+
self[129] = autoAttackCount
|
|
755
|
+
if autoAttackCount == self[130] then
|
|
670
756
|
self:destroy()
|
|
671
757
|
end
|
|
672
758
|
end
|
|
673
759
|
if event.originalAmount ~= 0 then
|
|
674
|
-
local damageDealtEventCount = (self[
|
|
675
|
-
self[
|
|
676
|
-
if damageDealtEventCount == self[
|
|
760
|
+
local damageDealtEventCount = (self[131] or 0) + 1
|
|
761
|
+
self[131] = damageDealtEventCount
|
|
762
|
+
if damageDealtEventCount == self[132] then
|
|
677
763
|
self:destroy()
|
|
678
764
|
end
|
|
679
765
|
end
|
|
680
766
|
end
|
|
681
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
682
768
|
if event.originalAmount ~= 0 then
|
|
683
|
-
local
|
|
684
|
-
|
|
685
|
-
|
|
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
|
|
781
|
+
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
782
|
+
self[133] = damageReceivedEventCount
|
|
783
|
+
if damageReceivedEventCount == self[134] then
|
|
686
784
|
self:destroy()
|
|
687
785
|
end
|
|
688
786
|
end
|
|
@@ -692,7 +790,7 @@ __TS__SetDescriptor(
|
|
|
692
790
|
Buff.prototype,
|
|
693
791
|
"source",
|
|
694
792
|
{get = function(self)
|
|
695
|
-
return self[
|
|
793
|
+
return self[102] or self._unit
|
|
696
794
|
end},
|
|
697
795
|
true
|
|
698
796
|
)
|
|
@@ -709,13 +807,13 @@ __TS__SetDescriptor(
|
|
|
709
807
|
"remainingDamageOverDuration",
|
|
710
808
|
{
|
|
711
809
|
get = function(self)
|
|
712
|
-
return self[
|
|
810
|
+
return self[113] or 0
|
|
713
811
|
end,
|
|
714
812
|
set = function(self, remainingDamageOverDuration)
|
|
715
|
-
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[
|
|
716
|
-
self[
|
|
717
|
-
local damageOverDuration = (self[
|
|
718
|
-
self[
|
|
813
|
+
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[113] or 0)
|
|
814
|
+
self[113] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
815
|
+
local damageOverDuration = (self[110] or 0) + remainingDamageOverDurationDelta
|
|
816
|
+
self[110] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
719
817
|
end
|
|
720
818
|
},
|
|
721
819
|
true
|
|
@@ -725,13 +823,13 @@ __TS__SetDescriptor(
|
|
|
725
823
|
"damageOverDuration",
|
|
726
824
|
{
|
|
727
825
|
get = function(self)
|
|
728
|
-
return self[
|
|
826
|
+
return self[110] or 0
|
|
729
827
|
end,
|
|
730
828
|
set = function(self, damageOverDuration)
|
|
731
|
-
local damageOverDurationDelta = damageOverDuration - (self[
|
|
732
|
-
self[
|
|
733
|
-
local remainingDamageOverDuration = (self[
|
|
734
|
-
self[
|
|
829
|
+
local damageOverDurationDelta = damageOverDuration - (self[110] or 0)
|
|
830
|
+
self[110] = damageOverDuration ~= 0 and damageOverDuration or nil
|
|
831
|
+
local remainingDamageOverDuration = (self[113] or 0) + damageOverDurationDelta
|
|
832
|
+
self[113] = remainingDamageOverDuration ~= 0 and remainingDamageOverDuration or nil
|
|
735
833
|
end
|
|
736
834
|
},
|
|
737
835
|
true
|
|
@@ -741,10 +839,10 @@ __TS__SetDescriptor(
|
|
|
741
839
|
"damagePerInterval",
|
|
742
840
|
{
|
|
743
841
|
get = function(self)
|
|
744
|
-
return self[
|
|
842
|
+
return self[111] or 0
|
|
745
843
|
end,
|
|
746
844
|
set = function(self, damagePerInterval)
|
|
747
|
-
self[
|
|
845
|
+
self[111] = damagePerInterval ~= 0 and damagePerInterval or nil
|
|
748
846
|
end
|
|
749
847
|
},
|
|
750
848
|
true
|
|
@@ -754,25 +852,25 @@ __TS__SetDescriptor(
|
|
|
754
852
|
"damageInterval",
|
|
755
853
|
{
|
|
756
854
|
get = function(self)
|
|
757
|
-
return self[
|
|
855
|
+
return self[112] or 0
|
|
758
856
|
end,
|
|
759
857
|
set = function(self, damageInterval)
|
|
760
858
|
if damageInterval <= 0 then
|
|
761
|
-
self[
|
|
762
|
-
local timer = self[
|
|
859
|
+
self[112] = damageInterval ~= 0 and damageInterval or nil
|
|
860
|
+
local timer = self[114]
|
|
763
861
|
if timer ~= nil then
|
|
764
862
|
timer:destroy()
|
|
765
|
-
self[
|
|
863
|
+
self[114] = nil
|
|
766
864
|
end
|
|
767
865
|
return
|
|
768
866
|
end
|
|
769
|
-
self[
|
|
770
|
-
local
|
|
771
|
-
local elapsed =
|
|
772
|
-
local timer = self[
|
|
867
|
+
self[112] = damageInterval
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
870
|
+
local timer = self[114]
|
|
773
871
|
if timer == nil then
|
|
774
872
|
timer = Timer:create()
|
|
775
|
-
self[
|
|
873
|
+
self[114] = timer
|
|
776
874
|
end
|
|
777
875
|
local initialDelay = damageInterval - (elapsed >= damageInterval and math.fmod(elapsed, damageInterval) or elapsed)
|
|
778
876
|
if initialDelay == damageInterval then
|
|
@@ -789,13 +887,13 @@ __TS__SetDescriptor(
|
|
|
789
887
|
"remainingHealingOverDuration",
|
|
790
888
|
{
|
|
791
889
|
get = function(self)
|
|
792
|
-
return self[
|
|
890
|
+
return self[118] or 0
|
|
793
891
|
end,
|
|
794
892
|
set = function(self, remainingHealingOverDuration)
|
|
795
|
-
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[
|
|
796
|
-
self[
|
|
797
|
-
local healingOverDuration = (self[
|
|
798
|
-
self[
|
|
893
|
+
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[118] or 0)
|
|
894
|
+
self[113] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
895
|
+
local healingOverDuration = (self[115] or 0) + remainingHealingOverDurationDelta
|
|
896
|
+
self[115] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
799
897
|
end
|
|
800
898
|
},
|
|
801
899
|
true
|
|
@@ -805,13 +903,13 @@ __TS__SetDescriptor(
|
|
|
805
903
|
"healingOverDuration",
|
|
806
904
|
{
|
|
807
905
|
get = function(self)
|
|
808
|
-
return self[
|
|
906
|
+
return self[115] or 0
|
|
809
907
|
end,
|
|
810
908
|
set = function(self, healingOverDuration)
|
|
811
|
-
local healingOverDurationDelta = healingOverDuration - (self[
|
|
812
|
-
self[
|
|
813
|
-
local remainingHealingOverDuration = (self[
|
|
814
|
-
self[
|
|
909
|
+
local healingOverDurationDelta = healingOverDuration - (self[115] or 0)
|
|
910
|
+
self[115] = healingOverDuration ~= 0 and healingOverDuration or nil
|
|
911
|
+
local remainingHealingOverDuration = (self[118] or 0) + healingOverDurationDelta
|
|
912
|
+
self[118] = remainingHealingOverDuration ~= 0 and remainingHealingOverDuration or nil
|
|
815
913
|
end
|
|
816
914
|
},
|
|
817
915
|
true
|
|
@@ -821,10 +919,10 @@ __TS__SetDescriptor(
|
|
|
821
919
|
"healingPerInterval",
|
|
822
920
|
{
|
|
823
921
|
get = function(self)
|
|
824
|
-
return self[
|
|
922
|
+
return self[116] or 0
|
|
825
923
|
end,
|
|
826
924
|
set = function(self, healingPerInterval)
|
|
827
|
-
self[
|
|
925
|
+
self[116] = healingPerInterval ~= 0 and healingPerInterval or nil
|
|
828
926
|
end
|
|
829
927
|
},
|
|
830
928
|
true
|
|
@@ -834,25 +932,25 @@ __TS__SetDescriptor(
|
|
|
834
932
|
"healingInterval",
|
|
835
933
|
{
|
|
836
934
|
get = function(self)
|
|
837
|
-
return self[
|
|
935
|
+
return self[117] or 0
|
|
838
936
|
end,
|
|
839
937
|
set = function(self, healingInterval)
|
|
840
938
|
if healingInterval <= 0 then
|
|
841
|
-
self[
|
|
842
|
-
local timer = self[
|
|
939
|
+
self[117] = healingInterval ~= 0 and healingInterval or nil
|
|
940
|
+
local timer = self[119]
|
|
843
941
|
if timer ~= nil then
|
|
844
942
|
timer:destroy()
|
|
845
|
-
self[
|
|
943
|
+
self[119] = nil
|
|
846
944
|
end
|
|
847
945
|
return
|
|
848
946
|
end
|
|
849
|
-
self[
|
|
850
|
-
local
|
|
851
|
-
local elapsed =
|
|
852
|
-
local timer = self[
|
|
947
|
+
self[117] = healingInterval
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
950
|
+
local timer = self[119]
|
|
853
951
|
if timer == nil then
|
|
854
952
|
timer = Timer:create()
|
|
855
|
-
self[
|
|
953
|
+
self[119] = timer
|
|
856
954
|
end
|
|
857
955
|
local initialDelay = healingInterval - (elapsed >= healingInterval and math.fmod(elapsed, healingInterval) or elapsed)
|
|
858
956
|
if initialDelay == healingInterval then
|
|
@@ -869,10 +967,10 @@ __TS__SetDescriptor(
|
|
|
869
967
|
"damageOnExpiration",
|
|
870
968
|
{
|
|
871
969
|
get = function(self)
|
|
872
|
-
return self[
|
|
970
|
+
return self[120] or 0
|
|
873
971
|
end,
|
|
874
972
|
set = function(self, damageOnExpiration)
|
|
875
|
-
self[
|
|
973
|
+
self[120] = damageOnExpiration ~= 0 and damageOnExpiration or nil
|
|
876
974
|
end
|
|
877
975
|
},
|
|
878
976
|
true
|
|
@@ -882,10 +980,10 @@ __TS__SetDescriptor(
|
|
|
882
980
|
"healingOnExpiration",
|
|
883
981
|
{
|
|
884
982
|
get = function(self)
|
|
885
|
-
return self[
|
|
983
|
+
return self[121] or 0
|
|
886
984
|
end,
|
|
887
985
|
set = function(self, healingOnExpiration)
|
|
888
|
-
self[
|
|
986
|
+
self[121] = healingOnExpiration ~= 0 and healingOnExpiration or nil
|
|
889
987
|
end
|
|
890
988
|
},
|
|
891
989
|
true
|
|
@@ -929,30 +1027,79 @@ __TS__SetDescriptor(
|
|
|
929
1027
|
},
|
|
930
1028
|
true
|
|
931
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
|
+
)
|
|
1056
|
+
__TS__SetDescriptor(
|
|
1057
|
+
Buff.prototype,
|
|
1058
|
+
"turnsIntoGhost",
|
|
1059
|
+
{
|
|
1060
|
+
get = function(self)
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
1064
|
+
end
|
|
1065
|
+
return ____self__139_49
|
|
1066
|
+
end,
|
|
1067
|
+
set = function(self, turnsIntoGhost)
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
1069
|
+
self.object:decrementGhostCounter()
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
1072
|
+
self.object:incrementGhostCounter()
|
|
1073
|
+
self[139] = true
|
|
1074
|
+
end
|
|
1075
|
+
end
|
|
1076
|
+
},
|
|
1077
|
+
true
|
|
1078
|
+
)
|
|
932
1079
|
__TS__SetDescriptor(
|
|
933
1080
|
Buff.prototype,
|
|
934
1081
|
"stuns",
|
|
935
1082
|
{
|
|
936
1083
|
get = function(self)
|
|
937
|
-
local
|
|
938
|
-
if
|
|
939
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
940
1087
|
end
|
|
941
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
942
1089
|
end,
|
|
943
1090
|
set = function(self, stuns)
|
|
944
|
-
if not stuns and self[
|
|
945
|
-
if self[
|
|
946
|
-
self.object:
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1093
|
+
self.object:decrementForceStunCounter()
|
|
947
1094
|
end
|
|
948
1095
|
self.object:decrementStunCounter()
|
|
949
|
-
self[
|
|
950
|
-
elseif stuns and not self[
|
|
951
|
-
if self[
|
|
952
|
-
self.object:
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1099
|
+
self.object:incrementForceStunCounter()
|
|
953
1100
|
end
|
|
954
1101
|
self.object:incrementStunCounter()
|
|
955
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
956
1103
|
end
|
|
957
1104
|
end
|
|
958
1105
|
},
|
|
@@ -963,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
963
1110
|
"ignoresStunImmunity",
|
|
964
1111
|
{
|
|
965
1112
|
get = function(self)
|
|
966
|
-
local
|
|
967
|
-
if
|
|
968
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
969
1116
|
end
|
|
970
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
971
1118
|
end,
|
|
972
1119
|
set = function(self, ignoresStunImmunity)
|
|
973
|
-
if not ignoresStunImmunity and self[
|
|
974
|
-
if self[
|
|
975
|
-
self.object:
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1122
|
+
self.object:decrementForceStunCounter()
|
|
976
1123
|
end
|
|
977
|
-
self[
|
|
978
|
-
elseif ignoresStunImmunity and not self[
|
|
979
|
-
if self[
|
|
980
|
-
self.object:
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1127
|
+
self.object:incrementForceStunCounter()
|
|
981
1128
|
end
|
|
982
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
983
1130
|
end
|
|
984
1131
|
end
|
|
985
1132
|
},
|
|
@@ -990,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
990
1137
|
"disablesAutoAttack",
|
|
991
1138
|
{
|
|
992
1139
|
get = function(self)
|
|
993
|
-
local
|
|
994
|
-
if
|
|
995
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
996
1143
|
end
|
|
997
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
998
1145
|
end,
|
|
999
1146
|
set = function(self, disablesAutoAttack)
|
|
1000
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1001
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1002
|
-
self[
|
|
1003
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1004
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1005
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1006
1153
|
end
|
|
1007
1154
|
end
|
|
1008
1155
|
},
|
|
@@ -1013,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1013
1160
|
"providesInvulnerability",
|
|
1014
1161
|
{
|
|
1015
1162
|
get = function(self)
|
|
1016
|
-
local
|
|
1017
|
-
if
|
|
1018
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1019
1166
|
end
|
|
1020
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1021
1168
|
end,
|
|
1022
1169
|
set = function(self, providesInvulnerability)
|
|
1023
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1024
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1025
|
-
self[
|
|
1026
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1027
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1028
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1029
1176
|
end
|
|
1030
1177
|
end
|
|
1031
1178
|
},
|
|
@@ -1036,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1036
1183
|
"killsOnExpiration",
|
|
1037
1184
|
{
|
|
1038
1185
|
get = function(self)
|
|
1039
|
-
local
|
|
1040
|
-
if
|
|
1041
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1042
1189
|
end
|
|
1043
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1044
1191
|
end,
|
|
1045
1192
|
set = function(self, killsOnExpiration)
|
|
1046
|
-
if not killsOnExpiration and self[
|
|
1047
|
-
self[
|
|
1048
|
-
elseif killsOnExpiration and not self[
|
|
1049
|
-
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
|
|
1050
1197
|
end
|
|
1051
1198
|
end
|
|
1052
1199
|
},
|
|
@@ -1057,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1057
1204
|
"explodesOnExpiration",
|
|
1058
1205
|
{
|
|
1059
1206
|
get = function(self)
|
|
1060
|
-
local
|
|
1061
|
-
if
|
|
1062
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1063
1210
|
end
|
|
1064
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1065
1212
|
end,
|
|
1066
1213
|
set = function(self, killsOnExpiration)
|
|
1067
|
-
if not killsOnExpiration and self[
|
|
1068
|
-
self[
|
|
1069
|
-
elseif killsOnExpiration and not self[
|
|
1070
|
-
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
|
|
1071
1218
|
end
|
|
1072
1219
|
end
|
|
1073
1220
|
},
|
|
@@ -1078,13 +1225,13 @@ __TS__SetDescriptor(
|
|
|
1078
1225
|
"maximumDamageDealtEventCount",
|
|
1079
1226
|
{
|
|
1080
1227
|
get = function(self)
|
|
1081
|
-
return self[
|
|
1228
|
+
return self[132] or 0
|
|
1082
1229
|
end,
|
|
1083
1230
|
set = function(self, maximumDamageDealtEventCount)
|
|
1084
1231
|
if maximumDamageDealtEventCount == 0 then
|
|
1085
|
-
self[
|
|
1232
|
+
self[132] = nil
|
|
1086
1233
|
else
|
|
1087
|
-
self[
|
|
1234
|
+
self[132] = maximumDamageDealtEventCount
|
|
1088
1235
|
end
|
|
1089
1236
|
end
|
|
1090
1237
|
},
|
|
@@ -1095,13 +1242,13 @@ __TS__SetDescriptor(
|
|
|
1095
1242
|
"maximumDamageReceivedEventCount",
|
|
1096
1243
|
{
|
|
1097
1244
|
get = function(self)
|
|
1098
|
-
return self[
|
|
1245
|
+
return self[134] or 0
|
|
1099
1246
|
end,
|
|
1100
1247
|
set = function(self, maximumDamageReceivedEventCount)
|
|
1101
1248
|
if maximumDamageReceivedEventCount == 0 then
|
|
1102
|
-
self[
|
|
1249
|
+
self[134] = nil
|
|
1103
1250
|
else
|
|
1104
|
-
self[
|
|
1251
|
+
self[134] = maximumDamageReceivedEventCount
|
|
1105
1252
|
end
|
|
1106
1253
|
end
|
|
1107
1254
|
},
|
|
@@ -1112,13 +1259,13 @@ __TS__SetDescriptor(
|
|
|
1112
1259
|
"maximumAutoAttackCount",
|
|
1113
1260
|
{
|
|
1114
1261
|
get = function(self)
|
|
1115
|
-
return self[
|
|
1262
|
+
return self[130] or 0
|
|
1116
1263
|
end,
|
|
1117
1264
|
set = function(self, maximumAutoAttackCount)
|
|
1118
1265
|
if maximumAutoAttackCount == 0 then
|
|
1119
|
-
self[
|
|
1266
|
+
self[130] = nil
|
|
1120
1267
|
else
|
|
1121
|
-
self[
|
|
1268
|
+
self[130] = maximumAutoAttackCount
|
|
1122
1269
|
end
|
|
1123
1270
|
end
|
|
1124
1271
|
},
|
|
@@ -1129,10 +1276,10 @@ __TS__SetDescriptor(
|
|
|
1129
1276
|
"durationIncreaseOnAutoAttack",
|
|
1130
1277
|
{
|
|
1131
1278
|
get = function(self)
|
|
1132
|
-
return self[
|
|
1279
|
+
return self[107] or 0
|
|
1133
1280
|
end,
|
|
1134
1281
|
set = function(self, durationIncreaseOnAutoAttack)
|
|
1135
|
-
self[
|
|
1282
|
+
self[107] = durationIncreaseOnAutoAttack
|
|
1136
1283
|
end
|
|
1137
1284
|
},
|
|
1138
1285
|
true
|
|
@@ -1163,12 +1310,52 @@ __TS__SetDescriptor(
|
|
|
1163
1310
|
},
|
|
1164
1311
|
true
|
|
1165
1312
|
)
|
|
1313
|
+
__TS__SetDescriptor(
|
|
1314
|
+
Buff.prototype,
|
|
1315
|
+
"evasionProbability",
|
|
1316
|
+
{
|
|
1317
|
+
get = function(self)
|
|
1318
|
+
return self:getUnitBonus(UnitBonusType.EVASION_PROBABILITY)
|
|
1319
|
+
end,
|
|
1320
|
+
set = function(self, evasionProbability)
|
|
1321
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.EVASION_PROBABILITY, evasionProbability)
|
|
1322
|
+
end
|
|
1323
|
+
},
|
|
1324
|
+
true
|
|
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
|
+
)
|
|
1166
1339
|
__TS__SetDescriptor(
|
|
1167
1340
|
Buff.prototype,
|
|
1168
1341
|
"duration",
|
|
1169
|
-
{
|
|
1170
|
-
|
|
1171
|
-
|
|
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
|
+
},
|
|
1172
1359
|
true
|
|
1173
1360
|
)
|
|
1174
1361
|
__TS__SetDescriptor(
|
|
@@ -1176,15 +1363,15 @@ __TS__SetDescriptor(
|
|
|
1176
1363
|
"remainingDuration",
|
|
1177
1364
|
{
|
|
1178
1365
|
get = function(self)
|
|
1179
|
-
local
|
|
1180
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1181
1368
|
end,
|
|
1182
1369
|
set = function(self, remainingDuration)
|
|
1183
|
-
local
|
|
1184
|
-
local
|
|
1185
|
-
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)
|
|
1186
1373
|
if remainingDurationDelta ~= 0 then
|
|
1187
|
-
self[
|
|
1374
|
+
self[103] = self[103] + remainingDurationDelta
|
|
1188
1375
|
if remainingDuration <= 0 then
|
|
1189
1376
|
Timer:run(destroyBuff, self)
|
|
1190
1377
|
else
|
|
@@ -1196,7 +1383,8 @@ __TS__SetDescriptor(
|
|
|
1196
1383
|
self._level,
|
|
1197
1384
|
remainingDuration,
|
|
1198
1385
|
self._spellStealPriority,
|
|
1199
|
-
self._learnLevelMinimum
|
|
1386
|
+
self._learnLevelMinimum,
|
|
1387
|
+
self[146]
|
|
1200
1388
|
) then
|
|
1201
1389
|
local timer = self._timer
|
|
1202
1390
|
if timer == nil then
|
|
@@ -1210,37 +1398,135 @@ __TS__SetDescriptor(
|
|
|
1210
1398
|
end
|
|
1211
1399
|
},
|
|
1212
1400
|
true
|
|
1213
|
-
)
|
|
1401
|
+
)
|
|
1402
|
+
__TS__SetDescriptor(
|
|
1403
|
+
Buff.prototype,
|
|
1404
|
+
"absorbedDamageFactor",
|
|
1405
|
+
{
|
|
1406
|
+
get = function(self)
|
|
1407
|
+
return self[135] or 1
|
|
1408
|
+
end,
|
|
1409
|
+
set = function(self, absorbedDamageFactor)
|
|
1410
|
+
if absorbedDamageFactor == 1 then
|
|
1411
|
+
self[135] = nil
|
|
1412
|
+
else
|
|
1413
|
+
self[135] = absorbedDamageFactor
|
|
1414
|
+
end
|
|
1415
|
+
end
|
|
1416
|
+
},
|
|
1417
|
+
true
|
|
1418
|
+
)
|
|
1419
|
+
__TS__SetDescriptor(
|
|
1420
|
+
Buff.prototype,
|
|
1421
|
+
"maximumDamageAbsorbed",
|
|
1422
|
+
{
|
|
1423
|
+
get = function(self)
|
|
1424
|
+
return self[136] or 0
|
|
1425
|
+
end,
|
|
1426
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1427
|
+
if maximumDamageAbsorbed == 0 then
|
|
1428
|
+
self[136] = nil
|
|
1429
|
+
else
|
|
1430
|
+
self[136] = maximumDamageAbsorbed
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
},
|
|
1434
|
+
true
|
|
1435
|
+
)
|
|
1436
|
+
__TS__SetDescriptor(
|
|
1437
|
+
Buff.prototype,
|
|
1438
|
+
"damageAbsorbed",
|
|
1439
|
+
{get = function(self)
|
|
1440
|
+
return self[137] or 0
|
|
1441
|
+
end},
|
|
1442
|
+
true
|
|
1443
|
+
)
|
|
1444
|
+
__TS__SetDescriptor(
|
|
1445
|
+
Buff.prototype,
|
|
1446
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1447
|
+
{
|
|
1448
|
+
get = function(self)
|
|
1449
|
+
local ____self__138_61 = self[138]
|
|
1450
|
+
if ____self__138_61 == nil then
|
|
1451
|
+
____self__138_61 = true
|
|
1452
|
+
end
|
|
1453
|
+
return ____self__138_61
|
|
1454
|
+
end,
|
|
1455
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1456
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1457
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1458
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1459
|
+
else
|
|
1460
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1461
|
+
end
|
|
1462
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1463
|
+
end
|
|
1464
|
+
},
|
|
1465
|
+
true
|
|
1466
|
+
)
|
|
1467
|
+
__TS__SetDescriptor(
|
|
1468
|
+
Buff.prototype,
|
|
1469
|
+
"abilityCooldownFactor",
|
|
1470
|
+
{
|
|
1471
|
+
get = function(self)
|
|
1472
|
+
return self[147] or 1
|
|
1473
|
+
end,
|
|
1474
|
+
set = function(self, abilityCooldownFactor)
|
|
1475
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1476
|
+
if previousAbilityCooldownModifier then
|
|
1477
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1478
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1479
|
+
end
|
|
1480
|
+
end
|
|
1481
|
+
local function modifier(ability, level, cooldown)
|
|
1482
|
+
return cooldown * abilityCooldownFactor
|
|
1483
|
+
end
|
|
1484
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1485
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1486
|
+
end
|
|
1487
|
+
self[148] = modifier
|
|
1488
|
+
self[147] = abilityCooldownFactor
|
|
1489
|
+
end
|
|
1490
|
+
},
|
|
1491
|
+
true
|
|
1492
|
+
)
|
|
1493
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1494
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1214
1495
|
(function(self)
|
|
1215
|
-
local function destroyBuffIfNeeded(buff)
|
|
1216
|
-
|
|
1217
|
-
|
|
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
|
|
1218
1504
|
end
|
|
1219
1505
|
end
|
|
1220
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1221
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1222
1508
|
if buffByTypeId ~= nil then
|
|
1223
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1224
1510
|
if buff ~= nil then
|
|
1225
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1226
1512
|
end
|
|
1227
1513
|
end
|
|
1228
1514
|
end
|
|
1229
|
-
____exports.checkBuffs = function(unit)
|
|
1230
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1231
1517
|
end
|
|
1232
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1233
1519
|
0,
|
|
1234
1520
|
function(caster)
|
|
1235
|
-
____exports.checkBuffs(caster)
|
|
1236
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1237
1523
|
end
|
|
1238
1524
|
)
|
|
1239
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1240
1526
|
0,
|
|
1241
1527
|
function(caster, ability, target)
|
|
1242
|
-
____exports.checkBuffs(target)
|
|
1243
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1244
1530
|
end
|
|
1245
1531
|
)
|
|
1246
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1251,18 +1537,47 @@ __TS__SetDescriptor(
|
|
|
1251
1537
|
y,
|
|
1252
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1253
1539
|
)
|
|
1254
|
-
forEach(units, ____exports.checkBuffs)
|
|
1255
|
-
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
|
|
1256
1565
|
end
|
|
1257
1566
|
)
|
|
1258
1567
|
Unit.onDamage:addListener(
|
|
1259
1568
|
0,
|
|
1260
1569
|
function(source, target)
|
|
1261
1570
|
if source ~= nil then
|
|
1262
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1263
1572
|
end
|
|
1264
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1265
1574
|
end
|
|
1266
1575
|
)
|
|
1576
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1577
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1578
|
+
end)
|
|
1579
|
+
buffBeingDestroyedEvent:addListener(function(buff)
|
|
1580
|
+
UnitBehavior:forAll(buff.unit, "onBuffLost", buff)
|
|
1581
|
+
end)
|
|
1267
1582
|
end)(Buff)
|
|
1268
1583
|
return ____exports
|