warscript 0.0.1-dev.4f7cd3b → 0.0.1-dev.524fae9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +16 -2
- package/core/types/frame.lua +141 -77
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +115 -4
- package/decl/native.d.ts +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/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 +23 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +17 -5
- package/engine/behaviour/ability.lua +97 -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 +14 -1
- package/engine/internal/ability.lua +113 -46
- package/engine/internal/item/ability.lua +82 -14
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +34 -18
- package/engine/internal/item.lua +308 -102
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/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 -34
- package/engine/internal/unit.lua +411 -323
- 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 +329 -32
- 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 +18 -3
- package/engine/object-data/entry/item-type.lua +88 -4
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +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-field/ability.d.ts +5 -4
- 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 -79
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -7,10 +7,10 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
11
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
12
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
13
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
13
|
-
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
14
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
15
15
|
local Set = ____lualib.Set
|
|
16
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -47,37 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local
|
|
51
|
-
local
|
|
52
|
-
local
|
|
53
|
-
local
|
|
50
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
54
67
|
local match = string.match
|
|
55
68
|
local ____tostring = _G.tostring
|
|
56
69
|
local setUnitAnimation = SetUnitAnimation
|
|
57
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
58
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
59
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
60
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
61
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
62
73
|
local getHeroStr = GetHeroStr
|
|
63
74
|
local getHeroAgi = GetHeroAgi
|
|
64
75
|
local getHeroInt = GetHeroInt
|
|
65
|
-
local setHeroStr = SetHeroStr
|
|
66
|
-
local setHeroAgi = SetHeroAgi
|
|
67
|
-
local setHeroInt = SetHeroInt
|
|
68
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
69
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
70
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
71
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
72
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
73
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
74
|
-
local setUnitScale = SetUnitScale
|
|
75
82
|
local setUnitPosition = SetUnitPosition
|
|
76
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
77
84
|
local getHandleId = GetHandleId
|
|
85
|
+
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
78
86
|
local createUnit = CreateUnit
|
|
79
87
|
local killUnit = KillUnit
|
|
80
|
-
local setUnitExploded = SetUnitExploded
|
|
81
88
|
local removeUnit = RemoveUnit
|
|
82
89
|
local getUnitTypeId = GetUnitTypeId
|
|
83
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -93,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
93
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
94
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
95
102
|
local isUnitInRange = IsUnitInRange
|
|
96
|
-
local setResourceAmount = SetResourceAmount
|
|
97
|
-
local getResourceAmount = GetResourceAmount
|
|
98
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
99
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
100
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
101
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
102
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
103
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
104
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
105
109
|
local isUnitInvisible = IsUnitInvisible
|
|
106
110
|
local isUnitVisible = IsUnitVisible
|
|
107
111
|
local getUnitX = GetUnitX
|
|
@@ -118,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
118
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
119
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
120
124
|
local unitAlive = UnitAlive
|
|
121
|
-
local unitAddType = UnitAddType
|
|
122
|
-
local unitRemoveType = UnitRemoveType
|
|
123
|
-
local isUnitIllusion = IsUnitIllusion
|
|
124
|
-
local isUnitType = IsUnitType
|
|
125
125
|
local isUnitAlly = IsUnitAlly
|
|
126
126
|
local isUnitEnemy = IsUnitEnemy
|
|
127
127
|
local getOwningPlayer = GetOwningPlayer
|
|
128
|
-
local setUnitColor = SetUnitColor
|
|
129
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
130
128
|
____exports.UnitClassification = {}
|
|
131
129
|
local UnitClassification = ____exports.UnitClassification
|
|
132
130
|
do
|
|
@@ -136,6 +134,7 @@ do
|
|
|
136
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
137
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
138
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
139
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
140
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
141
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -343,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
343
342
|
}
|
|
344
343
|
)
|
|
345
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
346
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
347
349
|
if self[0] ~= nil then
|
|
348
350
|
return
|
|
@@ -354,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
354
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
355
357
|
end
|
|
356
358
|
end
|
|
357
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
358
367
|
local jlimitopByOperator = {
|
|
359
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
360
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -372,15 +381,27 @@ local modifiers = {
|
|
|
372
381
|
end,
|
|
373
382
|
armor = function(unit, value)
|
|
374
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
375
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
376
389
|
end
|
|
377
|
-
local ability = assert(
|
|
378
|
-
|
|
379
|
-
ability,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
384
405
|
end
|
|
385
406
|
}
|
|
386
407
|
local getters = {
|
|
@@ -398,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
398
419
|
self.unit = unit
|
|
399
420
|
self.index = index
|
|
400
421
|
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
401
435
|
__TS__SetDescriptor(
|
|
402
436
|
UnitWeapon.prototype,
|
|
403
437
|
"cooldown",
|
|
@@ -432,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
432
466
|
},
|
|
433
467
|
true
|
|
434
468
|
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
435
482
|
__TS__SetDescriptor(
|
|
436
483
|
UnitWeapon.prototype,
|
|
437
484
|
"damageBase",
|
|
@@ -543,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
543
590
|
},
|
|
544
591
|
true
|
|
545
592
|
)
|
|
546
|
-
local unitInventorySize = UnitInventorySize
|
|
547
|
-
local unitItemInSlot = UnitItemInSlot
|
|
548
593
|
local getItemAbility = BlzGetItemAbility
|
|
549
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
550
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -562,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
562
607
|
____exports.Unit:of(unit)
|
|
563
608
|
)
|
|
564
609
|
end
|
|
565
|
-
for i = 0,
|
|
566
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
567
612
|
if getItemAbility(item, abilityId) == ability then
|
|
568
613
|
return ItemAbility:of(
|
|
569
614
|
ability,
|
|
@@ -608,26 +653,30 @@ local fieldSetters = {
|
|
|
608
653
|
}
|
|
609
654
|
local dummies = {}
|
|
610
655
|
for ____, player in ipairs(Player.all) do
|
|
611
|
-
local dummy = assert(
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
618
667
|
ShowUnit(dummy, false)
|
|
619
668
|
dummies[player] = dummy
|
|
620
669
|
end
|
|
621
670
|
local function delayHealthChecksCallback(unit)
|
|
622
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
623
672
|
if counter ~= 0 then
|
|
624
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
625
674
|
return
|
|
626
675
|
end
|
|
627
|
-
unit[
|
|
628
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
629
678
|
if healthBonus ~= nil then
|
|
630
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
631
680
|
local handle = unit.handle
|
|
632
681
|
BlzSetUnitMaxHP(
|
|
633
682
|
handle,
|
|
@@ -636,50 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
636
685
|
end
|
|
637
686
|
end
|
|
638
687
|
local nextSyncId = 1
|
|
639
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
688
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
689
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
690
|
+
local function addAbility(unit, abilityTypeId)
|
|
691
|
+
local ____unitAddAbility_result_0
|
|
692
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
693
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
694
|
+
else
|
|
695
|
+
____unitAddAbility_result_0 = nil
|
|
696
|
+
end
|
|
697
|
+
return ____unitAddAbility_result_0
|
|
698
|
+
end
|
|
640
699
|
____exports.Unit = __TS__Class()
|
|
641
700
|
local Unit = ____exports.Unit
|
|
642
701
|
Unit.name = "Unit"
|
|
643
702
|
__TS__ClassExtends(Unit, Handle)
|
|
644
703
|
function Unit.prototype.____constructor(self, handle)
|
|
645
704
|
Handle.prototype.____constructor(self, handle)
|
|
646
|
-
local
|
|
647
|
-
nextSyncId =
|
|
648
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
649
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
650
|
-
assert(
|
|
651
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
652
719
|
if unitAddAbility(
|
|
653
720
|
handle,
|
|
654
721
|
fourCC("Amrf")
|
|
655
722
|
) then
|
|
656
|
-
assert(
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
660
731
|
end
|
|
661
732
|
unitBySyncId[self.syncId] = self
|
|
662
733
|
local ____ = self.abilities
|
|
663
734
|
end
|
|
664
|
-
function Unit.prototype.getEvent(self,
|
|
665
|
-
self.events = self.events or (
|
|
666
|
-
local eventId = GetHandleId(
|
|
667
|
-
|
|
668
|
-
|
|
735
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
736
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
737
|
+
local eventId = GetHandleId(jevent)
|
|
738
|
+
local event = self.events:get(eventId)
|
|
739
|
+
if event == nil then
|
|
740
|
+
event = __TS__New(
|
|
669
741
|
TriggerEvent,
|
|
670
742
|
function(trigger)
|
|
671
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
672
744
|
end,
|
|
673
745
|
collector or (function() return {} end)
|
|
674
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
675
748
|
end
|
|
676
|
-
return
|
|
749
|
+
return event
|
|
750
|
+
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
677
756
|
end
|
|
678
757
|
function Unit.prototype.onDestroy(self)
|
|
679
758
|
local handle = self.handle
|
|
680
|
-
|
|
681
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
682
|
-
end
|
|
759
|
+
self:saveData()
|
|
683
760
|
local abilities = self.abilities
|
|
684
761
|
for ____, ability in ipairs(abilities) do
|
|
685
762
|
ability:destroy()
|
|
@@ -697,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
697
774
|
end
|
|
698
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
699
776
|
if eventsToDestroy ~= nil then
|
|
700
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
701
780
|
end
|
|
702
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
703
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -715,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
715
794
|
self._attackHandlers = handlers
|
|
716
795
|
if #handlers == 1 then
|
|
717
796
|
local handle = self.handle
|
|
718
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
719
802
|
end
|
|
720
803
|
return handler
|
|
721
804
|
end
|
|
@@ -744,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
744
827
|
end}
|
|
745
828
|
end
|
|
746
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
747
|
-
local
|
|
748
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
830
|
+
local ____combatClassification_2 = combatClassification
|
|
831
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
749
832
|
end
|
|
750
833
|
function Unit.prototype.addClassification(self, classification)
|
|
751
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
752
835
|
end
|
|
753
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
754
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
755
838
|
end
|
|
756
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
757
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
758
841
|
end
|
|
759
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
760
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -763,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
763
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
764
847
|
end
|
|
765
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
766
|
-
local
|
|
849
|
+
local ____temp_4
|
|
767
850
|
if type(x) == "number" then
|
|
768
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
769
852
|
else
|
|
770
|
-
|
|
853
|
+
local ____temp_3
|
|
854
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
855
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
856
|
+
else
|
|
857
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
858
|
+
end
|
|
859
|
+
____temp_4 = ____temp_3
|
|
771
860
|
end
|
|
772
|
-
return
|
|
861
|
+
return ____temp_4
|
|
773
862
|
end
|
|
774
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
775
864
|
return isUnitAlly(
|
|
@@ -787,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
787
876
|
if type(animation) == "number" then
|
|
788
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
789
878
|
elseif rarity then
|
|
790
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
791
880
|
else
|
|
792
881
|
setUnitAnimation(self.handle, animation)
|
|
793
882
|
end
|
|
794
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
795
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
796
|
-
|
|
888
|
+
QueueUnitAnimation(self.handle, animation)
|
|
889
|
+
end
|
|
890
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
891
|
+
local firstWeapon = self.firstWeapon
|
|
892
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
893
|
+
return firstWeapon
|
|
894
|
+
end
|
|
895
|
+
local secondWeapon = self.secondWeapon
|
|
896
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
897
|
+
return secondWeapon
|
|
898
|
+
end
|
|
899
|
+
return nil
|
|
797
900
|
end
|
|
798
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
799
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
800
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
801
904
|
end
|
|
802
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -806,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
806
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
807
910
|
end
|
|
808
911
|
function Unit.prototype.explode(self)
|
|
809
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
810
913
|
killUnit(self.handle)
|
|
811
914
|
end
|
|
812
915
|
function Unit.prototype.kill(self)
|
|
813
916
|
killUnit(self.handle)
|
|
814
917
|
end
|
|
815
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
816
|
-
local
|
|
817
|
-
local
|
|
818
|
-
local
|
|
819
|
-
if
|
|
820
|
-
|
|
919
|
+
local ____ReviveHero_7 = ReviveHero
|
|
920
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
921
|
+
local ____doEffect_5 = doEffect
|
|
922
|
+
if ____doEffect_5 == nil then
|
|
923
|
+
____doEffect_5 = false
|
|
821
924
|
end
|
|
822
|
-
__TS__SparseArrayPush(
|
|
823
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
824
927
|
end
|
|
825
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
826
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -860,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
860
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
861
964
|
end
|
|
862
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
863
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
864
967
|
end
|
|
865
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
872
975
|
local abilities = self.abilities
|
|
873
976
|
abilities[#abilities + 1] = ability
|
|
874
|
-
return ability
|
|
875
977
|
end
|
|
876
|
-
return
|
|
978
|
+
return ability
|
|
877
979
|
end
|
|
878
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
879
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -887,31 +989,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,9 +1017,6 @@ 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
1021
|
local handle = self.handle
|
|
933
1022
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -998,18 +1087,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
998
1087
|
end
|
|
999
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
1000
1089
|
local stunCounter = self[102] or 0
|
|
1001
|
-
if not self[101] or stunCounter >= 0 then
|
|
1090
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1002
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
1003
1092
|
end
|
|
1004
1093
|
self[102] = stunCounter + 1
|
|
1005
1094
|
end
|
|
1006
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1007
1096
|
local stunCounter = self[102] or 0
|
|
1008
|
-
if not self[101] or stunCounter >= 1 then
|
|
1097
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1009
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1010
1099
|
end
|
|
1011
1100
|
self[102] = stunCounter - 1
|
|
1012
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
|
|
1013
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1014
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1015
1130
|
owner.handle,
|
|
@@ -1198,7 +1313,15 @@ __TS__SetDescriptor(
|
|
|
1198
1313
|
Unit.prototype,
|
|
1199
1314
|
"isIllusion",
|
|
1200
1315
|
{get = function(self)
|
|
1201
|
-
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
|
|
1202
1325
|
end},
|
|
1203
1326
|
true
|
|
1204
1327
|
)
|
|
@@ -1277,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1277
1400
|
)
|
|
1278
1401
|
__TS__SetDescriptor(
|
|
1279
1402
|
Unit.prototype,
|
|
1280
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1281
1404
|
{
|
|
1282
1405
|
get = function(self)
|
|
1283
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1284
1407
|
end,
|
|
1285
|
-
set = function(self,
|
|
1286
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1287
1410
|
end
|
|
1288
1411
|
},
|
|
1289
1412
|
true
|
|
@@ -1305,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1305
1428
|
end},
|
|
1306
1429
|
true
|
|
1307
1430
|
)
|
|
1308
|
-
__TS__SetDescriptor(
|
|
1309
|
-
Unit.prototype,
|
|
1310
|
-
"agilityBase",
|
|
1311
|
-
{
|
|
1312
|
-
get = function(self)
|
|
1313
|
-
return getHeroAgi(self.handle, false)
|
|
1314
|
-
end,
|
|
1315
|
-
set = function(self, agilityBase)
|
|
1316
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1317
|
-
end
|
|
1318
|
-
},
|
|
1319
|
-
true
|
|
1320
|
-
)
|
|
1321
1431
|
__TS__SetDescriptor(
|
|
1322
1432
|
Unit.prototype,
|
|
1323
1433
|
"agilityBonus",
|
|
@@ -1335,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1335
1445
|
end},
|
|
1336
1446
|
true
|
|
1337
1447
|
)
|
|
1338
|
-
__TS__SetDescriptor(
|
|
1339
|
-
Unit.prototype,
|
|
1340
|
-
"intelligenceBase",
|
|
1341
|
-
{
|
|
1342
|
-
get = function(self)
|
|
1343
|
-
return getHeroInt(self.handle, false)
|
|
1344
|
-
end,
|
|
1345
|
-
set = function(self, intelligenceBase)
|
|
1346
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1347
|
-
end
|
|
1348
|
-
},
|
|
1349
|
-
true
|
|
1350
|
-
)
|
|
1351
1448
|
__TS__SetDescriptor(
|
|
1352
1449
|
Unit.prototype,
|
|
1353
1450
|
"intelligenceBonus",
|
|
@@ -1396,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1396
1493
|
"isTeamGlowVisible",
|
|
1397
1494
|
{
|
|
1398
1495
|
get = function(self)
|
|
1399
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1400
1497
|
end,
|
|
1401
1498
|
set = function(self, isTeamGlowVisible)
|
|
1402
|
-
|
|
1403
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1404
1501
|
if not isTeamGlowVisible then
|
|
1405
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1406
1503
|
else
|
|
1407
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1408
1505
|
end
|
|
1409
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1410
1507
|
end
|
|
1411
1508
|
},
|
|
1412
1509
|
true
|
|
@@ -1415,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1415
1512
|
Unit.prototype,
|
|
1416
1513
|
"color",
|
|
1417
1514
|
{set = function(self, color)
|
|
1418
|
-
|
|
1419
|
-
if self[
|
|
1420
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1421
1518
|
end
|
|
1422
1519
|
end},
|
|
1423
1520
|
true
|
|
@@ -1440,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1440
1537
|
"maxHealth",
|
|
1441
1538
|
{
|
|
1442
1539
|
get = function(self)
|
|
1443
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1444
1541
|
end,
|
|
1445
1542
|
set = function(self, maxHealth)
|
|
1446
|
-
if maxHealth < 1 and self[
|
|
1447
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1448
1545
|
maxHealth = 1
|
|
1449
1546
|
end
|
|
1450
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1451
1548
|
end
|
|
1452
1549
|
},
|
|
1453
1550
|
true
|
|
@@ -1489,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1489
1586
|
"health",
|
|
1490
1587
|
{
|
|
1491
1588
|
get = function(self)
|
|
1492
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1493
1590
|
end,
|
|
1494
1591
|
set = function(self, health)
|
|
1495
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1496
1593
|
end
|
|
1497
1594
|
},
|
|
1498
1595
|
true
|
|
@@ -1568,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1568
1665
|
},
|
|
1569
1666
|
true
|
|
1570
1667
|
)
|
|
1571
|
-
__TS__SetDescriptor(
|
|
1572
|
-
Unit.prototype,
|
|
1573
|
-
"flyHeight",
|
|
1574
|
-
{
|
|
1575
|
-
get = function(self)
|
|
1576
|
-
return getUnitFlyHeight(self.handle)
|
|
1577
|
-
end,
|
|
1578
|
-
set = function(self, v)
|
|
1579
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1580
|
-
end
|
|
1581
|
-
},
|
|
1582
|
-
true
|
|
1583
|
-
)
|
|
1584
1668
|
__TS__SetDescriptor(
|
|
1585
1669
|
Unit.prototype,
|
|
1586
1670
|
"x",
|
|
1587
1671
|
{
|
|
1588
1672
|
get = function(self)
|
|
1589
|
-
return getUnitX(self.handle)
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1590
1674
|
end,
|
|
1591
1675
|
set = function(self, v)
|
|
1592
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1599,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1599
1683
|
"y",
|
|
1600
1684
|
{
|
|
1601
1685
|
get = function(self)
|
|
1602
|
-
return getUnitY(self.handle)
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1603
1687
|
end,
|
|
1604
1688
|
set = function(self, v)
|
|
1605
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1685,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1685
1769
|
"gold",
|
|
1686
1770
|
{
|
|
1687
1771
|
get = function(self)
|
|
1688
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1689
1773
|
end,
|
|
1690
1774
|
set = function(self, gold)
|
|
1691
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1692
1776
|
end
|
|
1693
1777
|
},
|
|
1694
1778
|
true
|
|
@@ -1704,14 +1788,18 @@ __TS__SetDescriptor(
|
|
|
1704
1788
|
local handle = self.handle
|
|
1705
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1706
1790
|
self[101] = true
|
|
1707
|
-
|
|
1708
|
-
|
|
1791
|
+
if (self[103] or 0) <= 0 then
|
|
1792
|
+
for _ = self[102] or 0, -1 do
|
|
1793
|
+
BlzPauseUnitEx(handle, true)
|
|
1794
|
+
end
|
|
1709
1795
|
end
|
|
1710
1796
|
PauseUnit(handle, true)
|
|
1711
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1712
1798
|
PauseUnit(handle, false)
|
|
1713
|
-
|
|
1714
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1715
1803
|
end
|
|
1716
1804
|
self[101] = nil
|
|
1717
1805
|
end
|
|
@@ -1769,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1769
1857
|
},
|
|
1770
1858
|
true
|
|
1771
1859
|
)
|
|
1772
|
-
__TS__SetDescriptor(
|
|
1773
|
-
Unit.prototype,
|
|
1774
|
-
"scale",
|
|
1775
|
-
{
|
|
1776
|
-
get = function(self)
|
|
1777
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1778
|
-
end,
|
|
1779
|
-
set = function(self, v)
|
|
1780
|
-
setUnitScale(self.handle, v, v, v)
|
|
1781
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1782
|
-
end
|
|
1783
|
-
},
|
|
1784
|
-
true
|
|
1785
|
-
)
|
|
1786
1860
|
__TS__SetDescriptor(
|
|
1787
1861
|
Unit.prototype,
|
|
1788
1862
|
"timeScale",
|
|
@@ -1809,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1809
1883
|
Unit.prototype,
|
|
1810
1884
|
"pathingCollisionRange",
|
|
1811
1885
|
{get = function(self)
|
|
1812
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1813
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1814
1888
|
3
|
|
1815
1889
|
) + 1)
|
|
1816
1890
|
end},
|
|
1817
1891
|
true
|
|
1818
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
|
+
)
|
|
1819
1906
|
__TS__SetDescriptor(
|
|
1820
1907
|
Unit.prototype,
|
|
1821
1908
|
"pathing",
|
|
@@ -1906,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1906
1993
|
end},
|
|
1907
1994
|
true
|
|
1908
1995
|
)
|
|
1909
|
-
__TS__SetDescriptor(
|
|
1910
|
-
Unit.prototype,
|
|
1911
|
-
"onUnitInRange",
|
|
1912
|
-
{get = function(self)
|
|
1913
|
-
local handle = self.handle
|
|
1914
|
-
local onUnitInRange = setmetatable(
|
|
1915
|
-
{},
|
|
1916
|
-
{__index = function(self, value)
|
|
1917
|
-
local event = __TS__New(
|
|
1918
|
-
TriggerEvent,
|
|
1919
|
-
function(trigger)
|
|
1920
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1921
|
-
end,
|
|
1922
|
-
function() return ____exports.Unit:of(handle) end
|
|
1923
|
-
)
|
|
1924
|
-
rawset(self, value, event)
|
|
1925
|
-
return event
|
|
1926
|
-
end}
|
|
1927
|
-
)
|
|
1928
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1929
|
-
return onUnitInRange
|
|
1930
|
-
end},
|
|
1931
|
-
true
|
|
1932
|
-
)
|
|
1933
1996
|
__TS__SetDescriptor(
|
|
1934
1997
|
Unit.prototype,
|
|
1935
1998
|
"onManaEqual",
|
|
@@ -1997,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
1997
2060
|
end},
|
|
1998
2061
|
true
|
|
1999
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
|
+
)
|
|
2000
2071
|
__TS__SetDescriptor(
|
|
2001
2072
|
Unit.prototype,
|
|
2002
2073
|
"onSelect",
|
|
@@ -2057,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2057
2128
|
end},
|
|
2058
2129
|
true
|
|
2059
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2060
2136
|
Unit.deathEvent = __TS__New(
|
|
2061
2137
|
____exports.UnitTriggerEvent,
|
|
2062
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2074,7 +2150,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2074
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2075
2151
|
dead[unit] = true
|
|
2076
2152
|
end)
|
|
2077
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2078
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2079
2155
|
dead[unit] = false
|
|
2080
2156
|
invoke(event, unit)
|
|
@@ -2091,7 +2167,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2091
2167
|
invoke(event, unit)
|
|
2092
2168
|
end
|
|
2093
2169
|
end
|
|
2094
|
-
____exports.Unit.onImmediateOrder[
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2095
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2096
2172
|
Timer:run(ifNotLeft, unit)
|
|
2097
2173
|
end
|
|
@@ -2132,25 +2208,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2132
2208
|
InitializingEvent,
|
|
2133
2209
|
function(event)
|
|
2134
2210
|
local function listener(unit, id)
|
|
2135
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2136
2212
|
if GetSpellTargetUnit() then
|
|
2137
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2138
2214
|
else
|
|
2139
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2140
2216
|
if GetSpellTargetItem() then
|
|
2141
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2142
2218
|
else
|
|
2143
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2144
2220
|
if GetSpellTargetDestructable() then
|
|
2145
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2146
2222
|
else
|
|
2147
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2148
2224
|
end
|
|
2149
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2150
2226
|
end
|
|
2151
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2152
2228
|
end
|
|
2153
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2154
2230
|
if target then
|
|
2155
2231
|
invoke(event, unit, id, target)
|
|
2156
2232
|
end
|
|
@@ -2358,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2358
2434
|
if source and source.typeId == dummyUnitId then
|
|
2359
2435
|
source = nil
|
|
2360
2436
|
end
|
|
2361
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2362
2440
|
local data = {
|
|
2363
2441
|
amount = GetEventDamage(),
|
|
2364
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2365
2443
|
damageType = BlzGetEventDamageType(),
|
|
2366
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2367
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2368
2450
|
}
|
|
2369
2451
|
if data.isAttack and source then
|
|
2370
|
-
|
|
2371
|
-
if weapon == -1 then
|
|
2372
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2373
|
-
weapon = 0
|
|
2374
|
-
end
|
|
2375
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2376
2453
|
end
|
|
2377
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2378
2455
|
invoke(
|
|
2379
2456
|
event,
|
|
2380
2457
|
source,
|
|
2381
|
-
|
|
2458
|
+
target,
|
|
2382
2459
|
setmetatable(
|
|
2383
2460
|
{},
|
|
2384
2461
|
{
|
|
2385
2462
|
__index = data,
|
|
2386
2463
|
__newindex = function(self, key, value)
|
|
2387
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2388
2468
|
data[key] = value
|
|
2389
2469
|
end
|
|
2390
2470
|
}
|
|
2391
2471
|
)
|
|
2392
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
|
|
2393
2488
|
return
|
|
2394
2489
|
end
|
|
2395
2490
|
BlzSetEventDamage(0)
|
|
@@ -2397,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2397
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2398
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2399
2494
|
local sourceOwner = source.owner.handle
|
|
2400
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2401
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2402
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2403
2498
|
Timer:run(function()
|
|
@@ -2413,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2413
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2414
2509
|
local condition = ____value[1]
|
|
2415
2510
|
local action = ____value[2]
|
|
2416
|
-
if condition(
|
|
2417
|
-
source,
|
|
2418
|
-
____exports.Unit:of(target),
|
|
2419
|
-
data
|
|
2420
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2421
2512
|
action(
|
|
2422
2513
|
source,
|
|
2423
|
-
|
|
2514
|
+
target,
|
|
2424
2515
|
setmetatable(
|
|
2425
2516
|
{fire = function()
|
|
2426
2517
|
UnitDamageTarget(
|
|
2427
2518
|
source.handle,
|
|
2428
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2429
2520
|
data.amount,
|
|
2430
2521
|
true,
|
|
2431
2522
|
true,
|
|
2432
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2433
2524
|
data.damageType,
|
|
2434
2525
|
data.weaponType
|
|
2435
2526
|
)
|
|
@@ -2456,30 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2456
2547
|
if source and source.typeId == dummyUnitId then
|
|
2457
2548
|
source = nil
|
|
2458
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2459
2553
|
local data = {
|
|
2460
2554
|
amount = GetEventDamage(),
|
|
2461
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2462
2556
|
damageType = BlzGetEventDamageType(),
|
|
2463
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2464
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2465
|
-
originalAmount = GetEventDamage(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2466
2562
|
preventDeath = damageEventPreventDeath
|
|
2467
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
|
|
2468
2581
|
local evData = setmetatable(
|
|
2469
2582
|
{},
|
|
2470
2583
|
{
|
|
2471
2584
|
__index = data,
|
|
2472
2585
|
__newindex = function(self, key, value)
|
|
2473
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2474
2590
|
data[key] = value
|
|
2475
2591
|
end
|
|
2476
2592
|
}
|
|
2477
2593
|
)
|
|
2478
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2479
2594
|
invoke(event, source, target, evData)
|
|
2480
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2481
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2482
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2483
2598
|
BlzSetUnitMaxHP(
|
|
2484
2599
|
target.handle,
|
|
2485
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2493,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2493
2608
|
evData[0],
|
|
2494
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2495
2610
|
)
|
|
2496
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2497
2612
|
SetWidgetLife(
|
|
2498
2613
|
target.handle,
|
|
2499
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2518,8 +2633,9 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2518
2633
|
EVENT_PLAYER_UNIT_DROP_ITEM,
|
|
2519
2634
|
function()
|
|
2520
2635
|
local unit = getTriggerUnit()
|
|
2521
|
-
|
|
2522
|
-
|
|
2636
|
+
local item = getManipulatedItem()
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2638
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2523
2639
|
end
|
|
2524
2640
|
return IgnoreEvent
|
|
2525
2641
|
end
|
|
@@ -2528,9 +2644,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2528
2644
|
____exports.UnitTriggerEvent,
|
|
2529
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2530
2646
|
function()
|
|
2531
|
-
local
|
|
2532
|
-
|
|
2533
|
-
|
|
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
|
|
2534
2655
|
end
|
|
2535
2656
|
return IgnoreEvent
|
|
2536
2657
|
end
|
|
@@ -2540,59 +2661,25 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2540
2661
|
EVENT_PLAYER_UNIT_USE_ITEM,
|
|
2541
2662
|
function()
|
|
2542
2663
|
local unit = getTriggerUnit()
|
|
2543
|
-
|
|
2544
|
-
|
|
2664
|
+
local item = getManipulatedItem()
|
|
2665
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2666
|
+
return ____exports.Unit:of(unit), Item:of(item)
|
|
2545
2667
|
end
|
|
2546
2668
|
return IgnoreEvent
|
|
2547
2669
|
end
|
|
2548
2670
|
)
|
|
2549
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2550
|
-
____exports.UnitTriggerEvent,
|
|
2551
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2552
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2553
|
-
)
|
|
2554
2671
|
__TS__ObjectDefineProperty(
|
|
2555
2672
|
Unit,
|
|
2556
|
-
"
|
|
2673
|
+
"itemChargesChangedEvent",
|
|
2557
2674
|
{get = function(self)
|
|
2558
2675
|
local event = __TS__New(Event)
|
|
2559
|
-
|
|
2560
|
-
local
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
if item ~= nil then
|
|
2564
|
-
invoke(event, unit, item)
|
|
2565
|
-
end
|
|
2676
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2677
|
+
local unit = item.owner
|
|
2678
|
+
if unit ~= nil then
|
|
2679
|
+
invoke(event, unit, item)
|
|
2566
2680
|
end
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2570
|
-
end
|
|
2571
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2572
|
-
return event
|
|
2573
|
-
end}
|
|
2574
|
-
)
|
|
2575
|
-
__TS__ObjectDefineProperty(
|
|
2576
|
-
Unit,
|
|
2577
|
-
"itemMoveOrderEvent",
|
|
2578
|
-
{get = function(self)
|
|
2579
|
-
local event = __TS__New(Event)
|
|
2580
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2581
|
-
local slotTo = order - orderId("moveslot0")
|
|
2582
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2583
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2584
|
-
if slotFrom ~= nil then
|
|
2585
|
-
invoke(
|
|
2586
|
-
event,
|
|
2587
|
-
unit,
|
|
2588
|
-
item,
|
|
2589
|
-
slotFrom,
|
|
2590
|
-
slotTo
|
|
2591
|
-
)
|
|
2592
|
-
end
|
|
2593
|
-
end)
|
|
2594
|
-
end
|
|
2595
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2681
|
+
end)
|
|
2682
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2596
2683
|
return event
|
|
2597
2684
|
end}
|
|
2598
2685
|
)
|
|
@@ -2621,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2621
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2622
2709
|
return destroyEvent
|
|
2623
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2624
2715
|
);
|
|
2625
2716
|
(function(self)
|
|
2626
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2638,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2638
2729
|
function(____, id) return fourCC(id) end
|
|
2639
2730
|
)
|
|
2640
2731
|
end)
|
|
2641
|
-
for ____, leaveOrderId in ipairs({
|
|
2642
|
-
orderId("undefend"),
|
|
2643
|
-
orderId("magicundefense"),
|
|
2644
|
-
orderId("unimmolation")
|
|
2645
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2646
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2647
2734
|
local handle = unit.handle
|
|
2648
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2650,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2650
2737
|
return
|
|
2651
2738
|
end
|
|
2652
2739
|
end
|
|
2653
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2654
2742
|
end)
|
|
2655
2743
|
end
|
|
2656
2744
|
end)(Unit)
|