warscript 0.0.1-dev.3642572 → 0.0.1-dev.37ce2c3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/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 -26
- package/core/types/sound.lua +99 -53
- 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 +109 -3
- package/decl/native.d.ts +1719 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +10 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +15 -1
- package/engine/behaviour/ability/emulate-impact.lua +96 -7
- package/engine/behaviour/ability/instant-impact.d.ts +12 -1
- package/engine/behaviour/ability/instant-impact.lua +17 -2
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +22 -6
- package/engine/behaviour/ability.lua +133 -29
- 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 +118 -57
- package/engine/buff.lua +583 -288
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- 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/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +114 -9
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- 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 +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +83 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +42 -36
- package/engine/internal/unit.lua +400 -325
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- 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/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +2 -2
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
- package/engine/object-data/entry/ability-type/channel.lua +3 -3
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/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/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-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/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 -16
- package/engine/object-data/entry/ability-type.lua +321 -24
- package/engine/object-data/entry/buff-type/applicable.lua +122 -106
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +37 -27
- 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 +84 -0
- 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 +19 -2
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +4 -4
- package/engine/standard/fields/ability.lua +4 -4
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +11 -1
- package/engine/unit.lua +11 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +28 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -7,10 +7,10 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
11
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
12
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
13
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
13
|
-
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
14
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
15
15
|
local Set = ____lualib.Set
|
|
16
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -47,40 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
56
67
|
local match = string.match
|
|
57
68
|
local ____tostring = _G.tostring
|
|
58
69
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
62
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
64
73
|
local getHeroStr = GetHeroStr
|
|
65
74
|
local getHeroAgi = GetHeroAgi
|
|
66
75
|
local getHeroInt = GetHeroInt
|
|
67
|
-
local setHeroStr = SetHeroStr
|
|
68
|
-
local setHeroAgi = SetHeroAgi
|
|
69
|
-
local setHeroInt = SetHeroInt
|
|
70
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
71
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
72
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
73
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
74
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
75
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
76
|
-
local setUnitScale = SetUnitScale
|
|
77
82
|
local setUnitPosition = SetUnitPosition
|
|
78
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
79
84
|
local getHandleId = GetHandleId
|
|
80
85
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
86
|
local createUnit = CreateUnit
|
|
82
87
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
88
|
local removeUnit = RemoveUnit
|
|
85
89
|
local getUnitTypeId = GetUnitTypeId
|
|
86
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
102
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
104
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
105
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
106
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
107
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
108
109
|
local isUnitInvisible = IsUnitInvisible
|
|
109
110
|
local isUnitVisible = IsUnitVisible
|
|
110
111
|
local getUnitX = GetUnitX
|
|
@@ -121,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
121
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
122
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
123
124
|
local unitAlive = UnitAlive
|
|
124
|
-
local unitAddType = UnitAddType
|
|
125
|
-
local unitRemoveType = UnitRemoveType
|
|
126
|
-
local isUnitIllusion = IsUnitIllusion
|
|
127
|
-
local isUnitType = IsUnitType
|
|
128
125
|
local isUnitAlly = IsUnitAlly
|
|
129
126
|
local isUnitEnemy = IsUnitEnemy
|
|
130
127
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
128
|
____exports.UnitClassification = {}
|
|
134
129
|
local UnitClassification = ____exports.UnitClassification
|
|
135
130
|
do
|
|
@@ -139,6 +134,7 @@ do
|
|
|
139
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
140
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
141
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
142
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
143
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
144
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -346,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
346
342
|
}
|
|
347
343
|
)
|
|
348
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
349
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
350
349
|
if self[0] ~= nil then
|
|
351
350
|
return
|
|
@@ -357,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
357
|
end
|
|
359
358
|
end
|
|
360
|
-
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
|
+
}
|
|
361
367
|
local jlimitopByOperator = {
|
|
362
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -375,15 +381,27 @@ local modifiers = {
|
|
|
375
381
|
end,
|
|
376
382
|
armor = function(unit, value)
|
|
377
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
378
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
379
389
|
end
|
|
380
|
-
local ability = assert(
|
|
381
|
-
|
|
382
|
-
ability,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
+
)
|
|
387
405
|
end
|
|
388
406
|
}
|
|
389
407
|
local getters = {
|
|
@@ -401,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
401
419
|
self.unit = unit
|
|
402
420
|
self.index = index
|
|
403
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
|
+
)
|
|
404
435
|
__TS__SetDescriptor(
|
|
405
436
|
UnitWeapon.prototype,
|
|
406
437
|
"cooldown",
|
|
@@ -435,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
435
466
|
},
|
|
436
467
|
true
|
|
437
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
|
+
)
|
|
438
482
|
__TS__SetDescriptor(
|
|
439
483
|
UnitWeapon.prototype,
|
|
440
484
|
"damageBase",
|
|
@@ -546,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
546
590
|
},
|
|
547
591
|
true
|
|
548
592
|
)
|
|
549
|
-
local unitInventorySize = UnitInventorySize
|
|
550
|
-
local unitItemInSlot = UnitItemInSlot
|
|
551
593
|
local getItemAbility = BlzGetItemAbility
|
|
552
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
553
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -565,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
565
607
|
____exports.Unit:of(unit)
|
|
566
608
|
)
|
|
567
609
|
end
|
|
568
|
-
for i = 0,
|
|
569
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
570
612
|
if getItemAbility(item, abilityId) == ability then
|
|
571
613
|
return ItemAbility:of(
|
|
572
614
|
ability,
|
|
@@ -611,26 +653,30 @@ local fieldSetters = {
|
|
|
611
653
|
}
|
|
612
654
|
local dummies = {}
|
|
613
655
|
for ____, player in ipairs(Player.all) do
|
|
614
|
-
local dummy = assert(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
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
|
+
)
|
|
621
667
|
ShowUnit(dummy, false)
|
|
622
668
|
dummies[player] = dummy
|
|
623
669
|
end
|
|
624
670
|
local function delayHealthChecksCallback(unit)
|
|
625
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
626
672
|
if counter ~= 0 then
|
|
627
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
628
674
|
return
|
|
629
675
|
end
|
|
630
|
-
unit[
|
|
631
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
632
678
|
if healthBonus ~= nil then
|
|
633
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
634
680
|
local handle = unit.handle
|
|
635
681
|
BlzSetUnitMaxHP(
|
|
636
682
|
handle,
|
|
@@ -639,52 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
639
685
|
end
|
|
640
686
|
end
|
|
641
687
|
local nextSyncId = 1
|
|
642
|
-
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
|
|
643
699
|
____exports.Unit = __TS__Class()
|
|
644
700
|
local Unit = ____exports.Unit
|
|
645
701
|
Unit.name = "Unit"
|
|
646
702
|
__TS__ClassExtends(Unit, Handle)
|
|
647
703
|
function Unit.prototype.____constructor(self, handle)
|
|
648
704
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
-
local
|
|
650
|
-
nextSyncId =
|
|
651
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
652
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
653
|
-
assert(
|
|
654
|
-
|
|
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
|
+
)
|
|
655
719
|
if unitAddAbility(
|
|
656
720
|
handle,
|
|
657
721
|
fourCC("Amrf")
|
|
658
722
|
) then
|
|
659
|
-
assert(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
663
731
|
end
|
|
664
732
|
unitBySyncId[self.syncId] = self
|
|
665
733
|
local ____ = self.abilities
|
|
666
734
|
end
|
|
667
|
-
function Unit.prototype.getEvent(self,
|
|
668
|
-
self.events = self.events or (
|
|
669
|
-
local eventId = GetHandleId(
|
|
670
|
-
|
|
671
|
-
|
|
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(
|
|
672
741
|
TriggerEvent,
|
|
673
742
|
function(trigger)
|
|
674
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
675
744
|
end,
|
|
676
745
|
collector or (function() return {} end)
|
|
677
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
678
748
|
end
|
|
679
|
-
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))
|
|
680
756
|
end
|
|
681
757
|
function Unit.prototype.onDestroy(self)
|
|
682
758
|
local handle = self.handle
|
|
683
|
-
self
|
|
684
|
-
self[108] = getUnitY(handle)
|
|
685
|
-
if not self._owner then
|
|
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,19 @@ 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_4
|
|
772
850
|
if type(x) == "number" then
|
|
773
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
774
852
|
else
|
|
775
|
-
|
|
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
|
|
776
860
|
end
|
|
777
|
-
return
|
|
861
|
+
return ____temp_4
|
|
778
862
|
end
|
|
779
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
780
864
|
return isUnitAlly(
|
|
@@ -792,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
792
876
|
if type(animation) == "number" then
|
|
793
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
794
878
|
elseif rarity then
|
|
795
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
796
880
|
else
|
|
797
881
|
setUnitAnimation(self.handle, animation)
|
|
798
882
|
end
|
|
799
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
800
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
801
|
-
|
|
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
|
|
802
900
|
end
|
|
803
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
804
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
805
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
806
904
|
end
|
|
807
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -811,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
811
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
812
910
|
end
|
|
813
911
|
function Unit.prototype.explode(self)
|
|
814
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
815
913
|
killUnit(self.handle)
|
|
816
914
|
end
|
|
817
915
|
function Unit.prototype.kill(self)
|
|
818
916
|
killUnit(self.handle)
|
|
819
917
|
end
|
|
820
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
821
|
-
local
|
|
822
|
-
local
|
|
823
|
-
local
|
|
824
|
-
if
|
|
825
|
-
|
|
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
|
|
826
924
|
end
|
|
827
|
-
__TS__SparseArrayPush(
|
|
828
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
829
927
|
end
|
|
830
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
831
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -865,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
865
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
866
964
|
end
|
|
867
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
868
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
869
967
|
end
|
|
870
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
877
975
|
local abilities = self.abilities
|
|
878
976
|
abilities[#abilities + 1] = ability
|
|
879
|
-
return ability
|
|
880
977
|
end
|
|
881
|
-
return
|
|
978
|
+
return ability
|
|
882
979
|
end
|
|
883
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
884
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -892,31 +989,24 @@ end
|
|
|
892
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
893
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
894
991
|
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
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
906
995
|
end
|
|
907
|
-
function Unit.prototype.removeAbility(self,
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
996
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
997
|
+
local abilities = self.abilities
|
|
998
|
+
for i = 1, #abilities do
|
|
999
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1000
|
+
local ability = abilities[i]
|
|
1001
|
+
tremove(abilities, i)
|
|
1002
|
+
if ability.state == 2 then
|
|
1003
|
+
break
|
|
915
1004
|
end
|
|
1005
|
+
ability:destroy()
|
|
1006
|
+
return true
|
|
916
1007
|
end
|
|
917
|
-
return true
|
|
918
1008
|
end
|
|
919
|
-
return
|
|
1009
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
920
1010
|
end
|
|
921
1011
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
922
1012
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -930,9 +1020,6 @@ end
|
|
|
930
1020
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
931
1021
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
932
1022
|
end
|
|
933
|
-
function Unit.prototype.interruptAttack(self)
|
|
934
|
-
unitInterruptAttack(self.handle)
|
|
935
|
-
end
|
|
936
1023
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
937
1024
|
local handle = self.handle
|
|
938
1025
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1003,18 +1090,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1003
1090
|
end
|
|
1004
1091
|
function Unit.prototype.incrementStunCounter(self)
|
|
1005
1092
|
local stunCounter = self[102] or 0
|
|
1006
|
-
if not self[101] or stunCounter >= 0 then
|
|
1093
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1007
1094
|
BlzPauseUnitEx(self.handle, true)
|
|
1008
1095
|
end
|
|
1009
1096
|
self[102] = stunCounter + 1
|
|
1010
1097
|
end
|
|
1011
1098
|
function Unit.prototype.decrementStunCounter(self)
|
|
1012
1099
|
local stunCounter = self[102] or 0
|
|
1013
|
-
if not self[101] or stunCounter >= 1 then
|
|
1100
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1014
1101
|
BlzPauseUnitEx(self.handle, false)
|
|
1015
1102
|
end
|
|
1016
1103
|
self[102] = stunCounter - 1
|
|
1017
1104
|
end
|
|
1105
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1106
|
+
local forceStunCounter = self[103] or 0
|
|
1107
|
+
if forceStunCounter == 0 then
|
|
1108
|
+
local handle = self.handle
|
|
1109
|
+
if not self[101] then
|
|
1110
|
+
for _ = self[102] or 0, -1 do
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
end
|
|
1114
|
+
BlzPauseUnitEx(handle, true)
|
|
1115
|
+
end
|
|
1116
|
+
self[103] = forceStunCounter + 1
|
|
1117
|
+
end
|
|
1118
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1119
|
+
local forceStunCounter = self[103] or 0
|
|
1120
|
+
if forceStunCounter == 1 then
|
|
1121
|
+
local handle = self.handle
|
|
1122
|
+
if not self[101] then
|
|
1123
|
+
for _ = self[102] or 0, -1 do
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
end
|
|
1127
|
+
BlzPauseUnitEx(handle, false)
|
|
1128
|
+
end
|
|
1129
|
+
self[103] = forceStunCounter - 1
|
|
1130
|
+
end
|
|
1018
1131
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1019
1132
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1020
1133
|
owner.handle,
|
|
@@ -1203,7 +1316,7 @@ __TS__SetDescriptor(
|
|
|
1203
1316
|
Unit.prototype,
|
|
1204
1317
|
"isIllusion",
|
|
1205
1318
|
{get = function(self)
|
|
1206
|
-
return
|
|
1319
|
+
return IsUnitIllusion(self.handle)
|
|
1207
1320
|
end},
|
|
1208
1321
|
true
|
|
1209
1322
|
)
|
|
@@ -1211,7 +1324,7 @@ __TS__SetDescriptor(
|
|
|
1211
1324
|
Unit.prototype,
|
|
1212
1325
|
"isStunned",
|
|
1213
1326
|
{get = function(self)
|
|
1214
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1327
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1215
1328
|
end},
|
|
1216
1329
|
true
|
|
1217
1330
|
)
|
|
@@ -1290,13 +1403,13 @@ __TS__SetDescriptor(
|
|
|
1290
1403
|
)
|
|
1291
1404
|
__TS__SetDescriptor(
|
|
1292
1405
|
Unit.prototype,
|
|
1293
|
-
"
|
|
1406
|
+
"primaryAttribute",
|
|
1294
1407
|
{
|
|
1295
1408
|
get = function(self)
|
|
1296
|
-
return
|
|
1409
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1297
1410
|
end,
|
|
1298
|
-
set = function(self,
|
|
1299
|
-
|
|
1411
|
+
set = function(self, primaryAttribute)
|
|
1412
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1300
1413
|
end
|
|
1301
1414
|
},
|
|
1302
1415
|
true
|
|
@@ -1318,19 +1431,6 @@ __TS__SetDescriptor(
|
|
|
1318
1431
|
end},
|
|
1319
1432
|
true
|
|
1320
1433
|
)
|
|
1321
|
-
__TS__SetDescriptor(
|
|
1322
|
-
Unit.prototype,
|
|
1323
|
-
"agilityBase",
|
|
1324
|
-
{
|
|
1325
|
-
get = function(self)
|
|
1326
|
-
return getHeroAgi(self.handle, false)
|
|
1327
|
-
end,
|
|
1328
|
-
set = function(self, agilityBase)
|
|
1329
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1330
|
-
end
|
|
1331
|
-
},
|
|
1332
|
-
true
|
|
1333
|
-
)
|
|
1334
1434
|
__TS__SetDescriptor(
|
|
1335
1435
|
Unit.prototype,
|
|
1336
1436
|
"agilityBonus",
|
|
@@ -1348,19 +1448,6 @@ __TS__SetDescriptor(
|
|
|
1348
1448
|
end},
|
|
1349
1449
|
true
|
|
1350
1450
|
)
|
|
1351
|
-
__TS__SetDescriptor(
|
|
1352
|
-
Unit.prototype,
|
|
1353
|
-
"intelligenceBase",
|
|
1354
|
-
{
|
|
1355
|
-
get = function(self)
|
|
1356
|
-
return getHeroInt(self.handle, false)
|
|
1357
|
-
end,
|
|
1358
|
-
set = function(self, intelligenceBase)
|
|
1359
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1360
|
-
end
|
|
1361
|
-
},
|
|
1362
|
-
true
|
|
1363
|
-
)
|
|
1364
1451
|
__TS__SetDescriptor(
|
|
1365
1452
|
Unit.prototype,
|
|
1366
1453
|
"intelligenceBonus",
|
|
@@ -1409,17 +1496,17 @@ __TS__SetDescriptor(
|
|
|
1409
1496
|
"isTeamGlowVisible",
|
|
1410
1497
|
{
|
|
1411
1498
|
get = function(self)
|
|
1412
|
-
return not self[
|
|
1499
|
+
return not self[107]
|
|
1413
1500
|
end,
|
|
1414
1501
|
set = function(self, isTeamGlowVisible)
|
|
1415
|
-
|
|
1416
|
-
local
|
|
1502
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1503
|
+
local ____temp_8
|
|
1417
1504
|
if not isTeamGlowVisible then
|
|
1418
|
-
|
|
1505
|
+
____temp_8 = true
|
|
1419
1506
|
else
|
|
1420
|
-
|
|
1507
|
+
____temp_8 = nil
|
|
1421
1508
|
end
|
|
1422
|
-
self[
|
|
1509
|
+
self[107] = ____temp_8
|
|
1423
1510
|
end
|
|
1424
1511
|
},
|
|
1425
1512
|
true
|
|
@@ -1428,9 +1515,9 @@ __TS__SetDescriptor(
|
|
|
1428
1515
|
Unit.prototype,
|
|
1429
1516
|
"color",
|
|
1430
1517
|
{set = function(self, color)
|
|
1431
|
-
|
|
1432
|
-
if self[
|
|
1433
|
-
|
|
1518
|
+
SetUnitColor(self.handle, color.handle)
|
|
1519
|
+
if self[107] then
|
|
1520
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1434
1521
|
end
|
|
1435
1522
|
end},
|
|
1436
1523
|
true
|
|
@@ -1453,14 +1540,14 @@ __TS__SetDescriptor(
|
|
|
1453
1540
|
"maxHealth",
|
|
1454
1541
|
{
|
|
1455
1542
|
get = function(self)
|
|
1456
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1543
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1457
1544
|
end,
|
|
1458
1545
|
set = function(self, maxHealth)
|
|
1459
|
-
if maxHealth < 1 and self[
|
|
1460
|
-
self[
|
|
1546
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1547
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1461
1548
|
maxHealth = 1
|
|
1462
1549
|
end
|
|
1463
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1550
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1464
1551
|
end
|
|
1465
1552
|
},
|
|
1466
1553
|
true
|
|
@@ -1502,10 +1589,10 @@ __TS__SetDescriptor(
|
|
|
1502
1589
|
"health",
|
|
1503
1590
|
{
|
|
1504
1591
|
get = function(self)
|
|
1505
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1592
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1506
1593
|
end,
|
|
1507
1594
|
set = function(self, health)
|
|
1508
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1595
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1509
1596
|
end
|
|
1510
1597
|
},
|
|
1511
1598
|
true
|
|
@@ -1581,25 +1668,12 @@ __TS__SetDescriptor(
|
|
|
1581
1668
|
},
|
|
1582
1669
|
true
|
|
1583
1670
|
)
|
|
1584
|
-
__TS__SetDescriptor(
|
|
1585
|
-
Unit.prototype,
|
|
1586
|
-
"flyHeight",
|
|
1587
|
-
{
|
|
1588
|
-
get = function(self)
|
|
1589
|
-
return getUnitFlyHeight(self.handle)
|
|
1590
|
-
end,
|
|
1591
|
-
set = function(self, v)
|
|
1592
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1593
|
-
end
|
|
1594
|
-
},
|
|
1595
|
-
true
|
|
1596
|
-
)
|
|
1597
1671
|
__TS__SetDescriptor(
|
|
1598
1672
|
Unit.prototype,
|
|
1599
1673
|
"x",
|
|
1600
1674
|
{
|
|
1601
1675
|
get = function(self)
|
|
1602
|
-
return self[
|
|
1676
|
+
return self[108] or getUnitX(self.handle)
|
|
1603
1677
|
end,
|
|
1604
1678
|
set = function(self, v)
|
|
1605
1679
|
SetUnitX(self.handle, v)
|
|
@@ -1612,7 +1686,7 @@ __TS__SetDescriptor(
|
|
|
1612
1686
|
"y",
|
|
1613
1687
|
{
|
|
1614
1688
|
get = function(self)
|
|
1615
|
-
return self[
|
|
1689
|
+
return self[109] or getUnitY(self.handle)
|
|
1616
1690
|
end,
|
|
1617
1691
|
set = function(self, v)
|
|
1618
1692
|
SetUnitY(self.handle, v)
|
|
@@ -1698,10 +1772,10 @@ __TS__SetDescriptor(
|
|
|
1698
1772
|
"gold",
|
|
1699
1773
|
{
|
|
1700
1774
|
get = function(self)
|
|
1701
|
-
return
|
|
1775
|
+
return GetResourceAmount(self.handle)
|
|
1702
1776
|
end,
|
|
1703
1777
|
set = function(self, gold)
|
|
1704
|
-
|
|
1778
|
+
SetResourceAmount(self.handle, gold)
|
|
1705
1779
|
end
|
|
1706
1780
|
},
|
|
1707
1781
|
true
|
|
@@ -1717,14 +1791,18 @@ __TS__SetDescriptor(
|
|
|
1717
1791
|
local handle = self.handle
|
|
1718
1792
|
if isPaused and not IsUnitPaused(handle) then
|
|
1719
1793
|
self[101] = true
|
|
1720
|
-
|
|
1721
|
-
|
|
1794
|
+
if (self[103] or 0) <= 0 then
|
|
1795
|
+
for _ = self[102] or 0, -1 do
|
|
1796
|
+
BlzPauseUnitEx(handle, true)
|
|
1797
|
+
end
|
|
1722
1798
|
end
|
|
1723
1799
|
PauseUnit(handle, true)
|
|
1724
1800
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1725
1801
|
PauseUnit(handle, false)
|
|
1726
|
-
|
|
1727
|
-
|
|
1802
|
+
if (self[103] or 0) <= 0 then
|
|
1803
|
+
for _ = self[102] or 0, -1 do
|
|
1804
|
+
BlzPauseUnitEx(handle, false)
|
|
1805
|
+
end
|
|
1728
1806
|
end
|
|
1729
1807
|
self[101] = nil
|
|
1730
1808
|
end
|
|
@@ -1782,20 +1860,6 @@ __TS__SetDescriptor(
|
|
|
1782
1860
|
},
|
|
1783
1861
|
true
|
|
1784
1862
|
)
|
|
1785
|
-
__TS__SetDescriptor(
|
|
1786
|
-
Unit.prototype,
|
|
1787
|
-
"scale",
|
|
1788
|
-
{
|
|
1789
|
-
get = function(self)
|
|
1790
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1791
|
-
end,
|
|
1792
|
-
set = function(self, v)
|
|
1793
|
-
setUnitScale(self.handle, v, v, v)
|
|
1794
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1795
|
-
end
|
|
1796
|
-
},
|
|
1797
|
-
true
|
|
1798
|
-
)
|
|
1799
1863
|
__TS__SetDescriptor(
|
|
1800
1864
|
Unit.prototype,
|
|
1801
1865
|
"timeScale",
|
|
@@ -1822,13 +1886,26 @@ __TS__SetDescriptor(
|
|
|
1822
1886
|
Unit.prototype,
|
|
1823
1887
|
"pathingCollisionRange",
|
|
1824
1888
|
{get = function(self)
|
|
1825
|
-
return 16 * (min(
|
|
1889
|
+
return 16 * (math.min(
|
|
1826
1890
|
getUnitCollisionSize(self.handle) // 16,
|
|
1827
1891
|
3
|
|
1828
1892
|
) + 1)
|
|
1829
1893
|
end},
|
|
1830
1894
|
true
|
|
1831
1895
|
)
|
|
1896
|
+
__TS__SetDescriptor(
|
|
1897
|
+
Unit.prototype,
|
|
1898
|
+
"movementType",
|
|
1899
|
+
{
|
|
1900
|
+
get = function(self)
|
|
1901
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1902
|
+
end,
|
|
1903
|
+
set = function(self, movementType)
|
|
1904
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1905
|
+
end
|
|
1906
|
+
},
|
|
1907
|
+
true
|
|
1908
|
+
)
|
|
1832
1909
|
__TS__SetDescriptor(
|
|
1833
1910
|
Unit.prototype,
|
|
1834
1911
|
"pathing",
|
|
@@ -1919,30 +1996,6 @@ __TS__SetDescriptor(
|
|
|
1919
1996
|
end},
|
|
1920
1997
|
true
|
|
1921
1998
|
)
|
|
1922
|
-
__TS__SetDescriptor(
|
|
1923
|
-
Unit.prototype,
|
|
1924
|
-
"onUnitInRange",
|
|
1925
|
-
{get = function(self)
|
|
1926
|
-
local handle = self.handle
|
|
1927
|
-
local onUnitInRange = setmetatable(
|
|
1928
|
-
{},
|
|
1929
|
-
{__index = function(self, value)
|
|
1930
|
-
local event = __TS__New(
|
|
1931
|
-
TriggerEvent,
|
|
1932
|
-
function(trigger)
|
|
1933
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1934
|
-
end,
|
|
1935
|
-
function() return ____exports.Unit:of(handle) end
|
|
1936
|
-
)
|
|
1937
|
-
rawset(self, value, event)
|
|
1938
|
-
return event
|
|
1939
|
-
end}
|
|
1940
|
-
)
|
|
1941
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1942
|
-
return onUnitInRange
|
|
1943
|
-
end},
|
|
1944
|
-
true
|
|
1945
|
-
)
|
|
1946
1999
|
__TS__SetDescriptor(
|
|
1947
2000
|
Unit.prototype,
|
|
1948
2001
|
"onManaEqual",
|
|
@@ -2010,6 +2063,14 @@ __TS__SetDescriptor(
|
|
|
2010
2063
|
end},
|
|
2011
2064
|
true
|
|
2012
2065
|
)
|
|
2066
|
+
__TS__SetDescriptor(
|
|
2067
|
+
Unit.prototype,
|
|
2068
|
+
"targetAcquiredEvent",
|
|
2069
|
+
{get = function(self)
|
|
2070
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2071
|
+
end},
|
|
2072
|
+
true
|
|
2073
|
+
)
|
|
2013
2074
|
__TS__SetDescriptor(
|
|
2014
2075
|
Unit.prototype,
|
|
2015
2076
|
"onSelect",
|
|
@@ -2070,6 +2131,11 @@ __TS__SetDescriptor(
|
|
|
2070
2131
|
end},
|
|
2071
2132
|
true
|
|
2072
2133
|
)
|
|
2134
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2135
|
+
____exports.UnitTriggerEvent,
|
|
2136
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2137
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2138
|
+
)
|
|
2073
2139
|
Unit.deathEvent = __TS__New(
|
|
2074
2140
|
____exports.UnitTriggerEvent,
|
|
2075
2141
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2087,7 +2153,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2087
2153
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2088
2154
|
dead[unit] = true
|
|
2089
2155
|
end)
|
|
2090
|
-
____exports.Unit.onImmediateOrder[
|
|
2156
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2091
2157
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2092
2158
|
dead[unit] = false
|
|
2093
2159
|
invoke(event, unit)
|
|
@@ -2104,7 +2170,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2104
2170
|
invoke(event, unit)
|
|
2105
2171
|
end
|
|
2106
2172
|
end
|
|
2107
|
-
____exports.Unit.onImmediateOrder[
|
|
2173
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2108
2174
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2109
2175
|
Timer:run(ifNotLeft, unit)
|
|
2110
2176
|
end
|
|
@@ -2145,25 +2211,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2145
2211
|
InitializingEvent,
|
|
2146
2212
|
function(event)
|
|
2147
2213
|
local function listener(unit, id)
|
|
2148
|
-
local
|
|
2214
|
+
local ____GetSpellTargetUnit_result_11
|
|
2149
2215
|
if GetSpellTargetUnit() then
|
|
2150
|
-
|
|
2216
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2151
2217
|
else
|
|
2152
|
-
local
|
|
2218
|
+
local ____GetSpellTargetItem_result_10
|
|
2153
2219
|
if GetSpellTargetItem() then
|
|
2154
|
-
|
|
2220
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2155
2221
|
else
|
|
2156
|
-
local
|
|
2222
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2157
2223
|
if GetSpellTargetDestructable() then
|
|
2158
|
-
|
|
2224
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2159
2225
|
else
|
|
2160
|
-
|
|
2226
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2161
2227
|
end
|
|
2162
|
-
|
|
2228
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2163
2229
|
end
|
|
2164
|
-
|
|
2230
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2165
2231
|
end
|
|
2166
|
-
local target =
|
|
2232
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2167
2233
|
if target then
|
|
2168
2234
|
invoke(event, unit, id, target)
|
|
2169
2235
|
end
|
|
@@ -2371,38 +2437,57 @@ Unit.onDamaging = (function()
|
|
|
2371
2437
|
if source and source.typeId == dummyUnitId then
|
|
2372
2438
|
source = nil
|
|
2373
2439
|
end
|
|
2374
|
-
local target = BlzGetEventDamageTarget()
|
|
2440
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2441
|
+
local metadata = damageMetadataByTarget[target]
|
|
2442
|
+
damageMetadataByTarget[target] = nil
|
|
2375
2443
|
local data = {
|
|
2376
2444
|
amount = GetEventDamage(),
|
|
2377
|
-
attackType = BlzGetEventAttackType(),
|
|
2445
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2378
2446
|
damageType = BlzGetEventDamageType(),
|
|
2379
2447
|
weaponType = BlzGetEventWeaponType(),
|
|
2380
|
-
|
|
2448
|
+
metadata = metadata,
|
|
2449
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2450
|
+
originalAmount = GetEventDamage(),
|
|
2451
|
+
originalMetadata = metadata,
|
|
2452
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2381
2453
|
}
|
|
2382
2454
|
if data.isAttack and source then
|
|
2383
|
-
|
|
2384
|
-
if weapon == -1 then
|
|
2385
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2386
|
-
weapon = 0
|
|
2387
|
-
end
|
|
2388
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2455
|
+
data.weapon = source:chooseWeapon(target)
|
|
2389
2456
|
end
|
|
2390
2457
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2391
2458
|
invoke(
|
|
2392
2459
|
event,
|
|
2393
2460
|
source,
|
|
2394
|
-
|
|
2461
|
+
target,
|
|
2395
2462
|
setmetatable(
|
|
2396
2463
|
{},
|
|
2397
2464
|
{
|
|
2398
2465
|
__index = data,
|
|
2399
2466
|
__newindex = function(self, key, value)
|
|
2400
|
-
damageSetters[key]
|
|
2467
|
+
local damageSetter = damageSetters[key]
|
|
2468
|
+
if damageSetter ~= nil then
|
|
2469
|
+
damageSetter(value)
|
|
2470
|
+
end
|
|
2401
2471
|
data[key] = value
|
|
2402
2472
|
end
|
|
2403
2473
|
}
|
|
2404
2474
|
)
|
|
2405
2475
|
)
|
|
2476
|
+
if data[0] and source then
|
|
2477
|
+
local sourceOwner = source.owner.handle
|
|
2478
|
+
data[1] = sourceOwner
|
|
2479
|
+
local targetOwner = target.owner.handle
|
|
2480
|
+
data[2] = targetOwner
|
|
2481
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2482
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2483
|
+
data[3] = true
|
|
2484
|
+
end
|
|
2485
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2486
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2487
|
+
data[4] = true
|
|
2488
|
+
end
|
|
2489
|
+
end
|
|
2490
|
+
damagingEventByTarget[target] = data
|
|
2406
2491
|
return
|
|
2407
2492
|
end
|
|
2408
2493
|
BlzSetEventDamage(0)
|
|
@@ -2410,7 +2495,7 @@ Unit.onDamaging = (function()
|
|
|
2410
2495
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2411
2496
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2412
2497
|
local sourceOwner = source.owner.handle
|
|
2413
|
-
local targetOwner =
|
|
2498
|
+
local targetOwner = target.owner.handle
|
|
2414
2499
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2415
2500
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2416
2501
|
Timer:run(function()
|
|
@@ -2426,23 +2511,19 @@ Unit.onDamaging = (function()
|
|
|
2426
2511
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2427
2512
|
local condition = ____value[1]
|
|
2428
2513
|
local action = ____value[2]
|
|
2429
|
-
if condition(
|
|
2430
|
-
source,
|
|
2431
|
-
____exports.Unit:of(target),
|
|
2432
|
-
data
|
|
2433
|
-
) then
|
|
2514
|
+
if condition(source, target, data) then
|
|
2434
2515
|
action(
|
|
2435
2516
|
source,
|
|
2436
|
-
|
|
2517
|
+
target,
|
|
2437
2518
|
setmetatable(
|
|
2438
2519
|
{fire = function()
|
|
2439
2520
|
UnitDamageTarget(
|
|
2440
2521
|
source.handle,
|
|
2441
|
-
target,
|
|
2522
|
+
target.handle,
|
|
2442
2523
|
data.amount,
|
|
2443
2524
|
true,
|
|
2444
2525
|
true,
|
|
2445
|
-
data.attackType,
|
|
2526
|
+
attackTypeToNative(data.attackType),
|
|
2446
2527
|
data.damageType,
|
|
2447
2528
|
data.weaponType
|
|
2448
2529
|
)
|
|
@@ -2469,30 +2550,54 @@ Unit.onDamage = __TS__New(
|
|
|
2469
2550
|
if source and source.typeId == dummyUnitId then
|
|
2470
2551
|
source = nil
|
|
2471
2552
|
end
|
|
2553
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2554
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2555
|
+
damagingEventByTarget[target] = nil
|
|
2472
2556
|
local data = {
|
|
2473
2557
|
amount = GetEventDamage(),
|
|
2474
|
-
attackType = BlzGetEventAttackType(),
|
|
2558
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2475
2559
|
damageType = BlzGetEventDamageType(),
|
|
2476
2560
|
weaponType = BlzGetEventWeaponType(),
|
|
2561
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2477
2562
|
isAttack = BlzGetEventIsAttack(),
|
|
2478
|
-
originalAmount = GetEventDamage(),
|
|
2563
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2564
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2479
2565
|
preventDeath = damageEventPreventDeath
|
|
2480
2566
|
}
|
|
2567
|
+
if damagingEvent then
|
|
2568
|
+
for key, value in pairs(damagingEvent) do
|
|
2569
|
+
if isAttribute(key) then
|
|
2570
|
+
data[key] = value
|
|
2571
|
+
end
|
|
2572
|
+
end
|
|
2573
|
+
local sourceOwner = damagingEvent[1]
|
|
2574
|
+
if sourceOwner then
|
|
2575
|
+
local targetOwner = damagingEvent[2]
|
|
2576
|
+
if damagingEvent[3] then
|
|
2577
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
if damagingEvent[4] then
|
|
2580
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2581
|
+
end
|
|
2582
|
+
end
|
|
2583
|
+
end
|
|
2481
2584
|
local evData = setmetatable(
|
|
2482
2585
|
{},
|
|
2483
2586
|
{
|
|
2484
2587
|
__index = data,
|
|
2485
2588
|
__newindex = function(self, key, value)
|
|
2486
|
-
damageSetters[key]
|
|
2589
|
+
local damageSetter = damageSetters[key]
|
|
2590
|
+
if damageSetter ~= nil then
|
|
2591
|
+
damageSetter(value)
|
|
2592
|
+
end
|
|
2487
2593
|
data[key] = value
|
|
2488
2594
|
end
|
|
2489
2595
|
}
|
|
2490
2596
|
)
|
|
2491
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2492
2597
|
invoke(event, source, target, evData)
|
|
2493
2598
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2494
2599
|
local bonusHealth = math.ceil(evData.amount)
|
|
2495
|
-
target[
|
|
2600
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2496
2601
|
BlzSetUnitMaxHP(
|
|
2497
2602
|
target.handle,
|
|
2498
2603
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2506,7 +2611,7 @@ Unit.onDamage = __TS__New(
|
|
|
2506
2611
|
evData[0],
|
|
2507
2612
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2508
2613
|
)
|
|
2509
|
-
target[
|
|
2614
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2510
2615
|
SetWidgetLife(
|
|
2511
2616
|
target.handle,
|
|
2512
2617
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2532,7 +2637,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2532
2637
|
function()
|
|
2533
2638
|
local unit = getTriggerUnit()
|
|
2534
2639
|
local item = getManipulatedItem()
|
|
2535
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2640
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2536
2641
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2537
2642
|
end
|
|
2538
2643
|
return IgnoreEvent
|
|
@@ -2542,10 +2647,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2542
2647
|
____exports.UnitTriggerEvent,
|
|
2543
2648
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2544
2649
|
function()
|
|
2545
|
-
local
|
|
2546
|
-
local
|
|
2547
|
-
if getUnitTypeId(
|
|
2548
|
-
|
|
2650
|
+
local unitHandle = getTriggerUnit()
|
|
2651
|
+
local itemHandle = getManipulatedItem()
|
|
2652
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2653
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2654
|
+
local item = Item:of(itemHandle)
|
|
2655
|
+
if ownerByItem[item] ~= unit then
|
|
2656
|
+
return unit, item
|
|
2657
|
+
end
|
|
2549
2658
|
end
|
|
2550
2659
|
return IgnoreEvent
|
|
2551
2660
|
end
|
|
@@ -2556,59 +2665,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2556
2665
|
function()
|
|
2557
2666
|
local unit = getTriggerUnit()
|
|
2558
2667
|
local item = getManipulatedItem()
|
|
2559
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2668
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2560
2669
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2561
2670
|
end
|
|
2562
2671
|
return IgnoreEvent
|
|
2563
2672
|
end
|
|
2564
2673
|
)
|
|
2565
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2566
|
-
____exports.UnitTriggerEvent,
|
|
2567
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2568
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2569
|
-
)
|
|
2570
2674
|
__TS__ObjectDefineProperty(
|
|
2571
2675
|
Unit,
|
|
2572
|
-
"
|
|
2676
|
+
"itemChargesChangedEvent",
|
|
2573
2677
|
{get = function(self)
|
|
2574
2678
|
local event = __TS__New(Event)
|
|
2575
|
-
|
|
2576
|
-
local
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
if item ~= nil then
|
|
2580
|
-
invoke(event, unit, item)
|
|
2581
|
-
end
|
|
2679
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2680
|
+
local unit = item.owner
|
|
2681
|
+
if unit ~= nil then
|
|
2682
|
+
invoke(event, unit, item)
|
|
2582
2683
|
end
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2586
|
-
end
|
|
2587
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2588
|
-
return event
|
|
2589
|
-
end}
|
|
2590
|
-
)
|
|
2591
|
-
__TS__ObjectDefineProperty(
|
|
2592
|
-
Unit,
|
|
2593
|
-
"itemMoveOrderEvent",
|
|
2594
|
-
{get = function(self)
|
|
2595
|
-
local event = __TS__New(Event)
|
|
2596
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2597
|
-
local slotTo = order - orderId("moveslot0")
|
|
2598
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2599
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2600
|
-
if slotFrom ~= nil then
|
|
2601
|
-
invoke(
|
|
2602
|
-
event,
|
|
2603
|
-
unit,
|
|
2604
|
-
item,
|
|
2605
|
-
slotFrom,
|
|
2606
|
-
slotTo
|
|
2607
|
-
)
|
|
2608
|
-
end
|
|
2609
|
-
end)
|
|
2610
|
-
end
|
|
2611
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2684
|
+
end)
|
|
2685
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2612
2686
|
return event
|
|
2613
2687
|
end}
|
|
2614
2688
|
)
|
|
@@ -2637,6 +2711,10 @@ __TS__ObjectDefineProperty(
|
|
|
2637
2711
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2638
2712
|
return destroyEvent
|
|
2639
2713
|
end}
|
|
2714
|
+
)
|
|
2715
|
+
Unit.synchronize = synchronizer(
|
|
2716
|
+
function(unit) return unit.syncId end,
|
|
2717
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2640
2718
|
);
|
|
2641
2719
|
(function(self)
|
|
2642
2720
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2654,11 +2732,7 @@ __TS__ObjectDefineProperty(
|
|
|
2654
2732
|
function(____, id) return fourCC(id) end
|
|
2655
2733
|
)
|
|
2656
2734
|
end)
|
|
2657
|
-
for ____, leaveOrderId in ipairs({
|
|
2658
|
-
orderId("undefend"),
|
|
2659
|
-
orderId("magicundefense"),
|
|
2660
|
-
orderId("unimmolation")
|
|
2661
|
-
}) do
|
|
2735
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2662
2736
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2663
2737
|
local handle = unit.handle
|
|
2664
2738
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2666,7 +2740,8 @@ __TS__ObjectDefineProperty(
|
|
|
2666
2740
|
return
|
|
2667
2741
|
end
|
|
2668
2742
|
end
|
|
2669
|
-
unit:
|
|
2743
|
+
unit:saveData()
|
|
2744
|
+
Timer:run(unit, "destroy")
|
|
2670
2745
|
end)
|
|
2671
2746
|
end
|
|
2672
2747
|
end)(Unit)
|