warscript 0.0.1-dev.363d29d → 0.0.1-dev.37ce2c3
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/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 +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 -5
- package/engine/behaviour/ability.lua +156 -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 +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 +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.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +57 -14
- 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.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+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 +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +45 -34
- package/engine/internal/unit.lua +408 -322
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- 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/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 +48 -21
- package/engine/object-data/entry/ability-type.lua +371 -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 +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/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 +11 -1
- package/engine/unit.lua +11 -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 -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,39 +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
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
80
86
|
local createUnit = CreateUnit
|
|
81
87
|
local killUnit = KillUnit
|
|
82
|
-
local setUnitExploded = SetUnitExploded
|
|
83
88
|
local removeUnit = RemoveUnit
|
|
84
89
|
local getUnitTypeId = GetUnitTypeId
|
|
85
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -95,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
95
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
96
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
97
102
|
local isUnitInRange = IsUnitInRange
|
|
98
|
-
local setResourceAmount = SetResourceAmount
|
|
99
|
-
local getResourceAmount = GetResourceAmount
|
|
100
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
101
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
102
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
103
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
104
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
105
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
106
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
107
109
|
local isUnitInvisible = IsUnitInvisible
|
|
108
110
|
local isUnitVisible = IsUnitVisible
|
|
109
111
|
local getUnitX = GetUnitX
|
|
@@ -120,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
120
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
121
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
122
124
|
local unitAlive = UnitAlive
|
|
123
|
-
local unitAddType = UnitAddType
|
|
124
|
-
local unitRemoveType = UnitRemoveType
|
|
125
|
-
local isUnitIllusion = IsUnitIllusion
|
|
126
|
-
local isUnitType = IsUnitType
|
|
127
125
|
local isUnitAlly = IsUnitAlly
|
|
128
126
|
local isUnitEnemy = IsUnitEnemy
|
|
129
127
|
local getOwningPlayer = GetOwningPlayer
|
|
130
|
-
local setUnitColor = SetUnitColor
|
|
131
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
132
128
|
____exports.UnitClassification = {}
|
|
133
129
|
local UnitClassification = ____exports.UnitClassification
|
|
134
130
|
do
|
|
@@ -138,6 +134,7 @@ do
|
|
|
138
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
139
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
140
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
141
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
142
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
143
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -345,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
345
342
|
}
|
|
346
343
|
)
|
|
347
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
348
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
349
349
|
if self[0] ~= nil then
|
|
350
350
|
return
|
|
@@ -356,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
356
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
357
357
|
end
|
|
358
358
|
end
|
|
359
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
360
367
|
local jlimitopByOperator = {
|
|
361
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
362
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -374,15 +381,27 @@ local modifiers = {
|
|
|
374
381
|
end,
|
|
375
382
|
armor = function(unit, value)
|
|
376
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
377
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
378
389
|
end
|
|
379
|
-
local ability = assert(
|
|
380
|
-
|
|
381
|
-
ability,
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
386
405
|
end
|
|
387
406
|
}
|
|
388
407
|
local getters = {
|
|
@@ -400,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
400
419
|
self.unit = unit
|
|
401
420
|
self.index = index
|
|
402
421
|
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
403
435
|
__TS__SetDescriptor(
|
|
404
436
|
UnitWeapon.prototype,
|
|
405
437
|
"cooldown",
|
|
@@ -434,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
434
466
|
},
|
|
435
467
|
true
|
|
436
468
|
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
437
482
|
__TS__SetDescriptor(
|
|
438
483
|
UnitWeapon.prototype,
|
|
439
484
|
"damageBase",
|
|
@@ -545,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
545
590
|
},
|
|
546
591
|
true
|
|
547
592
|
)
|
|
548
|
-
local unitInventorySize = UnitInventorySize
|
|
549
|
-
local unitItemInSlot = UnitItemInSlot
|
|
550
593
|
local getItemAbility = BlzGetItemAbility
|
|
551
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
552
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -564,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
564
607
|
____exports.Unit:of(unit)
|
|
565
608
|
)
|
|
566
609
|
end
|
|
567
|
-
for i = 0,
|
|
568
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
569
612
|
if getItemAbility(item, abilityId) == ability then
|
|
570
613
|
return ItemAbility:of(
|
|
571
614
|
ability,
|
|
@@ -610,26 +653,30 @@ local fieldSetters = {
|
|
|
610
653
|
}
|
|
611
654
|
local dummies = {}
|
|
612
655
|
for ____, player in ipairs(Player.all) do
|
|
613
|
-
local dummy = assert(
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
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
|
+
)
|
|
620
667
|
ShowUnit(dummy, false)
|
|
621
668
|
dummies[player] = dummy
|
|
622
669
|
end
|
|
623
670
|
local function delayHealthChecksCallback(unit)
|
|
624
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
625
672
|
if counter ~= 0 then
|
|
626
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
627
674
|
return
|
|
628
675
|
end
|
|
629
|
-
unit[
|
|
630
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
631
678
|
if healthBonus ~= nil then
|
|
632
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
633
680
|
local handle = unit.handle
|
|
634
681
|
BlzSetUnitMaxHP(
|
|
635
682
|
handle,
|
|
@@ -638,50 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
638
685
|
end
|
|
639
686
|
end
|
|
640
687
|
local nextSyncId = 1
|
|
641
|
-
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
|
|
642
699
|
____exports.Unit = __TS__Class()
|
|
643
700
|
local Unit = ____exports.Unit
|
|
644
701
|
Unit.name = "Unit"
|
|
645
702
|
__TS__ClassExtends(Unit, Handle)
|
|
646
703
|
function Unit.prototype.____constructor(self, handle)
|
|
647
704
|
Handle.prototype.____constructor(self, handle)
|
|
648
|
-
local
|
|
649
|
-
nextSyncId =
|
|
650
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
651
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
652
|
-
assert(
|
|
653
|
-
|
|
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
|
+
)
|
|
654
719
|
if unitAddAbility(
|
|
655
720
|
handle,
|
|
656
721
|
fourCC("Amrf")
|
|
657
722
|
) then
|
|
658
|
-
assert(
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
662
731
|
end
|
|
663
732
|
unitBySyncId[self.syncId] = self
|
|
664
733
|
local ____ = self.abilities
|
|
665
734
|
end
|
|
666
|
-
function Unit.prototype.getEvent(self,
|
|
667
|
-
self.events = self.events or (
|
|
668
|
-
local eventId = GetHandleId(
|
|
669
|
-
|
|
670
|
-
|
|
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(
|
|
671
741
|
TriggerEvent,
|
|
672
742
|
function(trigger)
|
|
673
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
674
744
|
end,
|
|
675
745
|
collector or (function() return {} end)
|
|
676
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
677
748
|
end
|
|
678
|
-
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))
|
|
679
756
|
end
|
|
680
757
|
function Unit.prototype.onDestroy(self)
|
|
681
758
|
local handle = self.handle
|
|
682
|
-
|
|
683
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
684
|
-
end
|
|
759
|
+
self:saveData()
|
|
685
760
|
local abilities = self.abilities
|
|
686
761
|
for ____, ability in ipairs(abilities) do
|
|
687
762
|
ability:destroy()
|
|
@@ -699,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
699
774
|
end
|
|
700
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
701
776
|
if eventsToDestroy ~= nil then
|
|
702
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
703
780
|
end
|
|
704
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
705
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -717,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
717
794
|
self._attackHandlers = handlers
|
|
718
795
|
if #handlers == 1 then
|
|
719
796
|
local handle = self.handle
|
|
720
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
721
802
|
end
|
|
722
803
|
return handler
|
|
723
804
|
end
|
|
@@ -746,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
746
827
|
end}
|
|
747
828
|
end
|
|
748
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
749
|
-
local
|
|
750
|
-
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
|
|
751
832
|
end
|
|
752
833
|
function Unit.prototype.addClassification(self, classification)
|
|
753
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
754
835
|
end
|
|
755
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
756
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
757
838
|
end
|
|
758
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
759
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
760
841
|
end
|
|
761
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
762
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -765,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
765
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
766
847
|
end
|
|
767
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
768
|
-
local
|
|
849
|
+
local ____temp_4
|
|
769
850
|
if type(x) == "number" then
|
|
770
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
771
852
|
else
|
|
772
|
-
|
|
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
|
|
773
860
|
end
|
|
774
|
-
return
|
|
861
|
+
return ____temp_4
|
|
775
862
|
end
|
|
776
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
777
864
|
return isUnitAlly(
|
|
@@ -789,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
789
876
|
if type(animation) == "number" then
|
|
790
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
791
878
|
elseif rarity then
|
|
792
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
793
880
|
else
|
|
794
881
|
setUnitAnimation(self.handle, animation)
|
|
795
882
|
end
|
|
796
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
797
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
798
|
-
|
|
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
|
|
799
900
|
end
|
|
800
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
801
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
802
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
803
904
|
end
|
|
804
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -808,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
808
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
809
910
|
end
|
|
810
911
|
function Unit.prototype.explode(self)
|
|
811
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
812
913
|
killUnit(self.handle)
|
|
813
914
|
end
|
|
814
915
|
function Unit.prototype.kill(self)
|
|
815
916
|
killUnit(self.handle)
|
|
816
917
|
end
|
|
817
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
818
|
-
local
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
if
|
|
822
|
-
|
|
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
|
|
823
924
|
end
|
|
824
|
-
__TS__SparseArrayPush(
|
|
825
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
826
927
|
end
|
|
827
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
828
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -862,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
862
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
863
964
|
end
|
|
864
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
865
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
866
967
|
end
|
|
867
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
874
975
|
local abilities = self.abilities
|
|
875
976
|
abilities[#abilities + 1] = ability
|
|
876
|
-
return ability
|
|
877
977
|
end
|
|
878
|
-
return
|
|
978
|
+
return ability
|
|
879
979
|
end
|
|
880
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
881
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -889,31 +989,24 @@ end
|
|
|
889
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
890
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
891
991
|
end
|
|
892
|
-
function Unit.prototype.
|
|
893
|
-
local
|
|
894
|
-
|
|
895
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
896
|
-
return nil
|
|
897
|
-
end
|
|
898
|
-
return UnitAbility:of(
|
|
899
|
-
getUnitAbility(self.handle, abilityId),
|
|
900
|
-
abilityId,
|
|
901
|
-
self
|
|
902
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
903
995
|
end
|
|
904
|
-
function Unit.prototype.removeAbility(self,
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
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
|
|
912
1004
|
end
|
|
1005
|
+
ability:destroy()
|
|
1006
|
+
return true
|
|
913
1007
|
end
|
|
914
|
-
return true
|
|
915
1008
|
end
|
|
916
|
-
return
|
|
1009
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
917
1010
|
end
|
|
918
1011
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
919
1012
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -927,9 +1020,6 @@ end
|
|
|
927
1020
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
928
1021
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
929
1022
|
end
|
|
930
|
-
function Unit.prototype.interruptAttack(self)
|
|
931
|
-
unitInterruptAttack(self.handle)
|
|
932
|
-
end
|
|
933
1023
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
934
1024
|
local handle = self.handle
|
|
935
1025
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1000,18 +1090,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1000
1090
|
end
|
|
1001
1091
|
function Unit.prototype.incrementStunCounter(self)
|
|
1002
1092
|
local stunCounter = self[102] or 0
|
|
1003
|
-
if not self[101] or stunCounter >= 0 then
|
|
1093
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1004
1094
|
BlzPauseUnitEx(self.handle, true)
|
|
1005
1095
|
end
|
|
1006
1096
|
self[102] = stunCounter + 1
|
|
1007
1097
|
end
|
|
1008
1098
|
function Unit.prototype.decrementStunCounter(self)
|
|
1009
1099
|
local stunCounter = self[102] or 0
|
|
1010
|
-
if not self[101] or stunCounter >= 1 then
|
|
1100
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1011
1101
|
BlzPauseUnitEx(self.handle, false)
|
|
1012
1102
|
end
|
|
1013
1103
|
self[102] = stunCounter - 1
|
|
1014
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
|
|
1015
1131
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1016
1132
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1017
1133
|
owner.handle,
|
|
@@ -1200,7 +1316,15 @@ __TS__SetDescriptor(
|
|
|
1200
1316
|
Unit.prototype,
|
|
1201
1317
|
"isIllusion",
|
|
1202
1318
|
{get = function(self)
|
|
1203
|
-
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
|
|
1204
1328
|
end},
|
|
1205
1329
|
true
|
|
1206
1330
|
)
|
|
@@ -1279,13 +1403,13 @@ __TS__SetDescriptor(
|
|
|
1279
1403
|
)
|
|
1280
1404
|
__TS__SetDescriptor(
|
|
1281
1405
|
Unit.prototype,
|
|
1282
|
-
"
|
|
1406
|
+
"primaryAttribute",
|
|
1283
1407
|
{
|
|
1284
1408
|
get = function(self)
|
|
1285
|
-
return
|
|
1409
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1286
1410
|
end,
|
|
1287
|
-
set = function(self,
|
|
1288
|
-
|
|
1411
|
+
set = function(self, primaryAttribute)
|
|
1412
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1289
1413
|
end
|
|
1290
1414
|
},
|
|
1291
1415
|
true
|
|
@@ -1307,19 +1431,6 @@ __TS__SetDescriptor(
|
|
|
1307
1431
|
end},
|
|
1308
1432
|
true
|
|
1309
1433
|
)
|
|
1310
|
-
__TS__SetDescriptor(
|
|
1311
|
-
Unit.prototype,
|
|
1312
|
-
"agilityBase",
|
|
1313
|
-
{
|
|
1314
|
-
get = function(self)
|
|
1315
|
-
return getHeroAgi(self.handle, false)
|
|
1316
|
-
end,
|
|
1317
|
-
set = function(self, agilityBase)
|
|
1318
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1319
|
-
end
|
|
1320
|
-
},
|
|
1321
|
-
true
|
|
1322
|
-
)
|
|
1323
1434
|
__TS__SetDescriptor(
|
|
1324
1435
|
Unit.prototype,
|
|
1325
1436
|
"agilityBonus",
|
|
@@ -1337,19 +1448,6 @@ __TS__SetDescriptor(
|
|
|
1337
1448
|
end},
|
|
1338
1449
|
true
|
|
1339
1450
|
)
|
|
1340
|
-
__TS__SetDescriptor(
|
|
1341
|
-
Unit.prototype,
|
|
1342
|
-
"intelligenceBase",
|
|
1343
|
-
{
|
|
1344
|
-
get = function(self)
|
|
1345
|
-
return getHeroInt(self.handle, false)
|
|
1346
|
-
end,
|
|
1347
|
-
set = function(self, intelligenceBase)
|
|
1348
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1349
|
-
end
|
|
1350
|
-
},
|
|
1351
|
-
true
|
|
1352
|
-
)
|
|
1353
1451
|
__TS__SetDescriptor(
|
|
1354
1452
|
Unit.prototype,
|
|
1355
1453
|
"intelligenceBonus",
|
|
@@ -1398,17 +1496,17 @@ __TS__SetDescriptor(
|
|
|
1398
1496
|
"isTeamGlowVisible",
|
|
1399
1497
|
{
|
|
1400
1498
|
get = function(self)
|
|
1401
|
-
return not self[
|
|
1499
|
+
return not self[107]
|
|
1402
1500
|
end,
|
|
1403
1501
|
set = function(self, isTeamGlowVisible)
|
|
1404
|
-
|
|
1405
|
-
local
|
|
1502
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1503
|
+
local ____temp_8
|
|
1406
1504
|
if not isTeamGlowVisible then
|
|
1407
|
-
|
|
1505
|
+
____temp_8 = true
|
|
1408
1506
|
else
|
|
1409
|
-
|
|
1507
|
+
____temp_8 = nil
|
|
1410
1508
|
end
|
|
1411
|
-
self[
|
|
1509
|
+
self[107] = ____temp_8
|
|
1412
1510
|
end
|
|
1413
1511
|
},
|
|
1414
1512
|
true
|
|
@@ -1417,9 +1515,9 @@ __TS__SetDescriptor(
|
|
|
1417
1515
|
Unit.prototype,
|
|
1418
1516
|
"color",
|
|
1419
1517
|
{set = function(self, color)
|
|
1420
|
-
|
|
1421
|
-
if self[
|
|
1422
|
-
|
|
1518
|
+
SetUnitColor(self.handle, color.handle)
|
|
1519
|
+
if self[107] then
|
|
1520
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1423
1521
|
end
|
|
1424
1522
|
end},
|
|
1425
1523
|
true
|
|
@@ -1442,14 +1540,14 @@ __TS__SetDescriptor(
|
|
|
1442
1540
|
"maxHealth",
|
|
1443
1541
|
{
|
|
1444
1542
|
get = function(self)
|
|
1445
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1543
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1446
1544
|
end,
|
|
1447
1545
|
set = function(self, maxHealth)
|
|
1448
|
-
if maxHealth < 1 and self[
|
|
1449
|
-
self[
|
|
1546
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1547
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1450
1548
|
maxHealth = 1
|
|
1451
1549
|
end
|
|
1452
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1550
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1453
1551
|
end
|
|
1454
1552
|
},
|
|
1455
1553
|
true
|
|
@@ -1491,10 +1589,10 @@ __TS__SetDescriptor(
|
|
|
1491
1589
|
"health",
|
|
1492
1590
|
{
|
|
1493
1591
|
get = function(self)
|
|
1494
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1592
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1495
1593
|
end,
|
|
1496
1594
|
set = function(self, health)
|
|
1497
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1595
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1498
1596
|
end
|
|
1499
1597
|
},
|
|
1500
1598
|
true
|
|
@@ -1570,25 +1668,12 @@ __TS__SetDescriptor(
|
|
|
1570
1668
|
},
|
|
1571
1669
|
true
|
|
1572
1670
|
)
|
|
1573
|
-
__TS__SetDescriptor(
|
|
1574
|
-
Unit.prototype,
|
|
1575
|
-
"flyHeight",
|
|
1576
|
-
{
|
|
1577
|
-
get = function(self)
|
|
1578
|
-
return getUnitFlyHeight(self.handle)
|
|
1579
|
-
end,
|
|
1580
|
-
set = function(self, v)
|
|
1581
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1582
|
-
end
|
|
1583
|
-
},
|
|
1584
|
-
true
|
|
1585
|
-
)
|
|
1586
1671
|
__TS__SetDescriptor(
|
|
1587
1672
|
Unit.prototype,
|
|
1588
1673
|
"x",
|
|
1589
1674
|
{
|
|
1590
1675
|
get = function(self)
|
|
1591
|
-
return getUnitX(self.handle)
|
|
1676
|
+
return self[108] or getUnitX(self.handle)
|
|
1592
1677
|
end,
|
|
1593
1678
|
set = function(self, v)
|
|
1594
1679
|
SetUnitX(self.handle, v)
|
|
@@ -1601,7 +1686,7 @@ __TS__SetDescriptor(
|
|
|
1601
1686
|
"y",
|
|
1602
1687
|
{
|
|
1603
1688
|
get = function(self)
|
|
1604
|
-
return getUnitY(self.handle)
|
|
1689
|
+
return self[109] or getUnitY(self.handle)
|
|
1605
1690
|
end,
|
|
1606
1691
|
set = function(self, v)
|
|
1607
1692
|
SetUnitY(self.handle, v)
|
|
@@ -1687,10 +1772,10 @@ __TS__SetDescriptor(
|
|
|
1687
1772
|
"gold",
|
|
1688
1773
|
{
|
|
1689
1774
|
get = function(self)
|
|
1690
|
-
return
|
|
1775
|
+
return GetResourceAmount(self.handle)
|
|
1691
1776
|
end,
|
|
1692
1777
|
set = function(self, gold)
|
|
1693
|
-
|
|
1778
|
+
SetResourceAmount(self.handle, gold)
|
|
1694
1779
|
end
|
|
1695
1780
|
},
|
|
1696
1781
|
true
|
|
@@ -1706,14 +1791,18 @@ __TS__SetDescriptor(
|
|
|
1706
1791
|
local handle = self.handle
|
|
1707
1792
|
if isPaused and not IsUnitPaused(handle) then
|
|
1708
1793
|
self[101] = true
|
|
1709
|
-
|
|
1710
|
-
|
|
1794
|
+
if (self[103] or 0) <= 0 then
|
|
1795
|
+
for _ = self[102] or 0, -1 do
|
|
1796
|
+
BlzPauseUnitEx(handle, true)
|
|
1797
|
+
end
|
|
1711
1798
|
end
|
|
1712
1799
|
PauseUnit(handle, true)
|
|
1713
1800
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1714
1801
|
PauseUnit(handle, false)
|
|
1715
|
-
|
|
1716
|
-
|
|
1802
|
+
if (self[103] or 0) <= 0 then
|
|
1803
|
+
for _ = self[102] or 0, -1 do
|
|
1804
|
+
BlzPauseUnitEx(handle, false)
|
|
1805
|
+
end
|
|
1717
1806
|
end
|
|
1718
1807
|
self[101] = nil
|
|
1719
1808
|
end
|
|
@@ -1771,20 +1860,6 @@ __TS__SetDescriptor(
|
|
|
1771
1860
|
},
|
|
1772
1861
|
true
|
|
1773
1862
|
)
|
|
1774
|
-
__TS__SetDescriptor(
|
|
1775
|
-
Unit.prototype,
|
|
1776
|
-
"scale",
|
|
1777
|
-
{
|
|
1778
|
-
get = function(self)
|
|
1779
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1780
|
-
end,
|
|
1781
|
-
set = function(self, v)
|
|
1782
|
-
setUnitScale(self.handle, v, v, v)
|
|
1783
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1784
|
-
end
|
|
1785
|
-
},
|
|
1786
|
-
true
|
|
1787
|
-
)
|
|
1788
1863
|
__TS__SetDescriptor(
|
|
1789
1864
|
Unit.prototype,
|
|
1790
1865
|
"timeScale",
|
|
@@ -1811,13 +1886,26 @@ __TS__SetDescriptor(
|
|
|
1811
1886
|
Unit.prototype,
|
|
1812
1887
|
"pathingCollisionRange",
|
|
1813
1888
|
{get = function(self)
|
|
1814
|
-
return 16 * (min(
|
|
1889
|
+
return 16 * (math.min(
|
|
1815
1890
|
getUnitCollisionSize(self.handle) // 16,
|
|
1816
1891
|
3
|
|
1817
1892
|
) + 1)
|
|
1818
1893
|
end},
|
|
1819
1894
|
true
|
|
1820
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
|
+
)
|
|
1821
1909
|
__TS__SetDescriptor(
|
|
1822
1910
|
Unit.prototype,
|
|
1823
1911
|
"pathing",
|
|
@@ -1908,30 +1996,6 @@ __TS__SetDescriptor(
|
|
|
1908
1996
|
end},
|
|
1909
1997
|
true
|
|
1910
1998
|
)
|
|
1911
|
-
__TS__SetDescriptor(
|
|
1912
|
-
Unit.prototype,
|
|
1913
|
-
"onUnitInRange",
|
|
1914
|
-
{get = function(self)
|
|
1915
|
-
local handle = self.handle
|
|
1916
|
-
local onUnitInRange = setmetatable(
|
|
1917
|
-
{},
|
|
1918
|
-
{__index = function(self, value)
|
|
1919
|
-
local event = __TS__New(
|
|
1920
|
-
TriggerEvent,
|
|
1921
|
-
function(trigger)
|
|
1922
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1923
|
-
end,
|
|
1924
|
-
function() return ____exports.Unit:of(handle) end
|
|
1925
|
-
)
|
|
1926
|
-
rawset(self, value, event)
|
|
1927
|
-
return event
|
|
1928
|
-
end}
|
|
1929
|
-
)
|
|
1930
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1931
|
-
return onUnitInRange
|
|
1932
|
-
end},
|
|
1933
|
-
true
|
|
1934
|
-
)
|
|
1935
1999
|
__TS__SetDescriptor(
|
|
1936
2000
|
Unit.prototype,
|
|
1937
2001
|
"onManaEqual",
|
|
@@ -1999,6 +2063,14 @@ __TS__SetDescriptor(
|
|
|
1999
2063
|
end},
|
|
2000
2064
|
true
|
|
2001
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
|
+
)
|
|
2002
2074
|
__TS__SetDescriptor(
|
|
2003
2075
|
Unit.prototype,
|
|
2004
2076
|
"onSelect",
|
|
@@ -2059,6 +2131,11 @@ __TS__SetDescriptor(
|
|
|
2059
2131
|
end},
|
|
2060
2132
|
true
|
|
2061
2133
|
)
|
|
2134
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2135
|
+
____exports.UnitTriggerEvent,
|
|
2136
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2137
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2138
|
+
)
|
|
2062
2139
|
Unit.deathEvent = __TS__New(
|
|
2063
2140
|
____exports.UnitTriggerEvent,
|
|
2064
2141
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2076,7 +2153,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2076
2153
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2077
2154
|
dead[unit] = true
|
|
2078
2155
|
end)
|
|
2079
|
-
____exports.Unit.onImmediateOrder[
|
|
2156
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2080
2157
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2081
2158
|
dead[unit] = false
|
|
2082
2159
|
invoke(event, unit)
|
|
@@ -2093,7 +2170,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2093
2170
|
invoke(event, unit)
|
|
2094
2171
|
end
|
|
2095
2172
|
end
|
|
2096
|
-
____exports.Unit.onImmediateOrder[
|
|
2173
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2097
2174
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2098
2175
|
Timer:run(ifNotLeft, unit)
|
|
2099
2176
|
end
|
|
@@ -2134,25 +2211,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2134
2211
|
InitializingEvent,
|
|
2135
2212
|
function(event)
|
|
2136
2213
|
local function listener(unit, id)
|
|
2137
|
-
local
|
|
2214
|
+
local ____GetSpellTargetUnit_result_11
|
|
2138
2215
|
if GetSpellTargetUnit() then
|
|
2139
|
-
|
|
2216
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2140
2217
|
else
|
|
2141
|
-
local
|
|
2218
|
+
local ____GetSpellTargetItem_result_10
|
|
2142
2219
|
if GetSpellTargetItem() then
|
|
2143
|
-
|
|
2220
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2144
2221
|
else
|
|
2145
|
-
local
|
|
2222
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2146
2223
|
if GetSpellTargetDestructable() then
|
|
2147
|
-
|
|
2224
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2148
2225
|
else
|
|
2149
|
-
|
|
2226
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2150
2227
|
end
|
|
2151
|
-
|
|
2228
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2152
2229
|
end
|
|
2153
|
-
|
|
2230
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2154
2231
|
end
|
|
2155
|
-
local target =
|
|
2232
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2156
2233
|
if target then
|
|
2157
2234
|
invoke(event, unit, id, target)
|
|
2158
2235
|
end
|
|
@@ -2360,38 +2437,57 @@ Unit.onDamaging = (function()
|
|
|
2360
2437
|
if source and source.typeId == dummyUnitId then
|
|
2361
2438
|
source = nil
|
|
2362
2439
|
end
|
|
2363
|
-
local target = BlzGetEventDamageTarget()
|
|
2440
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2441
|
+
local metadata = damageMetadataByTarget[target]
|
|
2442
|
+
damageMetadataByTarget[target] = nil
|
|
2364
2443
|
local data = {
|
|
2365
2444
|
amount = GetEventDamage(),
|
|
2366
|
-
attackType = BlzGetEventAttackType(),
|
|
2445
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2367
2446
|
damageType = BlzGetEventDamageType(),
|
|
2368
2447
|
weaponType = BlzGetEventWeaponType(),
|
|
2369
|
-
|
|
2448
|
+
metadata = metadata,
|
|
2449
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2450
|
+
originalAmount = GetEventDamage(),
|
|
2451
|
+
originalMetadata = metadata,
|
|
2452
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2370
2453
|
}
|
|
2371
2454
|
if data.isAttack and source then
|
|
2372
|
-
|
|
2373
|
-
if weapon == -1 then
|
|
2374
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2375
|
-
weapon = 0
|
|
2376
|
-
end
|
|
2377
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2455
|
+
data.weapon = source:chooseWeapon(target)
|
|
2378
2456
|
end
|
|
2379
2457
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2380
2458
|
invoke(
|
|
2381
2459
|
event,
|
|
2382
2460
|
source,
|
|
2383
|
-
|
|
2461
|
+
target,
|
|
2384
2462
|
setmetatable(
|
|
2385
2463
|
{},
|
|
2386
2464
|
{
|
|
2387
2465
|
__index = data,
|
|
2388
2466
|
__newindex = function(self, key, value)
|
|
2389
|
-
damageSetters[key]
|
|
2467
|
+
local damageSetter = damageSetters[key]
|
|
2468
|
+
if damageSetter ~= nil then
|
|
2469
|
+
damageSetter(value)
|
|
2470
|
+
end
|
|
2390
2471
|
data[key] = value
|
|
2391
2472
|
end
|
|
2392
2473
|
}
|
|
2393
2474
|
)
|
|
2394
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
|
|
2395
2491
|
return
|
|
2396
2492
|
end
|
|
2397
2493
|
BlzSetEventDamage(0)
|
|
@@ -2399,7 +2495,7 @@ Unit.onDamaging = (function()
|
|
|
2399
2495
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2400
2496
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2401
2497
|
local sourceOwner = source.owner.handle
|
|
2402
|
-
local targetOwner =
|
|
2498
|
+
local targetOwner = target.owner.handle
|
|
2403
2499
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2404
2500
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2405
2501
|
Timer:run(function()
|
|
@@ -2415,23 +2511,19 @@ Unit.onDamaging = (function()
|
|
|
2415
2511
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2416
2512
|
local condition = ____value[1]
|
|
2417
2513
|
local action = ____value[2]
|
|
2418
|
-
if condition(
|
|
2419
|
-
source,
|
|
2420
|
-
____exports.Unit:of(target),
|
|
2421
|
-
data
|
|
2422
|
-
) then
|
|
2514
|
+
if condition(source, target, data) then
|
|
2423
2515
|
action(
|
|
2424
2516
|
source,
|
|
2425
|
-
|
|
2517
|
+
target,
|
|
2426
2518
|
setmetatable(
|
|
2427
2519
|
{fire = function()
|
|
2428
2520
|
UnitDamageTarget(
|
|
2429
2521
|
source.handle,
|
|
2430
|
-
target,
|
|
2522
|
+
target.handle,
|
|
2431
2523
|
data.amount,
|
|
2432
2524
|
true,
|
|
2433
2525
|
true,
|
|
2434
|
-
data.attackType,
|
|
2526
|
+
attackTypeToNative(data.attackType),
|
|
2435
2527
|
data.damageType,
|
|
2436
2528
|
data.weaponType
|
|
2437
2529
|
)
|
|
@@ -2458,30 +2550,54 @@ Unit.onDamage = __TS__New(
|
|
|
2458
2550
|
if source and source.typeId == dummyUnitId then
|
|
2459
2551
|
source = nil
|
|
2460
2552
|
end
|
|
2553
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2554
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2555
|
+
damagingEventByTarget[target] = nil
|
|
2461
2556
|
local data = {
|
|
2462
2557
|
amount = GetEventDamage(),
|
|
2463
|
-
attackType = BlzGetEventAttackType(),
|
|
2558
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2464
2559
|
damageType = BlzGetEventDamageType(),
|
|
2465
2560
|
weaponType = BlzGetEventWeaponType(),
|
|
2561
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2466
2562
|
isAttack = BlzGetEventIsAttack(),
|
|
2467
|
-
originalAmount = GetEventDamage(),
|
|
2563
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2564
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2468
2565
|
preventDeath = damageEventPreventDeath
|
|
2469
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
|
|
2470
2584
|
local evData = setmetatable(
|
|
2471
2585
|
{},
|
|
2472
2586
|
{
|
|
2473
2587
|
__index = data,
|
|
2474
2588
|
__newindex = function(self, key, value)
|
|
2475
|
-
damageSetters[key]
|
|
2589
|
+
local damageSetter = damageSetters[key]
|
|
2590
|
+
if damageSetter ~= nil then
|
|
2591
|
+
damageSetter(value)
|
|
2592
|
+
end
|
|
2476
2593
|
data[key] = value
|
|
2477
2594
|
end
|
|
2478
2595
|
}
|
|
2479
2596
|
)
|
|
2480
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2481
2597
|
invoke(event, source, target, evData)
|
|
2482
2598
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2483
2599
|
local bonusHealth = math.ceil(evData.amount)
|
|
2484
|
-
target[
|
|
2600
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2485
2601
|
BlzSetUnitMaxHP(
|
|
2486
2602
|
target.handle,
|
|
2487
2603
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2495,7 +2611,7 @@ Unit.onDamage = __TS__New(
|
|
|
2495
2611
|
evData[0],
|
|
2496
2612
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2497
2613
|
)
|
|
2498
|
-
target[
|
|
2614
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2499
2615
|
SetWidgetLife(
|
|
2500
2616
|
target.handle,
|
|
2501
2617
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2521,7 +2637,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2521
2637
|
function()
|
|
2522
2638
|
local unit = getTriggerUnit()
|
|
2523
2639
|
local item = getManipulatedItem()
|
|
2524
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2640
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2525
2641
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2526
2642
|
end
|
|
2527
2643
|
return IgnoreEvent
|
|
@@ -2531,10 +2647,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2531
2647
|
____exports.UnitTriggerEvent,
|
|
2532
2648
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2533
2649
|
function()
|
|
2534
|
-
local
|
|
2535
|
-
local
|
|
2536
|
-
if getUnitTypeId(
|
|
2537
|
-
|
|
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
|
|
2538
2658
|
end
|
|
2539
2659
|
return IgnoreEvent
|
|
2540
2660
|
end
|
|
@@ -2545,59 +2665,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2545
2665
|
function()
|
|
2546
2666
|
local unit = getTriggerUnit()
|
|
2547
2667
|
local item = getManipulatedItem()
|
|
2548
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2668
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2549
2669
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2550
2670
|
end
|
|
2551
2671
|
return IgnoreEvent
|
|
2552
2672
|
end
|
|
2553
2673
|
)
|
|
2554
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2555
|
-
____exports.UnitTriggerEvent,
|
|
2556
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2557
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2558
|
-
)
|
|
2559
2674
|
__TS__ObjectDefineProperty(
|
|
2560
2675
|
Unit,
|
|
2561
|
-
"
|
|
2676
|
+
"itemChargesChangedEvent",
|
|
2562
2677
|
{get = function(self)
|
|
2563
2678
|
local event = __TS__New(Event)
|
|
2564
|
-
|
|
2565
|
-
local
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
if item ~= nil then
|
|
2569
|
-
invoke(event, unit, item)
|
|
2570
|
-
end
|
|
2679
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2680
|
+
local unit = item.owner
|
|
2681
|
+
if unit ~= nil then
|
|
2682
|
+
invoke(event, unit, item)
|
|
2571
2683
|
end
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2575
|
-
end
|
|
2576
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2577
|
-
return event
|
|
2578
|
-
end}
|
|
2579
|
-
)
|
|
2580
|
-
__TS__ObjectDefineProperty(
|
|
2581
|
-
Unit,
|
|
2582
|
-
"itemMoveOrderEvent",
|
|
2583
|
-
{get = function(self)
|
|
2584
|
-
local event = __TS__New(Event)
|
|
2585
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2586
|
-
local slotTo = order - orderId("moveslot0")
|
|
2587
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2588
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2589
|
-
if slotFrom ~= nil then
|
|
2590
|
-
invoke(
|
|
2591
|
-
event,
|
|
2592
|
-
unit,
|
|
2593
|
-
item,
|
|
2594
|
-
slotFrom,
|
|
2595
|
-
slotTo
|
|
2596
|
-
)
|
|
2597
|
-
end
|
|
2598
|
-
end)
|
|
2599
|
-
end
|
|
2600
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2684
|
+
end)
|
|
2685
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2601
2686
|
return event
|
|
2602
2687
|
end}
|
|
2603
2688
|
)
|
|
@@ -2626,6 +2711,10 @@ __TS__ObjectDefineProperty(
|
|
|
2626
2711
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2627
2712
|
return destroyEvent
|
|
2628
2713
|
end}
|
|
2714
|
+
)
|
|
2715
|
+
Unit.synchronize = synchronizer(
|
|
2716
|
+
function(unit) return unit.syncId end,
|
|
2717
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2629
2718
|
);
|
|
2630
2719
|
(function(self)
|
|
2631
2720
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2643,11 +2732,7 @@ __TS__ObjectDefineProperty(
|
|
|
2643
2732
|
function(____, id) return fourCC(id) end
|
|
2644
2733
|
)
|
|
2645
2734
|
end)
|
|
2646
|
-
for ____, leaveOrderId in ipairs({
|
|
2647
|
-
orderId("undefend"),
|
|
2648
|
-
orderId("magicundefense"),
|
|
2649
|
-
orderId("unimmolation")
|
|
2650
|
-
}) do
|
|
2735
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2651
2736
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2652
2737
|
local handle = unit.handle
|
|
2653
2738
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2655,7 +2740,8 @@ __TS__ObjectDefineProperty(
|
|
|
2655
2740
|
return
|
|
2656
2741
|
end
|
|
2657
2742
|
end
|
|
2658
|
-
unit:
|
|
2743
|
+
unit:saveData()
|
|
2744
|
+
Timer:run(unit, "destroy")
|
|
2659
2745
|
end)
|
|
2660
2746
|
end
|
|
2661
2747
|
end)(Unit)
|