warscript 0.0.1-dev.75f6e33 → 0.0.1-dev.7769f27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +16 -2
- package/core/types/frame.lua +141 -77
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -26
- package/core/types/sound.lua +99 -53
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +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 +6 -0
- package/engine/behaviour/ability/damage.d.ts +13 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +23 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +17 -6
- package/engine/behaviour/ability.lua +81 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +79 -27
- package/engine/buff.lua +454 -186
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/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 +44 -34
- package/engine/internal/unit.lua +398 -324
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +14 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +11 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/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/curse.lua +2 -2
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +40 -15
- package/engine/object-data/entry/ability-type.lua +318 -21
- package/engine/object-data/entry/buff-type/applicable.lua +113 -104
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +37 -27
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +19 -2
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +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,40 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
56
67
|
local match = string.match
|
|
57
68
|
local ____tostring = _G.tostring
|
|
58
69
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
62
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
63
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
64
73
|
local getHeroStr = GetHeroStr
|
|
65
74
|
local getHeroAgi = GetHeroAgi
|
|
66
75
|
local getHeroInt = GetHeroInt
|
|
67
|
-
local setHeroStr = SetHeroStr
|
|
68
|
-
local setHeroAgi = SetHeroAgi
|
|
69
|
-
local setHeroInt = SetHeroInt
|
|
70
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
71
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
72
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
73
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
74
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
75
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
76
|
-
local setUnitScale = SetUnitScale
|
|
77
82
|
local setUnitPosition = SetUnitPosition
|
|
78
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
79
84
|
local getHandleId = GetHandleId
|
|
80
85
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
81
86
|
local createUnit = CreateUnit
|
|
82
87
|
local killUnit = KillUnit
|
|
83
|
-
local setUnitExploded = SetUnitExploded
|
|
84
88
|
local removeUnit = RemoveUnit
|
|
85
89
|
local getUnitTypeId = GetUnitTypeId
|
|
86
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -96,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
96
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
97
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
98
102
|
local isUnitInRange = IsUnitInRange
|
|
99
|
-
local setResourceAmount = SetResourceAmount
|
|
100
|
-
local getResourceAmount = GetResourceAmount
|
|
101
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
102
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
103
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
104
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
105
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
106
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
107
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
108
109
|
local isUnitInvisible = IsUnitInvisible
|
|
109
110
|
local isUnitVisible = IsUnitVisible
|
|
110
111
|
local getUnitX = GetUnitX
|
|
@@ -121,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
121
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
122
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
123
124
|
local unitAlive = UnitAlive
|
|
124
|
-
local unitAddType = UnitAddType
|
|
125
|
-
local unitRemoveType = UnitRemoveType
|
|
126
|
-
local isUnitIllusion = IsUnitIllusion
|
|
127
|
-
local isUnitType = IsUnitType
|
|
128
125
|
local isUnitAlly = IsUnitAlly
|
|
129
126
|
local isUnitEnemy = IsUnitEnemy
|
|
130
127
|
local getOwningPlayer = GetOwningPlayer
|
|
131
|
-
local setUnitColor = SetUnitColor
|
|
132
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
133
128
|
____exports.UnitClassification = {}
|
|
134
129
|
local UnitClassification = ____exports.UnitClassification
|
|
135
130
|
do
|
|
@@ -139,6 +134,7 @@ do
|
|
|
139
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
140
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
141
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
142
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
143
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
144
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -346,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
346
342
|
}
|
|
347
343
|
)
|
|
348
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
349
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
350
349
|
if self[0] ~= nil then
|
|
351
350
|
return
|
|
@@ -357,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
357
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
358
357
|
end
|
|
359
358
|
end
|
|
360
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
361
367
|
local jlimitopByOperator = {
|
|
362
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
363
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -375,15 +381,27 @@ local modifiers = {
|
|
|
375
381
|
end,
|
|
376
382
|
armor = function(unit, value)
|
|
377
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
378
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
379
389
|
end
|
|
380
|
-
local ability = assert(
|
|
381
|
-
|
|
382
|
-
ability,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
387
405
|
end
|
|
388
406
|
}
|
|
389
407
|
local getters = {
|
|
@@ -401,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
401
419
|
self.unit = unit
|
|
402
420
|
self.index = index
|
|
403
421
|
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
404
435
|
__TS__SetDescriptor(
|
|
405
436
|
UnitWeapon.prototype,
|
|
406
437
|
"cooldown",
|
|
@@ -435,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
435
466
|
},
|
|
436
467
|
true
|
|
437
468
|
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
438
482
|
__TS__SetDescriptor(
|
|
439
483
|
UnitWeapon.prototype,
|
|
440
484
|
"damageBase",
|
|
@@ -546,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
546
590
|
},
|
|
547
591
|
true
|
|
548
592
|
)
|
|
549
|
-
local unitInventorySize = UnitInventorySize
|
|
550
|
-
local unitItemInSlot = UnitItemInSlot
|
|
551
593
|
local getItemAbility = BlzGetItemAbility
|
|
552
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
553
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -565,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
565
607
|
____exports.Unit:of(unit)
|
|
566
608
|
)
|
|
567
609
|
end
|
|
568
|
-
for i = 0,
|
|
569
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
570
612
|
if getItemAbility(item, abilityId) == ability then
|
|
571
613
|
return ItemAbility:of(
|
|
572
614
|
ability,
|
|
@@ -611,26 +653,30 @@ local fieldSetters = {
|
|
|
611
653
|
}
|
|
612
654
|
local dummies = {}
|
|
613
655
|
for ____, player in ipairs(Player.all) do
|
|
614
|
-
local dummy = assert(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
621
667
|
ShowUnit(dummy, false)
|
|
622
668
|
dummies[player] = dummy
|
|
623
669
|
end
|
|
624
670
|
local function delayHealthChecksCallback(unit)
|
|
625
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
626
672
|
if counter ~= 0 then
|
|
627
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
628
674
|
return
|
|
629
675
|
end
|
|
630
|
-
unit[
|
|
631
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
632
678
|
if healthBonus ~= nil then
|
|
633
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
634
680
|
local handle = unit.handle
|
|
635
681
|
BlzSetUnitMaxHP(
|
|
636
682
|
handle,
|
|
@@ -639,50 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
639
685
|
end
|
|
640
686
|
end
|
|
641
687
|
local nextSyncId = 1
|
|
642
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
688
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
689
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
690
|
+
local function addAbility(unit, abilityTypeId)
|
|
691
|
+
local ____unitAddAbility_result_0
|
|
692
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
693
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
694
|
+
else
|
|
695
|
+
____unitAddAbility_result_0 = nil
|
|
696
|
+
end
|
|
697
|
+
return ____unitAddAbility_result_0
|
|
698
|
+
end
|
|
643
699
|
____exports.Unit = __TS__Class()
|
|
644
700
|
local Unit = ____exports.Unit
|
|
645
701
|
Unit.name = "Unit"
|
|
646
702
|
__TS__ClassExtends(Unit, Handle)
|
|
647
703
|
function Unit.prototype.____constructor(self, handle)
|
|
648
704
|
Handle.prototype.____constructor(self, handle)
|
|
649
|
-
local
|
|
650
|
-
nextSyncId =
|
|
651
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
652
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
653
|
-
assert(
|
|
654
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
655
719
|
if unitAddAbility(
|
|
656
720
|
handle,
|
|
657
721
|
fourCC("Amrf")
|
|
658
722
|
) then
|
|
659
|
-
assert(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
663
731
|
end
|
|
664
732
|
unitBySyncId[self.syncId] = self
|
|
665
733
|
local ____ = self.abilities
|
|
666
734
|
end
|
|
667
|
-
function Unit.prototype.getEvent(self,
|
|
668
|
-
self.events = self.events or (
|
|
669
|
-
local eventId = GetHandleId(
|
|
670
|
-
|
|
671
|
-
|
|
735
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
736
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
737
|
+
local eventId = GetHandleId(jevent)
|
|
738
|
+
local event = self.events:get(eventId)
|
|
739
|
+
if event == nil then
|
|
740
|
+
event = __TS__New(
|
|
672
741
|
TriggerEvent,
|
|
673
742
|
function(trigger)
|
|
674
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
675
744
|
end,
|
|
676
745
|
collector or (function() return {} end)
|
|
677
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
678
748
|
end
|
|
679
|
-
return
|
|
749
|
+
return event
|
|
750
|
+
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
680
756
|
end
|
|
681
757
|
function Unit.prototype.onDestroy(self)
|
|
682
758
|
local handle = self.handle
|
|
683
|
-
|
|
684
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
685
|
-
end
|
|
759
|
+
self:saveData()
|
|
686
760
|
local abilities = self.abilities
|
|
687
761
|
for ____, ability in ipairs(abilities) do
|
|
688
762
|
ability:destroy()
|
|
@@ -700,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
700
774
|
end
|
|
701
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
702
776
|
if eventsToDestroy ~= nil then
|
|
703
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
704
780
|
end
|
|
705
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
706
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -718,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
718
794
|
self._attackHandlers = handlers
|
|
719
795
|
if #handlers == 1 then
|
|
720
796
|
local handle = self.handle
|
|
721
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
722
802
|
end
|
|
723
803
|
return handler
|
|
724
804
|
end
|
|
@@ -747,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
747
827
|
end}
|
|
748
828
|
end
|
|
749
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
750
|
-
local
|
|
751
|
-
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
|
|
752
832
|
end
|
|
753
833
|
function Unit.prototype.addClassification(self, classification)
|
|
754
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
755
835
|
end
|
|
756
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
757
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
758
838
|
end
|
|
759
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
760
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
761
841
|
end
|
|
762
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
763
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -766,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
766
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
767
847
|
end
|
|
768
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
769
|
-
local
|
|
849
|
+
local ____temp_4
|
|
770
850
|
if type(x) == "number" then
|
|
771
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
852
|
else
|
|
773
|
-
|
|
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
|
|
774
860
|
end
|
|
775
|
-
return
|
|
861
|
+
return ____temp_4
|
|
776
862
|
end
|
|
777
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
864
|
return isUnitAlly(
|
|
@@ -790,16 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
876
|
if type(animation) == "number" then
|
|
791
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
878
|
elseif rarity then
|
|
793
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
880
|
else
|
|
795
881
|
setUnitAnimation(self.handle, animation)
|
|
796
882
|
end
|
|
797
883
|
end
|
|
884
|
+
function Unit.prototype.resetAnimation(self)
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
886
|
+
end
|
|
798
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
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
|
|
800
900
|
end
|
|
801
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
803
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
804
904
|
end
|
|
805
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -809,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
910
|
end
|
|
811
911
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
813
913
|
killUnit(self.handle)
|
|
814
914
|
end
|
|
815
915
|
function Unit.prototype.kill(self)
|
|
816
916
|
killUnit(self.handle)
|
|
817
917
|
end
|
|
818
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
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
|
|
824
924
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
827
927
|
end
|
|
828
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -863,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
863
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
864
964
|
end
|
|
865
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
866
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
867
967
|
end
|
|
868
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
875
975
|
local abilities = self.abilities
|
|
876
976
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
977
|
end
|
|
879
|
-
return
|
|
978
|
+
return ability
|
|
880
979
|
end
|
|
881
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +989,21 @@ end
|
|
|
890
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
991
|
end
|
|
893
|
-
function Unit.prototype.
|
|
894
|
-
local
|
|
895
|
-
|
|
896
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
897
|
-
return nil
|
|
898
|
-
end
|
|
899
|
-
return UnitAbility:of(
|
|
900
|
-
getUnitAbility(self.handle, abilityId),
|
|
901
|
-
abilityId,
|
|
902
|
-
self
|
|
903
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
995
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
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
|
|
914
1004
|
end
|
|
915
|
-
return true
|
|
916
1005
|
end
|
|
917
|
-
return
|
|
1006
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
1007
|
end
|
|
919
1008
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
1009
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,9 +1017,6 @@ end
|
|
|
928
1017
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
1018
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
1019
|
end
|
|
931
|
-
function Unit.prototype.interruptAttack(self)
|
|
932
|
-
unitInterruptAttack(self.handle)
|
|
933
|
-
end
|
|
934
1020
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
935
1021
|
local handle = self.handle
|
|
936
1022
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1001,18 +1087,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1001
1087
|
end
|
|
1002
1088
|
function Unit.prototype.incrementStunCounter(self)
|
|
1003
1089
|
local stunCounter = self[102] or 0
|
|
1004
|
-
if not self[101] or stunCounter >= 0 then
|
|
1090
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1005
1091
|
BlzPauseUnitEx(self.handle, true)
|
|
1006
1092
|
end
|
|
1007
1093
|
self[102] = stunCounter + 1
|
|
1008
1094
|
end
|
|
1009
1095
|
function Unit.prototype.decrementStunCounter(self)
|
|
1010
1096
|
local stunCounter = self[102] or 0
|
|
1011
|
-
if not self[101] or stunCounter >= 1 then
|
|
1097
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1012
1098
|
BlzPauseUnitEx(self.handle, false)
|
|
1013
1099
|
end
|
|
1014
1100
|
self[102] = stunCounter - 1
|
|
1015
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
|
|
1016
1128
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1017
1129
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1018
1130
|
owner.handle,
|
|
@@ -1201,7 +1313,7 @@ __TS__SetDescriptor(
|
|
|
1201
1313
|
Unit.prototype,
|
|
1202
1314
|
"isIllusion",
|
|
1203
1315
|
{get = function(self)
|
|
1204
|
-
return
|
|
1316
|
+
return IsUnitIllusion(self.handle)
|
|
1205
1317
|
end},
|
|
1206
1318
|
true
|
|
1207
1319
|
)
|
|
@@ -1209,7 +1321,7 @@ __TS__SetDescriptor(
|
|
|
1209
1321
|
Unit.prototype,
|
|
1210
1322
|
"isStunned",
|
|
1211
1323
|
{get = function(self)
|
|
1212
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1324
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1213
1325
|
end},
|
|
1214
1326
|
true
|
|
1215
1327
|
)
|
|
@@ -1288,13 +1400,13 @@ __TS__SetDescriptor(
|
|
|
1288
1400
|
)
|
|
1289
1401
|
__TS__SetDescriptor(
|
|
1290
1402
|
Unit.prototype,
|
|
1291
|
-
"
|
|
1403
|
+
"primaryAttribute",
|
|
1292
1404
|
{
|
|
1293
1405
|
get = function(self)
|
|
1294
|
-
return
|
|
1406
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1295
1407
|
end,
|
|
1296
|
-
set = function(self,
|
|
1297
|
-
|
|
1408
|
+
set = function(self, primaryAttribute)
|
|
1409
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1298
1410
|
end
|
|
1299
1411
|
},
|
|
1300
1412
|
true
|
|
@@ -1316,19 +1428,6 @@ __TS__SetDescriptor(
|
|
|
1316
1428
|
end},
|
|
1317
1429
|
true
|
|
1318
1430
|
)
|
|
1319
|
-
__TS__SetDescriptor(
|
|
1320
|
-
Unit.prototype,
|
|
1321
|
-
"agilityBase",
|
|
1322
|
-
{
|
|
1323
|
-
get = function(self)
|
|
1324
|
-
return getHeroAgi(self.handle, false)
|
|
1325
|
-
end,
|
|
1326
|
-
set = function(self, agilityBase)
|
|
1327
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1328
|
-
end
|
|
1329
|
-
},
|
|
1330
|
-
true
|
|
1331
|
-
)
|
|
1332
1431
|
__TS__SetDescriptor(
|
|
1333
1432
|
Unit.prototype,
|
|
1334
1433
|
"agilityBonus",
|
|
@@ -1346,19 +1445,6 @@ __TS__SetDescriptor(
|
|
|
1346
1445
|
end},
|
|
1347
1446
|
true
|
|
1348
1447
|
)
|
|
1349
|
-
__TS__SetDescriptor(
|
|
1350
|
-
Unit.prototype,
|
|
1351
|
-
"intelligenceBase",
|
|
1352
|
-
{
|
|
1353
|
-
get = function(self)
|
|
1354
|
-
return getHeroInt(self.handle, false)
|
|
1355
|
-
end,
|
|
1356
|
-
set = function(self, intelligenceBase)
|
|
1357
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1358
|
-
end
|
|
1359
|
-
},
|
|
1360
|
-
true
|
|
1361
|
-
)
|
|
1362
1448
|
__TS__SetDescriptor(
|
|
1363
1449
|
Unit.prototype,
|
|
1364
1450
|
"intelligenceBonus",
|
|
@@ -1407,17 +1493,17 @@ __TS__SetDescriptor(
|
|
|
1407
1493
|
"isTeamGlowVisible",
|
|
1408
1494
|
{
|
|
1409
1495
|
get = function(self)
|
|
1410
|
-
return not self[
|
|
1496
|
+
return not self[107]
|
|
1411
1497
|
end,
|
|
1412
1498
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1414
|
-
local
|
|
1499
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1500
|
+
local ____temp_8
|
|
1415
1501
|
if not isTeamGlowVisible then
|
|
1416
|
-
|
|
1502
|
+
____temp_8 = true
|
|
1417
1503
|
else
|
|
1418
|
-
|
|
1504
|
+
____temp_8 = nil
|
|
1419
1505
|
end
|
|
1420
|
-
self[
|
|
1506
|
+
self[107] = ____temp_8
|
|
1421
1507
|
end
|
|
1422
1508
|
},
|
|
1423
1509
|
true
|
|
@@ -1426,9 +1512,9 @@ __TS__SetDescriptor(
|
|
|
1426
1512
|
Unit.prototype,
|
|
1427
1513
|
"color",
|
|
1428
1514
|
{set = function(self, color)
|
|
1429
|
-
|
|
1430
|
-
if self[
|
|
1431
|
-
|
|
1515
|
+
SetUnitColor(self.handle, color.handle)
|
|
1516
|
+
if self[107] then
|
|
1517
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1518
|
end
|
|
1433
1519
|
end},
|
|
1434
1520
|
true
|
|
@@ -1451,14 +1537,14 @@ __TS__SetDescriptor(
|
|
|
1451
1537
|
"maxHealth",
|
|
1452
1538
|
{
|
|
1453
1539
|
get = function(self)
|
|
1454
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1540
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1455
1541
|
end,
|
|
1456
1542
|
set = function(self, maxHealth)
|
|
1457
|
-
if maxHealth < 1 and self[
|
|
1458
|
-
self[
|
|
1543
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1544
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1459
1545
|
maxHealth = 1
|
|
1460
1546
|
end
|
|
1461
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1547
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1462
1548
|
end
|
|
1463
1549
|
},
|
|
1464
1550
|
true
|
|
@@ -1500,10 +1586,10 @@ __TS__SetDescriptor(
|
|
|
1500
1586
|
"health",
|
|
1501
1587
|
{
|
|
1502
1588
|
get = function(self)
|
|
1503
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1589
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1504
1590
|
end,
|
|
1505
1591
|
set = function(self, health)
|
|
1506
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1592
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1507
1593
|
end
|
|
1508
1594
|
},
|
|
1509
1595
|
true
|
|
@@ -1579,25 +1665,12 @@ __TS__SetDescriptor(
|
|
|
1579
1665
|
},
|
|
1580
1666
|
true
|
|
1581
1667
|
)
|
|
1582
|
-
__TS__SetDescriptor(
|
|
1583
|
-
Unit.prototype,
|
|
1584
|
-
"flyHeight",
|
|
1585
|
-
{
|
|
1586
|
-
get = function(self)
|
|
1587
|
-
return getUnitFlyHeight(self.handle)
|
|
1588
|
-
end,
|
|
1589
|
-
set = function(self, v)
|
|
1590
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1591
|
-
end
|
|
1592
|
-
},
|
|
1593
|
-
true
|
|
1594
|
-
)
|
|
1595
1668
|
__TS__SetDescriptor(
|
|
1596
1669
|
Unit.prototype,
|
|
1597
1670
|
"x",
|
|
1598
1671
|
{
|
|
1599
1672
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1673
|
+
return self[108] or getUnitX(self.handle)
|
|
1601
1674
|
end,
|
|
1602
1675
|
set = function(self, v)
|
|
1603
1676
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1683,7 @@ __TS__SetDescriptor(
|
|
|
1610
1683
|
"y",
|
|
1611
1684
|
{
|
|
1612
1685
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1686
|
+
return self[109] or getUnitY(self.handle)
|
|
1614
1687
|
end,
|
|
1615
1688
|
set = function(self, v)
|
|
1616
1689
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1769,10 @@ __TS__SetDescriptor(
|
|
|
1696
1769
|
"gold",
|
|
1697
1770
|
{
|
|
1698
1771
|
get = function(self)
|
|
1699
|
-
return
|
|
1772
|
+
return GetResourceAmount(self.handle)
|
|
1700
1773
|
end,
|
|
1701
1774
|
set = function(self, gold)
|
|
1702
|
-
|
|
1775
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1776
|
end
|
|
1704
1777
|
},
|
|
1705
1778
|
true
|
|
@@ -1715,14 +1788,18 @@ __TS__SetDescriptor(
|
|
|
1715
1788
|
local handle = self.handle
|
|
1716
1789
|
if isPaused and not IsUnitPaused(handle) then
|
|
1717
1790
|
self[101] = true
|
|
1718
|
-
|
|
1719
|
-
|
|
1791
|
+
if (self[103] or 0) <= 0 then
|
|
1792
|
+
for _ = self[102] or 0, -1 do
|
|
1793
|
+
BlzPauseUnitEx(handle, true)
|
|
1794
|
+
end
|
|
1720
1795
|
end
|
|
1721
1796
|
PauseUnit(handle, true)
|
|
1722
1797
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1723
1798
|
PauseUnit(handle, false)
|
|
1724
|
-
|
|
1725
|
-
|
|
1799
|
+
if (self[103] or 0) <= 0 then
|
|
1800
|
+
for _ = self[102] or 0, -1 do
|
|
1801
|
+
BlzPauseUnitEx(handle, false)
|
|
1802
|
+
end
|
|
1726
1803
|
end
|
|
1727
1804
|
self[101] = nil
|
|
1728
1805
|
end
|
|
@@ -1780,20 +1857,6 @@ __TS__SetDescriptor(
|
|
|
1780
1857
|
},
|
|
1781
1858
|
true
|
|
1782
1859
|
)
|
|
1783
|
-
__TS__SetDescriptor(
|
|
1784
|
-
Unit.prototype,
|
|
1785
|
-
"scale",
|
|
1786
|
-
{
|
|
1787
|
-
get = function(self)
|
|
1788
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1789
|
-
end,
|
|
1790
|
-
set = function(self, v)
|
|
1791
|
-
setUnitScale(self.handle, v, v, v)
|
|
1792
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1793
|
-
end
|
|
1794
|
-
},
|
|
1795
|
-
true
|
|
1796
|
-
)
|
|
1797
1860
|
__TS__SetDescriptor(
|
|
1798
1861
|
Unit.prototype,
|
|
1799
1862
|
"timeScale",
|
|
@@ -1820,13 +1883,26 @@ __TS__SetDescriptor(
|
|
|
1820
1883
|
Unit.prototype,
|
|
1821
1884
|
"pathingCollisionRange",
|
|
1822
1885
|
{get = function(self)
|
|
1823
|
-
return 16 * (min(
|
|
1886
|
+
return 16 * (math.min(
|
|
1824
1887
|
getUnitCollisionSize(self.handle) // 16,
|
|
1825
1888
|
3
|
|
1826
1889
|
) + 1)
|
|
1827
1890
|
end},
|
|
1828
1891
|
true
|
|
1829
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
|
+
)
|
|
1830
1906
|
__TS__SetDescriptor(
|
|
1831
1907
|
Unit.prototype,
|
|
1832
1908
|
"pathing",
|
|
@@ -1917,30 +1993,6 @@ __TS__SetDescriptor(
|
|
|
1917
1993
|
end},
|
|
1918
1994
|
true
|
|
1919
1995
|
)
|
|
1920
|
-
__TS__SetDescriptor(
|
|
1921
|
-
Unit.prototype,
|
|
1922
|
-
"onUnitInRange",
|
|
1923
|
-
{get = function(self)
|
|
1924
|
-
local handle = self.handle
|
|
1925
|
-
local onUnitInRange = setmetatable(
|
|
1926
|
-
{},
|
|
1927
|
-
{__index = function(self, value)
|
|
1928
|
-
local event = __TS__New(
|
|
1929
|
-
TriggerEvent,
|
|
1930
|
-
function(trigger)
|
|
1931
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1932
|
-
end,
|
|
1933
|
-
function() return ____exports.Unit:of(handle) end
|
|
1934
|
-
)
|
|
1935
|
-
rawset(self, value, event)
|
|
1936
|
-
return event
|
|
1937
|
-
end}
|
|
1938
|
-
)
|
|
1939
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1940
|
-
return onUnitInRange
|
|
1941
|
-
end},
|
|
1942
|
-
true
|
|
1943
|
-
)
|
|
1944
1996
|
__TS__SetDescriptor(
|
|
1945
1997
|
Unit.prototype,
|
|
1946
1998
|
"onManaEqual",
|
|
@@ -2008,6 +2060,14 @@ __TS__SetDescriptor(
|
|
|
2008
2060
|
end},
|
|
2009
2061
|
true
|
|
2010
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
|
+
)
|
|
2011
2071
|
__TS__SetDescriptor(
|
|
2012
2072
|
Unit.prototype,
|
|
2013
2073
|
"onSelect",
|
|
@@ -2068,6 +2128,11 @@ __TS__SetDescriptor(
|
|
|
2068
2128
|
end},
|
|
2069
2129
|
true
|
|
2070
2130
|
)
|
|
2131
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2132
|
+
____exports.UnitTriggerEvent,
|
|
2133
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2134
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2135
|
+
)
|
|
2071
2136
|
Unit.deathEvent = __TS__New(
|
|
2072
2137
|
____exports.UnitTriggerEvent,
|
|
2073
2138
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2085,7 +2150,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2085
2150
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2086
2151
|
dead[unit] = true
|
|
2087
2152
|
end)
|
|
2088
|
-
____exports.Unit.onImmediateOrder[
|
|
2153
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2089
2154
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2090
2155
|
dead[unit] = false
|
|
2091
2156
|
invoke(event, unit)
|
|
@@ -2102,7 +2167,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2102
2167
|
invoke(event, unit)
|
|
2103
2168
|
end
|
|
2104
2169
|
end
|
|
2105
|
-
____exports.Unit.onImmediateOrder[
|
|
2170
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2106
2171
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2107
2172
|
Timer:run(ifNotLeft, unit)
|
|
2108
2173
|
end
|
|
@@ -2143,25 +2208,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2143
2208
|
InitializingEvent,
|
|
2144
2209
|
function(event)
|
|
2145
2210
|
local function listener(unit, id)
|
|
2146
|
-
local
|
|
2211
|
+
local ____GetSpellTargetUnit_result_11
|
|
2147
2212
|
if GetSpellTargetUnit() then
|
|
2148
|
-
|
|
2213
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2149
2214
|
else
|
|
2150
|
-
local
|
|
2215
|
+
local ____GetSpellTargetItem_result_10
|
|
2151
2216
|
if GetSpellTargetItem() then
|
|
2152
|
-
|
|
2217
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2153
2218
|
else
|
|
2154
|
-
local
|
|
2219
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2155
2220
|
if GetSpellTargetDestructable() then
|
|
2156
|
-
|
|
2221
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2157
2222
|
else
|
|
2158
|
-
|
|
2223
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2159
2224
|
end
|
|
2160
|
-
|
|
2225
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2161
2226
|
end
|
|
2162
|
-
|
|
2227
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2163
2228
|
end
|
|
2164
|
-
local target =
|
|
2229
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2165
2230
|
if target then
|
|
2166
2231
|
invoke(event, unit, id, target)
|
|
2167
2232
|
end
|
|
@@ -2369,38 +2434,57 @@ Unit.onDamaging = (function()
|
|
|
2369
2434
|
if source and source.typeId == dummyUnitId then
|
|
2370
2435
|
source = nil
|
|
2371
2436
|
end
|
|
2372
|
-
local target = BlzGetEventDamageTarget()
|
|
2437
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2438
|
+
local metadata = damageMetadataByTarget[target]
|
|
2439
|
+
damageMetadataByTarget[target] = nil
|
|
2373
2440
|
local data = {
|
|
2374
2441
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2442
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2443
|
damageType = BlzGetEventDamageType(),
|
|
2377
2444
|
weaponType = BlzGetEventWeaponType(),
|
|
2378
|
-
|
|
2445
|
+
metadata = metadata,
|
|
2446
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2447
|
+
originalAmount = GetEventDamage(),
|
|
2448
|
+
originalMetadata = metadata,
|
|
2449
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2379
2450
|
}
|
|
2380
2451
|
if data.isAttack and source then
|
|
2381
|
-
|
|
2382
|
-
if weapon == -1 then
|
|
2383
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2384
|
-
weapon = 0
|
|
2385
|
-
end
|
|
2386
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2452
|
+
data.weapon = source:chooseWeapon(target)
|
|
2387
2453
|
end
|
|
2388
2454
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2389
2455
|
invoke(
|
|
2390
2456
|
event,
|
|
2391
2457
|
source,
|
|
2392
|
-
|
|
2458
|
+
target,
|
|
2393
2459
|
setmetatable(
|
|
2394
2460
|
{},
|
|
2395
2461
|
{
|
|
2396
2462
|
__index = data,
|
|
2397
2463
|
__newindex = function(self, key, value)
|
|
2398
|
-
damageSetters[key]
|
|
2464
|
+
local damageSetter = damageSetters[key]
|
|
2465
|
+
if damageSetter ~= nil then
|
|
2466
|
+
damageSetter(value)
|
|
2467
|
+
end
|
|
2399
2468
|
data[key] = value
|
|
2400
2469
|
end
|
|
2401
2470
|
}
|
|
2402
2471
|
)
|
|
2403
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
|
|
2404
2488
|
return
|
|
2405
2489
|
end
|
|
2406
2490
|
BlzSetEventDamage(0)
|
|
@@ -2408,7 +2492,7 @@ Unit.onDamaging = (function()
|
|
|
2408
2492
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2409
2493
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2410
2494
|
local sourceOwner = source.owner.handle
|
|
2411
|
-
local targetOwner =
|
|
2495
|
+
local targetOwner = target.owner.handle
|
|
2412
2496
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2413
2497
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2414
2498
|
Timer:run(function()
|
|
@@ -2424,23 +2508,19 @@ Unit.onDamaging = (function()
|
|
|
2424
2508
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2425
2509
|
local condition = ____value[1]
|
|
2426
2510
|
local action = ____value[2]
|
|
2427
|
-
if condition(
|
|
2428
|
-
source,
|
|
2429
|
-
____exports.Unit:of(target),
|
|
2430
|
-
data
|
|
2431
|
-
) then
|
|
2511
|
+
if condition(source, target, data) then
|
|
2432
2512
|
action(
|
|
2433
2513
|
source,
|
|
2434
|
-
|
|
2514
|
+
target,
|
|
2435
2515
|
setmetatable(
|
|
2436
2516
|
{fire = function()
|
|
2437
2517
|
UnitDamageTarget(
|
|
2438
2518
|
source.handle,
|
|
2439
|
-
target,
|
|
2519
|
+
target.handle,
|
|
2440
2520
|
data.amount,
|
|
2441
2521
|
true,
|
|
2442
2522
|
true,
|
|
2443
|
-
data.attackType,
|
|
2523
|
+
attackTypeToNative(data.attackType),
|
|
2444
2524
|
data.damageType,
|
|
2445
2525
|
data.weaponType
|
|
2446
2526
|
)
|
|
@@ -2467,30 +2547,54 @@ Unit.onDamage = __TS__New(
|
|
|
2467
2547
|
if source and source.typeId == dummyUnitId then
|
|
2468
2548
|
source = nil
|
|
2469
2549
|
end
|
|
2550
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2551
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2552
|
+
damagingEventByTarget[target] = nil
|
|
2470
2553
|
local data = {
|
|
2471
2554
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2555
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2556
|
damageType = BlzGetEventDamageType(),
|
|
2474
2557
|
weaponType = BlzGetEventWeaponType(),
|
|
2558
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2475
2559
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
-
originalAmount = GetEventDamage(),
|
|
2560
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2561
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2477
2562
|
preventDeath = damageEventPreventDeath
|
|
2478
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
|
|
2479
2581
|
local evData = setmetatable(
|
|
2480
2582
|
{},
|
|
2481
2583
|
{
|
|
2482
2584
|
__index = data,
|
|
2483
2585
|
__newindex = function(self, key, value)
|
|
2484
|
-
damageSetters[key]
|
|
2586
|
+
local damageSetter = damageSetters[key]
|
|
2587
|
+
if damageSetter ~= nil then
|
|
2588
|
+
damageSetter(value)
|
|
2589
|
+
end
|
|
2485
2590
|
data[key] = value
|
|
2486
2591
|
end
|
|
2487
2592
|
}
|
|
2488
2593
|
)
|
|
2489
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2490
2594
|
invoke(event, source, target, evData)
|
|
2491
2595
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2492
2596
|
local bonusHealth = math.ceil(evData.amount)
|
|
2493
|
-
target[
|
|
2597
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2494
2598
|
BlzSetUnitMaxHP(
|
|
2495
2599
|
target.handle,
|
|
2496
2600
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2504,7 +2608,7 @@ Unit.onDamage = __TS__New(
|
|
|
2504
2608
|
evData[0],
|
|
2505
2609
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2506
2610
|
)
|
|
2507
|
-
target[
|
|
2611
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2508
2612
|
SetWidgetLife(
|
|
2509
2613
|
target.handle,
|
|
2510
2614
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2530,7 +2634,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2530
2634
|
function()
|
|
2531
2635
|
local unit = getTriggerUnit()
|
|
2532
2636
|
local item = getManipulatedItem()
|
|
2533
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2637
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2534
2638
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2535
2639
|
end
|
|
2536
2640
|
return IgnoreEvent
|
|
@@ -2540,10 +2644,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2540
2644
|
____exports.UnitTriggerEvent,
|
|
2541
2645
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2542
2646
|
function()
|
|
2543
|
-
local
|
|
2544
|
-
local
|
|
2545
|
-
if getUnitTypeId(
|
|
2546
|
-
|
|
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
|
|
2547
2655
|
end
|
|
2548
2656
|
return IgnoreEvent
|
|
2549
2657
|
end
|
|
@@ -2554,59 +2662,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2662
|
function()
|
|
2555
2663
|
local unit = getTriggerUnit()
|
|
2556
2664
|
local item = getManipulatedItem()
|
|
2557
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2665
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2558
2666
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
2667
|
end
|
|
2560
2668
|
return IgnoreEvent
|
|
2561
2669
|
end
|
|
2562
2670
|
)
|
|
2563
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2564
|
-
____exports.UnitTriggerEvent,
|
|
2565
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2566
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2567
|
-
)
|
|
2568
2671
|
__TS__ObjectDefineProperty(
|
|
2569
2672
|
Unit,
|
|
2570
|
-
"
|
|
2673
|
+
"itemChargesChangedEvent",
|
|
2571
2674
|
{get = function(self)
|
|
2572
2675
|
local event = __TS__New(Event)
|
|
2573
|
-
|
|
2574
|
-
local
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
if item ~= nil then
|
|
2578
|
-
invoke(event, unit, item)
|
|
2579
|
-
end
|
|
2676
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2677
|
+
local unit = item.owner
|
|
2678
|
+
if unit ~= nil then
|
|
2679
|
+
invoke(event, unit, item)
|
|
2580
2680
|
end
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2584
|
-
end
|
|
2585
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2586
|
-
return event
|
|
2587
|
-
end}
|
|
2588
|
-
)
|
|
2589
|
-
__TS__ObjectDefineProperty(
|
|
2590
|
-
Unit,
|
|
2591
|
-
"itemMoveOrderEvent",
|
|
2592
|
-
{get = function(self)
|
|
2593
|
-
local event = __TS__New(Event)
|
|
2594
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2595
|
-
local slotTo = order - orderId("moveslot0")
|
|
2596
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2597
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2598
|
-
if slotFrom ~= nil then
|
|
2599
|
-
invoke(
|
|
2600
|
-
event,
|
|
2601
|
-
unit,
|
|
2602
|
-
item,
|
|
2603
|
-
slotFrom,
|
|
2604
|
-
slotTo
|
|
2605
|
-
)
|
|
2606
|
-
end
|
|
2607
|
-
end)
|
|
2608
|
-
end
|
|
2609
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2681
|
+
end)
|
|
2682
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2610
2683
|
return event
|
|
2611
2684
|
end}
|
|
2612
2685
|
)
|
|
@@ -2635,6 +2708,10 @@ __TS__ObjectDefineProperty(
|
|
|
2635
2708
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2636
2709
|
return destroyEvent
|
|
2637
2710
|
end}
|
|
2711
|
+
)
|
|
2712
|
+
Unit.synchronize = synchronizer(
|
|
2713
|
+
function(unit) return unit.syncId end,
|
|
2714
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2638
2715
|
);
|
|
2639
2716
|
(function(self)
|
|
2640
2717
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2652,11 +2729,7 @@ __TS__ObjectDefineProperty(
|
|
|
2652
2729
|
function(____, id) return fourCC(id) end
|
|
2653
2730
|
)
|
|
2654
2731
|
end)
|
|
2655
|
-
for ____, leaveOrderId in ipairs({
|
|
2656
|
-
orderId("undefend"),
|
|
2657
|
-
orderId("magicundefense"),
|
|
2658
|
-
orderId("unimmolation")
|
|
2659
|
-
}) do
|
|
2732
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2660
2733
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2661
2734
|
local handle = unit.handle
|
|
2662
2735
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2664,7 +2737,8 @@ __TS__ObjectDefineProperty(
|
|
|
2664
2737
|
return
|
|
2665
2738
|
end
|
|
2666
2739
|
end
|
|
2667
|
-
unit:
|
|
2740
|
+
unit:saveData()
|
|
2741
|
+
Timer:run(unit, "destroy")
|
|
2668
2742
|
end)
|
|
2669
2743
|
end
|
|
2670
2744
|
end)(Unit)
|