warscript 0.0.1-dev.099f0af → 0.0.1-dev.09d09c4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +24 -6
- package/core/types/effect.lua +169 -107
- package/core/types/frame.d.ts +5 -0
- package/core/types/frame.lua +171 -22
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +127 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +13 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +9 -0
- package/engine/behaviour/ability/on-command-impact.lua +26 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +30 -7
- package/engine/behaviour/ability.lua +162 -43
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +127 -60
- package/engine/buff.lua +627 -312
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +30 -14
- 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.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +142 -19
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +93 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +16 -0
- package/engine/internal/unit/bonus.lua +119 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +14 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +9 -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.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +73 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +54 -30
- package/engine/internal/unit.lua +454 -305
- 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 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +41 -20
- package/engine/object-data/entry/ability-type.lua +337 -44
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +39 -29
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +20 -3
- package/engine/object-data/entry/item-type.lua +99 -2
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +71 -6
- package/engine/object-data/entry/unit-type.lua +592 -93
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +21 -14
- package/engine/object-data/entry.lua +68 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +12 -6
- package/engine/object-field/ability.lua +11 -7
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +13 -1
- package/engine/unit.lua +13 -1
- package/event.d.ts +1 -1
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.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.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +11 -1
- package/utility/arrays.lua +57 -3
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -63
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/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,37 +47,44 @@ 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
|
|
51
|
-
local
|
|
52
|
-
local
|
|
53
|
-
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
|
|
54
67
|
local match = string.match
|
|
55
68
|
local ____tostring = _G.tostring
|
|
56
69
|
local setUnitAnimation = SetUnitAnimation
|
|
57
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
58
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
59
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
60
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
61
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
62
73
|
local getHeroStr = GetHeroStr
|
|
63
74
|
local getHeroAgi = GetHeroAgi
|
|
64
75
|
local getHeroInt = GetHeroInt
|
|
65
|
-
local setHeroStr = SetHeroStr
|
|
66
|
-
local setHeroAgi = SetHeroAgi
|
|
67
|
-
local setHeroInt = SetHeroInt
|
|
68
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
69
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
70
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
71
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
72
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
73
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
74
|
-
local setUnitScale = SetUnitScale
|
|
75
82
|
local setUnitPosition = SetUnitPosition
|
|
76
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
86
|
local createUnit = CreateUnit
|
|
79
87
|
local killUnit = KillUnit
|
|
80
|
-
local setUnitExploded = SetUnitExploded
|
|
81
88
|
local removeUnit = RemoveUnit
|
|
82
89
|
local getUnitTypeId = GetUnitTypeId
|
|
83
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -93,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
93
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
94
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
95
102
|
local isUnitInRange = IsUnitInRange
|
|
96
|
-
local setResourceAmount = SetResourceAmount
|
|
97
|
-
local getResourceAmount = GetResourceAmount
|
|
98
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
101
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
102
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
103
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
104
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
105
109
|
local isUnitInvisible = IsUnitInvisible
|
|
106
110
|
local isUnitVisible = IsUnitVisible
|
|
107
111
|
local getUnitX = GetUnitX
|
|
@@ -118,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
118
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
119
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
120
124
|
local unitAlive = UnitAlive
|
|
121
|
-
local unitAddType = UnitAddType
|
|
122
|
-
local unitRemoveType = UnitRemoveType
|
|
123
|
-
local isUnitIllusion = IsUnitIllusion
|
|
124
|
-
local isUnitType = IsUnitType
|
|
125
125
|
local isUnitAlly = IsUnitAlly
|
|
126
126
|
local isUnitEnemy = IsUnitEnemy
|
|
127
127
|
local getOwningPlayer = GetOwningPlayer
|
|
128
|
-
local setUnitColor = SetUnitColor
|
|
129
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
130
128
|
____exports.UnitClassification = {}
|
|
131
129
|
local UnitClassification = ____exports.UnitClassification
|
|
132
130
|
do
|
|
@@ -136,6 +134,7 @@ do
|
|
|
136
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
137
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
138
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
139
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
140
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
141
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -343,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
343
342
|
}
|
|
344
343
|
)
|
|
345
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
346
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
347
349
|
if self[0] ~= nil then
|
|
348
350
|
return
|
|
@@ -354,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
354
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
355
357
|
end
|
|
356
358
|
end
|
|
357
|
-
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
|
+
}
|
|
358
367
|
local jlimitopByOperator = {
|
|
359
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
360
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -372,15 +381,27 @@ local modifiers = {
|
|
|
372
381
|
end,
|
|
373
382
|
armor = function(unit, value)
|
|
374
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
375
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
376
389
|
end
|
|
377
|
-
local ability = assert(
|
|
378
|
-
|
|
379
|
-
ability,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
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
|
+
)
|
|
384
405
|
end
|
|
385
406
|
}
|
|
386
407
|
local getters = {
|
|
@@ -398,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
398
419
|
self.unit = unit
|
|
399
420
|
self.index = index
|
|
400
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
|
+
)
|
|
401
435
|
__TS__SetDescriptor(
|
|
402
436
|
UnitWeapon.prototype,
|
|
403
437
|
"cooldown",
|
|
@@ -432,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
432
466
|
},
|
|
433
467
|
true
|
|
434
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
|
+
)
|
|
435
482
|
__TS__SetDescriptor(
|
|
436
483
|
UnitWeapon.prototype,
|
|
437
484
|
"damageBase",
|
|
@@ -543,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
543
590
|
},
|
|
544
591
|
true
|
|
545
592
|
)
|
|
546
|
-
local unitInventorySize = UnitInventorySize
|
|
547
|
-
local unitItemInSlot = UnitItemInSlot
|
|
548
593
|
local getItemAbility = BlzGetItemAbility
|
|
549
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
550
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -562,19 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
607
|
____exports.Unit:of(unit)
|
|
563
608
|
)
|
|
564
609
|
end
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
return UnitAbility:of(
|
|
568
|
-
ability,
|
|
569
|
-
abilityId,
|
|
570
|
-
____exports.Unit:of(unit)
|
|
571
|
-
)
|
|
572
|
-
end
|
|
573
|
-
else
|
|
574
|
-
unitRemoveAbility(unit, abilityId)
|
|
575
|
-
end
|
|
576
|
-
for i = 0, unitInventorySize(unit) - 1 do
|
|
577
|
-
local item = unitItemInSlot(unit, i)
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
578
612
|
if getItemAbility(item, abilityId) == ability then
|
|
579
613
|
return ItemAbility:of(
|
|
580
614
|
ability,
|
|
@@ -619,26 +653,30 @@ local fieldSetters = {
|
|
|
619
653
|
}
|
|
620
654
|
local dummies = {}
|
|
621
655
|
for ____, player in ipairs(Player.all) do
|
|
622
|
-
local dummy = assert(
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
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
|
+
)
|
|
629
667
|
ShowUnit(dummy, false)
|
|
630
668
|
dummies[player] = dummy
|
|
631
669
|
end
|
|
632
670
|
local function delayHealthChecksCallback(unit)
|
|
633
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
634
672
|
if counter ~= 0 then
|
|
635
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
636
674
|
return
|
|
637
675
|
end
|
|
638
|
-
unit[
|
|
639
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
640
678
|
if healthBonus ~= nil then
|
|
641
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
642
680
|
local handle = unit.handle
|
|
643
681
|
BlzSetUnitMaxHP(
|
|
644
682
|
handle,
|
|
@@ -646,45 +684,79 @@ local function delayHealthChecksCallback(unit)
|
|
|
646
684
|
)
|
|
647
685
|
end
|
|
648
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
|
|
649
699
|
____exports.Unit = __TS__Class()
|
|
650
700
|
local Unit = ____exports.Unit
|
|
651
701
|
Unit.name = "Unit"
|
|
652
702
|
__TS__ClassExtends(Unit, Handle)
|
|
653
703
|
function Unit.prototype.____constructor(self, handle)
|
|
654
704
|
Handle.prototype.____constructor(self, handle)
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
655
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
656
|
-
assert(
|
|
657
|
-
|
|
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
|
+
)
|
|
658
719
|
if unitAddAbility(
|
|
659
720
|
handle,
|
|
660
721
|
fourCC("Amrf")
|
|
661
722
|
) then
|
|
662
|
-
assert(
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
666
731
|
end
|
|
732
|
+
unitBySyncId[self.syncId] = self
|
|
667
733
|
local ____ = self.abilities
|
|
668
734
|
end
|
|
669
|
-
function Unit.prototype.getEvent(self,
|
|
670
|
-
self.events = self.events or (
|
|
671
|
-
local eventId = GetHandleId(
|
|
672
|
-
|
|
673
|
-
|
|
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(
|
|
674
741
|
TriggerEvent,
|
|
675
742
|
function(trigger)
|
|
676
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
677
744
|
end,
|
|
678
745
|
collector or (function() return {} end)
|
|
679
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
680
748
|
end
|
|
681
|
-
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))
|
|
682
756
|
end
|
|
683
757
|
function Unit.prototype.onDestroy(self)
|
|
684
758
|
local handle = self.handle
|
|
685
|
-
|
|
686
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
687
|
-
end
|
|
759
|
+
self:saveData()
|
|
688
760
|
local abilities = self.abilities
|
|
689
761
|
for ____, ability in ipairs(abilities) do
|
|
690
762
|
ability:destroy()
|
|
@@ -702,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
702
774
|
end
|
|
703
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
704
776
|
if eventsToDestroy ~= nil then
|
|
705
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
706
780
|
end
|
|
707
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
708
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -720,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
720
794
|
self._attackHandlers = handlers
|
|
721
795
|
if #handlers == 1 then
|
|
722
796
|
local handle = self.handle
|
|
723
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
724
802
|
end
|
|
725
803
|
return handler
|
|
726
804
|
end
|
|
@@ -749,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
749
827
|
end}
|
|
750
828
|
end
|
|
751
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
752
|
-
local
|
|
753
|
-
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
|
|
754
832
|
end
|
|
755
833
|
function Unit.prototype.addClassification(self, classification)
|
|
756
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
757
835
|
end
|
|
758
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
759
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
760
838
|
end
|
|
761
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
762
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
763
841
|
end
|
|
764
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
765
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -768,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
768
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
769
847
|
end
|
|
770
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
771
|
-
local
|
|
849
|
+
local ____temp_4
|
|
772
850
|
if type(x) == "number" then
|
|
773
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
774
852
|
else
|
|
775
|
-
|
|
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
|
|
776
860
|
end
|
|
777
|
-
return
|
|
861
|
+
return ____temp_4
|
|
778
862
|
end
|
|
779
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
780
864
|
return isUnitAlly(
|
|
@@ -792,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
792
876
|
if type(animation) == "number" then
|
|
793
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
794
878
|
elseif rarity then
|
|
795
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
796
880
|
else
|
|
797
881
|
setUnitAnimation(self.handle, animation)
|
|
798
882
|
end
|
|
799
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
800
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
801
|
-
|
|
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
|
|
802
900
|
end
|
|
803
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
805
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
806
904
|
end
|
|
807
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -811,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
811
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
812
910
|
end
|
|
813
911
|
function Unit.prototype.explode(self)
|
|
814
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
815
913
|
killUnit(self.handle)
|
|
816
914
|
end
|
|
817
915
|
function Unit.prototype.kill(self)
|
|
818
916
|
killUnit(self.handle)
|
|
819
917
|
end
|
|
820
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
821
|
-
local
|
|
822
|
-
local
|
|
823
|
-
local
|
|
824
|
-
if
|
|
825
|
-
|
|
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
|
|
826
924
|
end
|
|
827
|
-
__TS__SparseArrayPush(
|
|
828
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
829
927
|
end
|
|
830
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
831
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -865,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
865
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
866
964
|
end
|
|
867
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
868
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
869
967
|
end
|
|
870
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
877
975
|
local abilities = self.abilities
|
|
878
976
|
abilities[#abilities + 1] = ability
|
|
879
|
-
return ability
|
|
880
977
|
end
|
|
881
|
-
return
|
|
978
|
+
return ability
|
|
882
979
|
end
|
|
883
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
884
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -892,31 +989,21 @@ end
|
|
|
892
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
893
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
894
991
|
end
|
|
895
|
-
function Unit.prototype.
|
|
896
|
-
local
|
|
897
|
-
|
|
898
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
899
|
-
return nil
|
|
900
|
-
end
|
|
901
|
-
return UnitAbility:of(
|
|
902
|
-
getUnitAbility(self.handle, abilityId),
|
|
903
|
-
abilityId,
|
|
904
|
-
self
|
|
905
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
906
995
|
end
|
|
907
|
-
function Unit.prototype.removeAbility(self,
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
end
|
|
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
|
+
ability:destroy()
|
|
1003
|
+
return true
|
|
916
1004
|
end
|
|
917
|
-
return true
|
|
918
1005
|
end
|
|
919
|
-
return
|
|
1006
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
920
1007
|
end
|
|
921
1008
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
922
1009
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -930,12 +1017,16 @@ end
|
|
|
930
1017
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
931
1018
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
932
1019
|
end
|
|
933
|
-
function Unit.prototype.interruptAttack(self)
|
|
934
|
-
unitInterruptAttack(self.handle)
|
|
935
|
-
end
|
|
936
1020
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
937
|
-
|
|
938
|
-
unitDisableAbility(
|
|
1021
|
+
local handle = self.handle
|
|
1022
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
1023
|
+
Timer:run(
|
|
1024
|
+
unitDisableAbility,
|
|
1025
|
+
handle,
|
|
1026
|
+
abilityId,
|
|
1027
|
+
false,
|
|
1028
|
+
false
|
|
1029
|
+
)
|
|
939
1030
|
end
|
|
940
1031
|
function Unit.prototype.getDistanceTo(self, target)
|
|
941
1032
|
local handle = self.handle
|
|
@@ -995,18 +1086,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
995
1086
|
self:decrementStunCounter()
|
|
996
1087
|
end
|
|
997
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
998
|
-
local stunCounter = self[
|
|
999
|
-
if not self[
|
|
1089
|
+
local stunCounter = self[102] or 0
|
|
1090
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1000
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
1001
1092
|
end
|
|
1002
|
-
self[
|
|
1093
|
+
self[102] = stunCounter + 1
|
|
1003
1094
|
end
|
|
1004
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1005
|
-
local stunCounter = self[
|
|
1006
|
-
if not self[
|
|
1096
|
+
local stunCounter = self[102] or 0
|
|
1097
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1007
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1008
1099
|
end
|
|
1009
|
-
self[
|
|
1100
|
+
self[102] = stunCounter - 1
|
|
1101
|
+
end
|
|
1102
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1103
|
+
local forceStunCounter = self[103] or 0
|
|
1104
|
+
if forceStunCounter == 0 then
|
|
1105
|
+
local handle = self.handle
|
|
1106
|
+
if not self[101] then
|
|
1107
|
+
for _ = self[102] or 0, -1 do
|
|
1108
|
+
BlzPauseUnitEx(handle, true)
|
|
1109
|
+
end
|
|
1110
|
+
end
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
self[103] = forceStunCounter + 1
|
|
1114
|
+
end
|
|
1115
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1116
|
+
local forceStunCounter = self[103] or 0
|
|
1117
|
+
if forceStunCounter == 1 then
|
|
1118
|
+
local handle = self.handle
|
|
1119
|
+
if not self[101] then
|
|
1120
|
+
for _ = self[102] or 0, -1 do
|
|
1121
|
+
BlzPauseUnitEx(handle, false)
|
|
1122
|
+
end
|
|
1123
|
+
end
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
self[103] = forceStunCounter - 1
|
|
1010
1127
|
end
|
|
1011
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1012
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1108,8 +1225,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1108
1225
|
)
|
|
1109
1226
|
return targetCollection
|
|
1110
1227
|
end
|
|
1111
|
-
function Unit.getSelectionOf(self, player)
|
|
1112
|
-
|
|
1228
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1229
|
+
if target == nil then
|
|
1230
|
+
target = {}
|
|
1231
|
+
end
|
|
1232
|
+
targetCollection = target
|
|
1113
1233
|
targetCollectionNextIndex = 1
|
|
1114
1234
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1115
1235
|
return targetCollection
|
|
@@ -1131,6 +1251,9 @@ end
|
|
|
1131
1251
|
function Unit.prototype.__tostring(self)
|
|
1132
1252
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1133
1253
|
end
|
|
1254
|
+
function Unit.getBySyncId(self, syncId)
|
|
1255
|
+
return unitBySyncId[syncId]
|
|
1256
|
+
end
|
|
1134
1257
|
__TS__SetDescriptor(
|
|
1135
1258
|
Unit.prototype,
|
|
1136
1259
|
"_deltas",
|
|
@@ -1190,7 +1313,15 @@ __TS__SetDescriptor(
|
|
|
1190
1313
|
Unit.prototype,
|
|
1191
1314
|
"isIllusion",
|
|
1192
1315
|
{get = function(self)
|
|
1193
|
-
return
|
|
1316
|
+
return IsUnitIllusion(self.handle)
|
|
1317
|
+
end},
|
|
1318
|
+
true
|
|
1319
|
+
)
|
|
1320
|
+
__TS__SetDescriptor(
|
|
1321
|
+
Unit.prototype,
|
|
1322
|
+
"isStunned",
|
|
1323
|
+
{get = function(self)
|
|
1324
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1194
1325
|
end},
|
|
1195
1326
|
true
|
|
1196
1327
|
)
|
|
@@ -1269,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1269
1400
|
)
|
|
1270
1401
|
__TS__SetDescriptor(
|
|
1271
1402
|
Unit.prototype,
|
|
1272
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1273
1404
|
{
|
|
1274
1405
|
get = function(self)
|
|
1275
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1276
1407
|
end,
|
|
1277
|
-
set = function(self,
|
|
1278
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1279
1410
|
end
|
|
1280
1411
|
},
|
|
1281
1412
|
true
|
|
@@ -1297,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1297
1428
|
end},
|
|
1298
1429
|
true
|
|
1299
1430
|
)
|
|
1300
|
-
__TS__SetDescriptor(
|
|
1301
|
-
Unit.prototype,
|
|
1302
|
-
"agilityBase",
|
|
1303
|
-
{
|
|
1304
|
-
get = function(self)
|
|
1305
|
-
return getHeroAgi(self.handle, false)
|
|
1306
|
-
end,
|
|
1307
|
-
set = function(self, agilityBase)
|
|
1308
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1309
|
-
end
|
|
1310
|
-
},
|
|
1311
|
-
true
|
|
1312
|
-
)
|
|
1313
1431
|
__TS__SetDescriptor(
|
|
1314
1432
|
Unit.prototype,
|
|
1315
1433
|
"agilityBonus",
|
|
@@ -1327,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1327
1445
|
end},
|
|
1328
1446
|
true
|
|
1329
1447
|
)
|
|
1330
|
-
__TS__SetDescriptor(
|
|
1331
|
-
Unit.prototype,
|
|
1332
|
-
"intelligenceBase",
|
|
1333
|
-
{
|
|
1334
|
-
get = function(self)
|
|
1335
|
-
return getHeroInt(self.handle, false)
|
|
1336
|
-
end,
|
|
1337
|
-
set = function(self, intelligenceBase)
|
|
1338
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1339
|
-
end
|
|
1340
|
-
},
|
|
1341
|
-
true
|
|
1342
|
-
)
|
|
1343
1448
|
__TS__SetDescriptor(
|
|
1344
1449
|
Unit.prototype,
|
|
1345
1450
|
"intelligenceBonus",
|
|
@@ -1388,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1388
1493
|
"isTeamGlowVisible",
|
|
1389
1494
|
{
|
|
1390
1495
|
get = function(self)
|
|
1391
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1392
1497
|
end,
|
|
1393
1498
|
set = function(self, isTeamGlowVisible)
|
|
1394
|
-
|
|
1395
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1396
1501
|
if not isTeamGlowVisible then
|
|
1397
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1398
1503
|
else
|
|
1399
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1400
1505
|
end
|
|
1401
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1402
1507
|
end
|
|
1403
1508
|
},
|
|
1404
1509
|
true
|
|
@@ -1407,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1407
1512
|
Unit.prototype,
|
|
1408
1513
|
"color",
|
|
1409
1514
|
{set = function(self, color)
|
|
1410
|
-
|
|
1411
|
-
if self[
|
|
1412
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1413
1518
|
end
|
|
1414
1519
|
end},
|
|
1415
1520
|
true
|
|
@@ -1432,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1432
1537
|
"maxHealth",
|
|
1433
1538
|
{
|
|
1434
1539
|
get = function(self)
|
|
1435
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1436
1541
|
end,
|
|
1437
1542
|
set = function(self, maxHealth)
|
|
1438
|
-
if maxHealth < 1 and self[
|
|
1439
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1440
1545
|
maxHealth = 1
|
|
1441
1546
|
end
|
|
1442
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1443
1548
|
end
|
|
1444
1549
|
},
|
|
1445
1550
|
true
|
|
@@ -1481,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1481
1586
|
"health",
|
|
1482
1587
|
{
|
|
1483
1588
|
get = function(self)
|
|
1484
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1485
1590
|
end,
|
|
1486
1591
|
set = function(self, health)
|
|
1487
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1488
1593
|
end
|
|
1489
1594
|
},
|
|
1490
1595
|
true
|
|
@@ -1560,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1560
1665
|
},
|
|
1561
1666
|
true
|
|
1562
1667
|
)
|
|
1563
|
-
__TS__SetDescriptor(
|
|
1564
|
-
Unit.prototype,
|
|
1565
|
-
"flyHeight",
|
|
1566
|
-
{
|
|
1567
|
-
get = function(self)
|
|
1568
|
-
return getUnitFlyHeight(self.handle)
|
|
1569
|
-
end,
|
|
1570
|
-
set = function(self, v)
|
|
1571
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1572
|
-
end
|
|
1573
|
-
},
|
|
1574
|
-
true
|
|
1575
|
-
)
|
|
1576
1668
|
__TS__SetDescriptor(
|
|
1577
1669
|
Unit.prototype,
|
|
1578
1670
|
"x",
|
|
1579
1671
|
{
|
|
1580
1672
|
get = function(self)
|
|
1581
|
-
return getUnitX(self.handle)
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1582
1674
|
end,
|
|
1583
1675
|
set = function(self, v)
|
|
1584
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1591,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1591
1683
|
"y",
|
|
1592
1684
|
{
|
|
1593
1685
|
get = function(self)
|
|
1594
|
-
return getUnitY(self.handle)
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1595
1687
|
end,
|
|
1596
1688
|
set = function(self, v)
|
|
1597
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1677,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1677
1769
|
"gold",
|
|
1678
1770
|
{
|
|
1679
1771
|
get = function(self)
|
|
1680
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1681
1773
|
end,
|
|
1682
1774
|
set = function(self, gold)
|
|
1683
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1684
1776
|
end
|
|
1685
1777
|
},
|
|
1686
1778
|
true
|
|
@@ -1695,17 +1787,21 @@ __TS__SetDescriptor(
|
|
|
1695
1787
|
set = function(self, isPaused)
|
|
1696
1788
|
local handle = self.handle
|
|
1697
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1698
|
-
self[
|
|
1699
|
-
|
|
1700
|
-
|
|
1790
|
+
self[101] = true
|
|
1791
|
+
if (self[103] or 0) <= 0 then
|
|
1792
|
+
for _ = self[102] or 0, -1 do
|
|
1793
|
+
BlzPauseUnitEx(handle, true)
|
|
1794
|
+
end
|
|
1701
1795
|
end
|
|
1702
1796
|
PauseUnit(handle, true)
|
|
1703
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1704
1798
|
PauseUnit(handle, false)
|
|
1705
|
-
|
|
1706
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1707
1803
|
end
|
|
1708
|
-
self[
|
|
1804
|
+
self[101] = nil
|
|
1709
1805
|
end
|
|
1710
1806
|
end
|
|
1711
1807
|
},
|
|
@@ -1761,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1761
1857
|
},
|
|
1762
1858
|
true
|
|
1763
1859
|
)
|
|
1764
|
-
__TS__SetDescriptor(
|
|
1765
|
-
Unit.prototype,
|
|
1766
|
-
"scale",
|
|
1767
|
-
{
|
|
1768
|
-
get = function(self)
|
|
1769
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1770
|
-
end,
|
|
1771
|
-
set = function(self, v)
|
|
1772
|
-
setUnitScale(self.handle, v, v, v)
|
|
1773
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1774
|
-
end
|
|
1775
|
-
},
|
|
1776
|
-
true
|
|
1777
|
-
)
|
|
1778
1860
|
__TS__SetDescriptor(
|
|
1779
1861
|
Unit.prototype,
|
|
1780
1862
|
"timeScale",
|
|
@@ -1801,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1801
1883
|
Unit.prototype,
|
|
1802
1884
|
"pathingCollisionRange",
|
|
1803
1885
|
{get = function(self)
|
|
1804
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1805
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1806
1888
|
3
|
|
1807
1889
|
) + 1)
|
|
1808
1890
|
end},
|
|
1809
1891
|
true
|
|
1810
1892
|
)
|
|
1893
|
+
__TS__SetDescriptor(
|
|
1894
|
+
Unit.prototype,
|
|
1895
|
+
"movementType",
|
|
1896
|
+
{
|
|
1897
|
+
get = function(self)
|
|
1898
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1899
|
+
end,
|
|
1900
|
+
set = function(self, movementType)
|
|
1901
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1902
|
+
end
|
|
1903
|
+
},
|
|
1904
|
+
true
|
|
1905
|
+
)
|
|
1811
1906
|
__TS__SetDescriptor(
|
|
1812
1907
|
Unit.prototype,
|
|
1813
1908
|
"pathing",
|
|
@@ -1898,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1898
1993
|
end},
|
|
1899
1994
|
true
|
|
1900
1995
|
)
|
|
1901
|
-
__TS__SetDescriptor(
|
|
1902
|
-
Unit.prototype,
|
|
1903
|
-
"onUnitInRange",
|
|
1904
|
-
{get = function(self)
|
|
1905
|
-
local handle = self.handle
|
|
1906
|
-
local onUnitInRange = setmetatable(
|
|
1907
|
-
{},
|
|
1908
|
-
{__index = function(self, value)
|
|
1909
|
-
local event = __TS__New(
|
|
1910
|
-
TriggerEvent,
|
|
1911
|
-
function(trigger)
|
|
1912
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1913
|
-
end,
|
|
1914
|
-
function() return ____exports.Unit:of(handle) end
|
|
1915
|
-
)
|
|
1916
|
-
rawset(self, value, event)
|
|
1917
|
-
return event
|
|
1918
|
-
end}
|
|
1919
|
-
)
|
|
1920
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1921
|
-
return onUnitInRange
|
|
1922
|
-
end},
|
|
1923
|
-
true
|
|
1924
|
-
)
|
|
1925
1996
|
__TS__SetDescriptor(
|
|
1926
1997
|
Unit.prototype,
|
|
1927
1998
|
"onManaEqual",
|
|
@@ -1989,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
1989
2060
|
end},
|
|
1990
2061
|
true
|
|
1991
2062
|
)
|
|
2063
|
+
__TS__SetDescriptor(
|
|
2064
|
+
Unit.prototype,
|
|
2065
|
+
"targetAcquiredEvent",
|
|
2066
|
+
{get = function(self)
|
|
2067
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2068
|
+
end},
|
|
2069
|
+
true
|
|
2070
|
+
)
|
|
1992
2071
|
__TS__SetDescriptor(
|
|
1993
2072
|
Unit.prototype,
|
|
1994
2073
|
"onSelect",
|
|
@@ -2049,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2049
2128
|
end},
|
|
2050
2129
|
true
|
|
2051
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2052
2136
|
Unit.deathEvent = __TS__New(
|
|
2053
2137
|
____exports.UnitTriggerEvent,
|
|
2054
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2066,7 +2150,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2066
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2067
2151
|
dead[unit] = true
|
|
2068
2152
|
end)
|
|
2069
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2070
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2071
2155
|
dead[unit] = false
|
|
2072
2156
|
invoke(event, unit)
|
|
@@ -2083,7 +2167,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2083
2167
|
invoke(event, unit)
|
|
2084
2168
|
end
|
|
2085
2169
|
end
|
|
2086
|
-
____exports.Unit.onImmediateOrder[
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2087
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2088
2172
|
Timer:run(ifNotLeft, unit)
|
|
2089
2173
|
end
|
|
@@ -2124,25 +2208,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2124
2208
|
InitializingEvent,
|
|
2125
2209
|
function(event)
|
|
2126
2210
|
local function listener(unit, id)
|
|
2127
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2128
2212
|
if GetSpellTargetUnit() then
|
|
2129
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2130
2214
|
else
|
|
2131
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2132
2216
|
if GetSpellTargetItem() then
|
|
2133
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2134
2218
|
else
|
|
2135
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2136
2220
|
if GetSpellTargetDestructable() then
|
|
2137
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2138
2222
|
else
|
|
2139
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2140
2224
|
end
|
|
2141
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2142
2226
|
end
|
|
2143
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2144
2228
|
end
|
|
2145
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2146
2230
|
if target then
|
|
2147
2231
|
invoke(event, unit, id, target)
|
|
2148
2232
|
end
|
|
@@ -2314,10 +2398,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2314
2398
|
____exports.UnitTriggerEvent,
|
|
2315
2399
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2316
2400
|
function()
|
|
2317
|
-
local
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2401
|
+
local handle = getOrderedUnit()
|
|
2402
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2403
|
+
local unit = ____exports.Unit:of(handle)
|
|
2404
|
+
if unit.state == 1 then
|
|
2405
|
+
return unit, getIssuedOrderId()
|
|
2406
|
+
end
|
|
2321
2407
|
end
|
|
2322
2408
|
return IgnoreEvent
|
|
2323
2409
|
end
|
|
@@ -2348,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2348
2434
|
if source and source.typeId == dummyUnitId then
|
|
2349
2435
|
source = nil
|
|
2350
2436
|
end
|
|
2351
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2352
2440
|
local data = {
|
|
2353
2441
|
amount = GetEventDamage(),
|
|
2354
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2355
2443
|
damageType = BlzGetEventDamageType(),
|
|
2356
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2357
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2358
2450
|
}
|
|
2359
2451
|
if data.isAttack and source then
|
|
2360
|
-
|
|
2361
|
-
if weapon == -1 then
|
|
2362
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2363
|
-
weapon = 0
|
|
2364
|
-
end
|
|
2365
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2366
2453
|
end
|
|
2367
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2368
2455
|
invoke(
|
|
2369
2456
|
event,
|
|
2370
2457
|
source,
|
|
2371
|
-
|
|
2458
|
+
target,
|
|
2372
2459
|
setmetatable(
|
|
2373
2460
|
{},
|
|
2374
2461
|
{
|
|
2375
2462
|
__index = data,
|
|
2376
2463
|
__newindex = function(self, key, value)
|
|
2377
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2378
2468
|
data[key] = value
|
|
2379
2469
|
end
|
|
2380
2470
|
}
|
|
2381
2471
|
)
|
|
2382
2472
|
)
|
|
2473
|
+
if data[0] and source then
|
|
2474
|
+
local sourceOwner = source.owner.handle
|
|
2475
|
+
data[1] = sourceOwner
|
|
2476
|
+
local targetOwner = target.owner.handle
|
|
2477
|
+
data[2] = targetOwner
|
|
2478
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2479
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2480
|
+
data[3] = true
|
|
2481
|
+
end
|
|
2482
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2483
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2484
|
+
data[4] = true
|
|
2485
|
+
end
|
|
2486
|
+
end
|
|
2487
|
+
damagingEventByTarget[target] = data
|
|
2383
2488
|
return
|
|
2384
2489
|
end
|
|
2385
2490
|
BlzSetEventDamage(0)
|
|
@@ -2387,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2387
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2388
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2389
2494
|
local sourceOwner = source.owner.handle
|
|
2390
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2391
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2392
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2393
2498
|
Timer:run(function()
|
|
@@ -2403,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2403
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2404
2509
|
local condition = ____value[1]
|
|
2405
2510
|
local action = ____value[2]
|
|
2406
|
-
if condition(
|
|
2407
|
-
source,
|
|
2408
|
-
____exports.Unit:of(target),
|
|
2409
|
-
data
|
|
2410
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2411
2512
|
action(
|
|
2412
2513
|
source,
|
|
2413
|
-
|
|
2514
|
+
target,
|
|
2414
2515
|
setmetatable(
|
|
2415
2516
|
{fire = function()
|
|
2416
2517
|
UnitDamageTarget(
|
|
2417
2518
|
source.handle,
|
|
2418
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2419
2520
|
data.amount,
|
|
2420
2521
|
true,
|
|
2421
2522
|
true,
|
|
2422
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2423
2524
|
data.damageType,
|
|
2424
2525
|
data.weaponType
|
|
2425
2526
|
)
|
|
@@ -2446,30 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2446
2547
|
if source and source.typeId == dummyUnitId then
|
|
2447
2548
|
source = nil
|
|
2448
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2449
2553
|
local data = {
|
|
2450
2554
|
amount = GetEventDamage(),
|
|
2451
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2452
2556
|
damageType = BlzGetEventDamageType(),
|
|
2453
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2454
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2455
|
-
originalAmount = GetEventDamage(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2456
2562
|
preventDeath = damageEventPreventDeath
|
|
2457
2563
|
}
|
|
2564
|
+
if damagingEvent then
|
|
2565
|
+
for key, value in pairs(damagingEvent) do
|
|
2566
|
+
if isAttribute(key) then
|
|
2567
|
+
data[key] = value
|
|
2568
|
+
end
|
|
2569
|
+
end
|
|
2570
|
+
local sourceOwner = damagingEvent[1]
|
|
2571
|
+
if sourceOwner then
|
|
2572
|
+
local targetOwner = damagingEvent[2]
|
|
2573
|
+
if damagingEvent[3] then
|
|
2574
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2575
|
+
end
|
|
2576
|
+
if damagingEvent[4] then
|
|
2577
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
end
|
|
2580
|
+
end
|
|
2458
2581
|
local evData = setmetatable(
|
|
2459
2582
|
{},
|
|
2460
2583
|
{
|
|
2461
2584
|
__index = data,
|
|
2462
2585
|
__newindex = function(self, key, value)
|
|
2463
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2464
2590
|
data[key] = value
|
|
2465
2591
|
end
|
|
2466
2592
|
}
|
|
2467
2593
|
)
|
|
2468
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2469
2594
|
invoke(event, source, target, evData)
|
|
2470
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2471
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2472
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2473
2598
|
BlzSetUnitMaxHP(
|
|
2474
2599
|
target.handle,
|
|
2475
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2483,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2483
2608
|
evData[0],
|
|
2484
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2485
2610
|
)
|
|
2486
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2487
2612
|
SetWidgetLife(
|
|
2488
2613
|
target.handle,
|
|
2489
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2508,8 +2633,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2508
2633
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2509
2634
|
function()
|
|
2510
2635
|
local unit = getTriggerUnit()
|
|
2511
|
-
|
|
2512
|
-
|
|
2636
|
+
local item = getManipulatedItem()
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2638
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2513
2639
|
end
|
|
2514
2640
|
return IgnoreEvent
|
|
2515
2641
|
end
|
|
@@ -2518,9 +2644,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2518
2644
|
____exports.UnitTriggerEvent,
|
|
2519
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2520
2646
|
function()
|
|
2521
|
-
local
|
|
2522
|
-
|
|
2523
|
-
|
|
2647
|
+
local unitHandle = getTriggerUnit()
|
|
2648
|
+
local itemHandle = getManipulatedItem()
|
|
2649
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2650
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2651
|
+
local item = Item:of(itemHandle)
|
|
2652
|
+
if ownerByItem[item] ~= unit then
|
|
2653
|
+
return unit, item
|
|
2654
|
+
end
|
|
2524
2655
|
end
|
|
2525
2656
|
return IgnoreEvent
|
|
2526
2657
|
end
|
|
@@ -2528,12 +2659,29 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2528
2659
|
Unit.itemUsedEvent = __TS__New(
|
|
2529
2660
|
____exports.UnitTriggerEvent,
|
|
2530
2661
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2531
|
-
function()
|
|
2662
|
+
function()
|
|
2663
|
+
local unit = getTriggerUnit()
|
|
2664
|
+
local item = getManipulatedItem()
|
|
2665
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2666
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2667
|
+
end
|
|
2668
|
+
return IgnoreEvent
|
|
2669
|
+
end
|
|
2532
2670
|
)
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2671
|
+
__TS__ObjectDefineProperty(
|
|
2672
|
+
Unit,
|
|
2673
|
+
"itemChargesChangedEvent",
|
|
2674
|
+
{get = function(self)
|
|
2675
|
+
local event = __TS__New(Event)
|
|
2676
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2677
|
+
local unit = item.owner
|
|
2678
|
+
if unit ~= nil then
|
|
2679
|
+
invoke(event, unit, item)
|
|
2680
|
+
end
|
|
2681
|
+
end)
|
|
2682
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2683
|
+
return event
|
|
2684
|
+
end}
|
|
2537
2685
|
)
|
|
2538
2686
|
__TS__ObjectDefineProperty(
|
|
2539
2687
|
Unit,
|
|
@@ -2560,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2560
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2561
2709
|
return destroyEvent
|
|
2562
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2563
2715
|
);
|
|
2564
2716
|
(function(self)
|
|
2565
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2577,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2577
2729
|
function(____, id) return fourCC(id) end
|
|
2578
2730
|
)
|
|
2579
2731
|
end)
|
|
2580
|
-
for ____, leaveOrderId in ipairs({
|
|
2581
|
-
orderId("undefend"),
|
|
2582
|
-
orderId("magicundefense"),
|
|
2583
|
-
orderId("unimmolation")
|
|
2584
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2585
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2586
2734
|
local handle = unit.handle
|
|
2587
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2589,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2589
2737
|
return
|
|
2590
2738
|
end
|
|
2591
2739
|
end
|
|
2592
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2593
2742
|
end)
|
|
2594
2743
|
end
|
|
2595
2744
|
end)(Unit)
|