warscript 0.0.1-dev.8a238c4 → 0.0.1-dev.8bfb72f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +0 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/core/types/effect.d.ts +13 -3
- package/core/types/effect.lua +116 -17
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +93 -1
- package/core/types/group.d.ts +0 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -0
- package/decl/index.d.ts +1 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +10 -10
- package/engine/behavior.lua +6 -6
- 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 +8 -5
- package/engine/behaviour/ability/apply-buff.lua +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/damage.d.ts +33 -11
- package/engine/behaviour/ability/damage.lua +89 -31
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- 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/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +22 -3
- package/engine/behaviour/ability.lua +134 -13
- package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
- package/engine/behaviour/unit.d.ts +8 -2
- package/engine/behaviour/unit.lua +27 -0
- package/engine/buff.d.ts +73 -21
- package/engine/buff.lua +297 -91
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +16 -13
- package/engine/internal/ability.lua +80 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +2 -2
- package/engine/internal/item.lua +33 -25
- 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 -14
- 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 +11 -8
- package/engine/internal/unit/bonus.lua +23 -1
- 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.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +51 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +24 -5
- package/engine/internal/unit.d.ts +27 -12
- package/engine/internal/unit.lua +175 -86
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +8 -2
- package/engine/lightning.lua +27 -2
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type.d.ts +0 -1
- package/engine/object-data/entry/ability-type.lua +8 -12
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +0 -1
- package/engine/object-data/entry/destructible-type.d.ts +0 -1
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +14 -1
- package/engine/object-data/entry/item-type.lua +91 -0
- package/engine/object-data/entry/lightning-type.d.ts +0 -1
- package/engine/object-data/entry/unit-type.d.ts +0 -1
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +0 -1
- package/engine/object-data/entry.d.ts +2 -3
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field.d.ts +2 -3
- package/engine/object-field.lua +4 -0
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -0
- package/engine/standard/fields/ability.d.ts +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +12 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/package.json +13 -13
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +16 -0
- package/string.lua +5 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +11 -5
- package/utility/arrays.lua +34 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -3
- package/utility/linked-set.lua +5 -2
- package/utility/lua-maps.d.ts +1 -2
- package/utility/lua-sets.d.ts +1 -2
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
|
@@ -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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Ability } from "../../internal/ability";
|
|
3
|
+
import { Unit } from "../../internal/unit";
|
|
4
|
+
import { AbilityDependentValue } from "../../object-field/ability";
|
|
5
|
+
import { AbilityBehavior } from "../ability";
|
|
6
|
+
export declare class RestoreManaSelfAbilityBehavior extends AbilityBehavior {
|
|
7
|
+
private readonly mana;
|
|
8
|
+
constructor(ability: Ability, mana: AbilityDependentValue<number>);
|
|
9
|
+
onImpact(caster: Unit): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class RestoreManaAbilityBehavior extends AbilityBehavior {
|
|
12
|
+
private readonly mana;
|
|
13
|
+
constructor(ability: Ability, mana: AbilityDependentValue<number>);
|
|
14
|
+
onUnitTargetImpact(caster: Unit, target: Unit): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.RestoreManaSelfAbilityBehavior = __TS__Class()
|
|
8
|
+
local RestoreManaSelfAbilityBehavior = ____exports.RestoreManaSelfAbilityBehavior
|
|
9
|
+
RestoreManaSelfAbilityBehavior.name = "RestoreManaSelfAbilityBehavior"
|
|
10
|
+
__TS__ClassExtends(RestoreManaSelfAbilityBehavior, AbilityBehavior)
|
|
11
|
+
function RestoreManaSelfAbilityBehavior.prototype.____constructor(self, ability, mana)
|
|
12
|
+
AbilityBehavior.prototype.____constructor(self, ability)
|
|
13
|
+
self.mana = mana
|
|
14
|
+
end
|
|
15
|
+
function RestoreManaSelfAbilityBehavior.prototype.onImpact(self, caster)
|
|
16
|
+
caster.mana = caster.mana + self:resolveCurrentAbilityDependentValue(self.mana)
|
|
17
|
+
end
|
|
18
|
+
____exports.RestoreManaAbilityBehavior = __TS__Class()
|
|
19
|
+
local RestoreManaAbilityBehavior = ____exports.RestoreManaAbilityBehavior
|
|
20
|
+
RestoreManaAbilityBehavior.name = "RestoreManaAbilityBehavior"
|
|
21
|
+
__TS__ClassExtends(RestoreManaAbilityBehavior, AbilityBehavior)
|
|
22
|
+
function RestoreManaAbilityBehavior.prototype.____constructor(self, ability, mana)
|
|
23
|
+
AbilityBehavior.prototype.____constructor(self, ability)
|
|
24
|
+
self.mana = mana
|
|
25
|
+
end
|
|
26
|
+
function RestoreManaAbilityBehavior.prototype.onUnitTargetImpact(self, caster, target)
|
|
27
|
+
target.mana = target.mana + self:resolveCurrentAbilityDependentValue(self.mana)
|
|
28
|
+
end
|
|
29
|
+
return ____exports
|
|
@@ -7,17 +7,36 @@ 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;
|
|
12
|
-
export
|
|
13
|
-
|
|
13
|
+
export type AbilityBehaviorParameters = {
|
|
14
|
+
isExclusiveOnImpactHandler?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare abstract class AbilityBehavior<Parameters extends {
|
|
17
|
+
periodicActionParameters?: any[];
|
|
18
|
+
missileParameters?: any[];
|
|
19
|
+
} = {}> extends Behavior<Ability, NonNullable<Parameters["periodicActionParameters"]>> {
|
|
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;
|
|
14
24
|
get ability(): Ability;
|
|
15
25
|
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value: AbilityDependentValue<T>): T;
|
|
26
|
+
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value?: AbilityDependentValue<T>): T | undefined;
|
|
27
|
+
protected flashCasterEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
28
|
+
protected flashTargetEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
16
29
|
protected flashAreaEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
17
30
|
protected flashEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
18
31
|
protected flashSpecialEffect(...args: [...pointOrWidget: [x: number, y: number] | [widget: Widget], duration?: number]): void;
|
|
32
|
+
private static MissileLaunchConfig;
|
|
33
|
+
private get missileLaunchConfig();
|
|
34
|
+
protected onCreate(): void;
|
|
35
|
+
onValueChange(_value: ReadonlySubscribableAbilityDependentValue<string | number | boolean>): void;
|
|
36
|
+
onMissileArrival(...parameters: NonNullable<Parameters["missileParameters"]>): void;
|
|
19
37
|
onUnitGainAbility(_unit: Unit): void;
|
|
20
38
|
onUnitLoseAbility(_unit: Unit): void;
|
|
39
|
+
onCommand(caster: Unit, orderTypeStringId: string): void;
|
|
21
40
|
onCastingStart(caster: Unit): void;
|
|
22
41
|
onCastingFinish(caster: Unit): void;
|
|
23
42
|
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,24 +16,122 @@ 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
|
|
22
|
+
local MISSILE_ARC_ABILITY_FLOAT_FIELD = ____ability.MISSILE_ARC_ABILITY_FLOAT_FIELD
|
|
23
|
+
local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
24
|
+
local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_INTEGER_FIELD
|
|
18
25
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
19
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
|
|
20
29
|
local ____ability = require("engine.object-field.ability")
|
|
30
|
+
local AbilityField = ____ability.AbilityField
|
|
31
|
+
local AbilityLevelField = ____ability.AbilityLevelField
|
|
21
32
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
22
33
|
local ____timer = require("core.types.timer")
|
|
23
34
|
local Timer = ____timer.Timer
|
|
24
35
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
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, ...)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
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)
|
|
53
|
+
self.abilityBehavior = abilityBehavior
|
|
54
|
+
end
|
|
55
|
+
__TS__SetDescriptor(
|
|
56
|
+
____class_2.prototype,
|
|
57
|
+
"art",
|
|
58
|
+
{get = function(self)
|
|
59
|
+
return MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.abilityBehavior.ability, 0)
|
|
60
|
+
end},
|
|
61
|
+
true
|
|
62
|
+
)
|
|
63
|
+
__TS__SetDescriptor(
|
|
64
|
+
____class_2.prototype,
|
|
65
|
+
"arc",
|
|
66
|
+
{get = function(self)
|
|
67
|
+
return MISSILE_ARC_ABILITY_FLOAT_FIELD:getValue(self.abilityBehavior.ability)
|
|
68
|
+
end},
|
|
69
|
+
true
|
|
70
|
+
)
|
|
71
|
+
__TS__SetDescriptor(
|
|
72
|
+
____class_2.prototype,
|
|
73
|
+
"speed",
|
|
74
|
+
{get = function(self)
|
|
75
|
+
return MISSILE_SPEED_ABILITY_INTEGER_FIELD:getValue(self.abilityBehavior.ability)
|
|
76
|
+
end},
|
|
77
|
+
true
|
|
78
|
+
)
|
|
25
79
|
____exports.AbilityBehavior = __TS__Class()
|
|
26
80
|
local AbilityBehavior = ____exports.AbilityBehavior
|
|
27
81
|
AbilityBehavior.name = "AbilityBehavior"
|
|
28
82
|
__TS__ClassExtends(AbilityBehavior, Behavior)
|
|
29
|
-
function AbilityBehavior.prototype.____constructor(self, ability)
|
|
83
|
+
function AbilityBehavior.prototype.____constructor(self, ability, parameters)
|
|
30
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
|
|
31
113
|
end
|
|
32
114
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
33
115
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
34
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
|
|
35
135
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
36
136
|
Effect:flash(
|
|
37
137
|
AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
@@ -57,18 +157,27 @@ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrDurati
|
|
|
57
157
|
duration
|
|
58
158
|
)
|
|
59
159
|
else
|
|
160
|
+
local attachmentPoint = SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
60
161
|
Effect:flash(
|
|
61
162
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
62
163
|
xOrWidget,
|
|
63
|
-
|
|
164
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
64
165
|
yOrDuration
|
|
65
166
|
)
|
|
66
167
|
end
|
|
67
168
|
end
|
|
169
|
+
function AbilityBehavior.prototype.onCreate(self)
|
|
170
|
+
end
|
|
171
|
+
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
172
|
+
end
|
|
173
|
+
function AbilityBehavior.prototype.onMissileArrival(self, ...)
|
|
174
|
+
end
|
|
68
175
|
function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
|
|
69
176
|
end
|
|
70
177
|
function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
|
|
71
178
|
end
|
|
179
|
+
function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
180
|
+
end
|
|
72
181
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
73
182
|
end
|
|
74
183
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
@@ -127,19 +236,19 @@ __TS__SetDescriptor(
|
|
|
127
236
|
return self.object
|
|
128
237
|
end},
|
|
129
238
|
true
|
|
239
|
+
)
|
|
240
|
+
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
241
|
+
__TS__SetDescriptor(
|
|
242
|
+
AbilityBehavior.prototype,
|
|
243
|
+
"missileLaunchConfig",
|
|
244
|
+
{get = function(self)
|
|
245
|
+
local missileLaunchConfig = __TS__New(____exports.AbilityBehavior.MissileLaunchConfig, self)
|
|
246
|
+
rawset(self, "missileLaunchConfig", missileLaunchConfig)
|
|
247
|
+
return missileLaunchConfig
|
|
248
|
+
end},
|
|
249
|
+
true
|
|
130
250
|
);
|
|
131
251
|
(function(self)
|
|
132
|
-
local function createUnitEventListener(key)
|
|
133
|
-
return function(unit, ability, ...)
|
|
134
|
-
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
local function createZeroTimerUnitEventListener(key)
|
|
138
|
-
local unitEventListener = createUnitEventListener(key)
|
|
139
|
-
return function(unit, ability, ...)
|
|
140
|
-
Timer:run(unitEventListener, unit, ability, ...)
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
252
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
144
253
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
145
254
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
@@ -161,6 +270,18 @@ __TS__SetDescriptor(
|
|
|
161
270
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
162
271
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
163
272
|
end)(AbilityBehavior)
|
|
273
|
+
local function checkBehaviorOnValueChange(behavior, field)
|
|
274
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
275
|
+
if subscribedValues ~= nil and subscribedValues[field] ~= nil then
|
|
276
|
+
behavior:onValueChange(field)
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
AbilityField.valueChangeEvent:addListener(function(ability, field)
|
|
280
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
281
|
+
end)
|
|
282
|
+
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
283
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
284
|
+
end)
|
|
164
285
|
Ability.onCreate:addListener(function(ability)
|
|
165
286
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
166
287
|
if createBehaviorFunctions ~= nil then
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
import { Behavior } from "../behavior";
|
|
3
3
|
import { Ability } from "../internal/ability";
|
|
4
4
|
import { DamageEvent, DamagingEvent, Unit } from "../internal/unit";
|
|
5
|
+
import "../internal/unit+ability";
|
|
5
6
|
import "../internal/unit-missile-launch";
|
|
7
|
+
import { Item } from "../internal/item";
|
|
6
8
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
7
9
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
8
10
|
constructor(unit: Unit);
|
|
@@ -13,8 +15,12 @@ export declare abstract class UnitBehavior<PeriodicActionParameters extends any[
|
|
|
13
15
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
14
16
|
onDamageReceiving(source: Unit | undefined, event: DamagingEvent): void;
|
|
15
17
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
onAbilityGained(ability: Ability): void;
|
|
19
|
+
onAbilityLost(ability: Ability): void;
|
|
20
|
+
onItemDropped(item: Item): void;
|
|
21
|
+
onItemPickedUp(item: Item): void;
|
|
22
|
+
onItemUsed(item: Item): void;
|
|
23
|
+
onItemStacked(item: Item): void;
|
|
18
24
|
onKill(target: Unit): void;
|
|
19
25
|
onDeath(source: Unit | undefined): void;
|
|
20
26
|
}
|
|
@@ -7,6 +7,7 @@ local ____behavior = require("engine.behavior")
|
|
|
7
7
|
local Behavior = ____behavior.Behavior
|
|
8
8
|
local ____unit = require("engine.internal.unit")
|
|
9
9
|
local Unit = ____unit.Unit
|
|
10
|
+
require("engine.internal.unit+ability")
|
|
10
11
|
require("engine.internal.unit-missile-launch")
|
|
11
12
|
____exports.UnitBehavior = __TS__Class()
|
|
12
13
|
local UnitBehavior = ____exports.UnitBehavior
|
|
@@ -31,6 +32,14 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
31
32
|
end
|
|
32
33
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
33
34
|
end
|
|
35
|
+
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
36
|
+
end
|
|
37
|
+
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
38
|
+
end
|
|
39
|
+
function UnitBehavior.prototype.onItemUsed(self, item)
|
|
40
|
+
end
|
|
41
|
+
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
42
|
+
end
|
|
34
43
|
function UnitBehavior.prototype.onKill(self, target)
|
|
35
44
|
end
|
|
36
45
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
@@ -62,12 +71,30 @@ __TS__SetDescriptor(
|
|
|
62
71
|
end
|
|
63
72
|
____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
|
|
64
73
|
end)
|
|
74
|
+
Unit.abilityGainedEvent:addListener(function(source, target)
|
|
75
|
+
____exports.UnitBehavior:forAll(source, "onAbilityGained", target)
|
|
76
|
+
end)
|
|
77
|
+
Unit.abilityLostEvent:addListener(function(source, target)
|
|
78
|
+
____exports.UnitBehavior:forAll(source, "onAbilityLost", target)
|
|
79
|
+
end)
|
|
65
80
|
Unit.deathEvent:addListener(function(target, source)
|
|
66
81
|
if source ~= nil then
|
|
67
82
|
____exports.UnitBehavior:forAll(source, "onKill", target)
|
|
68
83
|
end
|
|
69
84
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
70
85
|
end)
|
|
86
|
+
Unit.itemDroppedEvent:addListener(function(unit, item)
|
|
87
|
+
____exports.UnitBehavior:forAll(unit, "onItemDropped", item)
|
|
88
|
+
end)
|
|
89
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
90
|
+
____exports.UnitBehavior:forAll(unit, "onItemPickedUp", item)
|
|
91
|
+
end)
|
|
92
|
+
Unit.itemUsedEvent:addListener(function(unit, item)
|
|
93
|
+
____exports.UnitBehavior:forAll(unit, "onItemUsed", item)
|
|
94
|
+
end)
|
|
95
|
+
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
96
|
+
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
97
|
+
end)
|
|
71
98
|
end)(UnitBehavior)
|
|
72
99
|
Unit.destroyEvent:addListener(function(unit)
|
|
73
100
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
package/engine/buff.d.ts
CHANGED
|
@@ -5,16 +5,21 @@ import { Ability } from "./internal/ability";
|
|
|
5
5
|
import { AbilityTypeId } from "./object-data/entry/ability-type";
|
|
6
6
|
import { BuffPolarity } from "./object-data/auxiliary/buff-polarity";
|
|
7
7
|
import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type";
|
|
8
|
-
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
8
|
+
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityEnumLevelField, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
9
9
|
import { CombatClassifications } from "./object-data/auxiliary/combat-classification";
|
|
10
|
-
import { IsExactlyAny,
|
|
10
|
+
import { IsExactlyAny, Prohibit, ReadonlyNonEmptyArray } from "../utility/types";
|
|
11
|
+
import { EffectParameters } from "../core/types/effect";
|
|
11
12
|
import { UnitBehavior } from "./behaviour/unit";
|
|
12
13
|
import type { Widget } from "../core/types/widget";
|
|
13
14
|
import { Destructor } from "../destroyable";
|
|
15
|
+
import { Event } from "../event";
|
|
14
16
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
17
|
+
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
15
18
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
16
19
|
type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
|
|
17
20
|
type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
|
|
21
|
+
export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
|
|
22
|
+
export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
|
|
18
23
|
export declare class BuffUniqueGroup {
|
|
19
24
|
}
|
|
20
25
|
export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
@@ -51,6 +56,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
51
56
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
52
57
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
53
58
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
59
|
+
evasionProbability?: NumberParameterValueType;
|
|
60
|
+
damageFactor?: NumberParameterValueType;
|
|
54
61
|
receivedDamageFactor?: NumberParameterValueType;
|
|
55
62
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
56
63
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
@@ -64,8 +71,14 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
64
71
|
disablesAutoAttack?: BooleanParameterValueType;
|
|
65
72
|
destroysOnDamage?: BooleanParameterValueType;
|
|
66
73
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
74
|
+
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
75
|
+
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
76
|
+
damageOnExpiration?: NumberParameterValueType;
|
|
77
|
+
healingOnExpiration?: NumberParameterValueType;
|
|
78
|
+
killsOnExpiration?: BooleanParameterValueType;
|
|
79
|
+
explodesOnExpiration?: BooleanParameterValueType;
|
|
67
80
|
uniqueGroup?: BuffUniqueGroup;
|
|
68
|
-
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters :
|
|
81
|
+
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
69
82
|
declare const enum BuffPropertyKey {
|
|
70
83
|
UNIT = 100,
|
|
71
84
|
SOURCE = 101,
|
|
@@ -86,19 +99,27 @@ declare const enum BuffPropertyKey {
|
|
|
86
99
|
HEALING_INTERVAL = 116,
|
|
87
100
|
REMAINING_HEALING_OVER_DURATION = 117,
|
|
88
101
|
HEALING_INTERVAL_TIMER = 118,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
DAMAGE_ON_EXPIRATION = 119,
|
|
103
|
+
HEALING_ON_EXPIRATION = 120,
|
|
104
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
|
|
105
|
+
DAMAGE_UPON_DEATH = 122,
|
|
106
|
+
DAMAGE_UPON_DEATH_RANGE = 123,
|
|
107
|
+
MEDIUM_DAMAGE_UPON_DEATH = 124,
|
|
108
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
|
|
109
|
+
SMALL_DAMAGE_UPON_DEATH = 126,
|
|
110
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
|
|
111
|
+
AUTO_ATTACK_COUNT = 128,
|
|
112
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 129,
|
|
113
|
+
DAMAGE_DEALT_EVENT_COUNT = 130,
|
|
114
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
115
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 132,
|
|
116
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
117
|
+
STUNS = 134,
|
|
118
|
+
IGNORES_STUN_IMMUNITY = 135,
|
|
119
|
+
DISABLES_AUTO_ATTACK = 136,
|
|
120
|
+
PROVIDES_INVULNERABILITY = 137,
|
|
121
|
+
KILLS_ON_EXPIRATION = 138,
|
|
122
|
+
EXPLODES_ON_EXPIRATION = 139
|
|
102
123
|
}
|
|
103
124
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
104
125
|
LEAST_DURATION = 0
|
|
@@ -106,17 +127,17 @@ export declare const enum BuffTypeIdSelectionPolicy {
|
|
|
106
127
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
107
128
|
export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
|
|
108
129
|
...typeId: [ApplicableBuffTypeId] | [
|
|
109
|
-
typeIds:
|
|
130
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
110
131
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
111
132
|
],
|
|
112
|
-
polarity:
|
|
113
|
-
resistanceType:
|
|
133
|
+
polarity: BuffPolarityParameterType,
|
|
134
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
114
135
|
...abilityOrParameters: [
|
|
115
136
|
ability: Ability,
|
|
116
137
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
117
138
|
] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
|
|
118
139
|
];
|
|
119
|
-
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> =
|
|
140
|
+
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
120
141
|
private _unit;
|
|
121
142
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
122
143
|
private [BuffPropertyKey.UNIT];
|
|
@@ -138,6 +159,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
138
159
|
private [BuffPropertyKey.HEALING_INTERVAL]?;
|
|
139
160
|
private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
|
|
140
161
|
private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
|
|
162
|
+
private [BuffPropertyKey.DAMAGE_ON_EXPIRATION]?;
|
|
163
|
+
private [BuffPropertyKey.HEALING_ON_EXPIRATION]?;
|
|
141
164
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
|
|
142
165
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
|
|
143
166
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
|
|
@@ -147,10 +170,16 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
147
170
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
148
171
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
149
172
|
private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
|
|
173
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
|
|
174
|
+
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
175
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
176
|
+
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
150
177
|
private [BuffPropertyKey.STUNS]?;
|
|
151
178
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
152
179
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
153
180
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
181
|
+
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
182
|
+
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
154
183
|
protected static readonly defaultParameters: BuffParameters;
|
|
155
184
|
get source(): Unit;
|
|
156
185
|
readonly typeId: ApplicableBuffTypeId;
|
|
@@ -187,6 +216,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
187
216
|
set healingPerInterval(healingPerInterval: number);
|
|
188
217
|
get healingInterval(): number;
|
|
189
218
|
set healingInterval(healingInterval: number);
|
|
219
|
+
get damageOnExpiration(): number;
|
|
220
|
+
set damageOnExpiration(damageOnExpiration: number);
|
|
221
|
+
get healingOnExpiration(): number;
|
|
222
|
+
set healingOnExpiration(healingOnExpiration: number);
|
|
223
|
+
get damageFactor(): number;
|
|
224
|
+
set damageFactor(damageFactor: number);
|
|
190
225
|
get receivedDamageFactor(): number;
|
|
191
226
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
192
227
|
get armorIncrease(): number;
|
|
@@ -199,6 +234,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
199
234
|
set disablesAutoAttack(disablesAutoAttack: boolean);
|
|
200
235
|
get providesInvulnerability(): boolean;
|
|
201
236
|
set providesInvulnerability(providesInvulnerability: boolean);
|
|
237
|
+
get killsOnExpiration(): boolean;
|
|
238
|
+
set killsOnExpiration(killsOnExpiration: boolean);
|
|
239
|
+
get explodesOnExpiration(): boolean;
|
|
240
|
+
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
241
|
+
get maximumDamageDealtEventCount(): number;
|
|
242
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
243
|
+
get maximumDamageReceivedEventCount(): number;
|
|
244
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
202
245
|
get maximumAutoAttackCount(): number;
|
|
203
246
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
204
247
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -207,15 +250,24 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
207
250
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
208
251
|
get movementSpeedIncreaseFactor(): number;
|
|
209
252
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
253
|
+
get evasionProbability(): number;
|
|
254
|
+
set evasionProbability(evasionProbability: number);
|
|
210
255
|
get duration(): number;
|
|
211
256
|
get remainingDuration(): number;
|
|
212
257
|
set remainingDuration(remainingDuration: number);
|
|
213
|
-
flashEffect(...parameters: [
|
|
258
|
+
flashEffect(...parameters: [
|
|
259
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
260
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
261
|
+
]): void;
|
|
214
262
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
263
|
+
protected onCreate(): void;
|
|
215
264
|
protected onDestroy(): Destructor;
|
|
216
265
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
217
266
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
267
|
+
onExpiration(): void;
|
|
218
268
|
onDeath(source: Unit | undefined): void;
|
|
219
269
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
270
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
271
|
+
static readonly destroyEvent: Event<[Buff<object>]>;
|
|
220
272
|
}
|
|
221
273
|
export {};
|