warscript 0.0.1-dev.bb34489 → 0.0.1-dev.c03154e
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/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 -0
- package/core/types/frame.lua +93 -1
- package/core/types/handle.lua +2 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -0
- package/engine/behavior.d.ts +2 -2
- 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 +3 -5
- 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 +14 -3
- package/engine/behaviour/ability.lua +79 -33
- package/engine/behaviour/unit.d.ts +5 -0
- package/engine/behaviour/unit.lua +20 -0
- package/engine/buff.d.ts +69 -19
- package/engine/buff.lua +283 -80
- 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/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 +50 -0
- package/engine/internal/unit/bonus.d.ts +6 -2
- 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 +26 -10
- package/engine/internal/unit.lua +179 -89
- 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/sound-preset-name.d.ts +5 -1
- package/engine/object-data/entry/ability-type.lua +8 -12
- package/engine/object-data/entry/item-type.d.ts +14 -0
- package/engine/object-data/entry/item-type.lua +91 -0
- 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 -2
- package/engine/object-field.lua +4 -0
- package/engine/standard/fields/ability.d.ts +2 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +7 -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/buff.lua +1 -1
- package/package.json +2 -2
- 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/utility/arrays.d.ts +8 -1
- package/utility/arrays.lua +34 -3
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +11 -2
- package/utility/linked-set.lua +5 -2
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
|
@@ -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,6 +16,8 @@ local ____effect = require("core.types.effect")
|
|
|
14
16
|
local Effect = ____effect.Effect
|
|
15
17
|
local ____ability = require("engine.standard.fields.ability")
|
|
16
18
|
local AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
19
|
+
local CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
20
|
+
local CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
17
21
|
local EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
18
22
|
local MISSILE_ARC_ABILITY_FLOAT_FIELD = ____ability.MISSILE_ARC_ABILITY_FLOAT_FIELD
|
|
19
23
|
local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
@@ -21,24 +25,33 @@ local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_IN
|
|
|
21
25
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
22
26
|
local SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
23
27
|
local ____ability = require("engine.object-field.ability")
|
|
28
|
+
local AbilityField = ____ability.AbilityField
|
|
29
|
+
local AbilityLevelField = ____ability.AbilityLevelField
|
|
24
30
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
25
31
|
local ____timer = require("core.types.timer")
|
|
26
32
|
local Timer = ____timer.Timer
|
|
27
|
-
local ____missile = require("core.types.missile")
|
|
28
|
-
local Missile = ____missile.Missile
|
|
29
33
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
30
|
-
local
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
local exclusiveOnImpactHandlerAbilityBehaviorByAbility = setmetatable({}, {__mode = "k"})
|
|
35
|
+
local function createZeroTimerUnitEventListener(key)
|
|
36
|
+
local unitEventListener = createUnitEventListener(key)
|
|
37
|
+
return function(unit, ability, ...)
|
|
38
|
+
Timer:run(unitEventListener, unit, ability, ...)
|
|
33
39
|
end
|
|
34
40
|
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
createUnitEventListener = function(key)
|
|
42
|
+
return function(unit, ability, ...)
|
|
43
|
+
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
local registeredCommandEventIds = {}
|
|
47
|
+
local subscribedValuesByAbilityBehavior = {}
|
|
48
|
+
local ____class_2 = __TS__Class()
|
|
49
|
+
____class_2.name = ""
|
|
50
|
+
function ____class_2.prototype.____constructor(self, abilityBehavior)
|
|
38
51
|
self.abilityBehavior = abilityBehavior
|
|
39
52
|
end
|
|
40
53
|
__TS__SetDescriptor(
|
|
41
|
-
|
|
54
|
+
____class_2.prototype,
|
|
42
55
|
"art",
|
|
43
56
|
{get = function(self)
|
|
44
57
|
return MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.abilityBehavior.ability, 0)
|
|
@@ -46,7 +59,7 @@ __TS__SetDescriptor(
|
|
|
46
59
|
true
|
|
47
60
|
)
|
|
48
61
|
__TS__SetDescriptor(
|
|
49
|
-
|
|
62
|
+
____class_2.prototype,
|
|
50
63
|
"arc",
|
|
51
64
|
{get = function(self)
|
|
52
65
|
return MISSILE_ARC_ABILITY_FLOAT_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -54,7 +67,7 @@ __TS__SetDescriptor(
|
|
|
54
67
|
true
|
|
55
68
|
)
|
|
56
69
|
__TS__SetDescriptor(
|
|
57
|
-
|
|
70
|
+
____class_2.prototype,
|
|
58
71
|
"speed",
|
|
59
72
|
{get = function(self)
|
|
60
73
|
return MISSILE_SPEED_ABILITY_INTEGER_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -65,12 +78,48 @@ ____exports.AbilityBehavior = __TS__Class()
|
|
|
65
78
|
local AbilityBehavior = ____exports.AbilityBehavior
|
|
66
79
|
AbilityBehavior.name = "AbilityBehavior"
|
|
67
80
|
__TS__ClassExtends(AbilityBehavior, Behavior)
|
|
68
|
-
function AbilityBehavior.prototype.____constructor(self, ability)
|
|
81
|
+
function AbilityBehavior.prototype.____constructor(self, ability, parameters)
|
|
69
82
|
Behavior.prototype.____constructor(self, ability)
|
|
83
|
+
if parameters and parameters.isExclusiveOnImpactHandler then
|
|
84
|
+
exclusiveOnImpactHandlerAbilityBehaviorByAbility[ability] = self
|
|
85
|
+
end
|
|
86
|
+
self:onCreate()
|
|
87
|
+
end
|
|
88
|
+
function AbilityBehavior.prototype.onDestroy(self)
|
|
89
|
+
subscribedValuesByAbilityBehavior[self] = nil
|
|
90
|
+
return Behavior.prototype.onDestroy(self)
|
|
91
|
+
end
|
|
92
|
+
function AbilityBehavior.prototype.subscribe(self, value)
|
|
93
|
+
if __TS__InstanceOf(value, AbilityField) or __TS__InstanceOf(value, AbilityLevelField) then
|
|
94
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[self]
|
|
95
|
+
if subscribedValues == nil then
|
|
96
|
+
subscribedValues = {}
|
|
97
|
+
subscribedValuesByAbilityBehavior[self] = subscribedValues
|
|
98
|
+
end
|
|
99
|
+
subscribedValues[value] = true
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
function AbilityBehavior.prototype.registerCommandEvent(self, orderTypeStringId)
|
|
103
|
+
if orderTypeStringId == nil then
|
|
104
|
+
orderTypeStringId = self.ability.orderTypeStringId
|
|
105
|
+
end
|
|
106
|
+
local commandEventId = (tostring(self.ability.typeId) .. "#") .. orderTypeStringId
|
|
107
|
+
if not (registeredCommandEventIds[commandEventId] ~= nil) then
|
|
108
|
+
registeredCommandEventIds[commandEventId] = true
|
|
109
|
+
Unit.abilityCommandEvent[self.ability.typeId][orderTypeStringId]:addListener(createUnitEventListener("onCommand"))
|
|
110
|
+
end
|
|
70
111
|
end
|
|
71
112
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
72
113
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
73
114
|
end
|
|
115
|
+
function AbilityBehavior.prototype.flashCasterEffect(self, widget)
|
|
116
|
+
local attachmentPoint = CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
117
|
+
Effect:flash(
|
|
118
|
+
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
119
|
+
widget,
|
|
120
|
+
attachmentPoint ~= "" and attachmentPoint or "origin"
|
|
121
|
+
)
|
|
122
|
+
end
|
|
74
123
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
75
124
|
Effect:flash(
|
|
76
125
|
AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
@@ -104,15 +153,9 @@ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrDurati
|
|
|
104
153
|
)
|
|
105
154
|
end
|
|
106
155
|
end
|
|
107
|
-
function AbilityBehavior.prototype.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
source,
|
|
111
|
-
target,
|
|
112
|
-
invokeOnMissileArrival,
|
|
113
|
-
self,
|
|
114
|
-
...
|
|
115
|
-
)
|
|
156
|
+
function AbilityBehavior.prototype.onCreate(self)
|
|
157
|
+
end
|
|
158
|
+
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
116
159
|
end
|
|
117
160
|
function AbilityBehavior.prototype.onMissileArrival(self, ...)
|
|
118
161
|
end
|
|
@@ -120,6 +163,8 @@ function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
|
|
|
120
163
|
end
|
|
121
164
|
function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
|
|
122
165
|
end
|
|
166
|
+
function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
167
|
+
end
|
|
123
168
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
124
169
|
end
|
|
125
170
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
@@ -179,7 +224,7 @@ __TS__SetDescriptor(
|
|
|
179
224
|
end},
|
|
180
225
|
true
|
|
181
226
|
)
|
|
182
|
-
AbilityBehavior.MissileLaunchConfig =
|
|
227
|
+
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
183
228
|
__TS__SetDescriptor(
|
|
184
229
|
AbilityBehavior.prototype,
|
|
185
230
|
"missileLaunchConfig",
|
|
@@ -191,17 +236,6 @@ __TS__SetDescriptor(
|
|
|
191
236
|
true
|
|
192
237
|
);
|
|
193
238
|
(function(self)
|
|
194
|
-
local function createUnitEventListener(key)
|
|
195
|
-
return function(unit, ability, ...)
|
|
196
|
-
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
local function createZeroTimerUnitEventListener(key)
|
|
200
|
-
local unitEventListener = createUnitEventListener(key)
|
|
201
|
-
return function(unit, ability, ...)
|
|
202
|
-
Timer:run(unitEventListener, unit, ability, ...)
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
239
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
206
240
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
207
241
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
@@ -223,6 +257,18 @@ __TS__SetDescriptor(
|
|
|
223
257
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
224
258
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
225
259
|
end)(AbilityBehavior)
|
|
260
|
+
local function checkBehaviorOnValueChange(behavior, field)
|
|
261
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
262
|
+
if subscribedValues ~= nil and subscribedValues[field] ~= nil then
|
|
263
|
+
behavior:onValueChange(field)
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
AbilityField.valueChangeEvent:addListener(function(ability, field)
|
|
267
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
268
|
+
end)
|
|
269
|
+
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
270
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
271
|
+
end)
|
|
226
272
|
Ability.onCreate:addListener(function(ability)
|
|
227
273
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
228
274
|
if createBehaviorFunctions ~= nil then
|
|
@@ -4,6 +4,7 @@ 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
|
+
import { Item } from "../internal/item";
|
|
7
8
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
8
9
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
9
10
|
constructor(unit: Unit);
|
|
@@ -16,6 +17,10 @@ export declare abstract class UnitBehavior<PeriodicActionParameters extends any[
|
|
|
16
17
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
17
18
|
onAbilityGained(ability: Ability): void;
|
|
18
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;
|
|
19
24
|
onKill(target: Unit): void;
|
|
20
25
|
onDeath(source: Unit | undefined): void;
|
|
21
26
|
}
|
|
@@ -32,6 +32,14 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
32
32
|
end
|
|
33
33
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
34
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
|
|
35
43
|
function UnitBehavior.prototype.onKill(self, target)
|
|
36
44
|
end
|
|
37
45
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
@@ -75,6 +83,18 @@ __TS__SetDescriptor(
|
|
|
75
83
|
end
|
|
76
84
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
77
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)
|
|
78
98
|
end)(UnitBehavior)
|
|
79
99
|
Unit.destroyEvent:addListener(function(unit)
|
|
80
100
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
package/engine/buff.d.ts
CHANGED
|
@@ -5,16 +5,20 @@ 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";
|
|
14
15
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
16
|
+
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
15
17
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
16
18
|
type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
|
|
17
19
|
type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
|
|
20
|
+
export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
|
|
21
|
+
export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
|
|
18
22
|
export declare class BuffUniqueGroup {
|
|
19
23
|
}
|
|
20
24
|
export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
@@ -51,6 +55,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
51
55
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
52
56
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
53
57
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
58
|
+
evasionProbability?: NumberParameterValueType;
|
|
59
|
+
damageFactor?: NumberParameterValueType;
|
|
54
60
|
receivedDamageFactor?: NumberParameterValueType;
|
|
55
61
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
56
62
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
@@ -64,6 +70,12 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
64
70
|
disablesAutoAttack?: BooleanParameterValueType;
|
|
65
71
|
destroysOnDamage?: BooleanParameterValueType;
|
|
66
72
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
73
|
+
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
74
|
+
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
75
|
+
damageOnExpiration?: NumberParameterValueType;
|
|
76
|
+
healingOnExpiration?: NumberParameterValueType;
|
|
77
|
+
killsOnExpiration?: BooleanParameterValueType;
|
|
78
|
+
explodesOnExpiration?: BooleanParameterValueType;
|
|
67
79
|
uniqueGroup?: BuffUniqueGroup;
|
|
68
80
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
69
81
|
declare const enum BuffPropertyKey {
|
|
@@ -86,19 +98,27 @@ declare const enum BuffPropertyKey {
|
|
|
86
98
|
HEALING_INTERVAL = 116,
|
|
87
99
|
REMAINING_HEALING_OVER_DURATION = 117,
|
|
88
100
|
HEALING_INTERVAL_TIMER = 118,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
DAMAGE_ON_EXPIRATION = 119,
|
|
102
|
+
HEALING_ON_EXPIRATION = 120,
|
|
103
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
|
|
104
|
+
DAMAGE_UPON_DEATH = 122,
|
|
105
|
+
DAMAGE_UPON_DEATH_RANGE = 123,
|
|
106
|
+
MEDIUM_DAMAGE_UPON_DEATH = 124,
|
|
107
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
|
|
108
|
+
SMALL_DAMAGE_UPON_DEATH = 126,
|
|
109
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
|
|
110
|
+
AUTO_ATTACK_COUNT = 128,
|
|
111
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 129,
|
|
112
|
+
DAMAGE_DEALT_EVENT_COUNT = 130,
|
|
113
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
114
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 132,
|
|
115
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
116
|
+
STUNS = 134,
|
|
117
|
+
IGNORES_STUN_IMMUNITY = 135,
|
|
118
|
+
DISABLES_AUTO_ATTACK = 136,
|
|
119
|
+
PROVIDES_INVULNERABILITY = 137,
|
|
120
|
+
KILLS_ON_EXPIRATION = 138,
|
|
121
|
+
EXPLODES_ON_EXPIRATION = 139
|
|
102
122
|
}
|
|
103
123
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
104
124
|
LEAST_DURATION = 0
|
|
@@ -106,11 +126,11 @@ export declare const enum BuffTypeIdSelectionPolicy {
|
|
|
106
126
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
107
127
|
export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
|
|
108
128
|
...typeId: [ApplicableBuffTypeId] | [
|
|
109
|
-
typeIds:
|
|
129
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
110
130
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
111
131
|
],
|
|
112
|
-
polarity:
|
|
113
|
-
resistanceType:
|
|
132
|
+
polarity: BuffPolarityParameterType,
|
|
133
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
114
134
|
...abilityOrParameters: [
|
|
115
135
|
ability: Ability,
|
|
116
136
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
@@ -138,6 +158,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
138
158
|
private [BuffPropertyKey.HEALING_INTERVAL]?;
|
|
139
159
|
private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
|
|
140
160
|
private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
|
|
161
|
+
private [BuffPropertyKey.DAMAGE_ON_EXPIRATION]?;
|
|
162
|
+
private [BuffPropertyKey.HEALING_ON_EXPIRATION]?;
|
|
141
163
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
|
|
142
164
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
|
|
143
165
|
private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
|
|
@@ -147,10 +169,16 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
147
169
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
148
170
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
149
171
|
private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
|
|
172
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
|
|
173
|
+
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
174
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
175
|
+
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
150
176
|
private [BuffPropertyKey.STUNS]?;
|
|
151
177
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
152
178
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
153
179
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
180
|
+
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
181
|
+
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
154
182
|
protected static readonly defaultParameters: BuffParameters;
|
|
155
183
|
get source(): Unit;
|
|
156
184
|
readonly typeId: ApplicableBuffTypeId;
|
|
@@ -187,6 +215,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
187
215
|
set healingPerInterval(healingPerInterval: number);
|
|
188
216
|
get healingInterval(): number;
|
|
189
217
|
set healingInterval(healingInterval: number);
|
|
218
|
+
get damageOnExpiration(): number;
|
|
219
|
+
set damageOnExpiration(damageOnExpiration: number);
|
|
220
|
+
get healingOnExpiration(): number;
|
|
221
|
+
set healingOnExpiration(healingOnExpiration: number);
|
|
222
|
+
get damageFactor(): number;
|
|
223
|
+
set damageFactor(damageFactor: number);
|
|
190
224
|
get receivedDamageFactor(): number;
|
|
191
225
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
192
226
|
get armorIncrease(): number;
|
|
@@ -199,6 +233,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
199
233
|
set disablesAutoAttack(disablesAutoAttack: boolean);
|
|
200
234
|
get providesInvulnerability(): boolean;
|
|
201
235
|
set providesInvulnerability(providesInvulnerability: boolean);
|
|
236
|
+
get killsOnExpiration(): boolean;
|
|
237
|
+
set killsOnExpiration(killsOnExpiration: boolean);
|
|
238
|
+
get explodesOnExpiration(): boolean;
|
|
239
|
+
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
240
|
+
get maximumDamageDealtEventCount(): number;
|
|
241
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
242
|
+
get maximumDamageReceivedEventCount(): number;
|
|
243
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
202
244
|
get maximumAutoAttackCount(): number;
|
|
203
245
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
204
246
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -207,15 +249,23 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
207
249
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
208
250
|
get movementSpeedIncreaseFactor(): number;
|
|
209
251
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
252
|
+
get evasionProbability(): number;
|
|
253
|
+
set evasionProbability(evasionProbability: number);
|
|
210
254
|
get duration(): number;
|
|
211
255
|
get remainingDuration(): number;
|
|
212
256
|
set remainingDuration(remainingDuration: number);
|
|
213
|
-
flashEffect(...parameters: [
|
|
257
|
+
flashEffect(...parameters: [
|
|
258
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
259
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
260
|
+
]): void;
|
|
214
261
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
262
|
+
protected onCreate(): void;
|
|
215
263
|
protected onDestroy(): Destructor;
|
|
216
264
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
217
265
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
266
|
+
onExpiration(): void;
|
|
218
267
|
onDeath(source: Unit | undefined): void;
|
|
219
268
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
269
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
220
270
|
}
|
|
221
271
|
export {};
|