warscript 0.0.1-dev.3eed609 → 0.0.1-dev.3f0a5ea
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 +16 -2
- package/core/types/frame.lua +128 -67
- 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/missile.lua +8 -7
- package/core/types/player.d.ts +2 -1
- package/core/types/player.lua +18 -13
- 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 +7 -2
- package/core/types/tileCell.lua +11 -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 +706 -7
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +69 -11
- 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.d.ts +14 -0
- package/engine/behaviour/ability/emulate-impact.lua +79 -5
- package/engine/behaviour/ability/instant-impact.d.ts +12 -1
- package/engine/behaviour/ability/instant-impact.lua +17 -2
- 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 +19 -6
- package/engine/behaviour/ability.lua +120 -9
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +14 -3
- package/engine/buff.d.ts +103 -55
- package/engine/buff.lua +486 -270
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +7 -0
- package/engine/internal/ability.lua +65 -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/object-data/returned-melee-damage-factor.d.ts +2 -0
- package/engine/internal/object-data/returned-melee-damage-factor.lua +21 -0
- package/engine/internal/unit/ability.lua +16 -0
- 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 +17 -0
- package/engine/internal/unit/bonus.lua +113 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/fly-height.lua +3 -3
- 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/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +73 -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 +96 -68
- package/engine/internal/unit-missile-launch.lua +25 -18
- package/engine/internal/unit.d.ts +4 -19
- package/engine/internal/unit.lua +132 -221
- package/engine/lightning.lua +4 -4
- package/engine/local-client.d.ts +27 -1
- package/engine/local-client.lua +298 -58
- 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/barrage.d.ts +12 -0
- package/engine/object-data/entry/ability-type/barrage.lua +52 -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.lua +2 -2
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +2 -2
- package/engine/object-data/entry/ability-type/channel.lua +3 -3
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/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 +35 -8
- package/engine/object-data/entry/ability-type.lua +299 -11
- package/engine/object-data/entry/buff-type/applicable.lua +122 -111
- 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 +57 -2
- package/engine/object-data/entry/unit-type.lua +412 -64
- 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 +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +177 -119
- 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 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/text-tag.d.ts +17 -1
- package/engine/text-tag.lua +77 -40
- package/engine/unit.d.ts +8 -1
- package/engine/unit.lua +8 -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/arrays.d.ts +7 -1
- package/utility/arrays.lua +17 -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
|
@@ -7,29 +7,77 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
7
7
|
local ____exports = {}
|
|
8
8
|
local ____behavior = require("engine.behavior")
|
|
9
9
|
local Behavior = ____behavior.Behavior
|
|
10
|
-
local ____unit = require("engine.unit")
|
|
10
|
+
local ____unit = require("engine.internal.unit")
|
|
11
11
|
local Unit = ____unit.Unit
|
|
12
|
+
local UnitClassification = ____unit.UnitClassification
|
|
13
|
+
require("engine.internal.unit.ability")
|
|
14
|
+
require("engine.internal.unit+ability")
|
|
12
15
|
local ____ability = require("engine.internal.ability")
|
|
13
16
|
local Ability = ____ability.Ability
|
|
14
17
|
local ____effect = require("core.types.effect")
|
|
15
18
|
local Effect = ____effect.Effect
|
|
16
19
|
local ____ability = require("engine.standard.fields.ability")
|
|
17
20
|
local AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
21
|
+
local CASTER_EFFECT_COUNT_ABILITY_INTEGER_FIELD = ____ability.CASTER_EFFECT_COUNT_ABILITY_INTEGER_FIELD
|
|
18
22
|
local CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
19
23
|
local CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
24
|
+
local CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = ____ability.CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD
|
|
25
|
+
local DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD
|
|
26
|
+
local DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD
|
|
20
27
|
local EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
21
28
|
local MISSILE_ARC_ABILITY_FLOAT_FIELD = ____ability.MISSILE_ARC_ABILITY_FLOAT_FIELD
|
|
22
29
|
local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
23
30
|
local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_INTEGER_FIELD
|
|
24
31
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
25
32
|
local SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
33
|
+
local TARGET_EFFECT_COUNT_ABILITY_INTEGER_FIELD = ____ability.TARGET_EFFECT_COUNT_ABILITY_INTEGER_FIELD
|
|
34
|
+
local TARGET_EFFECT_FIFTH_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_FIFTH_ATTACHMENT_POINT_STRING_FIELD
|
|
26
35
|
local TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
36
|
+
local TARGET_EFFECT_FOURTH_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_FOURTH_ATTACHMENT_POINT_STRING_FIELD
|
|
27
37
|
local TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
38
|
+
local TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD
|
|
39
|
+
local TARGET_EFFECT_SIXTH_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_SIXTH_ATTACHMENT_POINT_STRING_FIELD
|
|
40
|
+
local TARGET_EFFECT_THIRD_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_THIRD_ATTACHMENT_POINT_STRING_FIELD
|
|
28
41
|
local ____ability = require("engine.object-field.ability")
|
|
29
42
|
local AbilityField = ____ability.AbilityField
|
|
30
43
|
local AbilityLevelField = ____ability.AbilityLevelField
|
|
31
44
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
45
|
+
local ____missile = require("core.types.missile")
|
|
46
|
+
local Missile = ____missile.Missile
|
|
47
|
+
local CASTER_EFFECT_ATTACHMENT_POINT_STRING_FIELDS = {CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD, CASTER_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD}
|
|
48
|
+
local TARGET_EFFECT_ATTACHMENT_POINT_STRING_FIELDS = {
|
|
49
|
+
TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD,
|
|
50
|
+
TARGET_EFFECT_SECOND_ATTACHMENT_POINT_STRING_FIELD,
|
|
51
|
+
TARGET_EFFECT_THIRD_ATTACHMENT_POINT_STRING_FIELD,
|
|
52
|
+
TARGET_EFFECT_FOURTH_ATTACHMENT_POINT_STRING_FIELD,
|
|
53
|
+
TARGET_EFFECT_FIFTH_ATTACHMENT_POINT_STRING_FIELD,
|
|
54
|
+
TARGET_EFFECT_SIXTH_ATTACHMENT_POINT_STRING_FIELD
|
|
55
|
+
}
|
|
56
|
+
--- Flashes every preset of an effect preset list (caster/target effects): each model at
|
|
57
|
+
-- its own attachment point. The effect count field limits the list; at least the first
|
|
58
|
+
-- model is always flashed, as abilities without the count set expect.
|
|
59
|
+
local function flashEffectPresets(ability, modelPathsField, attachmentPointFields, effectCountField, widget, ...)
|
|
60
|
+
local count = math.min(
|
|
61
|
+
math.max(
|
|
62
|
+
effectCountField:getValue(ability),
|
|
63
|
+
1
|
|
64
|
+
),
|
|
65
|
+
#attachmentPointFields
|
|
66
|
+
)
|
|
67
|
+
for i = 0, count - 1 do
|
|
68
|
+
local modelPath = modelPathsField:getValue(ability, i)
|
|
69
|
+
if modelPath ~= "" then
|
|
70
|
+
local attachmentPoint = attachmentPointFields[i + 1]:getValue(ability)
|
|
71
|
+
Effect:flash(modelPath, widget, attachmentPoint ~= "" and attachmentPoint or "origin", ...)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
32
75
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
76
|
+
local function invokeOnMissileArrival(_missile, success, abilityBehavior, ...)
|
|
77
|
+
if success then
|
|
78
|
+
abilityBehavior:onMissileArrival(...)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
33
81
|
local exclusiveOnImpactHandlerAbilityBehaviorByAbility = setmetatable({}, {__mode = "k"})
|
|
34
82
|
local function createUnitEventListener(key)
|
|
35
83
|
return function(unit, ability, ...)
|
|
@@ -105,21 +153,31 @@ end
|
|
|
105
153
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
106
154
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
107
155
|
end
|
|
156
|
+
function AbilityBehavior.prototype.getDuration(self, widget)
|
|
157
|
+
if __TS__InstanceOf(widget, Unit) then
|
|
158
|
+
if widget.isHero or widget:getField(UNIT_IF_LEVEL) >= 6 or widget:hasClassification(UnitClassification.RESISTANT) then
|
|
159
|
+
return self:resolveCurrentAbilityDependentValue(DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
return self:resolveCurrentAbilityDependentValue(DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD)
|
|
163
|
+
end
|
|
108
164
|
function AbilityBehavior.prototype.flashCasterEffect(self, widget, ...)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
165
|
+
flashEffectPresets(
|
|
166
|
+
self.ability,
|
|
167
|
+
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD,
|
|
168
|
+
CASTER_EFFECT_ATTACHMENT_POINT_STRING_FIELDS,
|
|
169
|
+
CASTER_EFFECT_COUNT_ABILITY_INTEGER_FIELD,
|
|
112
170
|
widget,
|
|
113
|
-
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
114
171
|
...
|
|
115
172
|
)
|
|
116
173
|
end
|
|
117
174
|
function AbilityBehavior.prototype.flashTargetEffect(self, widget, ...)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
175
|
+
flashEffectPresets(
|
|
176
|
+
self.ability,
|
|
177
|
+
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD,
|
|
178
|
+
TARGET_EFFECT_ATTACHMENT_POINT_STRING_FIELDS,
|
|
179
|
+
TARGET_EFFECT_COUNT_ABILITY_INTEGER_FIELD,
|
|
121
180
|
widget,
|
|
122
|
-
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
123
181
|
...
|
|
124
182
|
)
|
|
125
183
|
end
|
|
@@ -159,6 +217,28 @@ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrParame
|
|
|
159
217
|
)
|
|
160
218
|
end
|
|
161
219
|
end
|
|
220
|
+
function AbilityBehavior.prototype.launchMissile(self, source, xOrWidget, yOrParameter, ...)
|
|
221
|
+
if type(xOrWidget) ~= "number" then
|
|
222
|
+
Missile:launch(
|
|
223
|
+
self.missileLaunchConfig,
|
|
224
|
+
source,
|
|
225
|
+
xOrWidget,
|
|
226
|
+
invokeOnMissileArrival,
|
|
227
|
+
self,
|
|
228
|
+
yOrParameter,
|
|
229
|
+
...
|
|
230
|
+
)
|
|
231
|
+
else
|
|
232
|
+
Missile:launch(
|
|
233
|
+
self.missileLaunchConfig,
|
|
234
|
+
source,
|
|
235
|
+
vec2(xOrWidget, yOrParameter),
|
|
236
|
+
invokeOnMissileArrival,
|
|
237
|
+
self,
|
|
238
|
+
...
|
|
239
|
+
)
|
|
240
|
+
end
|
|
241
|
+
end
|
|
162
242
|
function AbilityBehavior.prototype.onCreate(self)
|
|
163
243
|
end
|
|
164
244
|
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
@@ -173,6 +253,18 @@ function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
|
173
253
|
end
|
|
174
254
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
175
255
|
end
|
|
256
|
+
function AbilityBehavior.prototype.onWidgetTargetCastingStart(self, caster, target)
|
|
257
|
+
end
|
|
258
|
+
function AbilityBehavior.prototype.onUnitTargetCastingStart(self, caster, target)
|
|
259
|
+
end
|
|
260
|
+
function AbilityBehavior.prototype.onItemTargetCastingStart(self, caster, target)
|
|
261
|
+
end
|
|
262
|
+
function AbilityBehavior.prototype.onDestructibleTargetCastingStart(self, caster, target)
|
|
263
|
+
end
|
|
264
|
+
function AbilityBehavior.prototype.onPointTargetCastingStart(self, caster, x, y)
|
|
265
|
+
end
|
|
266
|
+
function AbilityBehavior.prototype.onNoTargetCastingStart(self, caster)
|
|
267
|
+
end
|
|
176
268
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
177
269
|
end
|
|
178
270
|
function AbilityBehavior.prototype.onChannelingStart(self, caster)
|
|
@@ -257,6 +349,12 @@ __TS__SetDescriptor(
|
|
|
257
349
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
258
350
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
259
351
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
352
|
+
Unit.abilityWidgetTargetCastingStartEvent:addListener(createUnitEventListener("onWidgetTargetCastingStart"))
|
|
353
|
+
Unit.abilityUnitTargetCastingStartEvent:addListener(createUnitEventListener("onUnitTargetCastingStart"))
|
|
354
|
+
Unit.abilityItemTargetCastingStartEvent:addListener(createUnitEventListener("onItemTargetCastingStart"))
|
|
355
|
+
Unit.abilityDestructibleTargetCastingStartEvent:addListener(createUnitEventListener("onDestructibleTargetCastingStart"))
|
|
356
|
+
Unit.abilityPointTargetCastingStartEvent:addListener(createUnitEventListener("onPointTargetCastingStart"))
|
|
357
|
+
Unit.abilityNoTargetCastingStartEvent:addListener(createUnitEventListener("onNoTargetCastingStart"))
|
|
260
358
|
Unit.abilityCastingFinishEvent:addListener(createUnitEventListener("onCastingFinish"))
|
|
261
359
|
Unit.abilityChannelingStartEvent:addListener(createUnitEventListener("onChannelingStart"))
|
|
262
360
|
Unit.abilityWidgetTargetChannelingStartEvent:addListener(createUnitEventListener("onWidgetTargetChannelingStart"))
|
|
@@ -287,6 +385,19 @@ end)
|
|
|
287
385
|
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
288
386
|
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
289
387
|
end)
|
|
388
|
+
local function checkBehaviorOnLevelChange(behavior)
|
|
389
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
390
|
+
if subscribedValues ~= nil then
|
|
391
|
+
for value in pairs(subscribedValues) do
|
|
392
|
+
if __TS__InstanceOf(value, AbilityLevelField) then
|
|
393
|
+
behavior:onValueChange(value)
|
|
394
|
+
end
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
end
|
|
398
|
+
Unit.abilityLevelChangedEvent:addListener(function(_, ability)
|
|
399
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnLevelChange)
|
|
400
|
+
end)
|
|
290
401
|
Ability.onCreate:addListener(function(ability)
|
|
291
402
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
292
403
|
if createBehaviorFunctions ~= nil then
|
|
@@ -7,7 +7,7 @@ import { Destructor } from "../../../destroyable";
|
|
|
7
7
|
import { BehaviorPriority } from "../../behavior";
|
|
8
8
|
export type StunImmunityUnitBehaviorParameters = {
|
|
9
9
|
readonly priority?: BehaviorPriority;
|
|
10
|
-
buffTypeIds?:
|
|
10
|
+
buffTypeIds?: readonly BuffTypeId[];
|
|
11
11
|
textTagPreset?: TextTagPreset;
|
|
12
12
|
textTagText?: string;
|
|
13
13
|
additionalAction?: (this: void, unit: Unit) => void;
|
|
@@ -8,14 +8,15 @@ local UnitBehavior = ____unit.UnitBehavior
|
|
|
8
8
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
9
9
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
10
10
|
local ____arrays = require("utility.arrays")
|
|
11
|
-
local
|
|
11
|
+
local distinct = ____arrays.distinct
|
|
12
|
+
local flatMap = ____arrays.flatMap
|
|
12
13
|
local map = ____arrays.map
|
|
13
14
|
local ____text_2Dtag = require("engine.text-tag")
|
|
14
15
|
local TextTag = ____text_2Dtag.TextTag
|
|
15
16
|
local ____timer = require("core.types.timer")
|
|
16
17
|
local Timer = ____timer.Timer
|
|
17
18
|
local DEFAULT_BUFF_TYPE_IDS = postcompile(function()
|
|
18
|
-
return
|
|
19
|
+
return distinct(flatMap(
|
|
19
20
|
AbilityType:getAllByBaseIds(map({
|
|
20
21
|
"AHtb",
|
|
21
22
|
"AHbh",
|
|
@@ -41,11 +42,11 @@ local DEFAULT_BUFF_TYPE_IDS = postcompile(function()
|
|
|
41
42
|
"ACcb"
|
|
42
43
|
}, fourCC)),
|
|
43
44
|
function(abilityType) return __TS__ArrayFlat(abilityType.buffTypeIds) end
|
|
44
|
-
)
|
|
45
|
+
))
|
|
45
46
|
end)
|
|
46
47
|
local function process(behavior)
|
|
47
48
|
local hasRemovedBuffs = false
|
|
48
|
-
for buffTypeId in
|
|
49
|
+
for ____, buffTypeId in ipairs(behavior.parameters.buffTypeIds or DEFAULT_BUFF_TYPE_IDS) do
|
|
49
50
|
hasRemovedBuffs = hasRemovedBuffs or behavior.unit:removeBuff(buffTypeId)
|
|
50
51
|
end
|
|
51
52
|
if hasRemovedBuffs then
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Behavior, BehaviorPriority } from "../behavior";
|
|
3
3
|
import { Ability } from "../internal/ability";
|
|
4
4
|
import { DamageEvent, DamagingEvent, Unit } from "../internal/unit";
|
|
5
|
+
import "../internal/unit/equipment-inventory";
|
|
5
6
|
import "../internal/unit+ability";
|
|
6
7
|
import "../internal/unit-missile-launch";
|
|
7
8
|
import { Item } from "../internal/item";
|
|
@@ -8,6 +8,7 @@ local ____behavior = require("engine.behavior")
|
|
|
8
8
|
local Behavior = ____behavior.Behavior
|
|
9
9
|
local ____unit = require("engine.internal.unit")
|
|
10
10
|
local Unit = ____unit.Unit
|
|
11
|
+
require("engine.internal.unit.equipment-inventory")
|
|
11
12
|
require("engine.internal.unit+ability")
|
|
12
13
|
require("engine.internal.unit-missile-launch")
|
|
13
14
|
local ____linked_2Dset = require("utility.linked-set")
|
|
@@ -21,6 +22,8 @@ local ____bonus = require("engine.internal.unit.bonus")
|
|
|
21
22
|
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
22
23
|
local getUnitBonus = ____bonus.getUnitBonus
|
|
23
24
|
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
25
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
26
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
24
27
|
local safeCall = warpack.safeCall
|
|
25
28
|
local createBehaviorFunctionsByUnitTypeId = {}
|
|
26
29
|
local behaviorsByOwningPlayerEvent = {}
|
|
@@ -79,16 +82,24 @@ function UnitBehavior.prototype.onDestroy(self)
|
|
|
79
82
|
end
|
|
80
83
|
function UnitBehavior.prototype.getUnitBonus(self, bonusType)
|
|
81
84
|
local ____opt_10 = self._bonusIdByBonusType
|
|
82
|
-
local bonusId = ____opt_10 and ____opt_10
|
|
85
|
+
local bonusId = ____opt_10 and ____opt_10:get(bonusType)
|
|
83
86
|
return bonusId == nil and 0 or getUnitBonus(self.object, bonusType, bonusId)
|
|
84
87
|
end
|
|
85
88
|
function UnitBehavior.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
86
89
|
local bonusIdByBonusType = self._bonusIdByBonusType
|
|
87
90
|
if bonusIdByBonusType == nil then
|
|
88
|
-
bonusIdByBonusType =
|
|
91
|
+
bonusIdByBonusType = __TS__New(LinkedMap)
|
|
89
92
|
self._bonusIdByBonusType = bonusIdByBonusType
|
|
90
93
|
end
|
|
91
|
-
bonusIdByBonusType
|
|
94
|
+
bonusIdByBonusType:put(
|
|
95
|
+
bonusType,
|
|
96
|
+
addOrUpdateOrRemoveUnitBonus(
|
|
97
|
+
self.object,
|
|
98
|
+
bonusType,
|
|
99
|
+
bonusIdByBonusType:get(bonusType),
|
|
100
|
+
value
|
|
101
|
+
)
|
|
102
|
+
)
|
|
92
103
|
end
|
|
93
104
|
function UnitBehavior.prototype.registerOwningPlayerEvent(self, event, extractPlayer, listener)
|
|
94
105
|
local listenerByBehavior = getOrPut(listenerByBehaviorByOwningPlayerEvent, event, mutableLuaMap)
|
package/engine/buff.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type { Widget } from "../core/types/widget";
|
|
|
14
14
|
import { Destructor } from "../destroyable";
|
|
15
15
|
import { Event } from "../event";
|
|
16
16
|
import { AbilityBehavior } from "./behaviour/ability";
|
|
17
|
+
import { SoundPresetId } from "./object-data/entry/sound-preset";
|
|
17
18
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
18
19
|
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
19
20
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
@@ -23,6 +24,13 @@ export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
|
|
|
23
24
|
export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
|
|
24
25
|
export declare class BuffUniqueGroup {
|
|
25
26
|
}
|
|
27
|
+
export type BuffAbilityParameters = {
|
|
28
|
+
readonly fields?: [AbilityNumberField | AbilityNumberLevelField, NumberParameterValueType][];
|
|
29
|
+
/** Default `true`. */
|
|
30
|
+
readonly isButtonVisible?: boolean;
|
|
31
|
+
/** Default is the level of the source ability or 0 if it is absent. */
|
|
32
|
+
readonly level?: number;
|
|
33
|
+
};
|
|
26
34
|
export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
27
35
|
spellStealPriority?: number;
|
|
28
36
|
level?: number;
|
|
@@ -30,14 +38,7 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
30
38
|
learnLevelMinimum?: number;
|
|
31
39
|
source?: Unit;
|
|
32
40
|
behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
|
|
33
|
-
abilityTypeIds?: Record<AbilityTypeId,
|
|
34
|
-
[numberField: (AbilityNumberField | AbilityNumberLevelField) & symbol]: NumberParameterValueType;
|
|
35
|
-
} & {
|
|
36
|
-
/** Default `true`. */
|
|
37
|
-
readonly isButtonVisible?: boolean;
|
|
38
|
-
/** Default is the level of the source ability or 0 if it is absent. */
|
|
39
|
-
readonly level?: number;
|
|
40
|
-
}>;
|
|
41
|
+
abilityTypeIds?: Partial<Record<AbilityTypeId, BuffAbilityParameters>>;
|
|
41
42
|
damageUponDeathAllowedTargetCombatClassifications?: CombatClassifications | AbilityCombatClassificationsLevelField;
|
|
42
43
|
damageUponDeath?: NumberParameterValueType;
|
|
43
44
|
damageUponDeathRange?: NumberParameterValueType;
|
|
@@ -54,13 +55,17 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
54
55
|
damageIncrease?: NumberParameterValueType;
|
|
55
56
|
damageIncreaseFactor?: NumberParameterValueType;
|
|
56
57
|
armorIncrease?: NumberParameterValueType;
|
|
57
|
-
|
|
58
|
+
maxHealthIncrease?: NumberParameterValueType;
|
|
59
|
+
maxManaIncrease?: NumberParameterValueType;
|
|
58
60
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
59
61
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
62
|
+
manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
|
|
60
63
|
evasionProbability?: NumberParameterValueType;
|
|
61
64
|
missProbability?: NumberParameterValueType;
|
|
62
65
|
damageFactor?: NumberParameterValueType;
|
|
63
66
|
receivedDamageFactor?: NumberParameterValueType;
|
|
67
|
+
/** The factor of melee attack damage returned to the attacker, as Spiked Carapace. */
|
|
68
|
+
returnedMeleeDamageFactor?: NumberParameterValueType;
|
|
64
69
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
65
70
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
66
71
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
@@ -76,12 +81,17 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
76
81
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
77
82
|
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
78
83
|
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
84
|
+
absorbedDamageFactor?: NumberParameterValueType;
|
|
85
|
+
maximumDamageAbsorbed?: NumberParameterValueType;
|
|
86
|
+
destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
|
|
79
87
|
damageOnExpiration?: NumberParameterValueType;
|
|
80
88
|
healingOnExpiration?: NumberParameterValueType;
|
|
81
89
|
killsOnExpiration?: BooleanParameterValueType;
|
|
82
90
|
explodesOnExpiration?: BooleanParameterValueType;
|
|
83
91
|
abilityCooldownFactor?: NumberParameterValueType;
|
|
84
92
|
uniqueGroup?: BuffUniqueGroup;
|
|
93
|
+
/** Played on the unit whenever the buff is destroyed, whatever the reason. */
|
|
94
|
+
destructionSoundPresetId?: SoundPresetId;
|
|
85
95
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
86
96
|
declare const enum BuffPropertyKey {
|
|
87
97
|
STATE = 100,
|
|
@@ -89,52 +99,57 @@ declare const enum BuffPropertyKey {
|
|
|
89
99
|
SOURCE = 102,
|
|
90
100
|
DURATION = 103,
|
|
91
101
|
UNIQUE_GROUP = 104,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
102
|
+
DESTRUCTION_SOUND_PRESET_ID = 105,
|
|
103
|
+
EFFECT_MODEL_PATH = 106,
|
|
104
|
+
SPECIAL_EFFECT_MODEL_PATH = 107,
|
|
105
|
+
DURATION_INCREASE_ON_AUTO_ATTACK = 108,
|
|
106
|
+
MAXIMUM_DURATION = 109,
|
|
107
|
+
MAXIMUM_REMAINING_DURATION = 110,
|
|
108
|
+
DAMAGE_OVER_DURATION = 111,
|
|
109
|
+
DAMAGE_PER_INTERVAL = 112,
|
|
110
|
+
DAMAGE_INTERVAL = 113,
|
|
111
|
+
REMAINING_DAMAGE_OVER_DURATION = 114,
|
|
112
|
+
DAMAGE_INTERVAL_TIMER = 115,
|
|
113
|
+
HEALING_OVER_DURATION = 116,
|
|
114
|
+
HEALING_PER_INTERVAL = 117,
|
|
115
|
+
HEALING_INTERVAL = 118,
|
|
116
|
+
REMAINING_HEALING_OVER_DURATION = 119,
|
|
117
|
+
HEALING_INTERVAL_TIMER = 120,
|
|
118
|
+
DAMAGE_ON_EXPIRATION = 121,
|
|
119
|
+
HEALING_ON_EXPIRATION = 122,
|
|
120
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 123,
|
|
121
|
+
DAMAGE_UPON_DEATH = 124,
|
|
122
|
+
DAMAGE_UPON_DEATH_RANGE = 125,
|
|
123
|
+
MEDIUM_DAMAGE_UPON_DEATH = 126,
|
|
124
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 127,
|
|
125
|
+
SMALL_DAMAGE_UPON_DEATH = 128,
|
|
126
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 129,
|
|
127
|
+
AUTO_ATTACK_COUNT = 130,
|
|
128
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 131,
|
|
129
|
+
DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
130
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 133,
|
|
131
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
132
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 135,
|
|
133
|
+
ABSORBED_DAMAGE_FACTOR = 136,
|
|
134
|
+
MAXIMUM_DAMAGE_ABSORBED = 137,
|
|
135
|
+
DAMAGE_ABSORBED = 138,
|
|
136
|
+
DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 139,
|
|
137
|
+
TURNS_INTO_GHOST = 140,
|
|
138
|
+
STUNS = 141,
|
|
139
|
+
IGNORES_STUN_IMMUNITY = 142,
|
|
140
|
+
DISABLES_AUTO_ATTACK = 143,
|
|
141
|
+
PROVIDES_INVULNERABILITY = 144,
|
|
142
|
+
KILLS_ON_EXPIRATION = 145,
|
|
143
|
+
EXPLODES_ON_EXPIRATION = 146,
|
|
144
|
+
MISS_PROBABILITY = 147,
|
|
145
|
+
ABILITY_COOLDOWN_FACTOR = 148,
|
|
146
|
+
ABILITY_COOLDOWN_MODIFIER = 149
|
|
132
147
|
}
|
|
133
148
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
134
149
|
LEAST_DURATION = 0
|
|
135
150
|
}
|
|
136
151
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
137
|
-
export type BuffConstructorParameters<
|
|
152
|
+
export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
|
|
138
153
|
...typeId: [ApplicableBuffTypeId] | [
|
|
139
154
|
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
140
155
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
@@ -144,8 +159,10 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
|
|
|
144
159
|
...abilityOrParameters: [
|
|
145
160
|
ability?: Ability | AbilityBehavior,
|
|
146
161
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
147
|
-
] | [
|
|
148
|
-
|
|
162
|
+
] | [
|
|
163
|
+
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
164
|
+
]
|
|
165
|
+
] : never;
|
|
149
166
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
150
167
|
private _unit;
|
|
151
168
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
@@ -154,6 +171,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
154
171
|
private [BuffPropertyKey.SOURCE]?;
|
|
155
172
|
private [BuffPropertyKey.DURATION];
|
|
156
173
|
private [BuffPropertyKey.UNIQUE_GROUP]?;
|
|
174
|
+
private [BuffPropertyKey.DESTRUCTION_SOUND_PRESET_ID]?;
|
|
157
175
|
private [BuffPropertyKey.EFFECT_MODEL_PATH];
|
|
158
176
|
private [BuffPropertyKey.SPECIAL_EFFECT_MODEL_PATH];
|
|
159
177
|
private [BuffPropertyKey.DURATION_INCREASE_ON_AUTO_ATTACK]?;
|
|
@@ -184,6 +202,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
184
202
|
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
185
203
|
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
186
204
|
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
205
|
+
private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
|
|
206
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
|
|
207
|
+
private [BuffPropertyKey.DAMAGE_ABSORBED]?;
|
|
208
|
+
private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
|
|
187
209
|
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
188
210
|
private [BuffPropertyKey.STUNS]?;
|
|
189
211
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
@@ -198,10 +220,11 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
198
220
|
readonly typeId: ApplicableBuffTypeId;
|
|
199
221
|
readonly polarity: BuffPolarity;
|
|
200
222
|
readonly resistanceType: BuffResistanceType;
|
|
201
|
-
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any :
|
|
223
|
+
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
|
|
202
224
|
[K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
|
|
203
225
|
};
|
|
204
226
|
private readonly handle;
|
|
227
|
+
readonly previousBuff?: Buff;
|
|
205
228
|
private _timer?;
|
|
206
229
|
private readonly _level?;
|
|
207
230
|
private readonly _spellStealPriority?;
|
|
@@ -209,7 +232,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
209
232
|
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
210
233
|
private readonly _abilityTypeIds?;
|
|
211
234
|
private _behaviors?;
|
|
212
|
-
constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters
|
|
235
|
+
constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
|
|
213
236
|
get level(): number;
|
|
214
237
|
get remainingDamageOverDuration(): number;
|
|
215
238
|
set remainingDamageOverDuration(remainingDamageOverDuration: number);
|
|
@@ -235,8 +258,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
235
258
|
set damageFactor(damageFactor: number);
|
|
236
259
|
get receivedDamageFactor(): number;
|
|
237
260
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
261
|
+
get returnedMeleeDamageFactor(): number;
|
|
262
|
+
set returnedMeleeDamageFactor(returnedMeleeDamageFactor: number);
|
|
238
263
|
get armorIncrease(): number;
|
|
239
264
|
set armorIncrease(armorIncrease: number);
|
|
265
|
+
get maxHealthIncrease(): number;
|
|
266
|
+
set maxHealthIncrease(maxHealthIncrease: number);
|
|
267
|
+
get maxManaIncrease(): number;
|
|
268
|
+
set maxManaIncrease(maxManaIncrease: number);
|
|
240
269
|
get turnsIntoGhost(): boolean;
|
|
241
270
|
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
242
271
|
get stuns(): boolean;
|
|
@@ -265,9 +294,19 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
265
294
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
266
295
|
get evasionProbability(): number;
|
|
267
296
|
set evasionProbability(evasionProbability: number);
|
|
297
|
+
get manaRegenerationRateIncreaseFactor(): number;
|
|
298
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
|
|
268
299
|
get duration(): number;
|
|
300
|
+
set duration(duration: number);
|
|
269
301
|
get remainingDuration(): number;
|
|
270
302
|
set remainingDuration(remainingDuration: number);
|
|
303
|
+
get absorbedDamageFactor(): number;
|
|
304
|
+
set absorbedDamageFactor(absorbedDamageFactor: number);
|
|
305
|
+
get maximumDamageAbsorbed(): number;
|
|
306
|
+
set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
|
|
307
|
+
get damageAbsorbed(): number;
|
|
308
|
+
get destroysOnMaximumDamageAbsorbed(): boolean;
|
|
309
|
+
set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
|
|
271
310
|
get abilityCooldownFactor(): number;
|
|
272
311
|
set abilityCooldownFactor(abilityCooldownFactor: number);
|
|
273
312
|
onAbilityGained(ability: Ability): void;
|
|
@@ -276,11 +315,20 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
276
315
|
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
277
316
|
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
278
317
|
]): void;
|
|
279
|
-
flashSpecialEffect(...parameters: [
|
|
318
|
+
flashSpecialEffect(...parameters: [
|
|
319
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
320
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
321
|
+
]): void;
|
|
322
|
+
private flash;
|
|
323
|
+
expire(): void;
|
|
324
|
+
/** Dispels this buff, invoking onDispel before removing it. */
|
|
325
|
+
dispel(source?: Unit): void;
|
|
280
326
|
protected onCreate(): void;
|
|
281
327
|
protected onDestroy(): Destructor;
|
|
282
328
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
283
329
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
330
|
+
/** Called for dispelling, never for a direct destroy() or replacement. */
|
|
331
|
+
onDispel(source: Unit | undefined): void;
|
|
284
332
|
onExpiration(): void;
|
|
285
333
|
onDeath(source: Unit | undefined): void;
|
|
286
334
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|