warscript 0.0.1-dev.ee2345e → 0.0.1-dev.f0a9ffe
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 +5 -1
- package/attributes.lua +8 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- 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/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +25 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +844 -788
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +12 -10
- package/engine/behavior.lua +59 -33
- 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/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -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 -15
- 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 +27 -4
- package/engine/behaviour/ability.lua +152 -26
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +36 -2
- package/engine/behaviour/unit.lua +186 -0
- package/engine/buff.d.ts +104 -41
- package/engine/buff.lua +471 -212
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +20 -13
- package/engine/internal/ability.lua +103 -76
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +131 -28
- 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/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.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 +45 -1
- package/engine/internal/unit/ability.lua +98 -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/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- 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/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +2 -2
- 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+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +33 -7
- package/engine/internal/unit.d.ts +87 -22
- package/engine/internal/unit.lua +580 -194
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +7 -2
- package/engine/local-client.lua +82 -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 -3
- 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/combat-classification.d.ts +0 -2
- 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/sound-preset-name.d.ts +5 -1
- 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.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -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/channel.d.ts +0 -1
- 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/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- 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/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- 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 -18
- package/engine/object-data/entry/ability-type.lua +90 -36
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -2
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- 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 +58 -7
- package/engine/object-data/entry/unit-type.lua +480 -75
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- 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 +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field/unit.d.ts +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -7
- package/engine/object-field.lua +187 -89
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +9 -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/entries/unit-type.d.ts +39 -1
- package/engine/standard/entries/unit-type.lua +39 -1
- package/engine/standard/fields/ability.d.ts +3 -1
- package/engine/standard/fields/ability.lua +3 -1
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +175 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +13 -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 +2 -3
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/package.json +13 -14
- 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 +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +12 -5
- package/utility/arrays.lua +37 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -3
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +5 -2
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +3 -2
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -12,31 +12,46 @@ 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 and behavior.parameters.textTagText ~= nil then
|
|
52
|
+
TextTag:flash(TextTag.MISS, behavior.parameters.textTagText, behavior.unit.x, behavior.unit.y)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
40
55
|
____exports.StunImmunityUnitBehavior = __TS__Class()
|
|
41
56
|
local StunImmunityUnitBehavior = ____exports.StunImmunityUnitBehavior
|
|
42
57
|
StunImmunityUnitBehavior.name = "StunImmunityUnitBehavior"
|
|
@@ -48,20 +63,21 @@ function StunImmunityUnitBehavior.prototype.____constructor(self, unit, paramete
|
|
|
48
63
|
UnitBehavior.prototype.____constructor(self, unit)
|
|
49
64
|
self.parameters = parameters
|
|
50
65
|
unit:decrementStunCounter()
|
|
51
|
-
self
|
|
66
|
+
process(self)
|
|
52
67
|
end
|
|
53
68
|
function StunImmunityUnitBehavior.prototype.onDestroy(self)
|
|
54
69
|
self.unit:incrementStunCounter()
|
|
55
70
|
return UnitBehavior.prototype.onDestroy(self)
|
|
56
71
|
end
|
|
57
|
-
function StunImmunityUnitBehavior.prototype.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
function StunImmunityUnitBehavior.prototype.onDamageReceived(self)
|
|
73
|
+
process(self)
|
|
74
|
+
Timer:run(process, self)
|
|
75
|
+
end
|
|
76
|
+
function StunImmunityUnitBehavior.prototype.onTargetingAbilityChannelingStart(self)
|
|
77
|
+
process(self)
|
|
78
|
+
end
|
|
79
|
+
function StunImmunityUnitBehavior.prototype.onTargetingAbilityImpact(self)
|
|
80
|
+
process(self)
|
|
65
81
|
end
|
|
66
82
|
StunImmunityUnitBehavior.defaultParameters = {buffTypeIds = DEFAULT_BUFF_TYPE_IDS, textTagPreset = TextTag.MISS, textTagText = nil}
|
|
67
83
|
return ____exports
|
|
@@ -2,19 +2,53 @@
|
|
|
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";
|
|
8
|
+
import type { 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";
|
|
6
14
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
7
15
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
8
16
|
constructor(unit: Unit);
|
|
17
|
+
protected onDestroy(): Destructor;
|
|
18
|
+
readonly sourceAbilityBehavior?: AbilityBehavior;
|
|
9
19
|
get unit(): Unit;
|
|
20
|
+
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;
|
|
21
|
+
onImmediateOrder(orderId: number): void;
|
|
22
|
+
onTargetOrder(orderId: number, target: Widget): void;
|
|
23
|
+
onPointOrder(orderId: number, x: number, y: number): void;
|
|
10
24
|
onAutoAttackStart(target: Unit): void;
|
|
11
25
|
onAutoAttackFinish(target: Unit): void;
|
|
26
|
+
onTargetingAutoAttackStart(source: Unit): void;
|
|
27
|
+
onTargetingAutoAttackFinish(source: Unit): void;
|
|
12
28
|
onDamageDealing(target: Unit, event: DamagingEvent): void;
|
|
13
29
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
14
30
|
onDamageReceiving(source: Unit | undefined, event: DamagingEvent): void;
|
|
15
31
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
16
|
-
|
|
17
|
-
|
|
32
|
+
onAbilityGained(ability: Ability): void;
|
|
33
|
+
onAbilityLost(ability: Ability): void;
|
|
34
|
+
onAbilityChannelingStart(ability: Ability): void;
|
|
35
|
+
onAbilityImpact(ability: Ability): void;
|
|
36
|
+
onAbilityWidgetTargetImpact(ability: Ability, target: Widget): void;
|
|
37
|
+
onAbilityUnitTargetImpact(ability: Ability, target: Unit): void;
|
|
38
|
+
onAbilityItemTargetImpact(ability: Ability, target: Item): void;
|
|
39
|
+
onAbilityDestructibleTargetImpact(ability: Ability, target: Destructable): void;
|
|
40
|
+
onAbilityPointTargetImpact(ability: Ability, x: number, y: number): void;
|
|
41
|
+
onAbilityNoTargetImpact(ability: Ability): void;
|
|
42
|
+
onAbilityChannelingFinish(ability: Ability): void;
|
|
43
|
+
onAbilityStop(ability: Ability): void;
|
|
44
|
+
onTargetingAbilityChannelingStart(ability: Ability, source: Unit): void;
|
|
45
|
+
onTargetingAbilityImpact(ability: Ability, source: Unit): void;
|
|
46
|
+
onBuffGained(buff: Buff): void;
|
|
47
|
+
onItemDropped(item: Item): void;
|
|
48
|
+
onItemPickedUp(item: Item): void;
|
|
49
|
+
onItemUsed(item: Item): void;
|
|
50
|
+
onItemStacked(item: Item): void;
|
|
51
|
+
onItemChargesChanged(item: Item): void;
|
|
18
52
|
onKill(target: Unit): void;
|
|
19
53
|
onDeath(source: Unit | undefined): void;
|
|
20
54
|
}
|
|
@@ -1,13 +1,26 @@
|
|
|
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__New = ____lualib.__TS__New
|
|
4
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
6
|
local ____exports = {}
|
|
6
7
|
local ____behavior = require("engine.behavior")
|
|
7
8
|
local Behavior = ____behavior.Behavior
|
|
8
9
|
local ____unit = require("engine.internal.unit")
|
|
9
10
|
local Unit = ____unit.Unit
|
|
11
|
+
require("engine.internal.unit+ability")
|
|
10
12
|
require("engine.internal.unit-missile-launch")
|
|
13
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
14
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
15
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
16
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
17
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
18
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
19
|
+
local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
|
|
20
|
+
local behaviorsByEvent = {}
|
|
21
|
+
local rangeByBehaviorByEvent = {}
|
|
22
|
+
local listenerByBehaviorByEvent = {}
|
|
23
|
+
local eventsByBehavior = {}
|
|
11
24
|
____exports.UnitBehavior = __TS__Class()
|
|
12
25
|
local UnitBehavior = ____exports.UnitBehavior
|
|
13
26
|
UnitBehavior.name = "UnitBehavior"
|
|
@@ -15,10 +28,69 @@ __TS__ClassExtends(UnitBehavior, Behavior)
|
|
|
15
28
|
function UnitBehavior.prototype.____constructor(self, unit)
|
|
16
29
|
Behavior.prototype.____constructor(self, unit)
|
|
17
30
|
end
|
|
31
|
+
function UnitBehavior.prototype.onDestroy(self)
|
|
32
|
+
local events = eventsByBehavior[self]
|
|
33
|
+
if events ~= nil then
|
|
34
|
+
for event in pairs(events) do
|
|
35
|
+
local ____opt_0 = behaviorsByEvent[event]
|
|
36
|
+
if ____opt_0 ~= nil then
|
|
37
|
+
____opt_0:remove(self)
|
|
38
|
+
end
|
|
39
|
+
local ____opt_2 = rangeByBehaviorByEvent[event]
|
|
40
|
+
if ____opt_2 ~= nil then
|
|
41
|
+
____opt_2[self] = nil
|
|
42
|
+
end
|
|
43
|
+
local ____opt_4 = listenerByBehaviorByEvent[event]
|
|
44
|
+
if ____opt_4 ~= nil then
|
|
45
|
+
____opt_4[self] = nil
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
eventsByBehavior[self] = nil
|
|
49
|
+
end
|
|
50
|
+
return Behavior.prototype.onDestroy(self)
|
|
51
|
+
end
|
|
52
|
+
function UnitBehavior.prototype.registerInRangeUnitEvent(self, event, extractUnit, range, listener)
|
|
53
|
+
local rangeByBehavior = getOrPut(rangeByBehaviorByEvent, event, mutableLuaMap)
|
|
54
|
+
rangeByBehavior[self] = range
|
|
55
|
+
local listenerByBehavior = getOrPut(listenerByBehaviorByEvent, event, mutableLuaMap)
|
|
56
|
+
listenerByBehavior[self] = listener
|
|
57
|
+
getOrPut(eventsByBehavior, self, mutableLuaSet)[event] = true
|
|
58
|
+
local behaviors = behaviorsByEvent[event]
|
|
59
|
+
if behaviors == nil then
|
|
60
|
+
event:addListener(function(...)
|
|
61
|
+
local behaviors = behaviorsByEvent[event]
|
|
62
|
+
if behaviors ~= nil then
|
|
63
|
+
local unit = extractUnit(...)
|
|
64
|
+
if unit ~= nil then
|
|
65
|
+
for behavior in pairs(behaviors) do
|
|
66
|
+
local range = rangeByBehavior[behavior]
|
|
67
|
+
if range ~= nil and unit:getCollisionDistanceTo(behavior.unit) <= range then
|
|
68
|
+
local ____self_6 = behavior
|
|
69
|
+
____self_6[listenerByBehavior[behavior]](____self_6, ...)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end)
|
|
75
|
+
behaviors = __TS__New(LinkedSet)
|
|
76
|
+
behaviorsByEvent[event] = behaviors
|
|
77
|
+
end
|
|
78
|
+
behaviors:add(self)
|
|
79
|
+
end
|
|
80
|
+
function UnitBehavior.prototype.onImmediateOrder(self, orderId)
|
|
81
|
+
end
|
|
82
|
+
function UnitBehavior.prototype.onTargetOrder(self, orderId, target)
|
|
83
|
+
end
|
|
84
|
+
function UnitBehavior.prototype.onPointOrder(self, orderId, x, y)
|
|
85
|
+
end
|
|
18
86
|
function UnitBehavior.prototype.onAutoAttackStart(self, target)
|
|
19
87
|
end
|
|
20
88
|
function UnitBehavior.prototype.onAutoAttackFinish(self, target)
|
|
21
89
|
end
|
|
90
|
+
function UnitBehavior.prototype.onTargetingAutoAttackStart(self, source)
|
|
91
|
+
end
|
|
92
|
+
function UnitBehavior.prototype.onTargetingAutoAttackFinish(self, source)
|
|
93
|
+
end
|
|
22
94
|
function UnitBehavior.prototype.onDamageDealing(self, target, event)
|
|
23
95
|
end
|
|
24
96
|
function UnitBehavior.prototype.onDamageDealt(self, target, event)
|
|
@@ -31,6 +103,42 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
31
103
|
end
|
|
32
104
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
33
105
|
end
|
|
106
|
+
function UnitBehavior.prototype.onAbilityChannelingStart(self, ability)
|
|
107
|
+
end
|
|
108
|
+
function UnitBehavior.prototype.onAbilityImpact(self, ability)
|
|
109
|
+
end
|
|
110
|
+
function UnitBehavior.prototype.onAbilityWidgetTargetImpact(self, ability, target)
|
|
111
|
+
end
|
|
112
|
+
function UnitBehavior.prototype.onAbilityUnitTargetImpact(self, ability, target)
|
|
113
|
+
end
|
|
114
|
+
function UnitBehavior.prototype.onAbilityItemTargetImpact(self, ability, target)
|
|
115
|
+
end
|
|
116
|
+
function UnitBehavior.prototype.onAbilityDestructibleTargetImpact(self, ability, target)
|
|
117
|
+
end
|
|
118
|
+
function UnitBehavior.prototype.onAbilityPointTargetImpact(self, ability, x, y)
|
|
119
|
+
end
|
|
120
|
+
function UnitBehavior.prototype.onAbilityNoTargetImpact(self, ability)
|
|
121
|
+
end
|
|
122
|
+
function UnitBehavior.prototype.onAbilityChannelingFinish(self, ability)
|
|
123
|
+
end
|
|
124
|
+
function UnitBehavior.prototype.onAbilityStop(self, ability)
|
|
125
|
+
end
|
|
126
|
+
function UnitBehavior.prototype.onTargetingAbilityChannelingStart(self, ability, source)
|
|
127
|
+
end
|
|
128
|
+
function UnitBehavior.prototype.onTargetingAbilityImpact(self, ability, source)
|
|
129
|
+
end
|
|
130
|
+
function UnitBehavior.prototype.onBuffGained(self, buff)
|
|
131
|
+
end
|
|
132
|
+
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
133
|
+
end
|
|
134
|
+
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
135
|
+
end
|
|
136
|
+
function UnitBehavior.prototype.onItemUsed(self, item)
|
|
137
|
+
end
|
|
138
|
+
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
139
|
+
end
|
|
140
|
+
function UnitBehavior.prototype.onItemChargesChanged(self, item)
|
|
141
|
+
end
|
|
34
142
|
function UnitBehavior.prototype.onKill(self, target)
|
|
35
143
|
end
|
|
36
144
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
@@ -44,11 +152,28 @@ __TS__SetDescriptor(
|
|
|
44
152
|
true
|
|
45
153
|
);
|
|
46
154
|
(function(self)
|
|
155
|
+
Unit.onImmediateOrder:addListener(function(source, orderId)
|
|
156
|
+
____exports.UnitBehavior:forAll(source, "onImmediateOrder", orderId)
|
|
157
|
+
end)
|
|
158
|
+
Unit.onTargetOrder:addListener(function(source, orderId, target)
|
|
159
|
+
____exports.UnitBehavior:forAll(source, "onTargetOrder", orderId, target)
|
|
160
|
+
end)
|
|
161
|
+
Unit.onPointOrder:addListener(function(source, orderId, x, y)
|
|
162
|
+
____exports.UnitBehavior:forAll(
|
|
163
|
+
source,
|
|
164
|
+
"onPointOrder",
|
|
165
|
+
orderId,
|
|
166
|
+
x,
|
|
167
|
+
y
|
|
168
|
+
)
|
|
169
|
+
end)
|
|
47
170
|
Unit.autoAttackStartEvent:addListener(function(source, target)
|
|
48
171
|
____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
|
|
172
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackStart", source)
|
|
49
173
|
end)
|
|
50
174
|
Unit.autoAttackFinishEvent:addListener(function(source, target)
|
|
51
175
|
____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
|
|
176
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackFinish", source)
|
|
52
177
|
end)
|
|
53
178
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
54
179
|
if source ~= nil then
|
|
@@ -62,12 +187,73 @@ __TS__SetDescriptor(
|
|
|
62
187
|
end
|
|
63
188
|
____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
|
|
64
189
|
end)
|
|
190
|
+
Unit.abilityGainedEvent:addListener(function(source, ability)
|
|
191
|
+
____exports.UnitBehavior:forAll(source, "onAbilityGained", ability)
|
|
192
|
+
end)
|
|
193
|
+
Unit.abilityLostEvent:addListener(function(source, ability)
|
|
194
|
+
____exports.UnitBehavior:forAll(source, "onAbilityLost", ability)
|
|
195
|
+
end)
|
|
196
|
+
Unit.abilityChannelingStartEvent:addListener(function(source, ability)
|
|
197
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingStart", ability)
|
|
198
|
+
end)
|
|
199
|
+
Unit.abilityUnitTargetChannelingStartEvent:addListener(function(source, ability, target)
|
|
200
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityChannelingStart", ability, source)
|
|
201
|
+
end)
|
|
202
|
+
Unit.abilityImpactEvent:addListener(function(source, ability)
|
|
203
|
+
____exports.UnitBehavior:forAll(source, "onAbilityImpact", ability)
|
|
204
|
+
end)
|
|
205
|
+
Unit.abilityWidgetTargetImpactEvent:addListener(function(source, ability, target)
|
|
206
|
+
____exports.UnitBehavior:forAll(source, "onAbilityWidgetTargetImpact", ability, target)
|
|
207
|
+
end)
|
|
208
|
+
Unit.abilityUnitTargetImpactEvent:addListener(function(source, ability, target)
|
|
209
|
+
____exports.UnitBehavior:forAll(source, "onAbilityUnitTargetImpact", ability, target)
|
|
210
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityImpact", ability, source)
|
|
211
|
+
end)
|
|
212
|
+
Unit.abilityItemTargetImpactEvent:addListener(function(source, ability, target)
|
|
213
|
+
____exports.UnitBehavior:forAll(source, "onAbilityItemTargetImpact", ability, target)
|
|
214
|
+
end)
|
|
215
|
+
Unit.abilityDestructibleTargetImpactEvent:addListener(function(source, ability, target)
|
|
216
|
+
____exports.UnitBehavior:forAll(source, "onAbilityDestructibleTargetImpact", ability, target)
|
|
217
|
+
end)
|
|
218
|
+
Unit.abilityPointTargetImpactEvent:addListener(function(source, ability, x, y)
|
|
219
|
+
____exports.UnitBehavior:forAll(
|
|
220
|
+
source,
|
|
221
|
+
"onAbilityPointTargetImpact",
|
|
222
|
+
ability,
|
|
223
|
+
x,
|
|
224
|
+
y
|
|
225
|
+
)
|
|
226
|
+
end)
|
|
227
|
+
Unit.abilityNoTargetImpactEvent:addListener(function(source, ability)
|
|
228
|
+
____exports.UnitBehavior:forAll(source, "onAbilityNoTargetImpact", ability)
|
|
229
|
+
end)
|
|
230
|
+
Unit.abilityChannelingFinishEvent:addListener(function(source, ability)
|
|
231
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingFinish", ability)
|
|
232
|
+
end)
|
|
233
|
+
Unit.abilityStopEvent:addListener(function(source, ability)
|
|
234
|
+
____exports.UnitBehavior:forAll(source, "onAbilityStop", ability)
|
|
235
|
+
end)
|
|
65
236
|
Unit.deathEvent:addListener(function(target, source)
|
|
66
237
|
if source ~= nil then
|
|
67
238
|
____exports.UnitBehavior:forAll(source, "onKill", target)
|
|
68
239
|
end
|
|
69
240
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
70
241
|
end)
|
|
242
|
+
Unit.itemDroppedEvent:addListener(function(unit, item)
|
|
243
|
+
____exports.UnitBehavior:forAll(unit, "onItemDropped", item)
|
|
244
|
+
end)
|
|
245
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
246
|
+
____exports.UnitBehavior:forAll(unit, "onItemPickedUp", item)
|
|
247
|
+
end)
|
|
248
|
+
Unit.itemUsedEvent:addListener(function(unit, item)
|
|
249
|
+
____exports.UnitBehavior:forAll(unit, "onItemUsed", item)
|
|
250
|
+
end)
|
|
251
|
+
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
252
|
+
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
253
|
+
end)
|
|
254
|
+
Unit.itemChargesChangedEvent:addListener(function(unit, item)
|
|
255
|
+
____exports.UnitBehavior:forAll(unit, "onItemChargesChanged", item)
|
|
256
|
+
end)
|
|
71
257
|
end)(UnitBehavior)
|
|
72
258
|
Unit.destroyEvent:addListener(function(unit)
|
|
73
259
|
____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,11 +56,15 @@ 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
|
+
missProbability?: NumberParameterValueType;
|
|
61
|
+
damageFactor?: NumberParameterValueType;
|
|
54
62
|
receivedDamageFactor?: NumberParameterValueType;
|
|
55
63
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
56
64
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
57
65
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
58
66
|
maximumDuration?: NumberParameterValueType;
|
|
67
|
+
turnsIntoGhost?: BooleanParameterValueType;
|
|
59
68
|
stuns?: BooleanParameterValueType;
|
|
60
69
|
ignoresStunImmunity?: BooleanParameterValueType;
|
|
61
70
|
providesStunImmunity?: BooleanParameterValueType;
|
|
@@ -64,41 +73,58 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
64
73
|
disablesAutoAttack?: BooleanParameterValueType;
|
|
65
74
|
destroysOnDamage?: BooleanParameterValueType;
|
|
66
75
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
76
|
+
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
77
|
+
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
78
|
+
damageOnExpiration?: NumberParameterValueType;
|
|
79
|
+
healingOnExpiration?: NumberParameterValueType;
|
|
80
|
+
killsOnExpiration?: BooleanParameterValueType;
|
|
81
|
+
explodesOnExpiration?: BooleanParameterValueType;
|
|
67
82
|
uniqueGroup?: BuffUniqueGroup;
|
|
68
|
-
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters :
|
|
83
|
+
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
69
84
|
declare const enum BuffPropertyKey {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
|
102
128
|
}
|
|
103
129
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
104
130
|
LEAST_DURATION = 0
|
|
@@ -106,19 +132,20 @@ export declare const enum BuffTypeIdSelectionPolicy {
|
|
|
106
132
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
107
133
|
export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
|
|
108
134
|
...typeId: [ApplicableBuffTypeId] | [
|
|
109
|
-
typeIds:
|
|
135
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
110
136
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
111
137
|
],
|
|
112
|
-
polarity:
|
|
113
|
-
resistanceType:
|
|
138
|
+
polarity: BuffPolarityParameterType,
|
|
139
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
114
140
|
...abilityOrParameters: [
|
|
115
|
-
ability
|
|
141
|
+
ability?: Ability,
|
|
116
142
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
117
143
|
] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
|
|
118
144
|
];
|
|
119
|
-
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> =
|
|
145
|
+
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
120
146
|
private _unit;
|
|
121
147
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
148
|
+
private [BuffPropertyKey.STATE];
|
|
122
149
|
private [BuffPropertyKey.UNIT];
|
|
123
150
|
private [BuffPropertyKey.SOURCE]?;
|
|
124
151
|
private [BuffPropertyKey.DURATION];
|
|
@@ -138,6 +165,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
138
165
|
private [BuffPropertyKey.HEALING_INTERVAL]?;
|
|
139
166
|
private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
|
|
140
167
|
private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
|
|
168
|
+
private [BuffPropertyKey.DAMAGE_ON_EXPIRATION]?;
|
|
169
|
+
private [BuffPropertyKey.HEALING_ON_EXPIRATION]?;
|
|
141
170
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
|
|
142
171
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
|
|
143
172
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
|
|
@@ -147,10 +176,17 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
147
176
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
148
177
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
149
178
|
private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
|
|
179
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
|
|
180
|
+
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
181
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
182
|
+
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
183
|
+
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
150
184
|
private [BuffPropertyKey.STUNS]?;
|
|
151
185
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
152
186
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
153
187
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
188
|
+
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
189
|
+
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
154
190
|
protected static readonly defaultParameters: BuffParameters;
|
|
155
191
|
get source(): Unit;
|
|
156
192
|
readonly typeId: ApplicableBuffTypeId;
|
|
@@ -164,6 +200,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
164
200
|
private readonly _level?;
|
|
165
201
|
private readonly _spellStealPriority?;
|
|
166
202
|
private readonly _learnLevelMinimum?;
|
|
203
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
167
204
|
private _bonusIdByBonusType?;
|
|
168
205
|
private readonly _abilityTypeIds?;
|
|
169
206
|
private _behaviors?;
|
|
@@ -187,10 +224,18 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
187
224
|
set healingPerInterval(healingPerInterval: number);
|
|
188
225
|
get healingInterval(): number;
|
|
189
226
|
set healingInterval(healingInterval: number);
|
|
227
|
+
get damageOnExpiration(): number;
|
|
228
|
+
set damageOnExpiration(damageOnExpiration: number);
|
|
229
|
+
get healingOnExpiration(): number;
|
|
230
|
+
set healingOnExpiration(healingOnExpiration: number);
|
|
231
|
+
get damageFactor(): number;
|
|
232
|
+
set damageFactor(damageFactor: number);
|
|
190
233
|
get receivedDamageFactor(): number;
|
|
191
234
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
192
235
|
get armorIncrease(): number;
|
|
193
236
|
set armorIncrease(armorIncrease: number);
|
|
237
|
+
get turnsIntoGhost(): boolean;
|
|
238
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
194
239
|
get stuns(): boolean;
|
|
195
240
|
set stuns(stuns: boolean);
|
|
196
241
|
get ignoresStunImmunity(): boolean;
|
|
@@ -199,6 +244,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
199
244
|
set disablesAutoAttack(disablesAutoAttack: boolean);
|
|
200
245
|
get providesInvulnerability(): boolean;
|
|
201
246
|
set providesInvulnerability(providesInvulnerability: boolean);
|
|
247
|
+
get killsOnExpiration(): boolean;
|
|
248
|
+
set killsOnExpiration(killsOnExpiration: boolean);
|
|
249
|
+
get explodesOnExpiration(): boolean;
|
|
250
|
+
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
251
|
+
get maximumDamageDealtEventCount(): number;
|
|
252
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
253
|
+
get maximumDamageReceivedEventCount(): number;
|
|
254
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
202
255
|
get maximumAutoAttackCount(): number;
|
|
203
256
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
204
257
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -207,15 +260,25 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
207
260
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
208
261
|
get movementSpeedIncreaseFactor(): number;
|
|
209
262
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
263
|
+
get evasionProbability(): number;
|
|
264
|
+
set evasionProbability(evasionProbability: number);
|
|
210
265
|
get duration(): number;
|
|
211
266
|
get remainingDuration(): number;
|
|
212
267
|
set remainingDuration(remainingDuration: number);
|
|
213
|
-
flashEffect(...parameters: [
|
|
268
|
+
flashEffect(...parameters: [
|
|
269
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
270
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
271
|
+
]): void;
|
|
214
272
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
273
|
+
protected onCreate(): void;
|
|
215
274
|
protected onDestroy(): Destructor;
|
|
216
275
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
217
276
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
277
|
+
onExpiration(): void;
|
|
218
278
|
onDeath(source: Unit | undefined): void;
|
|
219
279
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
280
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
281
|
+
static readonly createdEvent: Event<[Buff<object>]>;
|
|
282
|
+
static readonly beingDestroyedEvent: Event<[Buff<object>]>;
|
|
220
283
|
}
|
|
221
284
|
export {};
|