warscript 0.0.1-dev.1427c55 → 0.0.1-dev.148c073
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/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +5 -1
- package/core/types/effect.lua +89 -14
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +94 -24
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +2 -2
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability.d.ts +16 -3
- package/engine/behaviour/ability.lua +105 -34
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +56 -41
- package/engine/buff.lua +295 -228
- package/engine/internal/ability.d.ts +13 -2
- package/engine/internal/ability.lua +77 -4
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/unit/ability.d.ts +10 -1
- package/engine/internal/unit/ability.lua +36 -0
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/item.lua +6 -12
- package/engine/internal/unit.d.ts +9 -2
- package/engine/internal/unit.lua +71 -15
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +8 -6
- package/engine/object-data/entry/ability-type.lua +62 -27
- package/engine/object-data/entry/buff-type/applicable.lua +13 -37
- package/engine/object-data/entry/buff-type.d.ts +1 -1
- package/engine/object-data/entry/buff-type.lua +2 -2
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +3 -1
- package/engine/object-data/entry/item-type.lua +15 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +8 -1
- package/engine/object-data/entry/unit-type.lua +61 -8
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +9 -3
- package/engine/object-field/ability.lua +3 -0
- package/engine/object-field.d.ts +2 -2
- package/engine/object-field.lua +4 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/reflection.lua +11 -7
|
@@ -5,6 +5,7 @@ import { Unit } from "../../internal/unit";
|
|
|
5
5
|
import { AbilityDependentValue } from "../../object-field/ability";
|
|
6
6
|
import { Widget } from "../../../core/types/widget";
|
|
7
7
|
import { AttackType, DamageType, WeaponType } from "../../internal/unit+damage";
|
|
8
|
+
import { CombatClassifications } from "../../object-data/auxiliary/combat-classification";
|
|
8
9
|
export type DamageAbilityBehaviorParameters = {
|
|
9
10
|
damagePerStrength?: AbilityDependentValue<number>;
|
|
10
11
|
damagePerAgility?: AbilityDependentValue<number>;
|
|
@@ -15,6 +16,8 @@ export type DamageAbilityBehaviorParameters = {
|
|
|
15
16
|
};
|
|
16
17
|
export type DamageAreaAbilityBehaviorParameters = DamageAbilityBehaviorParameters & {
|
|
17
18
|
maximumDamage?: AbilityDependentValue<number>;
|
|
19
|
+
areaOfEffect?: AbilityDependentValue<number>;
|
|
20
|
+
allowedTargetCombatClassifications?: AbilityDependentValue<CombatClassifications>;
|
|
18
21
|
};
|
|
19
22
|
declare abstract class DamageAbilityBehavior<T extends DamageAbilityBehaviorParameters = DamageAbilityBehaviorParameters> extends AbilityBehavior {
|
|
20
23
|
protected readonly damage: AbilityDependentValue<number>;
|
|
@@ -82,10 +82,10 @@ function DamageAreaAbilityBehavior.prototype.damageArea(self, caster, x, y)
|
|
|
82
82
|
local parameters = self.parameters
|
|
83
83
|
local targets = Unit.getAllowedTargetsInCollisionRange(
|
|
84
84
|
caster,
|
|
85
|
-
self:resolveCurrentAbilityDependentValue(ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD),
|
|
85
|
+
self:resolveCurrentAbilityDependentValue(parameters and parameters.allowedTargetCombatClassifications or ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD),
|
|
86
86
|
x,
|
|
87
87
|
y,
|
|
88
|
-
self:resolveCurrentAbilityDependentValue(AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD)
|
|
88
|
+
self:resolveCurrentAbilityDependentValue(parameters and parameters.areaOfEffect or AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD)
|
|
89
89
|
)
|
|
90
90
|
local damage = self:calculateDamage(caster)
|
|
91
91
|
local maximumDamage = self:resolveCurrentAbilityDependentValue(parameters and parameters.maximumDamage or 0)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____ability = require("engine.behaviour.ability")
|
|
6
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
7
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
8
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
9
|
+
local MANA_COST_ABILITY_INTEGER_LEVEL_FIELD = ____ability.MANA_COST_ABILITY_INTEGER_LEVEL_FIELD
|
|
10
|
+
local ____math = require("math")
|
|
11
|
+
local max = ____math.max
|
|
12
|
+
local MINIMUM_POSITIVE_NORMALIZED_FLOAT = ____math.MINIMUM_POSITIVE_NORMALIZED_FLOAT
|
|
13
|
+
____exports.EmulateImpactAbilityBehavior = __TS__Class()
|
|
14
|
+
local EmulateImpactAbilityBehavior = ____exports.EmulateImpactAbilityBehavior
|
|
15
|
+
EmulateImpactAbilityBehavior.name = "EmulateImpactAbilityBehavior"
|
|
16
|
+
__TS__ClassExtends(EmulateImpactAbilityBehavior, AbilityBehavior)
|
|
17
|
+
function EmulateImpactAbilityBehavior.prototype.emulateImpact(self, caster)
|
|
18
|
+
local manaCost = self:resolveCurrentAbilityDependentValue(MANA_COST_ABILITY_INTEGER_LEVEL_FIELD)
|
|
19
|
+
local cooldown = self:resolveCurrentAbilityDependentValue(COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD)
|
|
20
|
+
if self.ability.cooldownRemaining ~= 0 or caster.mana < manaCost then
|
|
21
|
+
return
|
|
22
|
+
end
|
|
23
|
+
caster.mana = caster.mana - manaCost
|
|
24
|
+
self.ability.cooldownRemaining = max(cooldown, MINIMUM_POSITIVE_NORMALIZED_FLOAT)
|
|
25
|
+
self:flashCasterEffect(caster)
|
|
26
|
+
AbilityBehavior:forAll(self.ability, "onImpact", caster)
|
|
27
|
+
end
|
|
28
|
+
return ____exports
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { AbilityBehavior } from "../ability";
|
|
3
2
|
import { Unit } from "../../internal/unit";
|
|
4
|
-
|
|
3
|
+
import { EmulateImpactAbilityBehavior } from "./emulate-impact";
|
|
4
|
+
export declare class InstantImpactAbilityBehavior extends EmulateImpactAbilityBehavior {
|
|
5
5
|
onCastingStart(caster: Unit): void;
|
|
6
6
|
}
|
|
@@ -2,28 +2,13 @@ local ____lualib = require("lualib_bundle")
|
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
4
|
local ____exports = {}
|
|
5
|
-
local
|
|
6
|
-
local
|
|
7
|
-
local ____ability = require("engine.standard.fields.ability")
|
|
8
|
-
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
9
|
-
local MANA_COST_ABILITY_INTEGER_LEVEL_FIELD = ____ability.MANA_COST_ABILITY_INTEGER_LEVEL_FIELD
|
|
5
|
+
local ____emulate_2Dimpact = require("engine.behaviour.ability.emulate-impact")
|
|
6
|
+
local EmulateImpactAbilityBehavior = ____emulate_2Dimpact.EmulateImpactAbilityBehavior
|
|
10
7
|
____exports.InstantImpactAbilityBehavior = __TS__Class()
|
|
11
8
|
local InstantImpactAbilityBehavior = ____exports.InstantImpactAbilityBehavior
|
|
12
9
|
InstantImpactAbilityBehavior.name = "InstantImpactAbilityBehavior"
|
|
13
|
-
__TS__ClassExtends(InstantImpactAbilityBehavior,
|
|
10
|
+
__TS__ClassExtends(InstantImpactAbilityBehavior, EmulateImpactAbilityBehavior)
|
|
14
11
|
function InstantImpactAbilityBehavior.prototype.onCastingStart(self, caster)
|
|
15
|
-
|
|
16
|
-
local manaCost = self:resolveCurrentAbilityDependentValue(MANA_COST_ABILITY_INTEGER_LEVEL_FIELD)
|
|
17
|
-
local cooldown = self:resolveCurrentAbilityDependentValue(COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD)
|
|
18
|
-
if caster:getAbilityRemainingCooldown(abilityTypeId) ~= 0 or caster.mana < manaCost then
|
|
19
|
-
return
|
|
20
|
-
end
|
|
21
|
-
caster.mana = caster.mana - manaCost
|
|
22
|
-
if cooldown == 0 then
|
|
23
|
-
caster:interruptCast(self.ability.typeId)
|
|
24
|
-
else
|
|
25
|
-
caster:startAbilityCooldown(self.ability.typeId, cooldown)
|
|
26
|
-
end
|
|
27
|
-
AbilityBehavior:forAll(self.ability, "onImpact", caster)
|
|
12
|
+
self:emulateImpact(caster)
|
|
28
13
|
end
|
|
29
14
|
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Unit } from "../../internal/unit";
|
|
3
|
+
import { EmulateImpactAbilityBehavior } from "./emulate-impact";
|
|
4
|
+
import { Ability } from "../../internal/ability";
|
|
5
|
+
export declare class OnCommandImpactAbilityBehavior extends EmulateImpactAbilityBehavior {
|
|
6
|
+
constructor(ability: Ability);
|
|
7
|
+
onCommand(caster: Unit): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____unit = require("engine.internal.unit")
|
|
6
|
+
local Unit = ____unit.Unit
|
|
7
|
+
local ____emulate_2Dimpact = require("engine.behaviour.ability.emulate-impact")
|
|
8
|
+
local EmulateImpactAbilityBehavior = ____emulate_2Dimpact.EmulateImpactAbilityBehavior
|
|
9
|
+
____exports.OnCommandImpactAbilityBehavior = __TS__Class()
|
|
10
|
+
local OnCommandImpactAbilityBehavior = ____exports.OnCommandImpactAbilityBehavior
|
|
11
|
+
OnCommandImpactAbilityBehavior.name = "OnCommandImpactAbilityBehavior"
|
|
12
|
+
__TS__ClassExtends(OnCommandImpactAbilityBehavior, EmulateImpactAbilityBehavior)
|
|
13
|
+
function OnCommandImpactAbilityBehavior.prototype.____constructor(self, ability)
|
|
14
|
+
EmulateImpactAbilityBehavior.prototype.____constructor(self, ability)
|
|
15
|
+
self:registerCommandEvent()
|
|
16
|
+
end
|
|
17
|
+
function OnCommandImpactAbilityBehavior.prototype.onCommand(self, caster)
|
|
18
|
+
self:emulateImpact(caster)
|
|
19
|
+
end
|
|
20
|
+
Unit.itemUseOrderEvent:addListener(function(unit, item)
|
|
21
|
+
for ____, ability in ipairs(item.abilities) do
|
|
22
|
+
____exports.OnCommandImpactAbilityBehavior:forAll(ability, "onCommand", unit)
|
|
23
|
+
end
|
|
24
|
+
end)
|
|
25
|
+
return ____exports
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityBehavior } from "../ability";
|
|
3
|
+
import { Unit } from "../../internal/unit";
|
|
4
|
+
import { Ability } from "../../internal/ability";
|
|
5
|
+
import { AbilityDependentValue } from "../../object-field/ability";
|
|
6
|
+
import { BuffPolarity } from "../../object-data/auxiliary/buff-polarity";
|
|
7
|
+
import { BuffResistanceType } from "../../object-data/auxiliary/buff-resistance-type";
|
|
8
|
+
export declare class RemoveBuffsSelfAbilityBehavior extends AbilityBehavior {
|
|
9
|
+
private readonly polarity?;
|
|
10
|
+
private readonly resistanceType?;
|
|
11
|
+
private readonly includeExpirationTimers?;
|
|
12
|
+
private readonly includeAuras?;
|
|
13
|
+
private readonly autoDispel?;
|
|
14
|
+
constructor(ability: Ability, polarity?: AbilityDependentValue<BuffPolarity> | undefined, resistanceType?: AbilityDependentValue<BuffResistanceType> | undefined, includeExpirationTimers?: AbilityDependentValue<boolean> | undefined, includeAuras?: AbilityDependentValue<boolean> | undefined, autoDispel?: AbilityDependentValue<boolean> | undefined);
|
|
15
|
+
onImpact(caster: Unit): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local ____ability = require("engine.behaviour.ability")
|
|
6
|
+
local AbilityBehavior = ____ability.AbilityBehavior
|
|
7
|
+
____exports.RemoveBuffsSelfAbilityBehavior = __TS__Class()
|
|
8
|
+
local RemoveBuffsSelfAbilityBehavior = ____exports.RemoveBuffsSelfAbilityBehavior
|
|
9
|
+
RemoveBuffsSelfAbilityBehavior.name = "RemoveBuffsSelfAbilityBehavior"
|
|
10
|
+
__TS__ClassExtends(RemoveBuffsSelfAbilityBehavior, AbilityBehavior)
|
|
11
|
+
function RemoveBuffsSelfAbilityBehavior.prototype.____constructor(self, ability, polarity, resistanceType, includeExpirationTimers, includeAuras, autoDispel)
|
|
12
|
+
AbilityBehavior.prototype.____constructor(self, ability)
|
|
13
|
+
self.polarity = polarity
|
|
14
|
+
self.resistanceType = resistanceType
|
|
15
|
+
self.includeExpirationTimers = includeExpirationTimers
|
|
16
|
+
self.includeAuras = includeAuras
|
|
17
|
+
self.autoDispel = autoDispel
|
|
18
|
+
end
|
|
19
|
+
function RemoveBuffsSelfAbilityBehavior.prototype.onImpact(self, caster)
|
|
20
|
+
caster:removeBuffs(
|
|
21
|
+
self:resolveCurrentAbilityDependentValue(self.polarity),
|
|
22
|
+
self:resolveCurrentAbilityDependentValue(self.resistanceType),
|
|
23
|
+
self:resolveCurrentAbilityDependentValue(self.includeExpirationTimers),
|
|
24
|
+
self:resolveCurrentAbilityDependentValue(self.includeAuras),
|
|
25
|
+
self:resolveCurrentAbilityDependentValue(self.autoDispel)
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
return ____exports
|
|
@@ -7,24 +7,37 @@ import { Widget } from "../../core/types/widget";
|
|
|
7
7
|
import { Item } from "../internal/item";
|
|
8
8
|
import { Destructable } from "../../core/types/destructable";
|
|
9
9
|
import { EffectParameters } from "../../core/types/effect";
|
|
10
|
-
import { AbilityDependentValue } from "../object-field/ability";
|
|
10
|
+
import { AbilityDependentValue, ReadonlySubscribableAbilityDependentValue, SubscribableAbilityDependentValue } from "../object-field/ability";
|
|
11
|
+
import { Destructor } from "../../destroyable";
|
|
11
12
|
export type AbilityBehaviorConstructor<Args extends any[]> = new (ability: Ability, ...args: Args) => AbilityBehavior;
|
|
13
|
+
export type AbilityBehaviorParameters = {
|
|
14
|
+
isExclusiveOnImpactHandler?: boolean;
|
|
15
|
+
};
|
|
12
16
|
export declare abstract class AbilityBehavior<Parameters extends {
|
|
13
17
|
periodicActionParameters?: any[];
|
|
14
18
|
missileParameters?: any[];
|
|
15
19
|
} = {}> extends Behavior<Ability, NonNullable<Parameters["periodicActionParameters"]>> {
|
|
16
|
-
constructor(ability: Ability);
|
|
20
|
+
constructor(ability: Ability, parameters?: AbilityBehaviorParameters);
|
|
21
|
+
protected onDestroy(): Destructor;
|
|
22
|
+
protected subscribe<T extends boolean | number | string>(value: SubscribableAbilityDependentValue<T>): void;
|
|
23
|
+
protected registerCommandEvent(orderTypeStringId?: string): void;
|
|
17
24
|
get ability(): Ability;
|
|
25
|
+
get unit(): Unit | undefined;
|
|
18
26
|
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value: AbilityDependentValue<T>): T;
|
|
27
|
+
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value?: AbilityDependentValue<T>): T | undefined;
|
|
28
|
+
protected flashCasterEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
29
|
+
protected flashTargetEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
19
30
|
protected flashAreaEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
20
31
|
protected flashEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
21
32
|
protected flashSpecialEffect(...args: [...pointOrWidget: [x: number, y: number] | [widget: Widget], duration?: number]): void;
|
|
22
33
|
private static MissileLaunchConfig;
|
|
23
34
|
private get missileLaunchConfig();
|
|
24
|
-
protected
|
|
35
|
+
protected onCreate(): void;
|
|
36
|
+
onValueChange(_value: ReadonlySubscribableAbilityDependentValue<string | number | boolean>): void;
|
|
25
37
|
onMissileArrival(...parameters: NonNullable<Parameters["missileParameters"]>): void;
|
|
26
38
|
onUnitGainAbility(_unit: Unit): void;
|
|
27
39
|
onUnitLoseAbility(_unit: Unit): void;
|
|
40
|
+
onCommand(caster: Unit, orderTypeStringId: string): void;
|
|
28
41
|
onCastingStart(caster: Unit): void;
|
|
29
42
|
onCastingFinish(caster: Unit): void;
|
|
30
43
|
onChannelingStart(caster: Unit): void;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
4
5
|
local __TS__New = ____lualib.__TS__New
|
|
5
6
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
6
7
|
local ____exports = {}
|
|
8
|
+
local createUnitEventListener
|
|
7
9
|
local ____behavior = require("engine.behavior")
|
|
8
10
|
local Behavior = ____behavior.Behavior
|
|
9
11
|
local ____unit = require("engine.unit")
|
|
@@ -14,31 +16,44 @@ local ____effect = require("core.types.effect")
|
|
|
14
16
|
local Effect = ____effect.Effect
|
|
15
17
|
local ____ability = require("engine.standard.fields.ability")
|
|
16
18
|
local AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
19
|
+
local CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
20
|
+
local CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
17
21
|
local EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
18
22
|
local MISSILE_ARC_ABILITY_FLOAT_FIELD = ____ability.MISSILE_ARC_ABILITY_FLOAT_FIELD
|
|
19
23
|
local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
20
24
|
local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_INTEGER_FIELD
|
|
21
25
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
22
26
|
local SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
27
|
+
local TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
28
|
+
local TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
23
29
|
local ____ability = require("engine.object-field.ability")
|
|
30
|
+
local AbilityField = ____ability.AbilityField
|
|
31
|
+
local AbilityLevelField = ____ability.AbilityLevelField
|
|
24
32
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
25
33
|
local ____timer = require("core.types.timer")
|
|
26
34
|
local Timer = ____timer.Timer
|
|
27
|
-
local ____missile = require("core.types.missile")
|
|
28
|
-
local Missile = ____missile.Missile
|
|
29
35
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
30
|
-
local
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
local exclusiveOnImpactHandlerAbilityBehaviorByAbility = setmetatable({}, {__mode = "k"})
|
|
37
|
+
local function createZeroTimerUnitEventListener(key)
|
|
38
|
+
local unitEventListener = createUnitEventListener(key)
|
|
39
|
+
return function(unit, ability, ...)
|
|
40
|
+
Timer:run(unitEventListener, unit, ability, ...)
|
|
33
41
|
end
|
|
34
42
|
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
createUnitEventListener = function(key)
|
|
44
|
+
return function(unit, ability, ...)
|
|
45
|
+
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
local registeredCommandEventIds = {}
|
|
49
|
+
local subscribedValuesByAbilityBehavior = {}
|
|
50
|
+
local ____class_2 = __TS__Class()
|
|
51
|
+
____class_2.name = ""
|
|
52
|
+
function ____class_2.prototype.____constructor(self, abilityBehavior)
|
|
38
53
|
self.abilityBehavior = abilityBehavior
|
|
39
54
|
end
|
|
40
55
|
__TS__SetDescriptor(
|
|
41
|
-
|
|
56
|
+
____class_2.prototype,
|
|
42
57
|
"art",
|
|
43
58
|
{get = function(self)
|
|
44
59
|
return MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.abilityBehavior.ability, 0)
|
|
@@ -46,7 +61,7 @@ __TS__SetDescriptor(
|
|
|
46
61
|
true
|
|
47
62
|
)
|
|
48
63
|
__TS__SetDescriptor(
|
|
49
|
-
|
|
64
|
+
____class_2.prototype,
|
|
50
65
|
"arc",
|
|
51
66
|
{get = function(self)
|
|
52
67
|
return MISSILE_ARC_ABILITY_FLOAT_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -54,7 +69,7 @@ __TS__SetDescriptor(
|
|
|
54
69
|
true
|
|
55
70
|
)
|
|
56
71
|
__TS__SetDescriptor(
|
|
57
|
-
|
|
72
|
+
____class_2.prototype,
|
|
58
73
|
"speed",
|
|
59
74
|
{get = function(self)
|
|
60
75
|
return MISSILE_SPEED_ABILITY_INTEGER_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -65,12 +80,58 @@ ____exports.AbilityBehavior = __TS__Class()
|
|
|
65
80
|
local AbilityBehavior = ____exports.AbilityBehavior
|
|
66
81
|
AbilityBehavior.name = "AbilityBehavior"
|
|
67
82
|
__TS__ClassExtends(AbilityBehavior, Behavior)
|
|
68
|
-
function AbilityBehavior.prototype.____constructor(self, ability)
|
|
83
|
+
function AbilityBehavior.prototype.____constructor(self, ability, parameters)
|
|
69
84
|
Behavior.prototype.____constructor(self, ability)
|
|
85
|
+
if parameters and parameters.isExclusiveOnImpactHandler then
|
|
86
|
+
exclusiveOnImpactHandlerAbilityBehaviorByAbility[ability] = self
|
|
87
|
+
end
|
|
88
|
+
self:onCreate()
|
|
89
|
+
end
|
|
90
|
+
function AbilityBehavior.prototype.onDestroy(self)
|
|
91
|
+
subscribedValuesByAbilityBehavior[self] = nil
|
|
92
|
+
return Behavior.prototype.onDestroy(self)
|
|
93
|
+
end
|
|
94
|
+
function AbilityBehavior.prototype.subscribe(self, value)
|
|
95
|
+
if __TS__InstanceOf(value, AbilityField) or __TS__InstanceOf(value, AbilityLevelField) then
|
|
96
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[self]
|
|
97
|
+
if subscribedValues == nil then
|
|
98
|
+
subscribedValues = {}
|
|
99
|
+
subscribedValuesByAbilityBehavior[self] = subscribedValues
|
|
100
|
+
end
|
|
101
|
+
subscribedValues[value] = true
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
function AbilityBehavior.prototype.registerCommandEvent(self, orderTypeStringId)
|
|
105
|
+
if orderTypeStringId == nil then
|
|
106
|
+
orderTypeStringId = self.ability.orderTypeStringId
|
|
107
|
+
end
|
|
108
|
+
local commandEventId = (tostring(self.ability.typeId) .. "#") .. orderTypeStringId
|
|
109
|
+
if not (registeredCommandEventIds[commandEventId] ~= nil) then
|
|
110
|
+
registeredCommandEventIds[commandEventId] = true
|
|
111
|
+
Unit.abilityCommandEvent[self.ability.typeId][orderTypeStringId]:addListener(createUnitEventListener("onCommand"))
|
|
112
|
+
end
|
|
70
113
|
end
|
|
71
114
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
72
115
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
73
116
|
end
|
|
117
|
+
function AbilityBehavior.prototype.flashCasterEffect(self, widget, ...)
|
|
118
|
+
local attachmentPoint = CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
119
|
+
Effect:flash(
|
|
120
|
+
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
121
|
+
widget,
|
|
122
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
123
|
+
...
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
function AbilityBehavior.prototype.flashTargetEffect(self, widget, ...)
|
|
127
|
+
local attachmentPoint = TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
128
|
+
Effect:flash(
|
|
129
|
+
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
130
|
+
widget,
|
|
131
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
132
|
+
...
|
|
133
|
+
)
|
|
134
|
+
end
|
|
74
135
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
75
136
|
Effect:flash(
|
|
76
137
|
AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
@@ -96,23 +157,18 @@ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrDurati
|
|
|
96
157
|
duration
|
|
97
158
|
)
|
|
98
159
|
else
|
|
160
|
+
local attachmentPoint = SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
99
161
|
Effect:flash(
|
|
100
162
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
101
163
|
xOrWidget,
|
|
102
|
-
|
|
164
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
103
165
|
yOrDuration
|
|
104
166
|
)
|
|
105
167
|
end
|
|
106
168
|
end
|
|
107
|
-
function AbilityBehavior.prototype.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
source,
|
|
111
|
-
target,
|
|
112
|
-
invokeOnMissileArrival,
|
|
113
|
-
self,
|
|
114
|
-
...
|
|
115
|
-
)
|
|
169
|
+
function AbilityBehavior.prototype.onCreate(self)
|
|
170
|
+
end
|
|
171
|
+
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
116
172
|
end
|
|
117
173
|
function AbilityBehavior.prototype.onMissileArrival(self, ...)
|
|
118
174
|
end
|
|
@@ -120,6 +176,8 @@ function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
|
|
|
120
176
|
end
|
|
121
177
|
function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
|
|
122
178
|
end
|
|
179
|
+
function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
180
|
+
end
|
|
123
181
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
124
182
|
end
|
|
125
183
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
@@ -179,7 +237,19 @@ __TS__SetDescriptor(
|
|
|
179
237
|
end},
|
|
180
238
|
true
|
|
181
239
|
)
|
|
182
|
-
|
|
240
|
+
__TS__SetDescriptor(
|
|
241
|
+
AbilityBehavior.prototype,
|
|
242
|
+
"unit",
|
|
243
|
+
{get = function(self)
|
|
244
|
+
local owner = self.object.owner
|
|
245
|
+
if __TS__InstanceOf(owner, Unit) then
|
|
246
|
+
return owner
|
|
247
|
+
end
|
|
248
|
+
return owner.owner
|
|
249
|
+
end},
|
|
250
|
+
true
|
|
251
|
+
)
|
|
252
|
+
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
183
253
|
__TS__SetDescriptor(
|
|
184
254
|
AbilityBehavior.prototype,
|
|
185
255
|
"missileLaunchConfig",
|
|
@@ -191,17 +261,6 @@ __TS__SetDescriptor(
|
|
|
191
261
|
true
|
|
192
262
|
);
|
|
193
263
|
(function(self)
|
|
194
|
-
local function createUnitEventListener(key)
|
|
195
|
-
return function(unit, ability, ...)
|
|
196
|
-
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
local function createZeroTimerUnitEventListener(key)
|
|
200
|
-
local unitEventListener = createUnitEventListener(key)
|
|
201
|
-
return function(unit, ability, ...)
|
|
202
|
-
Timer:run(unitEventListener, unit, ability, ...)
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
264
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
206
265
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
207
266
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
@@ -223,6 +282,18 @@ __TS__SetDescriptor(
|
|
|
223
282
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
224
283
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
225
284
|
end)(AbilityBehavior)
|
|
285
|
+
local function checkBehaviorOnValueChange(behavior, field)
|
|
286
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
287
|
+
if subscribedValues ~= nil and subscribedValues[field] ~= nil then
|
|
288
|
+
behavior:onValueChange(field)
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
AbilityField.valueChangeEvent:addListener(function(ability, field)
|
|
292
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
293
|
+
end)
|
|
294
|
+
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
295
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
296
|
+
end)
|
|
226
297
|
Ability.onCreate:addListener(function(ability)
|
|
227
298
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
228
299
|
if createBehaviorFunctions ~= nil then
|
|
@@ -5,9 +5,11 @@ import { DamageEvent, DamagingEvent, Unit } from "../internal/unit";
|
|
|
5
5
|
import "../internal/unit+ability";
|
|
6
6
|
import "../internal/unit-missile-launch";
|
|
7
7
|
import { Item } from "../internal/item";
|
|
8
|
+
import type { AbilityBehavior } from "./ability";
|
|
8
9
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
9
10
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
10
11
|
constructor(unit: Unit);
|
|
12
|
+
readonly sourceAbilityBehavior?: AbilityBehavior;
|
|
11
13
|
get unit(): Unit;
|
|
12
14
|
onAutoAttackStart(target: Unit): void;
|
|
13
15
|
onAutoAttackFinish(target: Unit): void;
|
package/engine/buff.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { EffectParameters } from "../core/types/effect";
|
|
|
12
12
|
import { UnitBehavior } from "./behaviour/unit";
|
|
13
13
|
import type { Widget } from "../core/types/widget";
|
|
14
14
|
import { Destructor } from "../destroyable";
|
|
15
|
+
import { Event } from "../event";
|
|
15
16
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
16
17
|
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
17
18
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
@@ -55,12 +56,15 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
55
56
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
56
57
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
57
58
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
59
|
+
evasionProbability?: NumberParameterValueType;
|
|
60
|
+
missProbability?: NumberParameterValueType;
|
|
58
61
|
damageFactor?: NumberParameterValueType;
|
|
59
62
|
receivedDamageFactor?: NumberParameterValueType;
|
|
60
63
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
61
64
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
62
65
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
63
66
|
maximumDuration?: NumberParameterValueType;
|
|
67
|
+
turnsIntoGhost?: BooleanParameterValueType;
|
|
64
68
|
stuns?: BooleanParameterValueType;
|
|
65
69
|
ignoresStunImmunity?: BooleanParameterValueType;
|
|
66
70
|
providesStunImmunity?: BooleanParameterValueType;
|
|
@@ -78,46 +82,49 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
78
82
|
uniqueGroup?: BuffUniqueGroup;
|
|
79
83
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
80
84
|
declare const enum BuffPropertyKey {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
|
|
85
|
+
STATE = 100,
|
|
86
|
+
UNIT = 101,
|
|
87
|
+
SOURCE = 102,
|
|
88
|
+
DURATION = 103,
|
|
89
|
+
UNIQUE_GROUP = 104,
|
|
90
|
+
EFFECT_MODEL_PATH = 105,
|
|
91
|
+
SPECIAL_EFFECT_MODEL_PATH = 106,
|
|
92
|
+
DURATION_INCREASE_ON_AUTO_ATTACK = 107,
|
|
93
|
+
MAXIMUM_DURATION = 108,
|
|
94
|
+
MAXIMUM_REMAINING_DURATION = 109,
|
|
95
|
+
DAMAGE_OVER_DURATION = 110,
|
|
96
|
+
DAMAGE_PER_INTERVAL = 111,
|
|
97
|
+
DAMAGE_INTERVAL = 112,
|
|
98
|
+
REMAINING_DAMAGE_OVER_DURATION = 113,
|
|
99
|
+
DAMAGE_INTERVAL_TIMER = 114,
|
|
100
|
+
HEALING_OVER_DURATION = 115,
|
|
101
|
+
HEALING_PER_INTERVAL = 116,
|
|
102
|
+
HEALING_INTERVAL = 117,
|
|
103
|
+
REMAINING_HEALING_OVER_DURATION = 118,
|
|
104
|
+
HEALING_INTERVAL_TIMER = 119,
|
|
105
|
+
DAMAGE_ON_EXPIRATION = 120,
|
|
106
|
+
HEALING_ON_EXPIRATION = 121,
|
|
107
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
|
|
108
|
+
DAMAGE_UPON_DEATH = 123,
|
|
109
|
+
DAMAGE_UPON_DEATH_RANGE = 124,
|
|
110
|
+
MEDIUM_DAMAGE_UPON_DEATH = 125,
|
|
111
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
|
|
112
|
+
SMALL_DAMAGE_UPON_DEATH = 127,
|
|
113
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
|
|
114
|
+
AUTO_ATTACK_COUNT = 129,
|
|
115
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 130,
|
|
116
|
+
DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
117
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
118
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
119
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
120
|
+
TURNS_INTO_GHOST = 135,
|
|
121
|
+
STUNS = 136,
|
|
122
|
+
IGNORES_STUN_IMMUNITY = 137,
|
|
123
|
+
DISABLES_AUTO_ATTACK = 138,
|
|
124
|
+
PROVIDES_INVULNERABILITY = 139,
|
|
125
|
+
KILLS_ON_EXPIRATION = 140,
|
|
126
|
+
EXPLODES_ON_EXPIRATION = 141,
|
|
127
|
+
MISS_PROBABILITY = 142
|
|
121
128
|
}
|
|
122
129
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
123
130
|
LEAST_DURATION = 0
|
|
@@ -131,13 +138,14 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
|
|
|
131
138
|
polarity: BuffPolarityParameterType,
|
|
132
139
|
resistanceType: BuffResistanceTypeParameterType,
|
|
133
140
|
...abilityOrParameters: [
|
|
134
|
-
ability
|
|
141
|
+
ability?: Ability,
|
|
135
142
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
136
143
|
] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
|
|
137
144
|
];
|
|
138
145
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
139
146
|
private _unit;
|
|
140
147
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
148
|
+
private [BuffPropertyKey.STATE];
|
|
141
149
|
private [BuffPropertyKey.UNIT];
|
|
142
150
|
private [BuffPropertyKey.SOURCE]?;
|
|
143
151
|
private [BuffPropertyKey.DURATION];
|
|
@@ -172,6 +180,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
172
180
|
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
173
181
|
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
174
182
|
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
183
|
+
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
175
184
|
private [BuffPropertyKey.STUNS]?;
|
|
176
185
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
177
186
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
@@ -191,6 +200,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
191
200
|
private readonly _level?;
|
|
192
201
|
private readonly _spellStealPriority?;
|
|
193
202
|
private readonly _learnLevelMinimum?;
|
|
203
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
194
204
|
private _bonusIdByBonusType?;
|
|
195
205
|
private readonly _abilityTypeIds?;
|
|
196
206
|
private _behaviors?;
|
|
@@ -224,6 +234,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
224
234
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
225
235
|
get armorIncrease(): number;
|
|
226
236
|
set armorIncrease(armorIncrease: number);
|
|
237
|
+
get turnsIntoGhost(): boolean;
|
|
238
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
227
239
|
get stuns(): boolean;
|
|
228
240
|
set stuns(stuns: boolean);
|
|
229
241
|
get ignoresStunImmunity(): boolean;
|
|
@@ -248,6 +260,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
248
260
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
249
261
|
get movementSpeedIncreaseFactor(): number;
|
|
250
262
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
263
|
+
get evasionProbability(): number;
|
|
264
|
+
set evasionProbability(evasionProbability: number);
|
|
251
265
|
get duration(): number;
|
|
252
266
|
get remainingDuration(): number;
|
|
253
267
|
set remainingDuration(remainingDuration: number);
|
|
@@ -264,5 +278,6 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
264
278
|
onDeath(source: Unit | undefined): void;
|
|
265
279
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
266
280
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
281
|
+
static readonly destroyEvent: Event<[Buff<object>]>;
|
|
267
282
|
}
|
|
268
283
|
export {};
|