warscript 0.0.1-dev.4363c65 → 0.0.1-dev.43d3477
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 +5 -0
- package/core/types/frame.lua +171 -22
- 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 +127 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- package/engine/behavior.lua +233 -73
- 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 +8 -5
- 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 +46 -2
- package/engine/behaviour/unit.lua +290 -6
- package/engine/buff.d.ts +138 -65
- package/engine/buff.lua +644 -314
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +27 -14
- package/engine/internal/ability.lua +168 -104
- 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 -19
- 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 +20 -2
- package/engine/internal/unit/bonus.lua +125 -9
- 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/inventory.d.ts +28 -0
- 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.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- 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 +75 -5
- 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 +70 -13
- package/engine/internal/unit.d.ts +57 -31
- package/engine/internal/unit.lua +450 -301
- 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 +35 -2
- package/engine/local-client.lua +367 -15
- 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 +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -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/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/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/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-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 +36 -19
- package/engine/object-data/entry/ability-type.lua +314 -40
- 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 +32 -3
- package/engine/object-data/entry/item-type.lua +177 -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 +11 -7
- 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 +24 -0
- package/engine/standard/entries/buff-type.lua +22 -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 +13 -0
- package/engine/unit.lua +13 -0
- package/event.d.ts +1 -1
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +28 -3
- package/objutil/buff.lua +13 -12
- 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.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- 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/{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,14 +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,
|
|
113
|
+
damageFactor = true,
|
|
97
114
|
receivedDamageFactor = true,
|
|
98
115
|
receivedMagicDamageFactor = true,
|
|
99
116
|
durationIncreaseOnAutoAttack = true,
|
|
100
117
|
maximumDuration = true,
|
|
101
118
|
maximumRemainingDuration = true,
|
|
119
|
+
turnsIntoGhost = true,
|
|
102
120
|
stuns = true,
|
|
103
121
|
ignoresStunImmunity = true,
|
|
104
122
|
providesStunImmunity = true,
|
|
@@ -109,11 +127,15 @@ local buffParametersKeys = {
|
|
|
109
127
|
maximumAutoAttackCount = true,
|
|
110
128
|
maximumDamageDealtEventCount = true,
|
|
111
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
112
133
|
uniqueGroup = true,
|
|
113
134
|
damageOnExpiration = true,
|
|
114
135
|
healingOnExpiration = true,
|
|
115
136
|
killsOnExpiration = true,
|
|
116
|
-
explodesOnExpiration = true
|
|
137
|
+
explodesOnExpiration = true,
|
|
138
|
+
abilityCooldownFactor = true
|
|
117
139
|
}
|
|
118
140
|
local function resolveEnumValue(ability, level, value)
|
|
119
141
|
if value == nil or type(value) == "number" then
|
|
@@ -164,6 +186,8 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
164
186
|
end
|
|
165
187
|
end
|
|
166
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
190
|
+
"turnsIntoGhost",
|
|
167
191
|
"stuns",
|
|
168
192
|
"ignoresStunImmunity",
|
|
169
193
|
"disablesAutoAttack",
|
|
@@ -175,7 +199,12 @@ local buffNumberParameters = {
|
|
|
175
199
|
"durationIncreaseOnAutoAttack",
|
|
176
200
|
"attackSpeedIncreaseFactor",
|
|
177
201
|
"movementSpeedIncreaseFactor",
|
|
202
|
+
"manaRegenerationRateIncreaseFactor",
|
|
203
|
+
"evasionProbability",
|
|
178
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
207
|
+
"damageFactor",
|
|
179
208
|
"receivedDamageFactor",
|
|
180
209
|
"maximumAutoAttackCount",
|
|
181
210
|
"maximumDamageDealtEventCount",
|
|
@@ -187,7 +216,10 @@ local buffNumberParameters = {
|
|
|
187
216
|
"healingPerInterval",
|
|
188
217
|
"healingOverDuration",
|
|
189
218
|
"damageOnExpiration",
|
|
190
|
-
"healingOnExpiration"
|
|
219
|
+
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
222
|
+
"abilityCooldownFactor"
|
|
191
223
|
}
|
|
192
224
|
local unsuccessfulApplicationMarker = {}
|
|
193
225
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -214,7 +246,7 @@ local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
|
214
246
|
return checkNotNull(firstNativeBuffTypeId)
|
|
215
247
|
end
|
|
216
248
|
local function destroyBuffIfItHasSameUniqueGroup(buff, uniqueGroup)
|
|
217
|
-
if buff[
|
|
249
|
+
if buff[104] == uniqueGroup then
|
|
218
250
|
buff:destroy()
|
|
219
251
|
end
|
|
220
252
|
end
|
|
@@ -222,17 +254,21 @@ local function destroyBuff(buff)
|
|
|
222
254
|
buff:destroy()
|
|
223
255
|
end
|
|
224
256
|
local function expireBuff(buff)
|
|
225
|
-
|
|
226
|
-
|
|
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
|
|
227
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
228
264
|
buff:flashSpecialEffect()
|
|
229
265
|
if remainingDamageOverDuration ~= 0 then
|
|
230
|
-
(buff[
|
|
231
|
-
buff[
|
|
266
|
+
(buff[102] or buff[101]):damageTarget(buff[101], remainingDamageOverDuration)
|
|
267
|
+
buff[113] = nil
|
|
232
268
|
end
|
|
233
269
|
if remainingHealingOverDuration ~= 0 then
|
|
234
|
-
(buff[
|
|
235
|
-
buff[
|
|
270
|
+
(buff[102] or buff[101]):healTarget(buff[101], remainingHealingOverDuration)
|
|
271
|
+
buff[118] = nil
|
|
236
272
|
end
|
|
237
273
|
end
|
|
238
274
|
Timer:run(destroyBuff, buff)
|
|
@@ -240,56 +276,58 @@ local function expireBuff(buff)
|
|
|
240
276
|
end
|
|
241
277
|
local function buffDamageIntervalInitialTimerCallback(buff)
|
|
242
278
|
buffDamageIntervalTimerCallback(buff)
|
|
243
|
-
local timer = buff[
|
|
244
|
-
local damageInterval = buff[
|
|
279
|
+
local timer = buff[114]
|
|
280
|
+
local damageInterval = buff[112]
|
|
245
281
|
if timer ~= nil and damageInterval ~= nil and damageInterval > 0 then
|
|
246
282
|
timer:start(damageInterval, true, buffDamageIntervalTimerCallback, buff)
|
|
247
283
|
end
|
|
248
284
|
end
|
|
249
285
|
buffDamageIntervalTimerCallback = function(buff)
|
|
250
286
|
buff:flashSpecialEffect()
|
|
251
|
-
local source = buff[
|
|
252
|
-
local remainingDamageOverDuration = buff[
|
|
287
|
+
local source = buff[102] or buff[101]
|
|
288
|
+
local remainingDamageOverDuration = buff[113] or 0
|
|
253
289
|
if remainingDamageOverDuration ~= 0 then
|
|
254
|
-
local damageInterval = buff[
|
|
290
|
+
local damageInterval = buff[112] or 0
|
|
255
291
|
if damageInterval ~= 0 then
|
|
256
292
|
local damage = remainingDamageOverDuration / (1 + buff.remainingDuration / damageInterval)
|
|
257
|
-
source:damageTarget(buff[
|
|
258
|
-
buff[
|
|
293
|
+
source:damageTarget(buff[101], damage)
|
|
294
|
+
buff[113] = remainingDamageOverDuration - damage
|
|
259
295
|
end
|
|
260
296
|
end
|
|
261
|
-
local damagePerInterval = buff[
|
|
297
|
+
local damagePerInterval = buff[111] or 0
|
|
262
298
|
if remainingDamageOverDuration == 0 or damagePerInterval ~= 0 then
|
|
263
|
-
source:damageTarget(buff[
|
|
299
|
+
source:damageTarget(buff[101], damagePerInterval)
|
|
264
300
|
end
|
|
265
301
|
end
|
|
266
302
|
local function buffHealingIntervalInitialTimerCallback(buff)
|
|
267
303
|
buffHealingIntervalTimerCallback(buff)
|
|
268
|
-
local timer = buff[
|
|
269
|
-
local healingInterval = buff[
|
|
304
|
+
local timer = buff[119]
|
|
305
|
+
local healingInterval = buff[117]
|
|
270
306
|
if timer ~= nil and healingInterval ~= nil and healingInterval > 0 then
|
|
271
307
|
timer:start(healingInterval, true, buffHealingIntervalTimerCallback, buff)
|
|
272
308
|
end
|
|
273
309
|
end
|
|
274
310
|
buffHealingIntervalTimerCallback = function(buff)
|
|
275
|
-
if buff[
|
|
311
|
+
if buff[117] ~= buff[112] then
|
|
276
312
|
buff:flashSpecialEffect()
|
|
277
313
|
end
|
|
278
|
-
local source = buff[
|
|
279
|
-
local remainingHealingOverDuration = buff[
|
|
314
|
+
local source = buff[102] or buff[101]
|
|
315
|
+
local remainingHealingOverDuration = buff[118] or 0
|
|
280
316
|
if remainingHealingOverDuration ~= 0 then
|
|
281
|
-
local healingInterval = buff[
|
|
317
|
+
local healingInterval = buff[117] or 0
|
|
282
318
|
if healingInterval ~= 0 then
|
|
283
319
|
local healing = remainingHealingOverDuration / (1 + buff.remainingDuration / healingInterval)
|
|
284
|
-
source:healTarget(buff[
|
|
285
|
-
buff[
|
|
320
|
+
source:healTarget(buff[101], healing)
|
|
321
|
+
buff[118] = remainingHealingOverDuration - healing
|
|
286
322
|
end
|
|
287
323
|
end
|
|
288
|
-
local healingPerInterval = buff[
|
|
324
|
+
local healingPerInterval = buff[116] or 0
|
|
289
325
|
if remainingHealingOverDuration == 0 or healingPerInterval ~= 0 then
|
|
290
|
-
source:healTarget(buff[
|
|
326
|
+
source:healTarget(buff[101], healingPerInterval)
|
|
291
327
|
end
|
|
292
328
|
end
|
|
329
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
330
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
293
331
|
____exports.Buff = __TS__Class()
|
|
294
332
|
local Buff = ____exports.Buff
|
|
295
333
|
Buff.name = "Buff"
|
|
@@ -298,38 +336,44 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
298
336
|
UnitBehavior.prototype.____constructor(self, _unit)
|
|
299
337
|
self._unit = _unit
|
|
300
338
|
self.parameters = nil
|
|
301
|
-
self[100] =
|
|
339
|
+
self[100] = 0
|
|
340
|
+
self[101] = _unit
|
|
302
341
|
local typeId
|
|
303
342
|
local polarity
|
|
304
343
|
local resistanceType
|
|
305
344
|
local ability
|
|
345
|
+
local abilityBehavior
|
|
306
346
|
if type(typeIdOrTypeIds) ~= "number" then
|
|
307
347
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
308
348
|
polarity = resistanceTypeOrPolarity
|
|
309
349
|
resistanceType = abilityOrParametersOrResistanceType
|
|
310
|
-
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
|
|
311
354
|
ability = parametersOrAbility
|
|
312
|
-
|
|
313
|
-
ability = nil
|
|
355
|
+
elseif parametersOrAbility ~= nil then
|
|
314
356
|
parameters = parametersOrAbility
|
|
315
357
|
end
|
|
316
358
|
else
|
|
317
359
|
typeId = typeIdOrTypeIds
|
|
318
360
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
319
361
|
resistanceType = resistanceTypeOrPolarity
|
|
320
|
-
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
|
|
321
367
|
ability = abilityOrParametersOrResistanceType
|
|
322
368
|
parameters = parametersOrAbility
|
|
323
|
-
|
|
324
|
-
ability = nil
|
|
369
|
+
elseif abilityOrParametersOrResistanceType ~= nil then
|
|
325
370
|
parameters = abilityOrParametersOrResistanceType
|
|
371
|
+
else
|
|
372
|
+
parameters = parametersOrAbility
|
|
326
373
|
end
|
|
327
374
|
end
|
|
375
|
+
self.sourceAbilityBehavior = abilityBehavior
|
|
328
376
|
self.typeId = typeId
|
|
329
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
330
|
-
parameters = ability
|
|
331
|
-
ability = nil
|
|
332
|
-
end
|
|
333
377
|
local defaultParameters = self.constructor.defaultParameters
|
|
334
378
|
local level = parameters and parameters.level or defaultParameters.level
|
|
335
379
|
local spellStealPriority = parameters and parameters.spellStealPriority or defaultParameters.spellStealPriority
|
|
@@ -354,14 +398,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
354
398
|
end
|
|
355
399
|
self.polarity = resolveEnumValue(ability, level, polarity)
|
|
356
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
|
|
357
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
358
407
|
if buffByTypeId == nil then
|
|
359
408
|
buffByTypeId = {}
|
|
360
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
361
410
|
end
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
413
|
+
if ____opt_15 ~= nil then
|
|
414
|
+
____opt_15:destroy()
|
|
365
415
|
end
|
|
366
416
|
local uniqueGroup = parameters and parameters.uniqueGroup or defaultParameters and defaultParameters.uniqueGroup
|
|
367
417
|
if uniqueGroup ~= nil then
|
|
@@ -375,13 +425,16 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
375
425
|
level,
|
|
376
426
|
duration,
|
|
377
427
|
spellStealPriority,
|
|
378
|
-
learnLevelMinimum
|
|
428
|
+
learnLevelMinimum,
|
|
429
|
+
missProbability
|
|
379
430
|
) then
|
|
431
|
+
self[100] = 1
|
|
380
432
|
UnitBehavior.prototype.destroy(self)
|
|
381
433
|
error(unsuccessfulApplicationMarker, 0)
|
|
382
434
|
end
|
|
383
435
|
local handle = BlzGetUnitAbility(_unit.handle, typeId)
|
|
384
436
|
if handle == nil then
|
|
437
|
+
self[100] = 1
|
|
385
438
|
UnitBehavior.prototype.destroy(self)
|
|
386
439
|
error(unsuccessfulApplicationMarker, 0)
|
|
387
440
|
end
|
|
@@ -390,20 +443,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
390
443
|
self._level = level
|
|
391
444
|
self._spellStealPriority = spellStealPriority
|
|
392
445
|
self._learnLevelMinimum = learnLevelMinimum
|
|
393
|
-
self[
|
|
394
|
-
self[
|
|
395
|
-
self[
|
|
396
|
-
self[
|
|
397
|
-
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)
|
|
398
451
|
if parameters ~= nil or (next(defaultParameters)) ~= nil then
|
|
399
452
|
for ____, buffBooleanParameter in ipairs(buffBooleanParameters) do
|
|
400
|
-
local
|
|
401
|
-
local
|
|
402
|
-
local
|
|
403
|
-
if
|
|
404
|
-
|
|
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]
|
|
405
458
|
end
|
|
406
|
-
if resolveBooleanValue(
|
|
459
|
+
if resolveBooleanValue(____ability_24, ____level_25, ____temp_23) then
|
|
407
460
|
self[buffBooleanParameter] = true
|
|
408
461
|
end
|
|
409
462
|
end
|
|
@@ -419,11 +472,11 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
419
472
|
end
|
|
420
473
|
local maximumDuration = parameters and parameters.maximumDuration or defaultParameters.maximumDuration
|
|
421
474
|
if maximumDuration ~= nil then
|
|
422
|
-
self[
|
|
475
|
+
self[108] = resolveNumberValue(ability, level, maximumDuration)
|
|
423
476
|
end
|
|
424
477
|
local maximumRemainingDuration = parameters and parameters.maximumRemainingDuration or defaultParameters.maximumRemainingDuration
|
|
425
478
|
if maximumRemainingDuration ~= nil then
|
|
426
|
-
self[
|
|
479
|
+
self[109] = resolveNumberValue(ability, level, maximumRemainingDuration)
|
|
427
480
|
end
|
|
428
481
|
local parametersAbilityTypeIds = parameters and parameters.abilityTypeIds or defaultParameters.abilityTypeIds
|
|
429
482
|
if parametersAbilityTypeIds ~= nil then
|
|
@@ -432,24 +485,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
432
485
|
abilityTypeIds = {}
|
|
433
486
|
self._abilityTypeIds = abilityTypeIds
|
|
434
487
|
end
|
|
435
|
-
for
|
|
488
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
436
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
437
491
|
if addedAbility ~= nil then
|
|
438
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
439
493
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
449
|
-
)
|
|
450
|
-
end
|
|
494
|
+
if abilityParameters.isButtonVisible == false then
|
|
495
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
496
|
+
end
|
|
497
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
498
|
+
field[1]:setValue(
|
|
499
|
+
addedAbility,
|
|
500
|
+
resolveNumberValue(ability, level, field[2])
|
|
501
|
+
)
|
|
451
502
|
end
|
|
452
|
-
abilityTypeIds[
|
|
503
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
453
504
|
end
|
|
454
505
|
end
|
|
455
506
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -461,18 +512,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
461
512
|
self._behaviors = behaviors
|
|
462
513
|
end
|
|
463
514
|
end
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
if
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
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
|
|
471
524
|
end
|
|
472
525
|
end
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
526
|
+
if (next(additionalParameters)) ~= nil then
|
|
527
|
+
self.parameters = additionalParameters
|
|
528
|
+
end
|
|
476
529
|
end
|
|
477
530
|
end
|
|
478
531
|
if duration ~= nil and duration > 0 then
|
|
@@ -480,77 +533,101 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
480
533
|
timer:start(duration, false, expireBuff, self)
|
|
481
534
|
self._timer = timer
|
|
482
535
|
end
|
|
536
|
+
self:onCreate()
|
|
537
|
+
self[100] = 1
|
|
538
|
+
Event.invoke(buffCreatedEvent, self)
|
|
483
539
|
end
|
|
484
|
-
function Buff.prototype.
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
local bonusIdByBonusType = self._bonusIdByBonusType
|
|
491
|
-
if bonusIdByBonusType == nil then
|
|
492
|
-
bonusIdByBonusType = {}
|
|
493
|
-
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
|
|
494
546
|
end
|
|
495
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
496
547
|
end
|
|
497
|
-
function Buff.prototype.
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
504
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
505
|
-
)
|
|
506
|
-
local ____isWidgetProvided_38
|
|
507
|
-
if isWidgetProvided then
|
|
508
|
-
____isWidgetProvided_38 = duration
|
|
509
|
-
else
|
|
510
|
-
____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
|
|
511
554
|
end
|
|
512
|
-
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
513
|
-
____Effect_flash_41(
|
|
514
|
-
____Effect_40,
|
|
515
|
-
__TS__SparseArraySpread(____array_39)
|
|
516
|
-
)
|
|
517
555
|
end
|
|
518
|
-
function Buff.prototype.
|
|
519
|
-
|
|
520
|
-
local ____Effect_44 = Effect
|
|
521
|
-
local ____Effect_flash_45 = Effect.flash
|
|
522
|
-
local ____array_43 = __TS__SparseArrayNew(
|
|
556
|
+
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
557
|
+
self:flash(
|
|
523
558
|
self[105],
|
|
524
|
-
|
|
525
|
-
|
|
559
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
560
|
+
widgetOrXOrParametersOrDuration,
|
|
561
|
+
yOrParametersOrDuration,
|
|
562
|
+
parametersOrDuration
|
|
526
563
|
)
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
564
|
+
end
|
|
565
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
566
|
+
self:flash(
|
|
567
|
+
self[106],
|
|
568
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
569
|
+
widgetOrXOrParametersOrDuration,
|
|
570
|
+
yOrParametersOrDuration,
|
|
571
|
+
parametersOrDuration
|
|
572
|
+
)
|
|
573
|
+
end
|
|
574
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
575
|
+
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
530
577
|
else
|
|
531
|
-
|
|
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
|
+
)
|
|
532
593
|
end
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
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)
|
|
538
613
|
end
|
|
539
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
|
|
540
617
|
local unit = self._unit
|
|
541
618
|
if getUnitAbility(unit.handle, self.typeId) == self.handle then
|
|
542
619
|
removeBuff(unit.handle, self.typeId)
|
|
543
620
|
end
|
|
544
621
|
buffByTypeIdByUnit[unit][self.typeId] = nil
|
|
545
|
-
local healingIntervalTimer = self[
|
|
622
|
+
local healingIntervalTimer = self[119]
|
|
546
623
|
if healingIntervalTimer ~= nil then
|
|
547
624
|
healingIntervalTimer:destroy()
|
|
548
|
-
self[
|
|
625
|
+
self[119] = nil
|
|
549
626
|
end
|
|
550
|
-
local damageIntervalTimer = self[
|
|
627
|
+
local damageIntervalTimer = self[114]
|
|
551
628
|
if damageIntervalTimer ~= nil then
|
|
552
629
|
damageIntervalTimer:destroy()
|
|
553
|
-
self[
|
|
630
|
+
self[114] = nil
|
|
554
631
|
end
|
|
555
632
|
if self._timer ~= nil then
|
|
556
633
|
self._timer:destroy()
|
|
@@ -560,25 +637,34 @@ function Buff.prototype.onDestroy(self)
|
|
|
560
637
|
behavior:destroy()
|
|
561
638
|
end
|
|
562
639
|
end
|
|
563
|
-
|
|
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
|
|
564
650
|
unit:decrementDisableAutoAttackCounter()
|
|
565
651
|
end
|
|
566
|
-
if self[
|
|
567
|
-
if self[
|
|
568
|
-
unit:
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
654
|
+
unit:decrementForceStunCounter()
|
|
569
655
|
end
|
|
570
656
|
unit:decrementStunCounter()
|
|
571
657
|
end
|
|
658
|
+
if self[139] then
|
|
659
|
+
unit:decrementGhostCounter()
|
|
660
|
+
end
|
|
572
661
|
if self._abilityTypeIds ~= nil then
|
|
573
|
-
for abilityTypeId in
|
|
662
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
574
663
|
unit:removeAbility(abilityTypeId)
|
|
575
664
|
end
|
|
576
665
|
end
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
580
|
-
end
|
|
581
|
-
end
|
|
666
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
667
|
+
self[100] = 3
|
|
582
668
|
return UnitBehavior.prototype.onDestroy(self)
|
|
583
669
|
end
|
|
584
670
|
function Buff.apply(self, ...)
|
|
@@ -606,81 +692,95 @@ function Buff.apply(self, ...)
|
|
|
606
692
|
end
|
|
607
693
|
end
|
|
608
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
609
|
-
local
|
|
610
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
611
697
|
if __TS__InstanceOf(buff, self) then
|
|
612
698
|
return buff
|
|
613
699
|
end
|
|
614
700
|
return nil
|
|
615
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
616
704
|
function Buff.prototype.onExpiration(self)
|
|
617
705
|
local unit = self.unit
|
|
618
|
-
if self[119] ~= nil then
|
|
619
|
-
(self[101] or unit):damageTarget(unit, self[119] or 0)
|
|
620
|
-
end
|
|
621
706
|
if self[120] ~= nil then
|
|
622
|
-
(self[
|
|
707
|
+
(self[102] or unit):damageTarget(unit, self[120] or 0)
|
|
623
708
|
end
|
|
624
|
-
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
|
|
625
713
|
unit:explode()
|
|
626
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
627
715
|
unit:kill()
|
|
628
716
|
end
|
|
629
717
|
end
|
|
630
718
|
function Buff.prototype.onDeath(self, source)
|
|
631
719
|
local unit = self.unit
|
|
632
|
-
if self[
|
|
720
|
+
if self[122] ~= nil then
|
|
633
721
|
damageArea(
|
|
634
|
-
self[
|
|
635
|
-
self[
|
|
722
|
+
self[102] or unit,
|
|
723
|
+
self[122],
|
|
636
724
|
unit.x,
|
|
637
725
|
unit.y,
|
|
726
|
+
self[124] or 0,
|
|
638
727
|
self[123] or 0,
|
|
639
|
-
self[
|
|
728
|
+
self[126] or 0,
|
|
640
729
|
self[125] or 0,
|
|
641
|
-
self[
|
|
642
|
-
self[127] or 0
|
|
643
|
-
self[126] or 0
|
|
730
|
+
self[128] or 0,
|
|
731
|
+
self[127] or 0
|
|
644
732
|
)
|
|
645
733
|
end
|
|
646
734
|
end
|
|
647
735
|
function Buff.prototype.onDamageDealt(self, target, event)
|
|
648
736
|
if event.isAttack then
|
|
649
|
-
if self[
|
|
650
|
-
local durationIncrease = self[
|
|
651
|
-
local maximumDuration = self[
|
|
737
|
+
if self[107] ~= nil then
|
|
738
|
+
local durationIncrease = self[107]
|
|
739
|
+
local maximumDuration = self[108] or 0
|
|
652
740
|
if maximumDuration > 0 then
|
|
653
741
|
durationIncrease = min(
|
|
654
742
|
durationIncrease,
|
|
655
|
-
max(0, maximumDuration - self[
|
|
743
|
+
max(0, maximumDuration - self[103])
|
|
656
744
|
)
|
|
657
745
|
end
|
|
658
746
|
local remainingDuration = self.remainingDuration + durationIncrease
|
|
659
|
-
local maximumRemainingDuration = self[
|
|
747
|
+
local maximumRemainingDuration = self[109] or 0
|
|
660
748
|
if maximumRemainingDuration > 0 then
|
|
661
749
|
remainingDuration = min(remainingDuration, maximumRemainingDuration)
|
|
662
750
|
end
|
|
663
751
|
self.remainingDuration = remainingDuration
|
|
664
752
|
end
|
|
665
|
-
local autoAttackCount = (self[
|
|
666
|
-
self[
|
|
667
|
-
if autoAttackCount == self[
|
|
753
|
+
local autoAttackCount = (self[129] or 0) + 1
|
|
754
|
+
self[129] = autoAttackCount
|
|
755
|
+
if autoAttackCount == self[130] then
|
|
668
756
|
self:destroy()
|
|
669
757
|
end
|
|
670
758
|
end
|
|
671
|
-
if event.
|
|
672
|
-
local damageDealtEventCount = (self[
|
|
673
|
-
self[
|
|
674
|
-
if damageDealtEventCount == self[
|
|
759
|
+
if event.originalAmount ~= 0 then
|
|
760
|
+
local damageDealtEventCount = (self[131] or 0) + 1
|
|
761
|
+
self[131] = damageDealtEventCount
|
|
762
|
+
if damageDealtEventCount == self[132] then
|
|
675
763
|
self:destroy()
|
|
676
764
|
end
|
|
677
765
|
end
|
|
678
766
|
end
|
|
679
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
680
|
-
if event.
|
|
681
|
-
local
|
|
682
|
-
|
|
683
|
-
|
|
768
|
+
if event.originalAmount ~= 0 then
|
|
769
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
770
|
+
if absorbedDamage > 0 then
|
|
771
|
+
event.amount = event.amount - absorbedDamage
|
|
772
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
773
|
+
local ____self__138_44 = self[138]
|
|
774
|
+
if ____self__138_44 == nil then
|
|
775
|
+
____self__138_44 = true
|
|
776
|
+
end
|
|
777
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
778
|
+
self:destroy()
|
|
779
|
+
end
|
|
780
|
+
end
|
|
781
|
+
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
782
|
+
self[133] = damageReceivedEventCount
|
|
783
|
+
if damageReceivedEventCount == self[134] then
|
|
684
784
|
self:destroy()
|
|
685
785
|
end
|
|
686
786
|
end
|
|
@@ -690,7 +790,7 @@ __TS__SetDescriptor(
|
|
|
690
790
|
Buff.prototype,
|
|
691
791
|
"source",
|
|
692
792
|
{get = function(self)
|
|
693
|
-
return self[
|
|
793
|
+
return self[102] or self._unit
|
|
694
794
|
end},
|
|
695
795
|
true
|
|
696
796
|
)
|
|
@@ -707,13 +807,13 @@ __TS__SetDescriptor(
|
|
|
707
807
|
"remainingDamageOverDuration",
|
|
708
808
|
{
|
|
709
809
|
get = function(self)
|
|
710
|
-
return self[
|
|
810
|
+
return self[113] or 0
|
|
711
811
|
end,
|
|
712
812
|
set = function(self, remainingDamageOverDuration)
|
|
713
|
-
local remainingDamageOverDurationDelta = remainingDamageOverDuration - (self[
|
|
714
|
-
self[
|
|
715
|
-
local damageOverDuration = (self[
|
|
716
|
-
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
|
|
717
817
|
end
|
|
718
818
|
},
|
|
719
819
|
true
|
|
@@ -723,13 +823,13 @@ __TS__SetDescriptor(
|
|
|
723
823
|
"damageOverDuration",
|
|
724
824
|
{
|
|
725
825
|
get = function(self)
|
|
726
|
-
return self[
|
|
826
|
+
return self[110] or 0
|
|
727
827
|
end,
|
|
728
828
|
set = function(self, damageOverDuration)
|
|
729
|
-
local damageOverDurationDelta = damageOverDuration - (self[
|
|
730
|
-
self[
|
|
731
|
-
local remainingDamageOverDuration = (self[
|
|
732
|
-
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
|
|
733
833
|
end
|
|
734
834
|
},
|
|
735
835
|
true
|
|
@@ -739,10 +839,10 @@ __TS__SetDescriptor(
|
|
|
739
839
|
"damagePerInterval",
|
|
740
840
|
{
|
|
741
841
|
get = function(self)
|
|
742
|
-
return self[
|
|
842
|
+
return self[111] or 0
|
|
743
843
|
end,
|
|
744
844
|
set = function(self, damagePerInterval)
|
|
745
|
-
self[
|
|
845
|
+
self[111] = damagePerInterval ~= 0 and damagePerInterval or nil
|
|
746
846
|
end
|
|
747
847
|
},
|
|
748
848
|
true
|
|
@@ -752,25 +852,25 @@ __TS__SetDescriptor(
|
|
|
752
852
|
"damageInterval",
|
|
753
853
|
{
|
|
754
854
|
get = function(self)
|
|
755
|
-
return self[
|
|
855
|
+
return self[112] or 0
|
|
756
856
|
end,
|
|
757
857
|
set = function(self, damageInterval)
|
|
758
858
|
if damageInterval <= 0 then
|
|
759
|
-
self[
|
|
760
|
-
local timer = self[
|
|
859
|
+
self[112] = damageInterval ~= 0 and damageInterval or nil
|
|
860
|
+
local timer = self[114]
|
|
761
861
|
if timer ~= nil then
|
|
762
862
|
timer:destroy()
|
|
763
|
-
self[
|
|
863
|
+
self[114] = nil
|
|
764
864
|
end
|
|
765
865
|
return
|
|
766
866
|
end
|
|
767
|
-
self[
|
|
768
|
-
local
|
|
769
|
-
local elapsed =
|
|
770
|
-
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]
|
|
771
871
|
if timer == nil then
|
|
772
872
|
timer = Timer:create()
|
|
773
|
-
self[
|
|
873
|
+
self[114] = timer
|
|
774
874
|
end
|
|
775
875
|
local initialDelay = damageInterval - (elapsed >= damageInterval and math.fmod(elapsed, damageInterval) or elapsed)
|
|
776
876
|
if initialDelay == damageInterval then
|
|
@@ -787,13 +887,13 @@ __TS__SetDescriptor(
|
|
|
787
887
|
"remainingHealingOverDuration",
|
|
788
888
|
{
|
|
789
889
|
get = function(self)
|
|
790
|
-
return self[
|
|
890
|
+
return self[118] or 0
|
|
791
891
|
end,
|
|
792
892
|
set = function(self, remainingHealingOverDuration)
|
|
793
|
-
local remainingHealingOverDurationDelta = remainingHealingOverDuration - (self[
|
|
794
|
-
self[
|
|
795
|
-
local healingOverDuration = (self[
|
|
796
|
-
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
|
|
797
897
|
end
|
|
798
898
|
},
|
|
799
899
|
true
|
|
@@ -803,13 +903,13 @@ __TS__SetDescriptor(
|
|
|
803
903
|
"healingOverDuration",
|
|
804
904
|
{
|
|
805
905
|
get = function(self)
|
|
806
|
-
return self[
|
|
906
|
+
return self[115] or 0
|
|
807
907
|
end,
|
|
808
908
|
set = function(self, healingOverDuration)
|
|
809
|
-
local healingOverDurationDelta = healingOverDuration - (self[
|
|
810
|
-
self[
|
|
811
|
-
local remainingHealingOverDuration = (self[
|
|
812
|
-
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
|
|
813
913
|
end
|
|
814
914
|
},
|
|
815
915
|
true
|
|
@@ -819,10 +919,10 @@ __TS__SetDescriptor(
|
|
|
819
919
|
"healingPerInterval",
|
|
820
920
|
{
|
|
821
921
|
get = function(self)
|
|
822
|
-
return self[
|
|
922
|
+
return self[116] or 0
|
|
823
923
|
end,
|
|
824
924
|
set = function(self, healingPerInterval)
|
|
825
|
-
self[
|
|
925
|
+
self[116] = healingPerInterval ~= 0 and healingPerInterval or nil
|
|
826
926
|
end
|
|
827
927
|
},
|
|
828
928
|
true
|
|
@@ -832,25 +932,25 @@ __TS__SetDescriptor(
|
|
|
832
932
|
"healingInterval",
|
|
833
933
|
{
|
|
834
934
|
get = function(self)
|
|
835
|
-
return self[
|
|
935
|
+
return self[117] or 0
|
|
836
936
|
end,
|
|
837
937
|
set = function(self, healingInterval)
|
|
838
938
|
if healingInterval <= 0 then
|
|
839
|
-
self[
|
|
840
|
-
local timer = self[
|
|
939
|
+
self[117] = healingInterval ~= 0 and healingInterval or nil
|
|
940
|
+
local timer = self[119]
|
|
841
941
|
if timer ~= nil then
|
|
842
942
|
timer:destroy()
|
|
843
|
-
self[
|
|
943
|
+
self[119] = nil
|
|
844
944
|
end
|
|
845
945
|
return
|
|
846
946
|
end
|
|
847
|
-
self[
|
|
848
|
-
local
|
|
849
|
-
local elapsed =
|
|
850
|
-
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]
|
|
851
951
|
if timer == nil then
|
|
852
952
|
timer = Timer:create()
|
|
853
|
-
self[
|
|
953
|
+
self[119] = timer
|
|
854
954
|
end
|
|
855
955
|
local initialDelay = healingInterval - (elapsed >= healingInterval and math.fmod(elapsed, healingInterval) or elapsed)
|
|
856
956
|
if initialDelay == healingInterval then
|
|
@@ -867,10 +967,10 @@ __TS__SetDescriptor(
|
|
|
867
967
|
"damageOnExpiration",
|
|
868
968
|
{
|
|
869
969
|
get = function(self)
|
|
870
|
-
return self[
|
|
970
|
+
return self[120] or 0
|
|
871
971
|
end,
|
|
872
972
|
set = function(self, damageOnExpiration)
|
|
873
|
-
self[
|
|
973
|
+
self[120] = damageOnExpiration ~= 0 and damageOnExpiration or nil
|
|
874
974
|
end
|
|
875
975
|
},
|
|
876
976
|
true
|
|
@@ -880,10 +980,23 @@ __TS__SetDescriptor(
|
|
|
880
980
|
"healingOnExpiration",
|
|
881
981
|
{
|
|
882
982
|
get = function(self)
|
|
883
|
-
return self[
|
|
983
|
+
return self[121] or 0
|
|
884
984
|
end,
|
|
885
985
|
set = function(self, healingOnExpiration)
|
|
886
|
-
self[
|
|
986
|
+
self[121] = healingOnExpiration ~= 0 and healingOnExpiration or nil
|
|
987
|
+
end
|
|
988
|
+
},
|
|
989
|
+
true
|
|
990
|
+
)
|
|
991
|
+
__TS__SetDescriptor(
|
|
992
|
+
Buff.prototype,
|
|
993
|
+
"damageFactor",
|
|
994
|
+
{
|
|
995
|
+
get = function(self)
|
|
996
|
+
return self:getUnitBonus(UnitBonusType.DAMAGE_FACTOR)
|
|
997
|
+
end,
|
|
998
|
+
set = function(self, damageFactor)
|
|
999
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.DAMAGE_FACTOR, damageFactor)
|
|
887
1000
|
end
|
|
888
1001
|
},
|
|
889
1002
|
true
|
|
@@ -914,30 +1027,79 @@ __TS__SetDescriptor(
|
|
|
914
1027
|
},
|
|
915
1028
|
true
|
|
916
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
|
+
)
|
|
917
1079
|
__TS__SetDescriptor(
|
|
918
1080
|
Buff.prototype,
|
|
919
1081
|
"stuns",
|
|
920
1082
|
{
|
|
921
1083
|
get = function(self)
|
|
922
|
-
local
|
|
923
|
-
if
|
|
924
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
925
1087
|
end
|
|
926
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
927
1089
|
end,
|
|
928
1090
|
set = function(self, stuns)
|
|
929
|
-
if not stuns and self[
|
|
930
|
-
if self[
|
|
931
|
-
self.object:
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1093
|
+
self.object:decrementForceStunCounter()
|
|
932
1094
|
end
|
|
933
1095
|
self.object:decrementStunCounter()
|
|
934
|
-
self[
|
|
935
|
-
elseif stuns and not self[
|
|
936
|
-
if self[
|
|
937
|
-
self.object:
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1099
|
+
self.object:incrementForceStunCounter()
|
|
938
1100
|
end
|
|
939
1101
|
self.object:incrementStunCounter()
|
|
940
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
941
1103
|
end
|
|
942
1104
|
end
|
|
943
1105
|
},
|
|
@@ -948,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
948
1110
|
"ignoresStunImmunity",
|
|
949
1111
|
{
|
|
950
1112
|
get = function(self)
|
|
951
|
-
local
|
|
952
|
-
if
|
|
953
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
954
1116
|
end
|
|
955
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
956
1118
|
end,
|
|
957
1119
|
set = function(self, ignoresStunImmunity)
|
|
958
|
-
if not ignoresStunImmunity and self[
|
|
959
|
-
if self[
|
|
960
|
-
self.object:
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1122
|
+
self.object:decrementForceStunCounter()
|
|
961
1123
|
end
|
|
962
|
-
self[
|
|
963
|
-
elseif ignoresStunImmunity and not self[
|
|
964
|
-
if self[
|
|
965
|
-
self.object:
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1127
|
+
self.object:incrementForceStunCounter()
|
|
966
1128
|
end
|
|
967
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
968
1130
|
end
|
|
969
1131
|
end
|
|
970
1132
|
},
|
|
@@ -975,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
975
1137
|
"disablesAutoAttack",
|
|
976
1138
|
{
|
|
977
1139
|
get = function(self)
|
|
978
|
-
local
|
|
979
|
-
if
|
|
980
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
981
1143
|
end
|
|
982
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
983
1145
|
end,
|
|
984
1146
|
set = function(self, disablesAutoAttack)
|
|
985
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
986
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
987
|
-
self[
|
|
988
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
989
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
990
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
991
1153
|
end
|
|
992
1154
|
end
|
|
993
1155
|
},
|
|
@@ -998,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
998
1160
|
"providesInvulnerability",
|
|
999
1161
|
{
|
|
1000
1162
|
get = function(self)
|
|
1001
|
-
local
|
|
1002
|
-
if
|
|
1003
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1004
1166
|
end
|
|
1005
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1006
1168
|
end,
|
|
1007
1169
|
set = function(self, providesInvulnerability)
|
|
1008
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1009
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1010
|
-
self[
|
|
1011
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1012
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1013
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1014
1176
|
end
|
|
1015
1177
|
end
|
|
1016
1178
|
},
|
|
@@ -1021,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1021
1183
|
"killsOnExpiration",
|
|
1022
1184
|
{
|
|
1023
1185
|
get = function(self)
|
|
1024
|
-
local
|
|
1025
|
-
if
|
|
1026
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1027
1189
|
end
|
|
1028
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1029
1191
|
end,
|
|
1030
1192
|
set = function(self, killsOnExpiration)
|
|
1031
|
-
if not killsOnExpiration and self[
|
|
1032
|
-
self[
|
|
1033
|
-
elseif killsOnExpiration and not self[
|
|
1034
|
-
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
|
|
1035
1197
|
end
|
|
1036
1198
|
end
|
|
1037
1199
|
},
|
|
@@ -1042,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1042
1204
|
"explodesOnExpiration",
|
|
1043
1205
|
{
|
|
1044
1206
|
get = function(self)
|
|
1045
|
-
local
|
|
1046
|
-
if
|
|
1047
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1048
1210
|
end
|
|
1049
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1050
1212
|
end,
|
|
1051
1213
|
set = function(self, killsOnExpiration)
|
|
1052
|
-
if not killsOnExpiration and self[
|
|
1053
|
-
self[
|
|
1054
|
-
elseif killsOnExpiration and not self[
|
|
1055
|
-
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
|
|
1056
1218
|
end
|
|
1057
1219
|
end
|
|
1058
1220
|
},
|
|
@@ -1063,13 +1225,13 @@ __TS__SetDescriptor(
|
|
|
1063
1225
|
"maximumDamageDealtEventCount",
|
|
1064
1226
|
{
|
|
1065
1227
|
get = function(self)
|
|
1066
|
-
return self[
|
|
1228
|
+
return self[132] or 0
|
|
1067
1229
|
end,
|
|
1068
1230
|
set = function(self, maximumDamageDealtEventCount)
|
|
1069
1231
|
if maximumDamageDealtEventCount == 0 then
|
|
1070
|
-
self[
|
|
1232
|
+
self[132] = nil
|
|
1071
1233
|
else
|
|
1072
|
-
self[
|
|
1234
|
+
self[132] = maximumDamageDealtEventCount
|
|
1073
1235
|
end
|
|
1074
1236
|
end
|
|
1075
1237
|
},
|
|
@@ -1080,13 +1242,13 @@ __TS__SetDescriptor(
|
|
|
1080
1242
|
"maximumDamageReceivedEventCount",
|
|
1081
1243
|
{
|
|
1082
1244
|
get = function(self)
|
|
1083
|
-
return self[
|
|
1245
|
+
return self[134] or 0
|
|
1084
1246
|
end,
|
|
1085
1247
|
set = function(self, maximumDamageReceivedEventCount)
|
|
1086
1248
|
if maximumDamageReceivedEventCount == 0 then
|
|
1087
|
-
self[
|
|
1249
|
+
self[134] = nil
|
|
1088
1250
|
else
|
|
1089
|
-
self[
|
|
1251
|
+
self[134] = maximumDamageReceivedEventCount
|
|
1090
1252
|
end
|
|
1091
1253
|
end
|
|
1092
1254
|
},
|
|
@@ -1097,13 +1259,13 @@ __TS__SetDescriptor(
|
|
|
1097
1259
|
"maximumAutoAttackCount",
|
|
1098
1260
|
{
|
|
1099
1261
|
get = function(self)
|
|
1100
|
-
return self[
|
|
1262
|
+
return self[130] or 0
|
|
1101
1263
|
end,
|
|
1102
1264
|
set = function(self, maximumAutoAttackCount)
|
|
1103
1265
|
if maximumAutoAttackCount == 0 then
|
|
1104
|
-
self[
|
|
1266
|
+
self[130] = nil
|
|
1105
1267
|
else
|
|
1106
|
-
self[
|
|
1268
|
+
self[130] = maximumAutoAttackCount
|
|
1107
1269
|
end
|
|
1108
1270
|
end
|
|
1109
1271
|
},
|
|
@@ -1114,10 +1276,10 @@ __TS__SetDescriptor(
|
|
|
1114
1276
|
"durationIncreaseOnAutoAttack",
|
|
1115
1277
|
{
|
|
1116
1278
|
get = function(self)
|
|
1117
|
-
return self[
|
|
1279
|
+
return self[107] or 0
|
|
1118
1280
|
end,
|
|
1119
1281
|
set = function(self, durationIncreaseOnAutoAttack)
|
|
1120
|
-
self[
|
|
1282
|
+
self[107] = durationIncreaseOnAutoAttack
|
|
1121
1283
|
end
|
|
1122
1284
|
},
|
|
1123
1285
|
true
|
|
@@ -1148,12 +1310,52 @@ __TS__SetDescriptor(
|
|
|
1148
1310
|
},
|
|
1149
1311
|
true
|
|
1150
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
|
+
)
|
|
1151
1339
|
__TS__SetDescriptor(
|
|
1152
1340
|
Buff.prototype,
|
|
1153
1341
|
"duration",
|
|
1154
|
-
{
|
|
1155
|
-
|
|
1156
|
-
|
|
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
|
+
},
|
|
1157
1359
|
true
|
|
1158
1360
|
)
|
|
1159
1361
|
__TS__SetDescriptor(
|
|
@@ -1161,15 +1363,15 @@ __TS__SetDescriptor(
|
|
|
1161
1363
|
"remainingDuration",
|
|
1162
1364
|
{
|
|
1163
1365
|
get = function(self)
|
|
1164
|
-
local
|
|
1165
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1166
1368
|
end,
|
|
1167
1369
|
set = function(self, remainingDuration)
|
|
1168
|
-
local
|
|
1169
|
-
local
|
|
1170
|
-
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)
|
|
1171
1373
|
if remainingDurationDelta ~= 0 then
|
|
1172
|
-
self[
|
|
1374
|
+
self[103] = self[103] + remainingDurationDelta
|
|
1173
1375
|
if remainingDuration <= 0 then
|
|
1174
1376
|
Timer:run(destroyBuff, self)
|
|
1175
1377
|
else
|
|
@@ -1181,7 +1383,8 @@ __TS__SetDescriptor(
|
|
|
1181
1383
|
self._level,
|
|
1182
1384
|
remainingDuration,
|
|
1183
1385
|
self._spellStealPriority,
|
|
1184
|
-
self._learnLevelMinimum
|
|
1386
|
+
self._learnLevelMinimum,
|
|
1387
|
+
self[146]
|
|
1185
1388
|
) then
|
|
1186
1389
|
local timer = self._timer
|
|
1187
1390
|
if timer == nil then
|
|
@@ -1195,37 +1398,135 @@ __TS__SetDescriptor(
|
|
|
1195
1398
|
end
|
|
1196
1399
|
},
|
|
1197
1400
|
true
|
|
1198
|
-
)
|
|
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;
|
|
1199
1495
|
(function(self)
|
|
1200
|
-
local function destroyBuffIfNeeded(buff)
|
|
1201
|
-
|
|
1202
|
-
|
|
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
|
|
1203
1504
|
end
|
|
1204
1505
|
end
|
|
1205
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1206
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1207
1508
|
if buffByTypeId ~= nil then
|
|
1208
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1209
1510
|
if buff ~= nil then
|
|
1210
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1211
1512
|
end
|
|
1212
1513
|
end
|
|
1213
1514
|
end
|
|
1214
|
-
____exports.checkBuffs = function(unit)
|
|
1215
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1216
1517
|
end
|
|
1217
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1218
1519
|
0,
|
|
1219
1520
|
function(caster)
|
|
1220
|
-
____exports.checkBuffs(caster)
|
|
1221
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1222
1523
|
end
|
|
1223
1524
|
)
|
|
1224
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1225
1526
|
0,
|
|
1226
1527
|
function(caster, ability, target)
|
|
1227
|
-
____exports.checkBuffs(target)
|
|
1228
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1229
1530
|
end
|
|
1230
1531
|
)
|
|
1231
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1236,18 +1537,47 @@ __TS__SetDescriptor(
|
|
|
1236
1537
|
y,
|
|
1237
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1238
1539
|
)
|
|
1239
|
-
forEach(units, ____exports.checkBuffs)
|
|
1240
|
-
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
|
|
1241
1565
|
end
|
|
1242
1566
|
)
|
|
1243
1567
|
Unit.onDamage:addListener(
|
|
1244
1568
|
0,
|
|
1245
1569
|
function(source, target)
|
|
1246
1570
|
if source ~= nil then
|
|
1247
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1248
1572
|
end
|
|
1249
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1250
1574
|
end
|
|
1251
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)
|
|
1252
1582
|
end)(Buff)
|
|
1253
1583
|
return ____exports
|