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