warscript 0.0.1-dev.2ae9956 → 0.0.1-dev.2b3f95e
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 +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +21 -2
- package/core/types/frame.lua +165 -87
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/missile.lua +6 -11
- 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 +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +115 -4
- package/decl/native.d.ts +1719 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +15 -4
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
- package/engine/behaviour/ability/emulate-impact.lua +96 -7
- package/engine/behaviour/ability/instant-impact.d.ts +12 -1
- package/engine/behaviour/ability/instant-impact.lua +17 -2
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +23 -6
- package/engine/behaviour/ability.lua +145 -29
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +138 -60
- package/engine/buff.lua +675 -310
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +259 -84
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +114 -9
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit/shared-vision-counter.d.ts +18 -0
- package/engine/internal/unit/shared-vision-counter.lua +31 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +83 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +12 -38
- package/engine/internal/unit+damage.lua +48 -45
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +96 -68
- package/engine/internal/unit-missile-launch.lua +69 -27
- package/engine/internal/unit.d.ts +51 -35
- package/engine/internal/unit.lua +434 -326
- package/engine/lightning.d.ts +4 -3
- package/engine/lightning.lua +25 -16
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-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/auxiliary/weapon-sound-type.d.ts +20 -14
- package/engine/object-data/auxiliary/weapon-sound-type.lua +58 -0
- package/engine/object-data/auxiliary/weapon-type.d.ts +25 -0
- package/engine/object-data/auxiliary/weapon-type.lua +2 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/barrage.d.ts +12 -0
- package/engine/object-data/entry/ability-type/barrage.lua +52 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +14 -3
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
- package/engine/object-data/entry/ability-type/channel.lua +3 -3
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/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/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +50 -21
- package/engine/object-data/entry/ability-type.lua +384 -35
- package/engine/object-data/entry/buff-type/applicable.lua +131 -139
- 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 +18 -3
- package/engine/object-data/entry/item-type.lua +88 -4
- 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 +81 -6
- package/engine/object-data/entry/unit-type.lua +619 -99
- 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-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/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 -4
- package/engine/standard/fields/ability.lua +4 -4
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +48 -2
- package/engine/text-tag.lua +287 -10
- package/engine/unit.d.ts +12 -1
- package/engine/unit.lua +12 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/patch-natives.lua +3 -0
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +28 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -7,10 +7,10 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
11
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
12
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
13
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
13
|
-
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
14
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
15
15
|
local Set = ____lualib.Set
|
|
16
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -47,40 +47,47 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
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 ____weapon_2Dsound_2Dtype = require("engine.object-data.auxiliary.weapon-sound-type")
|
|
55
|
+
local nativeToWeaponSoundType = ____weapon_2Dsound_2Dtype.nativeToWeaponSoundType
|
|
56
|
+
local weaponSoundTypeToNative = ____weapon_2Dsound_2Dtype.weaponSoundTypeToNative
|
|
57
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
58
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
59
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
60
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
61
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
62
|
+
local ____attributes = require("attributes")
|
|
63
|
+
local isAttribute = ____attributes.isAttribute
|
|
64
|
+
local ____ability = require("engine.internal.item.ability")
|
|
65
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
66
|
+
local ____synchronization = require("engine.synchronization")
|
|
67
|
+
local synchronizer = ____synchronization.synchronizer
|
|
68
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
69
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
56
70
|
local match = string.match
|
|
57
71
|
local ____tostring = _G.tostring
|
|
58
72
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
73
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
62
74
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
75
|
local getUnitRealField = BlzGetUnitRealField
|
|
64
76
|
local getHeroStr = GetHeroStr
|
|
65
77
|
local getHeroAgi = GetHeroAgi
|
|
66
78
|
local getHeroInt = GetHeroInt
|
|
67
|
-
local setHeroStr = SetHeroStr
|
|
68
|
-
local setHeroAgi = SetHeroAgi
|
|
69
|
-
local setHeroInt = SetHeroInt
|
|
70
79
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
71
80
|
local getUnitStringField = BlzGetUnitStringField
|
|
72
81
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
73
82
|
local setUnitRealField = BlzSetUnitRealField
|
|
74
83
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
75
84
|
local setUnitStringField = BlzSetUnitStringField
|
|
76
|
-
local setUnitScale = SetUnitScale
|
|
77
85
|
local setUnitPosition = SetUnitPosition
|
|
78
86
|
local setUnitTimeScale = SetUnitTimeScale
|
|
79
87
|
local getHandleId = GetHandleId
|
|
80
88
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
89
|
local createUnit = CreateUnit
|
|
82
90
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
91
|
local removeUnit = RemoveUnit
|
|
85
92
|
local getUnitTypeId = GetUnitTypeId
|
|
86
93
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,15 +103,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
103
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
104
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
105
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
106
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
107
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
108
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
104
109
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
105
110
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
106
111
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
107
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
108
112
|
local isUnitInvisible = IsUnitInvisible
|
|
109
113
|
local isUnitVisible = IsUnitVisible
|
|
110
114
|
local getUnitX = GetUnitX
|
|
@@ -121,15 +125,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
121
125
|
local getIssuedOrderId = GetIssuedOrderId
|
|
122
126
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
123
127
|
local unitAlive = UnitAlive
|
|
124
|
-
local unitAddType = UnitAddType
|
|
125
|
-
local unitRemoveType = UnitRemoveType
|
|
126
|
-
local isUnitIllusion = IsUnitIllusion
|
|
127
|
-
local isUnitType = IsUnitType
|
|
128
128
|
local isUnitAlly = IsUnitAlly
|
|
129
129
|
local isUnitEnemy = IsUnitEnemy
|
|
130
130
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
131
|
____exports.UnitClassification = {}
|
|
134
132
|
local UnitClassification = ____exports.UnitClassification
|
|
135
133
|
do
|
|
@@ -139,6 +137,7 @@ do
|
|
|
139
137
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
140
138
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
141
139
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
140
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
142
141
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
143
142
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
144
143
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -346,6 +345,9 @@ local function dispatchAbility(event)
|
|
|
346
345
|
}
|
|
347
346
|
)
|
|
348
347
|
end
|
|
348
|
+
local function damagingEventPreventRetaliation(self)
|
|
349
|
+
self[0] = true
|
|
350
|
+
end
|
|
349
351
|
local function damageEventPreventDeath(self, callback, ...)
|
|
350
352
|
if self[0] ~= nil then
|
|
351
353
|
return
|
|
@@ -357,7 +359,16 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
359
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
360
|
end
|
|
359
361
|
end
|
|
360
|
-
local damageSetters = {
|
|
362
|
+
local damageSetters = {
|
|
363
|
+
amount = BlzSetEventDamage,
|
|
364
|
+
attackType = function(attackType)
|
|
365
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
366
|
+
end,
|
|
367
|
+
damageType = BlzSetEventDamageType,
|
|
368
|
+
weaponSoundType = function(weaponSoundType)
|
|
369
|
+
return BlzSetEventWeaponType(weaponSoundTypeToNative(weaponSoundType))
|
|
370
|
+
end
|
|
371
|
+
}
|
|
361
372
|
local jlimitopByOperator = {
|
|
362
373
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
374
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -375,15 +386,27 @@ local modifiers = {
|
|
|
375
386
|
end,
|
|
376
387
|
armor = function(unit, value)
|
|
377
388
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
378
|
-
assert(
|
|
389
|
+
assert(
|
|
390
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
391
|
+
"armor bonus ability must be made permanent",
|
|
392
|
+
unit
|
|
393
|
+
)
|
|
379
394
|
end
|
|
380
|
-
local ability = assert(
|
|
381
|
-
|
|
382
|
-
ability,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
395
|
+
local ability = assert(
|
|
396
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
397
|
+
"armor bonus ability must be existing",
|
|
398
|
+
unit
|
|
399
|
+
)
|
|
400
|
+
assert(
|
|
401
|
+
BlzSetAbilityRealLevelField(
|
|
402
|
+
ability,
|
|
403
|
+
armorBonusField,
|
|
404
|
+
0,
|
|
405
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
406
|
+
),
|
|
407
|
+
"armor bonus ability field must be set",
|
|
408
|
+
unit
|
|
409
|
+
)
|
|
387
410
|
end
|
|
388
411
|
}
|
|
389
412
|
local getters = {
|
|
@@ -401,6 +424,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
401
424
|
self.unit = unit
|
|
402
425
|
self.index = index
|
|
403
426
|
end
|
|
427
|
+
__TS__SetDescriptor(
|
|
428
|
+
UnitWeapon.prototype,
|
|
429
|
+
"isEnabled",
|
|
430
|
+
{
|
|
431
|
+
get = function(self)
|
|
432
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
433
|
+
end,
|
|
434
|
+
set = function(self, isEnabled)
|
|
435
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
436
|
+
end
|
|
437
|
+
},
|
|
438
|
+
true
|
|
439
|
+
)
|
|
404
440
|
__TS__SetDescriptor(
|
|
405
441
|
UnitWeapon.prototype,
|
|
406
442
|
"cooldown",
|
|
@@ -435,6 +471,45 @@ __TS__SetDescriptor(
|
|
|
435
471
|
},
|
|
436
472
|
true
|
|
437
473
|
)
|
|
474
|
+
__TS__SetDescriptor(
|
|
475
|
+
UnitWeapon.prototype,
|
|
476
|
+
"allowedTargetCombatClassifications",
|
|
477
|
+
{
|
|
478
|
+
get = function(self)
|
|
479
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
480
|
+
end,
|
|
481
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
482
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
483
|
+
end
|
|
484
|
+
},
|
|
485
|
+
true
|
|
486
|
+
)
|
|
487
|
+
__TS__SetDescriptor(
|
|
488
|
+
UnitWeapon.prototype,
|
|
489
|
+
"type",
|
|
490
|
+
{
|
|
491
|
+
get = function(self)
|
|
492
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_TYPE, self.index)
|
|
493
|
+
end,
|
|
494
|
+
set = function(self, ____type)
|
|
495
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_TYPE, self.index, ____type)
|
|
496
|
+
end
|
|
497
|
+
},
|
|
498
|
+
true
|
|
499
|
+
)
|
|
500
|
+
__TS__SetDescriptor(
|
|
501
|
+
UnitWeapon.prototype,
|
|
502
|
+
"soundType",
|
|
503
|
+
{
|
|
504
|
+
get = function(self)
|
|
505
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_SOUND, self.index)
|
|
506
|
+
end,
|
|
507
|
+
set = function(self, soundType)
|
|
508
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_SOUND, self.index, soundType)
|
|
509
|
+
end
|
|
510
|
+
},
|
|
511
|
+
true
|
|
512
|
+
)
|
|
438
513
|
__TS__SetDescriptor(
|
|
439
514
|
UnitWeapon.prototype,
|
|
440
515
|
"damageBase",
|
|
@@ -546,8 +621,6 @@ __TS__SetDescriptor(
|
|
|
546
621
|
},
|
|
547
622
|
true
|
|
548
623
|
)
|
|
549
|
-
local unitInventorySize = UnitInventorySize
|
|
550
|
-
local unitItemInSlot = UnitItemInSlot
|
|
551
624
|
local getItemAbility = BlzGetItemAbility
|
|
552
625
|
local getUnitAbility = BlzGetUnitAbility
|
|
553
626
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -565,8 +638,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
565
638
|
____exports.Unit:of(unit)
|
|
566
639
|
)
|
|
567
640
|
end
|
|
568
|
-
for i = 0,
|
|
569
|
-
local item =
|
|
641
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
642
|
+
local item = UnitItemInSlot(unit, i)
|
|
570
643
|
if getItemAbility(item, abilityId) == ability then
|
|
571
644
|
return ItemAbility:of(
|
|
572
645
|
ability,
|
|
@@ -611,26 +684,30 @@ local fieldSetters = {
|
|
|
611
684
|
}
|
|
612
685
|
local dummies = {}
|
|
613
686
|
for ____, player in ipairs(Player.all) do
|
|
614
|
-
local dummy = assert(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
687
|
+
local dummy = assert(
|
|
688
|
+
createUnit(
|
|
689
|
+
player.handle,
|
|
690
|
+
dummyUnitId,
|
|
691
|
+
0,
|
|
692
|
+
0,
|
|
693
|
+
270
|
|
694
|
+
),
|
|
695
|
+
"dummy must be created",
|
|
696
|
+
player
|
|
697
|
+
)
|
|
621
698
|
ShowUnit(dummy, false)
|
|
622
699
|
dummies[player] = dummy
|
|
623
700
|
end
|
|
624
701
|
local function delayHealthChecksCallback(unit)
|
|
625
|
-
local counter = (unit[
|
|
702
|
+
local counter = (unit[104] or 0) - 1
|
|
626
703
|
if counter ~= 0 then
|
|
627
|
-
unit[
|
|
704
|
+
unit[104] = counter
|
|
628
705
|
return
|
|
629
706
|
end
|
|
630
|
-
unit[
|
|
631
|
-
local healthBonus = unit[
|
|
707
|
+
unit[104] = nil
|
|
708
|
+
local healthBonus = unit[105]
|
|
632
709
|
if healthBonus ~= nil then
|
|
633
|
-
unit[
|
|
710
|
+
unit[105] = nil
|
|
634
711
|
local handle = unit.handle
|
|
635
712
|
BlzSetUnitMaxHP(
|
|
636
713
|
handle,
|
|
@@ -639,50 +716,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
639
716
|
end
|
|
640
717
|
end
|
|
641
718
|
local nextSyncId = 1
|
|
642
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
719
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
720
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
721
|
+
local function addAbility(unit, abilityTypeId)
|
|
722
|
+
local ____unitAddAbility_result_0
|
|
723
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
724
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
725
|
+
else
|
|
726
|
+
____unitAddAbility_result_0 = nil
|
|
727
|
+
end
|
|
728
|
+
return ____unitAddAbility_result_0
|
|
729
|
+
end
|
|
643
730
|
____exports.Unit = __TS__Class()
|
|
644
731
|
local Unit = ____exports.Unit
|
|
645
732
|
Unit.name = "Unit"
|
|
646
733
|
__TS__ClassExtends(Unit, Handle)
|
|
647
734
|
function Unit.prototype.____constructor(self, handle)
|
|
648
735
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
-
local
|
|
650
|
-
nextSyncId =
|
|
651
|
-
self.syncId =
|
|
736
|
+
local ____nextSyncId_1 = nextSyncId
|
|
737
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
738
|
+
self.syncId = ____nextSyncId_1
|
|
652
739
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
653
|
-
assert(
|
|
654
|
-
|
|
740
|
+
assert(
|
|
741
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
742
|
+
"leave detection ability must be added",
|
|
743
|
+
self
|
|
744
|
+
)
|
|
745
|
+
assert(
|
|
746
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
747
|
+
"morph detection ability must be added",
|
|
748
|
+
self
|
|
749
|
+
)
|
|
655
750
|
if unitAddAbility(
|
|
656
751
|
handle,
|
|
657
752
|
fourCC("Amrf")
|
|
658
753
|
) then
|
|
659
|
-
assert(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
754
|
+
assert(
|
|
755
|
+
unitRemoveAbility(
|
|
756
|
+
handle,
|
|
757
|
+
fourCC("Amrf")
|
|
758
|
+
),
|
|
759
|
+
"fly ability must be removed after addition",
|
|
760
|
+
self
|
|
761
|
+
)
|
|
663
762
|
end
|
|
664
763
|
unitBySyncId[self.syncId] = self
|
|
665
764
|
local ____ = self.abilities
|
|
666
765
|
end
|
|
667
|
-
function Unit.prototype.getEvent(self,
|
|
668
|
-
self.events = self.events or (
|
|
669
|
-
local eventId = GetHandleId(
|
|
670
|
-
|
|
671
|
-
|
|
766
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
767
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
768
|
+
local eventId = GetHandleId(jevent)
|
|
769
|
+
local event = self.events:get(eventId)
|
|
770
|
+
if event == nil then
|
|
771
|
+
event = __TS__New(
|
|
672
772
|
TriggerEvent,
|
|
673
773
|
function(trigger)
|
|
674
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
774
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
675
775
|
end,
|
|
676
776
|
collector or (function() return {} end)
|
|
677
777
|
)
|
|
778
|
+
self.events:put(eventId, event)
|
|
678
779
|
end
|
|
679
|
-
return
|
|
780
|
+
return event
|
|
781
|
+
end
|
|
782
|
+
function Unit.prototype.saveData(self)
|
|
783
|
+
local handle = self.handle
|
|
784
|
+
self[108] = self[108] or getUnitX(handle)
|
|
785
|
+
self[109] = self[109] or getUnitY(handle)
|
|
786
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
680
787
|
end
|
|
681
788
|
function Unit.prototype.onDestroy(self)
|
|
682
789
|
local handle = self.handle
|
|
683
|
-
|
|
684
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
|
-
end
|
|
790
|
+
self:saveData()
|
|
686
791
|
local abilities = self.abilities
|
|
687
792
|
for ____, ability in ipairs(abilities) do
|
|
688
793
|
ability:destroy()
|
|
@@ -700,7 +805,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
700
805
|
end
|
|
701
806
|
local eventsToDestroy = self._eventsToDestroy
|
|
702
807
|
if eventsToDestroy ~= nil then
|
|
703
|
-
|
|
808
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
809
|
+
event:destroy()
|
|
810
|
+
end
|
|
704
811
|
end
|
|
705
812
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
706
813
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -718,7 +825,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
718
825
|
self._attackHandlers = handlers
|
|
719
826
|
if #handlers == 1 then
|
|
720
827
|
local handle = self.handle
|
|
721
|
-
assert(
|
|
828
|
+
assert(
|
|
829
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
830
|
+
"attack handler ability must be added",
|
|
831
|
+
self
|
|
832
|
+
)
|
|
722
833
|
end
|
|
723
834
|
return handler
|
|
724
835
|
end
|
|
@@ -747,17 +858,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
747
858
|
end}
|
|
748
859
|
end
|
|
749
860
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
750
|
-
local
|
|
751
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
861
|
+
local ____combatClassification_2 = combatClassification
|
|
862
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
752
863
|
end
|
|
753
864
|
function Unit.prototype.addClassification(self, classification)
|
|
754
|
-
return
|
|
865
|
+
return UnitAddType(self.handle, classification)
|
|
755
866
|
end
|
|
756
867
|
function Unit.prototype.removeClassification(self, classification)
|
|
757
|
-
return
|
|
868
|
+
return UnitRemoveType(self.handle, classification)
|
|
758
869
|
end
|
|
759
870
|
function Unit.prototype.hasClassification(self, classification)
|
|
760
|
-
return
|
|
871
|
+
return IsUnitType(self.handle, classification)
|
|
761
872
|
end
|
|
762
873
|
function Unit.prototype.isVisibleTo(self, player)
|
|
763
874
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -766,13 +877,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
766
877
|
return isUnitInvisible(self.handle, player.handle)
|
|
767
878
|
end
|
|
768
879
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
769
|
-
local
|
|
880
|
+
local ____temp_4
|
|
770
881
|
if type(x) == "number" then
|
|
771
|
-
|
|
882
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
883
|
else
|
|
773
|
-
|
|
884
|
+
local ____temp_3
|
|
885
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
886
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
887
|
+
else
|
|
888
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
889
|
+
end
|
|
890
|
+
____temp_4 = ____temp_3
|
|
774
891
|
end
|
|
775
|
-
return
|
|
892
|
+
return ____temp_4
|
|
776
893
|
end
|
|
777
894
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
895
|
return isUnitAlly(
|
|
@@ -790,16 +907,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
907
|
if type(animation) == "number" then
|
|
791
908
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
909
|
elseif rarity then
|
|
793
|
-
|
|
910
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
911
|
else
|
|
795
912
|
setUnitAnimation(self.handle, animation)
|
|
796
913
|
end
|
|
797
914
|
end
|
|
915
|
+
function Unit.prototype.resetAnimation(self)
|
|
916
|
+
ResetUnitAnimation(self.handle)
|
|
917
|
+
end
|
|
798
918
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
919
|
+
QueueUnitAnimation(self.handle, animation)
|
|
920
|
+
end
|
|
921
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
922
|
+
local firstWeapon = self.firstWeapon
|
|
923
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
924
|
+
return firstWeapon
|
|
925
|
+
end
|
|
926
|
+
local secondWeapon = self.secondWeapon
|
|
927
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(self, secondWeapon.allowedTargetCombatClassifications) then
|
|
928
|
+
return secondWeapon
|
|
929
|
+
end
|
|
930
|
+
return nil
|
|
800
931
|
end
|
|
801
932
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
-
self[
|
|
933
|
+
self[104] = (self[104] or 0) + 1
|
|
803
934
|
Timer:run(delayHealthChecksCallback, self)
|
|
804
935
|
end
|
|
805
936
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -809,21 +940,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
940
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
941
|
end
|
|
811
942
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
943
|
+
SetUnitExploded(self.handle, true)
|
|
813
944
|
killUnit(self.handle)
|
|
814
945
|
end
|
|
815
946
|
function Unit.prototype.kill(self)
|
|
816
947
|
killUnit(self.handle)
|
|
817
948
|
end
|
|
818
949
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
950
|
+
local ____ReviveHero_7 = ReviveHero
|
|
951
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
952
|
+
local ____doEffect_5 = doEffect
|
|
953
|
+
if ____doEffect_5 == nil then
|
|
954
|
+
____doEffect_5 = false
|
|
824
955
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
956
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
957
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
827
958
|
end
|
|
828
959
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
960
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -863,20 +994,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
863
994
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
864
995
|
end
|
|
865
996
|
function Unit.prototype.itemInSlot(self, slot)
|
|
866
|
-
return Item:of(
|
|
997
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
867
998
|
end
|
|
868
999
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
1000
|
+
local ability = UnitAbility:of(
|
|
1001
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
1002
|
+
abilityId,
|
|
1003
|
+
self
|
|
1004
|
+
)
|
|
1005
|
+
if ability ~= nil then
|
|
875
1006
|
local abilities = self.abilities
|
|
876
1007
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
1008
|
end
|
|
879
|
-
return
|
|
1009
|
+
return ability
|
|
880
1010
|
end
|
|
881
1011
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
1012
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +1020,24 @@ end
|
|
|
890
1020
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
1021
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
1022
|
end
|
|
893
|
-
function Unit.prototype.
|
|
894
|
-
local
|
|
895
|
-
|
|
896
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
897
|
-
return nil
|
|
898
|
-
end
|
|
899
|
-
return UnitAbility:of(
|
|
900
|
-
getUnitAbility(self.handle, abilityId),
|
|
901
|
-
abilityId,
|
|
902
|
-
self
|
|
903
|
-
)
|
|
1023
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
1024
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
1025
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
1026
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
1027
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
1028
|
+
local abilities = self.abilities
|
|
1029
|
+
for i = 1, #abilities do
|
|
1030
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1031
|
+
local ability = abilities[i]
|
|
1032
|
+
tremove(abilities, i)
|
|
1033
|
+
if ability.state == 2 then
|
|
1034
|
+
break
|
|
913
1035
|
end
|
|
1036
|
+
ability:destroy()
|
|
1037
|
+
return true
|
|
914
1038
|
end
|
|
915
|
-
return true
|
|
916
1039
|
end
|
|
917
|
-
return
|
|
1040
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
1041
|
end
|
|
919
1042
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
1043
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,9 +1051,6 @@ end
|
|
|
928
1051
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
1052
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
1053
|
end
|
|
931
|
-
function Unit.prototype.interruptAttack(self)
|
|
932
|
-
unitInterruptAttack(self.handle)
|
|
933
|
-
end
|
|
934
1054
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
935
1055
|
local handle = self.handle
|
|
936
1056
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1001,18 +1121,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1001
1121
|
end
|
|
1002
1122
|
function Unit.prototype.incrementStunCounter(self)
|
|
1003
1123
|
local stunCounter = self[102] or 0
|
|
1004
|
-
if not self[101] or stunCounter >= 0 then
|
|
1124
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1005
1125
|
BlzPauseUnitEx(self.handle, true)
|
|
1006
1126
|
end
|
|
1007
1127
|
self[102] = stunCounter + 1
|
|
1008
1128
|
end
|
|
1009
1129
|
function Unit.prototype.decrementStunCounter(self)
|
|
1010
1130
|
local stunCounter = self[102] or 0
|
|
1011
|
-
if not self[101] or stunCounter >= 1 then
|
|
1131
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1012
1132
|
BlzPauseUnitEx(self.handle, false)
|
|
1013
1133
|
end
|
|
1014
1134
|
self[102] = stunCounter - 1
|
|
1015
1135
|
end
|
|
1136
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1137
|
+
local forceStunCounter = self[103] or 0
|
|
1138
|
+
if forceStunCounter == 0 then
|
|
1139
|
+
local handle = self.handle
|
|
1140
|
+
if not self[101] then
|
|
1141
|
+
for _ = self[102] or 0, -1 do
|
|
1142
|
+
BlzPauseUnitEx(handle, true)
|
|
1143
|
+
end
|
|
1144
|
+
end
|
|
1145
|
+
BlzPauseUnitEx(handle, true)
|
|
1146
|
+
end
|
|
1147
|
+
self[103] = forceStunCounter + 1
|
|
1148
|
+
end
|
|
1149
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1150
|
+
local forceStunCounter = self[103] or 0
|
|
1151
|
+
if forceStunCounter == 1 then
|
|
1152
|
+
local handle = self.handle
|
|
1153
|
+
if not self[101] then
|
|
1154
|
+
for _ = self[102] or 0, -1 do
|
|
1155
|
+
BlzPauseUnitEx(handle, false)
|
|
1156
|
+
end
|
|
1157
|
+
end
|
|
1158
|
+
BlzPauseUnitEx(handle, false)
|
|
1159
|
+
end
|
|
1160
|
+
self[103] = forceStunCounter - 1
|
|
1161
|
+
end
|
|
1016
1162
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1017
1163
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1018
1164
|
owner.handle,
|
|
@@ -1201,7 +1347,7 @@ __TS__SetDescriptor(
|
|
|
1201
1347
|
Unit.prototype,
|
|
1202
1348
|
"isIllusion",
|
|
1203
1349
|
{get = function(self)
|
|
1204
|
-
return
|
|
1350
|
+
return IsUnitIllusion(self.handle)
|
|
1205
1351
|
end},
|
|
1206
1352
|
true
|
|
1207
1353
|
)
|
|
@@ -1209,7 +1355,7 @@ __TS__SetDescriptor(
|
|
|
1209
1355
|
Unit.prototype,
|
|
1210
1356
|
"isStunned",
|
|
1211
1357
|
{get = function(self)
|
|
1212
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1358
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1213
1359
|
end},
|
|
1214
1360
|
true
|
|
1215
1361
|
)
|
|
@@ -1288,13 +1434,13 @@ __TS__SetDescriptor(
|
|
|
1288
1434
|
)
|
|
1289
1435
|
__TS__SetDescriptor(
|
|
1290
1436
|
Unit.prototype,
|
|
1291
|
-
"
|
|
1437
|
+
"primaryAttribute",
|
|
1292
1438
|
{
|
|
1293
1439
|
get = function(self)
|
|
1294
|
-
return
|
|
1440
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1295
1441
|
end,
|
|
1296
|
-
set = function(self,
|
|
1297
|
-
|
|
1442
|
+
set = function(self, primaryAttribute)
|
|
1443
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1298
1444
|
end
|
|
1299
1445
|
},
|
|
1300
1446
|
true
|
|
@@ -1316,19 +1462,6 @@ __TS__SetDescriptor(
|
|
|
1316
1462
|
end},
|
|
1317
1463
|
true
|
|
1318
1464
|
)
|
|
1319
|
-
__TS__SetDescriptor(
|
|
1320
|
-
Unit.prototype,
|
|
1321
|
-
"agilityBase",
|
|
1322
|
-
{
|
|
1323
|
-
get = function(self)
|
|
1324
|
-
return getHeroAgi(self.handle, false)
|
|
1325
|
-
end,
|
|
1326
|
-
set = function(self, agilityBase)
|
|
1327
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1328
|
-
end
|
|
1329
|
-
},
|
|
1330
|
-
true
|
|
1331
|
-
)
|
|
1332
1465
|
__TS__SetDescriptor(
|
|
1333
1466
|
Unit.prototype,
|
|
1334
1467
|
"agilityBonus",
|
|
@@ -1346,19 +1479,6 @@ __TS__SetDescriptor(
|
|
|
1346
1479
|
end},
|
|
1347
1480
|
true
|
|
1348
1481
|
)
|
|
1349
|
-
__TS__SetDescriptor(
|
|
1350
|
-
Unit.prototype,
|
|
1351
|
-
"intelligenceBase",
|
|
1352
|
-
{
|
|
1353
|
-
get = function(self)
|
|
1354
|
-
return getHeroInt(self.handle, false)
|
|
1355
|
-
end,
|
|
1356
|
-
set = function(self, intelligenceBase)
|
|
1357
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1358
|
-
end
|
|
1359
|
-
},
|
|
1360
|
-
true
|
|
1361
|
-
)
|
|
1362
1482
|
__TS__SetDescriptor(
|
|
1363
1483
|
Unit.prototype,
|
|
1364
1484
|
"intelligenceBonus",
|
|
@@ -1407,17 +1527,17 @@ __TS__SetDescriptor(
|
|
|
1407
1527
|
"isTeamGlowVisible",
|
|
1408
1528
|
{
|
|
1409
1529
|
get = function(self)
|
|
1410
|
-
return not self[
|
|
1530
|
+
return not self[107]
|
|
1411
1531
|
end,
|
|
1412
1532
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1414
|
-
local
|
|
1533
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1534
|
+
local ____temp_8
|
|
1415
1535
|
if not isTeamGlowVisible then
|
|
1416
|
-
|
|
1536
|
+
____temp_8 = true
|
|
1417
1537
|
else
|
|
1418
|
-
|
|
1538
|
+
____temp_8 = nil
|
|
1419
1539
|
end
|
|
1420
|
-
self[
|
|
1540
|
+
self[107] = ____temp_8
|
|
1421
1541
|
end
|
|
1422
1542
|
},
|
|
1423
1543
|
true
|
|
@@ -1426,9 +1546,9 @@ __TS__SetDescriptor(
|
|
|
1426
1546
|
Unit.prototype,
|
|
1427
1547
|
"color",
|
|
1428
1548
|
{set = function(self, color)
|
|
1429
|
-
|
|
1430
|
-
if self[
|
|
1431
|
-
|
|
1549
|
+
SetUnitColor(self.handle, color.handle)
|
|
1550
|
+
if self[107] then
|
|
1551
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1552
|
end
|
|
1433
1553
|
end},
|
|
1434
1554
|
true
|
|
@@ -1451,14 +1571,14 @@ __TS__SetDescriptor(
|
|
|
1451
1571
|
"maxHealth",
|
|
1452
1572
|
{
|
|
1453
1573
|
get = function(self)
|
|
1454
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1574
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1455
1575
|
end,
|
|
1456
1576
|
set = function(self, maxHealth)
|
|
1457
|
-
if maxHealth < 1 and self[
|
|
1458
|
-
self[
|
|
1577
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1578
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1459
1579
|
maxHealth = 1
|
|
1460
1580
|
end
|
|
1461
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1581
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1462
1582
|
end
|
|
1463
1583
|
},
|
|
1464
1584
|
true
|
|
@@ -1500,10 +1620,10 @@ __TS__SetDescriptor(
|
|
|
1500
1620
|
"health",
|
|
1501
1621
|
{
|
|
1502
1622
|
get = function(self)
|
|
1503
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1623
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1504
1624
|
end,
|
|
1505
1625
|
set = function(self, health)
|
|
1506
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1626
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1507
1627
|
end
|
|
1508
1628
|
},
|
|
1509
1629
|
true
|
|
@@ -1579,25 +1699,12 @@ __TS__SetDescriptor(
|
|
|
1579
1699
|
},
|
|
1580
1700
|
true
|
|
1581
1701
|
)
|
|
1582
|
-
__TS__SetDescriptor(
|
|
1583
|
-
Unit.prototype,
|
|
1584
|
-
"flyHeight",
|
|
1585
|
-
{
|
|
1586
|
-
get = function(self)
|
|
1587
|
-
return getUnitFlyHeight(self.handle)
|
|
1588
|
-
end,
|
|
1589
|
-
set = function(self, v)
|
|
1590
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1591
|
-
end
|
|
1592
|
-
},
|
|
1593
|
-
true
|
|
1594
|
-
)
|
|
1595
1702
|
__TS__SetDescriptor(
|
|
1596
1703
|
Unit.prototype,
|
|
1597
1704
|
"x",
|
|
1598
1705
|
{
|
|
1599
1706
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1707
|
+
return self[108] or getUnitX(self.handle)
|
|
1601
1708
|
end,
|
|
1602
1709
|
set = function(self, v)
|
|
1603
1710
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1717,7 @@ __TS__SetDescriptor(
|
|
|
1610
1717
|
"y",
|
|
1611
1718
|
{
|
|
1612
1719
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1720
|
+
return self[109] or getUnitY(self.handle)
|
|
1614
1721
|
end,
|
|
1615
1722
|
set = function(self, v)
|
|
1616
1723
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1803,10 @@ __TS__SetDescriptor(
|
|
|
1696
1803
|
"gold",
|
|
1697
1804
|
{
|
|
1698
1805
|
get = function(self)
|
|
1699
|
-
return
|
|
1806
|
+
return GetResourceAmount(self.handle)
|
|
1700
1807
|
end,
|
|
1701
1808
|
set = function(self, gold)
|
|
1702
|
-
|
|
1809
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1810
|
end
|
|
1704
1811
|
},
|
|
1705
1812
|
true
|
|
@@ -1715,14 +1822,18 @@ __TS__SetDescriptor(
|
|
|
1715
1822
|
local handle = self.handle
|
|
1716
1823
|
if isPaused and not IsUnitPaused(handle) then
|
|
1717
1824
|
self[101] = true
|
|
1718
|
-
|
|
1719
|
-
|
|
1825
|
+
if (self[103] or 0) <= 0 then
|
|
1826
|
+
for _ = self[102] or 0, -1 do
|
|
1827
|
+
BlzPauseUnitEx(handle, true)
|
|
1828
|
+
end
|
|
1720
1829
|
end
|
|
1721
1830
|
PauseUnit(handle, true)
|
|
1722
1831
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1723
1832
|
PauseUnit(handle, false)
|
|
1724
|
-
|
|
1725
|
-
|
|
1833
|
+
if (self[103] or 0) <= 0 then
|
|
1834
|
+
for _ = self[102] or 0, -1 do
|
|
1835
|
+
BlzPauseUnitEx(handle, false)
|
|
1836
|
+
end
|
|
1726
1837
|
end
|
|
1727
1838
|
self[101] = nil
|
|
1728
1839
|
end
|
|
@@ -1780,20 +1891,6 @@ __TS__SetDescriptor(
|
|
|
1780
1891
|
},
|
|
1781
1892
|
true
|
|
1782
1893
|
)
|
|
1783
|
-
__TS__SetDescriptor(
|
|
1784
|
-
Unit.prototype,
|
|
1785
|
-
"scale",
|
|
1786
|
-
{
|
|
1787
|
-
get = function(self)
|
|
1788
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1789
|
-
end,
|
|
1790
|
-
set = function(self, v)
|
|
1791
|
-
setUnitScale(self.handle, v, v, v)
|
|
1792
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1793
|
-
end
|
|
1794
|
-
},
|
|
1795
|
-
true
|
|
1796
|
-
)
|
|
1797
1894
|
__TS__SetDescriptor(
|
|
1798
1895
|
Unit.prototype,
|
|
1799
1896
|
"timeScale",
|
|
@@ -1820,13 +1917,26 @@ __TS__SetDescriptor(
|
|
|
1820
1917
|
Unit.prototype,
|
|
1821
1918
|
"pathingCollisionRange",
|
|
1822
1919
|
{get = function(self)
|
|
1823
|
-
return 16 * (min(
|
|
1920
|
+
return 16 * (math.min(
|
|
1824
1921
|
getUnitCollisionSize(self.handle) // 16,
|
|
1825
1922
|
3
|
|
1826
1923
|
) + 1)
|
|
1827
1924
|
end},
|
|
1828
1925
|
true
|
|
1829
1926
|
)
|
|
1927
|
+
__TS__SetDescriptor(
|
|
1928
|
+
Unit.prototype,
|
|
1929
|
+
"movementType",
|
|
1930
|
+
{
|
|
1931
|
+
get = function(self)
|
|
1932
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1933
|
+
end,
|
|
1934
|
+
set = function(self, movementType)
|
|
1935
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1936
|
+
end
|
|
1937
|
+
},
|
|
1938
|
+
true
|
|
1939
|
+
)
|
|
1830
1940
|
__TS__SetDescriptor(
|
|
1831
1941
|
Unit.prototype,
|
|
1832
1942
|
"pathing",
|
|
@@ -1917,30 +2027,6 @@ __TS__SetDescriptor(
|
|
|
1917
2027
|
end},
|
|
1918
2028
|
true
|
|
1919
2029
|
)
|
|
1920
|
-
__TS__SetDescriptor(
|
|
1921
|
-
Unit.prototype,
|
|
1922
|
-
"onUnitInRange",
|
|
1923
|
-
{get = function(self)
|
|
1924
|
-
local handle = self.handle
|
|
1925
|
-
local onUnitInRange = setmetatable(
|
|
1926
|
-
{},
|
|
1927
|
-
{__index = function(self, value)
|
|
1928
|
-
local event = __TS__New(
|
|
1929
|
-
TriggerEvent,
|
|
1930
|
-
function(trigger)
|
|
1931
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1932
|
-
end,
|
|
1933
|
-
function() return ____exports.Unit:of(handle) end
|
|
1934
|
-
)
|
|
1935
|
-
rawset(self, value, event)
|
|
1936
|
-
return event
|
|
1937
|
-
end}
|
|
1938
|
-
)
|
|
1939
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1940
|
-
return onUnitInRange
|
|
1941
|
-
end},
|
|
1942
|
-
true
|
|
1943
|
-
)
|
|
1944
2030
|
__TS__SetDescriptor(
|
|
1945
2031
|
Unit.prototype,
|
|
1946
2032
|
"onManaEqual",
|
|
@@ -2008,6 +2094,14 @@ __TS__SetDescriptor(
|
|
|
2008
2094
|
end},
|
|
2009
2095
|
true
|
|
2010
2096
|
)
|
|
2097
|
+
__TS__SetDescriptor(
|
|
2098
|
+
Unit.prototype,
|
|
2099
|
+
"targetAcquiredEvent",
|
|
2100
|
+
{get = function(self)
|
|
2101
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2102
|
+
end},
|
|
2103
|
+
true
|
|
2104
|
+
)
|
|
2011
2105
|
__TS__SetDescriptor(
|
|
2012
2106
|
Unit.prototype,
|
|
2013
2107
|
"onSelect",
|
|
@@ -2068,6 +2162,11 @@ __TS__SetDescriptor(
|
|
|
2068
2162
|
end},
|
|
2069
2163
|
true
|
|
2070
2164
|
)
|
|
2165
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2166
|
+
____exports.UnitTriggerEvent,
|
|
2167
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2168
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2169
|
+
)
|
|
2071
2170
|
Unit.deathEvent = __TS__New(
|
|
2072
2171
|
____exports.UnitTriggerEvent,
|
|
2073
2172
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2085,7 +2184,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2085
2184
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2086
2185
|
dead[unit] = true
|
|
2087
2186
|
end)
|
|
2088
|
-
____exports.Unit.onImmediateOrder[
|
|
2187
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2089
2188
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2090
2189
|
dead[unit] = false
|
|
2091
2190
|
invoke(event, unit)
|
|
@@ -2102,7 +2201,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2102
2201
|
invoke(event, unit)
|
|
2103
2202
|
end
|
|
2104
2203
|
end
|
|
2105
|
-
____exports.Unit.onImmediateOrder[
|
|
2204
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2106
2205
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2107
2206
|
Timer:run(ifNotLeft, unit)
|
|
2108
2207
|
end
|
|
@@ -2143,25 +2242,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2143
2242
|
InitializingEvent,
|
|
2144
2243
|
function(event)
|
|
2145
2244
|
local function listener(unit, id)
|
|
2146
|
-
local
|
|
2245
|
+
local ____GetSpellTargetUnit_result_11
|
|
2147
2246
|
if GetSpellTargetUnit() then
|
|
2148
|
-
|
|
2247
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2149
2248
|
else
|
|
2150
|
-
local
|
|
2249
|
+
local ____GetSpellTargetItem_result_10
|
|
2151
2250
|
if GetSpellTargetItem() then
|
|
2152
|
-
|
|
2251
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2153
2252
|
else
|
|
2154
|
-
local
|
|
2253
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2155
2254
|
if GetSpellTargetDestructable() then
|
|
2156
|
-
|
|
2255
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2157
2256
|
else
|
|
2158
|
-
|
|
2257
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2159
2258
|
end
|
|
2160
|
-
|
|
2259
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2161
2260
|
end
|
|
2162
|
-
|
|
2261
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2163
2262
|
end
|
|
2164
|
-
local target =
|
|
2263
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2165
2264
|
if target then
|
|
2166
2265
|
invoke(event, unit, id, target)
|
|
2167
2266
|
end
|
|
@@ -2369,38 +2468,57 @@ Unit.onDamaging = (function()
|
|
|
2369
2468
|
if source and source.typeId == dummyUnitId then
|
|
2370
2469
|
source = nil
|
|
2371
2470
|
end
|
|
2372
|
-
local target = BlzGetEventDamageTarget()
|
|
2471
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2472
|
+
local metadata = damageMetadataByTarget[target]
|
|
2473
|
+
damageMetadataByTarget[target] = nil
|
|
2373
2474
|
local data = {
|
|
2374
2475
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2476
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2477
|
damageType = BlzGetEventDamageType(),
|
|
2377
|
-
|
|
2378
|
-
|
|
2478
|
+
weaponSoundType = nativeToWeaponSoundType(BlzGetEventWeaponType()),
|
|
2479
|
+
metadata = metadata,
|
|
2480
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2481
|
+
originalAmount = GetEventDamage(),
|
|
2482
|
+
originalMetadata = metadata,
|
|
2483
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2379
2484
|
}
|
|
2380
2485
|
if data.isAttack and source then
|
|
2381
|
-
|
|
2382
|
-
if weapon == -1 then
|
|
2383
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2384
|
-
weapon = 0
|
|
2385
|
-
end
|
|
2386
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2486
|
+
data.weapon = source:chooseWeapon(target)
|
|
2387
2487
|
end
|
|
2388
2488
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2389
2489
|
invoke(
|
|
2390
2490
|
event,
|
|
2391
2491
|
source,
|
|
2392
|
-
|
|
2492
|
+
target,
|
|
2393
2493
|
setmetatable(
|
|
2394
2494
|
{},
|
|
2395
2495
|
{
|
|
2396
2496
|
__index = data,
|
|
2397
2497
|
__newindex = function(self, key, value)
|
|
2398
|
-
damageSetters[key]
|
|
2498
|
+
local damageSetter = damageSetters[key]
|
|
2499
|
+
if damageSetter ~= nil then
|
|
2500
|
+
damageSetter(value)
|
|
2501
|
+
end
|
|
2399
2502
|
data[key] = value
|
|
2400
2503
|
end
|
|
2401
2504
|
}
|
|
2402
2505
|
)
|
|
2403
2506
|
)
|
|
2507
|
+
if data[0] and source then
|
|
2508
|
+
local sourceOwner = source.owner.handle
|
|
2509
|
+
data[1] = sourceOwner
|
|
2510
|
+
local targetOwner = target.owner.handle
|
|
2511
|
+
data[2] = targetOwner
|
|
2512
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2513
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2514
|
+
data[3] = true
|
|
2515
|
+
end
|
|
2516
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2517
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2518
|
+
data[4] = true
|
|
2519
|
+
end
|
|
2520
|
+
end
|
|
2521
|
+
damagingEventByTarget[target] = data
|
|
2404
2522
|
return
|
|
2405
2523
|
end
|
|
2406
2524
|
BlzSetEventDamage(0)
|
|
@@ -2408,7 +2526,7 @@ Unit.onDamaging = (function()
|
|
|
2408
2526
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2409
2527
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2410
2528
|
local sourceOwner = source.owner.handle
|
|
2411
|
-
local targetOwner =
|
|
2529
|
+
local targetOwner = target.owner.handle
|
|
2412
2530
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2413
2531
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2414
2532
|
Timer:run(function()
|
|
@@ -2424,25 +2542,21 @@ Unit.onDamaging = (function()
|
|
|
2424
2542
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2425
2543
|
local condition = ____value[1]
|
|
2426
2544
|
local action = ____value[2]
|
|
2427
|
-
if condition(
|
|
2428
|
-
source,
|
|
2429
|
-
____exports.Unit:of(target),
|
|
2430
|
-
data
|
|
2431
|
-
) then
|
|
2545
|
+
if condition(source, target, data) then
|
|
2432
2546
|
action(
|
|
2433
2547
|
source,
|
|
2434
|
-
|
|
2548
|
+
target,
|
|
2435
2549
|
setmetatable(
|
|
2436
2550
|
{fire = function()
|
|
2437
2551
|
UnitDamageTarget(
|
|
2438
2552
|
source.handle,
|
|
2439
|
-
target,
|
|
2553
|
+
target.handle,
|
|
2440
2554
|
data.amount,
|
|
2441
2555
|
true,
|
|
2442
2556
|
true,
|
|
2443
|
-
data.attackType,
|
|
2557
|
+
attackTypeToNative(data.attackType),
|
|
2444
2558
|
data.damageType,
|
|
2445
|
-
data.
|
|
2559
|
+
weaponSoundTypeToNative(data.weaponSoundType)
|
|
2446
2560
|
)
|
|
2447
2561
|
end},
|
|
2448
2562
|
{__index = data, __newindex = data}
|
|
@@ -2467,30 +2581,54 @@ Unit.onDamage = __TS__New(
|
|
|
2467
2581
|
if source and source.typeId == dummyUnitId then
|
|
2468
2582
|
source = nil
|
|
2469
2583
|
end
|
|
2584
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2585
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2586
|
+
damagingEventByTarget[target] = nil
|
|
2470
2587
|
local data = {
|
|
2471
2588
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2589
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2590
|
damageType = BlzGetEventDamageType(),
|
|
2474
|
-
|
|
2591
|
+
weaponSoundType = nativeToWeaponSoundType(BlzGetEventWeaponType()),
|
|
2592
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2475
2593
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
-
originalAmount = GetEventDamage(),
|
|
2594
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2595
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2477
2596
|
preventDeath = damageEventPreventDeath
|
|
2478
2597
|
}
|
|
2598
|
+
if damagingEvent then
|
|
2599
|
+
for key, value in pairs(damagingEvent) do
|
|
2600
|
+
if isAttribute(key) then
|
|
2601
|
+
data[key] = value
|
|
2602
|
+
end
|
|
2603
|
+
end
|
|
2604
|
+
local sourceOwner = damagingEvent[1]
|
|
2605
|
+
if sourceOwner then
|
|
2606
|
+
local targetOwner = damagingEvent[2]
|
|
2607
|
+
if damagingEvent[3] then
|
|
2608
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2609
|
+
end
|
|
2610
|
+
if damagingEvent[4] then
|
|
2611
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2612
|
+
end
|
|
2613
|
+
end
|
|
2614
|
+
end
|
|
2479
2615
|
local evData = setmetatable(
|
|
2480
2616
|
{},
|
|
2481
2617
|
{
|
|
2482
2618
|
__index = data,
|
|
2483
2619
|
__newindex = function(self, key, value)
|
|
2484
|
-
damageSetters[key]
|
|
2620
|
+
local damageSetter = damageSetters[key]
|
|
2621
|
+
if damageSetter ~= nil then
|
|
2622
|
+
damageSetter(value)
|
|
2623
|
+
end
|
|
2485
2624
|
data[key] = value
|
|
2486
2625
|
end
|
|
2487
2626
|
}
|
|
2488
2627
|
)
|
|
2489
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2490
2628
|
invoke(event, source, target, evData)
|
|
2491
2629
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2492
2630
|
local bonusHealth = math.ceil(evData.amount)
|
|
2493
|
-
target[
|
|
2631
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2494
2632
|
BlzSetUnitMaxHP(
|
|
2495
2633
|
target.handle,
|
|
2496
2634
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2504,7 +2642,7 @@ Unit.onDamage = __TS__New(
|
|
|
2504
2642
|
evData[0],
|
|
2505
2643
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2506
2644
|
)
|
|
2507
|
-
target[
|
|
2645
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2508
2646
|
SetWidgetLife(
|
|
2509
2647
|
target.handle,
|
|
2510
2648
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2530,7 +2668,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2530
2668
|
function()
|
|
2531
2669
|
local unit = getTriggerUnit()
|
|
2532
2670
|
local item = getManipulatedItem()
|
|
2533
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2671
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2534
2672
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2535
2673
|
end
|
|
2536
2674
|
return IgnoreEvent
|
|
@@ -2540,10 +2678,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2540
2678
|
____exports.UnitTriggerEvent,
|
|
2541
2679
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2542
2680
|
function()
|
|
2543
|
-
local
|
|
2544
|
-
local
|
|
2545
|
-
if getUnitTypeId(
|
|
2546
|
-
|
|
2681
|
+
local unitHandle = getTriggerUnit()
|
|
2682
|
+
local itemHandle = getManipulatedItem()
|
|
2683
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2684
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2685
|
+
local item = Item:of(itemHandle)
|
|
2686
|
+
if ownerByItem[item] ~= unit then
|
|
2687
|
+
return unit, item
|
|
2688
|
+
end
|
|
2547
2689
|
end
|
|
2548
2690
|
return IgnoreEvent
|
|
2549
2691
|
end
|
|
@@ -2554,59 +2696,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2696
|
function()
|
|
2555
2697
|
local unit = getTriggerUnit()
|
|
2556
2698
|
local item = getManipulatedItem()
|
|
2557
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2699
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2558
2700
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
2701
|
end
|
|
2560
2702
|
return IgnoreEvent
|
|
2561
2703
|
end
|
|
2562
2704
|
)
|
|
2563
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2564
|
-
____exports.UnitTriggerEvent,
|
|
2565
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2567
|
-
)
|
|
2568
2705
|
__TS__ObjectDefineProperty(
|
|
2569
2706
|
Unit,
|
|
2570
|
-
"
|
|
2707
|
+
"itemChargesChangedEvent",
|
|
2571
2708
|
{get = function(self)
|
|
2572
2709
|
local event = __TS__New(Event)
|
|
2573
|
-
|
|
2574
|
-
local
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
if item ~= nil then
|
|
2578
|
-
invoke(event, unit, item)
|
|
2579
|
-
end
|
|
2710
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2711
|
+
local unit = item.owner
|
|
2712
|
+
if unit ~= nil then
|
|
2713
|
+
invoke(event, unit, item)
|
|
2580
2714
|
end
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2584
|
-
end
|
|
2585
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2586
|
-
return event
|
|
2587
|
-
end}
|
|
2588
|
-
)
|
|
2589
|
-
__TS__ObjectDefineProperty(
|
|
2590
|
-
Unit,
|
|
2591
|
-
"itemMoveOrderEvent",
|
|
2592
|
-
{get = function(self)
|
|
2593
|
-
local event = __TS__New(Event)
|
|
2594
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2595
|
-
local slotTo = order - orderId("moveslot0")
|
|
2596
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2597
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2598
|
-
if slotFrom ~= nil then
|
|
2599
|
-
invoke(
|
|
2600
|
-
event,
|
|
2601
|
-
unit,
|
|
2602
|
-
item,
|
|
2603
|
-
slotFrom,
|
|
2604
|
-
slotTo
|
|
2605
|
-
)
|
|
2606
|
-
end
|
|
2607
|
-
end)
|
|
2608
|
-
end
|
|
2609
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2715
|
+
end)
|
|
2716
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2610
2717
|
return event
|
|
2611
2718
|
end}
|
|
2612
2719
|
)
|
|
@@ -2635,6 +2742,10 @@ __TS__ObjectDefineProperty(
|
|
|
2635
2742
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2636
2743
|
return destroyEvent
|
|
2637
2744
|
end}
|
|
2745
|
+
)
|
|
2746
|
+
Unit.synchronize = synchronizer(
|
|
2747
|
+
function(unit) return unit.syncId end,
|
|
2748
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2638
2749
|
);
|
|
2639
2750
|
(function(self)
|
|
2640
2751
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2652,11 +2763,7 @@ __TS__ObjectDefineProperty(
|
|
|
2652
2763
|
function(____, id) return fourCC(id) end
|
|
2653
2764
|
)
|
|
2654
2765
|
end)
|
|
2655
|
-
for ____, leaveOrderId in ipairs({
|
|
2656
|
-
orderId("undefend"),
|
|
2657
|
-
orderId("magicundefense"),
|
|
2658
|
-
orderId("unimmolation")
|
|
2659
|
-
}) do
|
|
2766
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2660
2767
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2661
2768
|
local handle = unit.handle
|
|
2662
2769
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2664,7 +2771,8 @@ __TS__ObjectDefineProperty(
|
|
|
2664
2771
|
return
|
|
2665
2772
|
end
|
|
2666
2773
|
end
|
|
2667
|
-
unit:
|
|
2774
|
+
unit:saveData()
|
|
2775
|
+
Timer:run(unit, "destroy")
|
|
2668
2776
|
end)
|
|
2669
2777
|
end
|
|
2670
2778
|
end)(Unit)
|