warscript 0.0.1-dev.9cbb1ff → 0.0.1-dev.9d07b64
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 +11 -1
- package/core/types/effect.lua +43 -77
- 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 +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +3 -1
- package/core/types/timer.lua +27 -2
- 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 +1718 -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 +5 -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 +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +16 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +13 -6
- package/engine/behaviour/ability.lua +109 -25
- 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 +40 -3
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +114 -58
- package/engine/buff.lua +567 -303
- 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/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 +98 -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 +73 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +35 -36
- package/engine/internal/unit.lua +381 -336
- 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 +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
- 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/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- 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/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/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/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/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/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/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 +33 -8
- package/engine/object-data/entry/ability-type.lua +291 -15
- package/engine/object-data/entry/buff-type/applicable.lua +122 -111
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- 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 +2 -2
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +552 -98
- 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 +18 -7
- package/engine/object-field.lua +294 -135
- 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 +45 -0
- package/engine/standard/entries/buff-type.lua +43 -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 +4 -1
- package/utility/linked-set.lua +46 -1
- package/utility/lua-maps.d.ts +12 -2
- package/utility/lua-maps.lua +37 -2
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -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,41 +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 resetUnitAnimation = ResetUnitAnimation
|
|
62
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
63
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
64
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
65
73
|
local getHeroStr = GetHeroStr
|
|
66
74
|
local getHeroAgi = GetHeroAgi
|
|
67
75
|
local getHeroInt = GetHeroInt
|
|
68
|
-
local setHeroStr = SetHeroStr
|
|
69
|
-
local setHeroAgi = SetHeroAgi
|
|
70
|
-
local setHeroInt = SetHeroInt
|
|
71
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
72
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
73
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
74
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
75
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
76
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
77
|
-
local setUnitScale = SetUnitScale
|
|
78
82
|
local setUnitPosition = SetUnitPosition
|
|
79
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
80
84
|
local getHandleId = GetHandleId
|
|
81
85
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
82
86
|
local createUnit = CreateUnit
|
|
83
87
|
local killUnit = KillUnit
|
|
84
|
-
local setUnitExploded = SetUnitExploded
|
|
85
88
|
local removeUnit = RemoveUnit
|
|
86
89
|
local getUnitTypeId = GetUnitTypeId
|
|
87
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -97,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
97
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
98
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
99
102
|
local isUnitInRange = IsUnitInRange
|
|
100
|
-
local setResourceAmount = SetResourceAmount
|
|
101
|
-
local getResourceAmount = GetResourceAmount
|
|
102
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
103
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
104
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
105
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
106
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
107
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
108
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
109
109
|
local isUnitInvisible = IsUnitInvisible
|
|
110
110
|
local isUnitVisible = IsUnitVisible
|
|
111
111
|
local getUnitX = GetUnitX
|
|
@@ -122,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
122
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
123
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
124
124
|
local unitAlive = UnitAlive
|
|
125
|
-
local unitAddType = UnitAddType
|
|
126
|
-
local unitRemoveType = UnitRemoveType
|
|
127
|
-
local isUnitIllusion = IsUnitIllusion
|
|
128
|
-
local isUnitType = IsUnitType
|
|
129
125
|
local isUnitAlly = IsUnitAlly
|
|
130
126
|
local isUnitEnemy = IsUnitEnemy
|
|
131
127
|
local getOwningPlayer = GetOwningPlayer
|
|
132
|
-
local setUnitColor = SetUnitColor
|
|
133
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
134
128
|
____exports.UnitClassification = {}
|
|
135
129
|
local UnitClassification = ____exports.UnitClassification
|
|
136
130
|
do
|
|
@@ -140,6 +134,7 @@ do
|
|
|
140
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
141
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
142
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
143
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
144
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
145
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -347,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
347
342
|
}
|
|
348
343
|
)
|
|
349
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
350
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
351
349
|
if self[0] ~= nil then
|
|
352
350
|
return
|
|
@@ -358,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
358
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
359
357
|
end
|
|
360
358
|
end
|
|
361
|
-
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
|
+
}
|
|
362
367
|
local jlimitopByOperator = {
|
|
363
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
364
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -376,15 +381,27 @@ local modifiers = {
|
|
|
376
381
|
end,
|
|
377
382
|
armor = function(unit, value)
|
|
378
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
379
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
380
389
|
end
|
|
381
|
-
local ability = assert(
|
|
382
|
-
|
|
383
|
-
ability,
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
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
|
+
)
|
|
388
405
|
end
|
|
389
406
|
}
|
|
390
407
|
local getters = {
|
|
@@ -402,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
402
419
|
self.unit = unit
|
|
403
420
|
self.index = index
|
|
404
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
|
+
)
|
|
405
435
|
__TS__SetDescriptor(
|
|
406
436
|
UnitWeapon.prototype,
|
|
407
437
|
"cooldown",
|
|
@@ -436,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
436
466
|
},
|
|
437
467
|
true
|
|
438
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
|
+
)
|
|
439
482
|
__TS__SetDescriptor(
|
|
440
483
|
UnitWeapon.prototype,
|
|
441
484
|
"damageBase",
|
|
@@ -547,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
547
590
|
},
|
|
548
591
|
true
|
|
549
592
|
)
|
|
550
|
-
local unitInventorySize = UnitInventorySize
|
|
551
|
-
local unitItemInSlot = UnitItemInSlot
|
|
552
593
|
local getItemAbility = BlzGetItemAbility
|
|
553
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
554
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -566,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
566
607
|
____exports.Unit:of(unit)
|
|
567
608
|
)
|
|
568
609
|
end
|
|
569
|
-
for i = 0,
|
|
570
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
571
612
|
if getItemAbility(item, abilityId) == ability then
|
|
572
613
|
return ItemAbility:of(
|
|
573
614
|
ability,
|
|
@@ -612,26 +653,30 @@ local fieldSetters = {
|
|
|
612
653
|
}
|
|
613
654
|
local dummies = {}
|
|
614
655
|
for ____, player in ipairs(Player.all) do
|
|
615
|
-
local dummy = assert(
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
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
|
+
)
|
|
622
667
|
ShowUnit(dummy, false)
|
|
623
668
|
dummies[player] = dummy
|
|
624
669
|
end
|
|
625
670
|
local function delayHealthChecksCallback(unit)
|
|
626
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
627
672
|
if counter ~= 0 then
|
|
628
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
629
674
|
return
|
|
630
675
|
end
|
|
631
|
-
unit[
|
|
632
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
633
678
|
if healthBonus ~= nil then
|
|
634
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
635
680
|
local handle = unit.handle
|
|
636
681
|
BlzSetUnitMaxHP(
|
|
637
682
|
handle,
|
|
@@ -640,52 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
640
685
|
end
|
|
641
686
|
end
|
|
642
687
|
local nextSyncId = 1
|
|
643
|
-
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
|
|
644
699
|
____exports.Unit = __TS__Class()
|
|
645
700
|
local Unit = ____exports.Unit
|
|
646
701
|
Unit.name = "Unit"
|
|
647
702
|
__TS__ClassExtends(Unit, Handle)
|
|
648
703
|
function Unit.prototype.____constructor(self, handle)
|
|
649
704
|
Handle.prototype.____constructor(self, handle)
|
|
650
|
-
local
|
|
651
|
-
nextSyncId =
|
|
652
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
653
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
654
|
-
assert(
|
|
655
|
-
|
|
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
|
+
)
|
|
656
719
|
if unitAddAbility(
|
|
657
720
|
handle,
|
|
658
721
|
fourCC("Amrf")
|
|
659
722
|
) then
|
|
660
|
-
assert(
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
664
731
|
end
|
|
665
732
|
unitBySyncId[self.syncId] = self
|
|
666
733
|
local ____ = self.abilities
|
|
667
734
|
end
|
|
668
|
-
function Unit.prototype.getEvent(self,
|
|
669
|
-
self.events = self.events or (
|
|
670
|
-
local eventId = GetHandleId(
|
|
671
|
-
|
|
672
|
-
|
|
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(
|
|
673
741
|
TriggerEvent,
|
|
674
742
|
function(trigger)
|
|
675
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
676
744
|
end,
|
|
677
745
|
collector or (function() return {} end)
|
|
678
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
679
748
|
end
|
|
680
|
-
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))
|
|
681
756
|
end
|
|
682
757
|
function Unit.prototype.onDestroy(self)
|
|
683
758
|
local handle = self.handle
|
|
684
|
-
self
|
|
685
|
-
self[108] = getUnitY(handle)
|
|
686
|
-
if not self._owner then
|
|
687
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
688
|
-
end
|
|
759
|
+
self:saveData()
|
|
689
760
|
local abilities = self.abilities
|
|
690
761
|
for ____, ability in ipairs(abilities) do
|
|
691
762
|
ability:destroy()
|
|
@@ -703,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
703
774
|
end
|
|
704
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
705
776
|
if eventsToDestroy ~= nil then
|
|
706
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
707
780
|
end
|
|
708
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
709
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -721,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
721
794
|
self._attackHandlers = handlers
|
|
722
795
|
if #handlers == 1 then
|
|
723
796
|
local handle = self.handle
|
|
724
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
725
802
|
end
|
|
726
803
|
return handler
|
|
727
804
|
end
|
|
@@ -750,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
750
827
|
end}
|
|
751
828
|
end
|
|
752
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
753
|
-
local
|
|
754
|
-
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
|
|
755
832
|
end
|
|
756
833
|
function Unit.prototype.addClassification(self, classification)
|
|
757
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
758
835
|
end
|
|
759
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
760
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
761
838
|
end
|
|
762
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
763
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
764
841
|
end
|
|
765
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
766
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -769,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
769
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
770
847
|
end
|
|
771
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
772
|
-
local
|
|
849
|
+
local ____temp_4
|
|
773
850
|
if type(x) == "number" then
|
|
774
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
775
852
|
else
|
|
776
|
-
|
|
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
|
|
777
860
|
end
|
|
778
|
-
return
|
|
861
|
+
return ____temp_4
|
|
779
862
|
end
|
|
780
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
781
864
|
return isUnitAlly(
|
|
@@ -793,19 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
793
876
|
if type(animation) == "number" then
|
|
794
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
795
878
|
elseif rarity then
|
|
796
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
797
880
|
else
|
|
798
881
|
setUnitAnimation(self.handle, animation)
|
|
799
882
|
end
|
|
800
883
|
end
|
|
801
884
|
function Unit.prototype.resetAnimation(self)
|
|
802
|
-
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
803
886
|
end
|
|
804
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
805
|
-
|
|
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
|
|
806
900
|
end
|
|
807
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
808
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
809
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
810
904
|
end
|
|
811
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -815,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
815
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
816
910
|
end
|
|
817
911
|
function Unit.prototype.explode(self)
|
|
818
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
819
913
|
killUnit(self.handle)
|
|
820
914
|
end
|
|
821
915
|
function Unit.prototype.kill(self)
|
|
822
916
|
killUnit(self.handle)
|
|
823
917
|
end
|
|
824
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
825
|
-
local
|
|
826
|
-
local
|
|
827
|
-
local
|
|
828
|
-
if
|
|
829
|
-
|
|
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
|
|
830
924
|
end
|
|
831
|
-
__TS__SparseArrayPush(
|
|
832
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
833
927
|
end
|
|
834
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
835
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -869,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
869
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
870
964
|
end
|
|
871
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
872
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
873
967
|
end
|
|
874
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
881
975
|
local abilities = self.abilities
|
|
882
976
|
abilities[#abilities + 1] = ability
|
|
883
|
-
return ability
|
|
884
977
|
end
|
|
885
|
-
return
|
|
978
|
+
return ability
|
|
886
979
|
end
|
|
887
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
888
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -896,31 +989,24 @@ end
|
|
|
896
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
897
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
898
991
|
end
|
|
899
|
-
function Unit.prototype.
|
|
900
|
-
local
|
|
901
|
-
|
|
902
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
903
|
-
return nil
|
|
904
|
-
end
|
|
905
|
-
return UnitAbility:of(
|
|
906
|
-
getUnitAbility(self.handle, abilityId),
|
|
907
|
-
abilityId,
|
|
908
|
-
self
|
|
909
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
910
995
|
end
|
|
911
|
-
function Unit.prototype.removeAbility(self,
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
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
|
|
919
1004
|
end
|
|
1005
|
+
ability:destroy()
|
|
1006
|
+
return true
|
|
920
1007
|
end
|
|
921
|
-
return true
|
|
922
1008
|
end
|
|
923
|
-
return
|
|
1009
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
924
1010
|
end
|
|
925
1011
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
926
1012
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -934,9 +1020,6 @@ end
|
|
|
934
1020
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
935
1021
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
936
1022
|
end
|
|
937
|
-
function Unit.prototype.interruptAttack(self)
|
|
938
|
-
unitInterruptAttack(self.handle)
|
|
939
|
-
end
|
|
940
1023
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
941
1024
|
local handle = self.handle
|
|
942
1025
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1007,18 +1090,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1007
1090
|
end
|
|
1008
1091
|
function Unit.prototype.incrementStunCounter(self)
|
|
1009
1092
|
local stunCounter = self[102] or 0
|
|
1010
|
-
if not self[101] or stunCounter >= 0 then
|
|
1093
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1011
1094
|
BlzPauseUnitEx(self.handle, true)
|
|
1012
1095
|
end
|
|
1013
1096
|
self[102] = stunCounter + 1
|
|
1014
1097
|
end
|
|
1015
1098
|
function Unit.prototype.decrementStunCounter(self)
|
|
1016
1099
|
local stunCounter = self[102] or 0
|
|
1017
|
-
if not self[101] or stunCounter >= 1 then
|
|
1100
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1018
1101
|
BlzPauseUnitEx(self.handle, false)
|
|
1019
1102
|
end
|
|
1020
1103
|
self[102] = stunCounter - 1
|
|
1021
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
|
|
1022
1131
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1023
1132
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1024
1133
|
owner.handle,
|
|
@@ -1207,7 +1316,7 @@ __TS__SetDescriptor(
|
|
|
1207
1316
|
Unit.prototype,
|
|
1208
1317
|
"isIllusion",
|
|
1209
1318
|
{get = function(self)
|
|
1210
|
-
return
|
|
1319
|
+
return IsUnitIllusion(self.handle)
|
|
1211
1320
|
end},
|
|
1212
1321
|
true
|
|
1213
1322
|
)
|
|
@@ -1215,7 +1324,7 @@ __TS__SetDescriptor(
|
|
|
1215
1324
|
Unit.prototype,
|
|
1216
1325
|
"isStunned",
|
|
1217
1326
|
{get = function(self)
|
|
1218
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1327
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1219
1328
|
end},
|
|
1220
1329
|
true
|
|
1221
1330
|
)
|
|
@@ -1305,19 +1414,6 @@ __TS__SetDescriptor(
|
|
|
1305
1414
|
},
|
|
1306
1415
|
true
|
|
1307
1416
|
)
|
|
1308
|
-
__TS__SetDescriptor(
|
|
1309
|
-
Unit.prototype,
|
|
1310
|
-
"strengthBase",
|
|
1311
|
-
{
|
|
1312
|
-
get = function(self)
|
|
1313
|
-
return getHeroStr(self.handle, false)
|
|
1314
|
-
end,
|
|
1315
|
-
set = function(self, strengthBase)
|
|
1316
|
-
setHeroStr(self.handle, strengthBase, true)
|
|
1317
|
-
end
|
|
1318
|
-
},
|
|
1319
|
-
true
|
|
1320
|
-
)
|
|
1321
1417
|
__TS__SetDescriptor(
|
|
1322
1418
|
Unit.prototype,
|
|
1323
1419
|
"strengthBonus",
|
|
@@ -1335,19 +1431,6 @@ __TS__SetDescriptor(
|
|
|
1335
1431
|
end},
|
|
1336
1432
|
true
|
|
1337
1433
|
)
|
|
1338
|
-
__TS__SetDescriptor(
|
|
1339
|
-
Unit.prototype,
|
|
1340
|
-
"agilityBase",
|
|
1341
|
-
{
|
|
1342
|
-
get = function(self)
|
|
1343
|
-
return getHeroAgi(self.handle, false)
|
|
1344
|
-
end,
|
|
1345
|
-
set = function(self, agilityBase)
|
|
1346
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1347
|
-
end
|
|
1348
|
-
},
|
|
1349
|
-
true
|
|
1350
|
-
)
|
|
1351
1434
|
__TS__SetDescriptor(
|
|
1352
1435
|
Unit.prototype,
|
|
1353
1436
|
"agilityBonus",
|
|
@@ -1365,19 +1448,6 @@ __TS__SetDescriptor(
|
|
|
1365
1448
|
end},
|
|
1366
1449
|
true
|
|
1367
1450
|
)
|
|
1368
|
-
__TS__SetDescriptor(
|
|
1369
|
-
Unit.prototype,
|
|
1370
|
-
"intelligenceBase",
|
|
1371
|
-
{
|
|
1372
|
-
get = function(self)
|
|
1373
|
-
return getHeroInt(self.handle, false)
|
|
1374
|
-
end,
|
|
1375
|
-
set = function(self, intelligenceBase)
|
|
1376
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1377
|
-
end
|
|
1378
|
-
},
|
|
1379
|
-
true
|
|
1380
|
-
)
|
|
1381
1451
|
__TS__SetDescriptor(
|
|
1382
1452
|
Unit.prototype,
|
|
1383
1453
|
"intelligenceBonus",
|
|
@@ -1426,17 +1496,17 @@ __TS__SetDescriptor(
|
|
|
1426
1496
|
"isTeamGlowVisible",
|
|
1427
1497
|
{
|
|
1428
1498
|
get = function(self)
|
|
1429
|
-
return not self[
|
|
1499
|
+
return not self[107]
|
|
1430
1500
|
end,
|
|
1431
1501
|
set = function(self, isTeamGlowVisible)
|
|
1432
|
-
|
|
1433
|
-
local
|
|
1502
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1503
|
+
local ____temp_8
|
|
1434
1504
|
if not isTeamGlowVisible then
|
|
1435
|
-
|
|
1505
|
+
____temp_8 = true
|
|
1436
1506
|
else
|
|
1437
|
-
|
|
1507
|
+
____temp_8 = nil
|
|
1438
1508
|
end
|
|
1439
|
-
self[
|
|
1509
|
+
self[107] = ____temp_8
|
|
1440
1510
|
end
|
|
1441
1511
|
},
|
|
1442
1512
|
true
|
|
@@ -1445,9 +1515,9 @@ __TS__SetDescriptor(
|
|
|
1445
1515
|
Unit.prototype,
|
|
1446
1516
|
"color",
|
|
1447
1517
|
{set = function(self, color)
|
|
1448
|
-
|
|
1449
|
-
if self[
|
|
1450
|
-
|
|
1518
|
+
SetUnitColor(self.handle, color.handle)
|
|
1519
|
+
if self[107] then
|
|
1520
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1451
1521
|
end
|
|
1452
1522
|
end},
|
|
1453
1523
|
true
|
|
@@ -1470,14 +1540,14 @@ __TS__SetDescriptor(
|
|
|
1470
1540
|
"maxHealth",
|
|
1471
1541
|
{
|
|
1472
1542
|
get = function(self)
|
|
1473
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1543
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1474
1544
|
end,
|
|
1475
1545
|
set = function(self, maxHealth)
|
|
1476
|
-
if maxHealth < 1 and self[
|
|
1477
|
-
self[
|
|
1546
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1547
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1478
1548
|
maxHealth = 1
|
|
1479
1549
|
end
|
|
1480
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1550
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1481
1551
|
end
|
|
1482
1552
|
},
|
|
1483
1553
|
true
|
|
@@ -1519,10 +1589,10 @@ __TS__SetDescriptor(
|
|
|
1519
1589
|
"health",
|
|
1520
1590
|
{
|
|
1521
1591
|
get = function(self)
|
|
1522
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1592
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1523
1593
|
end,
|
|
1524
1594
|
set = function(self, health)
|
|
1525
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1595
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1526
1596
|
end
|
|
1527
1597
|
},
|
|
1528
1598
|
true
|
|
@@ -1598,25 +1668,12 @@ __TS__SetDescriptor(
|
|
|
1598
1668
|
},
|
|
1599
1669
|
true
|
|
1600
1670
|
)
|
|
1601
|
-
__TS__SetDescriptor(
|
|
1602
|
-
Unit.prototype,
|
|
1603
|
-
"flyHeight",
|
|
1604
|
-
{
|
|
1605
|
-
get = function(self)
|
|
1606
|
-
return getUnitFlyHeight(self.handle)
|
|
1607
|
-
end,
|
|
1608
|
-
set = function(self, v)
|
|
1609
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1610
|
-
end
|
|
1611
|
-
},
|
|
1612
|
-
true
|
|
1613
|
-
)
|
|
1614
1671
|
__TS__SetDescriptor(
|
|
1615
1672
|
Unit.prototype,
|
|
1616
1673
|
"x",
|
|
1617
1674
|
{
|
|
1618
1675
|
get = function(self)
|
|
1619
|
-
return self[
|
|
1676
|
+
return self[108] or getUnitX(self.handle)
|
|
1620
1677
|
end,
|
|
1621
1678
|
set = function(self, v)
|
|
1622
1679
|
SetUnitX(self.handle, v)
|
|
@@ -1629,7 +1686,7 @@ __TS__SetDescriptor(
|
|
|
1629
1686
|
"y",
|
|
1630
1687
|
{
|
|
1631
1688
|
get = function(self)
|
|
1632
|
-
return self[
|
|
1689
|
+
return self[109] or getUnitY(self.handle)
|
|
1633
1690
|
end,
|
|
1634
1691
|
set = function(self, v)
|
|
1635
1692
|
SetUnitY(self.handle, v)
|
|
@@ -1715,10 +1772,10 @@ __TS__SetDescriptor(
|
|
|
1715
1772
|
"gold",
|
|
1716
1773
|
{
|
|
1717
1774
|
get = function(self)
|
|
1718
|
-
return
|
|
1775
|
+
return GetResourceAmount(self.handle)
|
|
1719
1776
|
end,
|
|
1720
1777
|
set = function(self, gold)
|
|
1721
|
-
|
|
1778
|
+
SetResourceAmount(self.handle, gold)
|
|
1722
1779
|
end
|
|
1723
1780
|
},
|
|
1724
1781
|
true
|
|
@@ -1734,14 +1791,18 @@ __TS__SetDescriptor(
|
|
|
1734
1791
|
local handle = self.handle
|
|
1735
1792
|
if isPaused and not IsUnitPaused(handle) then
|
|
1736
1793
|
self[101] = true
|
|
1737
|
-
|
|
1738
|
-
|
|
1794
|
+
if (self[103] or 0) <= 0 then
|
|
1795
|
+
for _ = self[102] or 0, -1 do
|
|
1796
|
+
BlzPauseUnitEx(handle, true)
|
|
1797
|
+
end
|
|
1739
1798
|
end
|
|
1740
1799
|
PauseUnit(handle, true)
|
|
1741
1800
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1742
1801
|
PauseUnit(handle, false)
|
|
1743
|
-
|
|
1744
|
-
|
|
1802
|
+
if (self[103] or 0) <= 0 then
|
|
1803
|
+
for _ = self[102] or 0, -1 do
|
|
1804
|
+
BlzPauseUnitEx(handle, false)
|
|
1805
|
+
end
|
|
1745
1806
|
end
|
|
1746
1807
|
self[101] = nil
|
|
1747
1808
|
end
|
|
@@ -1799,20 +1860,6 @@ __TS__SetDescriptor(
|
|
|
1799
1860
|
},
|
|
1800
1861
|
true
|
|
1801
1862
|
)
|
|
1802
|
-
__TS__SetDescriptor(
|
|
1803
|
-
Unit.prototype,
|
|
1804
|
-
"scale",
|
|
1805
|
-
{
|
|
1806
|
-
get = function(self)
|
|
1807
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1808
|
-
end,
|
|
1809
|
-
set = function(self, v)
|
|
1810
|
-
setUnitScale(self.handle, v, v, v)
|
|
1811
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1812
|
-
end
|
|
1813
|
-
},
|
|
1814
|
-
true
|
|
1815
|
-
)
|
|
1816
1863
|
__TS__SetDescriptor(
|
|
1817
1864
|
Unit.prototype,
|
|
1818
1865
|
"timeScale",
|
|
@@ -1839,7 +1886,7 @@ __TS__SetDescriptor(
|
|
|
1839
1886
|
Unit.prototype,
|
|
1840
1887
|
"pathingCollisionRange",
|
|
1841
1888
|
{get = function(self)
|
|
1842
|
-
return 16 * (min(
|
|
1889
|
+
return 16 * (math.min(
|
|
1843
1890
|
getUnitCollisionSize(self.handle) // 16,
|
|
1844
1891
|
3
|
|
1845
1892
|
) + 1)
|
|
@@ -1949,30 +1996,6 @@ __TS__SetDescriptor(
|
|
|
1949
1996
|
end},
|
|
1950
1997
|
true
|
|
1951
1998
|
)
|
|
1952
|
-
__TS__SetDescriptor(
|
|
1953
|
-
Unit.prototype,
|
|
1954
|
-
"onUnitInRange",
|
|
1955
|
-
{get = function(self)
|
|
1956
|
-
local handle = self.handle
|
|
1957
|
-
local onUnitInRange = setmetatable(
|
|
1958
|
-
{},
|
|
1959
|
-
{__index = function(self, value)
|
|
1960
|
-
local event = __TS__New(
|
|
1961
|
-
TriggerEvent,
|
|
1962
|
-
function(trigger)
|
|
1963
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1964
|
-
end,
|
|
1965
|
-
function() return ____exports.Unit:of(handle) end
|
|
1966
|
-
)
|
|
1967
|
-
rawset(self, value, event)
|
|
1968
|
-
return event
|
|
1969
|
-
end}
|
|
1970
|
-
)
|
|
1971
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1972
|
-
return onUnitInRange
|
|
1973
|
-
end},
|
|
1974
|
-
true
|
|
1975
|
-
)
|
|
1976
1999
|
__TS__SetDescriptor(
|
|
1977
2000
|
Unit.prototype,
|
|
1978
2001
|
"onManaEqual",
|
|
@@ -2040,6 +2063,14 @@ __TS__SetDescriptor(
|
|
|
2040
2063
|
end},
|
|
2041
2064
|
true
|
|
2042
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
|
+
)
|
|
2043
2074
|
__TS__SetDescriptor(
|
|
2044
2075
|
Unit.prototype,
|
|
2045
2076
|
"onSelect",
|
|
@@ -2100,6 +2131,11 @@ __TS__SetDescriptor(
|
|
|
2100
2131
|
end},
|
|
2101
2132
|
true
|
|
2102
2133
|
)
|
|
2134
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2135
|
+
____exports.UnitTriggerEvent,
|
|
2136
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2137
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2138
|
+
)
|
|
2103
2139
|
Unit.deathEvent = __TS__New(
|
|
2104
2140
|
____exports.UnitTriggerEvent,
|
|
2105
2141
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2117,7 +2153,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2117
2153
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2118
2154
|
dead[unit] = true
|
|
2119
2155
|
end)
|
|
2120
|
-
____exports.Unit.onImmediateOrder[
|
|
2156
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2121
2157
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2122
2158
|
dead[unit] = false
|
|
2123
2159
|
invoke(event, unit)
|
|
@@ -2134,7 +2170,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2134
2170
|
invoke(event, unit)
|
|
2135
2171
|
end
|
|
2136
2172
|
end
|
|
2137
|
-
____exports.Unit.onImmediateOrder[
|
|
2173
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2138
2174
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2139
2175
|
Timer:run(ifNotLeft, unit)
|
|
2140
2176
|
end
|
|
@@ -2175,25 +2211,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2175
2211
|
InitializingEvent,
|
|
2176
2212
|
function(event)
|
|
2177
2213
|
local function listener(unit, id)
|
|
2178
|
-
local
|
|
2214
|
+
local ____GetSpellTargetUnit_result_11
|
|
2179
2215
|
if GetSpellTargetUnit() then
|
|
2180
|
-
|
|
2216
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2181
2217
|
else
|
|
2182
|
-
local
|
|
2218
|
+
local ____GetSpellTargetItem_result_10
|
|
2183
2219
|
if GetSpellTargetItem() then
|
|
2184
|
-
|
|
2220
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2185
2221
|
else
|
|
2186
|
-
local
|
|
2222
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2187
2223
|
if GetSpellTargetDestructable() then
|
|
2188
|
-
|
|
2224
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2189
2225
|
else
|
|
2190
|
-
|
|
2226
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2191
2227
|
end
|
|
2192
|
-
|
|
2228
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2193
2229
|
end
|
|
2194
|
-
|
|
2230
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2195
2231
|
end
|
|
2196
|
-
local target =
|
|
2232
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2197
2233
|
if target then
|
|
2198
2234
|
invoke(event, unit, id, target)
|
|
2199
2235
|
end
|
|
@@ -2401,38 +2437,57 @@ Unit.onDamaging = (function()
|
|
|
2401
2437
|
if source and source.typeId == dummyUnitId then
|
|
2402
2438
|
source = nil
|
|
2403
2439
|
end
|
|
2404
|
-
local target = BlzGetEventDamageTarget()
|
|
2440
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2441
|
+
local metadata = damageMetadataByTarget[target]
|
|
2442
|
+
damageMetadataByTarget[target] = nil
|
|
2405
2443
|
local data = {
|
|
2406
2444
|
amount = GetEventDamage(),
|
|
2407
|
-
attackType = BlzGetEventAttackType(),
|
|
2445
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2408
2446
|
damageType = BlzGetEventDamageType(),
|
|
2409
2447
|
weaponType = BlzGetEventWeaponType(),
|
|
2410
|
-
|
|
2448
|
+
metadata = metadata,
|
|
2449
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2450
|
+
originalAmount = GetEventDamage(),
|
|
2451
|
+
originalMetadata = metadata,
|
|
2452
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2411
2453
|
}
|
|
2412
2454
|
if data.isAttack and source then
|
|
2413
|
-
|
|
2414
|
-
if weapon == -1 then
|
|
2415
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2416
|
-
weapon = 0
|
|
2417
|
-
end
|
|
2418
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2455
|
+
data.weapon = source:chooseWeapon(target)
|
|
2419
2456
|
end
|
|
2420
2457
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2421
2458
|
invoke(
|
|
2422
2459
|
event,
|
|
2423
2460
|
source,
|
|
2424
|
-
|
|
2461
|
+
target,
|
|
2425
2462
|
setmetatable(
|
|
2426
2463
|
{},
|
|
2427
2464
|
{
|
|
2428
2465
|
__index = data,
|
|
2429
2466
|
__newindex = function(self, key, value)
|
|
2430
|
-
damageSetters[key]
|
|
2467
|
+
local damageSetter = damageSetters[key]
|
|
2468
|
+
if damageSetter ~= nil then
|
|
2469
|
+
damageSetter(value)
|
|
2470
|
+
end
|
|
2431
2471
|
data[key] = value
|
|
2432
2472
|
end
|
|
2433
2473
|
}
|
|
2434
2474
|
)
|
|
2435
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
|
|
2436
2491
|
return
|
|
2437
2492
|
end
|
|
2438
2493
|
BlzSetEventDamage(0)
|
|
@@ -2440,7 +2495,7 @@ Unit.onDamaging = (function()
|
|
|
2440
2495
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2441
2496
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2442
2497
|
local sourceOwner = source.owner.handle
|
|
2443
|
-
local targetOwner =
|
|
2498
|
+
local targetOwner = target.owner.handle
|
|
2444
2499
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2445
2500
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2446
2501
|
Timer:run(function()
|
|
@@ -2456,23 +2511,19 @@ Unit.onDamaging = (function()
|
|
|
2456
2511
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2457
2512
|
local condition = ____value[1]
|
|
2458
2513
|
local action = ____value[2]
|
|
2459
|
-
if condition(
|
|
2460
|
-
source,
|
|
2461
|
-
____exports.Unit:of(target),
|
|
2462
|
-
data
|
|
2463
|
-
) then
|
|
2514
|
+
if condition(source, target, data) then
|
|
2464
2515
|
action(
|
|
2465
2516
|
source,
|
|
2466
|
-
|
|
2517
|
+
target,
|
|
2467
2518
|
setmetatable(
|
|
2468
2519
|
{fire = function()
|
|
2469
2520
|
UnitDamageTarget(
|
|
2470
2521
|
source.handle,
|
|
2471
|
-
target,
|
|
2522
|
+
target.handle,
|
|
2472
2523
|
data.amount,
|
|
2473
2524
|
true,
|
|
2474
2525
|
true,
|
|
2475
|
-
data.attackType,
|
|
2526
|
+
attackTypeToNative(data.attackType),
|
|
2476
2527
|
data.damageType,
|
|
2477
2528
|
data.weaponType
|
|
2478
2529
|
)
|
|
@@ -2499,30 +2550,54 @@ Unit.onDamage = __TS__New(
|
|
|
2499
2550
|
if source and source.typeId == dummyUnitId then
|
|
2500
2551
|
source = nil
|
|
2501
2552
|
end
|
|
2553
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2554
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2555
|
+
damagingEventByTarget[target] = nil
|
|
2502
2556
|
local data = {
|
|
2503
2557
|
amount = GetEventDamage(),
|
|
2504
|
-
attackType = BlzGetEventAttackType(),
|
|
2558
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2505
2559
|
damageType = BlzGetEventDamageType(),
|
|
2506
2560
|
weaponType = BlzGetEventWeaponType(),
|
|
2561
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2507
2562
|
isAttack = BlzGetEventIsAttack(),
|
|
2508
|
-
originalAmount = GetEventDamage(),
|
|
2563
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2564
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2509
2565
|
preventDeath = damageEventPreventDeath
|
|
2510
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
|
|
2511
2584
|
local evData = setmetatable(
|
|
2512
2585
|
{},
|
|
2513
2586
|
{
|
|
2514
2587
|
__index = data,
|
|
2515
2588
|
__newindex = function(self, key, value)
|
|
2516
|
-
damageSetters[key]
|
|
2589
|
+
local damageSetter = damageSetters[key]
|
|
2590
|
+
if damageSetter ~= nil then
|
|
2591
|
+
damageSetter(value)
|
|
2592
|
+
end
|
|
2517
2593
|
data[key] = value
|
|
2518
2594
|
end
|
|
2519
2595
|
}
|
|
2520
2596
|
)
|
|
2521
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2522
2597
|
invoke(event, source, target, evData)
|
|
2523
2598
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2524
2599
|
local bonusHealth = math.ceil(evData.amount)
|
|
2525
|
-
target[
|
|
2600
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2526
2601
|
BlzSetUnitMaxHP(
|
|
2527
2602
|
target.handle,
|
|
2528
2603
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2536,7 +2611,7 @@ Unit.onDamage = __TS__New(
|
|
|
2536
2611
|
evData[0],
|
|
2537
2612
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2538
2613
|
)
|
|
2539
|
-
target[
|
|
2614
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2540
2615
|
SetWidgetLife(
|
|
2541
2616
|
target.handle,
|
|
2542
2617
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2562,7 +2637,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2562
2637
|
function()
|
|
2563
2638
|
local unit = getTriggerUnit()
|
|
2564
2639
|
local item = getManipulatedItem()
|
|
2565
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2640
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2566
2641
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2567
2642
|
end
|
|
2568
2643
|
return IgnoreEvent
|
|
@@ -2572,10 +2647,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2572
2647
|
____exports.UnitTriggerEvent,
|
|
2573
2648
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2574
2649
|
function()
|
|
2575
|
-
local
|
|
2576
|
-
local
|
|
2577
|
-
if getUnitTypeId(
|
|
2578
|
-
|
|
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
|
|
2579
2658
|
end
|
|
2580
2659
|
return IgnoreEvent
|
|
2581
2660
|
end
|
|
@@ -2586,59 +2665,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2586
2665
|
function()
|
|
2587
2666
|
local unit = getTriggerUnit()
|
|
2588
2667
|
local item = getManipulatedItem()
|
|
2589
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2668
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2590
2669
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2591
2670
|
end
|
|
2592
2671
|
return IgnoreEvent
|
|
2593
2672
|
end
|
|
2594
2673
|
)
|
|
2595
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2596
|
-
____exports.UnitTriggerEvent,
|
|
2597
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2598
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2599
|
-
)
|
|
2600
2674
|
__TS__ObjectDefineProperty(
|
|
2601
2675
|
Unit,
|
|
2602
|
-
"
|
|
2676
|
+
"itemChargesChangedEvent",
|
|
2603
2677
|
{get = function(self)
|
|
2604
2678
|
local event = __TS__New(Event)
|
|
2605
|
-
|
|
2606
|
-
local
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
if item ~= nil then
|
|
2610
|
-
invoke(event, unit, item)
|
|
2611
|
-
end
|
|
2679
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2680
|
+
local unit = item.owner
|
|
2681
|
+
if unit ~= nil then
|
|
2682
|
+
invoke(event, unit, item)
|
|
2612
2683
|
end
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2616
|
-
end
|
|
2617
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2618
|
-
return event
|
|
2619
|
-
end}
|
|
2620
|
-
)
|
|
2621
|
-
__TS__ObjectDefineProperty(
|
|
2622
|
-
Unit,
|
|
2623
|
-
"itemMoveOrderEvent",
|
|
2624
|
-
{get = function(self)
|
|
2625
|
-
local event = __TS__New(Event)
|
|
2626
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2627
|
-
local slotTo = order - orderId("moveslot0")
|
|
2628
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2629
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2630
|
-
if slotFrom ~= nil then
|
|
2631
|
-
invoke(
|
|
2632
|
-
event,
|
|
2633
|
-
unit,
|
|
2634
|
-
item,
|
|
2635
|
-
slotFrom,
|
|
2636
|
-
slotTo
|
|
2637
|
-
)
|
|
2638
|
-
end
|
|
2639
|
-
end)
|
|
2640
|
-
end
|
|
2641
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2684
|
+
end)
|
|
2685
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2642
2686
|
return event
|
|
2643
2687
|
end}
|
|
2644
2688
|
)
|
|
@@ -2667,6 +2711,10 @@ __TS__ObjectDefineProperty(
|
|
|
2667
2711
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2668
2712
|
return destroyEvent
|
|
2669
2713
|
end}
|
|
2714
|
+
)
|
|
2715
|
+
Unit.synchronize = synchronizer(
|
|
2716
|
+
function(unit) return unit.syncId end,
|
|
2717
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2670
2718
|
);
|
|
2671
2719
|
(function(self)
|
|
2672
2720
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2684,11 +2732,7 @@ __TS__ObjectDefineProperty(
|
|
|
2684
2732
|
function(____, id) return fourCC(id) end
|
|
2685
2733
|
)
|
|
2686
2734
|
end)
|
|
2687
|
-
for ____, leaveOrderId in ipairs({
|
|
2688
|
-
orderId("undefend"),
|
|
2689
|
-
orderId("magicundefense"),
|
|
2690
|
-
orderId("unimmolation")
|
|
2691
|
-
}) do
|
|
2735
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2692
2736
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2693
2737
|
local handle = unit.handle
|
|
2694
2738
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2696,7 +2740,8 @@ __TS__ObjectDefineProperty(
|
|
|
2696
2740
|
return
|
|
2697
2741
|
end
|
|
2698
2742
|
end
|
|
2699
|
-
unit:
|
|
2743
|
+
unit:saveData()
|
|
2744
|
+
Timer:run(unit, "destroy")
|
|
2700
2745
|
end)
|
|
2701
2746
|
end
|
|
2702
2747
|
end)(Unit)
|