warscript 0.0.1-dev.c362181 → 0.0.1-dev.c47d565
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 +1 -1
- package/core/types/sound.lua +19 -9
- package/core/types/tileCell.d.ts +18 -3
- package/core/types/tileCell.lua +108 -0
- package/core/types/timer.d.ts +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 +5 -0
- package/engine/behaviour/ability/damage.d.ts +10 -3
- package/engine/behaviour/ability/damage.lua +41 -49
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +23 -7
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +16 -6
- package/engine/behaviour/ability.lua +69 -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 +40 -3
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +114 -58
- package/engine/buff.lua +564 -303
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +14 -1
- package/engine/internal/ability.lua +113 -44
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +37 -8
- package/engine/internal/item.d.ts +32 -16
- package/engine/internal/item.lua +257 -82
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/misc/unit-ability-level-natives.d.ts +2 -0
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +73 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +11 -11
- package/engine/internal/unit+damage.lua +43 -14
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +65 -27
- package/engine/internal/unit.d.ts +41 -36
- package/engine/internal/unit.lua +398 -327
- 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-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/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +40 -15
- package/engine/object-data/entry/ability-type.lua +314 -17
- 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 +2 -2
- package/engine/object-data/entry/unit-type.d.ts +74 -6
- package/engine/object-data/entry/unit-type.lua +560 -100
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +48 -0
- package/engine/standard/entries/buff-type.lua +46 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +11 -1
- package/engine/unit.lua +11 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +28 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/internal/unit.lua
CHANGED
|
@@ -7,10 +7,10 @@ local __TS__Class = ____lualib.__TS__Class
|
|
|
7
7
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
8
8
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
9
9
|
local __TS__ArraySetLength = ____lualib.__TS__ArraySetLength
|
|
10
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
10
11
|
local __TS__SparseArrayNew = ____lualib.__TS__SparseArrayNew
|
|
11
12
|
local __TS__SparseArrayPush = ____lualib.__TS__SparseArrayPush
|
|
12
13
|
local __TS__SparseArraySpread = ____lualib.__TS__SparseArraySpread
|
|
13
|
-
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
14
14
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
15
15
|
local Set = ____lualib.Set
|
|
16
16
|
local __TS__Spread = ____lualib.__TS__Spread
|
|
@@ -47,41 +47,44 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
54
|
+
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
55
|
+
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
56
|
+
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
57
|
+
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
58
|
+
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
59
|
+
local ____attributes = require("attributes")
|
|
60
|
+
local isAttribute = ____attributes.isAttribute
|
|
61
|
+
local ____ability = require("engine.internal.item.ability")
|
|
62
|
+
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
63
|
+
local ____synchronization = require("engine.synchronization")
|
|
64
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
66
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
56
67
|
local match = string.match
|
|
57
68
|
local ____tostring = _G.tostring
|
|
58
69
|
local setUnitAnimation = SetUnitAnimation
|
|
59
|
-
local setUnitAnimationWithRarity = SetUnitAnimationWithRarity
|
|
60
70
|
local setUnitAnimationByIndex = SetUnitAnimationByIndex
|
|
61
|
-
local resetUnitAnimation = ResetUnitAnimation
|
|
62
|
-
local queueUnitAnimation = QueueUnitAnimation
|
|
63
71
|
local getUnitIntegerField = BlzGetUnitIntegerField
|
|
64
72
|
local getUnitRealField = BlzGetUnitRealField
|
|
65
73
|
local getHeroStr = GetHeroStr
|
|
66
74
|
local getHeroAgi = GetHeroAgi
|
|
67
75
|
local getHeroInt = GetHeroInt
|
|
68
|
-
local setHeroStr = SetHeroStr
|
|
69
|
-
local setHeroAgi = SetHeroAgi
|
|
70
|
-
local setHeroInt = SetHeroInt
|
|
71
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
72
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
73
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
74
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
75
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
76
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
77
|
-
local setUnitScale = SetUnitScale
|
|
78
82
|
local setUnitPosition = SetUnitPosition
|
|
79
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
80
84
|
local getHandleId = GetHandleId
|
|
81
85
|
local getUnitCurrentOrder = GetUnitCurrentOrder
|
|
82
86
|
local createUnit = CreateUnit
|
|
83
87
|
local killUnit = KillUnit
|
|
84
|
-
local setUnitExploded = SetUnitExploded
|
|
85
88
|
local removeUnit = RemoveUnit
|
|
86
89
|
local getUnitTypeId = GetUnitTypeId
|
|
87
90
|
local isHeroUnitId = IsHeroUnitId
|
|
@@ -97,15 +100,12 @@ local getSpellTargetItem = GetSpellTargetItem
|
|
|
97
100
|
local getSpellTargetDestructable = GetSpellTargetDestructable
|
|
98
101
|
local isUnitInRangeXY = IsUnitInRangeXY
|
|
99
102
|
local isUnitInRange = IsUnitInRange
|
|
100
|
-
local setResourceAmount = SetResourceAmount
|
|
101
|
-
local getResourceAmount = GetResourceAmount
|
|
102
103
|
local getUnitWeaponRealField = BlzGetUnitWeaponRealField
|
|
103
104
|
local setUnitWeaponRealField = BlzSetUnitWeaponRealField
|
|
104
105
|
local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
105
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
106
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
107
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
108
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
109
109
|
local isUnitInvisible = IsUnitInvisible
|
|
110
110
|
local isUnitVisible = IsUnitVisible
|
|
111
111
|
local getUnitX = GetUnitX
|
|
@@ -122,15 +122,9 @@ local getOrderedUnit = GetOrderedUnit
|
|
|
122
122
|
local getIssuedOrderId = GetIssuedOrderId
|
|
123
123
|
local isUnitInvulnerable = BlzIsUnitInvulnerable
|
|
124
124
|
local unitAlive = UnitAlive
|
|
125
|
-
local unitAddType = UnitAddType
|
|
126
|
-
local unitRemoveType = UnitRemoveType
|
|
127
|
-
local isUnitIllusion = IsUnitIllusion
|
|
128
|
-
local isUnitType = IsUnitType
|
|
129
125
|
local isUnitAlly = IsUnitAlly
|
|
130
126
|
local isUnitEnemy = IsUnitEnemy
|
|
131
127
|
local getOwningPlayer = GetOwningPlayer
|
|
132
|
-
local setUnitColor = SetUnitColor
|
|
133
|
-
local showUnitTeamGlow = BlzShowUnitTeamGlow
|
|
134
128
|
____exports.UnitClassification = {}
|
|
135
129
|
local UnitClassification = ____exports.UnitClassification
|
|
136
130
|
do
|
|
@@ -140,6 +134,7 @@ do
|
|
|
140
134
|
UnitClassification.GROUND = UNIT_TYPE_GROUND
|
|
141
135
|
UnitClassification.SUMMONED = UNIT_TYPE_SUMMONED
|
|
142
136
|
UnitClassification.MECHANICAL = UNIT_TYPE_MECHANICAL
|
|
137
|
+
UnitClassification.WORKER = UNIT_TYPE_PEON
|
|
143
138
|
UnitClassification.ANCIENT = UNIT_TYPE_ANCIENT
|
|
144
139
|
UnitClassification.SUICIDAL = UNIT_TYPE_SAPPER
|
|
145
140
|
UnitClassification.TAUREN = UNIT_TYPE_TAUREN
|
|
@@ -347,6 +342,9 @@ local function dispatchAbility(event)
|
|
|
347
342
|
}
|
|
348
343
|
)
|
|
349
344
|
end
|
|
345
|
+
local function damagingEventPreventRetaliation(self)
|
|
346
|
+
self[0] = true
|
|
347
|
+
end
|
|
350
348
|
local function damageEventPreventDeath(self, callback, ...)
|
|
351
349
|
if self[0] ~= nil then
|
|
352
350
|
return
|
|
@@ -358,7 +356,14 @@ local function damageEventPreventDeath(self, callback, ...)
|
|
|
358
356
|
rawset(self, 1 + i, (select(i, ...)))
|
|
359
357
|
end
|
|
360
358
|
end
|
|
361
|
-
local damageSetters = {
|
|
359
|
+
local damageSetters = {
|
|
360
|
+
amount = BlzSetEventDamage,
|
|
361
|
+
attackType = function(attackType)
|
|
362
|
+
return BlzSetEventAttackType(attackTypeToNative(attackType))
|
|
363
|
+
end,
|
|
364
|
+
damageType = BlzSetEventDamageType,
|
|
365
|
+
weaponType = BlzSetEventWeaponType
|
|
366
|
+
}
|
|
362
367
|
local jlimitopByOperator = {
|
|
363
368
|
[0] = LESS_THAN_OR_EQUAL,
|
|
364
369
|
[1] = LESS_THAN_OR_EQUAL,
|
|
@@ -376,15 +381,27 @@ local modifiers = {
|
|
|
376
381
|
end,
|
|
377
382
|
armor = function(unit, value)
|
|
378
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
379
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
380
389
|
end
|
|
381
|
-
local ability = assert(
|
|
382
|
-
|
|
383
|
-
ability,
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
388
405
|
end
|
|
389
406
|
}
|
|
390
407
|
local getters = {
|
|
@@ -402,6 +419,19 @@ function UnitWeapon.prototype.____constructor(self, unit, index)
|
|
|
402
419
|
self.unit = unit
|
|
403
420
|
self.index = index
|
|
404
421
|
end
|
|
422
|
+
__TS__SetDescriptor(
|
|
423
|
+
UnitWeapon.prototype,
|
|
424
|
+
"isEnabled",
|
|
425
|
+
{
|
|
426
|
+
get = function(self)
|
|
427
|
+
return BlzGetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index)
|
|
428
|
+
end,
|
|
429
|
+
set = function(self, isEnabled)
|
|
430
|
+
BlzSetUnitWeaponBooleanField(self.unit.handle, UNIT_WEAPON_BF_ATTACKS_ENABLED, self.index, isEnabled)
|
|
431
|
+
end
|
|
432
|
+
},
|
|
433
|
+
true
|
|
434
|
+
)
|
|
405
435
|
__TS__SetDescriptor(
|
|
406
436
|
UnitWeapon.prototype,
|
|
407
437
|
"cooldown",
|
|
@@ -436,6 +466,19 @@ __TS__SetDescriptor(
|
|
|
436
466
|
},
|
|
437
467
|
true
|
|
438
468
|
)
|
|
469
|
+
__TS__SetDescriptor(
|
|
470
|
+
UnitWeapon.prototype,
|
|
471
|
+
"allowedTargetCombatClassifications",
|
|
472
|
+
{
|
|
473
|
+
get = function(self)
|
|
474
|
+
return BlzGetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index)
|
|
475
|
+
end,
|
|
476
|
+
set = function(self, allowedTargetCombatClassifications)
|
|
477
|
+
BlzSetUnitWeaponIntegerField(self.unit.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, self.index, allowedTargetCombatClassifications)
|
|
478
|
+
end
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
)
|
|
439
482
|
__TS__SetDescriptor(
|
|
440
483
|
UnitWeapon.prototype,
|
|
441
484
|
"damageBase",
|
|
@@ -547,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
547
590
|
},
|
|
548
591
|
true
|
|
549
592
|
)
|
|
550
|
-
local unitInventorySize = UnitInventorySize
|
|
551
|
-
local unitItemInSlot = UnitItemInSlot
|
|
552
593
|
local getItemAbility = BlzGetItemAbility
|
|
553
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
554
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -566,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
566
607
|
____exports.Unit:of(unit)
|
|
567
608
|
)
|
|
568
609
|
end
|
|
569
|
-
for i = 0,
|
|
570
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
571
612
|
if getItemAbility(item, abilityId) == ability then
|
|
572
613
|
return ItemAbility:of(
|
|
573
614
|
ability,
|
|
@@ -612,26 +653,30 @@ local fieldSetters = {
|
|
|
612
653
|
}
|
|
613
654
|
local dummies = {}
|
|
614
655
|
for ____, player in ipairs(Player.all) do
|
|
615
|
-
local dummy = assert(
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
622
667
|
ShowUnit(dummy, false)
|
|
623
668
|
dummies[player] = dummy
|
|
624
669
|
end
|
|
625
670
|
local function delayHealthChecksCallback(unit)
|
|
626
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
627
672
|
if counter ~= 0 then
|
|
628
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
629
674
|
return
|
|
630
675
|
end
|
|
631
|
-
unit[
|
|
632
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
633
678
|
if healthBonus ~= nil then
|
|
634
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
635
680
|
local handle = unit.handle
|
|
636
681
|
BlzSetUnitMaxHP(
|
|
637
682
|
handle,
|
|
@@ -640,52 +685,78 @@ local function delayHealthChecksCallback(unit)
|
|
|
640
685
|
end
|
|
641
686
|
end
|
|
642
687
|
local nextSyncId = 1
|
|
643
|
-
local unitBySyncId = setmetatable({}, {__mode = "
|
|
688
|
+
local unitBySyncId = setmetatable({}, {__mode = "v"})
|
|
689
|
+
local damagingEventByTarget = setmetatable({}, {__mode = "k"})
|
|
690
|
+
local function addAbility(unit, abilityTypeId)
|
|
691
|
+
local ____unitAddAbility_result_0
|
|
692
|
+
if unitAddAbility(unit, abilityTypeId) then
|
|
693
|
+
____unitAddAbility_result_0 = getUnitAbility(unit, abilityTypeId)
|
|
694
|
+
else
|
|
695
|
+
____unitAddAbility_result_0 = nil
|
|
696
|
+
end
|
|
697
|
+
return ____unitAddAbility_result_0
|
|
698
|
+
end
|
|
644
699
|
____exports.Unit = __TS__Class()
|
|
645
700
|
local Unit = ____exports.Unit
|
|
646
701
|
Unit.name = "Unit"
|
|
647
702
|
__TS__ClassExtends(Unit, Handle)
|
|
648
703
|
function Unit.prototype.____constructor(self, handle)
|
|
649
704
|
Handle.prototype.____constructor(self, handle)
|
|
650
|
-
local
|
|
651
|
-
nextSyncId =
|
|
652
|
-
self.syncId =
|
|
705
|
+
local ____nextSyncId_1 = nextSyncId
|
|
706
|
+
nextSyncId = ____nextSyncId_1 + 1
|
|
707
|
+
self.syncId = ____nextSyncId_1
|
|
653
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
654
|
-
assert(
|
|
655
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
656
719
|
if unitAddAbility(
|
|
657
720
|
handle,
|
|
658
721
|
fourCC("Amrf")
|
|
659
722
|
) then
|
|
660
|
-
assert(
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
664
731
|
end
|
|
665
732
|
unitBySyncId[self.syncId] = self
|
|
666
733
|
local ____ = self.abilities
|
|
667
734
|
end
|
|
668
|
-
function Unit.prototype.getEvent(self,
|
|
669
|
-
self.events = self.events or (
|
|
670
|
-
local eventId = GetHandleId(
|
|
671
|
-
|
|
672
|
-
|
|
735
|
+
function Unit.prototype.getEvent(self, jevent, collector)
|
|
736
|
+
self.events = self.events or __TS__New(LinkedMap)
|
|
737
|
+
local eventId = GetHandleId(jevent)
|
|
738
|
+
local event = self.events:get(eventId)
|
|
739
|
+
if event == nil then
|
|
740
|
+
event = __TS__New(
|
|
673
741
|
TriggerEvent,
|
|
674
742
|
function(trigger)
|
|
675
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
676
744
|
end,
|
|
677
745
|
collector or (function() return {} end)
|
|
678
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
679
748
|
end
|
|
680
|
-
return
|
|
749
|
+
return event
|
|
750
|
+
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
681
756
|
end
|
|
682
757
|
function Unit.prototype.onDestroy(self)
|
|
683
758
|
local handle = self.handle
|
|
684
|
-
self
|
|
685
|
-
self[108] = getUnitY(handle)
|
|
686
|
-
if not self._owner then
|
|
687
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
688
|
-
end
|
|
759
|
+
self:saveData()
|
|
689
760
|
local abilities = self.abilities
|
|
690
761
|
for ____, ability in ipairs(abilities) do
|
|
691
762
|
ability:destroy()
|
|
@@ -703,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
703
774
|
end
|
|
704
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
705
776
|
if eventsToDestroy ~= nil then
|
|
706
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
707
780
|
end
|
|
708
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
709
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -721,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
721
794
|
self._attackHandlers = handlers
|
|
722
795
|
if #handlers == 1 then
|
|
723
796
|
local handle = self.handle
|
|
724
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
725
802
|
end
|
|
726
803
|
return handler
|
|
727
804
|
end
|
|
@@ -750,17 +827,17 @@ function Unit.prototype.addModifier(self, property, modifier)
|
|
|
750
827
|
end}
|
|
751
828
|
end
|
|
752
829
|
function Unit.prototype.hasCombatClassification(self, combatClassification)
|
|
753
|
-
local
|
|
754
|
-
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) &
|
|
830
|
+
local ____combatClassification_2 = combatClassification
|
|
831
|
+
return getUnitIntegerField(self.handle, UNIT_IF_TARGETED_AS) & ____combatClassification_2 == ____combatClassification_2
|
|
755
832
|
end
|
|
756
833
|
function Unit.prototype.addClassification(self, classification)
|
|
757
|
-
return
|
|
834
|
+
return UnitAddType(self.handle, classification)
|
|
758
835
|
end
|
|
759
836
|
function Unit.prototype.removeClassification(self, classification)
|
|
760
|
-
return
|
|
837
|
+
return UnitRemoveType(self.handle, classification)
|
|
761
838
|
end
|
|
762
839
|
function Unit.prototype.hasClassification(self, classification)
|
|
763
|
-
return
|
|
840
|
+
return IsUnitType(self.handle, classification)
|
|
764
841
|
end
|
|
765
842
|
function Unit.prototype.isVisibleTo(self, player)
|
|
766
843
|
return isUnitVisible(self.handle, player.handle)
|
|
@@ -769,13 +846,19 @@ function Unit.prototype.isInvisibleTo(self, player)
|
|
|
769
846
|
return isUnitInvisible(self.handle, player.handle)
|
|
770
847
|
end
|
|
771
848
|
function Unit.prototype.isInRangeOf(self, x, y, range)
|
|
772
|
-
local
|
|
849
|
+
local ____temp_4
|
|
773
850
|
if type(x) == "number" then
|
|
774
|
-
|
|
851
|
+
____temp_4 = isUnitInRangeXY(self.handle, x, y, range)
|
|
775
852
|
else
|
|
776
|
-
|
|
853
|
+
local ____temp_3
|
|
854
|
+
if __TS__InstanceOf(x, ____exports.Unit) then
|
|
855
|
+
____temp_3 = isUnitInRange(self.handle, x.handle, y)
|
|
856
|
+
else
|
|
857
|
+
____temp_3 = isUnitInRangeXY(self.handle, x.x, x.y, range)
|
|
858
|
+
end
|
|
859
|
+
____temp_4 = ____temp_3
|
|
777
860
|
end
|
|
778
|
-
return
|
|
861
|
+
return ____temp_4
|
|
779
862
|
end
|
|
780
863
|
function Unit.prototype.isAllyOf(self, unit)
|
|
781
864
|
return isUnitAlly(
|
|
@@ -793,19 +876,30 @@ function Unit.prototype.playAnimation(self, animation, rarity)
|
|
|
793
876
|
if type(animation) == "number" then
|
|
794
877
|
setUnitAnimationByIndex(self.handle, animation)
|
|
795
878
|
elseif rarity then
|
|
796
|
-
|
|
879
|
+
SetUnitAnimationWithRarity(self.handle, animation, rarity)
|
|
797
880
|
else
|
|
798
881
|
setUnitAnimation(self.handle, animation)
|
|
799
882
|
end
|
|
800
883
|
end
|
|
801
884
|
function Unit.prototype.resetAnimation(self)
|
|
802
|
-
|
|
885
|
+
ResetUnitAnimation(self.handle)
|
|
803
886
|
end
|
|
804
887
|
function Unit.prototype.queueAnimation(self, animation)
|
|
805
|
-
|
|
888
|
+
QueueUnitAnimation(self.handle, animation)
|
|
889
|
+
end
|
|
890
|
+
function Unit.prototype.chooseWeapon(self, target)
|
|
891
|
+
local firstWeapon = self.firstWeapon
|
|
892
|
+
if firstWeapon.isEnabled and target:isAllowedTarget(self, firstWeapon.allowedTargetCombatClassifications) then
|
|
893
|
+
return firstWeapon
|
|
894
|
+
end
|
|
895
|
+
local secondWeapon = self.secondWeapon
|
|
896
|
+
if secondWeapon.isEnabled and target:isAllowedTarget(target, secondWeapon.allowedTargetCombatClassifications) then
|
|
897
|
+
return secondWeapon
|
|
898
|
+
end
|
|
899
|
+
return nil
|
|
806
900
|
end
|
|
807
901
|
function Unit.prototype.delayHealthChecks(self)
|
|
808
|
-
self[
|
|
902
|
+
self[104] = (self[104] or 0) + 1
|
|
809
903
|
Timer:run(delayHealthChecksCallback, self)
|
|
810
904
|
end
|
|
811
905
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -815,21 +909,21 @@ function Unit.prototype.isSelected(self, player)
|
|
|
815
909
|
return IsUnitSelected(self.handle, player.handle)
|
|
816
910
|
end
|
|
817
911
|
function Unit.prototype.explode(self)
|
|
818
|
-
|
|
912
|
+
SetUnitExploded(self.handle, true)
|
|
819
913
|
killUnit(self.handle)
|
|
820
914
|
end
|
|
821
915
|
function Unit.prototype.kill(self)
|
|
822
916
|
killUnit(self.handle)
|
|
823
917
|
end
|
|
824
918
|
function Unit.prototype.revive(self, x, y, doEffect)
|
|
825
|
-
local
|
|
826
|
-
local
|
|
827
|
-
local
|
|
828
|
-
if
|
|
829
|
-
|
|
919
|
+
local ____ReviveHero_7 = ReviveHero
|
|
920
|
+
local ____array_6 = __TS__SparseArrayNew(self.handle, x, y)
|
|
921
|
+
local ____doEffect_5 = doEffect
|
|
922
|
+
if ____doEffect_5 == nil then
|
|
923
|
+
____doEffect_5 = false
|
|
830
924
|
end
|
|
831
|
-
__TS__SparseArrayPush(
|
|
832
|
-
|
|
925
|
+
__TS__SparseArrayPush(____array_6, ____doEffect_5)
|
|
926
|
+
____ReviveHero_7(__TS__SparseArraySpread(____array_6))
|
|
833
927
|
end
|
|
834
928
|
function Unit.prototype.healTarget(self, target, amount)
|
|
835
929
|
if __TS__InstanceOf(target, ____exports.Unit) and target:hasAbility(fourCC("BIhm")) then
|
|
@@ -869,20 +963,19 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
869
963
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
870
964
|
end
|
|
871
965
|
function Unit.prototype.itemInSlot(self, slot)
|
|
872
|
-
return Item:of(
|
|
966
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
873
967
|
end
|
|
874
968
|
function Unit.prototype.addAbility(self, abilityId)
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
969
|
+
local ability = UnitAbility:of(
|
|
970
|
+
doUnitAbilityAction(self.handle, abilityId, addAbility, abilityId),
|
|
971
|
+
abilityId,
|
|
972
|
+
self
|
|
973
|
+
)
|
|
974
|
+
if ability ~= nil then
|
|
881
975
|
local abilities = self.abilities
|
|
882
976
|
abilities[#abilities + 1] = ability
|
|
883
|
-
return ability
|
|
884
977
|
end
|
|
885
|
-
return
|
|
978
|
+
return ability
|
|
886
979
|
end
|
|
887
980
|
function Unit.prototype.makeAbilityPermanent(self, abilityId, permanent)
|
|
888
981
|
return UnitMakeAbilityPermanent(self.handle, permanent, abilityId)
|
|
@@ -896,31 +989,24 @@ end
|
|
|
896
989
|
function Unit.prototype.hasAbility(self, abilityId)
|
|
897
990
|
return getUnitAbilityLevel(self.handle, abilityId) > 0
|
|
898
991
|
end
|
|
899
|
-
function Unit.prototype.
|
|
900
|
-
local
|
|
901
|
-
|
|
902
|
-
assert(unitRemoveAbility(handle, abilityId))
|
|
903
|
-
return nil
|
|
904
|
-
end
|
|
905
|
-
return UnitAbility:of(
|
|
906
|
-
getUnitAbility(self.handle, abilityId),
|
|
907
|
-
abilityId,
|
|
908
|
-
self
|
|
909
|
-
)
|
|
992
|
+
function Unit.prototype.getAbility(self, abilityId)
|
|
993
|
+
local ability = doUnitAbilityAction(self.handle, abilityId, getUnitAbility, abilityId)
|
|
994
|
+
return UnitAbility:of(ability, abilityId, self)
|
|
910
995
|
end
|
|
911
|
-
function Unit.prototype.removeAbility(self,
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
996
|
+
function Unit.prototype.removeAbility(self, abilityTypeId)
|
|
997
|
+
local abilities = self.abilities
|
|
998
|
+
for i = 1, #abilities do
|
|
999
|
+
if abilities[i].typeId == abilityTypeId then
|
|
1000
|
+
local ability = abilities[i]
|
|
1001
|
+
tremove(abilities, i)
|
|
1002
|
+
if ability.state == 2 then
|
|
1003
|
+
break
|
|
919
1004
|
end
|
|
1005
|
+
ability:destroy()
|
|
1006
|
+
return true
|
|
920
1007
|
end
|
|
921
|
-
return true
|
|
922
1008
|
end
|
|
923
|
-
return
|
|
1009
|
+
return doUnitAbilityAction(self.handle, abilityTypeId, unitRemoveAbility, abilityTypeId)
|
|
924
1010
|
end
|
|
925
1011
|
function Unit.prototype.hideAbility(self, abilityId, flag)
|
|
926
1012
|
BlzUnitHideAbility(self.handle, abilityId, flag)
|
|
@@ -934,9 +1020,6 @@ end
|
|
|
934
1020
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
935
1021
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
936
1022
|
end
|
|
937
|
-
function Unit.prototype.interruptAttack(self)
|
|
938
|
-
unitInterruptAttack(self.handle)
|
|
939
|
-
end
|
|
940
1023
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
941
1024
|
local handle = self.handle
|
|
942
1025
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1007,18 +1090,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1007
1090
|
end
|
|
1008
1091
|
function Unit.prototype.incrementStunCounter(self)
|
|
1009
1092
|
local stunCounter = self[102] or 0
|
|
1010
|
-
if not self[101] or stunCounter >= 0 then
|
|
1093
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1011
1094
|
BlzPauseUnitEx(self.handle, true)
|
|
1012
1095
|
end
|
|
1013
1096
|
self[102] = stunCounter + 1
|
|
1014
1097
|
end
|
|
1015
1098
|
function Unit.prototype.decrementStunCounter(self)
|
|
1016
1099
|
local stunCounter = self[102] or 0
|
|
1017
|
-
if not self[101] or stunCounter >= 1 then
|
|
1100
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1018
1101
|
BlzPauseUnitEx(self.handle, false)
|
|
1019
1102
|
end
|
|
1020
1103
|
self[102] = stunCounter - 1
|
|
1021
1104
|
end
|
|
1105
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1106
|
+
local forceStunCounter = self[103] or 0
|
|
1107
|
+
if forceStunCounter == 0 then
|
|
1108
|
+
local handle = self.handle
|
|
1109
|
+
if not self[101] then
|
|
1110
|
+
for _ = self[102] or 0, -1 do
|
|
1111
|
+
BlzPauseUnitEx(handle, true)
|
|
1112
|
+
end
|
|
1113
|
+
end
|
|
1114
|
+
BlzPauseUnitEx(handle, true)
|
|
1115
|
+
end
|
|
1116
|
+
self[103] = forceStunCounter + 1
|
|
1117
|
+
end
|
|
1118
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1119
|
+
local forceStunCounter = self[103] or 0
|
|
1120
|
+
if forceStunCounter == 1 then
|
|
1121
|
+
local handle = self.handle
|
|
1122
|
+
if not self[101] then
|
|
1123
|
+
for _ = self[102] or 0, -1 do
|
|
1124
|
+
BlzPauseUnitEx(handle, false)
|
|
1125
|
+
end
|
|
1126
|
+
end
|
|
1127
|
+
BlzPauseUnitEx(handle, false)
|
|
1128
|
+
end
|
|
1129
|
+
self[103] = forceStunCounter - 1
|
|
1130
|
+
end
|
|
1022
1131
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1023
1132
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1024
1133
|
owner.handle,
|
|
@@ -1207,7 +1316,7 @@ __TS__SetDescriptor(
|
|
|
1207
1316
|
Unit.prototype,
|
|
1208
1317
|
"isIllusion",
|
|
1209
1318
|
{get = function(self)
|
|
1210
|
-
return
|
|
1319
|
+
return IsUnitIllusion(self.handle)
|
|
1211
1320
|
end},
|
|
1212
1321
|
true
|
|
1213
1322
|
)
|
|
@@ -1215,7 +1324,7 @@ __TS__SetDescriptor(
|
|
|
1215
1324
|
Unit.prototype,
|
|
1216
1325
|
"isStunned",
|
|
1217
1326
|
{get = function(self)
|
|
1218
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1327
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1219
1328
|
end},
|
|
1220
1329
|
true
|
|
1221
1330
|
)
|
|
@@ -1294,13 +1403,13 @@ __TS__SetDescriptor(
|
|
|
1294
1403
|
)
|
|
1295
1404
|
__TS__SetDescriptor(
|
|
1296
1405
|
Unit.prototype,
|
|
1297
|
-
"
|
|
1406
|
+
"primaryAttribute",
|
|
1298
1407
|
{
|
|
1299
1408
|
get = function(self)
|
|
1300
|
-
return
|
|
1409
|
+
return getUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE)
|
|
1301
1410
|
end,
|
|
1302
|
-
set = function(self,
|
|
1303
|
-
|
|
1411
|
+
set = function(self, primaryAttribute)
|
|
1412
|
+
setUnitIntegerField(self.handle, UNIT_IF_PRIMARY_ATTRIBUTE, primaryAttribute)
|
|
1304
1413
|
end
|
|
1305
1414
|
},
|
|
1306
1415
|
true
|
|
@@ -1322,19 +1431,6 @@ __TS__SetDescriptor(
|
|
|
1322
1431
|
end},
|
|
1323
1432
|
true
|
|
1324
1433
|
)
|
|
1325
|
-
__TS__SetDescriptor(
|
|
1326
|
-
Unit.prototype,
|
|
1327
|
-
"agilityBase",
|
|
1328
|
-
{
|
|
1329
|
-
get = function(self)
|
|
1330
|
-
return getHeroAgi(self.handle, false)
|
|
1331
|
-
end,
|
|
1332
|
-
set = function(self, agilityBase)
|
|
1333
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1334
|
-
end
|
|
1335
|
-
},
|
|
1336
|
-
true
|
|
1337
|
-
)
|
|
1338
1434
|
__TS__SetDescriptor(
|
|
1339
1435
|
Unit.prototype,
|
|
1340
1436
|
"agilityBonus",
|
|
@@ -1352,19 +1448,6 @@ __TS__SetDescriptor(
|
|
|
1352
1448
|
end},
|
|
1353
1449
|
true
|
|
1354
1450
|
)
|
|
1355
|
-
__TS__SetDescriptor(
|
|
1356
|
-
Unit.prototype,
|
|
1357
|
-
"intelligenceBase",
|
|
1358
|
-
{
|
|
1359
|
-
get = function(self)
|
|
1360
|
-
return getHeroInt(self.handle, false)
|
|
1361
|
-
end,
|
|
1362
|
-
set = function(self, intelligenceBase)
|
|
1363
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1364
|
-
end
|
|
1365
|
-
},
|
|
1366
|
-
true
|
|
1367
|
-
)
|
|
1368
1451
|
__TS__SetDescriptor(
|
|
1369
1452
|
Unit.prototype,
|
|
1370
1453
|
"intelligenceBonus",
|
|
@@ -1413,17 +1496,17 @@ __TS__SetDescriptor(
|
|
|
1413
1496
|
"isTeamGlowVisible",
|
|
1414
1497
|
{
|
|
1415
1498
|
get = function(self)
|
|
1416
|
-
return not self[
|
|
1499
|
+
return not self[107]
|
|
1417
1500
|
end,
|
|
1418
1501
|
set = function(self, isTeamGlowVisible)
|
|
1419
|
-
|
|
1420
|
-
local
|
|
1502
|
+
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
1503
|
+
local ____temp_8
|
|
1421
1504
|
if not isTeamGlowVisible then
|
|
1422
|
-
|
|
1505
|
+
____temp_8 = true
|
|
1423
1506
|
else
|
|
1424
|
-
|
|
1507
|
+
____temp_8 = nil
|
|
1425
1508
|
end
|
|
1426
|
-
self[
|
|
1509
|
+
self[107] = ____temp_8
|
|
1427
1510
|
end
|
|
1428
1511
|
},
|
|
1429
1512
|
true
|
|
@@ -1432,9 +1515,9 @@ __TS__SetDescriptor(
|
|
|
1432
1515
|
Unit.prototype,
|
|
1433
1516
|
"color",
|
|
1434
1517
|
{set = function(self, color)
|
|
1435
|
-
|
|
1436
|
-
if self[
|
|
1437
|
-
|
|
1518
|
+
SetUnitColor(self.handle, color.handle)
|
|
1519
|
+
if self[107] then
|
|
1520
|
+
BlzShowUnitTeamGlow(self.handle, false)
|
|
1438
1521
|
end
|
|
1439
1522
|
end},
|
|
1440
1523
|
true
|
|
@@ -1457,14 +1540,14 @@ __TS__SetDescriptor(
|
|
|
1457
1540
|
"maxHealth",
|
|
1458
1541
|
{
|
|
1459
1542
|
get = function(self)
|
|
1460
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1543
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1461
1544
|
end,
|
|
1462
1545
|
set = function(self, maxHealth)
|
|
1463
|
-
if maxHealth < 1 and self[
|
|
1464
|
-
self[
|
|
1546
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1547
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1465
1548
|
maxHealth = 1
|
|
1466
1549
|
end
|
|
1467
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1550
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1468
1551
|
end
|
|
1469
1552
|
},
|
|
1470
1553
|
true
|
|
@@ -1506,10 +1589,10 @@ __TS__SetDescriptor(
|
|
|
1506
1589
|
"health",
|
|
1507
1590
|
{
|
|
1508
1591
|
get = function(self)
|
|
1509
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1592
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1510
1593
|
end,
|
|
1511
1594
|
set = function(self, health)
|
|
1512
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1595
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1513
1596
|
end
|
|
1514
1597
|
},
|
|
1515
1598
|
true
|
|
@@ -1585,25 +1668,12 @@ __TS__SetDescriptor(
|
|
|
1585
1668
|
},
|
|
1586
1669
|
true
|
|
1587
1670
|
)
|
|
1588
|
-
__TS__SetDescriptor(
|
|
1589
|
-
Unit.prototype,
|
|
1590
|
-
"flyHeight",
|
|
1591
|
-
{
|
|
1592
|
-
get = function(self)
|
|
1593
|
-
return getUnitFlyHeight(self.handle)
|
|
1594
|
-
end,
|
|
1595
|
-
set = function(self, v)
|
|
1596
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1597
|
-
end
|
|
1598
|
-
},
|
|
1599
|
-
true
|
|
1600
|
-
)
|
|
1601
1671
|
__TS__SetDescriptor(
|
|
1602
1672
|
Unit.prototype,
|
|
1603
1673
|
"x",
|
|
1604
1674
|
{
|
|
1605
1675
|
get = function(self)
|
|
1606
|
-
return self[
|
|
1676
|
+
return self[108] or getUnitX(self.handle)
|
|
1607
1677
|
end,
|
|
1608
1678
|
set = function(self, v)
|
|
1609
1679
|
SetUnitX(self.handle, v)
|
|
@@ -1616,7 +1686,7 @@ __TS__SetDescriptor(
|
|
|
1616
1686
|
"y",
|
|
1617
1687
|
{
|
|
1618
1688
|
get = function(self)
|
|
1619
|
-
return self[
|
|
1689
|
+
return self[109] or getUnitY(self.handle)
|
|
1620
1690
|
end,
|
|
1621
1691
|
set = function(self, v)
|
|
1622
1692
|
SetUnitY(self.handle, v)
|
|
@@ -1702,10 +1772,10 @@ __TS__SetDescriptor(
|
|
|
1702
1772
|
"gold",
|
|
1703
1773
|
{
|
|
1704
1774
|
get = function(self)
|
|
1705
|
-
return
|
|
1775
|
+
return GetResourceAmount(self.handle)
|
|
1706
1776
|
end,
|
|
1707
1777
|
set = function(self, gold)
|
|
1708
|
-
|
|
1778
|
+
SetResourceAmount(self.handle, gold)
|
|
1709
1779
|
end
|
|
1710
1780
|
},
|
|
1711
1781
|
true
|
|
@@ -1721,14 +1791,18 @@ __TS__SetDescriptor(
|
|
|
1721
1791
|
local handle = self.handle
|
|
1722
1792
|
if isPaused and not IsUnitPaused(handle) then
|
|
1723
1793
|
self[101] = true
|
|
1724
|
-
|
|
1725
|
-
|
|
1794
|
+
if (self[103] or 0) <= 0 then
|
|
1795
|
+
for _ = self[102] or 0, -1 do
|
|
1796
|
+
BlzPauseUnitEx(handle, true)
|
|
1797
|
+
end
|
|
1726
1798
|
end
|
|
1727
1799
|
PauseUnit(handle, true)
|
|
1728
1800
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1729
1801
|
PauseUnit(handle, false)
|
|
1730
|
-
|
|
1731
|
-
|
|
1802
|
+
if (self[103] or 0) <= 0 then
|
|
1803
|
+
for _ = self[102] or 0, -1 do
|
|
1804
|
+
BlzPauseUnitEx(handle, false)
|
|
1805
|
+
end
|
|
1732
1806
|
end
|
|
1733
1807
|
self[101] = nil
|
|
1734
1808
|
end
|
|
@@ -1786,20 +1860,6 @@ __TS__SetDescriptor(
|
|
|
1786
1860
|
},
|
|
1787
1861
|
true
|
|
1788
1862
|
)
|
|
1789
|
-
__TS__SetDescriptor(
|
|
1790
|
-
Unit.prototype,
|
|
1791
|
-
"scale",
|
|
1792
|
-
{
|
|
1793
|
-
get = function(self)
|
|
1794
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1795
|
-
end,
|
|
1796
|
-
set = function(self, v)
|
|
1797
|
-
setUnitScale(self.handle, v, v, v)
|
|
1798
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1799
|
-
end
|
|
1800
|
-
},
|
|
1801
|
-
true
|
|
1802
|
-
)
|
|
1803
1863
|
__TS__SetDescriptor(
|
|
1804
1864
|
Unit.prototype,
|
|
1805
1865
|
"timeScale",
|
|
@@ -1826,13 +1886,26 @@ __TS__SetDescriptor(
|
|
|
1826
1886
|
Unit.prototype,
|
|
1827
1887
|
"pathingCollisionRange",
|
|
1828
1888
|
{get = function(self)
|
|
1829
|
-
return 16 * (min(
|
|
1889
|
+
return 16 * (math.min(
|
|
1830
1890
|
getUnitCollisionSize(self.handle) // 16,
|
|
1831
1891
|
3
|
|
1832
1892
|
) + 1)
|
|
1833
1893
|
end},
|
|
1834
1894
|
true
|
|
1835
1895
|
)
|
|
1896
|
+
__TS__SetDescriptor(
|
|
1897
|
+
Unit.prototype,
|
|
1898
|
+
"movementType",
|
|
1899
|
+
{
|
|
1900
|
+
get = function(self)
|
|
1901
|
+
return getUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE)
|
|
1902
|
+
end,
|
|
1903
|
+
set = function(self, movementType)
|
|
1904
|
+
setUnitIntegerField(self.handle, UNIT_IF_MOVE_TYPE, movementType)
|
|
1905
|
+
end
|
|
1906
|
+
},
|
|
1907
|
+
true
|
|
1908
|
+
)
|
|
1836
1909
|
__TS__SetDescriptor(
|
|
1837
1910
|
Unit.prototype,
|
|
1838
1911
|
"pathing",
|
|
@@ -1923,30 +1996,6 @@ __TS__SetDescriptor(
|
|
|
1923
1996
|
end},
|
|
1924
1997
|
true
|
|
1925
1998
|
)
|
|
1926
|
-
__TS__SetDescriptor(
|
|
1927
|
-
Unit.prototype,
|
|
1928
|
-
"onUnitInRange",
|
|
1929
|
-
{get = function(self)
|
|
1930
|
-
local handle = self.handle
|
|
1931
|
-
local onUnitInRange = setmetatable(
|
|
1932
|
-
{},
|
|
1933
|
-
{__index = function(self, value)
|
|
1934
|
-
local event = __TS__New(
|
|
1935
|
-
TriggerEvent,
|
|
1936
|
-
function(trigger)
|
|
1937
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1938
|
-
end,
|
|
1939
|
-
function() return ____exports.Unit:of(handle) end
|
|
1940
|
-
)
|
|
1941
|
-
rawset(self, value, event)
|
|
1942
|
-
return event
|
|
1943
|
-
end}
|
|
1944
|
-
)
|
|
1945
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1946
|
-
return onUnitInRange
|
|
1947
|
-
end},
|
|
1948
|
-
true
|
|
1949
|
-
)
|
|
1950
1999
|
__TS__SetDescriptor(
|
|
1951
2000
|
Unit.prototype,
|
|
1952
2001
|
"onManaEqual",
|
|
@@ -2014,6 +2063,14 @@ __TS__SetDescriptor(
|
|
|
2014
2063
|
end},
|
|
2015
2064
|
true
|
|
2016
2065
|
)
|
|
2066
|
+
__TS__SetDescriptor(
|
|
2067
|
+
Unit.prototype,
|
|
2068
|
+
"targetAcquiredEvent",
|
|
2069
|
+
{get = function(self)
|
|
2070
|
+
return self:getEvent(EVENT_UNIT_ACQUIRED_TARGET)
|
|
2071
|
+
end},
|
|
2072
|
+
true
|
|
2073
|
+
)
|
|
2017
2074
|
__TS__SetDescriptor(
|
|
2018
2075
|
Unit.prototype,
|
|
2019
2076
|
"onSelect",
|
|
@@ -2074,6 +2131,11 @@ __TS__SetDescriptor(
|
|
|
2074
2131
|
end},
|
|
2075
2132
|
true
|
|
2076
2133
|
)
|
|
2134
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2135
|
+
____exports.UnitTriggerEvent,
|
|
2136
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2137
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2138
|
+
)
|
|
2077
2139
|
Unit.deathEvent = __TS__New(
|
|
2078
2140
|
____exports.UnitTriggerEvent,
|
|
2079
2141
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2091,7 +2153,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2091
2153
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2092
2154
|
dead[unit] = true
|
|
2093
2155
|
end)
|
|
2094
|
-
____exports.Unit.onImmediateOrder[
|
|
2156
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2095
2157
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2096
2158
|
dead[unit] = false
|
|
2097
2159
|
invoke(event, unit)
|
|
@@ -2108,7 +2170,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2108
2170
|
invoke(event, unit)
|
|
2109
2171
|
end
|
|
2110
2172
|
end
|
|
2111
|
-
____exports.Unit.onImmediateOrder[
|
|
2173
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2112
2174
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2113
2175
|
Timer:run(ifNotLeft, unit)
|
|
2114
2176
|
end
|
|
@@ -2149,25 +2211,25 @@ Unit.onTargetCast = dispatchId(__TS__New(
|
|
|
2149
2211
|
InitializingEvent,
|
|
2150
2212
|
function(event)
|
|
2151
2213
|
local function listener(unit, id)
|
|
2152
|
-
local
|
|
2214
|
+
local ____GetSpellTargetUnit_result_11
|
|
2153
2215
|
if GetSpellTargetUnit() then
|
|
2154
|
-
|
|
2216
|
+
____GetSpellTargetUnit_result_11 = ____exports.Unit:of(GetSpellTargetUnit())
|
|
2155
2217
|
else
|
|
2156
|
-
local
|
|
2218
|
+
local ____GetSpellTargetItem_result_10
|
|
2157
2219
|
if GetSpellTargetItem() then
|
|
2158
|
-
|
|
2220
|
+
____GetSpellTargetItem_result_10 = Item:of(GetSpellTargetItem())
|
|
2159
2221
|
else
|
|
2160
|
-
local
|
|
2222
|
+
local ____GetSpellTargetDestructable_result_9
|
|
2161
2223
|
if GetSpellTargetDestructable() then
|
|
2162
|
-
|
|
2224
|
+
____GetSpellTargetDestructable_result_9 = Destructable:of(GetSpellTargetDestructable())
|
|
2163
2225
|
else
|
|
2164
|
-
|
|
2226
|
+
____GetSpellTargetDestructable_result_9 = nil
|
|
2165
2227
|
end
|
|
2166
|
-
|
|
2228
|
+
____GetSpellTargetItem_result_10 = ____GetSpellTargetDestructable_result_9
|
|
2167
2229
|
end
|
|
2168
|
-
|
|
2230
|
+
____GetSpellTargetUnit_result_11 = ____GetSpellTargetItem_result_10
|
|
2169
2231
|
end
|
|
2170
|
-
local target =
|
|
2232
|
+
local target = ____GetSpellTargetUnit_result_11
|
|
2171
2233
|
if target then
|
|
2172
2234
|
invoke(event, unit, id, target)
|
|
2173
2235
|
end
|
|
@@ -2375,38 +2437,57 @@ Unit.onDamaging = (function()
|
|
|
2375
2437
|
if source and source.typeId == dummyUnitId then
|
|
2376
2438
|
source = nil
|
|
2377
2439
|
end
|
|
2378
|
-
local target = BlzGetEventDamageTarget()
|
|
2440
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2441
|
+
local metadata = damageMetadataByTarget[target]
|
|
2442
|
+
damageMetadataByTarget[target] = nil
|
|
2379
2443
|
local data = {
|
|
2380
2444
|
amount = GetEventDamage(),
|
|
2381
|
-
attackType = BlzGetEventAttackType(),
|
|
2445
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2382
2446
|
damageType = BlzGetEventDamageType(),
|
|
2383
2447
|
weaponType = BlzGetEventWeaponType(),
|
|
2384
|
-
|
|
2448
|
+
metadata = metadata,
|
|
2449
|
+
isAttack = BlzGetEventIsAttack(),
|
|
2450
|
+
originalAmount = GetEventDamage(),
|
|
2451
|
+
originalMetadata = metadata,
|
|
2452
|
+
preventRetaliation = damagingEventPreventRetaliation
|
|
2385
2453
|
}
|
|
2386
2454
|
if data.isAttack and source then
|
|
2387
|
-
|
|
2388
|
-
if weapon == -1 then
|
|
2389
|
-
local targetsAllowed = BlzGetUnitWeaponIntegerField(source.handle, UNIT_WEAPON_IF_ATTACK_TARGETS_ALLOWED, 0)
|
|
2390
|
-
weapon = 0
|
|
2391
|
-
end
|
|
2392
|
-
data.weapon = assert(source.weapons[weapon + 1])
|
|
2455
|
+
data.weapon = source:chooseWeapon(target)
|
|
2393
2456
|
end
|
|
2394
2457
|
if not data.isAttack or not source or not source._attackHandlers then
|
|
2395
2458
|
invoke(
|
|
2396
2459
|
event,
|
|
2397
2460
|
source,
|
|
2398
|
-
|
|
2461
|
+
target,
|
|
2399
2462
|
setmetatable(
|
|
2400
2463
|
{},
|
|
2401
2464
|
{
|
|
2402
2465
|
__index = data,
|
|
2403
2466
|
__newindex = function(self, key, value)
|
|
2404
|
-
damageSetters[key]
|
|
2467
|
+
local damageSetter = damageSetters[key]
|
|
2468
|
+
if damageSetter ~= nil then
|
|
2469
|
+
damageSetter(value)
|
|
2470
|
+
end
|
|
2405
2471
|
data[key] = value
|
|
2406
2472
|
end
|
|
2407
2473
|
}
|
|
2408
2474
|
)
|
|
2409
2475
|
)
|
|
2476
|
+
if data[0] and source then
|
|
2477
|
+
local sourceOwner = source.owner.handle
|
|
2478
|
+
data[1] = sourceOwner
|
|
2479
|
+
local targetOwner = target.owner.handle
|
|
2480
|
+
data[2] = targetOwner
|
|
2481
|
+
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2482
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2483
|
+
data[3] = true
|
|
2484
|
+
end
|
|
2485
|
+
if not GetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE) then
|
|
2486
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, true)
|
|
2487
|
+
data[4] = true
|
|
2488
|
+
end
|
|
2489
|
+
end
|
|
2490
|
+
damagingEventByTarget[target] = data
|
|
2410
2491
|
return
|
|
2411
2492
|
end
|
|
2412
2493
|
BlzSetEventDamage(0)
|
|
@@ -2414,7 +2495,7 @@ Unit.onDamaging = (function()
|
|
|
2414
2495
|
BlzSetEventDamageType(DAMAGE_TYPE_UNKNOWN)
|
|
2415
2496
|
BlzSetEventWeaponType(WEAPON_TYPE_WHOKNOWS)
|
|
2416
2497
|
local sourceOwner = source.owner.handle
|
|
2417
|
-
local targetOwner =
|
|
2498
|
+
local targetOwner = target.owner.handle
|
|
2418
2499
|
if not GetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE) then
|
|
2419
2500
|
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, true)
|
|
2420
2501
|
Timer:run(function()
|
|
@@ -2430,23 +2511,19 @@ Unit.onDamaging = (function()
|
|
|
2430
2511
|
for ____, ____value in ipairs(source._attackHandlers) do
|
|
2431
2512
|
local condition = ____value[1]
|
|
2432
2513
|
local action = ____value[2]
|
|
2433
|
-
if condition(
|
|
2434
|
-
source,
|
|
2435
|
-
____exports.Unit:of(target),
|
|
2436
|
-
data
|
|
2437
|
-
) then
|
|
2514
|
+
if condition(source, target, data) then
|
|
2438
2515
|
action(
|
|
2439
2516
|
source,
|
|
2440
|
-
|
|
2517
|
+
target,
|
|
2441
2518
|
setmetatable(
|
|
2442
2519
|
{fire = function()
|
|
2443
2520
|
UnitDamageTarget(
|
|
2444
2521
|
source.handle,
|
|
2445
|
-
target,
|
|
2522
|
+
target.handle,
|
|
2446
2523
|
data.amount,
|
|
2447
2524
|
true,
|
|
2448
2525
|
true,
|
|
2449
|
-
data.attackType,
|
|
2526
|
+
attackTypeToNative(data.attackType),
|
|
2450
2527
|
data.damageType,
|
|
2451
2528
|
data.weaponType
|
|
2452
2529
|
)
|
|
@@ -2473,30 +2550,54 @@ Unit.onDamage = __TS__New(
|
|
|
2473
2550
|
if source and source.typeId == dummyUnitId then
|
|
2474
2551
|
source = nil
|
|
2475
2552
|
end
|
|
2553
|
+
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2554
|
+
local damagingEvent = damagingEventByTarget[target]
|
|
2555
|
+
damagingEventByTarget[target] = nil
|
|
2476
2556
|
local data = {
|
|
2477
2557
|
amount = GetEventDamage(),
|
|
2478
|
-
attackType = BlzGetEventAttackType(),
|
|
2558
|
+
attackType = nativeToAttackType(BlzGetEventAttackType()),
|
|
2479
2559
|
damageType = BlzGetEventDamageType(),
|
|
2480
2560
|
weaponType = BlzGetEventWeaponType(),
|
|
2561
|
+
metadata = damagingEvent and damagingEvent.metadata,
|
|
2481
2562
|
isAttack = BlzGetEventIsAttack(),
|
|
2482
|
-
originalAmount = GetEventDamage(),
|
|
2563
|
+
originalAmount = damagingEvent and damagingEvent.originalAmount or GetEventDamage(),
|
|
2564
|
+
originalMetadata = damagingEvent and damagingEvent.originalMetadata,
|
|
2483
2565
|
preventDeath = damageEventPreventDeath
|
|
2484
2566
|
}
|
|
2567
|
+
if damagingEvent then
|
|
2568
|
+
for key, value in pairs(damagingEvent) do
|
|
2569
|
+
if isAttribute(key) then
|
|
2570
|
+
data[key] = value
|
|
2571
|
+
end
|
|
2572
|
+
end
|
|
2573
|
+
local sourceOwner = damagingEvent[1]
|
|
2574
|
+
if sourceOwner then
|
|
2575
|
+
local targetOwner = damagingEvent[2]
|
|
2576
|
+
if damagingEvent[3] then
|
|
2577
|
+
SetPlayerAlliance(sourceOwner, targetOwner, ALLIANCE_PASSIVE, false)
|
|
2578
|
+
end
|
|
2579
|
+
if damagingEvent[4] then
|
|
2580
|
+
SetPlayerAlliance(targetOwner, sourceOwner, ALLIANCE_PASSIVE, false)
|
|
2581
|
+
end
|
|
2582
|
+
end
|
|
2583
|
+
end
|
|
2485
2584
|
local evData = setmetatable(
|
|
2486
2585
|
{},
|
|
2487
2586
|
{
|
|
2488
2587
|
__index = data,
|
|
2489
2588
|
__newindex = function(self, key, value)
|
|
2490
|
-
damageSetters[key]
|
|
2589
|
+
local damageSetter = damageSetters[key]
|
|
2590
|
+
if damageSetter ~= nil then
|
|
2591
|
+
damageSetter(value)
|
|
2592
|
+
end
|
|
2491
2593
|
data[key] = value
|
|
2492
2594
|
end
|
|
2493
2595
|
}
|
|
2494
2596
|
)
|
|
2495
|
-
local target = ____exports.Unit:of(BlzGetEventDamageTarget())
|
|
2496
2597
|
invoke(event, source, target, evData)
|
|
2497
2598
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2498
2599
|
local bonusHealth = math.ceil(evData.amount)
|
|
2499
|
-
target[
|
|
2600
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2500
2601
|
BlzSetUnitMaxHP(
|
|
2501
2602
|
target.handle,
|
|
2502
2603
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2510,7 +2611,7 @@ Unit.onDamage = __TS__New(
|
|
|
2510
2611
|
evData[0],
|
|
2511
2612
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2512
2613
|
)
|
|
2513
|
-
target[
|
|
2614
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2514
2615
|
SetWidgetLife(
|
|
2515
2616
|
target.handle,
|
|
2516
2617
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2536,7 +2637,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2536
2637
|
function()
|
|
2537
2638
|
local unit = getTriggerUnit()
|
|
2538
2639
|
local item = getManipulatedItem()
|
|
2539
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2640
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2540
2641
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2541
2642
|
end
|
|
2542
2643
|
return IgnoreEvent
|
|
@@ -2546,10 +2647,14 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2546
2647
|
____exports.UnitTriggerEvent,
|
|
2547
2648
|
EVENT_PLAYER_UNIT_PICKUP_ITEM,
|
|
2548
2649
|
function()
|
|
2549
|
-
local
|
|
2550
|
-
local
|
|
2551
|
-
if getUnitTypeId(
|
|
2552
|
-
|
|
2650
|
+
local unitHandle = getTriggerUnit()
|
|
2651
|
+
local itemHandle = getManipulatedItem()
|
|
2652
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2653
|
+
local unit = ____exports.Unit:of(unitHandle)
|
|
2654
|
+
local item = Item:of(itemHandle)
|
|
2655
|
+
if ownerByItem[item] ~= unit then
|
|
2656
|
+
return unit, item
|
|
2657
|
+
end
|
|
2553
2658
|
end
|
|
2554
2659
|
return IgnoreEvent
|
|
2555
2660
|
end
|
|
@@ -2560,59 +2665,24 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2560
2665
|
function()
|
|
2561
2666
|
local unit = getTriggerUnit()
|
|
2562
2667
|
local item = getManipulatedItem()
|
|
2563
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2668
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2564
2669
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2565
2670
|
end
|
|
2566
2671
|
return IgnoreEvent
|
|
2567
2672
|
end
|
|
2568
2673
|
)
|
|
2569
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2570
|
-
____exports.UnitTriggerEvent,
|
|
2571
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2572
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(getManipulatedItem()) end
|
|
2573
|
-
)
|
|
2574
2674
|
__TS__ObjectDefineProperty(
|
|
2575
2675
|
Unit,
|
|
2576
|
-
"
|
|
2676
|
+
"itemChargesChangedEvent",
|
|
2577
2677
|
{get = function(self)
|
|
2578
2678
|
local event = __TS__New(Event)
|
|
2579
|
-
|
|
2580
|
-
local
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
if item ~= nil then
|
|
2584
|
-
invoke(event, unit, item)
|
|
2585
|
-
end
|
|
2679
|
+
Item.chargesChangedEvent:addListener(function(item)
|
|
2680
|
+
local unit = item.owner
|
|
2681
|
+
if unit ~= nil then
|
|
2682
|
+
invoke(event, unit, item)
|
|
2586
2683
|
end
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2590
|
-
end
|
|
2591
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2592
|
-
return event
|
|
2593
|
-
end}
|
|
2594
|
-
)
|
|
2595
|
-
__TS__ObjectDefineProperty(
|
|
2596
|
-
Unit,
|
|
2597
|
-
"itemMoveOrderEvent",
|
|
2598
|
-
{get = function(self)
|
|
2599
|
-
local event = __TS__New(Event)
|
|
2600
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2601
|
-
local slotTo = order - orderId("moveslot0")
|
|
2602
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2603
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2604
|
-
if slotFrom ~= nil then
|
|
2605
|
-
invoke(
|
|
2606
|
-
event,
|
|
2607
|
-
unit,
|
|
2608
|
-
item,
|
|
2609
|
-
slotFrom,
|
|
2610
|
-
slotTo
|
|
2611
|
-
)
|
|
2612
|
-
end
|
|
2613
|
-
end)
|
|
2614
|
-
end
|
|
2615
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2684
|
+
end)
|
|
2685
|
+
rawset(self, "itemChargesChangedEvent", event)
|
|
2616
2686
|
return event
|
|
2617
2687
|
end}
|
|
2618
2688
|
)
|
|
@@ -2641,6 +2711,10 @@ __TS__ObjectDefineProperty(
|
|
|
2641
2711
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2642
2712
|
return destroyEvent
|
|
2643
2713
|
end}
|
|
2714
|
+
)
|
|
2715
|
+
Unit.synchronize = synchronizer(
|
|
2716
|
+
function(unit) return unit.syncId end,
|
|
2717
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2644
2718
|
);
|
|
2645
2719
|
(function(self)
|
|
2646
2720
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2658,11 +2732,7 @@ __TS__ObjectDefineProperty(
|
|
|
2658
2732
|
function(____, id) return fourCC(id) end
|
|
2659
2733
|
)
|
|
2660
2734
|
end)
|
|
2661
|
-
for ____, leaveOrderId in ipairs({
|
|
2662
|
-
orderId("undefend"),
|
|
2663
|
-
orderId("magicundefense"),
|
|
2664
|
-
orderId("unimmolation")
|
|
2665
|
-
}) do
|
|
2735
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2666
2736
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2667
2737
|
local handle = unit.handle
|
|
2668
2738
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2670,7 +2740,8 @@ __TS__ObjectDefineProperty(
|
|
|
2670
2740
|
return
|
|
2671
2741
|
end
|
|
2672
2742
|
end
|
|
2673
|
-
unit:
|
|
2743
|
+
unit:saveData()
|
|
2744
|
+
Timer:run(unit, "destroy")
|
|
2674
2745
|
end)
|
|
2675
2746
|
end
|
|
2676
2747
|
end)(Unit)
|