warscript 0.0.1-dev.0606d9c → 0.0.1-dev.064c144
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 +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +846 -790
- package/engine/behavior.d.ts +12 -1
- package/engine/behavior.lua +172 -70
- 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 +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +9 -3
- package/engine/behaviour/ability.lua +44 -25
- package/engine/behaviour/unit/stun-immunity.d.ts +11 -5
- package/engine/behaviour/unit/stun-immunity.lua +53 -28
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +259 -6
- package/engine/buff.d.ts +67 -44
- package/engine/buff.lua +347 -232
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -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 +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- 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 +1 -1
- package/engine/internal/unit/add-item-to-slot.lua +19 -27
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/item.lua +1 -1
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +45 -14
- package/engine/internal/unit.d.ts +43 -17
- package/engine/internal/unit.lua +340 -165
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- 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/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -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/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- 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/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- 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/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -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 +19 -17
- package/engine/object-data/entry/ability-type.lua +85 -24
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- 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 +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -93
- 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-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +69 -3
- package/engine/object-field/unit.lua +264 -7
- package/engine/object-field.d.ts +23 -6
- package/engine/object-field.lua +309 -126
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -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 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +6 -0
- package/engine/standard/fields/unit.lua +11 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +4 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +22 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -25,4 +25,25 @@ function RemoveBuffsSelfAbilityBehavior.prototype.onImpact(self, caster)
|
|
|
25
25
|
self:resolveCurrentAbilityDependentValue(self.autoDispel)
|
|
26
26
|
)
|
|
27
27
|
end
|
|
28
|
+
____exports.RemoveBuffsTargetAbilityBehavior = __TS__Class()
|
|
29
|
+
local RemoveBuffsTargetAbilityBehavior = ____exports.RemoveBuffsTargetAbilityBehavior
|
|
30
|
+
RemoveBuffsTargetAbilityBehavior.name = "RemoveBuffsTargetAbilityBehavior"
|
|
31
|
+
__TS__ClassExtends(RemoveBuffsTargetAbilityBehavior, AbilityBehavior)
|
|
32
|
+
function RemoveBuffsTargetAbilityBehavior.prototype.____constructor(self, ability, polarity, resistanceType, includeExpirationTimers, includeAuras, autoDispel)
|
|
33
|
+
AbilityBehavior.prototype.____constructor(self, ability)
|
|
34
|
+
self.polarity = polarity
|
|
35
|
+
self.resistanceType = resistanceType
|
|
36
|
+
self.includeExpirationTimers = includeExpirationTimers
|
|
37
|
+
self.includeAuras = includeAuras
|
|
38
|
+
self.autoDispel = autoDispel
|
|
39
|
+
end
|
|
40
|
+
function RemoveBuffsTargetAbilityBehavior.prototype.onUnitTargetImpact(self, _, target)
|
|
41
|
+
target:removeBuffs(
|
|
42
|
+
self:resolveCurrentAbilityDependentValue(self.polarity),
|
|
43
|
+
self:resolveCurrentAbilityDependentValue(self.resistanceType),
|
|
44
|
+
self:resolveCurrentAbilityDependentValue(self.includeExpirationTimers),
|
|
45
|
+
self:resolveCurrentAbilityDependentValue(self.includeAuras),
|
|
46
|
+
self:resolveCurrentAbilityDependentValue(self.autoDispel)
|
|
47
|
+
)
|
|
48
|
+
end
|
|
28
49
|
return ____exports
|
|
@@ -8,7 +8,7 @@ export declare class RestoreManaSelfAbilityBehavior extends AbilityBehavior {
|
|
|
8
8
|
constructor(ability: Ability, mana: AbilityDependentValue<number>);
|
|
9
9
|
onImpact(caster: Unit): void;
|
|
10
10
|
}
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class RestoreManaTargetAbilityBehavior extends AbilityBehavior {
|
|
12
12
|
private readonly mana;
|
|
13
13
|
constructor(ability: Ability, mana: AbilityDependentValue<number>);
|
|
14
14
|
onUnitTargetImpact(caster: Unit, target: Unit): void;
|
|
@@ -15,15 +15,15 @@ end
|
|
|
15
15
|
function RestoreManaSelfAbilityBehavior.prototype.onImpact(self, caster)
|
|
16
16
|
caster.mana = caster.mana + self:resolveCurrentAbilityDependentValue(self.mana)
|
|
17
17
|
end
|
|
18
|
-
____exports.
|
|
19
|
-
local
|
|
20
|
-
|
|
21
|
-
__TS__ClassExtends(
|
|
22
|
-
function
|
|
18
|
+
____exports.RestoreManaTargetAbilityBehavior = __TS__Class()
|
|
19
|
+
local RestoreManaTargetAbilityBehavior = ____exports.RestoreManaTargetAbilityBehavior
|
|
20
|
+
RestoreManaTargetAbilityBehavior.name = "RestoreManaTargetAbilityBehavior"
|
|
21
|
+
__TS__ClassExtends(RestoreManaTargetAbilityBehavior, AbilityBehavior)
|
|
22
|
+
function RestoreManaTargetAbilityBehavior.prototype.____constructor(self, ability, mana)
|
|
23
23
|
AbilityBehavior.prototype.____constructor(self, ability)
|
|
24
24
|
self.mana = mana
|
|
25
25
|
end
|
|
26
|
-
function
|
|
26
|
+
function RestoreManaTargetAbilityBehavior.prototype.onUnitTargetImpact(self, caster, target)
|
|
27
27
|
target.mana = target.mana + self:resolveCurrentAbilityDependentValue(self.mana)
|
|
28
28
|
end
|
|
29
29
|
return ____exports
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Behavior } from "../behavior";
|
|
3
|
-
import { Unit } from "../unit";
|
|
3
|
+
import { Unit } from "../internal/unit";
|
|
4
|
+
import "../internal/unit/ability";
|
|
4
5
|
import { Ability } from "../internal/ability";
|
|
5
6
|
import { AbilityTypeId } from "../object-data/entry/ability-type";
|
|
6
7
|
import { Widget } from "../../core/types/widget";
|
|
@@ -22,12 +23,17 @@ export declare abstract class AbilityBehavior<Parameters extends {
|
|
|
22
23
|
protected subscribe<T extends boolean | number | string>(value: SubscribableAbilityDependentValue<T>): void;
|
|
23
24
|
protected registerCommandEvent(orderTypeStringId?: string): void;
|
|
24
25
|
get ability(): Ability;
|
|
26
|
+
get unit(): Unit | undefined;
|
|
25
27
|
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value: AbilityDependentValue<T>): T;
|
|
26
28
|
protected resolveCurrentAbilityDependentValue<T extends boolean | number | string>(value?: AbilityDependentValue<T>): T | undefined;
|
|
27
|
-
protected flashCasterEffect(widget: Widget): void;
|
|
29
|
+
protected flashCasterEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
30
|
+
protected flashTargetEffect(widget: Widget, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
28
31
|
protected flashAreaEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
29
32
|
protected flashEffect(x: number, y: number, ...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]): void;
|
|
30
|
-
protected flashSpecialEffect(...args: [
|
|
33
|
+
protected flashSpecialEffect(...args: [
|
|
34
|
+
...pointOrWidget: [x: number, y: number] | [widget: Widget],
|
|
35
|
+
...parametersOrDuration: [parameters?: EffectParameters] | [duration?: number, parameters?: EffectParameters]
|
|
36
|
+
]): void;
|
|
31
37
|
private static MissileLaunchConfig;
|
|
32
38
|
private get missileLaunchConfig();
|
|
33
39
|
protected onCreate(): void;
|
|
@@ -5,11 +5,11 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
|
5
5
|
local __TS__New = ____lualib.__TS__New
|
|
6
6
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
7
7
|
local ____exports = {}
|
|
8
|
-
local createUnitEventListener
|
|
9
8
|
local ____behavior = require("engine.behavior")
|
|
10
9
|
local Behavior = ____behavior.Behavior
|
|
11
|
-
local ____unit = require("engine.unit")
|
|
10
|
+
local ____unit = require("engine.internal.unit")
|
|
12
11
|
local Unit = ____unit.Unit
|
|
12
|
+
require("engine.internal.unit.ability")
|
|
13
13
|
local ____ability = require("engine.internal.ability")
|
|
14
14
|
local Ability = ____ability.Ability
|
|
15
15
|
local ____effect = require("core.types.effect")
|
|
@@ -24,21 +24,15 @@ local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL
|
|
|
24
24
|
local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_INTEGER_FIELD
|
|
25
25
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
26
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
|
|
27
29
|
local ____ability = require("engine.object-field.ability")
|
|
28
30
|
local AbilityField = ____ability.AbilityField
|
|
29
31
|
local AbilityLevelField = ____ability.AbilityLevelField
|
|
30
32
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
31
|
-
local ____timer = require("core.types.timer")
|
|
32
|
-
local Timer = ____timer.Timer
|
|
33
33
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
34
34
|
local exclusiveOnImpactHandlerAbilityBehaviorByAbility = setmetatable({}, {__mode = "k"})
|
|
35
|
-
local function
|
|
36
|
-
local unitEventListener = createUnitEventListener(key)
|
|
37
|
-
return function(unit, ability, ...)
|
|
38
|
-
Timer:run(unitEventListener, unit, ability, ...)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
createUnitEventListener = function(key)
|
|
35
|
+
local function createUnitEventListener(key)
|
|
42
36
|
return function(unit, ability, ...)
|
|
43
37
|
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
44
38
|
end
|
|
@@ -112,12 +106,22 @@ end
|
|
|
112
106
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
113
107
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
114
108
|
end
|
|
115
|
-
function AbilityBehavior.prototype.flashCasterEffect(self, widget)
|
|
109
|
+
function AbilityBehavior.prototype.flashCasterEffect(self, widget, ...)
|
|
116
110
|
local attachmentPoint = CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
117
111
|
Effect:flash(
|
|
118
112
|
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
119
113
|
widget,
|
|
120
|
-
attachmentPoint ~= "" and attachmentPoint or "origin"
|
|
114
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
115
|
+
...
|
|
116
|
+
)
|
|
117
|
+
end
|
|
118
|
+
function AbilityBehavior.prototype.flashTargetEffect(self, widget, ...)
|
|
119
|
+
local attachmentPoint = TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
120
|
+
Effect:flash(
|
|
121
|
+
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
122
|
+
widget,
|
|
123
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
124
|
+
...
|
|
121
125
|
)
|
|
122
126
|
end
|
|
123
127
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
@@ -136,20 +140,23 @@ function AbilityBehavior.prototype.flashEffect(self, x, y, ...)
|
|
|
136
140
|
...
|
|
137
141
|
)
|
|
138
142
|
end
|
|
139
|
-
function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget,
|
|
143
|
+
function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrParametersOrDuration, durationOrParameters, parameters)
|
|
140
144
|
if type(xOrWidget) == "number" then
|
|
141
145
|
Effect:flash(
|
|
142
146
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
143
147
|
xOrWidget,
|
|
144
|
-
|
|
145
|
-
|
|
148
|
+
yOrParametersOrDuration,
|
|
149
|
+
durationOrParameters,
|
|
150
|
+
parameters
|
|
146
151
|
)
|
|
147
152
|
else
|
|
153
|
+
local attachmentPoint = SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
148
154
|
Effect:flash(
|
|
149
155
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
150
156
|
xOrWidget,
|
|
151
|
-
|
|
152
|
-
|
|
157
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
158
|
+
yOrParametersOrDuration,
|
|
159
|
+
durationOrParameters
|
|
153
160
|
)
|
|
154
161
|
end
|
|
155
162
|
end
|
|
@@ -224,6 +231,18 @@ __TS__SetDescriptor(
|
|
|
224
231
|
end},
|
|
225
232
|
true
|
|
226
233
|
)
|
|
234
|
+
__TS__SetDescriptor(
|
|
235
|
+
AbilityBehavior.prototype,
|
|
236
|
+
"unit",
|
|
237
|
+
{get = function(self)
|
|
238
|
+
local owner = self.object.owner
|
|
239
|
+
if __TS__InstanceOf(owner, Unit) then
|
|
240
|
+
return owner
|
|
241
|
+
end
|
|
242
|
+
return owner.owner
|
|
243
|
+
end},
|
|
244
|
+
true
|
|
245
|
+
)
|
|
227
246
|
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
228
247
|
__TS__SetDescriptor(
|
|
229
248
|
AbilityBehavior.prototype,
|
|
@@ -247,13 +266,13 @@ __TS__SetDescriptor(
|
|
|
247
266
|
Unit.abilityDestructibleTargetChannelingStartEvent:addListener(createUnitEventListener("onDestructibleTargetChannelingStart"))
|
|
248
267
|
Unit.abilityPointTargetChannelingStartEvent:addListener(createUnitEventListener("onPointTargetChannelingStart"))
|
|
249
268
|
Unit.abilityNoTargetChannelingStartEvent:addListener(createUnitEventListener("onNoTargetChannelingStart"))
|
|
250
|
-
Unit.
|
|
251
|
-
Unit.
|
|
252
|
-
Unit.
|
|
253
|
-
Unit.
|
|
254
|
-
Unit.
|
|
255
|
-
Unit.
|
|
256
|
-
Unit.
|
|
269
|
+
Unit.abilityImpactEvent:addListener(createUnitEventListener("onImpact"))
|
|
270
|
+
Unit.abilityWidgetTargetImpactEvent:addListener(createUnitEventListener("onWidgetTargetImpact"))
|
|
271
|
+
Unit.abilityUnitTargetImpactEvent:addListener(createUnitEventListener("onUnitTargetImpact"))
|
|
272
|
+
Unit.abilityItemTargetImpactEvent:addListener(createUnitEventListener("onItemTargetImpact"))
|
|
273
|
+
Unit.abilityDestructibleTargetImpactEvent:addListener(createUnitEventListener("onDestructibleTargetImpact"))
|
|
274
|
+
Unit.abilityPointTargetImpactEvent:addListener(createUnitEventListener("onPointTargetImpact"))
|
|
275
|
+
Unit.abilityNoTargetImpactEvent:addListener(createUnitEventListener("onNoTargetImpact"))
|
|
257
276
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
258
277
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
259
278
|
end)(AbilityBehavior)
|
|
@@ -4,15 +4,21 @@ import { Unit } from "../../unit";
|
|
|
4
4
|
import { BuffTypeId } from "../../object-data/entry/buff-type";
|
|
5
5
|
import { TextTagPreset } from "../../text-tag";
|
|
6
6
|
import { Destructor } from "../../../destroyable";
|
|
7
|
-
|
|
7
|
+
import { BehaviorPriority } from "../../behavior";
|
|
8
|
+
export type StunImmunityUnitBehaviorParameters = {
|
|
9
|
+
readonly priority?: BehaviorPriority;
|
|
8
10
|
buffTypeIds?: LuaSet<BuffTypeId>;
|
|
9
11
|
textTagPreset?: TextTagPreset;
|
|
10
12
|
textTagText?: string;
|
|
13
|
+
additionalAction?: (this: void, unit: Unit) => void;
|
|
11
14
|
};
|
|
12
15
|
export declare class StunImmunityUnitBehavior extends UnitBehavior {
|
|
13
|
-
|
|
14
|
-
static defaultParameters:
|
|
15
|
-
constructor(unit: Unit, parameters?:
|
|
16
|
+
readonly parameters: Readonly<StunImmunityUnitBehaviorParameters>;
|
|
17
|
+
static defaultParameters: StunImmunityUnitBehaviorParameters;
|
|
18
|
+
constructor(unit: Unit, parameters?: Readonly<StunImmunityUnitBehaviorParameters>);
|
|
16
19
|
protected onDestroy(): Destructor;
|
|
17
|
-
|
|
20
|
+
onDamageReceived(): void;
|
|
21
|
+
onTargetingAbilityChannelingStart(): void;
|
|
22
|
+
onTargetingAbilityImpact(): void;
|
|
23
|
+
protected onEffect(): void;
|
|
18
24
|
}
|
|
@@ -12,31 +12,53 @@ local flatMapToLuaSet = ____arrays.flatMapToLuaSet
|
|
|
12
12
|
local map = ____arrays.map
|
|
13
13
|
local ____text_2Dtag = require("engine.text-tag")
|
|
14
14
|
local TextTag = ____text_2Dtag.TextTag
|
|
15
|
+
local ____timer = require("core.types.timer")
|
|
16
|
+
local Timer = ____timer.Timer
|
|
15
17
|
local DEFAULT_BUFF_TYPE_IDS = postcompile(function()
|
|
16
18
|
return flatMapToLuaSet(
|
|
17
19
|
AbilityType:getAllByBaseIds(map({
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
20
|
+
"AHtb",
|
|
21
|
+
"AHbh",
|
|
22
|
+
"AOws",
|
|
23
|
+
"AOw2",
|
|
24
|
+
"AUim",
|
|
25
|
+
"Acyc",
|
|
26
|
+
"ANfb",
|
|
27
|
+
"ANsb",
|
|
28
|
+
"ANcs",
|
|
29
|
+
"ANc1",
|
|
30
|
+
"ANc2",
|
|
31
|
+
"ANc3",
|
|
32
|
+
"ACbh",
|
|
33
|
+
"ANbh",
|
|
34
|
+
"SCc1",
|
|
35
|
+
"ACcy",
|
|
36
|
+
"ANb2",
|
|
37
|
+
"Awrs",
|
|
38
|
+
"Awrh",
|
|
39
|
+
"Awrg",
|
|
40
|
+
"ACtb",
|
|
41
|
+
"ACcb"
|
|
36
42
|
}, fourCC)),
|
|
37
43
|
function(abilityType) return __TS__ArrayFlat(abilityType.buffTypeIds) end
|
|
38
44
|
)
|
|
39
45
|
end)
|
|
46
|
+
local function process(behavior)
|
|
47
|
+
local hasRemovedBuffs = false
|
|
48
|
+
for buffTypeId in pairs(behavior.parameters.buffTypeIds or DEFAULT_BUFF_TYPE_IDS) do
|
|
49
|
+
hasRemovedBuffs = hasRemovedBuffs or behavior.unit:removeBuff(buffTypeId)
|
|
50
|
+
end
|
|
51
|
+
if hasRemovedBuffs then
|
|
52
|
+
behavior.onEffect(behavior)
|
|
53
|
+
if behavior.parameters.textTagText ~= nil then
|
|
54
|
+
TextTag:flash(TextTag.MISS, behavior.parameters.textTagText, behavior.unit.x, behavior.unit.y)
|
|
55
|
+
end
|
|
56
|
+
local ____opt_0 = behavior.parameters.additionalAction
|
|
57
|
+
if ____opt_0 ~= nil then
|
|
58
|
+
____opt_0(behavior.unit)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
40
62
|
____exports.StunImmunityUnitBehavior = __TS__Class()
|
|
41
63
|
local StunImmunityUnitBehavior = ____exports.StunImmunityUnitBehavior
|
|
42
64
|
StunImmunityUnitBehavior.name = "StunImmunityUnitBehavior"
|
|
@@ -45,23 +67,26 @@ function StunImmunityUnitBehavior.prototype.____constructor(self, unit, paramete
|
|
|
45
67
|
if parameters == nil then
|
|
46
68
|
parameters = ____exports.StunImmunityUnitBehavior.defaultParameters
|
|
47
69
|
end
|
|
48
|
-
UnitBehavior.prototype.____constructor(self, unit)
|
|
70
|
+
UnitBehavior.prototype.____constructor(self, unit, parameters.priority)
|
|
49
71
|
self.parameters = parameters
|
|
50
72
|
unit:decrementStunCounter()
|
|
51
|
-
self
|
|
73
|
+
process(self)
|
|
52
74
|
end
|
|
53
75
|
function StunImmunityUnitBehavior.prototype.onDestroy(self)
|
|
54
76
|
self.unit:incrementStunCounter()
|
|
55
77
|
return UnitBehavior.prototype.onDestroy(self)
|
|
56
78
|
end
|
|
57
|
-
function StunImmunityUnitBehavior.prototype.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
79
|
+
function StunImmunityUnitBehavior.prototype.onDamageReceived(self)
|
|
80
|
+
process(self)
|
|
81
|
+
Timer:run(process, self)
|
|
82
|
+
end
|
|
83
|
+
function StunImmunityUnitBehavior.prototype.onTargetingAbilityChannelingStart(self)
|
|
84
|
+
process(self)
|
|
85
|
+
end
|
|
86
|
+
function StunImmunityUnitBehavior.prototype.onTargetingAbilityImpact(self)
|
|
87
|
+
process(self)
|
|
88
|
+
end
|
|
89
|
+
function StunImmunityUnitBehavior.prototype.onEffect(self)
|
|
65
90
|
end
|
|
66
91
|
StunImmunityUnitBehavior.defaultParameters = {buffTypeIds = DEFAULT_BUFF_TYPE_IDS, textTagPreset = TextTag.MISS, textTagText = nil}
|
|
67
92
|
return ____exports
|
|
@@ -1,26 +1,64 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Behavior } from "../behavior";
|
|
2
|
+
import { Behavior, BehaviorPriority } from "../behavior";
|
|
3
3
|
import { Ability } from "../internal/ability";
|
|
4
4
|
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 { AbilityBehavior } from "./ability";
|
|
9
|
+
import { Event } from "../../event";
|
|
10
|
+
import { Destructor } from "../../destroyable";
|
|
11
|
+
import type { Widget } from "../../core/types/widget";
|
|
12
|
+
import { Destructable } from "../../core/types/destructable";
|
|
13
|
+
import type { Buff } from "../buff";
|
|
14
|
+
import { UnitBonusType } from "../internal/unit/bonus";
|
|
15
|
+
import { Player } from "../../core/types/player";
|
|
16
|
+
import { UnitTypeId } from "../object-data/entry/unit-type";
|
|
8
17
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
9
18
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
10
|
-
|
|
19
|
+
readonly sourceAbilityBehavior?: AbilityBehavior;
|
|
20
|
+
private _bonusIdByBonusType?;
|
|
21
|
+
constructor(unit: Unit, priority?: BehaviorPriority);
|
|
22
|
+
protected onDestroy(): Destructor;
|
|
11
23
|
get unit(): Unit;
|
|
24
|
+
protected getUnitBonus(bonusType: UnitBonusType): number;
|
|
25
|
+
protected addOrUpdateOrRemoveUnitBonus(bonusType: UnitBonusType, value: number): void;
|
|
26
|
+
protected registerOwningPlayerEvent<T extends string, Args extends any[]>(this: UnitBehavior<PeriodicActionParameters> & Record<T, (this: this, ...args: Args) => unknown>, event: Event<[...Args]>, extractPlayer: (...args: Args) => Player | undefined, listener: T): void;
|
|
27
|
+
protected registerInRangeUnitEvent<T extends string, Args extends any[]>(this: UnitBehavior<PeriodicActionParameters> & Record<T, (this: this, ...args: Args) => unknown>, event: Event<[...Args]>, extractUnit: (...args: Args) => Unit | undefined, range: number, listener: T): void;
|
|
28
|
+
onImmediateOrder(orderId: number): void;
|
|
29
|
+
onTargetOrder(orderId: number, target: Widget): void;
|
|
30
|
+
onPointOrder(orderId: number, x: number, y: number): void;
|
|
12
31
|
onAutoAttackStart(target: Unit): void;
|
|
13
32
|
onAutoAttackFinish(target: Unit): void;
|
|
33
|
+
onTargetingAutoAttackStart(source: Unit): void;
|
|
34
|
+
onTargetingAutoAttackFinish(source: Unit): void;
|
|
14
35
|
onDamageDealing(target: Unit, event: DamagingEvent): void;
|
|
15
36
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
16
37
|
onDamageReceiving(source: Unit | undefined, event: DamagingEvent): void;
|
|
17
38
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
18
39
|
onAbilityGained(ability: Ability): void;
|
|
19
40
|
onAbilityLost(ability: Ability): void;
|
|
41
|
+
onAbilityChannelingStart(ability: Ability): void;
|
|
42
|
+
onAbilityImpact(ability: Ability): void;
|
|
43
|
+
onAbilityWidgetTargetImpact(ability: Ability, target: Widget): void;
|
|
44
|
+
onAbilityUnitTargetImpact(ability: Ability, target: Unit): void;
|
|
45
|
+
onAbilityItemTargetImpact(ability: Ability, target: Item): void;
|
|
46
|
+
onAbilityDestructibleTargetImpact(ability: Ability, target: Destructable): void;
|
|
47
|
+
onAbilityPointTargetImpact(ability: Ability, x: number, y: number): void;
|
|
48
|
+
onAbilityNoTargetImpact(ability: Ability): void;
|
|
49
|
+
onAbilityChannelingFinish(ability: Ability): void;
|
|
50
|
+
onAbilityStop(ability: Ability): void;
|
|
51
|
+
onTargetingAbilityChannelingStart(ability: Ability, source: Unit): void;
|
|
52
|
+
onTargetingAbilityImpact(ability: Ability, source: Unit): void;
|
|
53
|
+
onBuffGained(buff: Buff): void;
|
|
54
|
+
onBuffLost(buff: Buff): void;
|
|
20
55
|
onItemDropped(item: Item): void;
|
|
21
56
|
onItemPickedUp(item: Item): void;
|
|
22
57
|
onItemUsed(item: Item): void;
|
|
23
58
|
onItemStacked(item: Item): void;
|
|
59
|
+
onItemChargesChanged(item: Item): void;
|
|
24
60
|
onKill(target: Unit): void;
|
|
25
61
|
onDeath(source: Unit | undefined): void;
|
|
62
|
+
onOwnerChange(previousOwner: Player): void;
|
|
63
|
+
static bindUnitType<Args extends any[]>(this: UnitBehaviorConstructor<Args>, unitTypeId: UnitTypeId, ...args: Args): void;
|
|
26
64
|
}
|