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