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