warscript 0.0.1-dev.240d8a6 → 0.0.1-dev.29630c5
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/core/types/effect.d.ts +13 -3
- package/core/types/effect.lua +116 -17
- package/core/util.d.ts +1 -1
- package/core/util.lua +6 -0
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +28 -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 +15 -3
- package/engine/behaviour/ability.lua +89 -33
- package/engine/buff.d.ts +9 -1
- package/engine/buff.lua +44 -18
- package/engine/internal/ability.d.ts +13 -2
- package/engine/internal/ability.lua +77 -4
- package/engine/internal/item/ability.lua +106 -0
- 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 +2 -0
- package/engine/internal/unit/bonus.lua +17 -0
- 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 +1 -1
- package/engine/internal/unit/item.lua +6 -12
- package/engine/internal/unit/main-selected.d.ts +6 -0
- package/engine/internal/unit/main-selected.lua +12 -1
- package/engine/internal/unit.d.ts +5 -3
- package/engine/internal/unit.lua +76 -41
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +8 -2
- package/engine/lightning.lua +27 -2
- 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 +2 -0
- package/engine/object-data/entry/item-type.lua +13 -0
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +9 -3
- package/engine/object-field/ability.lua +3 -0
- 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 +1 -0
- package/engine/unit.lua +1 -0
- package/package.json +2 -2
- 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
|
@@ -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,56 @@ ____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
|
+
end
|
|
125
|
+
function AbilityBehavior.prototype.flashTargetEffect(self, widget)
|
|
126
|
+
local attachmentPoint = TARGET_EFFECT_FIRST_ATTACHMENT_POINT_STRING_FIELD:getValue(self.ability)
|
|
127
|
+
Effect:flash(
|
|
128
|
+
TARGET_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
129
|
+
widget,
|
|
130
|
+
attachmentPoint ~= "" and attachmentPoint or "origin"
|
|
131
|
+
)
|
|
132
|
+
end
|
|
74
133
|
function AbilityBehavior.prototype.flashAreaEffect(self, x, y, ...)
|
|
75
134
|
Effect:flash(
|
|
76
135
|
AREA_EFFECT_MODEL_PATHS_ABILITY_STRING_ARRAY_FIELD:getValue(self.ability, 0),
|
|
@@ -104,15 +163,9 @@ function AbilityBehavior.prototype.flashSpecialEffect(self, xOrWidget, yOrDurati
|
|
|
104
163
|
)
|
|
105
164
|
end
|
|
106
165
|
end
|
|
107
|
-
function AbilityBehavior.prototype.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
source,
|
|
111
|
-
target,
|
|
112
|
-
invokeOnMissileArrival,
|
|
113
|
-
self,
|
|
114
|
-
...
|
|
115
|
-
)
|
|
166
|
+
function AbilityBehavior.prototype.onCreate(self)
|
|
167
|
+
end
|
|
168
|
+
function AbilityBehavior.prototype.onValueChange(self, _value)
|
|
116
169
|
end
|
|
117
170
|
function AbilityBehavior.prototype.onMissileArrival(self, ...)
|
|
118
171
|
end
|
|
@@ -120,6 +173,8 @@ function AbilityBehavior.prototype.onUnitGainAbility(self, _unit)
|
|
|
120
173
|
end
|
|
121
174
|
function AbilityBehavior.prototype.onUnitLoseAbility(self, _unit)
|
|
122
175
|
end
|
|
176
|
+
function AbilityBehavior.prototype.onCommand(self, caster, orderTypeStringId)
|
|
177
|
+
end
|
|
123
178
|
function AbilityBehavior.prototype.onCastingStart(self, caster)
|
|
124
179
|
end
|
|
125
180
|
function AbilityBehavior.prototype.onCastingFinish(self, caster)
|
|
@@ -179,7 +234,7 @@ __TS__SetDescriptor(
|
|
|
179
234
|
end},
|
|
180
235
|
true
|
|
181
236
|
)
|
|
182
|
-
AbilityBehavior.MissileLaunchConfig =
|
|
237
|
+
AbilityBehavior.MissileLaunchConfig = ____class_2
|
|
183
238
|
__TS__SetDescriptor(
|
|
184
239
|
AbilityBehavior.prototype,
|
|
185
240
|
"missileLaunchConfig",
|
|
@@ -191,17 +246,6 @@ __TS__SetDescriptor(
|
|
|
191
246
|
true
|
|
192
247
|
);
|
|
193
248
|
(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
249
|
Unit.abilityGainedEvent:addListener(createUnitEventListener("onUnitGainAbility"))
|
|
206
250
|
Unit.abilityLostEvent:addListener(createUnitEventListener("onUnitLoseAbility"))
|
|
207
251
|
Unit.abilityCastingStartEvent:addListener(createUnitEventListener("onCastingStart"))
|
|
@@ -223,6 +267,18 @@ __TS__SetDescriptor(
|
|
|
223
267
|
Unit.abilityChannelingFinishEvent:addListener(createUnitEventListener("onChannelingFinish"))
|
|
224
268
|
Unit.abilityStopEvent:addListener(createUnitEventListener("onStop"))
|
|
225
269
|
end)(AbilityBehavior)
|
|
270
|
+
local function checkBehaviorOnValueChange(behavior, field)
|
|
271
|
+
local subscribedValues = subscribedValuesByAbilityBehavior[behavior]
|
|
272
|
+
if subscribedValues ~= nil and subscribedValues[field] ~= nil then
|
|
273
|
+
behavior:onValueChange(field)
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
AbilityField.valueChangeEvent:addListener(function(ability, field)
|
|
277
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
278
|
+
end)
|
|
279
|
+
AbilityLevelField.valueChangeEvent:addListener(function(ability, field)
|
|
280
|
+
____exports.AbilityBehavior:forAll(ability, checkBehaviorOnValueChange, field)
|
|
281
|
+
end)
|
|
226
282
|
Ability.onCreate:addListener(function(ability)
|
|
227
283
|
local createBehaviorFunctions = createBehaviorFunctionsByAbilityTypeId[ability.typeId]
|
|
228
284
|
if createBehaviorFunctions ~= nil then
|
package/engine/buff.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type
|
|
|
8
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
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";
|
|
@@ -54,6 +55,7 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
54
55
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
55
56
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
56
57
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
58
|
+
evasionProbability?: NumberParameterValueType;
|
|
57
59
|
damageFactor?: NumberParameterValueType;
|
|
58
60
|
receivedDamageFactor?: NumberParameterValueType;
|
|
59
61
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
@@ -247,11 +249,17 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
247
249
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
248
250
|
get movementSpeedIncreaseFactor(): number;
|
|
249
251
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
252
|
+
get evasionProbability(): number;
|
|
253
|
+
set evasionProbability(evasionProbability: number);
|
|
250
254
|
get duration(): number;
|
|
251
255
|
get remainingDuration(): number;
|
|
252
256
|
set remainingDuration(remainingDuration: number);
|
|
253
|
-
flashEffect(...parameters: [
|
|
257
|
+
flashEffect(...parameters: [
|
|
258
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
259
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
260
|
+
]): void;
|
|
254
261
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
262
|
+
protected onCreate(): void;
|
|
255
263
|
protected onDestroy(): Destructor;
|
|
256
264
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
257
265
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
package/engine/buff.lua
CHANGED
|
@@ -46,6 +46,10 @@ local ____arrays = require("utility.arrays")
|
|
|
46
46
|
local forEach = ____arrays.forEach
|
|
47
47
|
local ____ability_2Dduration = require("engine.internal.mechanics.ability-duration")
|
|
48
48
|
local getAbilityDuration = ____ability_2Dduration.getAbilityDuration
|
|
49
|
+
local ____item = require("engine.internal.item")
|
|
50
|
+
local Item = ____item.Item
|
|
51
|
+
local ____destructable = require("core.types.destructable")
|
|
52
|
+
local Destructable = ____destructable.Destructable
|
|
49
53
|
local getUnitAbility = BlzGetUnitAbility
|
|
50
54
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
51
55
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -94,6 +98,7 @@ local buffParametersKeys = {
|
|
|
94
98
|
armorIncreaseFactor = true,
|
|
95
99
|
attackSpeedIncreaseFactor = true,
|
|
96
100
|
movementSpeedIncreaseFactor = true,
|
|
101
|
+
evasionProbability = true,
|
|
97
102
|
damageFactor = true,
|
|
98
103
|
receivedDamageFactor = true,
|
|
99
104
|
receivedMagicDamageFactor = true,
|
|
@@ -176,6 +181,7 @@ local buffNumberParameters = {
|
|
|
176
181
|
"durationIncreaseOnAutoAttack",
|
|
177
182
|
"attackSpeedIncreaseFactor",
|
|
178
183
|
"movementSpeedIncreaseFactor",
|
|
184
|
+
"evasionProbability",
|
|
179
185
|
"armorIncrease",
|
|
180
186
|
"damageFactor",
|
|
181
187
|
"receivedDamageFactor",
|
|
@@ -482,6 +488,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
482
488
|
timer:start(duration, false, expireBuff, self)
|
|
483
489
|
self._timer = timer
|
|
484
490
|
end
|
|
491
|
+
self:onCreate()
|
|
485
492
|
end
|
|
486
493
|
function Buff.prototype.getUnitBonus(self, bonusType)
|
|
487
494
|
local ____opt_36 = self._bonusIdByBonusType
|
|
@@ -496,26 +503,30 @@ function Buff.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
|
496
503
|
end
|
|
497
504
|
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
498
505
|
end
|
|
499
|
-
function Buff.prototype.flashEffect(self,
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
local ____Effect_flash_41 = Effect.flash
|
|
503
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
504
|
-
self[104],
|
|
505
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
506
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
507
|
-
)
|
|
508
|
-
local ____isWidgetProvided_38
|
|
509
|
-
if isWidgetProvided then
|
|
510
|
-
____isWidgetProvided_38 = duration
|
|
506
|
+
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
507
|
+
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
508
|
+
Effect:flash(self[104], widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
511
509
|
else
|
|
512
|
-
|
|
510
|
+
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
511
|
+
local ____Effect_40 = Effect
|
|
512
|
+
local ____Effect_flash_41 = Effect.flash
|
|
513
|
+
local ____array_39 = __TS__SparseArrayNew(
|
|
514
|
+
self[104],
|
|
515
|
+
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
516
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
517
|
+
)
|
|
518
|
+
local ____isWidgetProvided_38
|
|
519
|
+
if isWidgetProvided then
|
|
520
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
521
|
+
else
|
|
522
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
523
|
+
end
|
|
524
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
525
|
+
____Effect_flash_41(
|
|
526
|
+
____Effect_40,
|
|
527
|
+
__TS__SparseArraySpread(____array_39)
|
|
528
|
+
)
|
|
513
529
|
end
|
|
514
|
-
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
515
|
-
____Effect_flash_41(
|
|
516
|
-
____Effect_40,
|
|
517
|
-
__TS__SparseArraySpread(____array_39)
|
|
518
|
-
)
|
|
519
530
|
end
|
|
520
531
|
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
521
532
|
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
@@ -538,6 +549,8 @@ function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
|
538
549
|
__TS__SparseArraySpread(____array_43)
|
|
539
550
|
)
|
|
540
551
|
end
|
|
552
|
+
function Buff.prototype.onCreate(self)
|
|
553
|
+
end
|
|
541
554
|
function Buff.prototype.onDestroy(self)
|
|
542
555
|
local unit = self._unit
|
|
543
556
|
if getUnitAbility(unit.handle, self.typeId) == self.handle then
|
|
@@ -1163,6 +1176,19 @@ __TS__SetDescriptor(
|
|
|
1163
1176
|
},
|
|
1164
1177
|
true
|
|
1165
1178
|
)
|
|
1179
|
+
__TS__SetDescriptor(
|
|
1180
|
+
Buff.prototype,
|
|
1181
|
+
"evasionProbability",
|
|
1182
|
+
{
|
|
1183
|
+
get = function(self)
|
|
1184
|
+
return self:getUnitBonus(UnitBonusType.EVASION_PROBABILITY)
|
|
1185
|
+
end,
|
|
1186
|
+
set = function(self, evasionProbability)
|
|
1187
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.EVASION_PROBABILITY, evasionProbability)
|
|
1188
|
+
end
|
|
1189
|
+
},
|
|
1190
|
+
true
|
|
1191
|
+
)
|
|
1166
1192
|
__TS__SetDescriptor(
|
|
1167
1193
|
Buff.prototype,
|
|
1168
1194
|
"duration",
|
|
@@ -12,7 +12,8 @@ export declare abstract class Ability extends Handle<jability> {
|
|
|
12
12
|
protected constructor(handle: jability, typeId: number);
|
|
13
13
|
toString(): string;
|
|
14
14
|
get parentTypeId(): number;
|
|
15
|
-
get
|
|
15
|
+
get orderTypeStringId(): string;
|
|
16
|
+
get orderTypeId(): number;
|
|
16
17
|
abstract readonly owner: Unit | Item;
|
|
17
18
|
getSnapshot(): AbilitySnapshot;
|
|
18
19
|
hasField(field: jabilityfield | number): boolean;
|
|
@@ -34,6 +35,9 @@ export declare abstract class Ability extends Handle<jability> {
|
|
|
34
35
|
setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
|
|
35
36
|
get levelCount(): number;
|
|
36
37
|
abstract get level(): number;
|
|
38
|
+
abstract get cooldownRemaining(): number;
|
|
39
|
+
abstract set cooldownRemaining(cooldownRemaining: number);
|
|
40
|
+
abstract interruptCast(): void;
|
|
37
41
|
static get onCreate(): Event<[Ability]>;
|
|
38
42
|
static get destroyEvent(): Event<[Ability]>;
|
|
39
43
|
}
|
|
@@ -44,6 +48,9 @@ export declare class UnrecognizedAbility extends Ability {
|
|
|
44
48
|
readonly owner: Unit;
|
|
45
49
|
constructor(typeId: number, owner: Unit);
|
|
46
50
|
get level(): number;
|
|
51
|
+
get cooldownRemaining(): number;
|
|
52
|
+
set cooldownRemaining(_: number);
|
|
53
|
+
interruptCast(): void;
|
|
47
54
|
}
|
|
48
55
|
export declare class UnitAbility extends Ability {
|
|
49
56
|
readonly owner: Unit;
|
|
@@ -54,7 +61,8 @@ export declare class UnitAbility extends Ability {
|
|
|
54
61
|
get level(): number;
|
|
55
62
|
set level(v: number);
|
|
56
63
|
get cooldownRemaining(): number;
|
|
57
|
-
set cooldownRemaining(
|
|
64
|
+
set cooldownRemaining(cooldownRemaining: number);
|
|
65
|
+
interruptCast(): void;
|
|
58
66
|
static get onCreate(): Event<[UnitAbility]>;
|
|
59
67
|
static get onDestroy(): Event<[UnitAbility]>;
|
|
60
68
|
}
|
|
@@ -78,6 +86,9 @@ export declare class ItemAbility extends Ability {
|
|
|
78
86
|
setField(field: jabilitybooleanlevelfield, level: number, value: boolean): boolean;
|
|
79
87
|
setField(field: jabilitystringlevelfield, level: number, value: string): boolean;
|
|
80
88
|
get level(): number;
|
|
89
|
+
get cooldownRemaining(): number;
|
|
90
|
+
set cooldownRemaining(cooldownRemaining: number);
|
|
91
|
+
interruptCast(): void;
|
|
81
92
|
static get onCreate(): Event<[ItemAbility]>;
|
|
82
93
|
static get onDestroy(): Event<[ItemAbility]>;
|
|
83
94
|
}
|
|
@@ -10,7 +10,10 @@ local ____exports = {}
|
|
|
10
10
|
local ____handle = require("core.types.handle")
|
|
11
11
|
local Handle = ____handle.Handle
|
|
12
12
|
local ____ability = require("engine.internal.item.ability")
|
|
13
|
+
local abilityActionDummy = ____ability.abilityActionDummy
|
|
13
14
|
local doAbilityAction = ____ability.doAbilityAction
|
|
15
|
+
local doAbilityActionForceDummy = ____ability.doAbilityActionForceDummy
|
|
16
|
+
local startItemCooldown = ____ability.startItemCooldown
|
|
14
17
|
local getUnitAbilityLevel = GetUnitAbilityLevel
|
|
15
18
|
local setUnitAbilityLevel = SetUnitAbilityLevel
|
|
16
19
|
local setAbilityIntegerField = BlzSetAbilityIntegerField
|
|
@@ -32,6 +35,8 @@ local getAbilityStringLevelField = BlzGetAbilityStringLevelField
|
|
|
32
35
|
local getUnitAbilityCooldownRemaining = BlzGetUnitAbilityCooldownRemaining
|
|
33
36
|
local startUnitAbilityCooldown = BlzStartUnitAbilityCooldown
|
|
34
37
|
local getHandleId = GetHandleId
|
|
38
|
+
local getItemBooleanField = BlzGetItemBooleanField
|
|
39
|
+
local setItemBooleanField = BlzSetItemBooleanField
|
|
35
40
|
local unitHideAbility = BlzUnitHideAbility
|
|
36
41
|
local match = string.match
|
|
37
42
|
local ____type = _G.type
|
|
@@ -296,10 +301,18 @@ __TS__SetDescriptor(
|
|
|
296
301
|
)
|
|
297
302
|
__TS__SetDescriptor(
|
|
298
303
|
Ability.prototype,
|
|
299
|
-
"
|
|
304
|
+
"orderTypeStringId",
|
|
300
305
|
{get = function(self)
|
|
301
306
|
local field = orderIdFieldByParentTypeId[self.parentTypeId]
|
|
302
|
-
return
|
|
307
|
+
return field ~= nil and getAbilityStringLevelField(self.handle, field, self.level) or (orders[self.parentTypeId] or "")
|
|
308
|
+
end},
|
|
309
|
+
true
|
|
310
|
+
)
|
|
311
|
+
__TS__SetDescriptor(
|
|
312
|
+
Ability.prototype,
|
|
313
|
+
"orderTypeId",
|
|
314
|
+
{get = function(self)
|
|
315
|
+
return order2orderId(self.orderTypeStringId)
|
|
303
316
|
end},
|
|
304
317
|
true
|
|
305
318
|
)
|
|
@@ -318,6 +331,17 @@ __TS__SetDescriptor(
|
|
|
318
331
|
end},
|
|
319
332
|
true
|
|
320
333
|
)
|
|
334
|
+
__TS__SetDescriptor(
|
|
335
|
+
Ability.prototype,
|
|
336
|
+
"cooldownRemaining",
|
|
337
|
+
{
|
|
338
|
+
get = function(self)
|
|
339
|
+
end,
|
|
340
|
+
set = function(self, cooldownRemaining)
|
|
341
|
+
end
|
|
342
|
+
},
|
|
343
|
+
true
|
|
344
|
+
)
|
|
321
345
|
__TS__ObjectDefineProperty(
|
|
322
346
|
Ability,
|
|
323
347
|
"onCreate",
|
|
@@ -341,6 +365,8 @@ function UnrecognizedAbility.prototype.____constructor(self, typeId, owner)
|
|
|
341
365
|
UnrecognizedAbility.____super.prototype.____constructor(self, nil, typeId)
|
|
342
366
|
self.owner = owner
|
|
343
367
|
end
|
|
368
|
+
function UnrecognizedAbility.prototype.interruptCast(self)
|
|
369
|
+
end
|
|
344
370
|
__TS__SetDescriptor(
|
|
345
371
|
UnrecognizedAbility.prototype,
|
|
346
372
|
"level",
|
|
@@ -349,6 +375,18 @@ __TS__SetDescriptor(
|
|
|
349
375
|
end},
|
|
350
376
|
true
|
|
351
377
|
)
|
|
378
|
+
__TS__SetDescriptor(
|
|
379
|
+
UnrecognizedAbility.prototype,
|
|
380
|
+
"cooldownRemaining",
|
|
381
|
+
{
|
|
382
|
+
get = function(self)
|
|
383
|
+
return 0
|
|
384
|
+
end,
|
|
385
|
+
set = function(self, _)
|
|
386
|
+
end
|
|
387
|
+
},
|
|
388
|
+
true
|
|
389
|
+
)
|
|
352
390
|
____exports.UnitAbility = __TS__Class()
|
|
353
391
|
local UnitAbility = ____exports.UnitAbility
|
|
354
392
|
UnitAbility.name = "UnitAbility"
|
|
@@ -364,6 +402,9 @@ end
|
|
|
364
402
|
function UnitAbility.prototype.decrementHideCounter(self)
|
|
365
403
|
unitHideAbility(self.u, self.typeId, false)
|
|
366
404
|
end
|
|
405
|
+
function UnitAbility.prototype.interruptCast(self)
|
|
406
|
+
self.owner:interruptCast(self.typeId)
|
|
407
|
+
end
|
|
367
408
|
__TS__SetDescriptor(
|
|
368
409
|
UnitAbility.prototype,
|
|
369
410
|
"level",
|
|
@@ -384,8 +425,8 @@ __TS__SetDescriptor(
|
|
|
384
425
|
get = function(self)
|
|
385
426
|
return getUnitAbilityCooldownRemaining(self.u, self.typeId)
|
|
386
427
|
end,
|
|
387
|
-
set = function(self,
|
|
388
|
-
startUnitAbilityCooldown(self.u, self.typeId,
|
|
428
|
+
set = function(self, cooldownRemaining)
|
|
429
|
+
startUnitAbilityCooldown(self.u, self.typeId, cooldownRemaining)
|
|
389
430
|
end
|
|
390
431
|
},
|
|
391
432
|
true
|
|
@@ -410,6 +451,9 @@ end
|
|
|
410
451
|
local function setAbilityField(_, ability, field, levelOrValue, value)
|
|
411
452
|
return ____exports.Ability.prototype.setField(ability, field, levelOrValue, value)
|
|
412
453
|
end
|
|
454
|
+
local function getAbilityCooldown(_, abilityTypeId)
|
|
455
|
+
return getUnitAbilityCooldownRemaining(abilityActionDummy, abilityTypeId)
|
|
456
|
+
end
|
|
413
457
|
____exports.ItemAbility = __TS__Class()
|
|
414
458
|
local ItemAbility = ____exports.ItemAbility
|
|
415
459
|
ItemAbility.name = "ItemAbility"
|
|
@@ -437,6 +481,14 @@ function ItemAbility.prototype.setField(self, field, levelOrValue, value)
|
|
|
437
481
|
value
|
|
438
482
|
)
|
|
439
483
|
end
|
|
484
|
+
function ItemAbility.prototype.interruptCast(self)
|
|
485
|
+
local handle = self.owner.handle
|
|
486
|
+
local activelyUsed = getItemBooleanField(handle, ITEM_BF_ACTIVELY_USED)
|
|
487
|
+
if activelyUsed then
|
|
488
|
+
setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, false)
|
|
489
|
+
setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, true)
|
|
490
|
+
end
|
|
491
|
+
end
|
|
440
492
|
__TS__SetDescriptor(
|
|
441
493
|
ItemAbility.prototype,
|
|
442
494
|
"level",
|
|
@@ -445,6 +497,27 @@ __TS__SetDescriptor(
|
|
|
445
497
|
end},
|
|
446
498
|
true
|
|
447
499
|
)
|
|
500
|
+
__TS__SetDescriptor(
|
|
501
|
+
ItemAbility.prototype,
|
|
502
|
+
"cooldownRemaining",
|
|
503
|
+
{
|
|
504
|
+
get = function(self)
|
|
505
|
+
local item = self.owner
|
|
506
|
+
local ____doAbilityActionForceDummy_4 = doAbilityActionForceDummy
|
|
507
|
+
local ____item_handle_3 = item.handle
|
|
508
|
+
local ____opt_1 = item.owner
|
|
509
|
+
return ____doAbilityActionForceDummy_4(____item_handle_3, ____opt_1 and ____opt_1.handle, getAbilityCooldown, self.typeId)
|
|
510
|
+
end,
|
|
511
|
+
set = function(self, cooldownRemaining)
|
|
512
|
+
local item = self.owner
|
|
513
|
+
local ____startItemCooldown_8 = startItemCooldown
|
|
514
|
+
local ____item_handle_7 = item.handle
|
|
515
|
+
local ____opt_5 = item.owner
|
|
516
|
+
____startItemCooldown_8(____item_handle_7, ____opt_5 and ____opt_5.handle, cooldownRemaining)
|
|
517
|
+
end
|
|
518
|
+
},
|
|
519
|
+
true
|
|
520
|
+
)
|
|
448
521
|
__TS__ObjectDefineProperty(
|
|
449
522
|
ItemAbility,
|
|
450
523
|
"onCreate",
|