warscript 0.0.1-dev.47f470c → 0.0.1-dev.4b6e45a
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/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 +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 +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 -26
- package/core/types/sound.lua +105 -55
- 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.lua +5 -5
- 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 +96 -7
- 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 +23 -6
- package/engine/behaviour/ability.lua +145 -29
- 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 -57
- package/engine/buff.lua +643 -294
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- 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 +32 -16
- package/engine/internal/item.lua +257 -82
- 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/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.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- 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 +17 -0
- package/engine/internal/unit/bonus.lua +113 -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.lua +10 -1
- 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/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 +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 +47 -34
- package/engine/internal/unit.lua +413 -323
- package/engine/lightning.lua +4 -4
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- 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/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/auxiliary/unit-weapon-type.d.ts +21 -0
- package/engine/object-data/auxiliary/unit-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 +2 -11
- 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/curse.lua +2 -2
- 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/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/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/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/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 +376 -27
- package/engine/object-data/entry/buff-type/applicable.lua +124 -108
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +37 -27
- 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 +84 -0
- 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 +19 -3
- package/engine/object-data/entry/sound-preset.lua +105 -15
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +8 -3
- package/engine/object-data/entry.lua +22 -7
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- 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 +360 -119
- 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/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 +48 -2
- package/engine/text-tag.lua +287 -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 +2 -2
- 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 -78
- /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,40 +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 ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
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
|
|
56
67
|
local match = string.match
|
|
57
68
|
local ____tostring = _G.tostring
|
|
58
69
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
62
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
64
73
|
local getHeroStr = GetHeroStr
|
|
65
74
|
local getHeroAgi = GetHeroAgi
|
|
66
75
|
local getHeroInt = GetHeroInt
|
|
67
|
-
local setHeroStr = SetHeroStr
|
|
68
|
-
local setHeroAgi = SetHeroAgi
|
|
69
|
-
local setHeroInt = SetHeroInt
|
|
70
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
71
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
72
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
73
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
74
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
75
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
76
|
-
local setUnitScale = SetUnitScale
|
|
77
82
|
local setUnitPosition = SetUnitPosition
|
|
78
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
79
84
|
local getHandleId = GetHandleId
|
|
80
85
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
86
|
local createUnit = CreateUnit
|
|
82
87
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
88
|
local removeUnit = RemoveUnit
|
|
85
89
|
local getUnitTypeId = GetUnitTypeId
|
|
86
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
102
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
104
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
105
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
106
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
107
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
108
109
|
local isUnitInvisible = IsUnitInvisible
|
|
109
110
|
local isUnitVisible = IsUnitVisible
|
|
110
111
|
local getUnitX = GetUnitX
|
|
@@ -121,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
121
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
122
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
123
124
|
local unitAlive = UnitAlive
|
|
124
|
-
local unitAddType = UnitAddType
|
|
125
|
-
local unitRemoveType = UnitRemoveType
|
|
126
|
-
local isUnitIllusion = IsUnitIllusion
|
|
127
|
-
local isUnitType = IsUnitType
|
|
128
125
|
local isUnitAlly = IsUnitAlly
|
|
129
126
|
local isUnitEnemy = IsUnitEnemy
|
|
130
127
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
128
|
____exports.UnitClassification = {}
|
|
134
129
|
local UnitClassification = ____exports.UnitClassification
|
|
135
130
|
do
|
|
@@ -139,6 +134,7 @@ do
|
|
|
139
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
140
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
141
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
142
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
143
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
144
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -346,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
346
342
|
}
|
|
347
343
|
)
|
|
348
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
349
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
350
349
|
if self[0] ~= nil then
|
|
351
350
|
return
|
|
@@ -357,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
357
|
end
|
|
359
358
|
end
|
|
360
|
-
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
|
+
}
|
|
361
367
|
local jlimitopByOperator = {
|
|
362
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -375,15 +381,27 @@ local modifiers = {
|
|
|
375
381
|
end,
|
|
376
382
|
armor = function(unit, value)
|
|
377
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
378
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
379
389
|
end
|
|
380
|
-
local ability = assert(
|
|
381
|
-
|
|
382
|
-
ability,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
+
)
|
|
387
405
|
end
|
|
388
406
|
}
|
|
389
407
|
local getters = {
|
|
@@ -401,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
401
419
|
self.unit = unit
|
|
402
420
|
self.index = index
|
|
403
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
|
+
)
|
|
404
435
|
__TS__SetDescriptor(
|
|
405
436
|
UnitWeapon.prototype,
|
|
406
437
|
"cooldown",
|
|
@@ -435,6 +466,32 @@ __TS__SetDescriptor(
|
|
|
435
466
|
},
|
|
436
467
|
true
|
|
437
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
|
+
)
|
|
482
|
+
__TS__SetDescriptor(
|
|
483
|
+
UnitWeapon.prototype,
|
|
484
|
+
"type",
|
|
485
|
+
{
|
|
486
|
+
get = function(self)
|
|
487
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_TYPE, self.index)
|
|
488
|
+
end,
|
|
489
|
+
set = function(self, ____type)
|
|
490
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_WEAPON_TYPE, self.index, ____type)
|
|
491
|
+
end
|
|
492
|
+
},
|
|
493
|
+
true
|
|
494
|
+
)
|
|
438
495
|
__TS__SetDescriptor(
|
|
439
496
|
UnitWeapon.prototype,
|
|
440
497
|
"damageBase",
|
|
@@ -546,8 +603,6 @@ __TS__SetDescriptor(
|
|
|
546
603
|
},
|
|
547
604
|
true
|
|
548
605
|
)
|
|
549
|
-
local unitInventorySize = UnitInventorySize
|
|
550
|
-
local unitItemInSlot = UnitItemInSlot
|
|
551
606
|
local getItemAbility = BlzGetItemAbility
|
|
552
607
|
local getUnitAbility = BlzGetUnitAbility
|
|
553
608
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -565,8 +620,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
565
620
|
____exports.Unit:of(unit)
|
|
566
621
|
)
|
|
567
622
|
end
|
|
568
|
-
for i = 0,
|
|
569
|
-
local item =
|
|
623
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
624
|
+
local item = UnitItemInSlot(unit, i)
|
|
570
625
|
if getItemAbility(item, abilityId) == ability then
|
|
571
626
|
return ItemAbility:of(
|
|
572
627
|
ability,
|
|
@@ -611,26 +666,30 @@ local fieldSetters = {
|
|
|
611
666
|
}
|
|
612
667
|
local dummies = {}
|
|
613
668
|
for ____, player in ipairs(Player.all) do
|
|
614
|
-
local dummy = assert(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
669
|
+
local dummy = assert(
|
|
670
|
+
createUnit(
|
|
671
|
+
player.handle,
|
|
672
|
+
dummyUnitId,
|
|
673
|
+
0,
|
|
674
|
+
0,
|
|
675
|
+
270
|
|
676
|
+
),
|
|
677
|
+
"dummy must be created",
|
|
678
|
+
player
|
|
679
|
+
)
|
|
621
680
|
ShowUnit(dummy, false)
|
|
622
681
|
dummies[player] = dummy
|
|
623
682
|
end
|
|
624
683
|
local function delayHealthChecksCallback(unit)
|
|
625
|
-
local counter = (unit[
|
|
684
|
+
local counter = (unit[104] or 0) - 1
|
|
626
685
|
if counter ~= 0 then
|
|
627
|
-
unit[
|
|
686
|
+
unit[104] = counter
|
|
628
687
|
return
|
|
629
688
|
end
|
|
630
|
-
unit[
|
|
631
|
-
local healthBonus = unit[
|
|
689
|
+
unit[104] = nil
|
|
690
|
+
local healthBonus = unit[105]
|
|
632
691
|
if healthBonus ~= nil then
|
|
633
|
-
unit[
|
|
692
|
+
unit[105] = nil
|
|
634
693
|
local handle = unit.handle
|
|
635
694
|
BlzSetUnitMaxHP(
|
|
636
695
|
handle,
|
|
@@ -639,50 +698,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
639
698
|
end
|
|
640
699
|
end
|
|
641
700
|
local nextSyncId = 1
|
|
642
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
701
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
702
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
703
|
+
local function addAbility(unit, abilityTypeId)
|
|
704
|
+
local ____unitAddAbility_result_0
|
|
705
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
706
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
707
|
+
else
|
|
708
|
+
____unitAddAbility_result_0 = nil
|
|
709
|
+
end
|
|
710
|
+
return ____unitAddAbility_result_0
|
|
711
|
+
end
|
|
643
712
|
____exports.Unit = __TS__Class()
|
|
644
713
|
local Unit = ____exports.Unit
|
|
645
714
|
Unit.name = "Unit"
|
|
646
715
|
__TS__ClassExtends(Unit, Handle)
|
|
647
716
|
function Unit.prototype.____constructor(self, handle)
|
|
648
717
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
-
local
|
|
650
|
-
nextSyncId =
|
|
651
|
-
self.syncId =
|
|
718
|
+
local ____nextSyncId_1 = nextSyncId
|
|
719
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
720
|
+
self.syncId = ____nextSyncId_1
|
|
652
721
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
653
|
-
assert(
|
|
654
|
-
|
|
722
|
+
assert(
|
|
723
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
724
|
+
"leave detection ability must be added",
|
|
725
|
+
self
|
|
726
|
+
)
|
|
727
|
+
assert(
|
|
728
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
729
|
+
"morph detection ability must be added",
|
|
730
|
+
self
|
|
731
|
+
)
|
|
655
732
|
if unitAddAbility(
|
|
656
733
|
handle,
|
|
657
734
|
fourCC("Amrf")
|
|
658
735
|
) then
|
|
659
|
-
assert(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
736
|
+
assert(
|
|
737
|
+
unitRemoveAbility(
|
|
738
|
+
handle,
|
|
739
|
+
fourCC("Amrf")
|
|
740
|
+
),
|
|
741
|
+
"fly ability must be removed after addition",
|
|
742
|
+
self
|
|
743
|
+
)
|
|
663
744
|
end
|
|
664
745
|
unitBySyncId[self.syncId] = self
|
|
665
746
|
local ____ = self.abilities
|
|
666
747
|
end
|
|
667
|
-
function Unit.prototype.getEvent(self,
|
|
668
|
-
self.events = self.events or (
|
|
669
|
-
local eventId = GetHandleId(
|
|
670
|
-
|
|
671
|
-
|
|
748
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
749
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
750
|
+
local eventId = GetHandleId(jevent)
|
|
751
|
+
local event = self.events:get(eventId)
|
|
752
|
+
if event == nil then
|
|
753
|
+
event = __TS__New(
|
|
672
754
|
TriggerEvent,
|
|
673
755
|
function(trigger)
|
|
674
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
756
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
675
757
|
end,
|
|
676
758
|
collector or (function() return {} end)
|
|
677
759
|
)
|
|
760
|
+
self.events:put(eventId, event)
|
|
678
761
|
end
|
|
679
|
-
return
|
|
762
|
+
return event
|
|
763
|
+
end
|
|
764
|
+
function Unit.prototype.saveData(self)
|
|
765
|
+
local handle = self.handle
|
|
766
|
+
self[108] = self[108] or getUnitX(handle)
|
|
767
|
+
self[109] = self[109] or getUnitY(handle)
|
|
768
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
680
769
|
end
|
|
681
770
|
function Unit.prototype.onDestroy(self)
|
|
682
771
|
local handle = self.handle
|
|
683
|
-
|
|
684
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
|
-
end
|
|
772
|
+
self:saveData()
|
|
686
773
|
local abilities = self.abilities
|
|
687
774
|
for ____, ability in ipairs(abilities) do
|
|
688
775
|
ability:destroy()
|
|
@@ -700,7 +787,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
700
787
|
end
|
|
701
788
|
local eventsToDestroy = self._eventsToDestroy
|
|
702
789
|
if eventsToDestroy ~= nil then
|
|
703
|
-
|
|
790
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
791
|
+
event:destroy()
|
|
792
|
+
end
|
|
704
793
|
end
|
|
705
794
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
706
795
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -718,7 +807,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
718
807
|
self._attackHandlers = handlers
|
|
719
808
|
if #handlers == 1 then
|
|
720
809
|
local handle = self.handle
|
|
721
|
-
assert(
|
|
810
|
+
assert(
|
|
811
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
812
|
+
"attack handler ability must be added",
|
|
813
|
+
self
|
|
814
|
+
)
|
|
722
815
|
end
|
|
723
816
|
return handler
|
|
724
817
|
end
|
|
@@ -747,17 +840,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
747
840
|
end}
|
|
748
841
|
end
|
|
749
842
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
750
|
-
local
|
|
751
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
843
|
+
local ____combatClassification_2 = combatClassification
|
|
844
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
752
845
|
end
|
|
753
846
|
function Unit.prototype.addClassification(self, classification)
|
|
754
|
-
return
|
|
847
|
+
return UnitAddType(self.handle, classification)
|
|
755
848
|
end
|
|
756
849
|
function Unit.prototype.removeClassification(self, classification)
|
|
757
|
-
return
|
|
850
|
+
return UnitRemoveType(self.handle, classification)
|
|
758
851
|
end
|
|
759
852
|
function Unit.prototype.hasClassification(self, classification)
|
|
760
|
-
return
|
|
853
|
+
return IsUnitType(self.handle, classification)
|
|
761
854
|
end
|
|
762
855
|
function Unit.prototype.isVisibleTo(self, player)
|
|
763
856
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -766,13 +859,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
766
859
|
return isUnitInvisible(self.handle, player.handle)
|
|
767
860
|
end
|
|
768
861
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
769
|
-
local
|
|
862
|
+
local ____temp_4
|
|
770
863
|
if type(x) == "number" then
|
|
771
|
-
|
|
864
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
865
|
else
|
|
773
|
-
|
|
866
|
+
local ____temp_3
|
|
867
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
868
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
869
|
+
else
|
|
870
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
871
|
+
end
|
|
872
|
+
____temp_4 = ____temp_3
|
|
774
873
|
end
|
|
775
|
-
return
|
|
874
|
+
return ____temp_4
|
|
776
875
|
end
|
|
777
876
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
877
|
return isUnitAlly(
|
|
@@ -790,16 +889,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
889
|
if type(animation) == "number" then
|
|
791
890
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
891
|
elseif rarity then
|
|
793
|
-
|
|
892
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
893
|
else
|
|
795
894
|
setUnitAnimation(self.handle, animation)
|
|
796
895
|
end
|
|
797
896
|
end
|
|
897
|
+
function Unit.prototype.resetAnimation(self)
|
|
898
|
+
ResetUnitAnimation(self.handle)
|
|
899
|
+
end
|
|
798
900
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
901
|
+
QueueUnitAnimation(self.handle, animation)
|
|
902
|
+
end
|
|
903
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
904
|
+
local firstWeapon = self.firstWeapon
|
|
905
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
906
|
+
return firstWeapon
|
|
907
|
+
end
|
|
908
|
+
local secondWeapon = self.secondWeapon
|
|
909
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(self, secondWeapon.allowedTargetCombatClassifications) then
|
|
910
|
+
return secondWeapon
|
|
911
|
+
end
|
|
912
|
+
return nil
|
|
800
913
|
end
|
|
801
914
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
-
self[
|
|
915
|
+
self[104] = (self[104] or 0) + 1
|
|
803
916
|
Timer:run(delayHealthChecksCallback, self)
|
|
804
917
|
end
|
|
805
918
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -809,21 +922,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
922
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
923
|
end
|
|
811
924
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
925
|
+
SetUnitExploded(self.handle, true)
|
|
813
926
|
killUnit(self.handle)
|
|
814
927
|
end
|
|
815
928
|
function Unit.prototype.kill(self)
|
|
816
929
|
killUnit(self.handle)
|
|
817
930
|
end
|
|
818
931
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
932
|
+
local ____ReviveHero_7 = ReviveHero
|
|
933
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
934
|
+
local ____doEffect_5 = doEffect
|
|
935
|
+
if ____doEffect_5 == nil then
|
|
936
|
+
____doEffect_5 = false
|
|
824
937
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
938
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
939
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
827
940
|
end
|
|
828
941
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
942
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -863,20 +976,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
863
976
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
864
977
|
end
|
|
865
978
|
function Unit.prototype.itemInSlot(self, slot)
|
|
866
|
-
return Item:of(
|
|
979
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
867
980
|
end
|
|
868
981
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
982
|
+
local ability = UnitAbility:of(
|
|
983
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
984
|
+
abilityId,
|
|
985
|
+
self
|
|
986
|
+
)
|
|
987
|
+
if ability ~= nil then
|
|
875
988
|
local abilities = self.abilities
|
|
876
989
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
990
|
end
|
|
879
|
-
return
|
|
991
|
+
return ability
|
|
880
992
|
end
|
|
881
993
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
994
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +1002,24 @@ end
|
|
|
890
1002
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
1003
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
1004
|
end
|
|
893
|
-
function Unit.prototype.
|
|
894
|
-
local
|
|
895
|
-
|
|
896
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
897
|
-
return nil
|
|
898
|
-
end
|
|
899
|
-
return UnitAbility:of(
|
|
900
|
-
getUnitAbility(self.handle, abilityId),
|
|
901
|
-
abilityId,
|
|
902
|
-
self
|
|
903
|
-
)
|
|
1005
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
1006
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
1007
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
1008
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
1009
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
1010
|
+
local abilities = self.abilities
|
|
1011
|
+
for i = 1, #abilities do
|
|
1012
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1013
|
+
local ability = abilities[i]
|
|
1014
|
+
tremove(abilities, i)
|
|
1015
|
+
if ability.state == 2 then
|
|
1016
|
+
break
|
|
913
1017
|
end
|
|
1018
|
+
ability:destroy()
|
|
1019
|
+
return true
|
|
914
1020
|
end
|
|
915
|
-
return true
|
|
916
1021
|
end
|
|
917
|
-
return
|
|
1022
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
1023
|
end
|
|
919
1024
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
1025
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,9 +1033,6 @@ end
|
|
|
928
1033
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
1034
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
1035
|
end
|
|
931
|
-
function Unit.prototype.interruptAttack(self)
|
|
932
|
-
unitInterruptAttack(self.handle)
|
|
933
|
-
end
|
|
934
1036
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
935
1037
|
local handle = self.handle
|
|
936
1038
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1001,18 +1103,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1001
1103
|
end
|
|
1002
1104
|
function Unit.prototype.incrementStunCounter(self)
|
|
1003
1105
|
local stunCounter = self[102] or 0
|
|
1004
|
-
if not self[101] or stunCounter >= 0 then
|
|
1106
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1005
1107
|
BlzPauseUnitEx(self.handle, true)
|
|
1006
1108
|
end
|
|
1007
1109
|
self[102] = stunCounter + 1
|
|
1008
1110
|
end
|
|
1009
1111
|
function Unit.prototype.decrementStunCounter(self)
|
|
1010
1112
|
local stunCounter = self[102] or 0
|
|
1011
|
-
if not self[101] or stunCounter >= 1 then
|
|
1113
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1012
1114
|
BlzPauseUnitEx(self.handle, false)
|
|
1013
1115
|
end
|
|
1014
1116
|
self[102] = stunCounter - 1
|
|
1015
1117
|
end
|
|
1118
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1119
|
+
local forceStunCounter = self[103] or 0
|
|
1120
|
+
if forceStunCounter == 0 then
|
|
1121
|
+
local handle = self.handle
|
|
1122
|
+
if not self[101] then
|
|
1123
|
+
for _ = self[102] or 0, -1 do
|
|
1124
|
+
BlzPauseUnitEx(handle, true)
|
|
1125
|
+
end
|
|
1126
|
+
end
|
|
1127
|
+
BlzPauseUnitEx(handle, true)
|
|
1128
|
+
end
|
|
1129
|
+
self[103] = forceStunCounter + 1
|
|
1130
|
+
end
|
|
1131
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1132
|
+
local forceStunCounter = self[103] or 0
|
|
1133
|
+
if forceStunCounter == 1 then
|
|
1134
|
+
local handle = self.handle
|
|
1135
|
+
if not self[101] then
|
|
1136
|
+
for _ = self[102] or 0, -1 do
|
|
1137
|
+
BlzPauseUnitEx(handle, false)
|
|
1138
|
+
end
|
|
1139
|
+
end
|
|
1140
|
+
BlzPauseUnitEx(handle, false)
|
|
1141
|
+
end
|
|
1142
|
+
self[103] = forceStunCounter - 1
|
|
1143
|
+
end
|
|
1016
1144
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1017
1145
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1018
1146
|
owner.handle,
|
|
@@ -1201,7 +1329,7 @@ __TS__SetDescriptor(
|
|
|
1201
1329
|
Unit.prototype,
|
|
1202
1330
|
"isIllusion",
|
|
1203
1331
|
{get = function(self)
|
|
1204
|
-
return
|
|
1332
|
+
return IsUnitIllusion(self.handle)
|
|
1205
1333
|
end},
|
|
1206
1334
|
true
|
|
1207
1335
|
)
|
|
@@ -1209,7 +1337,7 @@ __TS__SetDescriptor(
|
|
|
1209
1337
|
Unit.prototype,
|
|
1210
1338
|
"isStunned",
|
|
1211
1339
|
{get = function(self)
|
|
1212
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1340
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1213
1341
|
end},
|
|
1214
1342
|
true
|
|
1215
1343
|
)
|
|
@@ -1288,13 +1416,13 @@ __TS__SetDescriptor(
|
|
|
1288
1416
|
)
|
|
1289
1417
|
__TS__SetDescriptor(
|
|
1290
1418
|
Unit.prototype,
|
|
1291
|
-
"
|
|
1419
|
+
"primaryAttribute",
|
|
1292
1420
|
{
|
|
1293
1421
|
get = function(self)
|
|
1294
|
-
return
|
|
1422
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1295
1423
|
end,
|
|
1296
|
-
set = function(self,
|
|
1297
|
-
|
|
1424
|
+
set = function(self, primaryAttribute)
|
|
1425
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1298
1426
|
end
|
|
1299
1427
|
},
|
|
1300
1428
|
true
|
|
@@ -1316,19 +1444,6 @@ __TS__SetDescriptor(
|
|
|
1316
1444
|
end},
|
|
1317
1445
|
true
|
|
1318
1446
|
)
|
|
1319
|
-
__TS__SetDescriptor(
|
|
1320
|
-
Unit.prototype,
|
|
1321
|
-
"agilityBase",
|
|
1322
|
-
{
|
|
1323
|
-
get = function(self)
|
|
1324
|
-
return getHeroAgi(self.handle, false)
|
|
1325
|
-
end,
|
|
1326
|
-
set = function(self, agilityBase)
|
|
1327
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1328
|
-
end
|
|
1329
|
-
},
|
|
1330
|
-
true
|
|
1331
|
-
)
|
|
1332
1447
|
__TS__SetDescriptor(
|
|
1333
1448
|
Unit.prototype,
|
|
1334
1449
|
"agilityBonus",
|
|
@@ -1346,19 +1461,6 @@ __TS__SetDescriptor(
|
|
|
1346
1461
|
end},
|
|
1347
1462
|
true
|
|
1348
1463
|
)
|
|
1349
|
-
__TS__SetDescriptor(
|
|
1350
|
-
Unit.prototype,
|
|
1351
|
-
"intelligenceBase",
|
|
1352
|
-
{
|
|
1353
|
-
get = function(self)
|
|
1354
|
-
return getHeroInt(self.handle, false)
|
|
1355
|
-
end,
|
|
1356
|
-
set = function(self, intelligenceBase)
|
|
1357
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1358
|
-
end
|
|
1359
|
-
},
|
|
1360
|
-
true
|
|
1361
|
-
)
|
|
1362
1464
|
__TS__SetDescriptor(
|
|
1363
1465
|
Unit.prototype,
|
|
1364
1466
|
"intelligenceBonus",
|
|
@@ -1407,17 +1509,17 @@ __TS__SetDescriptor(
|
|
|
1407
1509
|
"isTeamGlowVisible",
|
|
1408
1510
|
{
|
|
1409
1511
|
get = function(self)
|
|
1410
|
-
return not self[
|
|
1512
|
+
return not self[107]
|
|
1411
1513
|
end,
|
|
1412
1514
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1414
|
-
local
|
|
1515
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1516
|
+
local ____temp_8
|
|
1415
1517
|
if not isTeamGlowVisible then
|
|
1416
|
-
|
|
1518
|
+
____temp_8 = true
|
|
1417
1519
|
else
|
|
1418
|
-
|
|
1520
|
+
____temp_8 = nil
|
|
1419
1521
|
end
|
|
1420
|
-
self[
|
|
1522
|
+
self[107] = ____temp_8
|
|
1421
1523
|
end
|
|
1422
1524
|
},
|
|
1423
1525
|
true
|
|
@@ -1426,9 +1528,9 @@ __TS__SetDescriptor(
|
|
|
1426
1528
|
Unit.prototype,
|
|
1427
1529
|
"color",
|
|
1428
1530
|
{set = function(self, color)
|
|
1429
|
-
|
|
1430
|
-
if self[
|
|
1431
|
-
|
|
1531
|
+
SetUnitColor(self.handle, color.handle)
|
|
1532
|
+
if self[107] then
|
|
1533
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1534
|
end
|
|
1433
1535
|
end},
|
|
1434
1536
|
true
|
|
@@ -1451,14 +1553,14 @@ __TS__SetDescriptor(
|
|
|
1451
1553
|
"maxHealth",
|
|
1452
1554
|
{
|
|
1453
1555
|
get = function(self)
|
|
1454
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1556
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1455
1557
|
end,
|
|
1456
1558
|
set = function(self, maxHealth)
|
|
1457
|
-
if maxHealth < 1 and self[
|
|
1458
|
-
self[
|
|
1559
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1560
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1459
1561
|
maxHealth = 1
|
|
1460
1562
|
end
|
|
1461
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1563
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1462
1564
|
end
|
|
1463
1565
|
},
|
|
1464
1566
|
true
|
|
@@ -1500,10 +1602,10 @@ __TS__SetDescriptor(
|
|
|
1500
1602
|
"health",
|
|
1501
1603
|
{
|
|
1502
1604
|
get = function(self)
|
|
1503
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1605
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1504
1606
|
end,
|
|
1505
1607
|
set = function(self, health)
|
|
1506
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1608
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1507
1609
|
end
|
|
1508
1610
|
},
|
|
1509
1611
|
true
|
|
@@ -1579,25 +1681,12 @@ __TS__SetDescriptor(
|
|
|
1579
1681
|
},
|
|
1580
1682
|
true
|
|
1581
1683
|
)
|
|
1582
|
-
__TS__SetDescriptor(
|
|
1583
|
-
Unit.prototype,
|
|
1584
|
-
"flyHeight",
|
|
1585
|
-
{
|
|
1586
|
-
get = function(self)
|
|
1587
|
-
return getUnitFlyHeight(self.handle)
|
|
1588
|
-
end,
|
|
1589
|
-
set = function(self, v)
|
|
1590
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1591
|
-
end
|
|
1592
|
-
},
|
|
1593
|
-
true
|
|
1594
|
-
)
|
|
1595
1684
|
__TS__SetDescriptor(
|
|
1596
1685
|
Unit.prototype,
|
|
1597
1686
|
"x",
|
|
1598
1687
|
{
|
|
1599
1688
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1689
|
+
return self[108] or getUnitX(self.handle)
|
|
1601
1690
|
end,
|
|
1602
1691
|
set = function(self, v)
|
|
1603
1692
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1699,7 @@ __TS__SetDescriptor(
|
|
|
1610
1699
|
"y",
|
|
1611
1700
|
{
|
|
1612
1701
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1702
|
+
return self[109] or getUnitY(self.handle)
|
|
1614
1703
|
end,
|
|
1615
1704
|
set = function(self, v)
|
|
1616
1705
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1785,10 @@ __TS__SetDescriptor(
|
|
|
1696
1785
|
"gold",
|
|
1697
1786
|
{
|
|
1698
1787
|
get = function(self)
|
|
1699
|
-
return
|
|
1788
|
+
return GetResourceAmount(self.handle)
|
|
1700
1789
|
end,
|
|
1701
1790
|
set = function(self, gold)
|
|
1702
|
-
|
|
1791
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1792
|
end
|
|
1704
1793
|
},
|
|
1705
1794
|
true
|
|
@@ -1715,14 +1804,18 @@ __TS__SetDescriptor(
|
|
|
1715
1804
|
local handle = self.handle
|
|
1716
1805
|
if isPaused and not IsUnitPaused(handle) then
|
|
1717
1806
|
self[101] = true
|
|
1718
|
-
|
|
1719
|
-
|
|
1807
|
+
if (self[103] or 0) <= 0 then
|
|
1808
|
+
for _ = self[102] or 0, -1 do
|
|
1809
|
+
BlzPauseUnitEx(handle, true)
|
|
1810
|
+
end
|
|
1720
1811
|
end
|
|
1721
1812
|
PauseUnit(handle, true)
|
|
1722
1813
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1723
1814
|
PauseUnit(handle, false)
|
|
1724
|
-
|
|
1725
|
-
|
|
1815
|
+
if (self[103] or 0) <= 0 then
|
|
1816
|
+
for _ = self[102] or 0, -1 do
|
|
1817
|
+
BlzPauseUnitEx(handle, false)
|
|
1818
|
+
end
|
|
1726
1819
|
end
|
|
1727
1820
|
self[101] = nil
|
|
1728
1821
|
end
|
|
@@ -1780,20 +1873,6 @@ __TS__SetDescriptor(
|
|
|
1780
1873
|
},
|
|
1781
1874
|
true
|
|
1782
1875
|
)
|
|
1783
|
-
__TS__SetDescriptor(
|
|
1784
|
-
Unit.prototype,
|
|
1785
|
-
"scale",
|
|
1786
|
-
{
|
|
1787
|
-
get = function(self)
|
|
1788
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1789
|
-
end,
|
|
1790
|
-
set = function(self, v)
|
|
1791
|
-
setUnitScale(self.handle, v, v, v)
|
|
1792
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1793
|
-
end
|
|
1794
|
-
},
|
|
1795
|
-
true
|
|
1796
|
-
)
|
|
1797
1876
|
__TS__SetDescriptor(
|
|
1798
1877
|
Unit.prototype,
|
|
1799
1878
|
"timeScale",
|
|
@@ -1820,13 +1899,26 @@ __TS__SetDescriptor(
|
|
|
1820
1899
|
Unit.prototype,
|
|
1821
1900
|
"pathingCollisionRange",
|
|
1822
1901
|
{get = function(self)
|
|
1823
|
-
return 16 * (min(
|
|
1902
|
+
return 16 * (math.min(
|
|
1824
1903
|
getUnitCollisionSize(self.handle) // 16,
|
|
1825
1904
|
3
|
|
1826
1905
|
) + 1)
|
|
1827
1906
|
end},
|
|
1828
1907
|
true
|
|
1829
1908
|
)
|
|
1909
|
+
__TS__SetDescriptor(
|
|
1910
|
+
Unit.prototype,
|
|
1911
|
+
"movementType",
|
|
1912
|
+
{
|
|
1913
|
+
get = function(self)
|
|
1914
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1915
|
+
end,
|
|
1916
|
+
set = function(self, movementType)
|
|
1917
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1918
|
+
end
|
|
1919
|
+
},
|
|
1920
|
+
true
|
|
1921
|
+
)
|
|
1830
1922
|
__TS__SetDescriptor(
|
|
1831
1923
|
Unit.prototype,
|
|
1832
1924
|
"pathing",
|
|
@@ -1917,30 +2009,6 @@ __TS__SetDescriptor(
|
|
|
1917
2009
|
end},
|
|
1918
2010
|
true
|
|
1919
2011
|
)
|
|
1920
|
-
__TS__SetDescriptor(
|
|
1921
|
-
Unit.prototype,
|
|
1922
|
-
"onUnitInRange",
|
|
1923
|
-
{get = function(self)
|
|
1924
|
-
local handle = self.handle
|
|
1925
|
-
local onUnitInRange = setmetatable(
|
|
1926
|
-
{},
|
|
1927
|
-
{__index = function(self, value)
|
|
1928
|
-
local event = __TS__New(
|
|
1929
|
-
TriggerEvent,
|
|
1930
|
-
function(trigger)
|
|
1931
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1932
|
-
end,
|
|
1933
|
-
function() return ____exports.Unit:of(handle) end
|
|
1934
|
-
)
|
|
1935
|
-
rawset(self, value, event)
|
|
1936
|
-
return event
|
|
1937
|
-
end}
|
|
1938
|
-
)
|
|
1939
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1940
|
-
return onUnitInRange
|
|
1941
|
-
end},
|
|
1942
|
-
true
|
|
1943
|
-
)
|
|
1944
2012
|
__TS__SetDescriptor(
|
|
1945
2013
|
Unit.prototype,
|
|
1946
2014
|
"onManaEqual",
|
|
@@ -2008,6 +2076,14 @@ __TS__SetDescriptor(
|
|
|
2008
2076
|
end},
|
|
2009
2077
|
true
|
|
2010
2078
|
)
|
|
2079
|
+
__TS__SetDescriptor(
|
|
2080
|
+
Unit.prototype,
|
|
2081
|
+
"targetAcquiredEvent",
|
|
2082
|
+
{get = function(self)
|
|
2083
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2084
|
+
end},
|
|
2085
|
+
true
|
|
2086
|
+
)
|
|
2011
2087
|
__TS__SetDescriptor(
|
|
2012
2088
|
Unit.prototype,
|
|
2013
2089
|
"onSelect",
|
|
@@ -2068,6 +2144,11 @@ __TS__SetDescriptor(
|
|
|
2068
2144
|
end},
|
|
2069
2145
|
true
|
|
2070
2146
|
)
|
|
2147
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2148
|
+
____exports.UnitTriggerEvent,
|
|
2149
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2150
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2151
|
+
)
|
|
2071
2152
|
Unit.deathEvent = __TS__New(
|
|
2072
2153
|
____exports.UnitTriggerEvent,
|
|
2073
2154
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2085,7 +2166,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2085
2166
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2086
2167
|
dead[unit] = true
|
|
2087
2168
|
end)
|
|
2088
|
-
____exports.Unit.onImmediateOrder[
|
|
2169
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2089
2170
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2090
2171
|
dead[unit] = false
|
|
2091
2172
|
invoke(event, unit)
|
|
@@ -2102,7 +2183,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2102
2183
|
invoke(event, unit)
|
|
2103
2184
|
end
|
|
2104
2185
|
end
|
|
2105
|
-
____exports.Unit.onImmediateOrder[
|
|
2186
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2106
2187
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2107
2188
|
Timer:run(ifNotLeft, unit)
|
|
2108
2189
|
end
|
|
@@ -2143,25 +2224,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2143
2224
|
InitializingEvent,
|
|
2144
2225
|
function(event)
|
|
2145
2226
|
local function listener(unit, id)
|
|
2146
|
-
local
|
|
2227
|
+
local ____GetSpellTargetUnit_result_11
|
|
2147
2228
|
if GetSpellTargetUnit() then
|
|
2148
|
-
|
|
2229
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2149
2230
|
else
|
|
2150
|
-
local
|
|
2231
|
+
local ____GetSpellTargetItem_result_10
|
|
2151
2232
|
if GetSpellTargetItem() then
|
|
2152
|
-
|
|
2233
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2153
2234
|
else
|
|
2154
|
-
local
|
|
2235
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2155
2236
|
if GetSpellTargetDestructable() then
|
|
2156
|
-
|
|
2237
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2157
2238
|
else
|
|
2158
|
-
|
|
2239
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2159
2240
|
end
|
|
2160
|
-
|
|
2241
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2161
2242
|
end
|
|
2162
|
-
|
|
2243
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2163
2244
|
end
|
|
2164
|
-
local target =
|
|
2245
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2165
2246
|
if target then
|
|
2166
2247
|
invoke(event, unit, id, target)
|
|
2167
2248
|
end
|
|
@@ -2369,38 +2450,57 @@ Unit.onDamaging = (function()
|
|
|
2369
2450
|
if source and source.typeId == dummyUnitId then
|
|
2370
2451
|
source = nil
|
|
2371
2452
|
end
|
|
2372
|
-
local target = BlzGetEventDamageTarget()
|
|
2453
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2454
|
+
local metadata = damageMetadataByTarget[target]
|
|
2455
|
+
damageMetadataByTarget[target] = nil
|
|
2373
2456
|
local data = {
|
|
2374
2457
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2458
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2459
|
damageType = BlzGetEventDamageType(),
|
|
2377
2460
|
weaponType = BlzGetEventWeaponType(),
|
|
2378
|
-
|
|
2461
|
+
metadata = metadata,
|
|
2462
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2463
|
+
originalAmount = GetEventDamage(),
|
|
2464
|
+
originalMetadata = metadata,
|
|
2465
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2379
2466
|
}
|
|
2380
2467
|
if data.isAttack and source then
|
|
2381
|
-
|
|
2382
|
-
if weapon == -1 then
|
|
2383
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2384
|
-
weapon = 0
|
|
2385
|
-
end
|
|
2386
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2468
|
+
data.weapon = source:chooseWeapon(target)
|
|
2387
2469
|
end
|
|
2388
2470
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2389
2471
|
invoke(
|
|
2390
2472
|
event,
|
|
2391
2473
|
source,
|
|
2392
|
-
|
|
2474
|
+
target,
|
|
2393
2475
|
setmetatable(
|
|
2394
2476
|
{},
|
|
2395
2477
|
{
|
|
2396
2478
|
__index = data,
|
|
2397
2479
|
__newindex = function(self, key, value)
|
|
2398
|
-
damageSetters[key]
|
|
2480
|
+
local damageSetter = damageSetters[key]
|
|
2481
|
+
if damageSetter ~= nil then
|
|
2482
|
+
damageSetter(value)
|
|
2483
|
+
end
|
|
2399
2484
|
data[key] = value
|
|
2400
2485
|
end
|
|
2401
2486
|
}
|
|
2402
2487
|
)
|
|
2403
2488
|
)
|
|
2489
|
+
if data[0] and source then
|
|
2490
|
+
local sourceOwner = source.owner.handle
|
|
2491
|
+
data[1] = sourceOwner
|
|
2492
|
+
local targetOwner = target.owner.handle
|
|
2493
|
+
data[2] = targetOwner
|
|
2494
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2495
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2496
|
+
data[3] = true
|
|
2497
|
+
end
|
|
2498
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2499
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2500
|
+
data[4] = true
|
|
2501
|
+
end
|
|
2502
|
+
end
|
|
2503
|
+
damagingEventByTarget[target] = data
|
|
2404
2504
|
return
|
|
2405
2505
|
end
|
|
2406
2506
|
BlzSetEventDamage(0)
|
|
@@ -2408,7 +2508,7 @@ Unit.onDamaging = (function()
|
|
|
2408
2508
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2409
2509
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2410
2510
|
local sourceOwner = source.owner.handle
|
|
2411
|
-
local targetOwner =
|
|
2511
|
+
local targetOwner = target.owner.handle
|
|
2412
2512
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2413
2513
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2414
2514
|
Timer:run(function()
|
|
@@ -2424,23 +2524,19 @@ Unit.onDamaging = (function()
|
|
|
2424
2524
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2425
2525
|
local condition = ____value[1]
|
|
2426
2526
|
local action = ____value[2]
|
|
2427
|
-
if condition(
|
|
2428
|
-
source,
|
|
2429
|
-
____exports.Unit:of(target),
|
|
2430
|
-
data
|
|
2431
|
-
) then
|
|
2527
|
+
if condition(source, target, data) then
|
|
2432
2528
|
action(
|
|
2433
2529
|
source,
|
|
2434
|
-
|
|
2530
|
+
target,
|
|
2435
2531
|
setmetatable(
|
|
2436
2532
|
{fire = function()
|
|
2437
2533
|
UnitDamageTarget(
|
|
2438
2534
|
source.handle,
|
|
2439
|
-
target,
|
|
2535
|
+
target.handle,
|
|
2440
2536
|
data.amount,
|
|
2441
2537
|
true,
|
|
2442
2538
|
true,
|
|
2443
|
-
data.attackType,
|
|
2539
|
+
attackTypeToNative(data.attackType),
|
|
2444
2540
|
data.damageType,
|
|
2445
2541
|
data.weaponType
|
|
2446
2542
|
)
|
|
@@ -2467,30 +2563,54 @@ Unit.onDamage = __TS__New(
|
|
|
2467
2563
|
if source and source.typeId == dummyUnitId then
|
|
2468
2564
|
source = nil
|
|
2469
2565
|
end
|
|
2566
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2567
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2568
|
+
damagingEventByTarget[target] = nil
|
|
2470
2569
|
local data = {
|
|
2471
2570
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2571
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2572
|
damageType = BlzGetEventDamageType(),
|
|
2474
2573
|
weaponType = BlzGetEventWeaponType(),
|
|
2574
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2475
2575
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
-
originalAmount = GetEventDamage(),
|
|
2576
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2577
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2477
2578
|
preventDeath = damageEventPreventDeath
|
|
2478
2579
|
}
|
|
2580
|
+
if damagingEvent then
|
|
2581
|
+
for key, value in pairs(damagingEvent) do
|
|
2582
|
+
if isAttribute(key) then
|
|
2583
|
+
data[key] = value
|
|
2584
|
+
end
|
|
2585
|
+
end
|
|
2586
|
+
local sourceOwner = damagingEvent[1]
|
|
2587
|
+
if sourceOwner then
|
|
2588
|
+
local targetOwner = damagingEvent[2]
|
|
2589
|
+
if damagingEvent[3] then
|
|
2590
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2591
|
+
end
|
|
2592
|
+
if damagingEvent[4] then
|
|
2593
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2594
|
+
end
|
|
2595
|
+
end
|
|
2596
|
+
end
|
|
2479
2597
|
local evData = setmetatable(
|
|
2480
2598
|
{},
|
|
2481
2599
|
{
|
|
2482
2600
|
__index = data,
|
|
2483
2601
|
__newindex = function(self, key, value)
|
|
2484
|
-
damageSetters[key]
|
|
2602
|
+
local damageSetter = damageSetters[key]
|
|
2603
|
+
if damageSetter ~= nil then
|
|
2604
|
+
damageSetter(value)
|
|
2605
|
+
end
|
|
2485
2606
|
data[key] = value
|
|
2486
2607
|
end
|
|
2487
2608
|
}
|
|
2488
2609
|
)
|
|
2489
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2490
2610
|
invoke(event, source, target, evData)
|
|
2491
2611
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2492
2612
|
local bonusHealth = math.ceil(evData.amount)
|
|
2493
|
-
target[
|
|
2613
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2494
2614
|
BlzSetUnitMaxHP(
|
|
2495
2615
|
target.handle,
|
|
2496
2616
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2504,7 +2624,7 @@ Unit.onDamage = __TS__New(
|
|
|
2504
2624
|
evData[0],
|
|
2505
2625
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2506
2626
|
)
|
|
2507
|
-
target[
|
|
2627
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2508
2628
|
SetWidgetLife(
|
|
2509
2629
|
target.handle,
|
|
2510
2630
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2530,7 +2650,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2530
2650
|
function()
|
|
2531
2651
|
local unit = getTriggerUnit()
|
|
2532
2652
|
local item = getManipulatedItem()
|
|
2533
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2653
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2534
2654
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2535
2655
|
end
|
|
2536
2656
|
return IgnoreEvent
|
|
@@ -2540,10 +2660,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2540
2660
|
____exports.UnitTriggerEvent,
|
|
2541
2661
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2542
2662
|
function()
|
|
2543
|
-
local
|
|
2544
|
-
local
|
|
2545
|
-
if getUnitTypeId(
|
|
2546
|
-
|
|
2663
|
+
local unitHandle = getTriggerUnit()
|
|
2664
|
+
local itemHandle = getManipulatedItem()
|
|
2665
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2666
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2667
|
+
local item = Item:of(itemHandle)
|
|
2668
|
+
if ownerByItem[item] ~= unit then
|
|
2669
|
+
return unit, item
|
|
2670
|
+
end
|
|
2547
2671
|
end
|
|
2548
2672
|
return IgnoreEvent
|
|
2549
2673
|
end
|
|
@@ -2554,59 +2678,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2678
|
function()
|
|
2555
2679
|
local unit = getTriggerUnit()
|
|
2556
2680
|
local item = getManipulatedItem()
|
|
2557
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2681
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2558
2682
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
2683
|
end
|
|
2560
2684
|
return IgnoreEvent
|
|
2561
2685
|
end
|
|
2562
2686
|
)
|
|
2563
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2564
|
-
____exports.UnitTriggerEvent,
|
|
2565
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2567
|
-
)
|
|
2568
2687
|
__TS__ObjectDefineProperty(
|
|
2569
2688
|
Unit,
|
|
2570
|
-
"
|
|
2689
|
+
"itemChargesChangedEvent",
|
|
2571
2690
|
{get = function(self)
|
|
2572
2691
|
local event = __TS__New(Event)
|
|
2573
|
-
|
|
2574
|
-
local
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
if item ~= nil then
|
|
2578
|
-
invoke(event, unit, item)
|
|
2579
|
-
end
|
|
2692
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2693
|
+
local unit = item.owner
|
|
2694
|
+
if unit ~= nil then
|
|
2695
|
+
invoke(event, unit, item)
|
|
2580
2696
|
end
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2584
|
-
end
|
|
2585
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2586
|
-
return event
|
|
2587
|
-
end}
|
|
2588
|
-
)
|
|
2589
|
-
__TS__ObjectDefineProperty(
|
|
2590
|
-
Unit,
|
|
2591
|
-
"itemMoveOrderEvent",
|
|
2592
|
-
{get = function(self)
|
|
2593
|
-
local event = __TS__New(Event)
|
|
2594
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2595
|
-
local slotTo = order - orderId("moveslot0")
|
|
2596
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2597
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2598
|
-
if slotFrom ~= nil then
|
|
2599
|
-
invoke(
|
|
2600
|
-
event,
|
|
2601
|
-
unit,
|
|
2602
|
-
item,
|
|
2603
|
-
slotFrom,
|
|
2604
|
-
slotTo
|
|
2605
|
-
)
|
|
2606
|
-
end
|
|
2607
|
-
end)
|
|
2608
|
-
end
|
|
2609
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2697
|
+
end)
|
|
2698
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2610
2699
|
return event
|
|
2611
2700
|
end}
|
|
2612
2701
|
)
|
|
@@ -2635,6 +2724,10 @@ __TS__ObjectDefineProperty(
|
|
|
2635
2724
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2636
2725
|
return destroyEvent
|
|
2637
2726
|
end}
|
|
2727
|
+
)
|
|
2728
|
+
Unit.synchronize = synchronizer(
|
|
2729
|
+
function(unit) return unit.syncId end,
|
|
2730
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2638
2731
|
);
|
|
2639
2732
|
(function(self)
|
|
2640
2733
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2652,11 +2745,7 @@ __TS__ObjectDefineProperty(
|
|
|
2652
2745
|
function(____, id) return fourCC(id) end
|
|
2653
2746
|
)
|
|
2654
2747
|
end)
|
|
2655
|
-
for ____, leaveOrderId in ipairs({
|
|
2656
|
-
orderId("undefend"),
|
|
2657
|
-
orderId("magicundefense"),
|
|
2658
|
-
orderId("unimmolation")
|
|
2659
|
-
}) do
|
|
2748
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2660
2749
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2661
2750
|
local handle = unit.handle
|
|
2662
2751
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2664,7 +2753,8 @@ __TS__ObjectDefineProperty(
|
|
|
2664
2753
|
return
|
|
2665
2754
|
end
|
|
2666
2755
|
end
|
|
2667
|
-
unit:
|
|
2756
|
+
unit:saveData()
|
|
2757
|
+
Timer:run(unit, "destroy")
|
|
2668
2758
|
end)
|
|
2669
2759
|
end
|
|
2670
2760
|
end)(Unit)
|