warscript 0.0.1-dev.0a43a35 → 0.0.1-dev.0aa6f08
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/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +24 -6
- package/core/types/effect.lua +169 -107
- package/core/types/frame.d.ts +24 -2
- package/core/types/frame.lua +198 -42
- 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 +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 +127 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +43 -11
- package/engine/behaviour/ability/damage.lua +89 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +44 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -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 +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +30 -7
- package/engine/behaviour/ability.lua +162 -43
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +46 -2
- package/engine/behaviour/unit.lua +290 -6
- package/engine/buff.d.ts +166 -57
- package/engine/buff.lua +766 -274
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +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 +20 -2
- package/engine/internal/unit/bonus.lua +125 -9
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +14 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/inventory.d.ts +28 -0
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +75 -5
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +58 -32
- package/engine/internal/unit.lua +468 -310
- 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/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/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 +32 -3
- package/engine/object-data/entry/item-type.lua +177 -2
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +71 -6
- package/engine/object-data/entry/unit-type.lua +592 -93
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +21 -14
- package/engine/object-data/entry.lua +68 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +28 -5
- package/engine/object-field/ability.lua +61 -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 -0
- package/engine/unit.lua +13 -0
- package/event.d.ts +1 -1
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +8 -3
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +28 -3
- package/objutil/buff.lua +13 -12
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/utility/arrays.d.ts +17 -2
- package/utility/arrays.lua +62 -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 +16 -3
- package/utility/linked-set.lua +54 -3
- 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 +4 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → 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
|
|
@@ -290,7 +289,6 @@ local function dispatch(event, idGetter, argsGetter)
|
|
|
290
289
|
return event[id]
|
|
291
290
|
end
|
|
292
291
|
if not initialized then
|
|
293
|
-
local invoke = Event.invoke
|
|
294
292
|
event:addListener(function(...)
|
|
295
293
|
local id = idGetter(...)
|
|
296
294
|
local dispatched = rawget(self, id)
|
|
@@ -328,7 +326,6 @@ local function dispatchAbility(event)
|
|
|
328
326
|
return event[id]
|
|
329
327
|
end
|
|
330
328
|
if not initialized then
|
|
331
|
-
local invoke = Event.invoke
|
|
332
329
|
event:addListener(function(unit, ability, ...)
|
|
333
330
|
local dispatched = rawget(self, ability.typeId)
|
|
334
331
|
if dispatched ~= nil then
|
|
@@ -345,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
345
342
|
}
|
|
346
343
|
)
|
|
347
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
348
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
349
349
|
if self[0] ~= nil then
|
|
350
350
|
return
|
|
@@ -356,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
356
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
357
357
|
end
|
|
358
358
|
end
|
|
359
|
-
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
|
+
}
|
|
360
367
|
local jlimitopByOperator = {
|
|
361
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
362
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -374,15 +381,27 @@ local modifiers = {
|
|
|
374
381
|
end,
|
|
375
382
|
armor = function(unit, value)
|
|
376
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
377
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
378
389
|
end
|
|
379
|
-
local ability = assert(
|
|
380
|
-
|
|
381
|
-
ability,
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
+
)
|
|
386
405
|
end
|
|
387
406
|
}
|
|
388
407
|
local getters = {
|
|
@@ -400,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
400
419
|
self.unit = unit
|
|
401
420
|
self.index = index
|
|
402
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
|
+
)
|
|
403
435
|
__TS__SetDescriptor(
|
|
404
436
|
UnitWeapon.prototype,
|
|
405
437
|
"cooldown",
|
|
@@ -434,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
434
466
|
},
|
|
435
467
|
true
|
|
436
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
|
+
)
|
|
437
482
|
__TS__SetDescriptor(
|
|
438
483
|
UnitWeapon.prototype,
|
|
439
484
|
"damageBase",
|
|
@@ -545,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
545
590
|
},
|
|
546
591
|
true
|
|
547
592
|
)
|
|
548
|
-
local unitInventorySize = UnitInventorySize
|
|
549
|
-
local unitItemInSlot = UnitItemInSlot
|
|
550
593
|
local getItemAbility = BlzGetItemAbility
|
|
551
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
552
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -564,19 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
564
607
|
____exports.Unit:of(unit)
|
|
565
608
|
)
|
|
566
609
|
end
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
return UnitAbility:of(
|
|
570
|
-
ability,
|
|
571
|
-
abilityId,
|
|
572
|
-
____exports.Unit:of(unit)
|
|
573
|
-
)
|
|
574
|
-
end
|
|
575
|
-
else
|
|
576
|
-
unitRemoveAbility(unit, abilityId)
|
|
577
|
-
end
|
|
578
|
-
for i = 0, unitInventorySize(unit) - 1 do
|
|
579
|
-
local item = unitItemInSlot(unit, i)
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
580
612
|
if getItemAbility(item, abilityId) == ability then
|
|
581
613
|
return ItemAbility:of(
|
|
582
614
|
ability,
|
|
@@ -621,26 +653,30 @@ local fieldSetters = {
|
|
|
621
653
|
}
|
|
622
654
|
local dummies = {}
|
|
623
655
|
for ____, player in ipairs(Player.all) do
|
|
624
|
-
local dummy = assert(
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
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
|
+
)
|
|
631
667
|
ShowUnit(dummy, false)
|
|
632
668
|
dummies[player] = dummy
|
|
633
669
|
end
|
|
634
670
|
local function delayHealthChecksCallback(unit)
|
|
635
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
636
672
|
if counter ~= 0 then
|
|
637
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
638
674
|
return
|
|
639
675
|
end
|
|
640
|
-
unit[
|
|
641
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
642
678
|
if healthBonus ~= nil then
|
|
643
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
644
680
|
local handle = unit.handle
|
|
645
681
|
BlzSetUnitMaxHP(
|
|
646
682
|
handle,
|
|
@@ -648,45 +684,79 @@ local function delayHealthChecksCallback(unit)
|
|
|
648
684
|
)
|
|
649
685
|
end
|
|
650
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
|
|
651
699
|
____exports.Unit = __TS__Class()
|
|
652
700
|
local Unit = ____exports.Unit
|
|
653
701
|
Unit.name = "Unit"
|
|
654
702
|
__TS__ClassExtends(Unit, Handle)
|
|
655
703
|
function Unit.prototype.____constructor(self, handle)
|
|
656
704
|
Handle.prototype.____constructor(self, handle)
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
657
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
658
|
-
assert(
|
|
659
|
-
|
|
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
|
+
)
|
|
660
719
|
if unitAddAbility(
|
|
661
720
|
handle,
|
|
662
721
|
fourCC("Amrf")
|
|
663
722
|
) then
|
|
664
|
-
assert(
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
668
731
|
end
|
|
732
|
+
unitBySyncId[self.syncId] = self
|
|
669
733
|
local ____ = self.abilities
|
|
670
734
|
end
|
|
671
|
-
function Unit.prototype.getEvent(self,
|
|
672
|
-
self.events = self.events or (
|
|
673
|
-
local eventId = GetHandleId(
|
|
674
|
-
|
|
675
|
-
|
|
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(
|
|
676
741
|
TriggerEvent,
|
|
677
742
|
function(trigger)
|
|
678
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
679
744
|
end,
|
|
680
745
|
collector or (function() return {} end)
|
|
681
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
682
748
|
end
|
|
683
|
-
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))
|
|
684
756
|
end
|
|
685
757
|
function Unit.prototype.onDestroy(self)
|
|
686
758
|
local handle = self.handle
|
|
687
|
-
|
|
688
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
689
|
-
end
|
|
759
|
+
self:saveData()
|
|
690
760
|
local abilities = self.abilities
|
|
691
761
|
for ____, ability in ipairs(abilities) do
|
|
692
762
|
ability:destroy()
|
|
@@ -704,7 +774,13 @@ function Unit.prototype.onDestroy(self)
|
|
|
704
774
|
end
|
|
705
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
706
776
|
if eventsToDestroy ~= nil then
|
|
707
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
780
|
+
end
|
|
781
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
782
|
+
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
783
|
+
removeUnit(handle)
|
|
708
784
|
end
|
|
709
785
|
return Handle.prototype.onDestroy(self)
|
|
710
786
|
end
|
|
@@ -718,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
718
794
|
self._attackHandlers = handlers
|
|
719
795
|
if #handlers == 1 then
|
|
720
796
|
local handle = self.handle
|
|
721
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
722
802
|
end
|
|
723
803
|
return handler
|
|
724
804
|
end
|
|
@@ -747,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
747
827
|
end}
|
|
748
828
|
end
|
|
749
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
750
|
-
local
|
|
751
|
-
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
|
|
752
832
|
end
|
|
753
833
|
function Unit.prototype.addClassification(self, classification)
|
|
754
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
755
835
|
end
|
|
756
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
757
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
758
838
|
end
|
|
759
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
760
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
761
841
|
end
|
|
762
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
763
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -766,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
766
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
767
847
|
end
|
|
768
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
769
|
-
local
|
|
849
|
+
local ____temp_4
|
|
770
850
|
if type(x) == "number" then
|
|
771
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
852
|
else
|
|
773
|
-
|
|
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
|
|
774
860
|
end
|
|
775
|
-
return
|
|
861
|
+
return ____temp_4
|
|
776
862
|
end
|
|
777
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
864
|
return isUnitAlly(
|
|
@@ -790,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
876
|
if type(animation) == "number" then
|
|
791
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
878
|
elseif rarity then
|
|
793
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
880
|
else
|
|
795
881
|
setUnitAnimation(self.handle, animation)
|
|
796
882
|
end
|
|
797
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
798
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
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
|
|
800
900
|
end
|
|
801
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
803
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
804
904
|
end
|
|
805
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -809,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
910
|
end
|
|
811
911
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
813
913
|
killUnit(self.handle)
|
|
814
914
|
end
|
|
815
915
|
function Unit.prototype.kill(self)
|
|
816
916
|
killUnit(self.handle)
|
|
817
917
|
end
|
|
818
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
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
|
|
824
924
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
827
927
|
end
|
|
828
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -866,17 +966,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
866
966
|
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
867
967
|
end
|
|
868
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
875
975
|
local abilities = self.abilities
|
|
876
976
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
977
|
end
|
|
879
|
-
return
|
|
978
|
+
return ability
|
|
880
979
|
end
|
|
881
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +989,21 @@ end
|
|
|
890
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
991
|
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
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
995
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
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
|
|
914
1004
|
end
|
|
915
|
-
return true
|
|
916
1005
|
end
|
|
917
|
-
return
|
|
1006
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
1007
|
end
|
|
919
1008
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
1009
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,12 +1017,16 @@ end
|
|
|
928
1017
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
1018
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
1019
|
end
|
|
931
|
-
function Unit.prototype.interruptAttack(self)
|
|
932
|
-
unitInterruptAttack(self.handle)
|
|
933
|
-
end
|
|
934
1020
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
935
|
-
|
|
936
|
-
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
|
+
)
|
|
937
1030
|
end
|
|
938
1031
|
function Unit.prototype.getDistanceTo(self, target)
|
|
939
1032
|
local handle = self.handle
|
|
@@ -993,18 +1086,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
993
1086
|
self:decrementStunCounter()
|
|
994
1087
|
end
|
|
995
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
996
|
-
local stunCounter = self[
|
|
997
|
-
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
|
|
998
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
999
1092
|
end
|
|
1000
|
-
self[
|
|
1093
|
+
self[102] = stunCounter + 1
|
|
1001
1094
|
end
|
|
1002
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1003
|
-
local stunCounter = self[
|
|
1004
|
-
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
|
|
1005
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1006
1099
|
end
|
|
1007
|
-
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
|
|
1008
1127
|
end
|
|
1009
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1010
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1106,8 +1225,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1106
1225
|
)
|
|
1107
1226
|
return targetCollection
|
|
1108
1227
|
end
|
|
1109
|
-
function Unit.getSelectionOf(self, player)
|
|
1110
|
-
|
|
1228
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1229
|
+
if target == nil then
|
|
1230
|
+
target = {}
|
|
1231
|
+
end
|
|
1232
|
+
targetCollection = target
|
|
1111
1233
|
targetCollectionNextIndex = 1
|
|
1112
1234
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1113
1235
|
return targetCollection
|
|
@@ -1129,6 +1251,9 @@ end
|
|
|
1129
1251
|
function Unit.prototype.__tostring(self)
|
|
1130
1252
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1131
1253
|
end
|
|
1254
|
+
function Unit.getBySyncId(self, syncId)
|
|
1255
|
+
return unitBySyncId[syncId]
|
|
1256
|
+
end
|
|
1132
1257
|
__TS__SetDescriptor(
|
|
1133
1258
|
Unit.prototype,
|
|
1134
1259
|
"_deltas",
|
|
@@ -1188,7 +1313,15 @@ __TS__SetDescriptor(
|
|
|
1188
1313
|
Unit.prototype,
|
|
1189
1314
|
"isIllusion",
|
|
1190
1315
|
{get = function(self)
|
|
1191
|
-
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
|
|
1192
1325
|
end},
|
|
1193
1326
|
true
|
|
1194
1327
|
)
|
|
@@ -1267,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1267
1400
|
)
|
|
1268
1401
|
__TS__SetDescriptor(
|
|
1269
1402
|
Unit.prototype,
|
|
1270
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1271
1404
|
{
|
|
1272
1405
|
get = function(self)
|
|
1273
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1274
1407
|
end,
|
|
1275
|
-
set = function(self,
|
|
1276
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1277
1410
|
end
|
|
1278
1411
|
},
|
|
1279
1412
|
true
|
|
@@ -1295,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1295
1428
|
end},
|
|
1296
1429
|
true
|
|
1297
1430
|
)
|
|
1298
|
-
__TS__SetDescriptor(
|
|
1299
|
-
Unit.prototype,
|
|
1300
|
-
"agilityBase",
|
|
1301
|
-
{
|
|
1302
|
-
get = function(self)
|
|
1303
|
-
return getHeroAgi(self.handle, false)
|
|
1304
|
-
end,
|
|
1305
|
-
set = function(self, agilityBase)
|
|
1306
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1307
|
-
end
|
|
1308
|
-
},
|
|
1309
|
-
true
|
|
1310
|
-
)
|
|
1311
1431
|
__TS__SetDescriptor(
|
|
1312
1432
|
Unit.prototype,
|
|
1313
1433
|
"agilityBonus",
|
|
@@ -1325,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1325
1445
|
end},
|
|
1326
1446
|
true
|
|
1327
1447
|
)
|
|
1328
|
-
__TS__SetDescriptor(
|
|
1329
|
-
Unit.prototype,
|
|
1330
|
-
"intelligenceBase",
|
|
1331
|
-
{
|
|
1332
|
-
get = function(self)
|
|
1333
|
-
return getHeroInt(self.handle, false)
|
|
1334
|
-
end,
|
|
1335
|
-
set = function(self, intelligenceBase)
|
|
1336
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1337
|
-
end
|
|
1338
|
-
},
|
|
1339
|
-
true
|
|
1340
|
-
)
|
|
1341
1448
|
__TS__SetDescriptor(
|
|
1342
1449
|
Unit.prototype,
|
|
1343
1450
|
"intelligenceBonus",
|
|
@@ -1386,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1386
1493
|
"isTeamGlowVisible",
|
|
1387
1494
|
{
|
|
1388
1495
|
get = function(self)
|
|
1389
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1390
1497
|
end,
|
|
1391
1498
|
set = function(self, isTeamGlowVisible)
|
|
1392
|
-
|
|
1393
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1394
1501
|
if not isTeamGlowVisible then
|
|
1395
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1396
1503
|
else
|
|
1397
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1398
1505
|
end
|
|
1399
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1400
1507
|
end
|
|
1401
1508
|
},
|
|
1402
1509
|
true
|
|
@@ -1405,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1405
1512
|
Unit.prototype,
|
|
1406
1513
|
"color",
|
|
1407
1514
|
{set = function(self, color)
|
|
1408
|
-
|
|
1409
|
-
if self[
|
|
1410
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1411
1518
|
end
|
|
1412
1519
|
end},
|
|
1413
1520
|
true
|
|
@@ -1430,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1430
1537
|
"maxHealth",
|
|
1431
1538
|
{
|
|
1432
1539
|
get = function(self)
|
|
1433
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1434
1541
|
end,
|
|
1435
1542
|
set = function(self, maxHealth)
|
|
1436
|
-
if maxHealth < 1 and self[
|
|
1437
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1438
1545
|
maxHealth = 1
|
|
1439
1546
|
end
|
|
1440
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1441
1548
|
end
|
|
1442
1549
|
},
|
|
1443
1550
|
true
|
|
@@ -1479,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1479
1586
|
"health",
|
|
1480
1587
|
{
|
|
1481
1588
|
get = function(self)
|
|
1482
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1483
1590
|
end,
|
|
1484
1591
|
set = function(self, health)
|
|
1485
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1486
1593
|
end
|
|
1487
1594
|
},
|
|
1488
1595
|
true
|
|
@@ -1558,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1558
1665
|
},
|
|
1559
1666
|
true
|
|
1560
1667
|
)
|
|
1561
|
-
__TS__SetDescriptor(
|
|
1562
|
-
Unit.prototype,
|
|
1563
|
-
"flyHeight",
|
|
1564
|
-
{
|
|
1565
|
-
get = function(self)
|
|
1566
|
-
return getUnitFlyHeight(self.handle)
|
|
1567
|
-
end,
|
|
1568
|
-
set = function(self, v)
|
|
1569
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1570
|
-
end
|
|
1571
|
-
},
|
|
1572
|
-
true
|
|
1573
|
-
)
|
|
1574
1668
|
__TS__SetDescriptor(
|
|
1575
1669
|
Unit.prototype,
|
|
1576
1670
|
"x",
|
|
1577
1671
|
{
|
|
1578
1672
|
get = function(self)
|
|
1579
|
-
return getUnitX(self.handle)
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1580
1674
|
end,
|
|
1581
1675
|
set = function(self, v)
|
|
1582
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1589,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1589
1683
|
"y",
|
|
1590
1684
|
{
|
|
1591
1685
|
get = function(self)
|
|
1592
|
-
return getUnitY(self.handle)
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1593
1687
|
end,
|
|
1594
1688
|
set = function(self, v)
|
|
1595
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1675,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1675
1769
|
"gold",
|
|
1676
1770
|
{
|
|
1677
1771
|
get = function(self)
|
|
1678
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1679
1773
|
end,
|
|
1680
1774
|
set = function(self, gold)
|
|
1681
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1682
1776
|
end
|
|
1683
1777
|
},
|
|
1684
1778
|
true
|
|
@@ -1693,17 +1787,21 @@ __TS__SetDescriptor(
|
|
|
1693
1787
|
set = function(self, isPaused)
|
|
1694
1788
|
local handle = self.handle
|
|
1695
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1696
|
-
self[
|
|
1697
|
-
|
|
1698
|
-
|
|
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
|
|
1699
1795
|
end
|
|
1700
1796
|
PauseUnit(handle, true)
|
|
1701
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1702
1798
|
PauseUnit(handle, false)
|
|
1703
|
-
|
|
1704
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1705
1803
|
end
|
|
1706
|
-
self[
|
|
1804
|
+
self[101] = nil
|
|
1707
1805
|
end
|
|
1708
1806
|
end
|
|
1709
1807
|
},
|
|
@@ -1759,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1759
1857
|
},
|
|
1760
1858
|
true
|
|
1761
1859
|
)
|
|
1762
|
-
__TS__SetDescriptor(
|
|
1763
|
-
Unit.prototype,
|
|
1764
|
-
"scale",
|
|
1765
|
-
{
|
|
1766
|
-
get = function(self)
|
|
1767
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1768
|
-
end,
|
|
1769
|
-
set = function(self, v)
|
|
1770
|
-
setUnitScale(self.handle, v, v, v)
|
|
1771
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1772
|
-
end
|
|
1773
|
-
},
|
|
1774
|
-
true
|
|
1775
|
-
)
|
|
1776
1860
|
__TS__SetDescriptor(
|
|
1777
1861
|
Unit.prototype,
|
|
1778
1862
|
"timeScale",
|
|
@@ -1799,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1799
1883
|
Unit.prototype,
|
|
1800
1884
|
"pathingCollisionRange",
|
|
1801
1885
|
{get = function(self)
|
|
1802
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1803
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1804
1888
|
3
|
|
1805
1889
|
) + 1)
|
|
1806
1890
|
end},
|
|
1807
1891
|
true
|
|
1808
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
|
+
)
|
|
1809
1906
|
__TS__SetDescriptor(
|
|
1810
1907
|
Unit.prototype,
|
|
1811
1908
|
"pathing",
|
|
@@ -1896,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1896
1993
|
end},
|
|
1897
1994
|
true
|
|
1898
1995
|
)
|
|
1899
|
-
__TS__SetDescriptor(
|
|
1900
|
-
Unit.prototype,
|
|
1901
|
-
"onUnitInRange",
|
|
1902
|
-
{get = function(self)
|
|
1903
|
-
local handle = self.handle
|
|
1904
|
-
local onUnitInRange = setmetatable(
|
|
1905
|
-
{},
|
|
1906
|
-
{__index = function(self, value)
|
|
1907
|
-
local event = __TS__New(
|
|
1908
|
-
TriggerEvent,
|
|
1909
|
-
function(trigger)
|
|
1910
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1911
|
-
end,
|
|
1912
|
-
function() return ____exports.Unit:of(handle) end
|
|
1913
|
-
)
|
|
1914
|
-
rawset(self, value, event)
|
|
1915
|
-
return event
|
|
1916
|
-
end}
|
|
1917
|
-
)
|
|
1918
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1919
|
-
return onUnitInRange
|
|
1920
|
-
end},
|
|
1921
|
-
true
|
|
1922
|
-
)
|
|
1923
1996
|
__TS__SetDescriptor(
|
|
1924
1997
|
Unit.prototype,
|
|
1925
1998
|
"onManaEqual",
|
|
@@ -1987,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
1987
2060
|
end},
|
|
1988
2061
|
true
|
|
1989
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
|
+
)
|
|
1990
2071
|
__TS__SetDescriptor(
|
|
1991
2072
|
Unit.prototype,
|
|
1992
2073
|
"onSelect",
|
|
@@ -2047,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2047
2128
|
end},
|
|
2048
2129
|
true
|
|
2049
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2050
2136
|
Unit.deathEvent = __TS__New(
|
|
2051
2137
|
____exports.UnitTriggerEvent,
|
|
2052
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2060,12 +2146,11 @@ Unit.onDecay = __TS__New(
|
|
|
2060
2146
|
Unit.onResurrect = __TS__New(
|
|
2061
2147
|
InitializingEvent,
|
|
2062
2148
|
function(event)
|
|
2063
|
-
local invoke = Event.invoke
|
|
2064
2149
|
local dead = setmetatable({}, {__mode = "k"})
|
|
2065
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2066
2151
|
dead[unit] = true
|
|
2067
2152
|
end)
|
|
2068
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2069
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2070
2155
|
dead[unit] = false
|
|
2071
2156
|
invoke(event, unit)
|
|
@@ -2076,10 +2161,15 @@ Unit.onResurrect = __TS__New(
|
|
|
2076
2161
|
Unit.morphEvent = __TS__New(
|
|
2077
2162
|
InitializingEvent,
|
|
2078
2163
|
function(event)
|
|
2079
|
-
|
|
2164
|
+
local function ifNotLeft(unit)
|
|
2165
|
+
local handle = unit.handle
|
|
2166
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2167
|
+
invoke(event, unit)
|
|
2168
|
+
end
|
|
2169
|
+
end
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2080
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2081
|
-
|
|
2082
|
-
Timer:run(Event.invoke, event, unit)
|
|
2172
|
+
Timer:run(ifNotLeft, unit)
|
|
2083
2173
|
end
|
|
2084
2174
|
end)
|
|
2085
2175
|
end
|
|
@@ -2117,27 +2207,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
2117
2207
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
2118
2208
|
InitializingEvent,
|
|
2119
2209
|
function(event)
|
|
2120
|
-
local invoke = Event.invoke
|
|
2121
2210
|
local function listener(unit, id)
|
|
2122
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2123
2212
|
if GetSpellTargetUnit() then
|
|
2124
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2125
2214
|
else
|
|
2126
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2127
2216
|
if GetSpellTargetItem() then
|
|
2128
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2129
2218
|
else
|
|
2130
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2131
2220
|
if GetSpellTargetDestructable() then
|
|
2132
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2133
2222
|
else
|
|
2134
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2135
2224
|
end
|
|
2136
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2137
2226
|
end
|
|
2138
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2139
2228
|
end
|
|
2140
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2141
2230
|
if target then
|
|
2142
2231
|
invoke(event, unit, id, target)
|
|
2143
2232
|
end
|
|
@@ -2309,10 +2398,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2309
2398
|
____exports.UnitTriggerEvent,
|
|
2310
2399
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2311
2400
|
function()
|
|
2312
|
-
local
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
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
|
|
2316
2407
|
end
|
|
2317
2408
|
return IgnoreEvent
|
|
2318
2409
|
end
|
|
@@ -2334,7 +2425,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2334
2425
|
)
|
|
2335
2426
|
Unit.onDamaging = (function()
|
|
2336
2427
|
local event = __TS__New(Event)
|
|
2337
|
-
local invoke = Event.invoke
|
|
2338
2428
|
local trigger = CreateTrigger()
|
|
2339
2429
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2340
2430
|
TriggerAddCondition(
|
|
@@ -2344,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2344
2434
|
if source and source.typeId == dummyUnitId then
|
|
2345
2435
|
source = nil
|
|
2346
2436
|
end
|
|
2347
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2348
2440
|
local data = {
|
|
2349
2441
|
amount = GetEventDamage(),
|
|
2350
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2351
2443
|
damageType = BlzGetEventDamageType(),
|
|
2352
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2353
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2354
2450
|
}
|
|
2355
2451
|
if data.isAttack and source then
|
|
2356
|
-
|
|
2357
|
-
if weapon == -1 then
|
|
2358
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2359
|
-
weapon = 0
|
|
2360
|
-
end
|
|
2361
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2362
2453
|
end
|
|
2363
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2364
2455
|
invoke(
|
|
2365
2456
|
event,
|
|
2366
2457
|
source,
|
|
2367
|
-
|
|
2458
|
+
target,
|
|
2368
2459
|
setmetatable(
|
|
2369
2460
|
{},
|
|
2370
2461
|
{
|
|
2371
2462
|
__index = data,
|
|
2372
2463
|
__newindex = function(self, key, value)
|
|
2373
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2374
2468
|
data[key] = value
|
|
2375
2469
|
end
|
|
2376
2470
|
}
|
|
2377
2471
|
)
|
|
2378
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
|
|
2379
2488
|
return
|
|
2380
2489
|
end
|
|
2381
2490
|
BlzSetEventDamage(0)
|
|
@@ -2383,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2383
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2384
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2385
2494
|
local sourceOwner = source.owner.handle
|
|
2386
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2387
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2388
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2389
2498
|
Timer:run(function()
|
|
@@ -2399,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2399
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2400
2509
|
local condition = ____value[1]
|
|
2401
2510
|
local action = ____value[2]
|
|
2402
|
-
if condition(
|
|
2403
|
-
source,
|
|
2404
|
-
____exports.Unit:of(target),
|
|
2405
|
-
data
|
|
2406
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2407
2512
|
action(
|
|
2408
2513
|
source,
|
|
2409
|
-
|
|
2514
|
+
target,
|
|
2410
2515
|
setmetatable(
|
|
2411
2516
|
{fire = function()
|
|
2412
2517
|
UnitDamageTarget(
|
|
2413
2518
|
source.handle,
|
|
2414
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2415
2520
|
data.amount,
|
|
2416
2521
|
true,
|
|
2417
2522
|
true,
|
|
2418
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2419
2524
|
data.damageType,
|
|
2420
2525
|
data.weaponType
|
|
2421
2526
|
)
|
|
@@ -2433,7 +2538,6 @@ end)()
|
|
|
2433
2538
|
Unit.onDamage = __TS__New(
|
|
2434
2539
|
InitializingEvent,
|
|
2435
2540
|
function(event)
|
|
2436
|
-
local invoke = Event.invoke
|
|
2437
2541
|
local trigger = CreateTrigger()
|
|
2438
2542
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2439
2543
|
TriggerAddCondition(
|
|
@@ -2443,29 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2443
2547
|
if source and source.typeId == dummyUnitId then
|
|
2444
2548
|
source = nil
|
|
2445
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2446
2553
|
local data = {
|
|
2447
2554
|
amount = GetEventDamage(),
|
|
2448
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2449
2556
|
damageType = BlzGetEventDamageType(),
|
|
2450
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2451
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2452
2562
|
preventDeath = damageEventPreventDeath
|
|
2453
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
|
|
2454
2581
|
local evData = setmetatable(
|
|
2455
2582
|
{},
|
|
2456
2583
|
{
|
|
2457
2584
|
__index = data,
|
|
2458
2585
|
__newindex = function(self, key, value)
|
|
2459
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2460
2590
|
data[key] = value
|
|
2461
2591
|
end
|
|
2462
2592
|
}
|
|
2463
2593
|
)
|
|
2464
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2465
2594
|
invoke(event, source, target, evData)
|
|
2466
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2467
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2468
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2469
2598
|
BlzSetUnitMaxHP(
|
|
2470
2599
|
target.handle,
|
|
2471
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2479,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2479
2608
|
evData[0],
|
|
2480
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2481
2610
|
)
|
|
2482
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2483
2612
|
SetWidgetLife(
|
|
2484
2613
|
target.handle,
|
|
2485
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2499,32 +2628,60 @@ Unit.onDamage = __TS__New(
|
|
|
2499
2628
|
DestroyTrigger(trigger)
|
|
2500
2629
|
end
|
|
2501
2630
|
)
|
|
2502
|
-
Unit.
|
|
2631
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2503
2632
|
____exports.UnitTriggerEvent,
|
|
2504
2633
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2505
2634
|
function()
|
|
2506
2635
|
local unit = getTriggerUnit()
|
|
2507
|
-
|
|
2508
|
-
|
|
2636
|
+
local item = getManipulatedItem()
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2638
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2509
2639
|
end
|
|
2510
2640
|
return IgnoreEvent
|
|
2511
2641
|
end
|
|
2512
2642
|
)
|
|
2513
|
-
Unit.
|
|
2643
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2514
2644
|
____exports.UnitTriggerEvent,
|
|
2515
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2516
2646
|
function()
|
|
2517
|
-
local
|
|
2518
|
-
|
|
2519
|
-
|
|
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
|
|
2520
2655
|
end
|
|
2521
2656
|
return IgnoreEvent
|
|
2522
2657
|
end
|
|
2523
2658
|
)
|
|
2524
|
-
Unit.
|
|
2659
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2525
2660
|
____exports.UnitTriggerEvent,
|
|
2526
2661
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2527
|
-
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
|
|
2670
|
+
)
|
|
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}
|
|
2528
2685
|
)
|
|
2529
2686
|
__TS__ObjectDefineProperty(
|
|
2530
2687
|
Unit,
|
|
@@ -2551,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2551
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2552
2709
|
return destroyEvent
|
|
2553
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2554
2715
|
);
|
|
2555
2716
|
(function(self)
|
|
2556
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2568,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2568
2729
|
function(____, id) return fourCC(id) end
|
|
2569
2730
|
)
|
|
2570
2731
|
end)
|
|
2571
|
-
for ____, leaveOrderId in ipairs({
|
|
2572
|
-
orderId("undefend"),
|
|
2573
|
-
orderId("magicundefense"),
|
|
2574
|
-
orderId("unimmolation")
|
|
2575
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2576
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2577
2734
|
local handle = unit.handle
|
|
2578
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2580,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2580
2737
|
return
|
|
2581
2738
|
end
|
|
2582
2739
|
end
|
|
2583
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2584
2742
|
end)
|
|
2585
2743
|
end
|
|
2586
2744
|
end)(Unit)
|