warscript 0.0.1-dev.88cffdd → 0.0.1-dev.89bc33b
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 +19 -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 +23 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +13 -6
- package/engine/behaviour/ability.lua +63 -17
- 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 +75 -28
- package/engine/buff.lua +433 -196
- 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/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 +14 -0
- package/engine/internal/unit/bonus.lua +102 -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 +41 -36
- package/engine/internal/unit.lua +396 -328
- 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/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-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/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/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/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/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 +25 -6
- package/engine/object-data/entry/ability-type.lua +255 -11
- package/engine/object-data/entry/buff-type/applicable.lua +113 -105
- 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 +2 -2
- package/engine/object-data/entry/unit-type.d.ts +64 -6
- package/engine/object-data/entry/unit-type.lua +531 -85
- 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 +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +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,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,21 @@ 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
|
-
|
|
919
|
-
end
|
|
996
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
997
|
+
local abilities = self.abilities
|
|
998
|
+
for i = 1, #abilities do
|
|
999
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1000
|
+
local ability = abilities[i]
|
|
1001
|
+
tremove(abilities, i)
|
|
1002
|
+
ability:destroy()
|
|
1003
|
+
return true
|
|
920
1004
|
end
|
|
921
|
-
return true
|
|
922
1005
|
end
|
|
923
|
-
return
|
|
1006
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
924
1007
|
end
|
|
925
1008
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
926
1009
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -934,9 +1017,6 @@ end
|
|
|
934
1017
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
935
1018
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
936
1019
|
end
|
|
937
|
-
function Unit.prototype.interruptAttack(self)
|
|
938
|
-
unitInterruptAttack(self.handle)
|
|
939
|
-
end
|
|
940
1020
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
941
1021
|
local handle = self.handle
|
|
942
1022
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1007,18 +1087,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1007
1087
|
end
|
|
1008
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
1009
1089
|
local stunCounter = self[102] or 0
|
|
1010
|
-
if not self[101] or stunCounter >= 0 then
|
|
1090
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1011
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
1012
1092
|
end
|
|
1013
1093
|
self[102] = stunCounter + 1
|
|
1014
1094
|
end
|
|
1015
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1016
1096
|
local stunCounter = self[102] or 0
|
|
1017
|
-
if not self[101] or stunCounter >= 1 then
|
|
1097
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1018
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1019
1099
|
end
|
|
1020
1100
|
self[102] = stunCounter - 1
|
|
1021
1101
|
end
|
|
1102
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1103
|
+
local forceStunCounter = self[103] or 0
|
|
1104
|
+
if forceStunCounter == 0 then
|
|
1105
|
+
local handle = self.handle
|
|
1106
|
+
if not self[101] then
|
|
1107
|
+
for _ = self[102] or 0, -1 do
|
|
1108
|
+
BlzPauseUnitEx(handle, true)
|
|
1109
|
+
end
|
|
1110
|
+
end
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
self[103] = forceStunCounter + 1
|
|
1114
|
+
end
|
|
1115
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1116
|
+
local forceStunCounter = self[103] or 0
|
|
1117
|
+
if forceStunCounter == 1 then
|
|
1118
|
+
local handle = self.handle
|
|
1119
|
+
if not self[101] then
|
|
1120
|
+
for _ = self[102] or 0, -1 do
|
|
1121
|
+
BlzPauseUnitEx(handle, false)
|
|
1122
|
+
end
|
|
1123
|
+
end
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
self[103] = forceStunCounter - 1
|
|
1127
|
+
end
|
|
1022
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1023
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1024
1130
|
owner.handle,
|
|
@@ -1207,7 +1313,7 @@ __TS__SetDescriptor(
|
|
|
1207
1313
|
Unit.prototype,
|
|
1208
1314
|
"isIllusion",
|
|
1209
1315
|
{get = function(self)
|
|
1210
|
-
return
|
|
1316
|
+
return IsUnitIllusion(self.handle)
|
|
1211
1317
|
end},
|
|
1212
1318
|
true
|
|
1213
1319
|
)
|
|
@@ -1215,7 +1321,7 @@ __TS__SetDescriptor(
|
|
|
1215
1321
|
Unit.prototype,
|
|
1216
1322
|
"isStunned",
|
|
1217
1323
|
{get = function(self)
|
|
1218
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1324
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1219
1325
|
end},
|
|
1220
1326
|
true
|
|
1221
1327
|
)
|
|
@@ -1294,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1294
1400
|
)
|
|
1295
1401
|
__TS__SetDescriptor(
|
|
1296
1402
|
Unit.prototype,
|
|
1297
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1298
1404
|
{
|
|
1299
1405
|
get = function(self)
|
|
1300
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1301
1407
|
end,
|
|
1302
|
-
set = function(self,
|
|
1303
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1304
1410
|
end
|
|
1305
1411
|
},
|
|
1306
1412
|
true
|
|
@@ -1322,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1322
1428
|
end},
|
|
1323
1429
|
true
|
|
1324
1430
|
)
|
|
1325
|
-
__TS__SetDescriptor(
|
|
1326
|
-
Unit.prototype,
|
|
1327
|
-
"agilityBase",
|
|
1328
|
-
{
|
|
1329
|
-
get = function(self)
|
|
1330
|
-
return getHeroAgi(self.handle, false)
|
|
1331
|
-
end,
|
|
1332
|
-
set = function(self, agilityBase)
|
|
1333
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1334
|
-
end
|
|
1335
|
-
},
|
|
1336
|
-
true
|
|
1337
|
-
)
|
|
1338
1431
|
__TS__SetDescriptor(
|
|
1339
1432
|
Unit.prototype,
|
|
1340
1433
|
"agilityBonus",
|
|
@@ -1352,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1352
1445
|
end},
|
|
1353
1446
|
true
|
|
1354
1447
|
)
|
|
1355
|
-
__TS__SetDescriptor(
|
|
1356
|
-
Unit.prototype,
|
|
1357
|
-
"intelligenceBase",
|
|
1358
|
-
{
|
|
1359
|
-
get = function(self)
|
|
1360
|
-
return getHeroInt(self.handle, false)
|
|
1361
|
-
end,
|
|
1362
|
-
set = function(self, intelligenceBase)
|
|
1363
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1364
|
-
end
|
|
1365
|
-
},
|
|
1366
|
-
true
|
|
1367
|
-
)
|
|
1368
1448
|
__TS__SetDescriptor(
|
|
1369
1449
|
Unit.prototype,
|
|
1370
1450
|
"intelligenceBonus",
|
|
@@ -1413,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1413
1493
|
"isTeamGlowVisible",
|
|
1414
1494
|
{
|
|
1415
1495
|
get = function(self)
|
|
1416
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1417
1497
|
end,
|
|
1418
1498
|
set = function(self, isTeamGlowVisible)
|
|
1419
|
-
|
|
1420
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1421
1501
|
if not isTeamGlowVisible then
|
|
1422
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1423
1503
|
else
|
|
1424
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1425
1505
|
end
|
|
1426
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1427
1507
|
end
|
|
1428
1508
|
},
|
|
1429
1509
|
true
|
|
@@ -1432,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1432
1512
|
Unit.prototype,
|
|
1433
1513
|
"color",
|
|
1434
1514
|
{set = function(self, color)
|
|
1435
|
-
|
|
1436
|
-
if self[
|
|
1437
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1438
1518
|
end
|
|
1439
1519
|
end},
|
|
1440
1520
|
true
|
|
@@ -1457,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1457
1537
|
"maxHealth",
|
|
1458
1538
|
{
|
|
1459
1539
|
get = function(self)
|
|
1460
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1461
1541
|
end,
|
|
1462
1542
|
set = function(self, maxHealth)
|
|
1463
|
-
if maxHealth < 1 and self[
|
|
1464
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1465
1545
|
maxHealth = 1
|
|
1466
1546
|
end
|
|
1467
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1468
1548
|
end
|
|
1469
1549
|
},
|
|
1470
1550
|
true
|
|
@@ -1506,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1506
1586
|
"health",
|
|
1507
1587
|
{
|
|
1508
1588
|
get = function(self)
|
|
1509
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1510
1590
|
end,
|
|
1511
1591
|
set = function(self, health)
|
|
1512
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1513
1593
|
end
|
|
1514
1594
|
},
|
|
1515
1595
|
true
|
|
@@ -1585,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1585
1665
|
},
|
|
1586
1666
|
true
|
|
1587
1667
|
)
|
|
1588
|
-
__TS__SetDescriptor(
|
|
1589
|
-
Unit.prototype,
|
|
1590
|
-
"flyHeight",
|
|
1591
|
-
{
|
|
1592
|
-
get = function(self)
|
|
1593
|
-
return getUnitFlyHeight(self.handle)
|
|
1594
|
-
end,
|
|
1595
|
-
set = function(self, v)
|
|
1596
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1597
|
-
end
|
|
1598
|
-
},
|
|
1599
|
-
true
|
|
1600
|
-
)
|
|
1601
1668
|
__TS__SetDescriptor(
|
|
1602
1669
|
Unit.prototype,
|
|
1603
1670
|
"x",
|
|
1604
1671
|
{
|
|
1605
1672
|
get = function(self)
|
|
1606
|
-
return self[
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1607
1674
|
end,
|
|
1608
1675
|
set = function(self, v)
|
|
1609
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1616,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1616
1683
|
"y",
|
|
1617
1684
|
{
|
|
1618
1685
|
get = function(self)
|
|
1619
|
-
return self[
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1620
1687
|
end,
|
|
1621
1688
|
set = function(self, v)
|
|
1622
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1702,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1702
1769
|
"gold",
|
|
1703
1770
|
{
|
|
1704
1771
|
get = function(self)
|
|
1705
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1706
1773
|
end,
|
|
1707
1774
|
set = function(self, gold)
|
|
1708
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1709
1776
|
end
|
|
1710
1777
|
},
|
|
1711
1778
|
true
|
|
@@ -1721,14 +1788,18 @@ __TS__SetDescriptor(
|
|
|
1721
1788
|
local handle = self.handle
|
|
1722
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1723
1790
|
self[101] = true
|
|
1724
|
-
|
|
1725
|
-
|
|
1791
|
+
if (self[103] or 0) <= 0 then
|
|
1792
|
+
for _ = self[102] or 0, -1 do
|
|
1793
|
+
BlzPauseUnitEx(handle, true)
|
|
1794
|
+
end
|
|
1726
1795
|
end
|
|
1727
1796
|
PauseUnit(handle, true)
|
|
1728
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1729
1798
|
PauseUnit(handle, false)
|
|
1730
|
-
|
|
1731
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1732
1803
|
end
|
|
1733
1804
|
self[101] = nil
|
|
1734
1805
|
end
|
|
@@ -1786,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1786
1857
|
},
|
|
1787
1858
|
true
|
|
1788
1859
|
)
|
|
1789
|
-
__TS__SetDescriptor(
|
|
1790
|
-
Unit.prototype,
|
|
1791
|
-
"scale",
|
|
1792
|
-
{
|
|
1793
|
-
get = function(self)
|
|
1794
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1795
|
-
end,
|
|
1796
|
-
set = function(self, v)
|
|
1797
|
-
setUnitScale(self.handle, v, v, v)
|
|
1798
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1799
|
-
end
|
|
1800
|
-
},
|
|
1801
|
-
true
|
|
1802
|
-
)
|
|
1803
1860
|
__TS__SetDescriptor(
|
|
1804
1861
|
Unit.prototype,
|
|
1805
1862
|
"timeScale",
|
|
@@ -1826,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1826
1883
|
Unit.prototype,
|
|
1827
1884
|
"pathingCollisionRange",
|
|
1828
1885
|
{get = function(self)
|
|
1829
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1830
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1831
1888
|
3
|
|
1832
1889
|
) + 1)
|
|
1833
1890
|
end},
|
|
1834
1891
|
true
|
|
1835
1892
|
)
|
|
1893
|
+
__TS__SetDescriptor(
|
|
1894
|
+
Unit.prototype,
|
|
1895
|
+
"movementType",
|
|
1896
|
+
{
|
|
1897
|
+
get = function(self)
|
|
1898
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1899
|
+
end,
|
|
1900
|
+
set = function(self, movementType)
|
|
1901
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1902
|
+
end
|
|
1903
|
+
},
|
|
1904
|
+
true
|
|
1905
|
+
)
|
|
1836
1906
|
__TS__SetDescriptor(
|
|
1837
1907
|
Unit.prototype,
|
|
1838
1908
|
"pathing",
|
|
@@ -1923,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1923
1993
|
end},
|
|
1924
1994
|
true
|
|
1925
1995
|
)
|
|
1926
|
-
__TS__SetDescriptor(
|
|
1927
|
-
Unit.prototype,
|
|
1928
|
-
"onUnitInRange",
|
|
1929
|
-
{get = function(self)
|
|
1930
|
-
local handle = self.handle
|
|
1931
|
-
local onUnitInRange = setmetatable(
|
|
1932
|
-
{},
|
|
1933
|
-
{__index = function(self, value)
|
|
1934
|
-
local event = __TS__New(
|
|
1935
|
-
TriggerEvent,
|
|
1936
|
-
function(trigger)
|
|
1937
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1938
|
-
end,
|
|
1939
|
-
function() return ____exports.Unit:of(handle) end
|
|
1940
|
-
)
|
|
1941
|
-
rawset(self, value, event)
|
|
1942
|
-
return event
|
|
1943
|
-
end}
|
|
1944
|
-
)
|
|
1945
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1946
|
-
return onUnitInRange
|
|
1947
|
-
end},
|
|
1948
|
-
true
|
|
1949
|
-
)
|
|
1950
1996
|
__TS__SetDescriptor(
|
|
1951
1997
|
Unit.prototype,
|
|
1952
1998
|
"onManaEqual",
|
|
@@ -2014,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
2014
2060
|
end},
|
|
2015
2061
|
true
|
|
2016
2062
|
)
|
|
2063
|
+
__TS__SetDescriptor(
|
|
2064
|
+
Unit.prototype,
|
|
2065
|
+
"targetAcquiredEvent",
|
|
2066
|
+
{get = function(self)
|
|
2067
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2068
|
+
end},
|
|
2069
|
+
true
|
|
2070
|
+
)
|
|
2017
2071
|
__TS__SetDescriptor(
|
|
2018
2072
|
Unit.prototype,
|
|
2019
2073
|
"onSelect",
|
|
@@ -2074,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2074
2128
|
end},
|
|
2075
2129
|
true
|
|
2076
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2077
2136
|
Unit.deathEvent = __TS__New(
|
|
2078
2137
|
____exports.UnitTriggerEvent,
|
|
2079
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2091,7 +2150,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2091
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2092
2151
|
dead[unit] = true
|
|
2093
2152
|
end)
|
|
2094
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2095
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2096
2155
|
dead[unit] = false
|
|
2097
2156
|
invoke(event, unit)
|
|
@@ -2108,7 +2167,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2108
2167
|
invoke(event, unit)
|
|
2109
2168
|
end
|
|
2110
2169
|
end
|
|
2111
|
-
____exports.Unit.onImmediateOrder[
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2112
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2113
2172
|
Timer:run(ifNotLeft, unit)
|
|
2114
2173
|
end
|
|
@@ -2149,25 +2208,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2149
2208
|
InitializingEvent,
|
|
2150
2209
|
function(event)
|
|
2151
2210
|
local function listener(unit, id)
|
|
2152
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2153
2212
|
if GetSpellTargetUnit() then
|
|
2154
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2155
2214
|
else
|
|
2156
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2157
2216
|
if GetSpellTargetItem() then
|
|
2158
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2159
2218
|
else
|
|
2160
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2161
2220
|
if GetSpellTargetDestructable() then
|
|
2162
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2163
2222
|
else
|
|
2164
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2165
2224
|
end
|
|
2166
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2167
2226
|
end
|
|
2168
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2169
2228
|
end
|
|
2170
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2171
2230
|
if target then
|
|
2172
2231
|
invoke(event, unit, id, target)
|
|
2173
2232
|
end
|
|
@@ -2375,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2375
2434
|
if source and source.typeId == dummyUnitId then
|
|
2376
2435
|
source = nil
|
|
2377
2436
|
end
|
|
2378
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2379
2440
|
local data = {
|
|
2380
2441
|
amount = GetEventDamage(),
|
|
2381
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2382
2443
|
damageType = BlzGetEventDamageType(),
|
|
2383
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2384
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2385
2450
|
}
|
|
2386
2451
|
if data.isAttack and source then
|
|
2387
|
-
|
|
2388
|
-
if weapon == -1 then
|
|
2389
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2390
|
-
weapon = 0
|
|
2391
|
-
end
|
|
2392
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2393
2453
|
end
|
|
2394
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2395
2455
|
invoke(
|
|
2396
2456
|
event,
|
|
2397
2457
|
source,
|
|
2398
|
-
|
|
2458
|
+
target,
|
|
2399
2459
|
setmetatable(
|
|
2400
2460
|
{},
|
|
2401
2461
|
{
|
|
2402
2462
|
__index = data,
|
|
2403
2463
|
__newindex = function(self, key, value)
|
|
2404
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2405
2468
|
data[key] = value
|
|
2406
2469
|
end
|
|
2407
2470
|
}
|
|
2408
2471
|
)
|
|
2409
2472
|
)
|
|
2473
|
+
if data[0] and source then
|
|
2474
|
+
local sourceOwner = source.owner.handle
|
|
2475
|
+
data[1] = sourceOwner
|
|
2476
|
+
local targetOwner = target.owner.handle
|
|
2477
|
+
data[2] = targetOwner
|
|
2478
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2479
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2480
|
+
data[3] = true
|
|
2481
|
+
end
|
|
2482
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2483
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2484
|
+
data[4] = true
|
|
2485
|
+
end
|
|
2486
|
+
end
|
|
2487
|
+
damagingEventByTarget[target] = data
|
|
2410
2488
|
return
|
|
2411
2489
|
end
|
|
2412
2490
|
BlzSetEventDamage(0)
|
|
@@ -2414,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2414
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2415
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2416
2494
|
local sourceOwner = source.owner.handle
|
|
2417
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2418
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2419
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2420
2498
|
Timer:run(function()
|
|
@@ -2430,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2430
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2431
2509
|
local condition = ____value[1]
|
|
2432
2510
|
local action = ____value[2]
|
|
2433
|
-
if condition(
|
|
2434
|
-
source,
|
|
2435
|
-
____exports.Unit:of(target),
|
|
2436
|
-
data
|
|
2437
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2438
2512
|
action(
|
|
2439
2513
|
source,
|
|
2440
|
-
|
|
2514
|
+
target,
|
|
2441
2515
|
setmetatable(
|
|
2442
2516
|
{fire = function()
|
|
2443
2517
|
UnitDamageTarget(
|
|
2444
2518
|
source.handle,
|
|
2445
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2446
2520
|
data.amount,
|
|
2447
2521
|
true,
|
|
2448
2522
|
true,
|
|
2449
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2450
2524
|
data.damageType,
|
|
2451
2525
|
data.weaponType
|
|
2452
2526
|
)
|
|
@@ -2473,30 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2473
2547
|
if source and source.typeId == dummyUnitId then
|
|
2474
2548
|
source = nil
|
|
2475
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2476
2553
|
local data = {
|
|
2477
2554
|
amount = GetEventDamage(),
|
|
2478
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2479
2556
|
damageType = BlzGetEventDamageType(),
|
|
2480
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2481
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2482
|
-
originalAmount = GetEventDamage(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2483
2562
|
preventDeath = damageEventPreventDeath
|
|
2484
2563
|
}
|
|
2564
|
+
if damagingEvent then
|
|
2565
|
+
for key, value in pairs(damagingEvent) do
|
|
2566
|
+
if isAttribute(key) then
|
|
2567
|
+
data[key] = value
|
|
2568
|
+
end
|
|
2569
|
+
end
|
|
2570
|
+
local sourceOwner = damagingEvent[1]
|
|
2571
|
+
if sourceOwner then
|
|
2572
|
+
local targetOwner = damagingEvent[2]
|
|
2573
|
+
if damagingEvent[3] then
|
|
2574
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2575
|
+
end
|
|
2576
|
+
if damagingEvent[4] then
|
|
2577
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
end
|
|
2580
|
+
end
|
|
2485
2581
|
local evData = setmetatable(
|
|
2486
2582
|
{},
|
|
2487
2583
|
{
|
|
2488
2584
|
__index = data,
|
|
2489
2585
|
__newindex = function(self, key, value)
|
|
2490
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2491
2590
|
data[key] = value
|
|
2492
2591
|
end
|
|
2493
2592
|
}
|
|
2494
2593
|
)
|
|
2495
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2496
2594
|
invoke(event, source, target, evData)
|
|
2497
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2498
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2499
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2500
2598
|
BlzSetUnitMaxHP(
|
|
2501
2599
|
target.handle,
|
|
2502
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2510,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2510
2608
|
evData[0],
|
|
2511
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2512
2610
|
)
|
|
2513
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2514
2612
|
SetWidgetLife(
|
|
2515
2613
|
target.handle,
|
|
2516
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2536,7 +2634,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2536
2634
|
function()
|
|
2537
2635
|
local unit = getTriggerUnit()
|
|
2538
2636
|
local item = getManipulatedItem()
|
|
2539
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2540
2638
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2541
2639
|
end
|
|
2542
2640
|
return IgnoreEvent
|
|
@@ -2546,10 +2644,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2546
2644
|
____exports.UnitTriggerEvent,
|
|
2547
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2548
2646
|
function()
|
|
2549
|
-
local
|
|
2550
|
-
local
|
|
2551
|
-
if getUnitTypeId(
|
|
2552
|
-
|
|
2647
|
+
local unitHandle = getTriggerUnit()
|
|
2648
|
+
local itemHandle = getManipulatedItem()
|
|
2649
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2650
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2651
|
+
local item = Item:of(itemHandle)
|
|
2652
|
+
if ownerByItem[item] ~= unit then
|
|
2653
|
+
return unit, item
|
|
2654
|
+
end
|
|
2553
2655
|
end
|
|
2554
2656
|
return IgnoreEvent
|
|
2555
2657
|
end
|
|
@@ -2560,59 +2662,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2560
2662
|
function()
|
|
2561
2663
|
local unit = getTriggerUnit()
|
|
2562
2664
|
local item = getManipulatedItem()
|
|
2563
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2665
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2564
2666
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2565
2667
|
end
|
|
2566
2668
|
return IgnoreEvent
|
|
2567
2669
|
end
|
|
2568
2670
|
)
|
|
2569
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2570
|
-
____exports.UnitTriggerEvent,
|
|
2571
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2572
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2573
|
-
)
|
|
2574
2671
|
__TS__ObjectDefineProperty(
|
|
2575
2672
|
Unit,
|
|
2576
|
-
"
|
|
2673
|
+
"itemChargesChangedEvent",
|
|
2577
2674
|
{get = function(self)
|
|
2578
2675
|
local event = __TS__New(Event)
|
|
2579
|
-
|
|
2580
|
-
local
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
if item ~= nil then
|
|
2584
|
-
invoke(event, unit, item)
|
|
2585
|
-
end
|
|
2676
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2677
|
+
local unit = item.owner
|
|
2678
|
+
if unit ~= nil then
|
|
2679
|
+
invoke(event, unit, item)
|
|
2586
2680
|
end
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2590
|
-
end
|
|
2591
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2592
|
-
return event
|
|
2593
|
-
end}
|
|
2594
|
-
)
|
|
2595
|
-
__TS__ObjectDefineProperty(
|
|
2596
|
-
Unit,
|
|
2597
|
-
"itemMoveOrderEvent",
|
|
2598
|
-
{get = function(self)
|
|
2599
|
-
local event = __TS__New(Event)
|
|
2600
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2601
|
-
local slotTo = order - orderId("moveslot0")
|
|
2602
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2603
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2604
|
-
if slotFrom ~= nil then
|
|
2605
|
-
invoke(
|
|
2606
|
-
event,
|
|
2607
|
-
unit,
|
|
2608
|
-
item,
|
|
2609
|
-
slotFrom,
|
|
2610
|
-
slotTo
|
|
2611
|
-
)
|
|
2612
|
-
end
|
|
2613
|
-
end)
|
|
2614
|
-
end
|
|
2615
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2681
|
+
end)
|
|
2682
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2616
2683
|
return event
|
|
2617
2684
|
end}
|
|
2618
2685
|
)
|
|
@@ -2641,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2641
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2642
2709
|
return destroyEvent
|
|
2643
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2644
2715
|
);
|
|
2645
2716
|
(function(self)
|
|
2646
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2658,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2658
2729
|
function(____, id) return fourCC(id) end
|
|
2659
2730
|
)
|
|
2660
2731
|
end)
|
|
2661
|
-
for ____, leaveOrderId in ipairs({
|
|
2662
|
-
orderId("undefend"),
|
|
2663
|
-
orderId("magicundefense"),
|
|
2664
|
-
orderId("unimmolation")
|
|
2665
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2666
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2667
2734
|
local handle = unit.handle
|
|
2668
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2670,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2670
2737
|
return
|
|
2671
2738
|
end
|
|
2672
2739
|
end
|
|
2673
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2674
2742
|
end)
|
|
2675
2743
|
end
|
|
2676
2744
|
end)(Unit)
|