warscript 0.0.1-dev.47f470c → 0.0.1-dev.4f51f48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.d.ts +15 -0
- package/core/types/player.lua +56 -14
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +91 -46
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +846 -790
- package/engine/behavior.d.ts +5 -0
- package/engine/behavior.lua +106 -27
- package/engine/behaviour/ability/apply-buff.lua +1 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +5 -1
- package/engine/behaviour/ability.lua +26 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
- package/engine/behaviour/unit/stun-immunity.lua +52 -27
- package/engine/behaviour/unit.d.ts +34 -0
- package/engine/behaviour/unit.lua +190 -4
- package/engine/buff.d.ts +24 -12
- package/engine/buff.lua +190 -121
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +45 -14
- package/engine/internal/unit.d.ts +42 -17
- package/engine/internal/unit.lua +331 -165
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/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 +0 -9
- 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/curse.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/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/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/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 +18 -16
- package/engine/object-data/entry/ability-type.lua +77 -16
- package/engine/object-data/entry/buff-type/applicable.lua +9 -4
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/sound-preset.d.ts +18 -2
- package/engine/object-data/entry/sound-preset.lua +105 -15
- package/engine/object-data/entry/unit-type.d.ts +13 -4
- package/engine/object-data/entry/unit-type.lua +156 -88
- package/engine/object-data/entry.d.ts +2 -2
- package/engine/object-data/entry.lua +14 -7
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +69 -3
- package/engine/object-field/unit.lua +264 -7
- package/engine/object-field.d.ts +23 -6
- package/engine/object-field.lua +304 -127
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/fields/unit.d.ts +6 -0
- package/engine/standard/fields/unit.lua +11 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +2 -2
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +22 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/buff.lua
CHANGED
|
@@ -16,6 +16,7 @@ local internalApplyBuff = ____applicable.internalApplyBuff
|
|
|
16
16
|
local removeBuff = ____applicable.removeBuff
|
|
17
17
|
local ____ability = require("engine.internal.ability")
|
|
18
18
|
local Ability = ____ability.Ability
|
|
19
|
+
local UnitAbility = ____ability.UnitAbility
|
|
19
20
|
local ____ability = require("engine.object-field.ability")
|
|
20
21
|
local AbilityBooleanField = ____ability.AbilityBooleanField
|
|
21
22
|
local AbilityNumberField = ____ability.AbilityNumberField
|
|
@@ -28,9 +29,6 @@ local ____math = require("math")
|
|
|
28
29
|
local max = ____math.max
|
|
29
30
|
local min = ____math.min
|
|
30
31
|
local ____bonus = require("engine.internal.unit.bonus")
|
|
31
|
-
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
32
|
-
local getUnitBonus = ____bonus.getUnitBonus
|
|
33
|
-
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
34
32
|
local UnitBonusType = ____bonus.UnitBonusType
|
|
35
33
|
local ____area_2Ddamage = require("engine.internal.mechanics.area-damage")
|
|
36
34
|
local damageArea = ____area_2Ddamage.damageArea
|
|
@@ -53,6 +51,8 @@ local ____item = require("engine.internal.item")
|
|
|
53
51
|
local Item = ____item.Item
|
|
54
52
|
local ____destructable = require("core.types.destructable")
|
|
55
53
|
local Destructable = ____destructable.Destructable
|
|
54
|
+
local ____ability = require("engine.standard.fields.ability")
|
|
55
|
+
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
56
56
|
local getUnitAbility = BlzGetUnitAbility
|
|
57
57
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
58
58
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -109,6 +109,7 @@ local buffParametersKeys = {
|
|
|
109
109
|
durationIncreaseOnAutoAttack = true,
|
|
110
110
|
maximumDuration = true,
|
|
111
111
|
maximumRemainingDuration = true,
|
|
112
|
+
turnsIntoGhost = true,
|
|
112
113
|
stuns = true,
|
|
113
114
|
ignoresStunImmunity = true,
|
|
114
115
|
providesStunImmunity = true,
|
|
@@ -123,7 +124,8 @@ local buffParametersKeys = {
|
|
|
123
124
|
damageOnExpiration = true,
|
|
124
125
|
healingOnExpiration = true,
|
|
125
126
|
killsOnExpiration = true,
|
|
126
|
-
explodesOnExpiration = true
|
|
127
|
+
explodesOnExpiration = true,
|
|
128
|
+
abilityCooldownFactor = true
|
|
127
129
|
}
|
|
128
130
|
local function resolveEnumValue(ability, level, value)
|
|
129
131
|
if value == nil or type(value) == "number" then
|
|
@@ -174,6 +176,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
174
176
|
end
|
|
175
177
|
end
|
|
176
178
|
local buffBooleanParameters = {
|
|
179
|
+
"turnsIntoGhost",
|
|
177
180
|
"stuns",
|
|
178
181
|
"ignoresStunImmunity",
|
|
179
182
|
"disablesAutoAttack",
|
|
@@ -199,7 +202,8 @@ local buffNumberParameters = {
|
|
|
199
202
|
"healingPerInterval",
|
|
200
203
|
"healingOverDuration",
|
|
201
204
|
"damageOnExpiration",
|
|
202
|
-
"healingOnExpiration"
|
|
205
|
+
"healingOnExpiration",
|
|
206
|
+
"abilityCooldownFactor"
|
|
203
207
|
}
|
|
204
208
|
local unsuccessfulApplicationMarker = {}
|
|
205
209
|
local function selectBuffTypeIdWithLeastDuration(buffTypeIds, unit)
|
|
@@ -302,7 +306,8 @@ buffHealingIntervalTimerCallback = function(buff)
|
|
|
302
306
|
source:healTarget(buff[101], healingPerInterval)
|
|
303
307
|
end
|
|
304
308
|
end
|
|
305
|
-
local
|
|
309
|
+
local buffCreatedEvent = __TS__New(Event)
|
|
310
|
+
local buffBeingDestroyedEvent = __TS__New(Event)
|
|
306
311
|
____exports.Buff = __TS__Class()
|
|
307
312
|
local Buff = ____exports.Buff
|
|
308
313
|
Buff.name = "Buff"
|
|
@@ -321,7 +326,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
321
326
|
typeId = selectBuffTypeIdWithLeastDuration(typeIdOrTypeIds, _unit)
|
|
322
327
|
polarity = resistanceTypeOrPolarity
|
|
323
328
|
resistanceType = abilityOrParametersOrResistanceType
|
|
324
|
-
if __TS__InstanceOf(parametersOrAbility, Ability) then
|
|
329
|
+
if __TS__InstanceOf(parametersOrAbility, Ability) or parametersOrAbility == nil then
|
|
325
330
|
ability = parametersOrAbility
|
|
326
331
|
else
|
|
327
332
|
ability = nil
|
|
@@ -331,7 +336,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
331
336
|
typeId = typeIdOrTypeIds
|
|
332
337
|
polarity = polarityOrTypeIdSelectionPolicy
|
|
333
338
|
resistanceType = resistanceTypeOrPolarity
|
|
334
|
-
if __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) then
|
|
339
|
+
if __TS__InstanceOf(abilityOrParametersOrResistanceType, Ability) or abilityOrParametersOrResistanceType == nil then
|
|
335
340
|
ability = abilityOrParametersOrResistanceType
|
|
336
341
|
parameters = parametersOrAbility
|
|
337
342
|
else
|
|
@@ -340,7 +345,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
340
345
|
end
|
|
341
346
|
end
|
|
342
347
|
self.typeId = typeId
|
|
343
|
-
if not __TS__InstanceOf(ability, Ability) then
|
|
348
|
+
if not (__TS__InstanceOf(ability, Ability) or ability == nil) then
|
|
344
349
|
parameters = ability
|
|
345
350
|
ability = nil
|
|
346
351
|
end
|
|
@@ -371,7 +376,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
371
376
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
372
377
|
if missProbability ~= nil then
|
|
373
378
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
374
|
-
self[
|
|
379
|
+
self[142] = missProbability
|
|
375
380
|
end
|
|
376
381
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
377
382
|
if buffByTypeId == nil then
|
|
@@ -504,64 +509,68 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
504
509
|
end
|
|
505
510
|
self:onCreate()
|
|
506
511
|
self[100] = 1
|
|
512
|
+
Event.invoke(buffCreatedEvent, self)
|
|
507
513
|
end
|
|
508
|
-
function Buff.prototype.
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
514
|
+
function Buff.prototype.onAbilityGained(self, ability)
|
|
515
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
516
|
+
local abilityCooldownModifier = self[144]
|
|
517
|
+
if abilityCooldownModifier then
|
|
518
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
519
|
+
end
|
|
520
|
+
end
|
|
512
521
|
end
|
|
513
|
-
function Buff.prototype.
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
522
|
+
function Buff.prototype.onAbilityLost(self, ability)
|
|
523
|
+
if __TS__InstanceOf(ability, UnitAbility) then
|
|
524
|
+
local abilityCooldownModifier = self[144]
|
|
525
|
+
if abilityCooldownModifier then
|
|
526
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
527
|
+
end
|
|
518
528
|
end
|
|
519
|
-
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self._unit, bonusType, bonusIdByBonusType[bonusType], value)
|
|
520
529
|
end
|
|
521
530
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
522
531
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
523
532
|
Effect:flash(self[105], widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
524
533
|
else
|
|
525
534
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
526
|
-
local
|
|
527
|
-
local
|
|
528
|
-
local
|
|
535
|
+
local ____Effect_40 = Effect
|
|
536
|
+
local ____Effect_flash_41 = Effect.flash
|
|
537
|
+
local ____array_39 = __TS__SparseArrayNew(
|
|
529
538
|
self[105],
|
|
530
539
|
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
531
540
|
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
532
541
|
)
|
|
533
|
-
local
|
|
542
|
+
local ____isWidgetProvided_38
|
|
534
543
|
if isWidgetProvided then
|
|
535
|
-
|
|
544
|
+
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
536
545
|
else
|
|
537
|
-
|
|
546
|
+
____isWidgetProvided_38 = widgetOrXOrParametersOrDuration
|
|
538
547
|
end
|
|
539
|
-
__TS__SparseArrayPush(
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
__TS__SparseArraySpread(
|
|
548
|
+
__TS__SparseArrayPush(____array_39, ____isWidgetProvided_38)
|
|
549
|
+
____Effect_flash_41(
|
|
550
|
+
____Effect_40,
|
|
551
|
+
__TS__SparseArraySpread(____array_39)
|
|
543
552
|
)
|
|
544
553
|
end
|
|
545
554
|
end
|
|
546
555
|
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
547
556
|
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
548
|
-
local
|
|
549
|
-
local
|
|
550
|
-
local
|
|
557
|
+
local ____Effect_44 = Effect
|
|
558
|
+
local ____Effect_flash_45 = Effect.flash
|
|
559
|
+
local ____array_43 = __TS__SparseArrayNew(
|
|
551
560
|
self[106],
|
|
552
561
|
isWidgetProvided and widgetOrDuration or self._unit,
|
|
553
562
|
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
554
563
|
)
|
|
555
|
-
local
|
|
564
|
+
local ____isWidgetProvided_42
|
|
556
565
|
if isWidgetProvided then
|
|
557
|
-
|
|
566
|
+
____isWidgetProvided_42 = duration
|
|
558
567
|
else
|
|
559
|
-
|
|
568
|
+
____isWidgetProvided_42 = widgetOrDuration
|
|
560
569
|
end
|
|
561
|
-
__TS__SparseArrayPush(
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
__TS__SparseArraySpread(
|
|
570
|
+
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
571
|
+
____Effect_flash_45(
|
|
572
|
+
____Effect_44,
|
|
573
|
+
__TS__SparseArraySpread(____array_43)
|
|
565
574
|
)
|
|
566
575
|
end
|
|
567
576
|
function Buff.prototype.onCreate(self)
|
|
@@ -592,26 +601,33 @@ function Buff.prototype.onDestroy(self)
|
|
|
592
601
|
behavior:destroy()
|
|
593
602
|
end
|
|
594
603
|
end
|
|
595
|
-
|
|
604
|
+
local previousAbilityCooldownModifier = self[144]
|
|
605
|
+
if previousAbilityCooldownModifier then
|
|
606
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
607
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
608
|
+
end
|
|
609
|
+
end
|
|
610
|
+
if self[139] then
|
|
611
|
+
unit:decrementInvulnerabilityCounter()
|
|
612
|
+
end
|
|
613
|
+
if self[138] then
|
|
596
614
|
unit:decrementDisableAutoAttackCounter()
|
|
597
615
|
end
|
|
598
|
-
if self[
|
|
599
|
-
if self[
|
|
600
|
-
unit:
|
|
616
|
+
if self[136] then
|
|
617
|
+
if self[137] then
|
|
618
|
+
unit:decrementForceStunCounter()
|
|
601
619
|
end
|
|
602
620
|
unit:decrementStunCounter()
|
|
603
621
|
end
|
|
622
|
+
if self[135] then
|
|
623
|
+
unit:decrementGhostCounter()
|
|
624
|
+
end
|
|
604
625
|
if self._abilityTypeIds ~= nil then
|
|
605
626
|
for abilityTypeId in pairs(self._abilityTypeIds) do
|
|
606
627
|
unit:removeAbility(abilityTypeId)
|
|
607
628
|
end
|
|
608
629
|
end
|
|
609
|
-
|
|
610
|
-
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
611
|
-
removeUnitBonus(unit, bonusType, bonusId)
|
|
612
|
-
end
|
|
613
|
-
end
|
|
614
|
-
Event.invoke(buffDestroyEvent, self)
|
|
630
|
+
Event.invoke(buffBeingDestroyedEvent, self)
|
|
615
631
|
self[100] = 3
|
|
616
632
|
return UnitBehavior.prototype.onDestroy(self)
|
|
617
633
|
end
|
|
@@ -640,8 +656,8 @@ function Buff.apply(self, ...)
|
|
|
640
656
|
end
|
|
641
657
|
end
|
|
642
658
|
function Buff.getByTypeId(self, unit, typeId)
|
|
643
|
-
local
|
|
644
|
-
local buff =
|
|
659
|
+
local ____opt_46 = buffByTypeIdByUnit[unit]
|
|
660
|
+
local buff = ____opt_46 and ____opt_46[typeId]
|
|
645
661
|
if __TS__InstanceOf(buff, self) then
|
|
646
662
|
return buff
|
|
647
663
|
end
|
|
@@ -655,9 +671,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
655
671
|
if self[121] ~= nil then
|
|
656
672
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
657
673
|
end
|
|
658
|
-
if self[
|
|
674
|
+
if self[141] then
|
|
659
675
|
unit:explode()
|
|
660
|
-
elseif self[
|
|
676
|
+
elseif self[140] then
|
|
661
677
|
unit:kill()
|
|
662
678
|
end
|
|
663
679
|
end
|
|
@@ -799,8 +815,8 @@ __TS__SetDescriptor(
|
|
|
799
815
|
return
|
|
800
816
|
end
|
|
801
817
|
self[112] = damageInterval
|
|
802
|
-
local
|
|
803
|
-
local elapsed =
|
|
818
|
+
local ____opt_48 = self._timer
|
|
819
|
+
local elapsed = ____opt_48 and ____opt_48.elapsed or 0
|
|
804
820
|
local timer = self[114]
|
|
805
821
|
if timer == nil then
|
|
806
822
|
timer = Timer:create()
|
|
@@ -879,8 +895,8 @@ __TS__SetDescriptor(
|
|
|
879
895
|
return
|
|
880
896
|
end
|
|
881
897
|
self[117] = healingInterval
|
|
882
|
-
local
|
|
883
|
-
local elapsed =
|
|
898
|
+
local ____opt_50 = self._timer
|
|
899
|
+
local elapsed = ____opt_50 and ____opt_50.elapsed or 0
|
|
884
900
|
local timer = self[119]
|
|
885
901
|
if timer == nil then
|
|
886
902
|
timer = Timer:create()
|
|
@@ -961,30 +977,53 @@ __TS__SetDescriptor(
|
|
|
961
977
|
},
|
|
962
978
|
true
|
|
963
979
|
)
|
|
980
|
+
__TS__SetDescriptor(
|
|
981
|
+
Buff.prototype,
|
|
982
|
+
"turnsIntoGhost",
|
|
983
|
+
{
|
|
984
|
+
get = function(self)
|
|
985
|
+
local ____self__135_52 = self[135]
|
|
986
|
+
if ____self__135_52 == nil then
|
|
987
|
+
____self__135_52 = false
|
|
988
|
+
end
|
|
989
|
+
return ____self__135_52
|
|
990
|
+
end,
|
|
991
|
+
set = function(self, turnsIntoGhost)
|
|
992
|
+
if not turnsIntoGhost and self[135] then
|
|
993
|
+
self.object:decrementGhostCounter()
|
|
994
|
+
self[135] = nil
|
|
995
|
+
elseif turnsIntoGhost and not self[135] then
|
|
996
|
+
self.object:incrementGhostCounter()
|
|
997
|
+
self[135] = true
|
|
998
|
+
end
|
|
999
|
+
end
|
|
1000
|
+
},
|
|
1001
|
+
true
|
|
1002
|
+
)
|
|
964
1003
|
__TS__SetDescriptor(
|
|
965
1004
|
Buff.prototype,
|
|
966
1005
|
"stuns",
|
|
967
1006
|
{
|
|
968
1007
|
get = function(self)
|
|
969
|
-
local
|
|
970
|
-
if
|
|
971
|
-
|
|
1008
|
+
local ____self__136_53 = self[136]
|
|
1009
|
+
if ____self__136_53 == nil then
|
|
1010
|
+
____self__136_53 = false
|
|
972
1011
|
end
|
|
973
|
-
return
|
|
1012
|
+
return ____self__136_53
|
|
974
1013
|
end,
|
|
975
1014
|
set = function(self, stuns)
|
|
976
|
-
if not stuns and self[
|
|
977
|
-
if self[
|
|
978
|
-
self.object:
|
|
1015
|
+
if not stuns and self[136] then
|
|
1016
|
+
if self[137] then
|
|
1017
|
+
self.object:decrementForceStunCounter()
|
|
979
1018
|
end
|
|
980
1019
|
self.object:decrementStunCounter()
|
|
981
|
-
self[
|
|
982
|
-
elseif stuns and not self[
|
|
983
|
-
if self[
|
|
984
|
-
self.object:
|
|
1020
|
+
self[136] = nil
|
|
1021
|
+
elseif stuns and not self[136] then
|
|
1022
|
+
if self[137] then
|
|
1023
|
+
self.object:incrementForceStunCounter()
|
|
985
1024
|
end
|
|
986
1025
|
self.object:incrementStunCounter()
|
|
987
|
-
self[
|
|
1026
|
+
self[136] = true
|
|
988
1027
|
end
|
|
989
1028
|
end
|
|
990
1029
|
},
|
|
@@ -995,23 +1034,23 @@ __TS__SetDescriptor(
|
|
|
995
1034
|
"ignoresStunImmunity",
|
|
996
1035
|
{
|
|
997
1036
|
get = function(self)
|
|
998
|
-
local
|
|
999
|
-
if
|
|
1000
|
-
|
|
1037
|
+
local ____self__137_54 = self[137]
|
|
1038
|
+
if ____self__137_54 == nil then
|
|
1039
|
+
____self__137_54 = false
|
|
1001
1040
|
end
|
|
1002
|
-
return
|
|
1041
|
+
return ____self__137_54
|
|
1003
1042
|
end,
|
|
1004
1043
|
set = function(self, ignoresStunImmunity)
|
|
1005
|
-
if not ignoresStunImmunity and self[
|
|
1006
|
-
if self[
|
|
1007
|
-
self.object:
|
|
1044
|
+
if not ignoresStunImmunity and self[137] then
|
|
1045
|
+
if self[136] then
|
|
1046
|
+
self.object:decrementForceStunCounter()
|
|
1008
1047
|
end
|
|
1009
|
-
self[
|
|
1010
|
-
elseif ignoresStunImmunity and not self[
|
|
1011
|
-
if self[
|
|
1012
|
-
self.object:
|
|
1048
|
+
self[137] = nil
|
|
1049
|
+
elseif ignoresStunImmunity and not self[137] then
|
|
1050
|
+
if self[136] then
|
|
1051
|
+
self.object:incrementForceStunCounter()
|
|
1013
1052
|
end
|
|
1014
|
-
self[
|
|
1053
|
+
self[137] = true
|
|
1015
1054
|
end
|
|
1016
1055
|
end
|
|
1017
1056
|
},
|
|
@@ -1022,19 +1061,19 @@ __TS__SetDescriptor(
|
|
|
1022
1061
|
"disablesAutoAttack",
|
|
1023
1062
|
{
|
|
1024
1063
|
get = function(self)
|
|
1025
|
-
local
|
|
1026
|
-
if
|
|
1027
|
-
|
|
1064
|
+
local ____self__138_55 = self[138]
|
|
1065
|
+
if ____self__138_55 == nil then
|
|
1066
|
+
____self__138_55 = false
|
|
1028
1067
|
end
|
|
1029
|
-
return
|
|
1068
|
+
return ____self__138_55
|
|
1030
1069
|
end,
|
|
1031
1070
|
set = function(self, disablesAutoAttack)
|
|
1032
|
-
if not disablesAutoAttack and self[
|
|
1071
|
+
if not disablesAutoAttack and self[138] then
|
|
1033
1072
|
self.object:decrementDisableAutoAttackCounter()
|
|
1034
|
-
self[
|
|
1035
|
-
elseif disablesAutoAttack and not self[
|
|
1073
|
+
self[138] = nil
|
|
1074
|
+
elseif disablesAutoAttack and not self[138] then
|
|
1036
1075
|
self.object:incrementDisableAutoAttackCounter()
|
|
1037
|
-
self[
|
|
1076
|
+
self[138] = true
|
|
1038
1077
|
end
|
|
1039
1078
|
end
|
|
1040
1079
|
},
|
|
@@ -1045,19 +1084,19 @@ __TS__SetDescriptor(
|
|
|
1045
1084
|
"providesInvulnerability",
|
|
1046
1085
|
{
|
|
1047
1086
|
get = function(self)
|
|
1048
|
-
local
|
|
1049
|
-
if
|
|
1050
|
-
|
|
1087
|
+
local ____self__139_56 = self[139]
|
|
1088
|
+
if ____self__139_56 == nil then
|
|
1089
|
+
____self__139_56 = false
|
|
1051
1090
|
end
|
|
1052
|
-
return
|
|
1091
|
+
return ____self__139_56
|
|
1053
1092
|
end,
|
|
1054
1093
|
set = function(self, providesInvulnerability)
|
|
1055
|
-
if not providesInvulnerability and self[
|
|
1094
|
+
if not providesInvulnerability and self[139] then
|
|
1056
1095
|
self.object:decrementInvulnerabilityCounter()
|
|
1057
|
-
self[
|
|
1058
|
-
elseif providesInvulnerability and not self[
|
|
1096
|
+
self[139] = nil
|
|
1097
|
+
elseif providesInvulnerability and not self[139] then
|
|
1059
1098
|
self.object:incrementInvulnerabilityCounter()
|
|
1060
|
-
self[
|
|
1099
|
+
self[139] = true
|
|
1061
1100
|
end
|
|
1062
1101
|
end
|
|
1063
1102
|
},
|
|
@@ -1068,17 +1107,17 @@ __TS__SetDescriptor(
|
|
|
1068
1107
|
"killsOnExpiration",
|
|
1069
1108
|
{
|
|
1070
1109
|
get = function(self)
|
|
1071
|
-
local
|
|
1072
|
-
if
|
|
1073
|
-
|
|
1110
|
+
local ____self__140_57 = self[140]
|
|
1111
|
+
if ____self__140_57 == nil then
|
|
1112
|
+
____self__140_57 = false
|
|
1074
1113
|
end
|
|
1075
|
-
return
|
|
1114
|
+
return ____self__140_57
|
|
1076
1115
|
end,
|
|
1077
1116
|
set = function(self, killsOnExpiration)
|
|
1078
|
-
if not killsOnExpiration and self[
|
|
1079
|
-
self[
|
|
1080
|
-
elseif killsOnExpiration and not self[
|
|
1081
|
-
self[
|
|
1117
|
+
if not killsOnExpiration and self[140] then
|
|
1118
|
+
self[140] = nil
|
|
1119
|
+
elseif killsOnExpiration and not self[140] then
|
|
1120
|
+
self[140] = true
|
|
1082
1121
|
end
|
|
1083
1122
|
end
|
|
1084
1123
|
},
|
|
@@ -1089,17 +1128,17 @@ __TS__SetDescriptor(
|
|
|
1089
1128
|
"explodesOnExpiration",
|
|
1090
1129
|
{
|
|
1091
1130
|
get = function(self)
|
|
1092
|
-
local
|
|
1093
|
-
if
|
|
1094
|
-
|
|
1131
|
+
local ____self__141_58 = self[141]
|
|
1132
|
+
if ____self__141_58 == nil then
|
|
1133
|
+
____self__141_58 = false
|
|
1095
1134
|
end
|
|
1096
|
-
return
|
|
1135
|
+
return ____self__141_58
|
|
1097
1136
|
end,
|
|
1098
1137
|
set = function(self, killsOnExpiration)
|
|
1099
|
-
if not killsOnExpiration and self[
|
|
1100
|
-
self[
|
|
1101
|
-
elseif killsOnExpiration and not self[
|
|
1102
|
-
self[
|
|
1138
|
+
if not killsOnExpiration and self[141] then
|
|
1139
|
+
self[141] = nil
|
|
1140
|
+
elseif killsOnExpiration and not self[141] then
|
|
1141
|
+
self[141] = true
|
|
1103
1142
|
end
|
|
1104
1143
|
end
|
|
1105
1144
|
},
|
|
@@ -1221,13 +1260,13 @@ __TS__SetDescriptor(
|
|
|
1221
1260
|
"remainingDuration",
|
|
1222
1261
|
{
|
|
1223
1262
|
get = function(self)
|
|
1224
|
-
local
|
|
1225
|
-
return
|
|
1263
|
+
local ____opt_59 = self._timer
|
|
1264
|
+
return ____opt_59 and ____opt_59.remaining or 0
|
|
1226
1265
|
end,
|
|
1227
1266
|
set = function(self, remainingDuration)
|
|
1228
|
-
local
|
|
1229
|
-
local
|
|
1230
|
-
local remainingDurationDelta =
|
|
1267
|
+
local ____remainingDuration_63 = remainingDuration
|
|
1268
|
+
local ____opt_61 = self._timer
|
|
1269
|
+
local remainingDurationDelta = ____remainingDuration_63 - (____opt_61 and ____opt_61.remaining or 0)
|
|
1231
1270
|
if remainingDurationDelta ~= 0 then
|
|
1232
1271
|
self[103] = self[103] + remainingDurationDelta
|
|
1233
1272
|
if remainingDuration <= 0 then
|
|
@@ -1242,7 +1281,7 @@ __TS__SetDescriptor(
|
|
|
1242
1281
|
remainingDuration,
|
|
1243
1282
|
self._spellStealPriority,
|
|
1244
1283
|
self._learnLevelMinimum,
|
|
1245
|
-
self[
|
|
1284
|
+
self[142]
|
|
1246
1285
|
) then
|
|
1247
1286
|
local timer = self._timer
|
|
1248
1287
|
if timer == nil then
|
|
@@ -1257,7 +1296,34 @@ __TS__SetDescriptor(
|
|
|
1257
1296
|
},
|
|
1258
1297
|
true
|
|
1259
1298
|
)
|
|
1260
|
-
|
|
1299
|
+
__TS__SetDescriptor(
|
|
1300
|
+
Buff.prototype,
|
|
1301
|
+
"abilityCooldownFactor",
|
|
1302
|
+
{
|
|
1303
|
+
get = function(self)
|
|
1304
|
+
return self[143] or 1
|
|
1305
|
+
end,
|
|
1306
|
+
set = function(self, abilityCooldownFactor)
|
|
1307
|
+
local previousAbilityCooldownModifier = self[144]
|
|
1308
|
+
if previousAbilityCooldownModifier then
|
|
1309
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1310
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
1311
|
+
end
|
|
1312
|
+
end
|
|
1313
|
+
local function modifier(ability, level, cooldown)
|
|
1314
|
+
return cooldown * abilityCooldownFactor
|
|
1315
|
+
end
|
|
1316
|
+
for ____, ability in ipairs(self._unit.abilities) do
|
|
1317
|
+
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1318
|
+
end
|
|
1319
|
+
self[144] = modifier
|
|
1320
|
+
self[143] = abilityCooldownFactor
|
|
1321
|
+
end
|
|
1322
|
+
},
|
|
1323
|
+
true
|
|
1324
|
+
)
|
|
1325
|
+
Buff.createdEvent = buffCreatedEvent
|
|
1326
|
+
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1261
1327
|
(function(self)
|
|
1262
1328
|
local function destroyBuffIfNeeded(buff)
|
|
1263
1329
|
if getUnitAbility(buff[101].handle, buff.typeId) ~= buff.handle and buff[100] == 1 then
|
|
@@ -1311,5 +1377,8 @@ Buff.destroyEvent = buffDestroyEvent;
|
|
|
1311
1377
|
____exports.checkBuffs(target)
|
|
1312
1378
|
end
|
|
1313
1379
|
)
|
|
1380
|
+
buffCreatedEvent:addListener(function(buff)
|
|
1381
|
+
UnitBehavior:forAll(buff.unit, "onBuffGained", buff)
|
|
1382
|
+
end)
|
|
1314
1383
|
end)(Buff)
|
|
1315
1384
|
return ____exports
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Handle } from "../../core/types/handle";
|
|
2
|
+
import { Handle, HandleDestructor } from "../../core/types/handle";
|
|
3
3
|
import { Event } from "../../event";
|
|
4
4
|
import type { Item } from "../../core/types/item";
|
|
5
5
|
import type { Unit } from "./unit";
|
|
@@ -55,14 +55,19 @@ export declare class UnrecognizedAbility extends Ability {
|
|
|
55
55
|
export declare class UnitAbility extends Ability {
|
|
56
56
|
readonly owner: Unit;
|
|
57
57
|
private readonly u;
|
|
58
|
+
private d?;
|
|
58
59
|
constructor(handle: jability, typeId: number, owner: Unit);
|
|
59
60
|
incrementHideCounter(): void;
|
|
60
61
|
decrementHideCounter(): void;
|
|
62
|
+
incrementDisableCounter(): void;
|
|
63
|
+
decrementDisableCounter(): void;
|
|
64
|
+
get isDisabled(): boolean;
|
|
61
65
|
get level(): number;
|
|
62
66
|
set level(v: number);
|
|
63
67
|
get cooldownRemaining(): number;
|
|
64
68
|
set cooldownRemaining(cooldownRemaining: number);
|
|
65
69
|
interruptCast(): void;
|
|
70
|
+
protected onDestroy(): HandleDestructor;
|
|
66
71
|
static get onCreate(): Event<[UnitAbility]>;
|
|
67
72
|
static get onDestroy(): Event<[UnitAbility]>;
|
|
68
73
|
}
|
|
@@ -89,6 +94,7 @@ export declare class ItemAbility extends Ability {
|
|
|
89
94
|
get cooldownRemaining(): number;
|
|
90
95
|
set cooldownRemaining(cooldownRemaining: number);
|
|
91
96
|
interruptCast(): void;
|
|
97
|
+
protected onDestroy(): HandleDestructor;
|
|
92
98
|
static get onCreate(): Event<[ItemAbility]>;
|
|
93
99
|
static get onDestroy(): Event<[ItemAbility]>;
|
|
94
100
|
}
|