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
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
3
|
+
local ____exports = {}
|
|
4
|
+
local ____unit = require("engine.internal.unit")
|
|
5
|
+
local Unit = ____unit.Unit
|
|
6
|
+
local ____unit = require("engine.standard.fields.unit")
|
|
7
|
+
local SCALING_VALUE_UNIT_FIELD = ____unit.SCALING_VALUE_UNIT_FIELD
|
|
8
|
+
__TS__ObjectDefineProperty(
|
|
9
|
+
Unit.prototype,
|
|
10
|
+
"scale",
|
|
11
|
+
{
|
|
12
|
+
get = function(self)
|
|
13
|
+
return SCALING_VALUE_UNIT_FIELD:getValue(self)
|
|
14
|
+
end,
|
|
15
|
+
set = function(self, value)
|
|
16
|
+
SCALING_VALUE_UNIT_FIELD:setValue(self, value)
|
|
17
|
+
end
|
|
18
|
+
}
|
|
19
|
+
)
|
|
20
|
+
return ____exports
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Ability } from "./ability";
|
|
2
|
+
import { Ability, UnitAbility } from "./ability";
|
|
3
3
|
import { DispatchingEvent } from "../../event";
|
|
4
4
|
declare module "./unit" {
|
|
5
5
|
namespace Unit {
|
|
6
6
|
const abilityGainedEvent: DispatchingEvent<[Unit, Ability]>;
|
|
7
7
|
const abilityLostEvent: DispatchingEvent<[Unit, Ability]>;
|
|
8
|
+
const abilityLevelChangedEvent: DispatchingEvent<[Unit, UnitAbility]>;
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -9,6 +9,10 @@ local Unit = ____unit.Unit
|
|
|
9
9
|
local ____event = require("event")
|
|
10
10
|
local createDispatchingEvent = ____event.createDispatchingEvent
|
|
11
11
|
local Event = ____event.Event
|
|
12
|
+
local ____unit_2Dability_2Dlevel_2Dnatives = require("engine.internal.misc.unit-ability-level-natives")
|
|
13
|
+
local rawDecUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawDecUnitAbilityLevel
|
|
14
|
+
local rawIncUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawIncUnitAbilityLevel
|
|
15
|
+
local rawSetUnitAbilityLevel = ____unit_2Dability_2Dlevel_2Dnatives.rawSetUnitAbilityLevel
|
|
12
16
|
local abilityGainedEvent = createDispatchingEvent(
|
|
13
17
|
__TS__New(Event),
|
|
14
18
|
function(unit, ability) return ability.typeId end
|
|
@@ -19,6 +23,63 @@ local abilityLostEvent = createDispatchingEvent(
|
|
|
19
23
|
function(unit, ability) return ability.typeId end
|
|
20
24
|
)
|
|
21
25
|
rawset(Unit, "abilityLostEvent", abilityLostEvent)
|
|
26
|
+
local abilityLevelChangedEvent = createDispatchingEvent(
|
|
27
|
+
__TS__New(Event),
|
|
28
|
+
function(unit, ability) return ability.typeId end
|
|
29
|
+
)
|
|
30
|
+
rawset(Unit, "abilityLevelChangedEvent", abilityLevelChangedEvent)
|
|
31
|
+
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
32
|
+
local function invokeAbilityLevelChangedEvent(unitHandle, abilityTypeId)
|
|
33
|
+
local unit = Unit:of(unitHandle)
|
|
34
|
+
if unit ~= nil then
|
|
35
|
+
local ability = unit:getAbility(abilityTypeId)
|
|
36
|
+
if ability ~= nil then
|
|
37
|
+
Event.invoke(abilityLevelChangedEvent, unit, ability)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
local function invokeAbilityLevelChangedEventIfChanged(unitHandle, abilityTypeId, previousLevel)
|
|
42
|
+
if previousLevel ~= 0 then
|
|
43
|
+
local level = getUnitAbilityLevel(unitHandle, abilityTypeId)
|
|
44
|
+
if level ~= 0 and level ~= previousLevel then
|
|
45
|
+
invokeAbilityLevelChangedEvent(unitHandle, abilityTypeId)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
_G.SetUnitAbilityLevel = function(whichUnit, abilcode, level)
|
|
50
|
+
local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
|
|
51
|
+
local result = rawSetUnitAbilityLevel(whichUnit, abilcode, level)
|
|
52
|
+
invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
|
|
53
|
+
return result
|
|
54
|
+
end
|
|
55
|
+
_G.IncUnitAbilityLevel = function(whichUnit, abilcode)
|
|
56
|
+
local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
|
|
57
|
+
local result = rawIncUnitAbilityLevel(whichUnit, abilcode)
|
|
58
|
+
invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
|
|
59
|
+
return result
|
|
60
|
+
end
|
|
61
|
+
_G.DecUnitAbilityLevel = function(whichUnit, abilcode)
|
|
62
|
+
local previousLevel = getUnitAbilityLevel(whichUnit, abilcode)
|
|
63
|
+
local result = rawDecUnitAbilityLevel(whichUnit, abilcode)
|
|
64
|
+
invokeAbilityLevelChangedEventIfChanged(whichUnit, abilcode, previousLevel)
|
|
65
|
+
return result
|
|
66
|
+
end
|
|
67
|
+
local heroSkillTrigger = CreateTrigger()
|
|
68
|
+
TriggerRegisterAnyUnitEventBJ(heroSkillTrigger, EVENT_PLAYER_HERO_SKILL)
|
|
69
|
+
TriggerAddCondition(
|
|
70
|
+
heroSkillTrigger,
|
|
71
|
+
Condition(function()
|
|
72
|
+
if GetLearnedSkillLevel() > 1 then
|
|
73
|
+
local unitHandle = GetTriggerUnit()
|
|
74
|
+
if unitHandle ~= nil then
|
|
75
|
+
invokeAbilityLevelChangedEvent(
|
|
76
|
+
unitHandle,
|
|
77
|
+
GetLearnedSkill()
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end)
|
|
82
|
+
)
|
|
22
83
|
UnitAbility.onCreate:addListener(
|
|
23
84
|
0,
|
|
24
85
|
function(ability)
|
|
@@ -50,7 +111,7 @@ ItemAbility.destroyEvent:addListener(
|
|
|
50
111
|
end
|
|
51
112
|
)
|
|
52
113
|
Unit.itemPickedUpEvent:addListener(
|
|
53
|
-
|
|
114
|
+
-999999,
|
|
54
115
|
function(unit, item)
|
|
55
116
|
for ____, ability in ipairs(item.abilities) do
|
|
56
117
|
Event.invoke(abilityGainedEvent, unit, ability)
|
|
@@ -58,7 +119,7 @@ Unit.itemPickedUpEvent:addListener(
|
|
|
58
119
|
end
|
|
59
120
|
)
|
|
60
121
|
Unit.itemDroppedEvent:addListener(
|
|
61
|
-
|
|
122
|
+
999999,
|
|
62
123
|
function(unit, item)
|
|
63
124
|
for ____, ability in ipairs(item.abilities) do
|
|
64
125
|
Event.invoke(abilityLostEvent, unit, ability)
|
|
@@ -3,9 +3,9 @@ local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____unit = require("engine.internal.unit")
|
|
5
5
|
local Unit = ____unit.Unit
|
|
6
|
-
local
|
|
7
|
-
local ARMOR_BONUS_DUMMY_ABILITY_FIELD =
|
|
8
|
-
local ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID =
|
|
6
|
+
local ____armor_2Dbonus = require("engine.internal.object-data.armor-bonus")
|
|
7
|
+
local ARMOR_BONUS_DUMMY_ABILITY_FIELD = ____armor_2Dbonus.ARMOR_BONUS_DUMMY_ABILITY_FIELD
|
|
8
|
+
local ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID = ____armor_2Dbonus.ARMOR_BONUS_DUMMY_ABILITY_TYPE_ID
|
|
9
9
|
local getUnitAbility = BlzGetUnitAbility
|
|
10
10
|
local setAbilityRealLevelField = BlzSetAbilityRealLevelField
|
|
11
11
|
local unitAddAbility = UnitAddAbility
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import "./unit/allowed-targets";
|
|
2
3
|
import { Widget } from "../../core/types/widget";
|
|
3
4
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
5
|
+
import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
|
|
4
6
|
export type DamageType = jdamagetype;
|
|
5
7
|
export declare namespace DamageType {
|
|
6
8
|
const UNKNOWN: jdamagetype;
|
|
@@ -56,5 +58,12 @@ export declare namespace WeaponType {
|
|
|
56
58
|
declare module "./unit" {
|
|
57
59
|
interface Unit {
|
|
58
60
|
damageTarget(target: Widget, amount: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponType?: WeaponType, metadata?: unknown): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Deals amount to each allowed unit in collision range of (x, y).
|
|
63
|
+
* A positive maximumDamage caps the total requested damage, shared equally
|
|
64
|
+
* between the targets. Zero or omitted means unlimited; damage mitigation
|
|
65
|
+
* and damage-event modifiers are applied afterward by damageTarget.
|
|
66
|
+
*/
|
|
67
|
+
damageArea(x: number, y: number, range: number, allowedTargetCombatClassifications: CombatClassifications, amount: number, maximumDamage?: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponType?: WeaponType, metadata?: unknown): void;
|
|
59
68
|
}
|
|
60
69
|
}
|
|
@@ -3,6 +3,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____unit = require("engine.internal.unit")
|
|
5
5
|
local Unit = ____unit.Unit
|
|
6
|
+
require("engine.internal.unit.allowed-targets")
|
|
6
7
|
local ____player = require("core.types.player")
|
|
7
8
|
local Player = ____player.Player
|
|
8
9
|
local ____dummy = require("objutil.dummy")
|
|
@@ -11,6 +12,8 @@ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
|
11
12
|
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
12
13
|
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
13
14
|
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
15
|
+
local ____math = require("math")
|
|
16
|
+
local min = ____math.min
|
|
14
17
|
local createUnit = CreateUnit
|
|
15
18
|
local getOwningPlayer = GetOwningPlayer
|
|
16
19
|
local showUnit = ShowUnit
|
|
@@ -116,4 +119,34 @@ Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, att
|
|
|
116
119
|
weaponType
|
|
117
120
|
)
|
|
118
121
|
end
|
|
122
|
+
Unit.prototype.damageArea = function(self, x, y, range, allowedTargetCombatClassifications, amount, maximumDamage, attack, ranged, attackType, damageType, weaponType, metadata)
|
|
123
|
+
if maximumDamage == nil then
|
|
124
|
+
maximumDamage = 0
|
|
125
|
+
end
|
|
126
|
+
local targets = Unit.getAllowedTargetsInCollisionRange(
|
|
127
|
+
self,
|
|
128
|
+
allowedTargetCombatClassifications,
|
|
129
|
+
x,
|
|
130
|
+
y,
|
|
131
|
+
range
|
|
132
|
+
)
|
|
133
|
+
if #targets == 0 then
|
|
134
|
+
return
|
|
135
|
+
end
|
|
136
|
+
if maximumDamage > 0 then
|
|
137
|
+
amount = min(amount, maximumDamage / #targets)
|
|
138
|
+
end
|
|
139
|
+
for ____, target in ipairs(targets) do
|
|
140
|
+
self:damageTarget(
|
|
141
|
+
target,
|
|
142
|
+
amount,
|
|
143
|
+
attack,
|
|
144
|
+
ranged,
|
|
145
|
+
attackType,
|
|
146
|
+
damageType,
|
|
147
|
+
weaponType,
|
|
148
|
+
metadata
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
119
152
|
return ____exports
|
|
@@ -23,22 +23,22 @@ local issueTargetOrderById = IssueTargetOrderById
|
|
|
23
23
|
local queuePointOrderById = BlzQueuePointOrderById
|
|
24
24
|
local queueTargetOrderById = BlzQueueTargetOrderById
|
|
25
25
|
local rallyRouteByUnit = setmetatable({}, {__mode = "k"})
|
|
26
|
-
Unit.onPointOrder[
|
|
26
|
+
Unit.onPointOrder[851980]:addListener(function(unit, x, y)
|
|
27
27
|
processPoint(unit, x, y)
|
|
28
28
|
end)
|
|
29
|
-
Unit.onPointOrder[
|
|
29
|
+
Unit.onPointOrder[851971]:addListener(function(unit, x, y)
|
|
30
30
|
if unit:hasAbility(fourCC("ARal")) then
|
|
31
31
|
processPoint(unit, x, y)
|
|
32
32
|
end
|
|
33
33
|
end)
|
|
34
|
-
Unit.onTargetOrder[
|
|
34
|
+
Unit.onTargetOrder[851980]:addListener(function(unit, target)
|
|
35
35
|
if __TS__InstanceOf(target, Unit) then
|
|
36
36
|
processUnit(unit, target)
|
|
37
37
|
elseif __TS__InstanceOf(target, Destructable) then
|
|
38
38
|
processDestructible(unit, target)
|
|
39
39
|
end
|
|
40
40
|
end)
|
|
41
|
-
Unit.onTargetOrder[
|
|
41
|
+
Unit.onTargetOrder[851971]:addListener(function(unit, target)
|
|
42
42
|
if unit:hasAbility(fourCC("ARal")) then
|
|
43
43
|
if __TS__InstanceOf(target, Unit) then
|
|
44
44
|
processUnit(unit, target)
|
|
@@ -116,41 +116,19 @@ __TS__ObjectDefineProperty(
|
|
|
116
116
|
do
|
|
117
117
|
local rallyPoint = rallyRoute[1]
|
|
118
118
|
if __TS__InstanceOf(rallyPoint, Handle) then
|
|
119
|
-
issueTargetOrderById(
|
|
120
|
-
handle,
|
|
121
|
-
orderId("setrally"),
|
|
122
|
-
rallyPoint.handle
|
|
123
|
-
)
|
|
119
|
+
issueTargetOrderById(handle, 851980, rallyPoint.handle)
|
|
124
120
|
elseif rallyPoint ~= nil then
|
|
125
|
-
issuePointOrderById(
|
|
126
|
-
handle,
|
|
127
|
-
orderId("setrally"),
|
|
128
|
-
rallyPoint[1],
|
|
129
|
-
rallyPoint[2]
|
|
130
|
-
)
|
|
121
|
+
issuePointOrderById(handle, 851980, rallyPoint[1], rallyPoint[2])
|
|
131
122
|
else
|
|
132
|
-
issueTargetOrderById(
|
|
133
|
-
handle,
|
|
134
|
-
orderId("setrally"),
|
|
135
|
-
handle
|
|
136
|
-
)
|
|
123
|
+
issueTargetOrderById(handle, 851980, handle)
|
|
137
124
|
end
|
|
138
125
|
end
|
|
139
126
|
for i = 2, #rallyRoute do
|
|
140
127
|
local rallyPoint = rallyRoute[i]
|
|
141
128
|
if __TS__InstanceOf(rallyPoint, Handle) then
|
|
142
|
-
queueTargetOrderById(
|
|
143
|
-
handle,
|
|
144
|
-
orderId("setrally"),
|
|
145
|
-
rallyPoint.handle
|
|
146
|
-
)
|
|
129
|
+
queueTargetOrderById(handle, 851980, rallyPoint.handle)
|
|
147
130
|
else
|
|
148
|
-
queuePointOrderById(
|
|
149
|
-
handle,
|
|
150
|
-
orderId("setrally"),
|
|
151
|
-
rallyPoint[1],
|
|
152
|
-
rallyPoint[2]
|
|
153
|
-
)
|
|
131
|
+
queuePointOrderById(handle, 851980, rallyPoint[1], rallyPoint[2])
|
|
154
132
|
end
|
|
155
133
|
end
|
|
156
134
|
end
|
|
@@ -44,58 +44,84 @@ ____exports.MISSILE_DATA_BY_UNIT_TYPE_ID = (function()
|
|
|
44
44
|
UnitType:getAll(),
|
|
45
45
|
function(unitType) return unitType.id end,
|
|
46
46
|
function(unitType)
|
|
47
|
-
local ____ = unitType.missileImpactOffsetZSD
|
|
48
|
-
local ____ = unitType.missileImpactOffsetZHD
|
|
49
47
|
return {
|
|
50
48
|
[0] = unitType.missileImpactOffsetZSD ~= ____exports.DEFAULT_MISSILE_IMPACT_OFFSET_Z and unitType.missileImpactOffsetZSD or nil,
|
|
51
49
|
[1] = unitType.missileImpactOffsetZHD ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZHD or nil,
|
|
52
|
-
[2] = unitType.
|
|
53
|
-
[3] = unitType.
|
|
54
|
-
[4] = unitType.
|
|
55
|
-
[5] = unitType.
|
|
56
|
-
[6] = unitType.
|
|
57
|
-
[7] = unitType.
|
|
58
|
-
[8] = unitType.
|
|
59
|
-
[9] = unitType.
|
|
50
|
+
[2] = unitType.missileImpactOffsetZDE ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZDE or nil,
|
|
51
|
+
[3] = unitType.missileLaunchOffsetX ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_X and unitType.missileLaunchOffsetX or nil,
|
|
52
|
+
[4] = unitType.missileLaunchOffsetY ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Y and unitType.missileLaunchOffsetY or nil,
|
|
53
|
+
[5] = unitType.missileLaunchOffsetZSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Z and unitType.missileLaunchOffsetZSD or nil,
|
|
54
|
+
[6] = unitType.missileLaunchOffsetZHD ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZHD or nil,
|
|
55
|
+
[7] = unitType.missileLaunchOffsetZDE ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZDE or nil,
|
|
56
|
+
[8] = unitType.missileLaunchVisualOffsetXSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_X and unitType.missileLaunchVisualOffsetXSD or nil,
|
|
57
|
+
[9] = unitType.missileLaunchVisualOffsetXHD ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXHD or nil,
|
|
58
|
+
[10] = unitType.missileLaunchVisualOffsetXDE ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXDE or nil,
|
|
59
|
+
[11] = unitType.missileLaunchVisualOffsetYSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_Y and unitType.missileLaunchVisualOffsetYSD or nil,
|
|
60
|
+
[12] = unitType.missileLaunchVisualOffsetYHD ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYHD or nil,
|
|
61
|
+
[13] = unitType.missileLaunchVisualOffsetYDE ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYDE or nil
|
|
60
62
|
}
|
|
61
63
|
end
|
|
62
64
|
)
|
|
63
65
|
end),
|
|
64
66
|
function(data)
|
|
65
|
-
local
|
|
66
|
-
local
|
|
67
|
+
local ____setmetatable_10 = setmetatable
|
|
68
|
+
local ____LocalClient_isHD_1
|
|
67
69
|
if LocalClient.isHD then
|
|
68
|
-
|
|
70
|
+
____LocalClient_isHD_1 = data[1] or data[0]
|
|
69
71
|
else
|
|
70
|
-
|
|
72
|
+
local ____LocalClient_isDE_0
|
|
73
|
+
if LocalClient.isDE then
|
|
74
|
+
____LocalClient_isDE_0 = data[2] or data[0]
|
|
75
|
+
else
|
|
76
|
+
____LocalClient_isDE_0 = data[0]
|
|
77
|
+
end
|
|
78
|
+
____LocalClient_isHD_1 = ____LocalClient_isDE_0
|
|
71
79
|
end
|
|
72
|
-
local
|
|
73
|
-
local
|
|
74
|
-
local
|
|
80
|
+
local ____data__3_8 = data[3]
|
|
81
|
+
local ____data__4_9 = data[4]
|
|
82
|
+
local ____LocalClient_isHD_3
|
|
75
83
|
if LocalClient.isHD then
|
|
76
|
-
|
|
84
|
+
____LocalClient_isHD_3 = data[6] or data[5]
|
|
77
85
|
else
|
|
78
|
-
|
|
86
|
+
local ____LocalClient_isDE_2
|
|
87
|
+
if LocalClient.isDE then
|
|
88
|
+
____LocalClient_isDE_2 = data[7] or data[5]
|
|
89
|
+
else
|
|
90
|
+
____LocalClient_isDE_2 = data[5]
|
|
91
|
+
end
|
|
92
|
+
____LocalClient_isHD_3 = ____LocalClient_isDE_2
|
|
79
93
|
end
|
|
80
|
-
local
|
|
94
|
+
local ____LocalClient_isHD_5
|
|
81
95
|
if LocalClient.isHD then
|
|
82
|
-
|
|
96
|
+
____LocalClient_isHD_5 = data[9] or data[8]
|
|
83
97
|
else
|
|
84
|
-
|
|
98
|
+
local ____LocalClient_isDE_4
|
|
99
|
+
if LocalClient.isDE then
|
|
100
|
+
____LocalClient_isDE_4 = data[10] or data[8]
|
|
101
|
+
else
|
|
102
|
+
____LocalClient_isDE_4 = data[8]
|
|
103
|
+
end
|
|
104
|
+
____LocalClient_isHD_5 = ____LocalClient_isDE_4
|
|
85
105
|
end
|
|
86
|
-
local
|
|
106
|
+
local ____LocalClient_isHD_7
|
|
87
107
|
if LocalClient.isHD then
|
|
88
|
-
|
|
108
|
+
____LocalClient_isHD_7 = data[12] or data[11]
|
|
89
109
|
else
|
|
90
|
-
|
|
110
|
+
local ____LocalClient_isDE_6
|
|
111
|
+
if LocalClient.isDE then
|
|
112
|
+
____LocalClient_isDE_6 = data[13] or data[11]
|
|
113
|
+
else
|
|
114
|
+
____LocalClient_isDE_6 = data[11]
|
|
115
|
+
end
|
|
116
|
+
____LocalClient_isHD_7 = ____LocalClient_isDE_6
|
|
91
117
|
end
|
|
92
|
-
return
|
|
93
|
-
impactOffsetZ =
|
|
94
|
-
launchOffsetX =
|
|
95
|
-
launchOffsetY =
|
|
96
|
-
launchOffsetZ =
|
|
97
|
-
launchVisualOffsetX =
|
|
98
|
-
launchVisualOffsetY =
|
|
118
|
+
return ____setmetatable_10({
|
|
119
|
+
impactOffsetZ = ____LocalClient_isHD_1,
|
|
120
|
+
launchOffsetX = ____data__3_8,
|
|
121
|
+
launchOffsetY = ____data__4_9,
|
|
122
|
+
launchOffsetZ = ____LocalClient_isHD_3,
|
|
123
|
+
launchVisualOffsetX = ____LocalClient_isHD_5,
|
|
124
|
+
launchVisualOffsetY = ____LocalClient_isHD_7
|
|
99
125
|
}, METATABLE)
|
|
100
126
|
end
|
|
101
127
|
),
|
|
@@ -13,6 +13,8 @@ local ____attributes = require("attributes")
|
|
|
13
13
|
local attribute = ____attributes.attribute
|
|
14
14
|
local ____linked_2Dset = require("utility.linked-set")
|
|
15
15
|
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
16
|
+
local ____math = require("math")
|
|
17
|
+
local ceil = ____math.ceil
|
|
16
18
|
local autoAttackFinishEvent = __TS__New(Event)
|
|
17
19
|
rawset(Unit, "autoAttackFinishEvent", autoAttackFinishEvent)
|
|
18
20
|
local units = __TS__New(LinkedSet)
|
|
@@ -20,25 +22,32 @@ local targetAttribute = attribute()
|
|
|
20
22
|
local impactDelayAttribute = attribute()
|
|
21
23
|
local passedTimeAttribute = attribute()
|
|
22
24
|
local instantOrderIds = luaSetOf(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
852086,
|
|
26
|
+
852100,
|
|
27
|
+
852090,
|
|
28
|
+
852177,
|
|
29
|
+
852002,
|
|
30
|
+
852003,
|
|
31
|
+
852004,
|
|
32
|
+
852005,
|
|
33
|
+
852006,
|
|
34
|
+
852007,
|
|
35
|
+
852087,
|
|
36
|
+
852091,
|
|
37
|
+
852178
|
|
36
38
|
)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
---
|
|
40
|
+
-- @internal For use by internal systems only.
|
|
41
|
+
____exports.resetAutoAttackTimer = function(unit)
|
|
42
|
+
if units:remove(unit) then
|
|
43
|
+
unit[targetAttribute] = nil
|
|
44
|
+
unit[impactDelayAttribute] = nil
|
|
45
|
+
unit[passedTimeAttribute] = nil
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
local function reset(unit, orderId)
|
|
49
|
+
if not (instantOrderIds[orderId] ~= nil) then
|
|
50
|
+
____exports.resetAutoAttackTimer(unit)
|
|
42
51
|
end
|
|
43
52
|
end
|
|
44
53
|
Unit.onImmediateOrder:addListener(reset)
|
|
@@ -55,7 +64,8 @@ local function invokeEvent(unit)
|
|
|
55
64
|
end
|
|
56
65
|
local function checkUnit(unit)
|
|
57
66
|
local passedTime = unit[passedTimeAttribute] + timerPeriod
|
|
58
|
-
|
|
67
|
+
local impactDelay = unit[impactDelayAttribute]
|
|
68
|
+
if passedTime >= impactDelay and ceil(passedTime / 0.02) >= ceil(impactDelay / 0.02) then
|
|
59
69
|
invokeEvent(unit)
|
|
60
70
|
else
|
|
61
71
|
unit[passedTimeAttribute] = passedTime
|
|
@@ -109,12 +109,13 @@ declare const enum UnitPropertyKey {
|
|
|
109
109
|
SYNC_ID = 100,
|
|
110
110
|
IS_PAUSED = 101,
|
|
111
111
|
STUN_COUNTER = 102,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
FORCE_STUN_COUNTER = 103,
|
|
113
|
+
DELAY_HEALTH_CHECKS_COUNTER = 104,
|
|
114
|
+
DELAY_HEALTH_CHECKS_HEALTH_BONUS = 105,
|
|
115
|
+
PREVENT_DEATH_HEALTH_BONUS = 106,
|
|
116
|
+
IS_TEAM_GLOW_HIDDEN = 107,
|
|
117
|
+
LAST_X = 108,
|
|
118
|
+
LAST_Y = 109
|
|
118
119
|
}
|
|
119
120
|
export type UnitSyncId = number & {
|
|
120
121
|
readonly __unitSyncId: unique symbol;
|
|
@@ -123,6 +124,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
123
124
|
readonly syncId: UnitSyncId;
|
|
124
125
|
private [UnitPropertyKey.IS_PAUSED]?;
|
|
125
126
|
private [UnitPropertyKey.STUN_COUNTER]?;
|
|
127
|
+
private [UnitPropertyKey.FORCE_STUN_COUNTER]?;
|
|
126
128
|
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
|
|
127
129
|
private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
|
|
128
130
|
private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
|
|
@@ -137,6 +139,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
137
139
|
private _fields?;
|
|
138
140
|
private getEvent;
|
|
139
141
|
constructor(handle: junit);
|
|
142
|
+
private saveData;
|
|
140
143
|
protected onDestroy(): HandleDestructor;
|
|
141
144
|
addAttackHandler(condition: AttackHandlerCondition, action: AttackHandlerAction): AttackHandler;
|
|
142
145
|
removeAttackHandler(handler: AttackHandler): boolean;
|
|
@@ -175,16 +178,10 @@ export declare class Unit extends Handle<junit> {
|
|
|
175
178
|
set xp(v: number);
|
|
176
179
|
get primaryAttribute(): UnitAttribute;
|
|
177
180
|
set primaryAttribute(primaryAttribute: UnitAttribute);
|
|
178
|
-
get strengthBase(): number;
|
|
179
|
-
set strengthBase(strengthBase: number);
|
|
180
181
|
get strengthBonus(): number;
|
|
181
182
|
get strength(): number;
|
|
182
|
-
get agilityBase(): number;
|
|
183
|
-
set agilityBase(agilityBase: number);
|
|
184
183
|
get agilityBonus(): number;
|
|
185
184
|
get agility(): number;
|
|
186
|
-
get intelligenceBase(): number;
|
|
187
|
-
set intelligenceBase(intelligenceBase: number);
|
|
188
185
|
get intelligenceBonus(): number;
|
|
189
186
|
get intelligence(): number;
|
|
190
187
|
get name(): string;
|
|
@@ -218,8 +215,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
218
215
|
set facing(v: number);
|
|
219
216
|
get speed(): number;
|
|
220
217
|
set speed(v: number);
|
|
221
|
-
get flyHeight(): number;
|
|
222
|
-
set flyHeight(v: number);
|
|
223
218
|
get x(): number;
|
|
224
219
|
set x(v: number);
|
|
225
220
|
get y(): number;
|
|
@@ -243,8 +238,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
243
238
|
get isInvulnerable(): boolean;
|
|
244
239
|
get vertexColor(): Color;
|
|
245
240
|
set vertexColor(v: Color);
|
|
246
|
-
get scale(): number;
|
|
247
|
-
set scale(v: number);
|
|
248
241
|
get timeScale(): number;
|
|
249
242
|
set timeScale(v: number);
|
|
250
243
|
get collisionSize(): number;
|
|
@@ -279,8 +272,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
279
272
|
getAbilityRemainingCooldown(abilityId: number): number;
|
|
280
273
|
startAbilityCooldown(abilityId: number, cooldown: number): void;
|
|
281
274
|
endAbilityCooldown(abilityId: number): void;
|
|
282
|
-
interruptMovement(): void;
|
|
283
|
-
interruptAttack(): void;
|
|
284
275
|
interruptCast(abilityId: number): void;
|
|
285
276
|
getDistanceTo(target: Unit | Vec2): number;
|
|
286
277
|
getCollisionDistanceTo(...target: [Unit] | [targetX: number, targetY: number]): number;
|
|
@@ -294,12 +285,13 @@ export declare class Unit extends Handle<junit> {
|
|
|
294
285
|
unpauseEx(): void;
|
|
295
286
|
incrementStunCounter(): void;
|
|
296
287
|
decrementStunCounter(): void;
|
|
288
|
+
incrementForceStunCounter(): void;
|
|
289
|
+
decrementForceStunCounter(): void;
|
|
297
290
|
set waygateActive(v: boolean);
|
|
298
291
|
get waygateActive(): boolean;
|
|
299
292
|
set waygateDestination(v: Vec2);
|
|
300
293
|
get waygateDestination(): Vec2;
|
|
301
294
|
get abilities(): ReadonlyArray<UnitAbility>;
|
|
302
|
-
get onUnitInRange(): Record<number, Event<[Unit]>>;
|
|
303
295
|
get onManaEqual(): Record<number, Event<[Unit, number]>>;
|
|
304
296
|
get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
|
|
305
297
|
get targetAcquiredEvent(): Event;
|
|
@@ -318,6 +310,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
318
310
|
static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
|
|
319
311
|
static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
|
|
320
312
|
static getSelectionOf(player: Player, target?: Unit[]): Unit[];
|
|
313
|
+
static readonly levelChangedEvent: UnitTriggerEvent<[]>;
|
|
321
314
|
static readonly deathEvent: UnitTriggerEvent<[Unit]>;
|
|
322
315
|
static readonly onDecay: UnitTriggerEvent<[]>;
|
|
323
316
|
static readonly onResurrect: InitializingEvent<[Unit], void>;
|
|
@@ -328,7 +321,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
328
321
|
static readonly constructionStartEvent: UnitTriggerEvent<[]>;
|
|
329
322
|
static readonly onUpgradeFinish: UnitTriggerEvent<[]>;
|
|
330
323
|
static readonly onSpellEffect: EventDispatcher<[Unit, number], [Unit]>;
|
|
331
|
-
static readonly onTargetCast: EventDispatcher<[Unit, number,
|
|
324
|
+
static readonly onTargetCast: EventDispatcher<[Unit, number, Destructable | Unit | Item], [Unit, Destructable | Unit | Item]>;
|
|
332
325
|
static readonly onCastPrepare: AbilityEventDispatcher<[]>;
|
|
333
326
|
static readonly onCast: AbilityEventDispatcher<[]>;
|
|
334
327
|
static readonly onPointCastPrepare: AbilityEventDispatcher<[number, number]>;
|
|
@@ -355,15 +348,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
355
348
|
static itemDroppedEvent: UnitTriggerEvent<[Item]>;
|
|
356
349
|
static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
|
|
357
350
|
static itemUsedEvent: UnitTriggerEvent<[Item]>;
|
|
358
|
-
static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
|
|
359
351
|
static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
|
|
360
|
-
static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
|
|
361
|
-
static get itemMoveOrderEvent(): Event<[
|
|
362
|
-
unit: Unit,
|
|
363
|
-
item: Item,
|
|
364
|
-
slotFrom: 0 | 1 | 2 | 3 | 4 | 5,
|
|
365
|
-
slotTo: 0 | 1 | 2 | 3 | 4 | 5
|
|
366
|
-
]>;
|
|
367
352
|
static get onCreate(): EventDispatcher<[Unit], [Unit]>;
|
|
368
353
|
static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
|
|
369
354
|
getField(field: junitintegerfield | junitrealfield): number;
|
|
@@ -375,5 +360,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
375
360
|
setField(field: junitstringfield, value: string): boolean;
|
|
376
361
|
toString(): string;
|
|
377
362
|
static getBySyncId(syncId: UnitSyncId): Unit | undefined;
|
|
363
|
+
static synchronize: (player: Player, object: Unit | undefined) => Promise<Unit | undefined>;
|
|
378
364
|
}
|
|
379
365
|
export {};
|