warscript 0.0.1-dev.bb34489 → 0.0.1-dev.bc4cd10
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 +9 -0
- package/core/types/frame.lua +193 -23
- package/core/types/handle.lua +11 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +127 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +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 +27 -14
- package/engine/internal/ability.lua +168 -104
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +34 -18
- package/engine/internal/item.lua +308 -102
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +142 -19
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +12 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +93 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +20 -2
- package/engine/internal/unit/bonus.lua +125 -9
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +14 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/inventory.d.ts +28 -0
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +75 -5
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit+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 +57 -31
- package/engine/internal/unit.lua +466 -308
- 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 +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 +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 +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
|
@@ -6,6 +6,7 @@ local __TS__New = ____lualib.__TS__New
|
|
|
6
6
|
local __TS__Class = ____lualib.__TS__Class
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
|
+
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
9
10
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
10
11
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
11
12
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
@@ -46,37 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
46
47
|
local ____constants = require("engine.constants")
|
|
47
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
48
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
49
|
-
local
|
|
50
|
-
local
|
|
51
|
-
local
|
|
52
|
-
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
|
|
53
67
|
local match = string.match
|
|
54
68
|
local ____tostring = _G.tostring
|
|
55
69
|
local setUnitAnimation = SetUnitAnimation
|
|
56
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
57
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
58
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
59
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
60
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
61
73
|
local getHeroStr = GetHeroStr
|
|
62
74
|
local getHeroAgi = GetHeroAgi
|
|
63
75
|
local getHeroInt = GetHeroInt
|
|
64
|
-
local setHeroStr = SetHeroStr
|
|
65
|
-
local setHeroAgi = SetHeroAgi
|
|
66
|
-
local setHeroInt = SetHeroInt
|
|
67
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
68
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
69
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
70
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
71
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
72
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
73
|
-
local setUnitScale = SetUnitScale
|
|
74
82
|
local setUnitPosition = SetUnitPosition
|
|
75
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
76
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
77
86
|
local createUnit = CreateUnit
|
|
78
87
|
local killUnit = KillUnit
|
|
79
|
-
local setUnitExploded = SetUnitExploded
|
|
80
88
|
local removeUnit = RemoveUnit
|
|
81
89
|
local getUnitTypeId = GetUnitTypeId
|
|
82
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -92,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
92
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
93
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
94
102
|
local isUnitInRange = IsUnitInRange
|
|
95
|
-
local setResourceAmount = SetResourceAmount
|
|
96
|
-
local getResourceAmount = GetResourceAmount
|
|
97
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
98
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
99
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
100
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
101
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
102
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
103
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
104
109
|
local isUnitInvisible = IsUnitInvisible
|
|
105
110
|
local isUnitVisible = IsUnitVisible
|
|
106
111
|
local getUnitX = GetUnitX
|
|
@@ -117,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
117
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
118
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
119
124
|
local unitAlive = UnitAlive
|
|
120
|
-
local unitAddType = UnitAddType
|
|
121
|
-
local unitRemoveType = UnitRemoveType
|
|
122
|
-
local isUnitIllusion = IsUnitIllusion
|
|
123
|
-
local isUnitType = IsUnitType
|
|
124
125
|
local isUnitAlly = IsUnitAlly
|
|
125
126
|
local isUnitEnemy = IsUnitEnemy
|
|
126
127
|
local getOwningPlayer = GetOwningPlayer
|
|
127
|
-
local setUnitColor = SetUnitColor
|
|
128
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
129
128
|
____exports.UnitClassification = {}
|
|
130
129
|
local UnitClassification = ____exports.UnitClassification
|
|
131
130
|
do
|
|
@@ -135,6 +134,7 @@ do
|
|
|
135
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
136
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
137
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
138
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
139
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
140
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -289,7 +289,6 @@ local function dispatch(event, idGetter, argsGetter)
|
|
|
289
289
|
return event[id]
|
|
290
290
|
end
|
|
291
291
|
if not initialized then
|
|
292
|
-
local invoke = Event.invoke
|
|
293
292
|
event:addListener(function(...)
|
|
294
293
|
local id = idGetter(...)
|
|
295
294
|
local dispatched = rawget(self, id)
|
|
@@ -327,7 +326,6 @@ local function dispatchAbility(event)
|
|
|
327
326
|
return event[id]
|
|
328
327
|
end
|
|
329
328
|
if not initialized then
|
|
330
|
-
local invoke = Event.invoke
|
|
331
329
|
event:addListener(function(unit, ability, ...)
|
|
332
330
|
local dispatched = rawget(self, ability.typeId)
|
|
333
331
|
if dispatched ~= nil then
|
|
@@ -344,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
344
342
|
}
|
|
345
343
|
)
|
|
346
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
347
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
348
349
|
if self[0] ~= nil then
|
|
349
350
|
return
|
|
@@ -355,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
355
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
356
357
|
end
|
|
357
358
|
end
|
|
358
|
-
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
|
+
}
|
|
359
367
|
local jlimitopByOperator = {
|
|
360
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
361
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -373,15 +381,27 @@ local modifiers = {
|
|
|
373
381
|
end,
|
|
374
382
|
armor = function(unit, value)
|
|
375
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
376
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
377
389
|
end
|
|
378
|
-
local ability = assert(
|
|
379
|
-
|
|
380
|
-
ability,
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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
|
+
)
|
|
385
405
|
end
|
|
386
406
|
}
|
|
387
407
|
local getters = {
|
|
@@ -399,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
399
419
|
self.unit = unit
|
|
400
420
|
self.index = index
|
|
401
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
|
+
)
|
|
402
435
|
__TS__SetDescriptor(
|
|
403
436
|
UnitWeapon.prototype,
|
|
404
437
|
"cooldown",
|
|
@@ -433,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
433
466
|
},
|
|
434
467
|
true
|
|
435
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
|
+
)
|
|
436
482
|
__TS__SetDescriptor(
|
|
437
483
|
UnitWeapon.prototype,
|
|
438
484
|
"damageBase",
|
|
@@ -544,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
544
590
|
},
|
|
545
591
|
true
|
|
546
592
|
)
|
|
547
|
-
local unitInventorySize = UnitInventorySize
|
|
548
|
-
local unitItemInSlot = UnitItemInSlot
|
|
549
593
|
local getItemAbility = BlzGetItemAbility
|
|
550
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
551
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -563,19 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
563
607
|
____exports.Unit:of(unit)
|
|
564
608
|
)
|
|
565
609
|
end
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
return UnitAbility:of(
|
|
569
|
-
ability,
|
|
570
|
-
abilityId,
|
|
571
|
-
____exports.Unit:of(unit)
|
|
572
|
-
)
|
|
573
|
-
end
|
|
574
|
-
else
|
|
575
|
-
unitRemoveAbility(unit, abilityId)
|
|
576
|
-
end
|
|
577
|
-
for i = 0, unitInventorySize(unit) - 1 do
|
|
578
|
-
local item = unitItemInSlot(unit, i)
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
579
612
|
if getItemAbility(item, abilityId) == ability then
|
|
580
613
|
return ItemAbility:of(
|
|
581
614
|
ability,
|
|
@@ -620,26 +653,30 @@ local fieldSetters = {
|
|
|
620
653
|
}
|
|
621
654
|
local dummies = {}
|
|
622
655
|
for ____, player in ipairs(Player.all) do
|
|
623
|
-
local dummy = assert(
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
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
|
+
)
|
|
630
667
|
ShowUnit(dummy, false)
|
|
631
668
|
dummies[player] = dummy
|
|
632
669
|
end
|
|
633
670
|
local function delayHealthChecksCallback(unit)
|
|
634
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
635
672
|
if counter ~= 0 then
|
|
636
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
637
674
|
return
|
|
638
675
|
end
|
|
639
|
-
unit[
|
|
640
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
641
678
|
if healthBonus ~= nil then
|
|
642
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
643
680
|
local handle = unit.handle
|
|
644
681
|
BlzSetUnitMaxHP(
|
|
645
682
|
handle,
|
|
@@ -647,45 +684,84 @@ local function delayHealthChecksCallback(unit)
|
|
|
647
684
|
)
|
|
648
685
|
end
|
|
649
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
|
|
650
699
|
____exports.Unit = __TS__Class()
|
|
651
700
|
local Unit = ____exports.Unit
|
|
652
701
|
Unit.name = "Unit"
|
|
653
702
|
__TS__ClassExtends(Unit, Handle)
|
|
654
703
|
function Unit.prototype.____constructor(self, handle)
|
|
655
704
|
Handle.prototype.____constructor(self, handle)
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
656
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
657
|
-
assert(
|
|
658
|
-
|
|
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
|
+
)
|
|
659
719
|
if unitAddAbility(
|
|
660
720
|
handle,
|
|
661
721
|
fourCC("Amrf")
|
|
662
722
|
) then
|
|
663
|
-
assert(
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
667
731
|
end
|
|
732
|
+
unitBySyncId[self.syncId] = self
|
|
668
733
|
local ____ = self.abilities
|
|
669
734
|
end
|
|
670
|
-
function Unit.prototype.getEvent(self,
|
|
671
|
-
self.events = self.events or (
|
|
672
|
-
local eventId = GetHandleId(
|
|
673
|
-
|
|
674
|
-
|
|
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(
|
|
675
741
|
TriggerEvent,
|
|
676
742
|
function(trigger)
|
|
677
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
678
744
|
end,
|
|
679
745
|
collector or (function() return {} end)
|
|
680
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
681
748
|
end
|
|
682
|
-
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))
|
|
683
756
|
end
|
|
684
757
|
function Unit.prototype.onDestroy(self)
|
|
685
758
|
local handle = self.handle
|
|
686
|
-
|
|
687
|
-
|
|
759
|
+
self:saveData()
|
|
760
|
+
local abilities = self.abilities
|
|
761
|
+
for ____, ability in ipairs(abilities) do
|
|
762
|
+
ability:destroy()
|
|
688
763
|
end
|
|
764
|
+
__TS__ArraySetLength(abilities, 0)
|
|
689
765
|
for ____, player in ipairs(Player.all) do
|
|
690
766
|
if self:isSelected(player) then
|
|
691
767
|
Event.invoke(____exports.Unit.onDeselect, self, player)
|
|
@@ -698,7 +774,13 @@ function Unit.prototype.onDestroy(self)
|
|
|
698
774
|
end
|
|
699
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
700
776
|
if eventsToDestroy ~= nil then
|
|
701
|
-
|
|
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)
|
|
702
784
|
end
|
|
703
785
|
return Handle.prototype.onDestroy(self)
|
|
704
786
|
end
|
|
@@ -712,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
712
794
|
self._attackHandlers = handlers
|
|
713
795
|
if #handlers == 1 then
|
|
714
796
|
local handle = self.handle
|
|
715
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
716
802
|
end
|
|
717
803
|
return handler
|
|
718
804
|
end
|
|
@@ -741,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
741
827
|
end}
|
|
742
828
|
end
|
|
743
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
744
|
-
local
|
|
745
|
-
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
|
|
746
832
|
end
|
|
747
833
|
function Unit.prototype.addClassification(self, classification)
|
|
748
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
749
835
|
end
|
|
750
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
751
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
752
838
|
end
|
|
753
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
754
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
755
841
|
end
|
|
756
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
757
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -760,13 +846,13 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
760
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
761
847
|
end
|
|
762
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
763
|
-
local
|
|
849
|
+
local ____temp_3
|
|
764
850
|
if type(x) == "number" then
|
|
765
|
-
|
|
851
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
766
852
|
else
|
|
767
|
-
|
|
853
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
768
854
|
end
|
|
769
|
-
return
|
|
855
|
+
return ____temp_3
|
|
770
856
|
end
|
|
771
857
|
function Unit.prototype.isAllyOf(self, unit)
|
|
772
858
|
return isUnitAlly(
|
|
@@ -784,16 +870,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
784
870
|
if type(animation) == "number" then
|
|
785
871
|
setUnitAnimationByIndex(self.handle, animation)
|
|
786
872
|
elseif rarity then
|
|
787
|
-
|
|
873
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
788
874
|
else
|
|
789
875
|
setUnitAnimation(self.handle, animation)
|
|
790
876
|
end
|
|
791
877
|
end
|
|
878
|
+
function Unit.prototype.resetAnimation(self)
|
|
879
|
+
ResetUnitAnimation(self.handle)
|
|
880
|
+
end
|
|
792
881
|
function Unit.prototype.queueAnimation(self, animation)
|
|
793
|
-
|
|
882
|
+
QueueUnitAnimation(self.handle, animation)
|
|
883
|
+
end
|
|
884
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
885
|
+
local firstWeapon = self.firstWeapon
|
|
886
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
887
|
+
return firstWeapon
|
|
888
|
+
end
|
|
889
|
+
local secondWeapon = self.secondWeapon
|
|
890
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
891
|
+
return secondWeapon
|
|
892
|
+
end
|
|
893
|
+
return nil
|
|
794
894
|
end
|
|
795
895
|
function Unit.prototype.delayHealthChecks(self)
|
|
796
|
-
self[
|
|
896
|
+
self[104] = (self[104] or 0) + 1
|
|
797
897
|
Timer:run(delayHealthChecksCallback, self)
|
|
798
898
|
end
|
|
799
899
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -803,21 +903,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
803
903
|
return IsUnitSelected(self.handle, player.handle)
|
|
804
904
|
end
|
|
805
905
|
function Unit.prototype.explode(self)
|
|
806
|
-
|
|
906
|
+
SetUnitExploded(self.handle, true)
|
|
807
907
|
killUnit(self.handle)
|
|
808
908
|
end
|
|
809
909
|
function Unit.prototype.kill(self)
|
|
810
910
|
killUnit(self.handle)
|
|
811
911
|
end
|
|
812
912
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
813
|
-
local
|
|
814
|
-
local
|
|
815
|
-
local
|
|
816
|
-
if
|
|
817
|
-
|
|
913
|
+
local ____ReviveHero_6 = ReviveHero
|
|
914
|
+
local ____array_5 = __TS__SparseArrayNew(self.handle, x, y)
|
|
915
|
+
local ____doEffect_4 = doEffect
|
|
916
|
+
if ____doEffect_4 == nil then
|
|
917
|
+
____doEffect_4 = false
|
|
818
918
|
end
|
|
819
|
-
__TS__SparseArrayPush(
|
|
820
|
-
|
|
919
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
920
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
821
921
|
end
|
|
822
922
|
function Unit.prototype.healTarget(self, target, amount)
|
|
823
923
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -860,17 +960,16 @@ function Unit.prototype.itemInSlot(self, slot)
|
|
|
860
960
|
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
861
961
|
end
|
|
862
962
|
function Unit.prototype.addAbility(self, abilityId)
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
963
|
+
local ability = UnitAbility:of(
|
|
964
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
965
|
+
abilityId,
|
|
966
|
+
self
|
|
967
|
+
)
|
|
968
|
+
if ability ~= nil then
|
|
869
969
|
local abilities = self.abilities
|
|
870
970
|
abilities[#abilities + 1] = ability
|
|
871
|
-
return ability
|
|
872
971
|
end
|
|
873
|
-
return
|
|
972
|
+
return ability
|
|
874
973
|
end
|
|
875
974
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
876
975
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -884,31 +983,21 @@ end
|
|
|
884
983
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
885
984
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
886
985
|
end
|
|
887
|
-
function Unit.prototype.
|
|
888
|
-
local
|
|
889
|
-
|
|
890
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
891
|
-
return nil
|
|
892
|
-
end
|
|
893
|
-
return UnitAbility:of(
|
|
894
|
-
getUnitAbility(self.handle, abilityId),
|
|
895
|
-
abilityId,
|
|
896
|
-
self
|
|
897
|
-
)
|
|
986
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
987
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
988
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
898
989
|
end
|
|
899
|
-
function Unit.prototype.removeAbility(self,
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
end
|
|
990
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
991
|
+
local abilities = self.abilities
|
|
992
|
+
for i = 1, #abilities do
|
|
993
|
+
if abilities[i].typeId == abilityTypeId then
|
|
994
|
+
local ability = abilities[i]
|
|
995
|
+
tremove(abilities, i)
|
|
996
|
+
ability:destroy()
|
|
997
|
+
return true
|
|
908
998
|
end
|
|
909
|
-
return true
|
|
910
999
|
end
|
|
911
|
-
return
|
|
1000
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
912
1001
|
end
|
|
913
1002
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
914
1003
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -922,12 +1011,16 @@ end
|
|
|
922
1011
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
923
1012
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
924
1013
|
end
|
|
925
|
-
function Unit.prototype.interruptAttack(self)
|
|
926
|
-
unitInterruptAttack(self.handle)
|
|
927
|
-
end
|
|
928
1014
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
929
|
-
|
|
930
|
-
unitDisableAbility(
|
|
1015
|
+
local handle = self.handle
|
|
1016
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
1017
|
+
Timer:run(
|
|
1018
|
+
unitDisableAbility,
|
|
1019
|
+
handle,
|
|
1020
|
+
abilityId,
|
|
1021
|
+
false,
|
|
1022
|
+
false
|
|
1023
|
+
)
|
|
931
1024
|
end
|
|
932
1025
|
function Unit.prototype.getDistanceTo(self, target)
|
|
933
1026
|
local handle = self.handle
|
|
@@ -987,18 +1080,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
987
1080
|
self:decrementStunCounter()
|
|
988
1081
|
end
|
|
989
1082
|
function Unit.prototype.incrementStunCounter(self)
|
|
990
|
-
local stunCounter = self[
|
|
991
|
-
if not self[
|
|
1083
|
+
local stunCounter = self[102] or 0
|
|
1084
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
992
1085
|
BlzPauseUnitEx(self.handle, true)
|
|
993
1086
|
end
|
|
994
|
-
self[
|
|
1087
|
+
self[102] = stunCounter + 1
|
|
995
1088
|
end
|
|
996
1089
|
function Unit.prototype.decrementStunCounter(self)
|
|
997
|
-
local stunCounter = self[
|
|
998
|
-
if not self[
|
|
1090
|
+
local stunCounter = self[102] or 0
|
|
1091
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
999
1092
|
BlzPauseUnitEx(self.handle, false)
|
|
1000
1093
|
end
|
|
1001
|
-
self[
|
|
1094
|
+
self[102] = stunCounter - 1
|
|
1095
|
+
end
|
|
1096
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1097
|
+
local forceStunCounter = self[103] or 0
|
|
1098
|
+
if forceStunCounter == 0 then
|
|
1099
|
+
local handle = self.handle
|
|
1100
|
+
if not self[101] then
|
|
1101
|
+
for _ = self[102] or 0, -1 do
|
|
1102
|
+
BlzPauseUnitEx(handle, true)
|
|
1103
|
+
end
|
|
1104
|
+
end
|
|
1105
|
+
BlzPauseUnitEx(handle, true)
|
|
1106
|
+
end
|
|
1107
|
+
self[103] = forceStunCounter + 1
|
|
1108
|
+
end
|
|
1109
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1110
|
+
local forceStunCounter = self[103] or 0
|
|
1111
|
+
if forceStunCounter == 1 then
|
|
1112
|
+
local handle = self.handle
|
|
1113
|
+
if not self[101] then
|
|
1114
|
+
for _ = self[102] or 0, -1 do
|
|
1115
|
+
BlzPauseUnitEx(handle, false)
|
|
1116
|
+
end
|
|
1117
|
+
end
|
|
1118
|
+
BlzPauseUnitEx(handle, false)
|
|
1119
|
+
end
|
|
1120
|
+
self[103] = forceStunCounter - 1
|
|
1002
1121
|
end
|
|
1003
1122
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1004
1123
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
@@ -1100,8 +1219,11 @@ function Unit.getInSector(self, pos, range, offsetAngle, centralAngle)
|
|
|
1100
1219
|
)
|
|
1101
1220
|
return targetCollection
|
|
1102
1221
|
end
|
|
1103
|
-
function Unit.getSelectionOf(self, player)
|
|
1104
|
-
|
|
1222
|
+
function Unit.getSelectionOf(self, player, target)
|
|
1223
|
+
if target == nil then
|
|
1224
|
+
target = {}
|
|
1225
|
+
end
|
|
1226
|
+
targetCollection = target
|
|
1105
1227
|
targetCollectionNextIndex = 1
|
|
1106
1228
|
GroupEnumUnitsSelected(dummyGroup, player.handle, collectIntoTarget)
|
|
1107
1229
|
return targetCollection
|
|
@@ -1123,6 +1245,9 @@ end
|
|
|
1123
1245
|
function Unit.prototype.__tostring(self)
|
|
1124
1246
|
return (((self.constructor.name .. "$") .. util.id2s(self.typeId)) .. "@") .. tostring(getHandleId(self.handle))
|
|
1125
1247
|
end
|
|
1248
|
+
function Unit.getBySyncId(self, syncId)
|
|
1249
|
+
return unitBySyncId[syncId]
|
|
1250
|
+
end
|
|
1126
1251
|
__TS__SetDescriptor(
|
|
1127
1252
|
Unit.prototype,
|
|
1128
1253
|
"_deltas",
|
|
@@ -1182,7 +1307,15 @@ __TS__SetDescriptor(
|
|
|
1182
1307
|
Unit.prototype,
|
|
1183
1308
|
"isIllusion",
|
|
1184
1309
|
{get = function(self)
|
|
1185
|
-
return
|
|
1310
|
+
return IsUnitIllusion(self.handle)
|
|
1311
|
+
end},
|
|
1312
|
+
true
|
|
1313
|
+
)
|
|
1314
|
+
__TS__SetDescriptor(
|
|
1315
|
+
Unit.prototype,
|
|
1316
|
+
"isStunned",
|
|
1317
|
+
{get = function(self)
|
|
1318
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1186
1319
|
end},
|
|
1187
1320
|
true
|
|
1188
1321
|
)
|
|
@@ -1261,13 +1394,13 @@ __TS__SetDescriptor(
|
|
|
1261
1394
|
)
|
|
1262
1395
|
__TS__SetDescriptor(
|
|
1263
1396
|
Unit.prototype,
|
|
1264
|
-
"
|
|
1397
|
+
"primaryAttribute",
|
|
1265
1398
|
{
|
|
1266
1399
|
get = function(self)
|
|
1267
|
-
return
|
|
1400
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1268
1401
|
end,
|
|
1269
|
-
set = function(self,
|
|
1270
|
-
|
|
1402
|
+
set = function(self, primaryAttribute)
|
|
1403
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1271
1404
|
end
|
|
1272
1405
|
},
|
|
1273
1406
|
true
|
|
@@ -1289,19 +1422,6 @@ __TS__SetDescriptor(
|
|
|
1289
1422
|
end},
|
|
1290
1423
|
true
|
|
1291
1424
|
)
|
|
1292
|
-
__TS__SetDescriptor(
|
|
1293
|
-
Unit.prototype,
|
|
1294
|
-
"agilityBase",
|
|
1295
|
-
{
|
|
1296
|
-
get = function(self)
|
|
1297
|
-
return getHeroAgi(self.handle, false)
|
|
1298
|
-
end,
|
|
1299
|
-
set = function(self, agilityBase)
|
|
1300
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1301
|
-
end
|
|
1302
|
-
},
|
|
1303
|
-
true
|
|
1304
|
-
)
|
|
1305
1425
|
__TS__SetDescriptor(
|
|
1306
1426
|
Unit.prototype,
|
|
1307
1427
|
"agilityBonus",
|
|
@@ -1319,19 +1439,6 @@ __TS__SetDescriptor(
|
|
|
1319
1439
|
end},
|
|
1320
1440
|
true
|
|
1321
1441
|
)
|
|
1322
|
-
__TS__SetDescriptor(
|
|
1323
|
-
Unit.prototype,
|
|
1324
|
-
"intelligenceBase",
|
|
1325
|
-
{
|
|
1326
|
-
get = function(self)
|
|
1327
|
-
return getHeroInt(self.handle, false)
|
|
1328
|
-
end,
|
|
1329
|
-
set = function(self, intelligenceBase)
|
|
1330
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1331
|
-
end
|
|
1332
|
-
},
|
|
1333
|
-
true
|
|
1334
|
-
)
|
|
1335
1442
|
__TS__SetDescriptor(
|
|
1336
1443
|
Unit.prototype,
|
|
1337
1444
|
"intelligenceBonus",
|
|
@@ -1380,17 +1487,17 @@ __TS__SetDescriptor(
|
|
|
1380
1487
|
"isTeamGlowVisible",
|
|
1381
1488
|
{
|
|
1382
1489
|
get = function(self)
|
|
1383
|
-
return not self[
|
|
1490
|
+
return not self[107]
|
|
1384
1491
|
end,
|
|
1385
1492
|
set = function(self, isTeamGlowVisible)
|
|
1386
|
-
|
|
1387
|
-
local
|
|
1493
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1494
|
+
local ____temp_7
|
|
1388
1495
|
if not isTeamGlowVisible then
|
|
1389
|
-
|
|
1496
|
+
____temp_7 = true
|
|
1390
1497
|
else
|
|
1391
|
-
|
|
1498
|
+
____temp_7 = nil
|
|
1392
1499
|
end
|
|
1393
|
-
self[
|
|
1500
|
+
self[107] = ____temp_7
|
|
1394
1501
|
end
|
|
1395
1502
|
},
|
|
1396
1503
|
true
|
|
@@ -1399,9 +1506,9 @@ __TS__SetDescriptor(
|
|
|
1399
1506
|
Unit.prototype,
|
|
1400
1507
|
"color",
|
|
1401
1508
|
{set = function(self, color)
|
|
1402
|
-
|
|
1403
|
-
if self[
|
|
1404
|
-
|
|
1509
|
+
SetUnitColor(self.handle, color.handle)
|
|
1510
|
+
if self[107] then
|
|
1511
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1405
1512
|
end
|
|
1406
1513
|
end},
|
|
1407
1514
|
true
|
|
@@ -1424,14 +1531,14 @@ __TS__SetDescriptor(
|
|
|
1424
1531
|
"maxHealth",
|
|
1425
1532
|
{
|
|
1426
1533
|
get = function(self)
|
|
1427
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1534
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1428
1535
|
end,
|
|
1429
1536
|
set = function(self, maxHealth)
|
|
1430
|
-
if maxHealth < 1 and self[
|
|
1431
|
-
self[
|
|
1537
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1538
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1432
1539
|
maxHealth = 1
|
|
1433
1540
|
end
|
|
1434
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1541
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1435
1542
|
end
|
|
1436
1543
|
},
|
|
1437
1544
|
true
|
|
@@ -1473,10 +1580,10 @@ __TS__SetDescriptor(
|
|
|
1473
1580
|
"health",
|
|
1474
1581
|
{
|
|
1475
1582
|
get = function(self)
|
|
1476
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1583
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1477
1584
|
end,
|
|
1478
1585
|
set = function(self, health)
|
|
1479
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1586
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1480
1587
|
end
|
|
1481
1588
|
},
|
|
1482
1589
|
true
|
|
@@ -1552,25 +1659,12 @@ __TS__SetDescriptor(
|
|
|
1552
1659
|
},
|
|
1553
1660
|
true
|
|
1554
1661
|
)
|
|
1555
|
-
__TS__SetDescriptor(
|
|
1556
|
-
Unit.prototype,
|
|
1557
|
-
"flyHeight",
|
|
1558
|
-
{
|
|
1559
|
-
get = function(self)
|
|
1560
|
-
return getUnitFlyHeight(self.handle)
|
|
1561
|
-
end,
|
|
1562
|
-
set = function(self, v)
|
|
1563
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1564
|
-
end
|
|
1565
|
-
},
|
|
1566
|
-
true
|
|
1567
|
-
)
|
|
1568
1662
|
__TS__SetDescriptor(
|
|
1569
1663
|
Unit.prototype,
|
|
1570
1664
|
"x",
|
|
1571
1665
|
{
|
|
1572
1666
|
get = function(self)
|
|
1573
|
-
return getUnitX(self.handle)
|
|
1667
|
+
return self[108] or getUnitX(self.handle)
|
|
1574
1668
|
end,
|
|
1575
1669
|
set = function(self, v)
|
|
1576
1670
|
SetUnitX(self.handle, v)
|
|
@@ -1583,7 +1677,7 @@ __TS__SetDescriptor(
|
|
|
1583
1677
|
"y",
|
|
1584
1678
|
{
|
|
1585
1679
|
get = function(self)
|
|
1586
|
-
return getUnitY(self.handle)
|
|
1680
|
+
return self[109] or getUnitY(self.handle)
|
|
1587
1681
|
end,
|
|
1588
1682
|
set = function(self, v)
|
|
1589
1683
|
SetUnitY(self.handle, v)
|
|
@@ -1669,10 +1763,10 @@ __TS__SetDescriptor(
|
|
|
1669
1763
|
"gold",
|
|
1670
1764
|
{
|
|
1671
1765
|
get = function(self)
|
|
1672
|
-
return
|
|
1766
|
+
return GetResourceAmount(self.handle)
|
|
1673
1767
|
end,
|
|
1674
1768
|
set = function(self, gold)
|
|
1675
|
-
|
|
1769
|
+
SetResourceAmount(self.handle, gold)
|
|
1676
1770
|
end
|
|
1677
1771
|
},
|
|
1678
1772
|
true
|
|
@@ -1687,17 +1781,21 @@ __TS__SetDescriptor(
|
|
|
1687
1781
|
set = function(self, isPaused)
|
|
1688
1782
|
local handle = self.handle
|
|
1689
1783
|
if isPaused and not IsUnitPaused(handle) then
|
|
1690
|
-
self[
|
|
1691
|
-
|
|
1692
|
-
|
|
1784
|
+
self[101] = true
|
|
1785
|
+
if (self[103] or 0) <= 0 then
|
|
1786
|
+
for _ = self[102] or 0, -1 do
|
|
1787
|
+
BlzPauseUnitEx(handle, true)
|
|
1788
|
+
end
|
|
1693
1789
|
end
|
|
1694
1790
|
PauseUnit(handle, true)
|
|
1695
1791
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1696
1792
|
PauseUnit(handle, false)
|
|
1697
|
-
|
|
1698
|
-
|
|
1793
|
+
if (self[103] or 0) <= 0 then
|
|
1794
|
+
for _ = self[102] or 0, -1 do
|
|
1795
|
+
BlzPauseUnitEx(handle, false)
|
|
1796
|
+
end
|
|
1699
1797
|
end
|
|
1700
|
-
self[
|
|
1798
|
+
self[101] = nil
|
|
1701
1799
|
end
|
|
1702
1800
|
end
|
|
1703
1801
|
},
|
|
@@ -1753,20 +1851,6 @@ __TS__SetDescriptor(
|
|
|
1753
1851
|
},
|
|
1754
1852
|
true
|
|
1755
1853
|
)
|
|
1756
|
-
__TS__SetDescriptor(
|
|
1757
|
-
Unit.prototype,
|
|
1758
|
-
"scale",
|
|
1759
|
-
{
|
|
1760
|
-
get = function(self)
|
|
1761
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1762
|
-
end,
|
|
1763
|
-
set = function(self, v)
|
|
1764
|
-
setUnitScale(self.handle, v, v, v)
|
|
1765
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1766
|
-
end
|
|
1767
|
-
},
|
|
1768
|
-
true
|
|
1769
|
-
)
|
|
1770
1854
|
__TS__SetDescriptor(
|
|
1771
1855
|
Unit.prototype,
|
|
1772
1856
|
"timeScale",
|
|
@@ -1793,13 +1877,26 @@ __TS__SetDescriptor(
|
|
|
1793
1877
|
Unit.prototype,
|
|
1794
1878
|
"pathingCollisionRange",
|
|
1795
1879
|
{get = function(self)
|
|
1796
|
-
return 16 * (min(
|
|
1880
|
+
return 16 * (math.min(
|
|
1797
1881
|
getUnitCollisionSize(self.handle) // 16,
|
|
1798
1882
|
3
|
|
1799
1883
|
) + 1)
|
|
1800
1884
|
end},
|
|
1801
1885
|
true
|
|
1802
1886
|
)
|
|
1887
|
+
__TS__SetDescriptor(
|
|
1888
|
+
Unit.prototype,
|
|
1889
|
+
"movementType",
|
|
1890
|
+
{
|
|
1891
|
+
get = function(self)
|
|
1892
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1893
|
+
end,
|
|
1894
|
+
set = function(self, movementType)
|
|
1895
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1896
|
+
end
|
|
1897
|
+
},
|
|
1898
|
+
true
|
|
1899
|
+
)
|
|
1803
1900
|
__TS__SetDescriptor(
|
|
1804
1901
|
Unit.prototype,
|
|
1805
1902
|
"pathing",
|
|
@@ -1890,30 +1987,6 @@ __TS__SetDescriptor(
|
|
|
1890
1987
|
end},
|
|
1891
1988
|
true
|
|
1892
1989
|
)
|
|
1893
|
-
__TS__SetDescriptor(
|
|
1894
|
-
Unit.prototype,
|
|
1895
|
-
"onUnitInRange",
|
|
1896
|
-
{get = function(self)
|
|
1897
|
-
local handle = self.handle
|
|
1898
|
-
local onUnitInRange = setmetatable(
|
|
1899
|
-
{},
|
|
1900
|
-
{__index = function(self, value)
|
|
1901
|
-
local event = __TS__New(
|
|
1902
|
-
TriggerEvent,
|
|
1903
|
-
function(trigger)
|
|
1904
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1905
|
-
end,
|
|
1906
|
-
function() return ____exports.Unit:of(handle) end
|
|
1907
|
-
)
|
|
1908
|
-
rawset(self, value, event)
|
|
1909
|
-
return event
|
|
1910
|
-
end}
|
|
1911
|
-
)
|
|
1912
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1913
|
-
return onUnitInRange
|
|
1914
|
-
end},
|
|
1915
|
-
true
|
|
1916
|
-
)
|
|
1917
1990
|
__TS__SetDescriptor(
|
|
1918
1991
|
Unit.prototype,
|
|
1919
1992
|
"onManaEqual",
|
|
@@ -1981,6 +2054,14 @@ __TS__SetDescriptor(
|
|
|
1981
2054
|
end},
|
|
1982
2055
|
true
|
|
1983
2056
|
)
|
|
2057
|
+
__TS__SetDescriptor(
|
|
2058
|
+
Unit.prototype,
|
|
2059
|
+
"targetAcquiredEvent",
|
|
2060
|
+
{get = function(self)
|
|
2061
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2062
|
+
end},
|
|
2063
|
+
true
|
|
2064
|
+
)
|
|
1984
2065
|
__TS__SetDescriptor(
|
|
1985
2066
|
Unit.prototype,
|
|
1986
2067
|
"onSelect",
|
|
@@ -2041,6 +2122,11 @@ __TS__SetDescriptor(
|
|
|
2041
2122
|
end},
|
|
2042
2123
|
true
|
|
2043
2124
|
)
|
|
2125
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2126
|
+
____exports.UnitTriggerEvent,
|
|
2127
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2128
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2129
|
+
)
|
|
2044
2130
|
Unit.deathEvent = __TS__New(
|
|
2045
2131
|
____exports.UnitTriggerEvent,
|
|
2046
2132
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2054,12 +2140,11 @@ Unit.onDecay = __TS__New(
|
|
|
2054
2140
|
Unit.onResurrect = __TS__New(
|
|
2055
2141
|
InitializingEvent,
|
|
2056
2142
|
function(event)
|
|
2057
|
-
local invoke = Event.invoke
|
|
2058
2143
|
local dead = setmetatable({}, {__mode = "k"})
|
|
2059
2144
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2060
2145
|
dead[unit] = true
|
|
2061
2146
|
end)
|
|
2062
|
-
____exports.Unit.onImmediateOrder[
|
|
2147
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2063
2148
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2064
2149
|
dead[unit] = false
|
|
2065
2150
|
invoke(event, unit)
|
|
@@ -2070,10 +2155,15 @@ Unit.onResurrect = __TS__New(
|
|
|
2070
2155
|
Unit.morphEvent = __TS__New(
|
|
2071
2156
|
InitializingEvent,
|
|
2072
2157
|
function(event)
|
|
2073
|
-
|
|
2158
|
+
local function ifNotLeft(unit)
|
|
2159
|
+
local handle = unit.handle
|
|
2160
|
+
if getUnitAbilityLevel(handle, leaveDetectAbilityId) ~= 0 and unitAddAbility(handle, morphDetectAbilityId) then
|
|
2161
|
+
invoke(event, unit)
|
|
2162
|
+
end
|
|
2163
|
+
end
|
|
2164
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2074
2165
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2075
|
-
|
|
2076
|
-
Timer:run(Event.invoke, event, unit)
|
|
2166
|
+
Timer:run(ifNotLeft, unit)
|
|
2077
2167
|
end
|
|
2078
2168
|
end)
|
|
2079
2169
|
end
|
|
@@ -2111,27 +2201,26 @@ Unit.onSpellEffect = dispatchId(__TS__New(
|
|
|
2111
2201
|
Unit.onTargetCast = dispatchId(__TS__New(
|
|
2112
2202
|
InitializingEvent,
|
|
2113
2203
|
function(event)
|
|
2114
|
-
local invoke = Event.invoke
|
|
2115
2204
|
local function listener(unit, id)
|
|
2116
|
-
local
|
|
2205
|
+
local ____GetSpellTargetUnit_result_10
|
|
2117
2206
|
if GetSpellTargetUnit() then
|
|
2118
|
-
|
|
2207
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2119
2208
|
else
|
|
2120
|
-
local
|
|
2209
|
+
local ____GetSpellTargetItem_result_9
|
|
2121
2210
|
if GetSpellTargetItem() then
|
|
2122
|
-
|
|
2211
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2123
2212
|
else
|
|
2124
|
-
local
|
|
2213
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2125
2214
|
if GetSpellTargetDestructable() then
|
|
2126
|
-
|
|
2215
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2127
2216
|
else
|
|
2128
|
-
|
|
2217
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2129
2218
|
end
|
|
2130
|
-
|
|
2219
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2131
2220
|
end
|
|
2132
|
-
|
|
2221
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2133
2222
|
end
|
|
2134
|
-
local target =
|
|
2223
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2135
2224
|
if target then
|
|
2136
2225
|
invoke(event, unit, id, target)
|
|
2137
2226
|
end
|
|
@@ -2303,10 +2392,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2303
2392
|
____exports.UnitTriggerEvent,
|
|
2304
2393
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2305
2394
|
function()
|
|
2306
|
-
local
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2395
|
+
local handle = getOrderedUnit()
|
|
2396
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2397
|
+
local unit = ____exports.Unit:of(handle)
|
|
2398
|
+
if unit.state == 1 then
|
|
2399
|
+
return unit, getIssuedOrderId()
|
|
2400
|
+
end
|
|
2310
2401
|
end
|
|
2311
2402
|
return IgnoreEvent
|
|
2312
2403
|
end
|
|
@@ -2328,7 +2419,6 @@ Unit.autoAttackStartEvent = __TS__New(
|
|
|
2328
2419
|
)
|
|
2329
2420
|
Unit.onDamaging = (function()
|
|
2330
2421
|
local event = __TS__New(Event)
|
|
2331
|
-
local invoke = Event.invoke
|
|
2332
2422
|
local trigger = CreateTrigger()
|
|
2333
2423
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGING)
|
|
2334
2424
|
TriggerAddCondition(
|
|
@@ -2338,38 +2428,57 @@ Unit.onDamaging = (function()
|
|
|
2338
2428
|
if source and source.typeId == dummyUnitId then
|
|
2339
2429
|
source = nil
|
|
2340
2430
|
end
|
|
2341
|
-
local target = BlzGetEventDamageTarget()
|
|
2431
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2432
|
+
local metadata = damageMetadataByTarget[target]
|
|
2433
|
+
damageMetadataByTarget[target] = nil
|
|
2342
2434
|
local data = {
|
|
2343
2435
|
amount = GetEventDamage(),
|
|
2344
|
-
attackType = BlzGetEventAttackType(),
|
|
2436
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2345
2437
|
damageType = BlzGetEventDamageType(),
|
|
2346
2438
|
weaponType = BlzGetEventWeaponType(),
|
|
2347
|
-
|
|
2439
|
+
metadata = metadata,
|
|
2440
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2441
|
+
originalAmount = GetEventDamage(),
|
|
2442
|
+
originalMetadata = metadata,
|
|
2443
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2348
2444
|
}
|
|
2349
2445
|
if data.isAttack and source then
|
|
2350
|
-
|
|
2351
|
-
if weapon == -1 then
|
|
2352
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2353
|
-
weapon = 0
|
|
2354
|
-
end
|
|
2355
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2446
|
+
data.weapon = source:chooseWeapon(target)
|
|
2356
2447
|
end
|
|
2357
2448
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2358
2449
|
invoke(
|
|
2359
2450
|
event,
|
|
2360
2451
|
source,
|
|
2361
|
-
|
|
2452
|
+
target,
|
|
2362
2453
|
setmetatable(
|
|
2363
2454
|
{},
|
|
2364
2455
|
{
|
|
2365
2456
|
__index = data,
|
|
2366
2457
|
__newindex = function(self, key, value)
|
|
2367
|
-
damageSetters[key]
|
|
2458
|
+
local damageSetter = damageSetters[key]
|
|
2459
|
+
if damageSetter ~= nil then
|
|
2460
|
+
damageSetter(value)
|
|
2461
|
+
end
|
|
2368
2462
|
data[key] = value
|
|
2369
2463
|
end
|
|
2370
2464
|
}
|
|
2371
2465
|
)
|
|
2372
2466
|
)
|
|
2467
|
+
if data[0] and source then
|
|
2468
|
+
local sourceOwner = source.owner.handle
|
|
2469
|
+
data[1] = sourceOwner
|
|
2470
|
+
local targetOwner = target.owner.handle
|
|
2471
|
+
data[2] = targetOwner
|
|
2472
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2473
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2474
|
+
data[3] = true
|
|
2475
|
+
end
|
|
2476
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2477
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2478
|
+
data[4] = true
|
|
2479
|
+
end
|
|
2480
|
+
end
|
|
2481
|
+
damagingEventByTarget[target] = data
|
|
2373
2482
|
return
|
|
2374
2483
|
end
|
|
2375
2484
|
BlzSetEventDamage(0)
|
|
@@ -2377,7 +2486,7 @@ Unit.onDamaging = (function()
|
|
|
2377
2486
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2378
2487
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2379
2488
|
local sourceOwner = source.owner.handle
|
|
2380
|
-
local targetOwner =
|
|
2489
|
+
local targetOwner = target.owner.handle
|
|
2381
2490
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2382
2491
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2383
2492
|
Timer:run(function()
|
|
@@ -2393,23 +2502,19 @@ Unit.onDamaging = (function()
|
|
|
2393
2502
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2394
2503
|
local condition = ____value[1]
|
|
2395
2504
|
local action = ____value[2]
|
|
2396
|
-
if condition(
|
|
2397
|
-
source,
|
|
2398
|
-
____exports.Unit:of(target),
|
|
2399
|
-
data
|
|
2400
|
-
) then
|
|
2505
|
+
if condition(source, target, data) then
|
|
2401
2506
|
action(
|
|
2402
2507
|
source,
|
|
2403
|
-
|
|
2508
|
+
target,
|
|
2404
2509
|
setmetatable(
|
|
2405
2510
|
{fire = function()
|
|
2406
2511
|
UnitDamageTarget(
|
|
2407
2512
|
source.handle,
|
|
2408
|
-
target,
|
|
2513
|
+
target.handle,
|
|
2409
2514
|
data.amount,
|
|
2410
2515
|
true,
|
|
2411
2516
|
true,
|
|
2412
|
-
data.attackType,
|
|
2517
|
+
attackTypeToNative(data.attackType),
|
|
2413
2518
|
data.damageType,
|
|
2414
2519
|
data.weaponType
|
|
2415
2520
|
)
|
|
@@ -2427,7 +2532,6 @@ end)()
|
|
|
2427
2532
|
Unit.onDamage = __TS__New(
|
|
2428
2533
|
InitializingEvent,
|
|
2429
2534
|
function(event)
|
|
2430
|
-
local invoke = Event.invoke
|
|
2431
2535
|
local trigger = CreateTrigger()
|
|
2432
2536
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_DAMAGED)
|
|
2433
2537
|
TriggerAddCondition(
|
|
@@ -2437,29 +2541,54 @@ Unit.onDamage = __TS__New(
|
|
|
2437
2541
|
if source and source.typeId == dummyUnitId then
|
|
2438
2542
|
source = nil
|
|
2439
2543
|
end
|
|
2544
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2545
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2546
|
+
damagingEventByTarget[target] = nil
|
|
2440
2547
|
local data = {
|
|
2441
2548
|
amount = GetEventDamage(),
|
|
2442
|
-
attackType = BlzGetEventAttackType(),
|
|
2549
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2443
2550
|
damageType = BlzGetEventDamageType(),
|
|
2444
2551
|
weaponType = BlzGetEventWeaponType(),
|
|
2552
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2445
2553
|
isAttack = BlzGetEventIsAttack(),
|
|
2554
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2555
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2446
2556
|
preventDeath = damageEventPreventDeath
|
|
2447
2557
|
}
|
|
2558
|
+
if damagingEvent then
|
|
2559
|
+
for key, value in pairs(damagingEvent) do
|
|
2560
|
+
if isAttribute(key) then
|
|
2561
|
+
data[key] = value
|
|
2562
|
+
end
|
|
2563
|
+
end
|
|
2564
|
+
local sourceOwner = damagingEvent[1]
|
|
2565
|
+
if sourceOwner then
|
|
2566
|
+
local targetOwner = damagingEvent[2]
|
|
2567
|
+
if damagingEvent[3] then
|
|
2568
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2569
|
+
end
|
|
2570
|
+
if damagingEvent[4] then
|
|
2571
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2572
|
+
end
|
|
2573
|
+
end
|
|
2574
|
+
end
|
|
2448
2575
|
local evData = setmetatable(
|
|
2449
2576
|
{},
|
|
2450
2577
|
{
|
|
2451
2578
|
__index = data,
|
|
2452
2579
|
__newindex = function(self, key, value)
|
|
2453
|
-
damageSetters[key]
|
|
2580
|
+
local damageSetter = damageSetters[key]
|
|
2581
|
+
if damageSetter ~= nil then
|
|
2582
|
+
damageSetter(value)
|
|
2583
|
+
end
|
|
2454
2584
|
data[key] = value
|
|
2455
2585
|
end
|
|
2456
2586
|
}
|
|
2457
2587
|
)
|
|
2458
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2459
2588
|
invoke(event, source, target, evData)
|
|
2460
2589
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2461
2590
|
local bonusHealth = math.ceil(evData.amount)
|
|
2462
|
-
target[
|
|
2591
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2463
2592
|
BlzSetUnitMaxHP(
|
|
2464
2593
|
target.handle,
|
|
2465
2594
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2473,7 +2602,7 @@ Unit.onDamage = __TS__New(
|
|
|
2473
2602
|
evData[0],
|
|
2474
2603
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2475
2604
|
)
|
|
2476
|
-
target[
|
|
2605
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2477
2606
|
SetWidgetLife(
|
|
2478
2607
|
target.handle,
|
|
2479
2608
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2493,32 +2622,60 @@ Unit.onDamage = __TS__New(
|
|
|
2493
2622
|
DestroyTrigger(trigger)
|
|
2494
2623
|
end
|
|
2495
2624
|
)
|
|
2496
|
-
Unit.
|
|
2625
|
+
Unit.itemDroppedEvent = __TS__New(
|
|
2497
2626
|
____exports.UnitTriggerEvent,
|
|
2498
2627
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2499
2628
|
function()
|
|
2500
2629
|
local unit = getTriggerUnit()
|
|
2501
|
-
|
|
2502
|
-
|
|
2630
|
+
local item = getManipulatedItem()
|
|
2631
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2632
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2503
2633
|
end
|
|
2504
2634
|
return IgnoreEvent
|
|
2505
2635
|
end
|
|
2506
2636
|
)
|
|
2507
|
-
Unit.
|
|
2637
|
+
Unit.itemPickedUpEvent = __TS__New(
|
|
2508
2638
|
____exports.UnitTriggerEvent,
|
|
2509
2639
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2510
2640
|
function()
|
|
2511
|
-
local
|
|
2512
|
-
|
|
2513
|
-
|
|
2641
|
+
local unitHandle = getTriggerUnit()
|
|
2642
|
+
local itemHandle = getManipulatedItem()
|
|
2643
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2644
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2645
|
+
local item = Item:of(itemHandle)
|
|
2646
|
+
if ownerByItem[item] ~= unit then
|
|
2647
|
+
return unit, item
|
|
2648
|
+
end
|
|
2514
2649
|
end
|
|
2515
2650
|
return IgnoreEvent
|
|
2516
2651
|
end
|
|
2517
2652
|
)
|
|
2518
|
-
Unit.
|
|
2653
|
+
Unit.itemUsedEvent = __TS__New(
|
|
2519
2654
|
____exports.UnitTriggerEvent,
|
|
2520
2655
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2521
|
-
function()
|
|
2656
|
+
function()
|
|
2657
|
+
local unit = getTriggerUnit()
|
|
2658
|
+
local item = getManipulatedItem()
|
|
2659
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2660
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2661
|
+
end
|
|
2662
|
+
return IgnoreEvent
|
|
2663
|
+
end
|
|
2664
|
+
)
|
|
2665
|
+
__TS__ObjectDefineProperty(
|
|
2666
|
+
Unit,
|
|
2667
|
+
"itemChargesChangedEvent",
|
|
2668
|
+
{get = function(self)
|
|
2669
|
+
local event = __TS__New(Event)
|
|
2670
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2671
|
+
local unit = item.owner
|
|
2672
|
+
if unit ~= nil then
|
|
2673
|
+
invoke(event, unit, item)
|
|
2674
|
+
end
|
|
2675
|
+
end)
|
|
2676
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2677
|
+
return event
|
|
2678
|
+
end}
|
|
2522
2679
|
)
|
|
2523
2680
|
__TS__ObjectDefineProperty(
|
|
2524
2681
|
Unit,
|
|
@@ -2545,6 +2702,10 @@ __TS__ObjectDefineProperty(
|
|
|
2545
2702
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2546
2703
|
return destroyEvent
|
|
2547
2704
|
end}
|
|
2705
|
+
)
|
|
2706
|
+
Unit.synchronize = synchronizer(
|
|
2707
|
+
function(unit) return unit.syncId end,
|
|
2708
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2548
2709
|
);
|
|
2549
2710
|
(function(self)
|
|
2550
2711
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2562,11 +2723,7 @@ __TS__ObjectDefineProperty(
|
|
|
2562
2723
|
function(____, id) return fourCC(id) end
|
|
2563
2724
|
)
|
|
2564
2725
|
end)
|
|
2565
|
-
for ____, leaveOrderId in ipairs({
|
|
2566
|
-
orderId("undefend"),
|
|
2567
|
-
orderId("magicundefense"),
|
|
2568
|
-
orderId("unimmolation")
|
|
2569
|
-
}) do
|
|
2726
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2570
2727
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2571
2728
|
local handle = unit.handle
|
|
2572
2729
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2574,7 +2731,8 @@ __TS__ObjectDefineProperty(
|
|
|
2574
2731
|
return
|
|
2575
2732
|
end
|
|
2576
2733
|
end
|
|
2577
|
-
unit:
|
|
2734
|
+
unit:saveData()
|
|
2735
|
+
Timer:run(unit, "destroy")
|
|
2578
2736
|
end)
|
|
2579
2737
|
end
|
|
2580
2738
|
end)(Unit)
|