warscript 0.0.1-dev.91a4dce → 0.0.1-dev.9381e62
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/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +112 -37
- 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 +4 -2
- package/core/types/player.lua +42 -25
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/tileCell.d.ts +2 -1
- package/core/types/tileCell.lua +5 -0
- 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 +705 -7
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- 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.d.ts +13 -6
- package/engine/behaviour/ability.lua +56 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
- package/engine/behaviour/unit/stun-immunity.lua +6 -5
- package/engine/behaviour/unit.d.ts +8 -3
- package/engine/behaviour/unit.lua +102 -24
- package/engine/buff.d.ts +73 -24
- package/engine/buff.lua +418 -166
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +56 -36
- 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 +27 -4
- package/engine/internal/item.d.ts +20 -5
- package/engine/internal/item.lua +146 -57
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.lua +15 -3
- 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/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +14 -0
- package/engine/internal/unit/bonus.lua +102 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/order.d.ts +3 -3
- package/engine/internal/unit/order.lua +10 -10
- 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 +63 -2
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +29 -19
- package/engine/internal/unit.d.ts +14 -28
- package/engine/internal/unit.lua +158 -247
- package/engine/local-client.d.ts +28 -0
- package/engine/local-client.lua +324 -54
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/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/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +25 -6
- package/engine/object-data/entry/ability-type.lua +244 -8
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +32 -2
- package/engine/object-data/entry/destructible-type.lua +181 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +51 -2
- package/engine/object-data/entry/unit-type.lua +415 -37
- 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.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +10 -2
- package/engine/object-field.lua +268 -123
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +45 -0
- package/engine/standard/entries/buff-type.lua +43 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/ability.d.ts +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 +11 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +10 -1
- package/engine/unit.lua +10 -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/network.lua +25 -1
- package/objutil/buff.lua +10 -8
- 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/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +27 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.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,12 +47,10 @@ 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
|
|
56
54
|
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
57
55
|
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
58
56
|
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
@@ -62,6 +60,10 @@ local ____attributes = require("attributes")
|
|
|
62
60
|
local isAttribute = ____attributes.isAttribute
|
|
63
61
|
local ____ability = require("engine.internal.item.ability")
|
|
64
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
|
|
65
67
|
local match = string.match
|
|
66
68
|
local ____tostring = _G.tostring
|
|
67
69
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -71,16 +73,12 @@ local getUnitRealField = BlzGetUnitRealField
|
|
|
71
73
|
local getHeroStr = GetHeroStr
|
|
72
74
|
local getHeroAgi = GetHeroAgi
|
|
73
75
|
local getHeroInt = GetHeroInt
|
|
74
|
-
local setHeroStr = SetHeroStr
|
|
75
|
-
local setHeroAgi = SetHeroAgi
|
|
76
|
-
local setHeroInt = SetHeroInt
|
|
77
76
|
local getUnitBooleanField = BlzGetUnitBooleanField
|
|
78
77
|
local getUnitStringField = BlzGetUnitStringField
|
|
79
78
|
local setUnitIntegerField = BlzSetUnitIntegerField
|
|
80
79
|
local setUnitRealField = BlzSetUnitRealField
|
|
81
80
|
local setUnitBooleanField = BlzSetUnitBooleanField
|
|
82
81
|
local setUnitStringField = BlzSetUnitStringField
|
|
83
|
-
local setUnitScale = SetUnitScale
|
|
84
82
|
local setUnitPosition = SetUnitPosition
|
|
85
83
|
local setUnitTimeScale = SetUnitTimeScale
|
|
86
84
|
local getHandleId = GetHandleId
|
|
@@ -108,7 +106,6 @@ local getUnitWeaponStringField = BlzGetUnitWeaponStringField
|
|
|
108
106
|
local setUnitWeaponStringField = BlzSetUnitWeaponStringField
|
|
109
107
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
110
108
|
local unitDisableAbility = BlzUnitDisableAbility
|
|
111
|
-
local unitInterruptAttack = BlzUnitInterruptAttack
|
|
112
109
|
local isUnitInvisible = IsUnitInvisible
|
|
113
110
|
local isUnitVisible = IsUnitVisible
|
|
114
111
|
local getUnitX = GetUnitX
|
|
@@ -384,15 +381,27 @@ local modifiers = {
|
|
|
384
381
|
end,
|
|
385
382
|
armor = function(unit, value)
|
|
386
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
387
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
388
389
|
end
|
|
389
|
-
local ability = assert(
|
|
390
|
-
|
|
391
|
-
ability,
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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
|
+
)
|
|
396
405
|
end
|
|
397
406
|
}
|
|
398
407
|
local getters = {
|
|
@@ -581,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
581
590
|
},
|
|
582
591
|
true
|
|
583
592
|
)
|
|
584
|
-
local unitInventorySize = UnitInventorySize
|
|
585
|
-
local unitItemInSlot = UnitItemInSlot
|
|
586
593
|
local getItemAbility = BlzGetItemAbility
|
|
587
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
588
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -600,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
600
607
|
____exports.Unit:of(unit)
|
|
601
608
|
)
|
|
602
609
|
end
|
|
603
|
-
for i = 0,
|
|
604
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
605
612
|
if getItemAbility(item, abilityId) == ability then
|
|
606
613
|
return ItemAbility:of(
|
|
607
614
|
ability,
|
|
@@ -646,26 +653,30 @@ local fieldSetters = {
|
|
|
646
653
|
}
|
|
647
654
|
local dummies = {}
|
|
648
655
|
for ____, player in ipairs(Player.all) do
|
|
649
|
-
local dummy = assert(
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
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
|
+
)
|
|
656
667
|
ShowUnit(dummy, false)
|
|
657
668
|
dummies[player] = dummy
|
|
658
669
|
end
|
|
659
670
|
local function delayHealthChecksCallback(unit)
|
|
660
|
-
local counter = (unit[
|
|
671
|
+
local counter = (unit[104] or 0) - 1
|
|
661
672
|
if counter ~= 0 then
|
|
662
|
-
unit[
|
|
673
|
+
unit[104] = counter
|
|
663
674
|
return
|
|
664
675
|
end
|
|
665
|
-
unit[
|
|
666
|
-
local healthBonus = unit[
|
|
676
|
+
unit[104] = nil
|
|
677
|
+
local healthBonus = unit[105]
|
|
667
678
|
if healthBonus ~= nil then
|
|
668
|
-
unit[
|
|
679
|
+
unit[105] = nil
|
|
669
680
|
local handle = unit.handle
|
|
670
681
|
BlzSetUnitMaxHP(
|
|
671
682
|
handle,
|
|
@@ -695,41 +706,57 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
695
706
|
nextSyncId = ____nextSyncId_1 + 1
|
|
696
707
|
self.syncId = ____nextSyncId_1
|
|
697
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
698
|
-
assert(
|
|
699
|
-
|
|
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
|
+
)
|
|
700
719
|
if unitAddAbility(
|
|
701
720
|
handle,
|
|
702
721
|
fourCC("Amrf")
|
|
703
722
|
) then
|
|
704
|
-
assert(
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
708
731
|
end
|
|
709
732
|
unitBySyncId[self.syncId] = self
|
|
710
733
|
local ____ = self.abilities
|
|
711
734
|
end
|
|
712
|
-
function Unit.prototype.getEvent(self,
|
|
713
|
-
self.events = self.events or (
|
|
714
|
-
local eventId = GetHandleId(
|
|
715
|
-
|
|
716
|
-
|
|
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(
|
|
717
741
|
TriggerEvent,
|
|
718
742
|
function(trigger)
|
|
719
|
-
TriggerRegisterUnitEvent(trigger, self.handle,
|
|
743
|
+
TriggerRegisterUnitEvent(trigger, self.handle, jevent)
|
|
720
744
|
end,
|
|
721
745
|
collector or (function() return {} end)
|
|
722
746
|
)
|
|
747
|
+
self.events:put(eventId, event)
|
|
723
748
|
end
|
|
724
|
-
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))
|
|
725
756
|
end
|
|
726
757
|
function Unit.prototype.onDestroy(self)
|
|
727
758
|
local handle = self.handle
|
|
728
|
-
self
|
|
729
|
-
self[108] = getUnitY(handle)
|
|
730
|
-
if not self._owner then
|
|
731
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
732
|
-
end
|
|
759
|
+
self:saveData()
|
|
733
760
|
local abilities = self.abilities
|
|
734
761
|
for ____, ability in ipairs(abilities) do
|
|
735
762
|
ability:destroy()
|
|
@@ -747,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
747
774
|
end
|
|
748
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
749
776
|
if eventsToDestroy ~= nil then
|
|
750
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
751
780
|
end
|
|
752
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
753
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -765,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
765
794
|
self._attackHandlers = handlers
|
|
766
795
|
if #handlers == 1 then
|
|
767
796
|
local handle = self.handle
|
|
768
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
769
802
|
end
|
|
770
803
|
return handler
|
|
771
804
|
end
|
|
@@ -860,7 +893,7 @@ function Unit.prototype.chooseWeapon(self, target)
|
|
|
860
893
|
return nil
|
|
861
894
|
end
|
|
862
895
|
function Unit.prototype.delayHealthChecks(self)
|
|
863
|
-
self[
|
|
896
|
+
self[104] = (self[104] or 0) + 1
|
|
864
897
|
Timer:run(delayHealthChecksCallback, self)
|
|
865
898
|
end
|
|
866
899
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -924,7 +957,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
924
957
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
925
958
|
end
|
|
926
959
|
function Unit.prototype.itemInSlot(self, slot)
|
|
927
|
-
return Item:of(
|
|
960
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
928
961
|
end
|
|
929
962
|
function Unit.prototype.addAbility(self, abilityId)
|
|
930
963
|
local ability = UnitAbility:of(
|
|
@@ -978,24 +1011,6 @@ end
|
|
|
978
1011
|
function Unit.prototype.endAbilityCooldown(self, abilityId)
|
|
979
1012
|
BlzEndUnitAbilityCooldown(self.handle, abilityId)
|
|
980
1013
|
end
|
|
981
|
-
function Unit.prototype.interruptMovement(self)
|
|
982
|
-
local handle = self.handle
|
|
983
|
-
unitDisableAbility(
|
|
984
|
-
handle,
|
|
985
|
-
fourCC("Amov"),
|
|
986
|
-
true,
|
|
987
|
-
false
|
|
988
|
-
)
|
|
989
|
-
unitDisableAbility(
|
|
990
|
-
handle,
|
|
991
|
-
fourCC("Amov"),
|
|
992
|
-
false,
|
|
993
|
-
false
|
|
994
|
-
)
|
|
995
|
-
end
|
|
996
|
-
function Unit.prototype.interruptAttack(self)
|
|
997
|
-
unitInterruptAttack(self.handle)
|
|
998
|
-
end
|
|
999
1014
|
function Unit.prototype.interruptCast(self, abilityId)
|
|
1000
1015
|
local handle = self.handle
|
|
1001
1016
|
unitDisableAbility(handle, abilityId, true, false)
|
|
@@ -1066,18 +1081,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1066
1081
|
end
|
|
1067
1082
|
function Unit.prototype.incrementStunCounter(self)
|
|
1068
1083
|
local stunCounter = self[102] or 0
|
|
1069
|
-
if not self[101] or stunCounter >= 0 then
|
|
1084
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1070
1085
|
BlzPauseUnitEx(self.handle, true)
|
|
1071
1086
|
end
|
|
1072
1087
|
self[102] = stunCounter + 1
|
|
1073
1088
|
end
|
|
1074
1089
|
function Unit.prototype.decrementStunCounter(self)
|
|
1075
1090
|
local stunCounter = self[102] or 0
|
|
1076
|
-
if not self[101] or stunCounter >= 1 then
|
|
1091
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1077
1092
|
BlzPauseUnitEx(self.handle, false)
|
|
1078
1093
|
end
|
|
1079
1094
|
self[102] = stunCounter - 1
|
|
1080
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
|
|
1081
1122
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1082
1123
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1083
1124
|
owner.handle,
|
|
@@ -1274,7 +1315,7 @@ __TS__SetDescriptor(
|
|
|
1274
1315
|
Unit.prototype,
|
|
1275
1316
|
"isStunned",
|
|
1276
1317
|
{get = function(self)
|
|
1277
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1318
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1278
1319
|
end},
|
|
1279
1320
|
true
|
|
1280
1321
|
)
|
|
@@ -1364,19 +1405,6 @@ __TS__SetDescriptor(
|
|
|
1364
1405
|
},
|
|
1365
1406
|
true
|
|
1366
1407
|
)
|
|
1367
|
-
__TS__SetDescriptor(
|
|
1368
|
-
Unit.prototype,
|
|
1369
|
-
"strengthBase",
|
|
1370
|
-
{
|
|
1371
|
-
get = function(self)
|
|
1372
|
-
return getHeroStr(self.handle, false)
|
|
1373
|
-
end,
|
|
1374
|
-
set = function(self, strengthBase)
|
|
1375
|
-
setHeroStr(self.handle, strengthBase, true)
|
|
1376
|
-
end
|
|
1377
|
-
},
|
|
1378
|
-
true
|
|
1379
|
-
)
|
|
1380
1408
|
__TS__SetDescriptor(
|
|
1381
1409
|
Unit.prototype,
|
|
1382
1410
|
"strengthBonus",
|
|
@@ -1394,19 +1422,6 @@ __TS__SetDescriptor(
|
|
|
1394
1422
|
end},
|
|
1395
1423
|
true
|
|
1396
1424
|
)
|
|
1397
|
-
__TS__SetDescriptor(
|
|
1398
|
-
Unit.prototype,
|
|
1399
|
-
"agilityBase",
|
|
1400
|
-
{
|
|
1401
|
-
get = function(self)
|
|
1402
|
-
return getHeroAgi(self.handle, false)
|
|
1403
|
-
end,
|
|
1404
|
-
set = function(self, agilityBase)
|
|
1405
|
-
setHeroAgi(self.handle, agilityBase, true)
|
|
1406
|
-
end
|
|
1407
|
-
},
|
|
1408
|
-
true
|
|
1409
|
-
)
|
|
1410
1425
|
__TS__SetDescriptor(
|
|
1411
1426
|
Unit.prototype,
|
|
1412
1427
|
"agilityBonus",
|
|
@@ -1424,19 +1439,6 @@ __TS__SetDescriptor(
|
|
|
1424
1439
|
end},
|
|
1425
1440
|
true
|
|
1426
1441
|
)
|
|
1427
|
-
__TS__SetDescriptor(
|
|
1428
|
-
Unit.prototype,
|
|
1429
|
-
"intelligenceBase",
|
|
1430
|
-
{
|
|
1431
|
-
get = function(self)
|
|
1432
|
-
return getHeroInt(self.handle, false)
|
|
1433
|
-
end,
|
|
1434
|
-
set = function(self, intelligenceBase)
|
|
1435
|
-
setHeroInt(self.handle, intelligenceBase, true)
|
|
1436
|
-
end
|
|
1437
|
-
},
|
|
1438
|
-
true
|
|
1439
|
-
)
|
|
1440
1442
|
__TS__SetDescriptor(
|
|
1441
1443
|
Unit.prototype,
|
|
1442
1444
|
"intelligenceBonus",
|
|
@@ -1485,7 +1487,7 @@ __TS__SetDescriptor(
|
|
|
1485
1487
|
"isTeamGlowVisible",
|
|
1486
1488
|
{
|
|
1487
1489
|
get = function(self)
|
|
1488
|
-
return not self[
|
|
1490
|
+
return not self[107]
|
|
1489
1491
|
end,
|
|
1490
1492
|
set = function(self, isTeamGlowVisible)
|
|
1491
1493
|
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
@@ -1495,7 +1497,7 @@ __TS__SetDescriptor(
|
|
|
1495
1497
|
else
|
|
1496
1498
|
____temp_7 = nil
|
|
1497
1499
|
end
|
|
1498
|
-
self[
|
|
1500
|
+
self[107] = ____temp_7
|
|
1499
1501
|
end
|
|
1500
1502
|
},
|
|
1501
1503
|
true
|
|
@@ -1505,7 +1507,7 @@ __TS__SetDescriptor(
|
|
|
1505
1507
|
"color",
|
|
1506
1508
|
{set = function(self, color)
|
|
1507
1509
|
SetUnitColor(self.handle, color.handle)
|
|
1508
|
-
if self[
|
|
1510
|
+
if self[107] then
|
|
1509
1511
|
BlzShowUnitTeamGlow(self.handle, false)
|
|
1510
1512
|
end
|
|
1511
1513
|
end},
|
|
@@ -1529,14 +1531,14 @@ __TS__SetDescriptor(
|
|
|
1529
1531
|
"maxHealth",
|
|
1530
1532
|
{
|
|
1531
1533
|
get = function(self)
|
|
1532
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1534
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1533
1535
|
end,
|
|
1534
1536
|
set = function(self, maxHealth)
|
|
1535
|
-
if maxHealth < 1 and self[
|
|
1536
|
-
self[
|
|
1537
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1538
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1537
1539
|
maxHealth = 1
|
|
1538
1540
|
end
|
|
1539
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1541
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1540
1542
|
end
|
|
1541
1543
|
},
|
|
1542
1544
|
true
|
|
@@ -1578,10 +1580,10 @@ __TS__SetDescriptor(
|
|
|
1578
1580
|
"health",
|
|
1579
1581
|
{
|
|
1580
1582
|
get = function(self)
|
|
1581
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1583
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1582
1584
|
end,
|
|
1583
1585
|
set = function(self, health)
|
|
1584
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1586
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1585
1587
|
end
|
|
1586
1588
|
},
|
|
1587
1589
|
true
|
|
@@ -1657,25 +1659,12 @@ __TS__SetDescriptor(
|
|
|
1657
1659
|
},
|
|
1658
1660
|
true
|
|
1659
1661
|
)
|
|
1660
|
-
__TS__SetDescriptor(
|
|
1661
|
-
Unit.prototype,
|
|
1662
|
-
"flyHeight",
|
|
1663
|
-
{
|
|
1664
|
-
get = function(self)
|
|
1665
|
-
return getUnitFlyHeight(self.handle)
|
|
1666
|
-
end,
|
|
1667
|
-
set = function(self, v)
|
|
1668
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1669
|
-
end
|
|
1670
|
-
},
|
|
1671
|
-
true
|
|
1672
|
-
)
|
|
1673
1662
|
__TS__SetDescriptor(
|
|
1674
1663
|
Unit.prototype,
|
|
1675
1664
|
"x",
|
|
1676
1665
|
{
|
|
1677
1666
|
get = function(self)
|
|
1678
|
-
return self[
|
|
1667
|
+
return self[108] or getUnitX(self.handle)
|
|
1679
1668
|
end,
|
|
1680
1669
|
set = function(self, v)
|
|
1681
1670
|
SetUnitX(self.handle, v)
|
|
@@ -1688,7 +1677,7 @@ __TS__SetDescriptor(
|
|
|
1688
1677
|
"y",
|
|
1689
1678
|
{
|
|
1690
1679
|
get = function(self)
|
|
1691
|
-
return self[
|
|
1680
|
+
return self[109] or getUnitY(self.handle)
|
|
1692
1681
|
end,
|
|
1693
1682
|
set = function(self, v)
|
|
1694
1683
|
SetUnitY(self.handle, v)
|
|
@@ -1793,14 +1782,18 @@ __TS__SetDescriptor(
|
|
|
1793
1782
|
local handle = self.handle
|
|
1794
1783
|
if isPaused and not IsUnitPaused(handle) then
|
|
1795
1784
|
self[101] = true
|
|
1796
|
-
|
|
1797
|
-
|
|
1785
|
+
if (self[103] or 0) <= 0 then
|
|
1786
|
+
for _ = self[102] or 0, -1 do
|
|
1787
|
+
BlzPauseUnitEx(handle, true)
|
|
1788
|
+
end
|
|
1798
1789
|
end
|
|
1799
1790
|
PauseUnit(handle, true)
|
|
1800
1791
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1801
1792
|
PauseUnit(handle, false)
|
|
1802
|
-
|
|
1803
|
-
|
|
1793
|
+
if (self[103] or 0) <= 0 then
|
|
1794
|
+
for _ = self[102] or 0, -1 do
|
|
1795
|
+
BlzPauseUnitEx(handle, false)
|
|
1796
|
+
end
|
|
1804
1797
|
end
|
|
1805
1798
|
self[101] = nil
|
|
1806
1799
|
end
|
|
@@ -1858,20 +1851,6 @@ __TS__SetDescriptor(
|
|
|
1858
1851
|
},
|
|
1859
1852
|
true
|
|
1860
1853
|
)
|
|
1861
|
-
__TS__SetDescriptor(
|
|
1862
|
-
Unit.prototype,
|
|
1863
|
-
"scale",
|
|
1864
|
-
{
|
|
1865
|
-
get = function(self)
|
|
1866
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1867
|
-
end,
|
|
1868
|
-
set = function(self, v)
|
|
1869
|
-
setUnitScale(self.handle, v, v, v)
|
|
1870
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1871
|
-
end
|
|
1872
|
-
},
|
|
1873
|
-
true
|
|
1874
|
-
)
|
|
1875
1854
|
__TS__SetDescriptor(
|
|
1876
1855
|
Unit.prototype,
|
|
1877
1856
|
"timeScale",
|
|
@@ -1898,7 +1877,7 @@ __TS__SetDescriptor(
|
|
|
1898
1877
|
Unit.prototype,
|
|
1899
1878
|
"pathingCollisionRange",
|
|
1900
1879
|
{get = function(self)
|
|
1901
|
-
return 16 * (min(
|
|
1880
|
+
return 16 * (math.min(
|
|
1902
1881
|
getUnitCollisionSize(self.handle) // 16,
|
|
1903
1882
|
3
|
|
1904
1883
|
) + 1)
|
|
@@ -2008,30 +1987,6 @@ __TS__SetDescriptor(
|
|
|
2008
1987
|
end},
|
|
2009
1988
|
true
|
|
2010
1989
|
)
|
|
2011
|
-
__TS__SetDescriptor(
|
|
2012
|
-
Unit.prototype,
|
|
2013
|
-
"onUnitInRange",
|
|
2014
|
-
{get = function(self)
|
|
2015
|
-
local handle = self.handle
|
|
2016
|
-
local onUnitInRange = setmetatable(
|
|
2017
|
-
{},
|
|
2018
|
-
{__index = function(self, value)
|
|
2019
|
-
local event = __TS__New(
|
|
2020
|
-
TriggerEvent,
|
|
2021
|
-
function(trigger)
|
|
2022
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
2023
|
-
end,
|
|
2024
|
-
function() return ____exports.Unit:of(handle) end
|
|
2025
|
-
)
|
|
2026
|
-
rawset(self, value, event)
|
|
2027
|
-
return event
|
|
2028
|
-
end}
|
|
2029
|
-
)
|
|
2030
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
2031
|
-
return onUnitInRange
|
|
2032
|
-
end},
|
|
2033
|
-
true
|
|
2034
|
-
)
|
|
2035
1990
|
__TS__SetDescriptor(
|
|
2036
1991
|
Unit.prototype,
|
|
2037
1992
|
"onManaEqual",
|
|
@@ -2167,6 +2122,11 @@ __TS__SetDescriptor(
|
|
|
2167
2122
|
end},
|
|
2168
2123
|
true
|
|
2169
2124
|
)
|
|
2125
|
+
Unit.levelChangedEvent = __TS__New(
|
|
2126
|
+
____exports.UnitTriggerEvent,
|
|
2127
|
+
EVENT_PLAYER_HERO_LEVEL,
|
|
2128
|
+
function() return ____exports.Unit:of(getTriggerUnit()) end
|
|
2129
|
+
)
|
|
2170
2130
|
Unit.deathEvent = __TS__New(
|
|
2171
2131
|
____exports.UnitTriggerEvent,
|
|
2172
2132
|
EVENT_PLAYER_UNIT_DEATH,
|
|
@@ -2184,7 +2144,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2184
2144
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2185
2145
|
dead[unit] = true
|
|
2186
2146
|
end)
|
|
2187
|
-
____exports.Unit.onImmediateOrder[
|
|
2147
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2188
2148
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2189
2149
|
dead[unit] = false
|
|
2190
2150
|
invoke(event, unit)
|
|
@@ -2201,7 +2161,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2201
2161
|
invoke(event, unit)
|
|
2202
2162
|
end
|
|
2203
2163
|
end
|
|
2204
|
-
____exports.Unit.onImmediateOrder[
|
|
2164
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2205
2165
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2206
2166
|
Timer:run(ifNotLeft, unit)
|
|
2207
2167
|
end
|
|
@@ -2628,7 +2588,7 @@ Unit.onDamage = __TS__New(
|
|
|
2628
2588
|
invoke(event, source, target, evData)
|
|
2629
2589
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2630
2590
|
local bonusHealth = math.ceil(evData.amount)
|
|
2631
|
-
target[
|
|
2591
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2632
2592
|
BlzSetUnitMaxHP(
|
|
2633
2593
|
target.handle,
|
|
2634
2594
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2642,7 +2602,7 @@ Unit.onDamage = __TS__New(
|
|
|
2642
2602
|
evData[0],
|
|
2643
2603
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2644
2604
|
)
|
|
2645
|
-
target[
|
|
2605
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2646
2606
|
SetWidgetLife(
|
|
2647
2607
|
target.handle,
|
|
2648
2608
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2668,7 +2628,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2668
2628
|
function()
|
|
2669
2629
|
local unit = getTriggerUnit()
|
|
2670
2630
|
local item = getManipulatedItem()
|
|
2671
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2631
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2672
2632
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2673
2633
|
end
|
|
2674
2634
|
return IgnoreEvent
|
|
@@ -2680,10 +2640,10 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2680
2640
|
function()
|
|
2681
2641
|
local unitHandle = getTriggerUnit()
|
|
2682
2642
|
local itemHandle = getManipulatedItem()
|
|
2683
|
-
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (
|
|
2643
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2684
2644
|
local unit = ____exports.Unit:of(unitHandle)
|
|
2685
2645
|
local item = Item:of(itemHandle)
|
|
2686
|
-
if item
|
|
2646
|
+
if ownerByItem[item] ~= unit then
|
|
2687
2647
|
return unit, item
|
|
2688
2648
|
end
|
|
2689
2649
|
end
|
|
@@ -2696,17 +2656,12 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2696
2656
|
function()
|
|
2697
2657
|
local unit = getTriggerUnit()
|
|
2698
2658
|
local item = getManipulatedItem()
|
|
2699
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2659
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2700
2660
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2701
2661
|
end
|
|
2702
2662
|
return IgnoreEvent
|
|
2703
2663
|
end
|
|
2704
2664
|
)
|
|
2705
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2706
|
-
____exports.UnitTriggerEvent,
|
|
2707
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2708
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2709
|
-
)
|
|
2710
2665
|
__TS__ObjectDefineProperty(
|
|
2711
2666
|
Unit,
|
|
2712
2667
|
"itemChargesChangedEvent",
|
|
@@ -2722,51 +2677,6 @@ __TS__ObjectDefineProperty(
|
|
|
2722
2677
|
return event
|
|
2723
2678
|
end}
|
|
2724
2679
|
)
|
|
2725
|
-
__TS__ObjectDefineProperty(
|
|
2726
|
-
Unit,
|
|
2727
|
-
"itemUseOrderEvent",
|
|
2728
|
-
{get = function(self)
|
|
2729
|
-
local event = __TS__New(Event)
|
|
2730
|
-
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2731
|
-
local slot = order - orderId("useslot0")
|
|
2732
|
-
local function listener(unit)
|
|
2733
|
-
local item = unit.items[slot + 1]
|
|
2734
|
-
if item ~= nil then
|
|
2735
|
-
invoke(event, unit, item)
|
|
2736
|
-
end
|
|
2737
|
-
end
|
|
2738
|
-
self.onImmediateOrder[order]:addListener(listener)
|
|
2739
|
-
self.onTargetOrder[order]:addListener(listener)
|
|
2740
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2741
|
-
end
|
|
2742
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2743
|
-
return event
|
|
2744
|
-
end}
|
|
2745
|
-
)
|
|
2746
|
-
__TS__ObjectDefineProperty(
|
|
2747
|
-
Unit,
|
|
2748
|
-
"itemMoveOrderEvent",
|
|
2749
|
-
{get = function(self)
|
|
2750
|
-
local event = __TS__New(Event)
|
|
2751
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2752
|
-
local slotTo = order - orderId("moveslot0")
|
|
2753
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2754
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2755
|
-
if slotFrom ~= nil then
|
|
2756
|
-
invoke(
|
|
2757
|
-
event,
|
|
2758
|
-
unit,
|
|
2759
|
-
item,
|
|
2760
|
-
slotFrom,
|
|
2761
|
-
slotTo
|
|
2762
|
-
)
|
|
2763
|
-
end
|
|
2764
|
-
end)
|
|
2765
|
-
end
|
|
2766
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2767
|
-
return event
|
|
2768
|
-
end}
|
|
2769
|
-
)
|
|
2770
2680
|
__TS__ObjectDefineProperty(
|
|
2771
2681
|
Unit,
|
|
2772
2682
|
"onCreate",
|
|
@@ -2792,6 +2702,10 @@ __TS__ObjectDefineProperty(
|
|
|
2792
2702
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2793
2703
|
return destroyEvent
|
|
2794
2704
|
end}
|
|
2705
|
+
)
|
|
2706
|
+
Unit.synchronize = synchronizer(
|
|
2707
|
+
function(unit) return unit.syncId end,
|
|
2708
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2795
2709
|
);
|
|
2796
2710
|
(function(self)
|
|
2797
2711
|
local leaveAbilityIds = postcompile(function()
|
|
@@ -2809,11 +2723,7 @@ __TS__ObjectDefineProperty(
|
|
|
2809
2723
|
function(____, id) return fourCC(id) end
|
|
2810
2724
|
)
|
|
2811
2725
|
end)
|
|
2812
|
-
for ____, leaveOrderId in ipairs({
|
|
2813
|
-
orderId("undefend"),
|
|
2814
|
-
orderId("magicundefense"),
|
|
2815
|
-
orderId("unimmolation")
|
|
2816
|
-
}) do
|
|
2726
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2817
2727
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2818
2728
|
local handle = unit.handle
|
|
2819
2729
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2821,7 +2731,8 @@ __TS__ObjectDefineProperty(
|
|
|
2821
2731
|
return
|
|
2822
2732
|
end
|
|
2823
2733
|
end
|
|
2824
|
-
unit:
|
|
2734
|
+
unit:saveData()
|
|
2735
|
+
Timer:run(unit, "destroy")
|
|
2825
2736
|
end)
|
|
2826
2737
|
end
|
|
2827
2738
|
end)(Unit)
|