warscript 0.0.1-dev.d750e38 → 0.0.1-dev.d77b529
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +12 -4
- package/core/types/effect.lua +67 -104
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +136 -58
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +115 -4
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +6 -0
- package/engine/behaviour/ability/damage.d.ts +13 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +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 -5
- package/engine/behaviour/ability.lua +97 -24
- 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 +121 -59
- package/engine/buff.lua +605 -301
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +11 -1
- package/engine/internal/ability.lua +104 -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 +34 -18
- package/engine/internal/item.lua +308 -102
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +113 -12
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +57 -14
- 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 +16 -0
- package/engine/internal/unit/bonus.lua +119 -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/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +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 +43 -33
- package/engine/internal/unit.lua +391 -323
- package/engine/lightning.d.ts +4 -3
- package/engine/lightning.lua +22 -15
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +36 -19
- package/engine/object-data/entry/ability-type.lua +307 -29
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- package/engine/object-data/entry/buff-type.d.ts +10 -12
- package/engine/object-data/entry/buff-type.lua +39 -29
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +88 -4
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +71 -6
- package/engine/object-data/entry/unit-type.lua +592 -93
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +21 -14
- package/engine/object-data/entry.lua +68 -32
- package/engine/object-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 +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +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/objutil/unit.lua +8 -0
- 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 +2 -0
- package/utility/arrays.lua +11 -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/reflection.lua +11 -7
- 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
|
@@ -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,13 @@ 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_3
|
|
770
850
|
if type(x) == "number" then
|
|
771
|
-
|
|
851
|
+
____temp_3 = isUnitInRangeXY(self.handle, x, y, range)
|
|
772
852
|
else
|
|
773
|
-
|
|
853
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
774
854
|
end
|
|
775
|
-
return
|
|
855
|
+
return ____temp_3
|
|
776
856
|
end
|
|
777
857
|
function Unit.prototype.isAllyOf(self, unit)
|
|
778
858
|
return isUnitAlly(
|
|
@@ -790,16 +870,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
790
870
|
if type(animation) == "number" then
|
|
791
871
|
setUnitAnimationByIndex(self.handle, animation)
|
|
792
872
|
elseif rarity then
|
|
793
|
-
|
|
873
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
794
874
|
else
|
|
795
875
|
setUnitAnimation(self.handle, animation)
|
|
796
876
|
end
|
|
797
877
|
end
|
|
878
|
+
function Unit.prototype.resetAnimation(self)
|
|
879
|
+
ResetUnitAnimation(self.handle)
|
|
880
|
+
end
|
|
798
881
|
function Unit.prototype.queueAnimation(self, animation)
|
|
799
|
-
|
|
882
|
+
QueueUnitAnimation(self.handle, animation)
|
|
883
|
+
end
|
|
884
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
885
|
+
local firstWeapon = self.firstWeapon
|
|
886
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
887
|
+
return firstWeapon
|
|
888
|
+
end
|
|
889
|
+
local secondWeapon = self.secondWeapon
|
|
890
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
891
|
+
return secondWeapon
|
|
892
|
+
end
|
|
893
|
+
return nil
|
|
800
894
|
end
|
|
801
895
|
function Unit.prototype.delayHealthChecks(self)
|
|
802
|
-
self[
|
|
896
|
+
self[104] = (self[104] or 0) + 1
|
|
803
897
|
Timer:run(delayHealthChecksCallback, self)
|
|
804
898
|
end
|
|
805
899
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -809,21 +903,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
809
903
|
return IsUnitSelected(self.handle, player.handle)
|
|
810
904
|
end
|
|
811
905
|
function Unit.prototype.explode(self)
|
|
812
|
-
|
|
906
|
+
SetUnitExploded(self.handle, true)
|
|
813
907
|
killUnit(self.handle)
|
|
814
908
|
end
|
|
815
909
|
function Unit.prototype.kill(self)
|
|
816
910
|
killUnit(self.handle)
|
|
817
911
|
end
|
|
818
912
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
819
|
-
local
|
|
820
|
-
local
|
|
821
|
-
local
|
|
822
|
-
if
|
|
823
|
-
|
|
913
|
+
local ____ReviveHero_6 = ReviveHero
|
|
914
|
+
local ____array_5 = __TS__SparseArrayNew(self.handle, x, y)
|
|
915
|
+
local ____doEffect_4 = doEffect
|
|
916
|
+
if ____doEffect_4 == nil then
|
|
917
|
+
____doEffect_4 = false
|
|
824
918
|
end
|
|
825
|
-
__TS__SparseArrayPush(
|
|
826
|
-
|
|
919
|
+
__TS__SparseArrayPush(____array_5, ____doEffect_4)
|
|
920
|
+
____ReviveHero_6(__TS__SparseArraySpread(____array_5))
|
|
827
921
|
end
|
|
828
922
|
function Unit.prototype.healTarget(self, target, amount)
|
|
829
923
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -863,20 +957,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
863
957
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
864
958
|
end
|
|
865
959
|
function Unit.prototype.itemInSlot(self, slot)
|
|
866
|
-
return Item:of(
|
|
960
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
867
961
|
end
|
|
868
962
|
function Unit.prototype.addAbility(self, abilityId)
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
963
|
+
local ability = UnitAbility:of(
|
|
964
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
965
|
+
abilityId,
|
|
966
|
+
self
|
|
967
|
+
)
|
|
968
|
+
if ability ~= nil then
|
|
875
969
|
local abilities = self.abilities
|
|
876
970
|
abilities[#abilities + 1] = ability
|
|
877
|
-
return ability
|
|
878
971
|
end
|
|
879
|
-
return
|
|
972
|
+
return ability
|
|
880
973
|
end
|
|
881
974
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
882
975
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -890,31 +983,21 @@ end
|
|
|
890
983
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
891
984
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
892
985
|
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
|
-
)
|
|
986
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
987
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
988
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
904
989
|
end
|
|
905
|
-
function Unit.prototype.removeAbility(self,
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
end
|
|
990
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
991
|
+
local abilities = self.abilities
|
|
992
|
+
for i = 1, #abilities do
|
|
993
|
+
if abilities[i].typeId == abilityTypeId then
|
|
994
|
+
local ability = abilities[i]
|
|
995
|
+
tremove(abilities, i)
|
|
996
|
+
ability:destroy()
|
|
997
|
+
return true
|
|
914
998
|
end
|
|
915
|
-
return true
|
|
916
999
|
end
|
|
917
|
-
return
|
|
1000
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
918
1001
|
end
|
|
919
1002
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
920
1003
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -928,9 +1011,6 @@ end
|
|
|
928
1011
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
929
1012
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
930
1013
|
end
|
|
931
|
-
function Unit.prototype.interruptAttack(self)
|
|
932
|
-
unitInterruptAttack(self.handle)
|
|
933
|
-
end
|
|
934
1014
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
935
1015
|
local handle = self.handle
|
|
936
1016
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1001,18 +1081,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1001
1081
|
end
|
|
1002
1082
|
function Unit.prototype.incrementStunCounter(self)
|
|
1003
1083
|
local stunCounter = self[102] or 0
|
|
1004
|
-
if not self[101] or stunCounter >= 0 then
|
|
1084
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1005
1085
|
BlzPauseUnitEx(self.handle, true)
|
|
1006
1086
|
end
|
|
1007
1087
|
self[102] = stunCounter + 1
|
|
1008
1088
|
end
|
|
1009
1089
|
function Unit.prototype.decrementStunCounter(self)
|
|
1010
1090
|
local stunCounter = self[102] or 0
|
|
1011
|
-
if not self[101] or stunCounter >= 1 then
|
|
1091
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1012
1092
|
BlzPauseUnitEx(self.handle, false)
|
|
1013
1093
|
end
|
|
1014
1094
|
self[102] = stunCounter - 1
|
|
1015
1095
|
end
|
|
1096
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1097
|
+
local forceStunCounter = self[103] or 0
|
|
1098
|
+
if forceStunCounter == 0 then
|
|
1099
|
+
local handle = self.handle
|
|
1100
|
+
if not self[101] then
|
|
1101
|
+
for _ = self[102] or 0, -1 do
|
|
1102
|
+
BlzPauseUnitEx(handle, true)
|
|
1103
|
+
end
|
|
1104
|
+
end
|
|
1105
|
+
BlzPauseUnitEx(handle, true)
|
|
1106
|
+
end
|
|
1107
|
+
self[103] = forceStunCounter + 1
|
|
1108
|
+
end
|
|
1109
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1110
|
+
local forceStunCounter = self[103] or 0
|
|
1111
|
+
if forceStunCounter == 1 then
|
|
1112
|
+
local handle = self.handle
|
|
1113
|
+
if not self[101] then
|
|
1114
|
+
for _ = self[102] or 0, -1 do
|
|
1115
|
+
BlzPauseUnitEx(handle, false)
|
|
1116
|
+
end
|
|
1117
|
+
end
|
|
1118
|
+
BlzPauseUnitEx(handle, false)
|
|
1119
|
+
end
|
|
1120
|
+
self[103] = forceStunCounter - 1
|
|
1121
|
+
end
|
|
1016
1122
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1017
1123
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1018
1124
|
owner.handle,
|
|
@@ -1201,7 +1307,7 @@ __TS__SetDescriptor(
|
|
|
1201
1307
|
Unit.prototype,
|
|
1202
1308
|
"isIllusion",
|
|
1203
1309
|
{get = function(self)
|
|
1204
|
-
return
|
|
1310
|
+
return IsUnitIllusion(self.handle)
|
|
1205
1311
|
end},
|
|
1206
1312
|
true
|
|
1207
1313
|
)
|
|
@@ -1209,7 +1315,7 @@ __TS__SetDescriptor(
|
|
|
1209
1315
|
Unit.prototype,
|
|
1210
1316
|
"isStunned",
|
|
1211
1317
|
{get = function(self)
|
|
1212
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1318
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1213
1319
|
end},
|
|
1214
1320
|
true
|
|
1215
1321
|
)
|
|
@@ -1288,13 +1394,13 @@ __TS__SetDescriptor(
|
|
|
1288
1394
|
)
|
|
1289
1395
|
__TS__SetDescriptor(
|
|
1290
1396
|
Unit.prototype,
|
|
1291
|
-
"
|
|
1397
|
+
"primaryAttribute",
|
|
1292
1398
|
{
|
|
1293
1399
|
get = function(self)
|
|
1294
|
-
return
|
|
1400
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1295
1401
|
end,
|
|
1296
|
-
set = function(self,
|
|
1297
|
-
|
|
1402
|
+
set = function(self, primaryAttribute)
|
|
1403
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1298
1404
|
end
|
|
1299
1405
|
},
|
|
1300
1406
|
true
|
|
@@ -1316,19 +1422,6 @@ __TS__SetDescriptor(
|
|
|
1316
1422
|
end},
|
|
1317
1423
|
true
|
|
1318
1424
|
)
|
|
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
1425
|
__TS__SetDescriptor(
|
|
1333
1426
|
Unit.prototype,
|
|
1334
1427
|
"agilityBonus",
|
|
@@ -1346,19 +1439,6 @@ __TS__SetDescriptor(
|
|
|
1346
1439
|
end},
|
|
1347
1440
|
true
|
|
1348
1441
|
)
|
|
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
1442
|
__TS__SetDescriptor(
|
|
1363
1443
|
Unit.prototype,
|
|
1364
1444
|
"intelligenceBonus",
|
|
@@ -1407,17 +1487,17 @@ __TS__SetDescriptor(
|
|
|
1407
1487
|
"isTeamGlowVisible",
|
|
1408
1488
|
{
|
|
1409
1489
|
get = function(self)
|
|
1410
|
-
return not self[
|
|
1490
|
+
return not self[107]
|
|
1411
1491
|
end,
|
|
1412
1492
|
set = function(self, isTeamGlowVisible)
|
|
1413
|
-
|
|
1414
|
-
local
|
|
1493
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1494
|
+
local ____temp_7
|
|
1415
1495
|
if not isTeamGlowVisible then
|
|
1416
|
-
|
|
1496
|
+
____temp_7 = true
|
|
1417
1497
|
else
|
|
1418
|
-
|
|
1498
|
+
____temp_7 = nil
|
|
1419
1499
|
end
|
|
1420
|
-
self[
|
|
1500
|
+
self[107] = ____temp_7
|
|
1421
1501
|
end
|
|
1422
1502
|
},
|
|
1423
1503
|
true
|
|
@@ -1426,9 +1506,9 @@ __TS__SetDescriptor(
|
|
|
1426
1506
|
Unit.prototype,
|
|
1427
1507
|
"color",
|
|
1428
1508
|
{set = function(self, color)
|
|
1429
|
-
|
|
1430
|
-
if self[
|
|
1431
|
-
|
|
1509
|
+
SetUnitColor(self.handle, color.handle)
|
|
1510
|
+
if self[107] then
|
|
1511
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1432
1512
|
end
|
|
1433
1513
|
end},
|
|
1434
1514
|
true
|
|
@@ -1451,14 +1531,14 @@ __TS__SetDescriptor(
|
|
|
1451
1531
|
"maxHealth",
|
|
1452
1532
|
{
|
|
1453
1533
|
get = function(self)
|
|
1454
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1534
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1455
1535
|
end,
|
|
1456
1536
|
set = function(self, maxHealth)
|
|
1457
|
-
if maxHealth < 1 and self[
|
|
1458
|
-
self[
|
|
1537
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1538
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1459
1539
|
maxHealth = 1
|
|
1460
1540
|
end
|
|
1461
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1541
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1462
1542
|
end
|
|
1463
1543
|
},
|
|
1464
1544
|
true
|
|
@@ -1500,10 +1580,10 @@ __TS__SetDescriptor(
|
|
|
1500
1580
|
"health",
|
|
1501
1581
|
{
|
|
1502
1582
|
get = function(self)
|
|
1503
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1583
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1504
1584
|
end,
|
|
1505
1585
|
set = function(self, health)
|
|
1506
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1586
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1507
1587
|
end
|
|
1508
1588
|
},
|
|
1509
1589
|
true
|
|
@@ -1579,25 +1659,12 @@ __TS__SetDescriptor(
|
|
|
1579
1659
|
},
|
|
1580
1660
|
true
|
|
1581
1661
|
)
|
|
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
1662
|
__TS__SetDescriptor(
|
|
1596
1663
|
Unit.prototype,
|
|
1597
1664
|
"x",
|
|
1598
1665
|
{
|
|
1599
1666
|
get = function(self)
|
|
1600
|
-
return getUnitX(self.handle)
|
|
1667
|
+
return self[108] or getUnitX(self.handle)
|
|
1601
1668
|
end,
|
|
1602
1669
|
set = function(self, v)
|
|
1603
1670
|
SetUnitX(self.handle, v)
|
|
@@ -1610,7 +1677,7 @@ __TS__SetDescriptor(
|
|
|
1610
1677
|
"y",
|
|
1611
1678
|
{
|
|
1612
1679
|
get = function(self)
|
|
1613
|
-
return getUnitY(self.handle)
|
|
1680
|
+
return self[109] or getUnitY(self.handle)
|
|
1614
1681
|
end,
|
|
1615
1682
|
set = function(self, v)
|
|
1616
1683
|
SetUnitY(self.handle, v)
|
|
@@ -1696,10 +1763,10 @@ __TS__SetDescriptor(
|
|
|
1696
1763
|
"gold",
|
|
1697
1764
|
{
|
|
1698
1765
|
get = function(self)
|
|
1699
|
-
return
|
|
1766
|
+
return GetResourceAmount(self.handle)
|
|
1700
1767
|
end,
|
|
1701
1768
|
set = function(self, gold)
|
|
1702
|
-
|
|
1769
|
+
SetResourceAmount(self.handle, gold)
|
|
1703
1770
|
end
|
|
1704
1771
|
},
|
|
1705
1772
|
true
|
|
@@ -1715,14 +1782,18 @@ __TS__SetDescriptor(
|
|
|
1715
1782
|
local handle = self.handle
|
|
1716
1783
|
if isPaused and not IsUnitPaused(handle) then
|
|
1717
1784
|
self[101] = true
|
|
1718
|
-
|
|
1719
|
-
|
|
1785
|
+
if (self[103] or 0) <= 0 then
|
|
1786
|
+
for _ = self[102] or 0, -1 do
|
|
1787
|
+
BlzPauseUnitEx(handle, true)
|
|
1788
|
+
end
|
|
1720
1789
|
end
|
|
1721
1790
|
PauseUnit(handle, true)
|
|
1722
1791
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1723
1792
|
PauseUnit(handle, false)
|
|
1724
|
-
|
|
1725
|
-
|
|
1793
|
+
if (self[103] or 0) <= 0 then
|
|
1794
|
+
for _ = self[102] or 0, -1 do
|
|
1795
|
+
BlzPauseUnitEx(handle, false)
|
|
1796
|
+
end
|
|
1726
1797
|
end
|
|
1727
1798
|
self[101] = nil
|
|
1728
1799
|
end
|
|
@@ -1780,20 +1851,6 @@ __TS__SetDescriptor(
|
|
|
1780
1851
|
},
|
|
1781
1852
|
true
|
|
1782
1853
|
)
|
|
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
1854
|
__TS__SetDescriptor(
|
|
1798
1855
|
Unit.prototype,
|
|
1799
1856
|
"timeScale",
|
|
@@ -1820,13 +1877,26 @@ __TS__SetDescriptor(
|
|
|
1820
1877
|
Unit.prototype,
|
|
1821
1878
|
"pathingCollisionRange",
|
|
1822
1879
|
{get = function(self)
|
|
1823
|
-
return 16 * (min(
|
|
1880
|
+
return 16 * (math.min(
|
|
1824
1881
|
getUnitCollisionSize(self.handle) // 16,
|
|
1825
1882
|
3
|
|
1826
1883
|
) + 1)
|
|
1827
1884
|
end},
|
|
1828
1885
|
true
|
|
1829
1886
|
)
|
|
1887
|
+
__TS__SetDescriptor(
|
|
1888
|
+
Unit.prototype,
|
|
1889
|
+
"movementType",
|
|
1890
|
+
{
|
|
1891
|
+
get = function(self)
|
|
1892
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1893
|
+
end,
|
|
1894
|
+
set = function(self, movementType)
|
|
1895
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1896
|
+
end
|
|
1897
|
+
},
|
|
1898
|
+
true
|
|
1899
|
+
)
|
|
1830
1900
|
__TS__SetDescriptor(
|
|
1831
1901
|
Unit.prototype,
|
|
1832
1902
|
"pathing",
|
|
@@ -1917,30 +1987,6 @@ __TS__SetDescriptor(
|
|
|
1917
1987
|
end},
|
|
1918
1988
|
true
|
|
1919
1989
|
)
|
|
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
1990
|
__TS__SetDescriptor(
|
|
1945
1991
|
Unit.prototype,
|
|
1946
1992
|
"onManaEqual",
|
|
@@ -2008,6 +2054,14 @@ __TS__SetDescriptor(
|
|
|
2008
2054
|
end},
|
|
2009
2055
|
true
|
|
2010
2056
|
)
|
|
2057
|
+
__TS__SetDescriptor(
|
|
2058
|
+
Unit.prototype,
|
|
2059
|
+
"targetAcquiredEvent",
|
|
2060
|
+
{get = function(self)
|
|
2061
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2062
|
+
end},
|
|
2063
|
+
true
|
|
2064
|
+
)
|
|
2011
2065
|
__TS__SetDescriptor(
|
|
2012
2066
|
Unit.prototype,
|
|
2013
2067
|
"onSelect",
|
|
@@ -2068,6 +2122,11 @@ __TS__SetDescriptor(
|
|
|
2068
2122
|
end},
|
|
2069
2123
|
true
|
|
2070
2124
|
)
|
|
2125
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2126
|
+
____exports.UnitTriggerEvent,
|
|
2127
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2128
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2129
|
+
)
|
|
2071
2130
|
Unit.deathEvent = __TS__New(
|
|
2072
2131
|
____exports.UnitTriggerEvent,
|
|
2073
2132
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2085,7 +2144,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2085
2144
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2086
2145
|
dead[unit] = true
|
|
2087
2146
|
end)
|
|
2088
|
-
____exports.Unit.onImmediateOrder[
|
|
2147
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2089
2148
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2090
2149
|
dead[unit] = false
|
|
2091
2150
|
invoke(event, unit)
|
|
@@ -2102,7 +2161,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2102
2161
|
invoke(event, unit)
|
|
2103
2162
|
end
|
|
2104
2163
|
end
|
|
2105
|
-
____exports.Unit.onImmediateOrder[
|
|
2164
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2106
2165
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2107
2166
|
Timer:run(ifNotLeft, unit)
|
|
2108
2167
|
end
|
|
@@ -2143,25 +2202,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2143
2202
|
InitializingEvent,
|
|
2144
2203
|
function(event)
|
|
2145
2204
|
local function listener(unit, id)
|
|
2146
|
-
local
|
|
2205
|
+
local ____GetSpellTargetUnit_result_10
|
|
2147
2206
|
if GetSpellTargetUnit() then
|
|
2148
|
-
|
|
2207
|
+
____GetSpellTargetUnit_result_10 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2149
2208
|
else
|
|
2150
|
-
local
|
|
2209
|
+
local ____GetSpellTargetItem_result_9
|
|
2151
2210
|
if GetSpellTargetItem() then
|
|
2152
|
-
|
|
2211
|
+
____GetSpellTargetItem_result_9 = Item:of(GetSpellTargetItem())
|
|
2153
2212
|
else
|
|
2154
|
-
local
|
|
2213
|
+
local ____GetSpellTargetDestructable_result_8
|
|
2155
2214
|
if GetSpellTargetDestructable() then
|
|
2156
|
-
|
|
2215
|
+
____GetSpellTargetDestructable_result_8 = Destructable:of(GetSpellTargetDestructable())
|
|
2157
2216
|
else
|
|
2158
|
-
|
|
2217
|
+
____GetSpellTargetDestructable_result_8 = nil
|
|
2159
2218
|
end
|
|
2160
|
-
|
|
2219
|
+
____GetSpellTargetItem_result_9 = ____GetSpellTargetDestructable_result_8
|
|
2161
2220
|
end
|
|
2162
|
-
|
|
2221
|
+
____GetSpellTargetUnit_result_10 = ____GetSpellTargetItem_result_9
|
|
2163
2222
|
end
|
|
2164
|
-
local target =
|
|
2223
|
+
local target = ____GetSpellTargetUnit_result_10
|
|
2165
2224
|
if target then
|
|
2166
2225
|
invoke(event, unit, id, target)
|
|
2167
2226
|
end
|
|
@@ -2369,38 +2428,57 @@ Unit.onDamaging = (function()
|
|
|
2369
2428
|
if source and source.typeId == dummyUnitId then
|
|
2370
2429
|
source = nil
|
|
2371
2430
|
end
|
|
2372
|
-
local target = BlzGetEventDamageTarget()
|
|
2431
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2432
|
+
local metadata = damageMetadataByTarget[target]
|
|
2433
|
+
damageMetadataByTarget[target] = nil
|
|
2373
2434
|
local data = {
|
|
2374
2435
|
amount = GetEventDamage(),
|
|
2375
|
-
attackType = BlzGetEventAttackType(),
|
|
2436
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2376
2437
|
damageType = BlzGetEventDamageType(),
|
|
2377
2438
|
weaponType = BlzGetEventWeaponType(),
|
|
2378
|
-
|
|
2439
|
+
metadata = metadata,
|
|
2440
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2441
|
+
originalAmount = GetEventDamage(),
|
|
2442
|
+
originalMetadata = metadata,
|
|
2443
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2379
2444
|
}
|
|
2380
2445
|
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])
|
|
2446
|
+
data.weapon = source:chooseWeapon(target)
|
|
2387
2447
|
end
|
|
2388
2448
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2389
2449
|
invoke(
|
|
2390
2450
|
event,
|
|
2391
2451
|
source,
|
|
2392
|
-
|
|
2452
|
+
target,
|
|
2393
2453
|
setmetatable(
|
|
2394
2454
|
{},
|
|
2395
2455
|
{
|
|
2396
2456
|
__index = data,
|
|
2397
2457
|
__newindex = function(self, key, value)
|
|
2398
|
-
damageSetters[key]
|
|
2458
|
+
local damageSetter = damageSetters[key]
|
|
2459
|
+
if damageSetter ~= nil then
|
|
2460
|
+
damageSetter(value)
|
|
2461
|
+
end
|
|
2399
2462
|
data[key] = value
|
|
2400
2463
|
end
|
|
2401
2464
|
}
|
|
2402
2465
|
)
|
|
2403
2466
|
)
|
|
2467
|
+
if data[0] and source then
|
|
2468
|
+
local sourceOwner = source.owner.handle
|
|
2469
|
+
data[1] = sourceOwner
|
|
2470
|
+
local targetOwner = target.owner.handle
|
|
2471
|
+
data[2] = targetOwner
|
|
2472
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2473
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2474
|
+
data[3] = true
|
|
2475
|
+
end
|
|
2476
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2477
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2478
|
+
data[4] = true
|
|
2479
|
+
end
|
|
2480
|
+
end
|
|
2481
|
+
damagingEventByTarget[target] = data
|
|
2404
2482
|
return
|
|
2405
2483
|
end
|
|
2406
2484
|
BlzSetEventDamage(0)
|
|
@@ -2408,7 +2486,7 @@ Unit.onDamaging = (function()
|
|
|
2408
2486
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2409
2487
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2410
2488
|
local sourceOwner = source.owner.handle
|
|
2411
|
-
local targetOwner =
|
|
2489
|
+
local targetOwner = target.owner.handle
|
|
2412
2490
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2413
2491
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2414
2492
|
Timer:run(function()
|
|
@@ -2424,23 +2502,19 @@ Unit.onDamaging = (function()
|
|
|
2424
2502
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2425
2503
|
local condition = ____value[1]
|
|
2426
2504
|
local action = ____value[2]
|
|
2427
|
-
if condition(
|
|
2428
|
-
source,
|
|
2429
|
-
____exports.Unit:of(target),
|
|
2430
|
-
data
|
|
2431
|
-
) then
|
|
2505
|
+
if condition(source, target, data) then
|
|
2432
2506
|
action(
|
|
2433
2507
|
source,
|
|
2434
|
-
|
|
2508
|
+
target,
|
|
2435
2509
|
setmetatable(
|
|
2436
2510
|
{fire = function()
|
|
2437
2511
|
UnitDamageTarget(
|
|
2438
2512
|
source.handle,
|
|
2439
|
-
target,
|
|
2513
|
+
target.handle,
|
|
2440
2514
|
data.amount,
|
|
2441
2515
|
true,
|
|
2442
2516
|
true,
|
|
2443
|
-
data.attackType,
|
|
2517
|
+
attackTypeToNative(data.attackType),
|
|
2444
2518
|
data.damageType,
|
|
2445
2519
|
data.weaponType
|
|
2446
2520
|
)
|
|
@@ -2467,30 +2541,54 @@ Unit.onDamage = __TS__New(
|
|
|
2467
2541
|
if source and source.typeId == dummyUnitId then
|
|
2468
2542
|
source = nil
|
|
2469
2543
|
end
|
|
2544
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2545
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2546
|
+
damagingEventByTarget[target] = nil
|
|
2470
2547
|
local data = {
|
|
2471
2548
|
amount = GetEventDamage(),
|
|
2472
|
-
attackType = BlzGetEventAttackType(),
|
|
2549
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2473
2550
|
damageType = BlzGetEventDamageType(),
|
|
2474
2551
|
weaponType = BlzGetEventWeaponType(),
|
|
2552
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2475
2553
|
isAttack = BlzGetEventIsAttack(),
|
|
2476
|
-
originalAmount = GetEventDamage(),
|
|
2554
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2555
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2477
2556
|
preventDeath = damageEventPreventDeath
|
|
2478
2557
|
}
|
|
2558
|
+
if damagingEvent then
|
|
2559
|
+
for key, value in pairs(damagingEvent) do
|
|
2560
|
+
if isAttribute(key) then
|
|
2561
|
+
data[key] = value
|
|
2562
|
+
end
|
|
2563
|
+
end
|
|
2564
|
+
local sourceOwner = damagingEvent[1]
|
|
2565
|
+
if sourceOwner then
|
|
2566
|
+
local targetOwner = damagingEvent[2]
|
|
2567
|
+
if damagingEvent[3] then
|
|
2568
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2569
|
+
end
|
|
2570
|
+
if damagingEvent[4] then
|
|
2571
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2572
|
+
end
|
|
2573
|
+
end
|
|
2574
|
+
end
|
|
2479
2575
|
local evData = setmetatable(
|
|
2480
2576
|
{},
|
|
2481
2577
|
{
|
|
2482
2578
|
__index = data,
|
|
2483
2579
|
__newindex = function(self, key, value)
|
|
2484
|
-
damageSetters[key]
|
|
2580
|
+
local damageSetter = damageSetters[key]
|
|
2581
|
+
if damageSetter ~= nil then
|
|
2582
|
+
damageSetter(value)
|
|
2583
|
+
end
|
|
2485
2584
|
data[key] = value
|
|
2486
2585
|
end
|
|
2487
2586
|
}
|
|
2488
2587
|
)
|
|
2489
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2490
2588
|
invoke(event, source, target, evData)
|
|
2491
2589
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2492
2590
|
local bonusHealth = math.ceil(evData.amount)
|
|
2493
|
-
target[
|
|
2591
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2494
2592
|
BlzSetUnitMaxHP(
|
|
2495
2593
|
target.handle,
|
|
2496
2594
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2504,7 +2602,7 @@ Unit.onDamage = __TS__New(
|
|
|
2504
2602
|
evData[0],
|
|
2505
2603
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2506
2604
|
)
|
|
2507
|
-
target[
|
|
2605
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2508
2606
|
SetWidgetLife(
|
|
2509
2607
|
target.handle,
|
|
2510
2608
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2530,7 +2628,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2530
2628
|
function()
|
|
2531
2629
|
local unit = getTriggerUnit()
|
|
2532
2630
|
local item = getManipulatedItem()
|
|
2533
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2631
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2534
2632
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2535
2633
|
end
|
|
2536
2634
|
return IgnoreEvent
|
|
@@ -2540,10 +2638,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2540
2638
|
____exports.UnitTriggerEvent,
|
|
2541
2639
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2542
2640
|
function()
|
|
2543
|
-
local
|
|
2544
|
-
local
|
|
2545
|
-
if getUnitTypeId(
|
|
2546
|
-
|
|
2641
|
+
local unitHandle = getTriggerUnit()
|
|
2642
|
+
local itemHandle = getManipulatedItem()
|
|
2643
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2644
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2645
|
+
local item = Item:of(itemHandle)
|
|
2646
|
+
if ownerByItem[item] ~= unit then
|
|
2647
|
+
return unit, item
|
|
2648
|
+
end
|
|
2547
2649
|
end
|
|
2548
2650
|
return IgnoreEvent
|
|
2549
2651
|
end
|
|
@@ -2554,59 +2656,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2554
2656
|
function()
|
|
2555
2657
|
local unit = getTriggerUnit()
|
|
2556
2658
|
local item = getManipulatedItem()
|
|
2557
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2659
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2558
2660
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2559
2661
|
end
|
|
2560
2662
|
return IgnoreEvent
|
|
2561
2663
|
end
|
|
2562
2664
|
)
|
|
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
2665
|
__TS__ObjectDefineProperty(
|
|
2569
2666
|
Unit,
|
|
2570
|
-
"
|
|
2667
|
+
"itemChargesChangedEvent",
|
|
2571
2668
|
{get = function(self)
|
|
2572
2669
|
local event = __TS__New(Event)
|
|
2573
|
-
|
|
2574
|
-
local
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
if item ~= nil then
|
|
2578
|
-
invoke(event, unit, item)
|
|
2579
|
-
end
|
|
2670
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2671
|
+
local unit = item.owner
|
|
2672
|
+
if unit ~= nil then
|
|
2673
|
+
invoke(event, unit, item)
|
|
2580
2674
|
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)
|
|
2675
|
+
end)
|
|
2676
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2610
2677
|
return event
|
|
2611
2678
|
end}
|
|
2612
2679
|
)
|
|
@@ -2635,6 +2702,10 @@ __TS__ObjectDefineProperty(
|
|
|
2635
2702
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2636
2703
|
return destroyEvent
|
|
2637
2704
|
end}
|
|
2705
|
+
)
|
|
2706
|
+
Unit.synchronize = synchronizer(
|
|
2707
|
+
function(unit) return unit.syncId end,
|
|
2708
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2638
2709
|
);
|
|
2639
2710
|
(function(self)
|
|
2640
2711
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2652,11 +2723,7 @@ __TS__ObjectDefineProperty(
|
|
|
2652
2723
|
function(____, id) return fourCC(id) end
|
|
2653
2724
|
)
|
|
2654
2725
|
end)
|
|
2655
|
-
for ____, leaveOrderId in ipairs({
|
|
2656
|
-
orderId("undefend"),
|
|
2657
|
-
orderId("magicundefense"),
|
|
2658
|
-
orderId("unimmolation")
|
|
2659
|
-
}) do
|
|
2726
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2660
2727
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2661
2728
|
local handle = unit.handle
|
|
2662
2729
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2664,7 +2731,8 @@ __TS__ObjectDefineProperty(
|
|
|
2664
2731
|
return
|
|
2665
2732
|
end
|
|
2666
2733
|
end
|
|
2667
|
-
unit:
|
|
2734
|
+
unit:saveData()
|
|
2735
|
+
Timer:run(unit, "destroy")
|
|
2668
2736
|
end)
|
|
2669
2737
|
end
|
|
2670
2738
|
end)(Unit)
|