warscript 0.0.1-dev.724bf08 → 0.0.1-dev.72620d4
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 +13 -4
- package/core/types/effect.lua +136 -123
- 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 +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 +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +20 -6
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +8 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +23 -6
- package/engine/behaviour/ability.lua +133 -24
- 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 +121 -59
- package/engine/buff.lua +605 -301
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +25 -2
- package/engine/internal/ability.lua +164 -30
- 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 +35 -0
- package/engine/internal/unit/ability.lua +113 -12
- 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 +45 -33
- package/engine/internal/unit.lua +432 -308
- 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-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/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/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 +8 -5
- package/engine/object-field/ability.lua +10 -6
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -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 +3 -0
- package/utility/arrays.lua +23 -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 -84
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -7,10 +7,10 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
11
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
12
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
13
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
13
|
-
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
14
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
15
15
|
local Set = ____lualib.Set
|
|
16
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -47,37 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local
|
|
51
|
-
local
|
|
52
|
-
local
|
|
53
|
-
local
|
|
50
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
54
67
|
local match = string.match
|
|
55
68
|
local ____tostring = _G.tostring
|
|
56
69
|
local setUnitAnimation = SetUnitAnimation
|
|
57
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
58
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
59
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
60
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
61
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
62
73
|
local getHeroStr = GetHeroStr
|
|
63
74
|
local getHeroAgi = GetHeroAgi
|
|
64
75
|
local getHeroInt = GetHeroInt
|
|
65
|
-
local setHeroStr = SetHeroStr
|
|
66
|
-
local setHeroAgi = SetHeroAgi
|
|
67
|
-
local setHeroInt = SetHeroInt
|
|
68
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
69
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
70
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
71
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
72
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
73
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
74
|
-
local setUnitScale = SetUnitScale
|
|
75
82
|
local setUnitPosition = SetUnitPosition
|
|
76
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
86
|
local createUnit = CreateUnit
|
|
79
87
|
local killUnit = KillUnit
|
|
80
|
-
local setUnitExploded = SetUnitExploded
|
|
81
88
|
local removeUnit = RemoveUnit
|
|
82
89
|
local getUnitTypeId = GetUnitTypeId
|
|
83
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -93,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
93
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
94
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
95
102
|
local isUnitInRange = IsUnitInRange
|
|
96
|
-
local setResourceAmount = SetResourceAmount
|
|
97
|
-
local getResourceAmount = GetResourceAmount
|
|
98
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
101
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
102
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
103
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
104
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
105
109
|
local isUnitInvisible = IsUnitInvisible
|
|
106
110
|
local isUnitVisible = IsUnitVisible
|
|
107
111
|
local getUnitX = GetUnitX
|
|
@@ -118,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
118
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
119
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
120
124
|
local unitAlive = UnitAlive
|
|
121
|
-
local unitAddType = UnitAddType
|
|
122
|
-
local unitRemoveType = UnitRemoveType
|
|
123
|
-
local isUnitIllusion = IsUnitIllusion
|
|
124
|
-
local isUnitType = IsUnitType
|
|
125
125
|
local isUnitAlly = IsUnitAlly
|
|
126
126
|
local isUnitEnemy = IsUnitEnemy
|
|
127
127
|
local getOwningPlayer = GetOwningPlayer
|
|
128
|
-
local setUnitColor = SetUnitColor
|
|
129
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
130
128
|
____exports.UnitClassification = {}
|
|
131
129
|
local UnitClassification = ____exports.UnitClassification
|
|
132
130
|
do
|
|
@@ -136,6 +134,7 @@ do
|
|
|
136
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
137
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
138
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
139
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
140
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
141
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -343,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
343
342
|
}
|
|
344
343
|
)
|
|
345
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
346
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
347
349
|
if self[0] ~= nil then
|
|
348
350
|
return
|
|
@@ -354,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
354
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
355
357
|
end
|
|
356
358
|
end
|
|
357
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
358
367
|
local jlimitopByOperator = {
|
|
359
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
360
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -372,15 +381,27 @@ local modifiers = {
|
|
|
372
381
|
end,
|
|
373
382
|
armor = function(unit, value)
|
|
374
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
375
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
376
389
|
end
|
|
377
|
-
local ability = assert(
|
|
378
|
-
|
|
379
|
-
ability,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
384
405
|
end
|
|
385
406
|
}
|
|
386
407
|
local getters = {
|
|
@@ -398,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
398
419
|
self.unit = unit
|
|
399
420
|
self.index = index
|
|
400
421
|
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
401
435
|
__TS__SetDescriptor(
|
|
402
436
|
UnitWeapon.prototype,
|
|
403
437
|
"cooldown",
|
|
@@ -432,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
432
466
|
},
|
|
433
467
|
true
|
|
434
468
|
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
435
482
|
__TS__SetDescriptor(
|
|
436
483
|
UnitWeapon.prototype,
|
|
437
484
|
"damageBase",
|
|
@@ -543,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
543
590
|
},
|
|
544
591
|
true
|
|
545
592
|
)
|
|
546
|
-
local unitInventorySize = UnitInventorySize
|
|
547
|
-
local unitItemInSlot = UnitItemInSlot
|
|
548
593
|
local getItemAbility = BlzGetItemAbility
|
|
549
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
550
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -562,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
607
|
____exports.Unit:of(unit)
|
|
563
608
|
)
|
|
564
609
|
end
|
|
565
|
-
for i = 0,
|
|
566
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
567
612
|
if getItemAbility(item, abilityId) == ability then
|
|
568
613
|
return ItemAbility:of(
|
|
569
614
|
ability,
|
|
@@ -608,26 +653,30 @@ local fieldSetters = {
|
|
|
608
653
|
}
|
|
609
654
|
local dummies = {}
|
|
610
655
|
for ____, player in ipairs(Player.all) do
|
|
611
|
-
local dummy = assert(
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
618
667
|
ShowUnit(dummy, false)
|
|
619
668
|
dummies[player] = dummy
|
|
620
669
|
end
|
|
621
670
|
local function delayHealthChecksCallback(unit)
|
|
622
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
623
672
|
if counter ~= 0 then
|
|
624
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
625
674
|
return
|
|
626
675
|
end
|
|
627
|
-
unit[
|
|
628
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
629
678
|
if healthBonus ~= nil then
|
|
630
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
631
680
|
local handle = unit.handle
|
|
632
681
|
BlzSetUnitMaxHP(
|
|
633
682
|
handle,
|
|
@@ -636,50 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
636
685
|
end
|
|
637
686
|
end
|
|
638
687
|
local nextSyncId = 1
|
|
639
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
688
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
689
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
690
|
+
local function addAbility(unit, abilityTypeId)
|
|
691
|
+
local ____unitAddAbility_result_0
|
|
692
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
693
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
694
|
+
else
|
|
695
|
+
____unitAddAbility_result_0 = nil
|
|
696
|
+
end
|
|
697
|
+
return ____unitAddAbility_result_0
|
|
698
|
+
end
|
|
640
699
|
____exports.Unit = __TS__Class()
|
|
641
700
|
local Unit = ____exports.Unit
|
|
642
701
|
Unit.name = "Unit"
|
|
643
702
|
__TS__ClassExtends(Unit, Handle)
|
|
644
703
|
function Unit.prototype.____constructor(self, handle)
|
|
645
704
|
Handle.prototype.____constructor(self, handle)
|
|
646
|
-
local
|
|
647
|
-
nextSyncId =
|
|
648
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
649
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
650
|
-
assert(
|
|
651
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
652
719
|
if unitAddAbility(
|
|
653
720
|
handle,
|
|
654
721
|
fourCC("Amrf")
|
|
655
722
|
) then
|
|
656
|
-
assert(
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
660
731
|
end
|
|
661
732
|
unitBySyncId[self.syncId] = self
|
|
662
733
|
local ____ = self.abilities
|
|
663
734
|
end
|
|
664
|
-
function Unit.prototype.getEvent(self,
|
|
665
|
-
self.events = self.events or (
|
|
666
|
-
local eventId = GetHandleId(
|
|
667
|
-
|
|
668
|
-
|
|
735
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
736
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
737
|
+
local eventId = GetHandleId(jevent)
|
|
738
|
+
local event = self.events:get(eventId)
|
|
739
|
+
if event == nil then
|
|
740
|
+
event = __TS__New(
|
|
669
741
|
TriggerEvent,
|
|
670
742
|
function(trigger)
|
|
671
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
672
744
|
end,
|
|
673
745
|
collector or (function() return {} end)
|
|
674
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
675
748
|
end
|
|
676
|
-
return
|
|
749
|
+
return event
|
|
750
|
+
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
677
756
|
end
|
|
678
757
|
function Unit.prototype.onDestroy(self)
|
|
679
758
|
local handle = self.handle
|
|
680
|
-
|
|
681
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
682
|
-
end
|
|
759
|
+
self:saveData()
|
|
683
760
|
local abilities = self.abilities
|
|
684
761
|
for ____, ability in ipairs(abilities) do
|
|
685
762
|
ability:destroy()
|
|
@@ -697,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
697
774
|
end
|
|
698
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
699
776
|
if eventsToDestroy ~= nil then
|
|
700
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
701
780
|
end
|
|
702
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
703
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -715,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
715
794
|
self._attackHandlers = handlers
|
|
716
795
|
if #handlers == 1 then
|
|
717
796
|
local handle = self.handle
|
|
718
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
719
802
|
end
|
|
720
803
|
return handler
|
|
721
804
|
end
|
|
@@ -744,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
744
827
|
end}
|
|
745
828
|
end
|
|
746
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
747
|
-
local
|
|
748
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
830
|
+
local ____combatClassification_2 = combatClassification
|
|
831
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
749
832
|
end
|
|
750
833
|
function Unit.prototype.addClassification(self, classification)
|
|
751
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
752
835
|
end
|
|
753
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
754
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
755
838
|
end
|
|
756
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
757
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
758
841
|
end
|
|
759
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
760
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -763,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
763
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
764
847
|
end
|
|
765
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
766
|
-
local
|
|
849
|
+
local ____temp_4
|
|
767
850
|
if type(x) == "number" then
|
|
768
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
769
852
|
else
|
|
770
|
-
|
|
853
|
+
local ____temp_3
|
|
854
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
855
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
856
|
+
else
|
|
857
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
858
|
+
end
|
|
859
|
+
____temp_4 = ____temp_3
|
|
771
860
|
end
|
|
772
|
-
return
|
|
861
|
+
return ____temp_4
|
|
773
862
|
end
|
|
774
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
775
864
|
return isUnitAlly(
|
|
@@ -787,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
787
876
|
if type(animation) == "number" then
|
|
788
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
789
878
|
elseif rarity then
|
|
790
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
791
880
|
else
|
|
792
881
|
setUnitAnimation(self.handle, animation)
|
|
793
882
|
end
|
|
794
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
795
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
796
|
-
|
|
888
|
+
QueueUnitAnimation(self.handle, animation)
|
|
889
|
+
end
|
|
890
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
891
|
+
local firstWeapon = self.firstWeapon
|
|
892
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
893
|
+
return firstWeapon
|
|
894
|
+
end
|
|
895
|
+
local secondWeapon = self.secondWeapon
|
|
896
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
897
|
+
return secondWeapon
|
|
898
|
+
end
|
|
899
|
+
return nil
|
|
797
900
|
end
|
|
798
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
799
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
800
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
801
904
|
end
|
|
802
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -806,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
806
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
807
910
|
end
|
|
808
911
|
function Unit.prototype.explode(self)
|
|
809
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
810
913
|
killUnit(self.handle)
|
|
811
914
|
end
|
|
812
915
|
function Unit.prototype.kill(self)
|
|
813
916
|
killUnit(self.handle)
|
|
814
917
|
end
|
|
815
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
816
|
-
local
|
|
817
|
-
local
|
|
818
|
-
local
|
|
819
|
-
if
|
|
820
|
-
|
|
919
|
+
local ____ReviveHero_7 = ReviveHero
|
|
920
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
921
|
+
local ____doEffect_5 = doEffect
|
|
922
|
+
if ____doEffect_5 == nil then
|
|
923
|
+
____doEffect_5 = false
|
|
821
924
|
end
|
|
822
|
-
__TS__SparseArrayPush(
|
|
823
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
824
927
|
end
|
|
825
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
826
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -860,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
860
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
861
964
|
end
|
|
862
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
863
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
864
967
|
end
|
|
865
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
872
975
|
local abilities = self.abilities
|
|
873
976
|
abilities[#abilities + 1] = ability
|
|
874
|
-
return ability
|
|
875
977
|
end
|
|
876
|
-
return
|
|
978
|
+
return ability
|
|
877
979
|
end
|
|
878
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
879
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -887,31 +989,21 @@ end
|
|
|
887
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
888
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
889
991
|
end
|
|
890
|
-
function Unit.prototype.
|
|
891
|
-
local
|
|
892
|
-
|
|
893
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
894
|
-
return nil
|
|
895
|
-
end
|
|
896
|
-
return UnitAbility:of(
|
|
897
|
-
getUnitAbility(self.handle, abilityId),
|
|
898
|
-
abilityId,
|
|
899
|
-
self
|
|
900
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
901
995
|
end
|
|
902
|
-
function Unit.prototype.removeAbility(self,
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
end
|
|
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
|
+
ability:destroy()
|
|
1003
|
+
return true
|
|
911
1004
|
end
|
|
912
|
-
return true
|
|
913
1005
|
end
|
|
914
|
-
return
|
|
1006
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
915
1007
|
end
|
|
916
1008
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
917
1009
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -925,12 +1017,16 @@ end
|
|
|
925
1017
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
926
1018
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
927
1019
|
end
|
|
928
|
-
function Unit.prototype.interruptAttack(self)
|
|
929
|
-
unitInterruptAttack(self.handle)
|
|
930
|
-
end
|
|
931
1020
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
932
|
-
|
|
933
|
-
unitDisableAbility(
|
|
1021
|
+
local handle = self.handle
|
|
1022
|
+
unitDisableAbility(handle, abilityId, true, false)
|
|
1023
|
+
Timer:run(
|
|
1024
|
+
unitDisableAbility,
|
|
1025
|
+
handle,
|
|
1026
|
+
abilityId,
|
|
1027
|
+
false,
|
|
1028
|
+
false
|
|
1029
|
+
)
|
|
934
1030
|
end
|
|
935
1031
|
function Unit.prototype.getDistanceTo(self, target)
|
|
936
1032
|
local handle = self.handle
|
|
@@ -991,18 +1087,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
991
1087
|
end
|
|
992
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
993
1089
|
local stunCounter = self[102] or 0
|
|
994
|
-
if not self[101] or stunCounter >= 0 then
|
|
1090
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
995
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
996
1092
|
end
|
|
997
1093
|
self[102] = stunCounter + 1
|
|
998
1094
|
end
|
|
999
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1000
1096
|
local stunCounter = self[102] or 0
|
|
1001
|
-
if not self[101] or stunCounter >= 1 then
|
|
1097
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1002
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1003
1099
|
end
|
|
1004
1100
|
self[102] = stunCounter - 1
|
|
1005
1101
|
end
|
|
1102
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1103
|
+
local forceStunCounter = self[103] or 0
|
|
1104
|
+
if forceStunCounter == 0 then
|
|
1105
|
+
local handle = self.handle
|
|
1106
|
+
if not self[101] then
|
|
1107
|
+
for _ = self[102] or 0, -1 do
|
|
1108
|
+
BlzPauseUnitEx(handle, true)
|
|
1109
|
+
end
|
|
1110
|
+
end
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
self[103] = forceStunCounter + 1
|
|
1114
|
+
end
|
|
1115
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1116
|
+
local forceStunCounter = self[103] or 0
|
|
1117
|
+
if forceStunCounter == 1 then
|
|
1118
|
+
local handle = self.handle
|
|
1119
|
+
if not self[101] then
|
|
1120
|
+
for _ = self[102] or 0, -1 do
|
|
1121
|
+
BlzPauseUnitEx(handle, false)
|
|
1122
|
+
end
|
|
1123
|
+
end
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
self[103] = forceStunCounter - 1
|
|
1127
|
+
end
|
|
1006
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1007
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1008
1130
|
owner.handle,
|
|
@@ -1191,7 +1313,15 @@ __TS__SetDescriptor(
|
|
|
1191
1313
|
Unit.prototype,
|
|
1192
1314
|
"isIllusion",
|
|
1193
1315
|
{get = function(self)
|
|
1194
|
-
return
|
|
1316
|
+
return IsUnitIllusion(self.handle)
|
|
1317
|
+
end},
|
|
1318
|
+
true
|
|
1319
|
+
)
|
|
1320
|
+
__TS__SetDescriptor(
|
|
1321
|
+
Unit.prototype,
|
|
1322
|
+
"isStunned",
|
|
1323
|
+
{get = function(self)
|
|
1324
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1195
1325
|
end},
|
|
1196
1326
|
true
|
|
1197
1327
|
)
|
|
@@ -1270,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1270
1400
|
)
|
|
1271
1401
|
__TS__SetDescriptor(
|
|
1272
1402
|
Unit.prototype,
|
|
1273
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1274
1404
|
{
|
|
1275
1405
|
get = function(self)
|
|
1276
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1277
1407
|
end,
|
|
1278
|
-
set = function(self,
|
|
1279
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1280
1410
|
end
|
|
1281
1411
|
},
|
|
1282
1412
|
true
|
|
@@ -1298,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1298
1428
|
end},
|
|
1299
1429
|
true
|
|
1300
1430
|
)
|
|
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
1431
|
__TS__SetDescriptor(
|
|
1315
1432
|
Unit.prototype,
|
|
1316
1433
|
"agilityBonus",
|
|
@@ -1328,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1328
1445
|
end},
|
|
1329
1446
|
true
|
|
1330
1447
|
)
|
|
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
1448
|
__TS__SetDescriptor(
|
|
1345
1449
|
Unit.prototype,
|
|
1346
1450
|
"intelligenceBonus",
|
|
@@ -1389,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1389
1493
|
"isTeamGlowVisible",
|
|
1390
1494
|
{
|
|
1391
1495
|
get = function(self)
|
|
1392
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1393
1497
|
end,
|
|
1394
1498
|
set = function(self, isTeamGlowVisible)
|
|
1395
|
-
|
|
1396
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1397
1501
|
if not isTeamGlowVisible then
|
|
1398
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1399
1503
|
else
|
|
1400
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1401
1505
|
end
|
|
1402
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1403
1507
|
end
|
|
1404
1508
|
},
|
|
1405
1509
|
true
|
|
@@ -1408,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1408
1512
|
Unit.prototype,
|
|
1409
1513
|
"color",
|
|
1410
1514
|
{set = function(self, color)
|
|
1411
|
-
|
|
1412
|
-
if self[
|
|
1413
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1414
1518
|
end
|
|
1415
1519
|
end},
|
|
1416
1520
|
true
|
|
@@ -1433,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1433
1537
|
"maxHealth",
|
|
1434
1538
|
{
|
|
1435
1539
|
get = function(self)
|
|
1436
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1437
1541
|
end,
|
|
1438
1542
|
set = function(self, maxHealth)
|
|
1439
|
-
if maxHealth < 1 and self[
|
|
1440
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1441
1545
|
maxHealth = 1
|
|
1442
1546
|
end
|
|
1443
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1444
1548
|
end
|
|
1445
1549
|
},
|
|
1446
1550
|
true
|
|
@@ -1482,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1482
1586
|
"health",
|
|
1483
1587
|
{
|
|
1484
1588
|
get = function(self)
|
|
1485
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1486
1590
|
end,
|
|
1487
1591
|
set = function(self, health)
|
|
1488
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1489
1593
|
end
|
|
1490
1594
|
},
|
|
1491
1595
|
true
|
|
@@ -1561,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1561
1665
|
},
|
|
1562
1666
|
true
|
|
1563
1667
|
)
|
|
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
1668
|
__TS__SetDescriptor(
|
|
1578
1669
|
Unit.prototype,
|
|
1579
1670
|
"x",
|
|
1580
1671
|
{
|
|
1581
1672
|
get = function(self)
|
|
1582
|
-
return getUnitX(self.handle)
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1583
1674
|
end,
|
|
1584
1675
|
set = function(self, v)
|
|
1585
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1592,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1592
1683
|
"y",
|
|
1593
1684
|
{
|
|
1594
1685
|
get = function(self)
|
|
1595
|
-
return getUnitY(self.handle)
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1596
1687
|
end,
|
|
1597
1688
|
set = function(self, v)
|
|
1598
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1678,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1678
1769
|
"gold",
|
|
1679
1770
|
{
|
|
1680
1771
|
get = function(self)
|
|
1681
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1682
1773
|
end,
|
|
1683
1774
|
set = function(self, gold)
|
|
1684
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1685
1776
|
end
|
|
1686
1777
|
},
|
|
1687
1778
|
true
|
|
@@ -1697,14 +1788,18 @@ __TS__SetDescriptor(
|
|
|
1697
1788
|
local handle = self.handle
|
|
1698
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1699
1790
|
self[101] = true
|
|
1700
|
-
|
|
1701
|
-
|
|
1791
|
+
if (self[103] or 0) <= 0 then
|
|
1792
|
+
for _ = self[102] or 0, -1 do
|
|
1793
|
+
BlzPauseUnitEx(handle, true)
|
|
1794
|
+
end
|
|
1702
1795
|
end
|
|
1703
1796
|
PauseUnit(handle, true)
|
|
1704
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1705
1798
|
PauseUnit(handle, false)
|
|
1706
|
-
|
|
1707
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1708
1803
|
end
|
|
1709
1804
|
self[101] = nil
|
|
1710
1805
|
end
|
|
@@ -1762,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1762
1857
|
},
|
|
1763
1858
|
true
|
|
1764
1859
|
)
|
|
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
1860
|
__TS__SetDescriptor(
|
|
1780
1861
|
Unit.prototype,
|
|
1781
1862
|
"timeScale",
|
|
@@ -1802,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1802
1883
|
Unit.prototype,
|
|
1803
1884
|
"pathingCollisionRange",
|
|
1804
1885
|
{get = function(self)
|
|
1805
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1806
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1807
1888
|
3
|
|
1808
1889
|
) + 1)
|
|
1809
1890
|
end},
|
|
1810
1891
|
true
|
|
1811
1892
|
)
|
|
1893
|
+
__TS__SetDescriptor(
|
|
1894
|
+
Unit.prototype,
|
|
1895
|
+
"movementType",
|
|
1896
|
+
{
|
|
1897
|
+
get = function(self)
|
|
1898
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1899
|
+
end,
|
|
1900
|
+
set = function(self, movementType)
|
|
1901
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1902
|
+
end
|
|
1903
|
+
},
|
|
1904
|
+
true
|
|
1905
|
+
)
|
|
1812
1906
|
__TS__SetDescriptor(
|
|
1813
1907
|
Unit.prototype,
|
|
1814
1908
|
"pathing",
|
|
@@ -1899,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1899
1993
|
end},
|
|
1900
1994
|
true
|
|
1901
1995
|
)
|
|
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
1996
|
__TS__SetDescriptor(
|
|
1927
1997
|
Unit.prototype,
|
|
1928
1998
|
"onManaEqual",
|
|
@@ -1990,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
1990
2060
|
end},
|
|
1991
2061
|
true
|
|
1992
2062
|
)
|
|
2063
|
+
__TS__SetDescriptor(
|
|
2064
|
+
Unit.prototype,
|
|
2065
|
+
"targetAcquiredEvent",
|
|
2066
|
+
{get = function(self)
|
|
2067
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2068
|
+
end},
|
|
2069
|
+
true
|
|
2070
|
+
)
|
|
1993
2071
|
__TS__SetDescriptor(
|
|
1994
2072
|
Unit.prototype,
|
|
1995
2073
|
"onSelect",
|
|
@@ -2050,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2050
2128
|
end},
|
|
2051
2129
|
true
|
|
2052
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2053
2136
|
Unit.deathEvent = __TS__New(
|
|
2054
2137
|
____exports.UnitTriggerEvent,
|
|
2055
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2067,7 +2150,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2067
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2068
2151
|
dead[unit] = true
|
|
2069
2152
|
end)
|
|
2070
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2071
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2072
2155
|
dead[unit] = false
|
|
2073
2156
|
invoke(event, unit)
|
|
@@ -2084,7 +2167,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2084
2167
|
invoke(event, unit)
|
|
2085
2168
|
end
|
|
2086
2169
|
end
|
|
2087
|
-
____exports.Unit.onImmediateOrder[
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2088
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2089
2172
|
Timer:run(ifNotLeft, unit)
|
|
2090
2173
|
end
|
|
@@ -2125,25 +2208,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2125
2208
|
InitializingEvent,
|
|
2126
2209
|
function(event)
|
|
2127
2210
|
local function listener(unit, id)
|
|
2128
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2129
2212
|
if GetSpellTargetUnit() then
|
|
2130
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2131
2214
|
else
|
|
2132
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2133
2216
|
if GetSpellTargetItem() then
|
|
2134
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2135
2218
|
else
|
|
2136
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2137
2220
|
if GetSpellTargetDestructable() then
|
|
2138
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2139
2222
|
else
|
|
2140
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2141
2224
|
end
|
|
2142
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2143
2226
|
end
|
|
2144
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2145
2228
|
end
|
|
2146
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2147
2230
|
if target then
|
|
2148
2231
|
invoke(event, unit, id, target)
|
|
2149
2232
|
end
|
|
@@ -2315,10 +2398,12 @@ Unit.onImmediateOrder = dispatchId(__TS__New(
|
|
|
2315
2398
|
____exports.UnitTriggerEvent,
|
|
2316
2399
|
EVENT_PLAYER_UNIT_ISSUED_ORDER,
|
|
2317
2400
|
function()
|
|
2318
|
-
local
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2401
|
+
local handle = getOrderedUnit()
|
|
2402
|
+
if handle ~= nil and getUnitTypeId(handle) ~= dummyUnitId then
|
|
2403
|
+
local unit = ____exports.Unit:of(handle)
|
|
2404
|
+
if unit.state == 1 then
|
|
2405
|
+
return unit, getIssuedOrderId()
|
|
2406
|
+
end
|
|
2322
2407
|
end
|
|
2323
2408
|
return IgnoreEvent
|
|
2324
2409
|
end
|
|
@@ -2349,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2349
2434
|
if source and source.typeId == dummyUnitId then
|
|
2350
2435
|
source = nil
|
|
2351
2436
|
end
|
|
2352
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2353
2440
|
local data = {
|
|
2354
2441
|
amount = GetEventDamage(),
|
|
2355
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2356
2443
|
damageType = BlzGetEventDamageType(),
|
|
2357
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2358
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2359
2450
|
}
|
|
2360
2451
|
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])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2367
2453
|
end
|
|
2368
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2369
2455
|
invoke(
|
|
2370
2456
|
event,
|
|
2371
2457
|
source,
|
|
2372
|
-
|
|
2458
|
+
target,
|
|
2373
2459
|
setmetatable(
|
|
2374
2460
|
{},
|
|
2375
2461
|
{
|
|
2376
2462
|
__index = data,
|
|
2377
2463
|
__newindex = function(self, key, value)
|
|
2378
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2379
2468
|
data[key] = value
|
|
2380
2469
|
end
|
|
2381
2470
|
}
|
|
2382
2471
|
)
|
|
2383
2472
|
)
|
|
2473
|
+
if data[0] and source then
|
|
2474
|
+
local sourceOwner = source.owner.handle
|
|
2475
|
+
data[1] = sourceOwner
|
|
2476
|
+
local targetOwner = target.owner.handle
|
|
2477
|
+
data[2] = targetOwner
|
|
2478
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2479
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2480
|
+
data[3] = true
|
|
2481
|
+
end
|
|
2482
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2483
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2484
|
+
data[4] = true
|
|
2485
|
+
end
|
|
2486
|
+
end
|
|
2487
|
+
damagingEventByTarget[target] = data
|
|
2384
2488
|
return
|
|
2385
2489
|
end
|
|
2386
2490
|
BlzSetEventDamage(0)
|
|
@@ -2388,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2388
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2389
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2390
2494
|
local sourceOwner = source.owner.handle
|
|
2391
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2392
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2393
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2394
2498
|
Timer:run(function()
|
|
@@ -2404,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2404
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2405
2509
|
local condition = ____value[1]
|
|
2406
2510
|
local action = ____value[2]
|
|
2407
|
-
if condition(
|
|
2408
|
-
source,
|
|
2409
|
-
____exports.Unit:of(target),
|
|
2410
|
-
data
|
|
2411
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2412
2512
|
action(
|
|
2413
2513
|
source,
|
|
2414
|
-
|
|
2514
|
+
target,
|
|
2415
2515
|
setmetatable(
|
|
2416
2516
|
{fire = function()
|
|
2417
2517
|
UnitDamageTarget(
|
|
2418
2518
|
source.handle,
|
|
2419
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2420
2520
|
data.amount,
|
|
2421
2521
|
true,
|
|
2422
2522
|
true,
|
|
2423
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2424
2524
|
data.damageType,
|
|
2425
2525
|
data.weaponType
|
|
2426
2526
|
)
|
|
@@ -2447,30 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2447
2547
|
if source and source.typeId == dummyUnitId then
|
|
2448
2548
|
source = nil
|
|
2449
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2450
2553
|
local data = {
|
|
2451
2554
|
amount = GetEventDamage(),
|
|
2452
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2453
2556
|
damageType = BlzGetEventDamageType(),
|
|
2454
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2455
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2456
|
-
originalAmount = GetEventDamage(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2457
2562
|
preventDeath = damageEventPreventDeath
|
|
2458
2563
|
}
|
|
2564
|
+
if damagingEvent then
|
|
2565
|
+
for key, value in pairs(damagingEvent) do
|
|
2566
|
+
if isAttribute(key) then
|
|
2567
|
+
data[key] = value
|
|
2568
|
+
end
|
|
2569
|
+
end
|
|
2570
|
+
local sourceOwner = damagingEvent[1]
|
|
2571
|
+
if sourceOwner then
|
|
2572
|
+
local targetOwner = damagingEvent[2]
|
|
2573
|
+
if damagingEvent[3] then
|
|
2574
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2575
|
+
end
|
|
2576
|
+
if damagingEvent[4] then
|
|
2577
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
end
|
|
2580
|
+
end
|
|
2459
2581
|
local evData = setmetatable(
|
|
2460
2582
|
{},
|
|
2461
2583
|
{
|
|
2462
2584
|
__index = data,
|
|
2463
2585
|
__newindex = function(self, key, value)
|
|
2464
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2465
2590
|
data[key] = value
|
|
2466
2591
|
end
|
|
2467
2592
|
}
|
|
2468
2593
|
)
|
|
2469
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2470
2594
|
invoke(event, source, target, evData)
|
|
2471
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2472
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2473
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2474
2598
|
BlzSetUnitMaxHP(
|
|
2475
2599
|
target.handle,
|
|
2476
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2484,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2484
2608
|
evData[0],
|
|
2485
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2486
2610
|
)
|
|
2487
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2488
2612
|
SetWidgetLife(
|
|
2489
2613
|
target.handle,
|
|
2490
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2509,8 +2633,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2509
2633
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2510
2634
|
function()
|
|
2511
2635
|
local unit = getTriggerUnit()
|
|
2512
|
-
|
|
2513
|
-
|
|
2636
|
+
local item = getManipulatedItem()
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2638
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2514
2639
|
end
|
|
2515
2640
|
return IgnoreEvent
|
|
2516
2641
|
end
|
|
@@ -2519,9 +2644,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2519
2644
|
____exports.UnitTriggerEvent,
|
|
2520
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2521
2646
|
function()
|
|
2522
|
-
local
|
|
2523
|
-
|
|
2524
|
-
|
|
2647
|
+
local unitHandle = getTriggerUnit()
|
|
2648
|
+
local itemHandle = getManipulatedItem()
|
|
2649
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2650
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2651
|
+
local item = Item:of(itemHandle)
|
|
2652
|
+
if ownerByItem[item] ~= unit then
|
|
2653
|
+
return unit, item
|
|
2654
|
+
end
|
|
2525
2655
|
end
|
|
2526
2656
|
return IgnoreEvent
|
|
2527
2657
|
end
|
|
@@ -2529,34 +2659,27 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2529
2659
|
Unit.itemUsedEvent = __TS__New(
|
|
2530
2660
|
____exports.UnitTriggerEvent,
|
|
2531
2661
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2532
|
-
function()
|
|
2533
|
-
)
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2662
|
+
function()
|
|
2663
|
+
local unit = getTriggerUnit()
|
|
2664
|
+
local item = getManipulatedItem()
|
|
2665
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2666
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2667
|
+
end
|
|
2668
|
+
return IgnoreEvent
|
|
2669
|
+
end
|
|
2538
2670
|
)
|
|
2539
2671
|
__TS__ObjectDefineProperty(
|
|
2540
2672
|
Unit,
|
|
2541
|
-
"
|
|
2673
|
+
"itemChargesChangedEvent",
|
|
2542
2674
|
{get = function(self)
|
|
2543
2675
|
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)
|
|
2676
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2677
|
+
local unit = item.owner
|
|
2678
|
+
if unit ~= nil then
|
|
2679
|
+
invoke(event, unit, item)
|
|
2680
|
+
end
|
|
2681
|
+
end)
|
|
2682
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2560
2683
|
return event
|
|
2561
2684
|
end}
|
|
2562
2685
|
)
|
|
@@ -2585,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2585
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2586
2709
|
return destroyEvent
|
|
2587
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2588
2715
|
);
|
|
2589
2716
|
(function(self)
|
|
2590
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2602,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2602
2729
|
function(____, id) return fourCC(id) end
|
|
2603
2730
|
)
|
|
2604
2731
|
end)
|
|
2605
|
-
for ____, leaveOrderId in ipairs({
|
|
2606
|
-
orderId("undefend"),
|
|
2607
|
-
orderId("magicundefense"),
|
|
2608
|
-
orderId("unimmolation")
|
|
2609
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2610
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2611
2734
|
local handle = unit.handle
|
|
2612
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2614,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2614
2737
|
return
|
|
2615
2738
|
end
|
|
2616
2739
|
end
|
|
2617
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2618
2742
|
end)
|
|
2619
2743
|
end
|
|
2620
2744
|
end)(Unit)
|