warscript 0.0.1-dev.d30161d → 0.0.1-dev.d3ce64a
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 -0
- package/attributes.lua +8 -1
- 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 +6 -0
- package/core/types/frame.lua +91 -1
- package/core/types/order.d.ts +1 -0
- package/core/types/order.lua +11 -1
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +840 -786
- 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 +8 -5
- 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 +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +35 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability.d.ts +20 -4
- package/engine/behaviour/ability.lua +111 -38
- package/engine/behaviour/unit.d.ts +17 -0
- package/engine/behaviour/unit.lua +105 -0
- package/engine/buff.d.ts +84 -43
- package/engine/buff.lua +385 -226
- package/engine/internal/ability.d.ts +18 -13
- package/engine/internal/ability.lua +87 -76
- package/engine/internal/item/ability.lua +106 -0
- package/engine/internal/item+owner.lua +2 -2
- package/engine/internal/item.d.ts +4 -3
- package/engine/internal/item.lua +56 -25
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/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 +10 -1
- package/engine/internal/unit/ability.lua +36 -14
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- 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+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 +25 -6
- package/engine/internal/unit.d.ts +50 -13
- package/engine/internal/unit.lua +314 -116
- 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/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/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.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 +89 -33
- 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 +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +10 -3
- package/engine/object-data/entry/unit-type.lua +155 -92
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +26 -3
- package/engine/object-field/ability.lua +54 -1
- package/engine/object-field/unit.d.ts +46 -3
- package/engine/object-field/unit.lua +173 -7
- package/engine/object-field.d.ts +11 -3
- package/engine/object-field.lua +162 -76
- 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 -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/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 +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/utility/arrays.d.ts +9 -1
- package/utility/arrays.lua +37 -3
- package/utility/functions.d.ts +1 -0
- package/utility/functions.lua +1 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-set.d.ts +12 -2
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +3 -0
- package/utility/lua-maps.lua +16 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
4
5
|
local __TS__New = ____lualib.__TS__New
|
|
5
6
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
6
7
|
local ____exports = {}
|
|
8
|
+
local createUnitEventListener
|
|
7
9
|
local ____behavior = require("engine.behavior")
|
|
8
10
|
local Behavior = ____behavior.Behavior
|
|
9
11
|
local ____unit = require("engine.unit")
|
|
@@ -14,31 +16,44 @@ local ____effect = require("core.types.effect")
|
|
|
14
16
|
local Effect = ____effect.Effect
|
|
15
17
|
local ____ability = require("engine.standard.fields.ability")
|
|
16
18
|
local AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
19
|
+
local CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
20
|
+
local CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
17
21
|
local EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
18
22
|
local MISSILE_ARC_ABILITY_FLOAT_FIELD = ____ability.MISSILE_ARC_ABILITY_FLOAT_FIELD
|
|
19
23
|
local MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
20
24
|
local MISSILE_SPEED_ABILITY_INTEGER_FIELD = ____ability.MISSILE_SPEED_ABILITY_INTEGER_FIELD
|
|
21
25
|
local SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD = ____ability.SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD
|
|
22
26
|
local SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
27
|
+
local TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD = ____ability.TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD
|
|
28
|
+
local TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD = ____ability.TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD
|
|
23
29
|
local ____ability = require("engine.object-field.ability")
|
|
30
|
+
local AbilityField = ____ability.AbilityField
|
|
31
|
+
local AbilityLevelField = ____ability.AbilityLevelField
|
|
24
32
|
local resolveCurrentAbilityDependentValue = ____ability.resolveCurrentAbilityDependentValue
|
|
25
33
|
local ____timer = require("core.types.timer")
|
|
26
34
|
local Timer = ____timer.Timer
|
|
27
|
-
local ____missile = require("core.types.missile")
|
|
28
|
-
local Missile = ____missile.Missile
|
|
29
35
|
local createBehaviorFunctionsByAbilityTypeId = {}
|
|
30
|
-
local
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
local exclusiveOnImpactHandlerAbilityBehaviorByAbility = setmetatable({}, {__mode = "k"})
|
|
37
|
+
local function createZeroTimerUnitEventListener(key)
|
|
38
|
+
local unitEventListener = createUnitEventListener(key)
|
|
39
|
+
return function(unit, ability, ...)
|
|
40
|
+
Timer:run(unitEventListener, unit, ability, ...)
|
|
33
41
|
end
|
|
34
42
|
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
createUnitEventListener = function(key)
|
|
44
|
+
return function(unit, ability, ...)
|
|
45
|
+
____exports.AbilityBehavior:forAll(ability, key, unit, ...)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
local registeredCommandEventIds = {}
|
|
49
|
+
local subscribedValuesByAbilityBehavior = {}
|
|
50
|
+
local ____class_2 = __TS__Class()
|
|
51
|
+
____class_2.name = ""
|
|
52
|
+
function ____class_2.prototype.____constructor(self, abilityBehavior)
|
|
38
53
|
self.abilityBehavior = abilityBehavior
|
|
39
54
|
end
|
|
40
55
|
__TS__SetDescriptor(
|
|
41
|
-
|
|
56
|
+
____class_2.prototype,
|
|
42
57
|
"art",
|
|
43
58
|
{get = function(self)
|
|
44
59
|
return MISSILE_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.abilityBehavior.ability, 0)
|
|
@@ -46,7 +61,7 @@ __TS__SetDescriptor(
|
|
|
46
61
|
true
|
|
47
62
|
)
|
|
48
63
|
__TS__SetDescriptor(
|
|
49
|
-
|
|
64
|
+
____class_2.prototype,
|
|
50
65
|
"arc",
|
|
51
66
|
{get = function(self)
|
|
52
67
|
return MISSILE_ARC_ABILITY_FLOAT_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -54,7 +69,7 @@ __TS__SetDescriptor(
|
|
|
54
69
|
true
|
|
55
70
|
)
|
|
56
71
|
__TS__SetDescriptor(
|
|
57
|
-
|
|
72
|
+
____class_2.prototype,
|
|
58
73
|
"speed",
|
|
59
74
|
{get = function(self)
|
|
60
75
|
return MISSILE_SPEED_ABILITY_INTEGER_FIELD:getValue(self.abilityBehavior.ability)
|
|
@@ -65,12 +80,58 @@ ____exports.AbilityBehavior = __TS__Class()
|
|
|
65
80
|
local AbilityBehavior = ____exports.AbilityBehavior
|
|
66
81
|
AbilityBehavior.name = "AbilityBehavior"
|
|
67
82
|
__TS__ClassExtends(AbilityBehavior, Behavior)
|
|
68
|
-
function AbilityBehavior.prototype.____constructor(self, ability)
|
|
83
|
+
function AbilityBehavior.prototype.____constructor(self, ability, parameters)
|
|
69
84
|
Behavior.prototype.____constructor(self, ability)
|
|
85
|
+
if parameters and parameters.isExclusiveOnImpactHandler then
|
|
86
|
+
exclusiveOnImpactHandlerAbilityBehaviorByAbility[ability] = self
|
|
87
|
+
end
|
|
88
|
+
self:onCreate()
|
|
89
|
+
end
|
|
90
|
+
function AbilityBehavior.prototype.onDestroy(self)
|
|
91
|
+
subscribedValuesByAbilityBehavior[self] = nil
|
|
92
|
+
return Behavior.prototype.onDestroy(self)
|
|
93
|
+
end
|
|
94
|
+
function AbilityBehavior.prototype.subscribe(self, value)
|
|
95
|
+
if __TS__InstanceOf(value, AbilityField) or __TS__InstanceOf(value, AbilityLevelField) then
|
|
96
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[self]
|
|
97
|
+
if subscribedValues == nil then
|
|
98
|
+
subscribedValues = {}
|
|
99
|
+
subscribedValuesByAbilityBehavior[self] = subscribedValues
|
|
100
|
+
end
|
|
101
|
+
subscribedValues[value] = true
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
function AbilityBehavior.prototype.registerCommandEvent(self, orderTypeStringId)
|
|
105
|
+
if orderTypeStringId == nil then
|
|
106
|
+
orderTypeStringId = self.ability.orderTypeStringId
|
|
107
|
+
end
|
|
108
|
+
local commandEventId = (tostring(self.ability.typeId) .. "#") .. orderTypeStringId
|
|
109
|
+
if not (registeredCommandEventIds[commandEventId] ~= nil) then
|
|
110
|
+
registeredCommandEventIds[commandEventId] = true
|
|
111
|
+
Unit.abilityCommandEvent[self.ability.typeId][orderTypeStringId]:addListener(createUnitEventListener("onCommand"))
|
|
112
|
+
end
|
|
70
113
|
end
|
|
71
114
|
function AbilityBehavior.prototype.resolveCurrentAbilityDependentValue(self, value)
|
|
72
115
|
return resolveCurrentAbilityDependentValue(self.ability, value)
|
|
73
116
|
end
|
|
117
|
+
function AbilityBehavior.prototype.flashCasterEffect(self, widget, ...)
|
|
118
|
+
local attachmentPoint = CASTER_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
119
|
+
Effect:flash(
|
|
120
|
+
CASTER_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
121
|
+
widget,
|
|
122
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
123
|
+
...
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
function AbilityBehavior.prototype.flashTargetEffect(self, widget, ...)
|
|
127
|
+
local attachmentPoint = TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
128
|
+
Effect:flash(
|
|
129
|
+
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
130
|
+
widget,
|
|
131
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
132
|
+
...
|
|
133
|
+
)
|
|
134
|
+
end
|
|
74
135
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
75
136
|
Effect:flash(
|
|
76
137
|
AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
@@ -87,32 +148,29 @@ function AbilityBehavior.prototype.flashEffect(self, x, y, ...)
|
|
|
87
148
|
...
|
|
88
149
|
)
|
|
89
150
|
end
|
|
90
|
-
function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget,
|
|
151
|
+
function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrParametersOrDuration, durationOrParameters, parameters)
|
|
91
152
|
if type(xOrWidget) == "number" then
|
|
92
153
|
Effect:flash(
|
|
93
154
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
94
155
|
xOrWidget,
|
|
95
|
-
|
|
96
|
-
|
|
156
|
+
yOrParametersOrDuration,
|
|
157
|
+
durationOrParameters,
|
|
158
|
+
parameters
|
|
97
159
|
)
|
|
98
160
|
else
|
|
161
|
+
local attachmentPoint = SPECIAL_EFFECT_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
99
162
|
Effect:flash(
|
|
100
163
|
SPECIAL_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
101
164
|
xOrWidget,
|
|
102
|
-
|
|
103
|
-
|
|
165
|
+
attachmentPoint ~= "" and attachmentPoint or "origin",
|
|
166
|
+
yOrParametersOrDuration,
|
|
167
|
+
durationOrParameters
|
|
104
168
|
)
|
|
105
169
|
end
|
|
106
170
|
end
|
|
107
|
-
function AbilityBehavior.prototype.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
source,
|
|
111
|
-
target,
|
|
112
|
-
invokeOnMissileArrival,
|
|
113
|
-
self,
|
|
114
|
-
...
|
|
115
|
-
)
|
|
171
|
+
function AbilityBehavior.prototype.onCreate(self)
|
|
172
|
+
end
|
|
173
|
+
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
116
174
|
end
|
|
117
175
|
function AbilityBehavior.prototype.onMissileArrival(self, ...)
|
|
118
176
|
end
|
|
@@ -120,6 +178,8 @@ function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
|
|
|
120
178
|
end
|
|
121
179
|
function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
|
|
122
180
|
end
|
|
181
|
+
function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
182
|
+
end
|
|
123
183
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
124
184
|
end
|
|
125
185
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
@@ -179,7 +239,19 @@ __TS__SetDescriptor(
|
|
|
179
239
|
end},
|
|
180
240
|
true
|
|
181
241
|
)
|
|
182
|
-
|
|
242
|
+
__TS__SetDescriptor(
|
|
243
|
+
AbilityBehavior.prototype,
|
|
244
|
+
"unit",
|
|
245
|
+
{get = function(self)
|
|
246
|
+
local owner = self.object.owner
|
|
247
|
+
if __TS__InstanceOf(owner, Unit) then
|
|
248
|
+
return owner
|
|
249
|
+
end
|
|
250
|
+
return owner.owner
|
|
251
|
+
end},
|
|
252
|
+
true
|
|
253
|
+
)
|
|
254
|
+
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
183
255
|
__TS__SetDescriptor(
|
|
184
256
|
AbilityBehavior.prototype,
|
|
185
257
|
"missileLaunchConfig",
|
|
@@ -191,17 +263,6 @@ __TS__SetDescriptor(
|
|
|
191
263
|
true
|
|
192
264
|
);
|
|
193
265
|
(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
266
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
206
267
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
207
268
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
@@ -223,6 +284,18 @@ __TS__SetDescriptor(
|
|
|
223
284
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
224
285
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
225
286
|
end)(AbilityBehavior)
|
|
287
|
+
local function checkBehaviorOnValueChange(behavior, field)
|
|
288
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
289
|
+
if subscribedValues ~= nil and subscribedValues[field] ~= nil then
|
|
290
|
+
behavior:onValueChange(field)
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
AbilityField.valueChangeEvent:addListener(function(ability, field)
|
|
294
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
295
|
+
end)
|
|
296
|
+
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
297
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
298
|
+
end)
|
|
226
299
|
Ability.onCreate:addListener(function(ability)
|
|
227
300
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
228
301
|
if createBehaviorFunctions ~= nil then
|
|
@@ -4,18 +4,35 @@ 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";
|
|
8
|
+
import type { AbilityBehavior } from "./ability";
|
|
9
|
+
import { Event } from "../../event";
|
|
10
|
+
import { Destructor } from "../../destroyable";
|
|
11
|
+
import type { Widget } from "../../core/types/widget";
|
|
7
12
|
export type UnitBehaviorConstructor<Args extends any[]> = new (unit: Unit, ...args: Args) => UnitBehavior;
|
|
8
13
|
export declare abstract class UnitBehavior<PeriodicActionParameters extends any[] = any[]> extends Behavior<Unit, PeriodicActionParameters> {
|
|
9
14
|
constructor(unit: Unit);
|
|
15
|
+
protected onDestroy(): Destructor;
|
|
16
|
+
readonly sourceAbilityBehavior?: AbilityBehavior;
|
|
10
17
|
get unit(): Unit;
|
|
18
|
+
registerInRangeUnitEvent<T extends string, Args extends any[]>(this: UnitBehavior<PeriodicActionParameters> & Record<T, (this: this, unit: Unit, ...args: Args) => unknown>, event: Event<[Unit, ...Args]>, range: number, listener: T): void;
|
|
19
|
+
onImmediateOrder(orderId: number): void;
|
|
20
|
+
onTargetOrder(orderId: number, target: Widget): void;
|
|
21
|
+
onPointOrder(orderId: number, x: number, y: number): void;
|
|
11
22
|
onAutoAttackStart(target: Unit): void;
|
|
12
23
|
onAutoAttackFinish(target: Unit): void;
|
|
24
|
+
onTargetingAutoAttackStart(source: Unit): void;
|
|
25
|
+
onTargetingAutoAttackFinish(source: Unit): void;
|
|
13
26
|
onDamageDealing(target: Unit, event: DamagingEvent): void;
|
|
14
27
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
15
28
|
onDamageReceiving(source: Unit | undefined, event: DamagingEvent): void;
|
|
16
29
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
17
30
|
onAbilityGained(ability: Ability): void;
|
|
18
31
|
onAbilityLost(ability: Ability): void;
|
|
32
|
+
onItemDropped(item: Item): void;
|
|
33
|
+
onItemPickedUp(item: Item): void;
|
|
34
|
+
onItemUsed(item: Item): void;
|
|
35
|
+
onItemStacked(item: Item): void;
|
|
19
36
|
onKill(target: Unit): void;
|
|
20
37
|
onDeath(source: Unit | undefined): void;
|
|
21
38
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
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")
|
|
@@ -9,6 +10,17 @@ local ____unit = require("engine.internal.unit")
|
|
|
9
10
|
local Unit = ____unit.Unit
|
|
10
11
|
require("engine.internal.unit+ability")
|
|
11
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 = {}
|
|
12
24
|
____exports.UnitBehavior = __TS__Class()
|
|
13
25
|
local UnitBehavior = ____exports.UnitBehavior
|
|
14
26
|
UnitBehavior.name = "UnitBehavior"
|
|
@@ -16,10 +28,66 @@ __TS__ClassExtends(UnitBehavior, Behavior)
|
|
|
16
28
|
function UnitBehavior.prototype.____constructor(self, unit)
|
|
17
29
|
Behavior.prototype.____constructor(self, unit)
|
|
18
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, 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(unit, ...)
|
|
61
|
+
local behaviors = behaviorsByEvent[event]
|
|
62
|
+
if behaviors ~= nil then
|
|
63
|
+
for behavior in pairs(behaviors) do
|
|
64
|
+
local range = rangeByBehavior[behavior]
|
|
65
|
+
if range ~= nil and unit:getCollisionDistanceTo(behavior.unit) <= range then
|
|
66
|
+
local ____self_6 = behavior
|
|
67
|
+
____self_6[listenerByBehavior[behavior]](____self_6, unit, ...)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end)
|
|
72
|
+
behaviors = __TS__New(LinkedSet)
|
|
73
|
+
behaviorsByEvent[event] = behaviors
|
|
74
|
+
end
|
|
75
|
+
behaviors:add(self)
|
|
76
|
+
end
|
|
77
|
+
function UnitBehavior.prototype.onImmediateOrder(self, orderId)
|
|
78
|
+
end
|
|
79
|
+
function UnitBehavior.prototype.onTargetOrder(self, orderId, target)
|
|
80
|
+
end
|
|
81
|
+
function UnitBehavior.prototype.onPointOrder(self, orderId, x, y)
|
|
82
|
+
end
|
|
19
83
|
function UnitBehavior.prototype.onAutoAttackStart(self, target)
|
|
20
84
|
end
|
|
21
85
|
function UnitBehavior.prototype.onAutoAttackFinish(self, target)
|
|
22
86
|
end
|
|
87
|
+
function UnitBehavior.prototype.onTargetingAutoAttackStart(self, source)
|
|
88
|
+
end
|
|
89
|
+
function UnitBehavior.prototype.onTargetingAutoAttackFinish(self, source)
|
|
90
|
+
end
|
|
23
91
|
function UnitBehavior.prototype.onDamageDealing(self, target, event)
|
|
24
92
|
end
|
|
25
93
|
function UnitBehavior.prototype.onDamageDealt(self, target, event)
|
|
@@ -32,6 +100,14 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
32
100
|
end
|
|
33
101
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
34
102
|
end
|
|
103
|
+
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
104
|
+
end
|
|
105
|
+
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
106
|
+
end
|
|
107
|
+
function UnitBehavior.prototype.onItemUsed(self, item)
|
|
108
|
+
end
|
|
109
|
+
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
110
|
+
end
|
|
35
111
|
function UnitBehavior.prototype.onKill(self, target)
|
|
36
112
|
end
|
|
37
113
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
@@ -45,11 +121,28 @@ __TS__SetDescriptor(
|
|
|
45
121
|
true
|
|
46
122
|
);
|
|
47
123
|
(function(self)
|
|
124
|
+
Unit.onImmediateOrder:addListener(function(source, orderId)
|
|
125
|
+
____exports.UnitBehavior:forAll(source, "onImmediateOrder", orderId)
|
|
126
|
+
end)
|
|
127
|
+
Unit.onTargetOrder:addListener(function(source, orderId, target)
|
|
128
|
+
____exports.UnitBehavior:forAll(source, "onTargetOrder", orderId, target)
|
|
129
|
+
end)
|
|
130
|
+
Unit.onPointOrder:addListener(function(source, orderId, x, y)
|
|
131
|
+
____exports.UnitBehavior:forAll(
|
|
132
|
+
source,
|
|
133
|
+
"onPointOrder",
|
|
134
|
+
orderId,
|
|
135
|
+
x,
|
|
136
|
+
y
|
|
137
|
+
)
|
|
138
|
+
end)
|
|
48
139
|
Unit.autoAttackStartEvent:addListener(function(source, target)
|
|
49
140
|
____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
|
|
141
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackStart", source)
|
|
50
142
|
end)
|
|
51
143
|
Unit.autoAttackFinishEvent:addListener(function(source, target)
|
|
52
144
|
____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
|
|
145
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackFinish", source)
|
|
53
146
|
end)
|
|
54
147
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
55
148
|
if source ~= nil then
|
|
@@ -75,6 +168,18 @@ __TS__SetDescriptor(
|
|
|
75
168
|
end
|
|
76
169
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
77
170
|
end)
|
|
171
|
+
Unit.itemDroppedEvent:addListener(function(unit, item)
|
|
172
|
+
____exports.UnitBehavior:forAll(unit, "onItemDropped", item)
|
|
173
|
+
end)
|
|
174
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
175
|
+
____exports.UnitBehavior:forAll(unit, "onItemPickedUp", item)
|
|
176
|
+
end)
|
|
177
|
+
Unit.itemUsedEvent:addListener(function(unit, item)
|
|
178
|
+
____exports.UnitBehavior:forAll(unit, "onItemUsed", item)
|
|
179
|
+
end)
|
|
180
|
+
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
181
|
+
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
182
|
+
end)
|
|
78
183
|
end)(UnitBehavior)
|
|
79
184
|
Unit.destroyEvent:addListener(function(unit)
|
|
80
185
|
____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,6 +73,8 @@ 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;
|
|
67
78
|
damageOnExpiration?: NumberParameterValueType;
|
|
68
79
|
healingOnExpiration?: NumberParameterValueType;
|
|
69
80
|
killsOnExpiration?: BooleanParameterValueType;
|
|
@@ -71,42 +82,49 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
71
82
|
uniqueGroup?: BuffUniqueGroup;
|
|
72
83
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
73
84
|
declare const enum BuffPropertyKey {
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
|
110
128
|
}
|
|
111
129
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
112
130
|
LEAST_DURATION = 0
|
|
@@ -114,19 +132,20 @@ export declare const enum BuffTypeIdSelectionPolicy {
|
|
|
114
132
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
115
133
|
export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
|
|
116
134
|
...typeId: [ApplicableBuffTypeId] | [
|
|
117
|
-
typeIds:
|
|
135
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
118
136
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
119
137
|
],
|
|
120
|
-
polarity:
|
|
121
|
-
resistanceType:
|
|
138
|
+
polarity: BuffPolarityParameterType,
|
|
139
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
122
140
|
...abilityOrParameters: [
|
|
123
|
-
ability
|
|
141
|
+
ability?: Ability,
|
|
124
142
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
125
143
|
] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
|
|
126
144
|
];
|
|
127
145
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
128
146
|
private _unit;
|
|
129
147
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
148
|
+
private [BuffPropertyKey.STATE];
|
|
130
149
|
private [BuffPropertyKey.UNIT];
|
|
131
150
|
private [BuffPropertyKey.SOURCE]?;
|
|
132
151
|
private [BuffPropertyKey.DURATION];
|
|
@@ -157,6 +176,11 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
157
176
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
158
177
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
159
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]?;
|
|
160
184
|
private [BuffPropertyKey.STUNS]?;
|
|
161
185
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
162
186
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
@@ -176,6 +200,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
176
200
|
private readonly _level?;
|
|
177
201
|
private readonly _spellStealPriority?;
|
|
178
202
|
private readonly _learnLevelMinimum?;
|
|
203
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
179
204
|
private _bonusIdByBonusType?;
|
|
180
205
|
private readonly _abilityTypeIds?;
|
|
181
206
|
private _behaviors?;
|
|
@@ -203,10 +228,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
203
228
|
set damageOnExpiration(damageOnExpiration: number);
|
|
204
229
|
get healingOnExpiration(): number;
|
|
205
230
|
set healingOnExpiration(healingOnExpiration: number);
|
|
231
|
+
get damageFactor(): number;
|
|
232
|
+
set damageFactor(damageFactor: number);
|
|
206
233
|
get receivedDamageFactor(): number;
|
|
207
234
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
208
235
|
get armorIncrease(): number;
|
|
209
236
|
set armorIncrease(armorIncrease: number);
|
|
237
|
+
get turnsIntoGhost(): boolean;
|
|
238
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
210
239
|
get stuns(): boolean;
|
|
211
240
|
set stuns(stuns: boolean);
|
|
212
241
|
get ignoresStunImmunity(): boolean;
|
|
@@ -219,6 +248,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
219
248
|
set killsOnExpiration(killsOnExpiration: boolean);
|
|
220
249
|
get explodesOnExpiration(): boolean;
|
|
221
250
|
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
251
|
+
get maximumDamageDealtEventCount(): number;
|
|
252
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
253
|
+
get maximumDamageReceivedEventCount(): number;
|
|
254
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
222
255
|
get maximumAutoAttackCount(): number;
|
|
223
256
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
224
257
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -227,16 +260,24 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
227
260
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
228
261
|
get movementSpeedIncreaseFactor(): number;
|
|
229
262
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
263
|
+
get evasionProbability(): number;
|
|
264
|
+
set evasionProbability(evasionProbability: number);
|
|
230
265
|
get duration(): number;
|
|
231
266
|
get remainingDuration(): number;
|
|
232
267
|
set remainingDuration(remainingDuration: number);
|
|
233
|
-
flashEffect(...parameters: [
|
|
268
|
+
flashEffect(...parameters: [
|
|
269
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
270
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
271
|
+
]): void;
|
|
234
272
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
273
|
+
protected onCreate(): void;
|
|
235
274
|
protected onDestroy(): Destructor;
|
|
236
275
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
237
276
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
238
277
|
onExpiration(): void;
|
|
239
278
|
onDeath(source: Unit | undefined): void;
|
|
240
279
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
280
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
281
|
+
static readonly destroyEvent: Event<[Buff<object>]>;
|
|
241
282
|
}
|
|
242
283
|
export {};
|