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