warscript 0.0.1-dev.c37d12c → 0.0.1-dev.c47d565
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 +18 -0
- package/attributes.lua +32 -0
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- 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 +24 -3
- package/core/types/frame.lua +198 -42
- package/core/types/group.d.ts +0 -1
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +14 -9
- package/core/types/image.d.ts +0 -1
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- 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 +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +13 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +127 -4
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +24 -11
- 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.d.ts +13 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +37 -9
- package/engine/behaviour/ability/damage.d.ts +43 -11
- package/engine/behaviour/ability/damage.lua +89 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- 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 +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +37 -7
- package/engine/behaviour/ability.lua +208 -27
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +49 -4
- package/engine/behaviour/unit.lua +293 -2
- package/engine/buff.d.ts +177 -59
- package/engine/buff.lua +795 -281
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +31 -15
- package/engine/internal/ability.lua +177 -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.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +3 -1
- package/engine/internal/mechanics/cast-ability.lua +89 -0
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- 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/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- 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 +28 -8
- package/engine/internal/unit/bonus.lua +136 -9
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- 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/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+transport.lua +4 -10
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +91 -38
- package/engine/internal/unit.lua +669 -351
- 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 +14 -3
- 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/combat-classification.d.ts +0 -2
- 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 +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -1
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- 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/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/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/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -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/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- 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 +48 -21
- package/engine/object-data/entry/ability-type.lua +377 -44
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +143 -202
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +10 -13
- package/engine/object-data/entry/buff-type.lua +39 -29
- package/engine/object-data/entry/destructible-type.d.ts +32 -3
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +32 -4
- package/engine/object-data/entry/item-type.lua +177 -2
- package/engine/object-data/entry/lightning-type.d.ts +6 -9
- 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 +121 -6
- package/engine/object-data/entry/unit-type.lua +959 -118
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +2 -3
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +23 -17
- 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 +33 -8
- package/engine/object-field/ability.lua +63 -3
- 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 -2
- package/engine/object-field/unit.lua +268 -4
- package/engine/object-field.d.ts +30 -11
- package/engine/object-field.lua +386 -122
- package/engine/random.d.ts +11 -0
- package/engine/random.lua +30 -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 +47 -1
- package/engine/standard/entries/unit-type.lua +47 -1
- package/engine/standard/fields/ability.d.ts +5 -3
- package/engine/standard/fields/ability.lua +5 -3
- 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 +14 -0
- package/engine/unit.lua +23 -2
- package/event.d.ts +3 -4
- package/event.lua +9 -5
- package/global/vec2.lua +1 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +147 -43
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +2 -2
- 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/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +13 -12
- package/objutil/object.d.ts +0 -1
- package/objutil/object.lua +1 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -24
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +20 -6
- package/utility/arrays.lua +62 -3
- package/utility/bit-set.d.ts +0 -2
- 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 +17 -4
- package/utility/linked-set.lua +70 -3
- package/utility/lua-maps.d.ts +16 -4
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +3 -2
- 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 +6 -2
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → mechanics/cast-ability.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/internal/unit.lua
CHANGED
|
@@ -5,9 +5,12 @@ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
|
5
5
|
local __TS__New = ____lualib.__TS__New
|
|
6
6
|
local __TS__Class = ____lualib.__TS__Class
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
8
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
9
10
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
|
-
local
|
|
11
|
+
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
12
|
+
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
13
|
+
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
11
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
12
15
|
local Set = ____lualib.Set
|
|
13
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -44,37 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
44
47
|
local ____constants = require("engine.constants")
|
|
45
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
46
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
47
|
-
local
|
|
48
|
-
local
|
|
49
|
-
local
|
|
50
|
-
local
|
|
50
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
51
67
|
local match = string.match
|
|
52
68
|
local ____tostring = _G.tostring
|
|
53
69
|
local setUnitAnimation = SetUnitAnimation
|
|
54
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
55
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
56
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
57
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
58
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
59
73
|
local getHeroStr = GetHeroStr
|
|
60
74
|
local getHeroAgi = GetHeroAgi
|
|
61
75
|
local getHeroInt = GetHeroInt
|
|
62
|
-
local setHeroStr = SetHeroStr
|
|
63
|
-
local setHeroAgi = SetHeroAgi
|
|
64
|
-
local setHeroInt = SetHeroInt
|
|
65
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
66
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
67
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
68
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
69
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
70
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
71
|
-
local setUnitScale = SetUnitScale
|
|
72
82
|
local setUnitPosition = SetUnitPosition
|
|
73
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
74
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
75
86
|
local createUnit = CreateUnit
|
|
76
87
|
local killUnit = KillUnit
|
|
77
|
-
local setUnitExploded = SetUnitExploded
|
|
78
88
|
local removeUnit = RemoveUnit
|
|
79
89
|
local getUnitTypeId = GetUnitTypeId
|
|
80
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -90,11 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
90
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
91
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
92
102
|
local isUnitInRange = IsUnitInRange
|
|
93
|
-
local
|
|
94
|
-
local
|
|
103
|
+
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
104
|
+
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
105
|
+
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
106
|
+
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
95
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
96
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
97
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
98
109
|
local isUnitInvisible = IsUnitInvisible
|
|
99
110
|
local isUnitVisible = IsUnitVisible
|
|
100
111
|
local getUnitX = GetUnitX
|
|
@@ -111,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
111
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
112
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
113
124
|
local unitAlive = UnitAlive
|
|
114
|
-
local unitAddType = UnitAddType
|
|
115
|
-
local unitRemoveType = UnitRemoveType
|
|
116
|
-
local isUnitIllusion = IsUnitIllusion
|
|
117
|
-
local isUnitType = IsUnitType
|
|
118
125
|
local isUnitAlly = IsUnitAlly
|
|
119
126
|
local isUnitEnemy = IsUnitEnemy
|
|
120
127
|
local getOwningPlayer = GetOwningPlayer
|
|
121
|
-
local setUnitColor = SetUnitColor
|
|
122
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
123
128
|
____exports.UnitClassification = {}
|
|
124
129
|
local UnitClassification = ____exports.UnitClassification
|
|
125
130
|
do
|
|
@@ -129,6 +134,7 @@ do
|
|
|
129
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
130
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
131
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
132
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
133
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
134
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -275,16 +281,14 @@ function UnitTriggerEvent.prototype.____constructor(self, eventType, c)
|
|
|
275
281
|
end
|
|
276
282
|
local function dispatch(event, idGetter, argsGetter)
|
|
277
283
|
local initialized = false
|
|
278
|
-
local x = {}
|
|
279
284
|
return setmetatable(
|
|
280
|
-
|
|
285
|
+
{},
|
|
281
286
|
{
|
|
282
287
|
__index = function(self, id)
|
|
283
288
|
if type(id) ~= "number" then
|
|
284
289
|
return event[id]
|
|
285
290
|
end
|
|
286
291
|
if not initialized then
|
|
287
|
-
local invoke = Event.invoke
|
|
288
292
|
event:addListener(function(...)
|
|
289
293
|
local id = idGetter(...)
|
|
290
294
|
local dispatched = rawget(self, id)
|
|
@@ -322,7 +326,6 @@ local function dispatchAbility(event)
|
|
|
322
326
|
return event[id]
|
|
323
327
|
end
|
|
324
328
|
if not initialized then
|
|
325
|
-
local invoke = Event.invoke
|
|
326
329
|
event:addListener(function(unit, ability, ...)
|
|
327
330
|
local dispatched = rawget(self, ability.typeId)
|
|
328
331
|
if dispatched ~= nil then
|
|
@@ -339,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
339
342
|
}
|
|
340
343
|
)
|
|
341
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
342
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
343
349
|
if self[0] ~= nil then
|
|
344
350
|
return
|
|
@@ -350,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
350
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
351
357
|
end
|
|
352
358
|
end
|
|
353
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
354
367
|
local jlimitopByOperator = {
|
|
355
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
356
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -368,15 +381,27 @@ local modifiers = {
|
|
|
368
381
|
end,
|
|
369
382
|
armor = function(unit, value)
|
|
370
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
371
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
372
389
|
end
|
|
373
|
-
local ability = assert(
|
|
374
|
-
|
|
375
|
-
ability,
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
380
405
|
end
|
|
381
406
|
}
|
|
382
407
|
local getters = {
|
|
@@ -387,53 +412,184 @@ local getters = {
|
|
|
387
412
|
return BlzGetUnitArmor(unit)
|
|
388
413
|
end
|
|
389
414
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
415
|
+
____exports.UnitWeapon = __TS__Class()
|
|
416
|
+
local UnitWeapon = ____exports.UnitWeapon
|
|
417
|
+
UnitWeapon.name = "UnitWeapon"
|
|
418
|
+
function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
419
|
+
self.unit = unit
|
|
420
|
+
self.index = index
|
|
421
|
+
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
435
|
+
__TS__SetDescriptor(
|
|
436
|
+
UnitWeapon.prototype,
|
|
437
|
+
"cooldown",
|
|
438
|
+
{
|
|
439
|
+
get = function(self)
|
|
440
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index)
|
|
441
|
+
end,
|
|
442
|
+
set = function(self, cooldown)
|
|
443
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_BASE_COOLDOWN, self.index, cooldown)
|
|
444
|
+
end
|
|
445
|
+
},
|
|
446
|
+
true
|
|
447
|
+
)
|
|
448
|
+
__TS__SetDescriptor(
|
|
449
|
+
UnitWeapon.prototype,
|
|
450
|
+
"damage",
|
|
451
|
+
{
|
|
452
|
+
get = function(self)
|
|
453
|
+
local minimumDamage = self.damageBase + self.damageDiceCount
|
|
454
|
+
local maximumDamage = self.damageBase + self.damageDiceCount * self.damageDiceSideCount
|
|
455
|
+
return {minimumDamage, maximumDamage}
|
|
456
|
+
end,
|
|
457
|
+
set = function(self, ____bindingPattern0)
|
|
458
|
+
local maximumDamage
|
|
459
|
+
local minimumDamage
|
|
460
|
+
minimumDamage = ____bindingPattern0[1]
|
|
461
|
+
maximumDamage = ____bindingPattern0[2]
|
|
462
|
+
self.damageBase = minimumDamage - 1
|
|
463
|
+
self.damageDiceCount = 1
|
|
464
|
+
self.damageDiceSideCount = maximumDamage - minimumDamage + 1
|
|
465
|
+
end
|
|
466
|
+
},
|
|
467
|
+
true
|
|
468
|
+
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
482
|
+
__TS__SetDescriptor(
|
|
483
|
+
UnitWeapon.prototype,
|
|
484
|
+
"damageBase",
|
|
485
|
+
{
|
|
486
|
+
get = function(self)
|
|
487
|
+
return BlzGetUnitBaseDamage(self.unit.handle, self.index)
|
|
488
|
+
end,
|
|
489
|
+
set = function(self, damageBase)
|
|
490
|
+
BlzSetUnitBaseDamage(self.unit.handle, self.index, damageBase)
|
|
491
|
+
end
|
|
492
|
+
},
|
|
493
|
+
true
|
|
494
|
+
)
|
|
495
|
+
__TS__SetDescriptor(
|
|
496
|
+
UnitWeapon.prototype,
|
|
497
|
+
"damageDiceCount",
|
|
498
|
+
{
|
|
499
|
+
get = function(self)
|
|
500
|
+
return BlzGetUnitDiceNumber(self.unit.handle, self.index)
|
|
501
|
+
end,
|
|
502
|
+
set = function(self, damageDiceCount)
|
|
503
|
+
BlzSetUnitDiceNumber(self.unit.handle, self.index, damageDiceCount)
|
|
504
|
+
end
|
|
505
|
+
},
|
|
506
|
+
true
|
|
507
|
+
)
|
|
508
|
+
__TS__SetDescriptor(
|
|
509
|
+
UnitWeapon.prototype,
|
|
510
|
+
"damageDiceSideCount",
|
|
511
|
+
{
|
|
512
|
+
get = function(self)
|
|
513
|
+
return BlzGetUnitDiceSides(self.unit.handle, self.index)
|
|
514
|
+
end,
|
|
515
|
+
set = function(self, damageDiceSideCount)
|
|
516
|
+
BlzSetUnitDiceSides(self.unit.handle, self.index, damageDiceSideCount)
|
|
517
|
+
end
|
|
518
|
+
},
|
|
519
|
+
true
|
|
520
|
+
)
|
|
521
|
+
__TS__SetDescriptor(
|
|
522
|
+
UnitWeapon.prototype,
|
|
523
|
+
"range",
|
|
524
|
+
{
|
|
525
|
+
get = function(self)
|
|
526
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_RANGE, self.index)
|
|
527
|
+
end,
|
|
528
|
+
set = function(self, range)
|
|
529
|
+
local handle = self.unit.handle
|
|
530
|
+
local index = self.index
|
|
531
|
+
setUnitWeaponRealField(
|
|
532
|
+
handle,
|
|
533
|
+
UNIT_WEAPON_RF_ATTACK_RANGE,
|
|
534
|
+
index + 1,
|
|
535
|
+
getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index + 1) + (range - getUnitWeaponRealField(handle, UNIT_WEAPON_RF_ATTACK_RANGE, index))
|
|
536
|
+
)
|
|
537
|
+
end
|
|
538
|
+
},
|
|
539
|
+
true
|
|
540
|
+
)
|
|
541
|
+
__TS__SetDescriptor(
|
|
542
|
+
UnitWeapon.prototype,
|
|
543
|
+
"impactDelay",
|
|
544
|
+
{
|
|
545
|
+
get = function(self)
|
|
546
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index)
|
|
547
|
+
end,
|
|
548
|
+
set = function(self, impactDelay)
|
|
549
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_DAMAGE_POINT, self.index, impactDelay)
|
|
550
|
+
end
|
|
551
|
+
},
|
|
552
|
+
true
|
|
553
|
+
)
|
|
554
|
+
__TS__SetDescriptor(
|
|
555
|
+
UnitWeapon.prototype,
|
|
556
|
+
"missileArc",
|
|
557
|
+
{
|
|
558
|
+
get = function(self)
|
|
559
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index)
|
|
560
|
+
end,
|
|
561
|
+
set = function(self, missileArc)
|
|
562
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_ARC, self.index, missileArc)
|
|
563
|
+
end
|
|
564
|
+
},
|
|
565
|
+
true
|
|
566
|
+
)
|
|
567
|
+
__TS__SetDescriptor(
|
|
568
|
+
UnitWeapon.prototype,
|
|
569
|
+
"missileModelPath",
|
|
570
|
+
{
|
|
571
|
+
get = function(self)
|
|
572
|
+
return getUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index)
|
|
573
|
+
end,
|
|
574
|
+
set = function(self, missileModelPath)
|
|
575
|
+
setUnitWeaponStringField(self.unit.handle, UNIT_WEAPON_SF_ATTACK_PROJECTILE_ART, self.index, missileModelPath)
|
|
576
|
+
end
|
|
577
|
+
},
|
|
578
|
+
true
|
|
579
|
+
)
|
|
580
|
+
__TS__SetDescriptor(
|
|
581
|
+
UnitWeapon.prototype,
|
|
582
|
+
"missileSpeed",
|
|
583
|
+
{
|
|
584
|
+
get = function(self)
|
|
585
|
+
return getUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index)
|
|
586
|
+
end,
|
|
587
|
+
set = function(self, missileSpeed)
|
|
588
|
+
setUnitWeaponRealField(self.unit.handle, UNIT_WEAPON_RF_ATTACK_PROJECTILE_SPEED, self.index, missileSpeed)
|
|
589
|
+
end
|
|
590
|
+
},
|
|
591
|
+
true
|
|
592
|
+
)
|
|
437
593
|
local getItemAbility = BlzGetItemAbility
|
|
438
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
439
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -442,8 +598,6 @@ local getAbilityName = GetAbilityName
|
|
|
442
598
|
local unitAddAbility = UnitAddAbility
|
|
443
599
|
local getUnitGoldCost = GetUnitGoldCost
|
|
444
600
|
local getUnitLumberCost = GetUnitWoodCost
|
|
445
|
-
local unitMakeAbilityPermanent = UnitMakeAbilityPermanent
|
|
446
|
-
local unitAddItem = UnitAddItem
|
|
447
601
|
local unitRemoveAbility = UnitRemoveAbility
|
|
448
602
|
local function retrieveAbility(unit, ability, abilityId)
|
|
449
603
|
if ability == nil then
|
|
@@ -453,19 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
453
607
|
____exports.Unit:of(unit)
|
|
454
608
|
)
|
|
455
609
|
end
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
return UnitAbility:of(
|
|
459
|
-
ability,
|
|
460
|
-
abilityId,
|
|
461
|
-
____exports.Unit:of(unit)
|
|
462
|
-
)
|
|
463
|
-
end
|
|
464
|
-
else
|
|
465
|
-
unitRemoveAbility(unit, abilityId)
|
|
466
|
-
end
|
|
467
|
-
for i = 0, unitInventorySize(unit) - 1 do
|
|
468
|
-
local item = unitItemInSlot(unit, i)
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
469
612
|
if getItemAbility(item, abilityId) == ability then
|
|
470
613
|
return ItemAbility:of(
|
|
471
614
|
ability,
|
|
@@ -510,55 +653,110 @@ local fieldSetters = {
|
|
|
510
653
|
}
|
|
511
654
|
local dummies = {}
|
|
512
655
|
for ____, player in ipairs(Player.all) do
|
|
513
|
-
local dummy = assert(
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
520
667
|
ShowUnit(dummy, false)
|
|
521
668
|
dummies[player] = dummy
|
|
522
669
|
end
|
|
670
|
+
local function delayHealthChecksCallback(unit)
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
672
|
+
if counter ~= 0 then
|
|
673
|
+
unit[104] = counter
|
|
674
|
+
return
|
|
675
|
+
end
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
678
|
+
if healthBonus ~= nil then
|
|
679
|
+
unit[105] = nil
|
|
680
|
+
local handle = unit.handle
|
|
681
|
+
BlzSetUnitMaxHP(
|
|
682
|
+
handle,
|
|
683
|
+
BlzGetUnitMaxHP(handle) - healthBonus
|
|
684
|
+
)
|
|
685
|
+
end
|
|
686
|
+
end
|
|
687
|
+
local nextSyncId = 1
|
|
688
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
689
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
690
|
+
local function addAbility(unit, abilityTypeId)
|
|
691
|
+
local ____unitAddAbility_result_0
|
|
692
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
693
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
694
|
+
else
|
|
695
|
+
____unitAddAbility_result_0 = nil
|
|
696
|
+
end
|
|
697
|
+
return ____unitAddAbility_result_0
|
|
698
|
+
end
|
|
523
699
|
____exports.Unit = __TS__Class()
|
|
524
700
|
local Unit = ____exports.Unit
|
|
525
701
|
Unit.name = "Unit"
|
|
526
702
|
__TS__ClassExtends(Unit, Handle)
|
|
527
703
|
function Unit.prototype.____constructor(self, handle)
|
|
528
704
|
Handle.prototype.____constructor(self, handle)
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
529
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
530
|
-
assert(
|
|
531
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
532
719
|
if unitAddAbility(
|
|
533
720
|
handle,
|
|
534
721
|
fourCC("Amrf")
|
|
535
722
|
) then
|
|
536
|
-
assert(
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
540
731
|
end
|
|
732
|
+
unitBySyncId[self.syncId] = self
|
|
541
733
|
local ____ = self.abilities
|
|
542
734
|
end
|
|
543
|
-
function Unit.prototype.getEvent(self,
|
|
544
|
-
self.events = self.events or (
|
|
545
|
-
local eventId = GetHandleId(
|
|
546
|
-
|
|
547
|
-
|
|
735
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
736
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
737
|
+
local eventId = GetHandleId(jevent)
|
|
738
|
+
local event = self.events:get(eventId)
|
|
739
|
+
if event == nil then
|
|
740
|
+
event = __TS__New(
|
|
548
741
|
TriggerEvent,
|
|
549
742
|
function(trigger)
|
|
550
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
551
744
|
end,
|
|
552
745
|
collector or (function() return {} end)
|
|
553
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
554
748
|
end
|
|
555
|
-
return
|
|
749
|
+
return event
|
|
750
|
+
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
556
756
|
end
|
|
557
757
|
function Unit.prototype.onDestroy(self)
|
|
558
758
|
local handle = self.handle
|
|
559
|
-
|
|
560
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
561
|
-
end
|
|
759
|
+
self:saveData()
|
|
562
760
|
local abilities = self.abilities
|
|
563
761
|
for ____, ability in ipairs(abilities) do
|
|
564
762
|
ability:destroy()
|
|
@@ -576,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
576
774
|
end
|
|
577
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
578
776
|
if eventsToDestroy ~= nil then
|
|
579
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
580
780
|
end
|
|
581
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
582
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -594,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
594
794
|
self._attackHandlers = handlers
|
|
595
795
|
if #handlers == 1 then
|
|
596
796
|
local handle = self.handle
|
|
597
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
598
802
|
end
|
|
599
803
|
return handler
|
|
600
804
|
end
|
|
@@ -623,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
623
827
|
end}
|
|
624
828
|
end
|
|
625
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
626
|
-
local
|
|
627
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
830
|
+
local ____combatClassification_2 = combatClassification
|
|
831
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
628
832
|
end
|
|
629
833
|
function Unit.prototype.addClassification(self, classification)
|
|
630
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
631
835
|
end
|
|
632
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
633
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
634
838
|
end
|
|
635
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
636
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
637
841
|
end
|
|
638
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
639
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -642,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
642
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
643
847
|
end
|
|
644
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
645
|
-
local
|
|
849
|
+
local ____temp_4
|
|
646
850
|
if type(x) == "number" then
|
|
647
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
648
852
|
else
|
|
649
|
-
|
|
853
|
+
local ____temp_3
|
|
854
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
855
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
856
|
+
else
|
|
857
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
858
|
+
end
|
|
859
|
+
____temp_4 = ____temp_3
|
|
650
860
|
end
|
|
651
|
-
return
|
|
861
|
+
return ____temp_4
|
|
652
862
|
end
|
|
653
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
654
864
|
return isUnitAlly(
|
|
@@ -666,13 +876,31 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
666
876
|
if type(animation) == "number" then
|
|
667
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
668
878
|
elseif rarity then
|
|
669
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
670
880
|
else
|
|
671
881
|
setUnitAnimation(self.handle, animation)
|
|
672
882
|
end
|
|
673
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
674
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
675
|
-
|
|
888
|
+
QueueUnitAnimation(self.handle, animation)
|
|
889
|
+
end
|
|
890
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
891
|
+
local firstWeapon = self.firstWeapon
|
|
892
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
893
|
+
return firstWeapon
|
|
894
|
+
end
|
|
895
|
+
local secondWeapon = self.secondWeapon
|
|
896
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
897
|
+
return secondWeapon
|
|
898
|
+
end
|
|
899
|
+
return nil
|
|
900
|
+
end
|
|
901
|
+
function Unit.prototype.delayHealthChecks(self)
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
903
|
+
Timer:run(delayHealthChecksCallback, self)
|
|
676
904
|
end
|
|
677
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
678
906
|
setUnitPosition(self.handle, x, y)
|
|
@@ -681,14 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
681
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
682
910
|
end
|
|
683
911
|
function Unit.prototype.explode(self)
|
|
684
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
685
913
|
killUnit(self.handle)
|
|
686
914
|
end
|
|
687
915
|
function Unit.prototype.kill(self)
|
|
688
916
|
killUnit(self.handle)
|
|
689
917
|
end
|
|
690
|
-
function Unit.prototype.revive(self,
|
|
691
|
-
|
|
918
|
+
function Unit.prototype.revive(self, x, y, doEffect)
|
|
919
|
+
local ____ReviveHero_7 = ReviveHero
|
|
920
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
921
|
+
local ____doEffect_5 = doEffect
|
|
922
|
+
if ____doEffect_5 == nil then
|
|
923
|
+
____doEffect_5 = false
|
|
924
|
+
end
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
692
927
|
end
|
|
693
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
694
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -731,17 +966,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
731
966
|
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
732
967
|
end
|
|
733
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
740
975
|
local abilities = self.abilities
|
|
741
976
|
abilities[#abilities + 1] = ability
|
|
742
|
-
return ability
|
|
743
977
|
end
|
|
744
|
-
return
|
|
978
|
+
return ability
|
|
745
979
|
end
|
|
746
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
747
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -755,47 +989,47 @@ end
|
|
|
755
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
756
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
757
991
|
end
|
|
758
|
-
function Unit.prototype.
|
|
759
|
-
local
|
|
760
|
-
|
|
761
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
762
|
-
return nil
|
|
763
|
-
end
|
|
764
|
-
return UnitAbility:of(
|
|
765
|
-
getUnitAbility(self.handle, abilityId),
|
|
766
|
-
abilityId,
|
|
767
|
-
self
|
|
768
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
769
995
|
end
|
|
770
|
-
function Unit.prototype.removeAbility(self,
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
996
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
997
|
+
local abilities = self.abilities
|
|
998
|
+
for i = 1, #abilities do
|
|
999
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1000
|
+
local ability = abilities[i]
|
|
1001
|
+
tremove(abilities, i)
|
|
1002
|
+
if ability.state == 2 then
|
|
1003
|
+
break
|
|
778
1004
|
end
|
|
1005
|
+
ability:destroy()
|
|
1006
|
+
return true
|
|
779
1007
|
end
|
|
780
|
-
return true
|
|
781
1008
|
end
|
|
782
|
-
return
|
|
1009
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
783
1010
|
end
|
|
784
1011
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
785
1012
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
786
1013
|
end
|
|
1014
|
+
function Unit.prototype.getAbilityRemainingCooldown(self, abilityId)
|
|
1015
|
+
return BlzGetUnitAbilityCooldownRemaining(self.handle, abilityId)
|
|
1016
|
+
end
|
|
787
1017
|
function Unit.prototype.startAbilityCooldown(self, abilityId, cooldown)
|
|
788
1018
|
BlzStartUnitAbilityCooldown(self.handle, abilityId, cooldown)
|
|
789
1019
|
end
|
|
790
1020
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
791
1021
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
792
1022
|
end
|
|
793
|
-
function Unit.prototype.interruptAttack(self)
|
|
794
|
-
unitInterruptAttack(self.handle)
|
|
795
|
-
end
|
|
796
1023
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
797
|
-
|
|
798
|
-
unitDisableAbility(
|
|
1024
|
+
local handle = self.handle
|
|
1025
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
1026
|
+
Timer:run(
|
|
1027
|
+
unitDisableAbility,
|
|
1028
|
+
handle,
|
|
1029
|
+
abilityId,
|
|
1030
|
+
false,
|
|
1031
|
+
false
|
|
1032
|
+
)
|
|
799
1033
|
end
|
|
800
1034
|
function Unit.prototype.getDistanceTo(self, target)
|
|
801
1035
|
local handle = self.handle
|
|
@@ -855,18 +1089,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
855
1089
|
self:decrementStunCounter()
|
|
856
1090
|
end
|
|
857
1091
|
function Unit.prototype.incrementStunCounter(self)
|
|
858
|
-
local stunCounter = self[
|
|
859
|
-
if not self[
|
|
1092
|
+
local stunCounter = self[102] or 0
|
|
1093
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
860
1094
|
BlzPauseUnitEx(self.handle, true)
|
|
861
1095
|
end
|
|
862
|
-
self[
|
|
1096
|
+
self[102] = stunCounter + 1
|
|
863
1097
|
end
|
|
864
1098
|
function Unit.prototype.decrementStunCounter(self)
|
|
865
|
-
local stunCounter = self[
|
|
866
|
-
if not self[
|
|
1099
|
+
local stunCounter = self[102] or 0
|
|
1100
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
867
1101
|
BlzPauseUnitEx(self.handle, false)
|
|
868
1102
|
end
|
|
869
|
-
self[
|
|
1103
|
+
self[102] = stunCounter - 1
|
|
1104
|
+
end
|
|
1105
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1106
|
+
local forceStunCounter = self[103] or 0
|
|
1107
|
+
if forceStunCounter == 0 then
|
|
1108
|
+
local handle = self.handle
|
|
1109
|
+
if not self[101] then
|
|
1110
|
+
for _ = self[102] or 0, -1 do
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
end
|
|
1114
|
+
BlzPauseUnitEx(handle, true)
|
|
1115
|
+
end
|
|
1116
|
+
self[103] = forceStunCounter + 1
|
|
1117
|
+
end
|
|
1118
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1119
|
+
local forceStunCounter = self[103] or 0
|
|
1120
|
+
if forceStunCounter == 1 then
|
|
1121
|
+
local handle = self.handle
|
|
1122
|
+
if not self[101] then
|
|
1123
|
+
for _ = self[102] or 0, -1 do
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
end
|
|
1127
|
+
BlzPauseUnitEx(handle, false)
|
|
1128
|
+
end
|
|
1129
|
+
self[103] = forceStunCounter - 1
|
|
870
1130
|
end
|
|
871
1131
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
872
1132
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -968,8 +1228,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
968
1228
|
)
|
|
969
1229
|
return targetCollection
|
|
970
1230
|
end
|
|
971
|
-
function Unit.getSelectionOf(self, player)
|
|
972
|
-
|
|
1231
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1232
|
+
if target == nil then
|
|
1233
|
+
target = {}
|
|
1234
|
+
end
|
|
1235
|
+
targetCollection = target
|
|
973
1236
|
targetCollectionNextIndex = 1
|
|
974
1237
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
975
1238
|
return targetCollection
|
|
@@ -991,6 +1254,9 @@ end
|
|
|
991
1254
|
function Unit.prototype.__tostring(self)
|
|
992
1255
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
993
1256
|
end
|
|
1257
|
+
function Unit.getBySyncId(self, syncId)
|
|
1258
|
+
return unitBySyncId[syncId]
|
|
1259
|
+
end
|
|
994
1260
|
__TS__SetDescriptor(
|
|
995
1261
|
Unit.prototype,
|
|
996
1262
|
"_deltas",
|
|
@@ -1050,7 +1316,15 @@ __TS__SetDescriptor(
|
|
|
1050
1316
|
Unit.prototype,
|
|
1051
1317
|
"isIllusion",
|
|
1052
1318
|
{get = function(self)
|
|
1053
|
-
return
|
|
1319
|
+
return IsUnitIllusion(self.handle)
|
|
1320
|
+
end},
|
|
1321
|
+
true
|
|
1322
|
+
)
|
|
1323
|
+
__TS__SetDescriptor(
|
|
1324
|
+
Unit.prototype,
|
|
1325
|
+
"isStunned",
|
|
1326
|
+
{get = function(self)
|
|
1327
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1054
1328
|
end},
|
|
1055
1329
|
true
|
|
1056
1330
|
)
|
|
@@ -1071,12 +1345,27 @@ __TS__SetDescriptor(
|
|
|
1071
1345
|
Unit.prototype,
|
|
1072
1346
|
"weapons",
|
|
1073
1347
|
{get = function(self)
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1348
|
+
return {self.firstWeapon, self.secondWeapon}
|
|
1349
|
+
end},
|
|
1350
|
+
true
|
|
1351
|
+
)
|
|
1352
|
+
__TS__SetDescriptor(
|
|
1353
|
+
Unit.prototype,
|
|
1354
|
+
"firstWeapon",
|
|
1355
|
+
{get = function(self)
|
|
1356
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 0)
|
|
1357
|
+
rawset(self, "firstWeapon", weapon)
|
|
1358
|
+
return weapon
|
|
1359
|
+
end},
|
|
1360
|
+
true
|
|
1361
|
+
)
|
|
1362
|
+
__TS__SetDescriptor(
|
|
1363
|
+
Unit.prototype,
|
|
1364
|
+
"secondWeapon",
|
|
1365
|
+
{get = function(self)
|
|
1366
|
+
local weapon = __TS__New(____exports.UnitWeapon, self, 1)
|
|
1367
|
+
rawset(self, "secondWeapon", weapon)
|
|
1368
|
+
return weapon
|
|
1080
1369
|
end},
|
|
1081
1370
|
true
|
|
1082
1371
|
)
|
|
@@ -1114,13 +1403,13 @@ __TS__SetDescriptor(
|
|
|
1114
1403
|
)
|
|
1115
1404
|
__TS__SetDescriptor(
|
|
1116
1405
|
Unit.prototype,
|
|
1117
|
-
"
|
|
1406
|
+
"primaryAttribute",
|
|
1118
1407
|
{
|
|
1119
1408
|
get = function(self)
|
|
1120
|
-
return
|
|
1409
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1121
1410
|
end,
|
|
1122
|
-
set = function(self,
|
|
1123
|
-
|
|
1411
|
+
set = function(self, primaryAttribute)
|
|
1412
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1124
1413
|
end
|
|
1125
1414
|
},
|
|
1126
1415
|
true
|
|
@@ -1142,19 +1431,6 @@ __TS__SetDescriptor(
|
|
|
1142
1431
|
end},
|
|
1143
1432
|
true
|
|
1144
1433
|
)
|
|
1145
|
-
__TS__SetDescriptor(
|
|
1146
|
-
Unit.prototype,
|
|
1147
|
-
"agilityBase",
|
|
1148
|
-
{
|
|
1149
|
-
get = function(self)
|
|
1150
|
-
return getHeroAgi(self.handle, false)
|
|
1151
|
-
end,
|
|
1152
|
-
set = function(self, agilityBase)
|
|
1153
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1154
|
-
end
|
|
1155
|
-
},
|
|
1156
|
-
true
|
|
1157
|
-
)
|
|
1158
1434
|
__TS__SetDescriptor(
|
|
1159
1435
|
Unit.prototype,
|
|
1160
1436
|
"agilityBonus",
|
|
@@ -1172,19 +1448,6 @@ __TS__SetDescriptor(
|
|
|
1172
1448
|
end},
|
|
1173
1449
|
true
|
|
1174
1450
|
)
|
|
1175
|
-
__TS__SetDescriptor(
|
|
1176
|
-
Unit.prototype,
|
|
1177
|
-
"intelligenceBase",
|
|
1178
|
-
{
|
|
1179
|
-
get = function(self)
|
|
1180
|
-
return getHeroInt(self.handle, false)
|
|
1181
|
-
end,
|
|
1182
|
-
set = function(self, intelligenceBase)
|
|
1183
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1184
|
-
end
|
|
1185
|
-
},
|
|
1186
|
-
true
|
|
1187
|
-
)
|
|
1188
1451
|
__TS__SetDescriptor(
|
|
1189
1452
|
Unit.prototype,
|
|
1190
1453
|
"intelligenceBonus",
|
|
@@ -1233,17 +1496,17 @@ __TS__SetDescriptor(
|
|
|
1233
1496
|
"isTeamGlowVisible",
|
|
1234
1497
|
{
|
|
1235
1498
|
get = function(self)
|
|
1236
|
-
return not self[
|
|
1499
|
+
return not self[107]
|
|
1237
1500
|
end,
|
|
1238
1501
|
set = function(self, isTeamGlowVisible)
|
|
1239
|
-
|
|
1240
|
-
local
|
|
1502
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1503
|
+
local ____temp_8
|
|
1241
1504
|
if not isTeamGlowVisible then
|
|
1242
|
-
|
|
1505
|
+
____temp_8 = true
|
|
1243
1506
|
else
|
|
1244
|
-
|
|
1507
|
+
____temp_8 = nil
|
|
1245
1508
|
end
|
|
1246
|
-
self[
|
|
1509
|
+
self[107] = ____temp_8
|
|
1247
1510
|
end
|
|
1248
1511
|
},
|
|
1249
1512
|
true
|
|
@@ -1252,9 +1515,9 @@ __TS__SetDescriptor(
|
|
|
1252
1515
|
Unit.prototype,
|
|
1253
1516
|
"color",
|
|
1254
1517
|
{set = function(self, color)
|
|
1255
|
-
|
|
1256
|
-
if self[
|
|
1257
|
-
|
|
1518
|
+
SetUnitColor(self.handle, color.handle)
|
|
1519
|
+
if self[107] then
|
|
1520
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1258
1521
|
end
|
|
1259
1522
|
end},
|
|
1260
1523
|
true
|
|
@@ -1277,10 +1540,14 @@ __TS__SetDescriptor(
|
|
|
1277
1540
|
"maxHealth",
|
|
1278
1541
|
{
|
|
1279
1542
|
get = function(self)
|
|
1280
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1543
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1281
1544
|
end,
|
|
1282
1545
|
set = function(self, maxHealth)
|
|
1283
|
-
|
|
1546
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1547
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1548
|
+
maxHealth = 1
|
|
1549
|
+
end
|
|
1550
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1284
1551
|
end
|
|
1285
1552
|
},
|
|
1286
1553
|
true
|
|
@@ -1322,10 +1589,10 @@ __TS__SetDescriptor(
|
|
|
1322
1589
|
"health",
|
|
1323
1590
|
{
|
|
1324
1591
|
get = function(self)
|
|
1325
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1592
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1326
1593
|
end,
|
|
1327
1594
|
set = function(self, health)
|
|
1328
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1595
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1329
1596
|
end
|
|
1330
1597
|
},
|
|
1331
1598
|
true
|
|
@@ -1401,25 +1668,12 @@ __TS__SetDescriptor(
|
|
|
1401
1668
|
},
|
|
1402
1669
|
true
|
|
1403
1670
|
)
|
|
1404
|
-
__TS__SetDescriptor(
|
|
1405
|
-
Unit.prototype,
|
|
1406
|
-
"flyHeight",
|
|
1407
|
-
{
|
|
1408
|
-
get = function(self)
|
|
1409
|
-
return getUnitFlyHeight(self.handle)
|
|
1410
|
-
end,
|
|
1411
|
-
set = function(self, v)
|
|
1412
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1413
|
-
end
|
|
1414
|
-
},
|
|
1415
|
-
true
|
|
1416
|
-
)
|
|
1417
1671
|
__TS__SetDescriptor(
|
|
1418
1672
|
Unit.prototype,
|
|
1419
1673
|
"x",
|
|
1420
1674
|
{
|
|
1421
1675
|
get = function(self)
|
|
1422
|
-
return getUnitX(self.handle)
|
|
1676
|
+
return self[108] or getUnitX(self.handle)
|
|
1423
1677
|
end,
|
|
1424
1678
|
set = function(self, v)
|
|
1425
1679
|
SetUnitX(self.handle, v)
|
|
@@ -1432,7 +1686,7 @@ __TS__SetDescriptor(
|
|
|
1432
1686
|
"y",
|
|
1433
1687
|
{
|
|
1434
1688
|
get = function(self)
|
|
1435
|
-
return getUnitY(self.handle)
|
|
1689
|
+
return self[109] or getUnitY(self.handle)
|
|
1436
1690
|
end,
|
|
1437
1691
|
set = function(self, v)
|
|
1438
1692
|
SetUnitY(self.handle, v)
|
|
@@ -1518,10 +1772,10 @@ __TS__SetDescriptor(
|
|
|
1518
1772
|
"gold",
|
|
1519
1773
|
{
|
|
1520
1774
|
get = function(self)
|
|
1521
|
-
return
|
|
1775
|
+
return GetResourceAmount(self.handle)
|
|
1522
1776
|
end,
|
|
1523
1777
|
set = function(self, gold)
|
|
1524
|
-
|
|
1778
|
+
SetResourceAmount(self.handle, gold)
|
|
1525
1779
|
end
|
|
1526
1780
|
},
|
|
1527
1781
|
true
|
|
@@ -1536,17 +1790,21 @@ __TS__SetDescriptor(
|
|
|
1536
1790
|
set = function(self, isPaused)
|
|
1537
1791
|
local handle = self.handle
|
|
1538
1792
|
if isPaused and not IsUnitPaused(handle) then
|
|
1539
|
-
self[
|
|
1540
|
-
|
|
1541
|
-
|
|
1793
|
+
self[101] = true
|
|
1794
|
+
if (self[103] or 0) <= 0 then
|
|
1795
|
+
for _ = self[102] or 0, -1 do
|
|
1796
|
+
BlzPauseUnitEx(handle, true)
|
|
1797
|
+
end
|
|
1542
1798
|
end
|
|
1543
1799
|
PauseUnit(handle, true)
|
|
1544
1800
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1545
1801
|
PauseUnit(handle, false)
|
|
1546
|
-
|
|
1547
|
-
|
|
1802
|
+
if (self[103] or 0) <= 0 then
|
|
1803
|
+
for _ = self[102] or 0, -1 do
|
|
1804
|
+
BlzPauseUnitEx(handle, false)
|
|
1805
|
+
end
|
|
1548
1806
|
end
|
|
1549
|
-
self[
|
|
1807
|
+
self[101] = nil
|
|
1550
1808
|
end
|
|
1551
1809
|
end
|
|
1552
1810
|
},
|
|
@@ -1602,20 +1860,6 @@ __TS__SetDescriptor(
|
|
|
1602
1860
|
},
|
|
1603
1861
|
true
|
|
1604
1862
|
)
|
|
1605
|
-
__TS__SetDescriptor(
|
|
1606
|
-
Unit.prototype,
|
|
1607
|
-
"scale",
|
|
1608
|
-
{
|
|
1609
|
-
get = function(self)
|
|
1610
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1611
|
-
end,
|
|
1612
|
-
set = function(self, v)
|
|
1613
|
-
setUnitScale(self.handle, v, v, v)
|
|
1614
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1615
|
-
end
|
|
1616
|
-
},
|
|
1617
|
-
true
|
|
1618
|
-
)
|
|
1619
1863
|
__TS__SetDescriptor(
|
|
1620
1864
|
Unit.prototype,
|
|
1621
1865
|
"timeScale",
|
|
@@ -1642,13 +1886,26 @@ __TS__SetDescriptor(
|
|
|
1642
1886
|
Unit.prototype,
|
|
1643
1887
|
"pathingCollisionRange",
|
|
1644
1888
|
{get = function(self)
|
|
1645
|
-
return 16 * (min(
|
|
1889
|
+
return 16 * (math.min(
|
|
1646
1890
|
getUnitCollisionSize(self.handle) // 16,
|
|
1647
1891
|
3
|
|
1648
1892
|
) + 1)
|
|
1649
1893
|
end},
|
|
1650
1894
|
true
|
|
1651
1895
|
)
|
|
1896
|
+
__TS__SetDescriptor(
|
|
1897
|
+
Unit.prototype,
|
|
1898
|
+
"movementType",
|
|
1899
|
+
{
|
|
1900
|
+
get = function(self)
|
|
1901
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1902
|
+
end,
|
|
1903
|
+
set = function(self, movementType)
|
|
1904
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1905
|
+
end
|
|
1906
|
+
},
|
|
1907
|
+
true
|
|
1908
|
+
)
|
|
1652
1909
|
__TS__SetDescriptor(
|
|
1653
1910
|
Unit.prototype,
|
|
1654
1911
|
"pathing",
|
|
@@ -1739,30 +1996,6 @@ __TS__SetDescriptor(
|
|
|
1739
1996
|
end},
|
|
1740
1997
|
true
|
|
1741
1998
|
)
|
|
1742
|
-
__TS__SetDescriptor(
|
|
1743
|
-
Unit.prototype,
|
|
1744
|
-
"onUnitInRange",
|
|
1745
|
-
{get = function(self)
|
|
1746
|
-
local handle = self.handle
|
|
1747
|
-
local onUnitInRange = setmetatable(
|
|
1748
|
-
{},
|
|
1749
|
-
{__index = function(self, value)
|
|
1750
|
-
local event = __TS__New(
|
|
1751
|
-
TriggerEvent,
|
|
1752
|
-
function(trigger)
|
|
1753
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1754
|
-
end,
|
|
1755
|
-
function() return ____exports.Unit:of(handle) end
|
|
1756
|
-
)
|
|
1757
|
-
rawset(self, value, event)
|
|
1758
|
-
return event
|
|
1759
|
-
end}
|
|
1760
|
-
)
|
|
1761
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1762
|
-
return onUnitInRange
|
|
1763
|
-
end},
|
|
1764
|
-
true
|
|
1765
|
-
)
|
|
1766
1999
|
__TS__SetDescriptor(
|
|
1767
2000
|
Unit.prototype,
|
|
1768
2001
|
"onManaEqual",
|
|
@@ -1830,6 +2063,14 @@ __TS__SetDescriptor(
|
|
|
1830
2063
|
end},
|
|
1831
2064
|
true
|
|
1832
2065
|
)
|
|
2066
|
+
__TS__SetDescriptor(
|
|
2067
|
+
Unit.prototype,
|
|
2068
|
+
"targetAcquiredEvent",
|
|
2069
|
+
{get = function(self)
|
|
2070
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2071
|
+
end},
|
|
2072
|
+
true
|
|
2073
|
+
)
|
|
1833
2074
|
__TS__SetDescriptor(
|
|
1834
2075
|
Unit.prototype,
|
|
1835
2076
|
"onSelect",
|
|
@@ -1890,6 +2131,11 @@ __TS__SetDescriptor(
|
|
|
1890
2131
|
end},
|
|
1891
2132
|
true
|
|
1892
2133
|
)
|
|
2134
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2135
|
+
____exports.UnitTriggerEvent,
|
|
2136
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2137
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2138
|
+
)
|
|
1893
2139
|
Unit.deathEvent = __TS__New(
|
|
1894
2140
|
____exports.UnitTriggerEvent,
|
|
1895
2141
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -1903,12 +2149,11 @@ Unit.onDecay = __TS__New(
|
|
|
1903
2149
|
Unit.onResurrect = __TS__New(
|
|
1904
2150
|
InitializingEvent,
|
|
1905
2151
|
function(event)
|
|
1906
|
-
local invoke = Event.invoke
|
|
1907
2152
|
local dead = setmetatable({}, {__mode = "k"})
|
|
1908
2153
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
1909
2154
|
dead[unit] = true
|
|
1910
2155
|
end)
|
|
1911
|
-
____exports.Unit.onImmediateOrder[
|
|
2156
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
1912
2157
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
1913
2158
|
dead[unit] = false
|
|
1914
2159
|
invoke(event, unit)
|
|
@@ -1919,10 +2164,15 @@ Unit.onResurrect = __TS__New(
|
|
|
1919
2164
|
Unit.morphEvent = __TS__New(
|
|
1920
2165
|
InitializingEvent,
|
|
1921
2166
|
function(event)
|
|
1922
|
-
|
|
2167
|
+
local function ifNotLeft(unit)
|
|
2168
|
+
local handle = unit.handle
|
|
2169
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2170
|
+
invoke(event, unit)
|
|
2171
|
+
end
|
|
2172
|
+
end
|
|
2173
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
1923
2174
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
1924
|
-
|
|
1925
|
-
Timer:run(Event.invoke, event, unit)
|
|
2175
|
+
Timer:run(ifNotLeft, unit)
|
|
1926
2176
|
end
|
|
1927
2177
|
end)
|
|
1928
2178
|
end
|
|
@@ -1960,27 +2210,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
1960
2210
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
1961
2211
|
InitializingEvent,
|
|
1962
2212
|
function(event)
|
|
1963
|
-
local invoke = Event.invoke
|
|
1964
2213
|
local function listener(unit, id)
|
|
1965
|
-
local
|
|
2214
|
+
local ____GetSpellTargetUnit_result_11
|
|
1966
2215
|
if GetSpellTargetUnit() then
|
|
1967
|
-
|
|
2216
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
1968
2217
|
else
|
|
1969
|
-
local
|
|
2218
|
+
local ____GetSpellTargetItem_result_10
|
|
1970
2219
|
if GetSpellTargetItem() then
|
|
1971
|
-
|
|
2220
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
1972
2221
|
else
|
|
1973
|
-
local
|
|
2222
|
+
local ____GetSpellTargetDestructable_result_9
|
|
1974
2223
|
if GetSpellTargetDestructable() then
|
|
1975
|
-
|
|
2224
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
1976
2225
|
else
|
|
1977
|
-
|
|
2226
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
1978
2227
|
end
|
|
1979
|
-
|
|
2228
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
1980
2229
|
end
|
|
1981
|
-
|
|
2230
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
1982
2231
|
end
|
|
1983
|
-
local target =
|
|
2232
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
1984
2233
|
if target then
|
|
1985
2234
|
invoke(event, unit, id, target)
|
|
1986
2235
|
end
|
|
@@ -2152,10 +2401,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2152
2401
|
____exports.UnitTriggerEvent,
|
|
2153
2402
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2154
2403
|
function()
|
|
2155
|
-
local
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2404
|
+
local handle = getOrderedUnit()
|
|
2405
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2406
|
+
local unit = ____exports.Unit:of(handle)
|
|
2407
|
+
if unit.state == 1 then
|
|
2408
|
+
return unit, getIssuedOrderId()
|
|
2409
|
+
end
|
|
2159
2410
|
end
|
|
2160
2411
|
return IgnoreEvent
|
|
2161
2412
|
end
|
|
@@ -2177,7 +2428,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2177
2428
|
)
|
|
2178
2429
|
Unit.onDamaging = (function()
|
|
2179
2430
|
local event = __TS__New(Event)
|
|
2180
|
-
local invoke = Event.invoke
|
|
2181
2431
|
local trigger = CreateTrigger()
|
|
2182
2432
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2183
2433
|
TriggerAddCondition(
|
|
@@ -2187,38 +2437,57 @@ Unit.onDamaging = (function()
|
|
|
2187
2437
|
if source and source.typeId == dummyUnitId then
|
|
2188
2438
|
source = nil
|
|
2189
2439
|
end
|
|
2190
|
-
local target = BlzGetEventDamageTarget()
|
|
2440
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2441
|
+
local metadata = damageMetadataByTarget[target]
|
|
2442
|
+
damageMetadataByTarget[target] = nil
|
|
2191
2443
|
local data = {
|
|
2192
2444
|
amount = GetEventDamage(),
|
|
2193
|
-
attackType = BlzGetEventAttackType(),
|
|
2445
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2194
2446
|
damageType = BlzGetEventDamageType(),
|
|
2195
2447
|
weaponType = BlzGetEventWeaponType(),
|
|
2196
|
-
|
|
2448
|
+
metadata = metadata,
|
|
2449
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2450
|
+
originalAmount = GetEventDamage(),
|
|
2451
|
+
originalMetadata = metadata,
|
|
2452
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2197
2453
|
}
|
|
2198
2454
|
if data.isAttack and source then
|
|
2199
|
-
|
|
2200
|
-
if weapon == -1 then
|
|
2201
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2202
|
-
weapon = 0
|
|
2203
|
-
end
|
|
2204
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2455
|
+
data.weapon = source:chooseWeapon(target)
|
|
2205
2456
|
end
|
|
2206
2457
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2207
2458
|
invoke(
|
|
2208
2459
|
event,
|
|
2209
2460
|
source,
|
|
2210
|
-
|
|
2461
|
+
target,
|
|
2211
2462
|
setmetatable(
|
|
2212
2463
|
{},
|
|
2213
2464
|
{
|
|
2214
2465
|
__index = data,
|
|
2215
2466
|
__newindex = function(self, key, value)
|
|
2216
|
-
damageSetters[key]
|
|
2467
|
+
local damageSetter = damageSetters[key]
|
|
2468
|
+
if damageSetter ~= nil then
|
|
2469
|
+
damageSetter(value)
|
|
2470
|
+
end
|
|
2217
2471
|
data[key] = value
|
|
2218
2472
|
end
|
|
2219
2473
|
}
|
|
2220
2474
|
)
|
|
2221
2475
|
)
|
|
2476
|
+
if data[0] and source then
|
|
2477
|
+
local sourceOwner = source.owner.handle
|
|
2478
|
+
data[1] = sourceOwner
|
|
2479
|
+
local targetOwner = target.owner.handle
|
|
2480
|
+
data[2] = targetOwner
|
|
2481
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2482
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2483
|
+
data[3] = true
|
|
2484
|
+
end
|
|
2485
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2486
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2487
|
+
data[4] = true
|
|
2488
|
+
end
|
|
2489
|
+
end
|
|
2490
|
+
damagingEventByTarget[target] = data
|
|
2222
2491
|
return
|
|
2223
2492
|
end
|
|
2224
2493
|
BlzSetEventDamage(0)
|
|
@@ -2226,7 +2495,7 @@ Unit.onDamaging = (function()
|
|
|
2226
2495
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2227
2496
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2228
2497
|
local sourceOwner = source.owner.handle
|
|
2229
|
-
local targetOwner =
|
|
2498
|
+
local targetOwner = target.owner.handle
|
|
2230
2499
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2231
2500
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2232
2501
|
Timer:run(function()
|
|
@@ -2242,23 +2511,19 @@ Unit.onDamaging = (function()
|
|
|
2242
2511
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2243
2512
|
local condition = ____value[1]
|
|
2244
2513
|
local action = ____value[2]
|
|
2245
|
-
if condition(
|
|
2246
|
-
source,
|
|
2247
|
-
____exports.Unit:of(target),
|
|
2248
|
-
data
|
|
2249
|
-
) then
|
|
2514
|
+
if condition(source, target, data) then
|
|
2250
2515
|
action(
|
|
2251
2516
|
source,
|
|
2252
|
-
|
|
2517
|
+
target,
|
|
2253
2518
|
setmetatable(
|
|
2254
2519
|
{fire = function()
|
|
2255
2520
|
UnitDamageTarget(
|
|
2256
2521
|
source.handle,
|
|
2257
|
-
target,
|
|
2522
|
+
target.handle,
|
|
2258
2523
|
data.amount,
|
|
2259
2524
|
true,
|
|
2260
2525
|
true,
|
|
2261
|
-
data.attackType,
|
|
2526
|
+
attackTypeToNative(data.attackType),
|
|
2262
2527
|
data.damageType,
|
|
2263
2528
|
data.weaponType
|
|
2264
2529
|
)
|
|
@@ -2276,7 +2541,6 @@ end)()
|
|
|
2276
2541
|
Unit.onDamage = __TS__New(
|
|
2277
2542
|
InitializingEvent,
|
|
2278
2543
|
function(event)
|
|
2279
|
-
local invoke = Event.invoke
|
|
2280
2544
|
local trigger = CreateTrigger()
|
|
2281
2545
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2282
2546
|
TriggerAddCondition(
|
|
@@ -2286,29 +2550,54 @@ Unit.onDamage = __TS__New(
|
|
|
2286
2550
|
if source and source.typeId == dummyUnitId then
|
|
2287
2551
|
source = nil
|
|
2288
2552
|
end
|
|
2553
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2554
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2555
|
+
damagingEventByTarget[target] = nil
|
|
2289
2556
|
local data = {
|
|
2290
2557
|
amount = GetEventDamage(),
|
|
2291
|
-
attackType = BlzGetEventAttackType(),
|
|
2558
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2292
2559
|
damageType = BlzGetEventDamageType(),
|
|
2293
2560
|
weaponType = BlzGetEventWeaponType(),
|
|
2561
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2294
2562
|
isAttack = BlzGetEventIsAttack(),
|
|
2563
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2564
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2295
2565
|
preventDeath = damageEventPreventDeath
|
|
2296
2566
|
}
|
|
2567
|
+
if damagingEvent then
|
|
2568
|
+
for key, value in pairs(damagingEvent) do
|
|
2569
|
+
if isAttribute(key) then
|
|
2570
|
+
data[key] = value
|
|
2571
|
+
end
|
|
2572
|
+
end
|
|
2573
|
+
local sourceOwner = damagingEvent[1]
|
|
2574
|
+
if sourceOwner then
|
|
2575
|
+
local targetOwner = damagingEvent[2]
|
|
2576
|
+
if damagingEvent[3] then
|
|
2577
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
if damagingEvent[4] then
|
|
2580
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2581
|
+
end
|
|
2582
|
+
end
|
|
2583
|
+
end
|
|
2297
2584
|
local evData = setmetatable(
|
|
2298
2585
|
{},
|
|
2299
2586
|
{
|
|
2300
2587
|
__index = data,
|
|
2301
2588
|
__newindex = function(self, key, value)
|
|
2302
|
-
damageSetters[key]
|
|
2589
|
+
local damageSetter = damageSetters[key]
|
|
2590
|
+
if damageSetter ~= nil then
|
|
2591
|
+
damageSetter(value)
|
|
2592
|
+
end
|
|
2303
2593
|
data[key] = value
|
|
2304
2594
|
end
|
|
2305
2595
|
}
|
|
2306
2596
|
)
|
|
2307
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2308
2597
|
invoke(event, source, target, evData)
|
|
2309
2598
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2310
2599
|
local bonusHealth = math.ceil(evData.amount)
|
|
2311
|
-
target[
|
|
2600
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2312
2601
|
BlzSetUnitMaxHP(
|
|
2313
2602
|
target.handle,
|
|
2314
2603
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2322,7 +2611,7 @@ Unit.onDamage = __TS__New(
|
|
|
2322
2611
|
evData[0],
|
|
2323
2612
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2324
2613
|
)
|
|
2325
|
-
target[
|
|
2614
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2326
2615
|
SetWidgetLife(
|
|
2327
2616
|
target.handle,
|
|
2328
2617
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2342,32 +2631,60 @@ Unit.onDamage = __TS__New(
|
|
|
2342
2631
|
DestroyTrigger(trigger)
|
|
2343
2632
|
end
|
|
2344
2633
|
)
|
|
2345
|
-
Unit.
|
|
2634
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2346
2635
|
____exports.UnitTriggerEvent,
|
|
2347
2636
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2348
2637
|
function()
|
|
2349
2638
|
local unit = getTriggerUnit()
|
|
2350
|
-
|
|
2351
|
-
|
|
2639
|
+
local item = getManipulatedItem()
|
|
2640
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2641
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2352
2642
|
end
|
|
2353
2643
|
return IgnoreEvent
|
|
2354
2644
|
end
|
|
2355
2645
|
)
|
|
2356
|
-
Unit.
|
|
2646
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2357
2647
|
____exports.UnitTriggerEvent,
|
|
2358
2648
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2359
2649
|
function()
|
|
2360
|
-
local
|
|
2361
|
-
|
|
2362
|
-
|
|
2650
|
+
local unitHandle = getTriggerUnit()
|
|
2651
|
+
local itemHandle = getManipulatedItem()
|
|
2652
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2653
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2654
|
+
local item = Item:of(itemHandle)
|
|
2655
|
+
if ownerByItem[item] ~= unit then
|
|
2656
|
+
return unit, item
|
|
2657
|
+
end
|
|
2363
2658
|
end
|
|
2364
2659
|
return IgnoreEvent
|
|
2365
2660
|
end
|
|
2366
2661
|
)
|
|
2367
|
-
Unit.
|
|
2662
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2368
2663
|
____exports.UnitTriggerEvent,
|
|
2369
2664
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2370
|
-
function()
|
|
2665
|
+
function()
|
|
2666
|
+
local unit = getTriggerUnit()
|
|
2667
|
+
local item = getManipulatedItem()
|
|
2668
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2669
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2670
|
+
end
|
|
2671
|
+
return IgnoreEvent
|
|
2672
|
+
end
|
|
2673
|
+
)
|
|
2674
|
+
__TS__ObjectDefineProperty(
|
|
2675
|
+
Unit,
|
|
2676
|
+
"itemChargesChangedEvent",
|
|
2677
|
+
{get = function(self)
|
|
2678
|
+
local event = __TS__New(Event)
|
|
2679
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2680
|
+
local unit = item.owner
|
|
2681
|
+
if unit ~= nil then
|
|
2682
|
+
invoke(event, unit, item)
|
|
2683
|
+
end
|
|
2684
|
+
end)
|
|
2685
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2686
|
+
return event
|
|
2687
|
+
end}
|
|
2371
2688
|
)
|
|
2372
2689
|
__TS__ObjectDefineProperty(
|
|
2373
2690
|
Unit,
|
|
@@ -2394,6 +2711,10 @@ __TS__ObjectDefineProperty(
|
|
|
2394
2711
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2395
2712
|
return destroyEvent
|
|
2396
2713
|
end}
|
|
2714
|
+
)
|
|
2715
|
+
Unit.synchronize = synchronizer(
|
|
2716
|
+
function(unit) return unit.syncId end,
|
|
2717
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2397
2718
|
);
|
|
2398
2719
|
(function(self)
|
|
2399
2720
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2411,11 +2732,7 @@ __TS__ObjectDefineProperty(
|
|
|
2411
2732
|
function(____, id) return fourCC(id) end
|
|
2412
2733
|
)
|
|
2413
2734
|
end)
|
|
2414
|
-
for ____, leaveOrderId in ipairs({
|
|
2415
|
-
orderId("undefend"),
|
|
2416
|
-
orderId("magicundefense"),
|
|
2417
|
-
orderId("unimmolation")
|
|
2418
|
-
}) do
|
|
2735
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2419
2736
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2420
2737
|
local handle = unit.handle
|
|
2421
2738
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2423,7 +2740,8 @@ __TS__ObjectDefineProperty(
|
|
|
2423
2740
|
return
|
|
2424
2741
|
end
|
|
2425
2742
|
end
|
|
2426
|
-
unit:
|
|
2743
|
+
unit:saveData()
|
|
2744
|
+
Timer:run(unit, "destroy")
|
|
2427
2745
|
end)
|
|
2428
2746
|
end
|
|
2429
2747
|
end)(Unit)
|