warscript 0.0.1-dev.f074376 → 0.0.1-dev.f0daa48
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/sound.lua +1 -1
- package/engine/behaviour/ability.d.ts +9 -5
- package/engine/behaviour/ability.lua +29 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.lua +13 -3
- package/engine/buff.d.ts +52 -19
- package/engine/buff.lua +266 -141
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +1 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +4 -0
- package/engine/internal/unit/bonus.lua +23 -3
- package/engine/internal/unit/fly-height.lua +3 -3
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.lua +1 -1
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -9
- package/engine/internal/unit.lua +79 -121
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +1 -1
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +84 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +42 -18
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/fields/unit.d.ts +11 -6
- package/engine/standard/fields/unit.lua +12 -5
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/lualib_bundle.lua +118 -47
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.lua +23 -17
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +2 -1
- package/utility/linked-set.lua +21 -0
- package/utility/records.lua +20 -1
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.lua
CHANGED
|
@@ -42,6 +42,7 @@ local BuffType = ____buff_2Dtype.BuffType
|
|
|
42
42
|
local ____unit = require("engine.behaviour.unit")
|
|
43
43
|
local UnitBehavior = ____unit.UnitBehavior
|
|
44
44
|
local ____arrays = require("utility.arrays")
|
|
45
|
+
local emptyArray = ____arrays.emptyArray
|
|
45
46
|
local forEach = ____arrays.forEach
|
|
46
47
|
local ____event = require("event")
|
|
47
48
|
local Event = ____event.Event
|
|
@@ -55,6 +56,8 @@ local ____ability = require("engine.standard.fields.ability")
|
|
|
55
56
|
local COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD = ____ability.COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD
|
|
56
57
|
local ____ability = require("engine.behaviour.ability")
|
|
57
58
|
local AbilityBehavior = ____ability.AbilityBehavior
|
|
59
|
+
local ____records = require("utility.records")
|
|
60
|
+
local sortedKeysUnnested = ____records.sortedKeysUnnested
|
|
58
61
|
local getUnitAbility = BlzGetUnitAbility
|
|
59
62
|
local stringValueByBuffTypeIdByFieldId = postcompile(function()
|
|
60
63
|
local stringValueByBuffTypeIdByFieldId = {}
|
|
@@ -100,7 +103,8 @@ local buffParametersKeys = {
|
|
|
100
103
|
damageIncrease = true,
|
|
101
104
|
damageIncreaseFactor = true,
|
|
102
105
|
armorIncrease = true,
|
|
103
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
104
108
|
attackSpeedIncreaseFactor = true,
|
|
105
109
|
movementSpeedIncreaseFactor = true,
|
|
106
110
|
manaRegenerationRateIncreaseFactor = true,
|
|
@@ -123,6 +127,9 @@ local buffParametersKeys = {
|
|
|
123
127
|
maximumAutoAttackCount = true,
|
|
124
128
|
maximumDamageDealtEventCount = true,
|
|
125
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
126
133
|
uniqueGroup = true,
|
|
127
134
|
damageOnExpiration = true,
|
|
128
135
|
healingOnExpiration = true,
|
|
@@ -179,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
179
186
|
end
|
|
180
187
|
end
|
|
181
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
182
190
|
"turnsIntoGhost",
|
|
183
191
|
"stuns",
|
|
184
192
|
"ignoresStunImmunity",
|
|
@@ -194,6 +202,8 @@ local buffNumberParameters = {
|
|
|
194
202
|
"manaRegenerationRateIncreaseFactor",
|
|
195
203
|
"evasionProbability",
|
|
196
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
197
207
|
"damageFactor",
|
|
198
208
|
"receivedDamageFactor",
|
|
199
209
|
"maximumAutoAttackCount",
|
|
@@ -207,6 +217,8 @@ local buffNumberParameters = {
|
|
|
207
217
|
"healingOverDuration",
|
|
208
218
|
"damageOnExpiration",
|
|
209
219
|
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
210
222
|
"abilityCooldownFactor"
|
|
211
223
|
}
|
|
212
224
|
local unsuccessfulApplicationMarker = {}
|
|
@@ -385,7 +397,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
385
397
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
386
398
|
if missProbability ~= nil then
|
|
387
399
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
388
|
-
self[
|
|
400
|
+
self[146] = missProbability
|
|
389
401
|
end
|
|
390
402
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
391
403
|
if buffByTypeId == nil then
|
|
@@ -468,24 +480,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
468
480
|
abilityTypeIds = {}
|
|
469
481
|
self._abilityTypeIds = abilityTypeIds
|
|
470
482
|
end
|
|
471
|
-
for
|
|
483
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
484
|
+
local abilityParameters = parametersAbilityTypeIds[abilityTypeId]
|
|
472
485
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
473
486
|
if addedAbility ~= nil then
|
|
474
487
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
475
488
|
_unit:setAbilityLevel(abilityTypeId, 1 + (abilityParameters.level or ability and ability.level or 0))
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
resolveNumberValue(ability, level, abilityParameterValue)
|
|
485
|
-
)
|
|
486
|
-
end
|
|
489
|
+
if abilityParameters.isButtonVisible == false then
|
|
490
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
491
|
+
end
|
|
492
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
493
|
+
field[1]:setValue(
|
|
494
|
+
addedAbility,
|
|
495
|
+
resolveNumberValue(ability, level, field[2])
|
|
496
|
+
)
|
|
487
497
|
end
|
|
488
|
-
abilityTypeIds[
|
|
498
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
489
499
|
end
|
|
490
500
|
end
|
|
491
501
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -497,18 +507,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
497
507
|
self._behaviors = behaviors
|
|
498
508
|
end
|
|
499
509
|
end
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
if
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
510
|
+
if parameters ~= nil then
|
|
511
|
+
local additionalParameters = {}
|
|
512
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
513
|
+
if not buffParametersKeys[key] then
|
|
514
|
+
if ability then
|
|
515
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
516
|
+
else
|
|
517
|
+
additionalParameters[key] = parameters[key]
|
|
518
|
+
end
|
|
507
519
|
end
|
|
508
520
|
end
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
521
|
+
if (next(additionalParameters)) ~= nil then
|
|
522
|
+
self.parameters = additionalParameters
|
|
523
|
+
end
|
|
512
524
|
end
|
|
513
525
|
end
|
|
514
526
|
if duration ~= nil and duration > 0 then
|
|
@@ -522,7 +534,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
522
534
|
end
|
|
523
535
|
function Buff.prototype.onAbilityGained(self, ability)
|
|
524
536
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
525
|
-
local abilityCooldownModifier = self[
|
|
537
|
+
local abilityCooldownModifier = self[148]
|
|
526
538
|
if abilityCooldownModifier then
|
|
527
539
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
528
540
|
end
|
|
@@ -530,24 +542,38 @@ function Buff.prototype.onAbilityGained(self, ability)
|
|
|
530
542
|
end
|
|
531
543
|
function Buff.prototype.onAbilityLost(self, ability)
|
|
532
544
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
533
|
-
local abilityCooldownModifier = self[
|
|
545
|
+
local abilityCooldownModifier = self[148]
|
|
534
546
|
if abilityCooldownModifier then
|
|
535
547
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
536
548
|
end
|
|
537
549
|
end
|
|
538
550
|
end
|
|
539
551
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
552
|
+
self:flash(
|
|
553
|
+
self[105],
|
|
554
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
555
|
+
widgetOrXOrParametersOrDuration,
|
|
556
|
+
yOrParametersOrDuration,
|
|
557
|
+
parametersOrDuration
|
|
558
|
+
)
|
|
559
|
+
end
|
|
560
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
561
|
+
self:flash(
|
|
562
|
+
self[106],
|
|
563
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
564
|
+
widgetOrXOrParametersOrDuration,
|
|
565
|
+
yOrParametersOrDuration,
|
|
566
|
+
parametersOrDuration
|
|
567
|
+
)
|
|
568
|
+
end
|
|
569
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
540
570
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
541
|
-
Effect:flash(
|
|
571
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
542
572
|
else
|
|
543
573
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
544
574
|
local ____Effect_40 = Effect
|
|
545
575
|
local ____Effect_flash_41 = Effect.flash
|
|
546
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
547
|
-
self[105],
|
|
548
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
549
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
550
|
-
)
|
|
576
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
551
577
|
local ____isWidgetProvided_38
|
|
552
578
|
if isWidgetProvided then
|
|
553
579
|
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
@@ -561,26 +587,8 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
561
587
|
)
|
|
562
588
|
end
|
|
563
589
|
end
|
|
564
|
-
function Buff.prototype.
|
|
565
|
-
|
|
566
|
-
local ____Effect_44 = Effect
|
|
567
|
-
local ____Effect_flash_45 = Effect.flash
|
|
568
|
-
local ____array_43 = __TS__SparseArrayNew(
|
|
569
|
-
self[106],
|
|
570
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
571
|
-
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
572
|
-
)
|
|
573
|
-
local ____isWidgetProvided_42
|
|
574
|
-
if isWidgetProvided then
|
|
575
|
-
____isWidgetProvided_42 = duration
|
|
576
|
-
else
|
|
577
|
-
____isWidgetProvided_42 = widgetOrDuration
|
|
578
|
-
end
|
|
579
|
-
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
580
|
-
____Effect_flash_45(
|
|
581
|
-
____Effect_44,
|
|
582
|
-
__TS__SparseArraySpread(____array_43)
|
|
583
|
-
)
|
|
590
|
+
function Buff.prototype.expire(self)
|
|
591
|
+
expireBuff(self)
|
|
584
592
|
end
|
|
585
593
|
function Buff.prototype.onCreate(self)
|
|
586
594
|
end
|
|
@@ -610,29 +618,29 @@ function Buff.prototype.onDestroy(self)
|
|
|
610
618
|
behavior:destroy()
|
|
611
619
|
end
|
|
612
620
|
end
|
|
613
|
-
local previousAbilityCooldownModifier = self[
|
|
621
|
+
local previousAbilityCooldownModifier = self[148]
|
|
614
622
|
if previousAbilityCooldownModifier then
|
|
615
623
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
616
624
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
617
625
|
end
|
|
618
626
|
end
|
|
619
|
-
if self[
|
|
627
|
+
if self[143] then
|
|
620
628
|
unit:decrementInvulnerabilityCounter()
|
|
621
629
|
end
|
|
622
|
-
if self[
|
|
630
|
+
if self[142] then
|
|
623
631
|
unit:decrementDisableAutoAttackCounter()
|
|
624
632
|
end
|
|
625
|
-
if self[
|
|
626
|
-
if self[
|
|
633
|
+
if self[140] then
|
|
634
|
+
if self[141] then
|
|
627
635
|
unit:decrementForceStunCounter()
|
|
628
636
|
end
|
|
629
637
|
unit:decrementStunCounter()
|
|
630
638
|
end
|
|
631
|
-
if self[
|
|
639
|
+
if self[139] then
|
|
632
640
|
unit:decrementGhostCounter()
|
|
633
641
|
end
|
|
634
642
|
if self._abilityTypeIds ~= nil then
|
|
635
|
-
for abilityTypeId in
|
|
643
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
636
644
|
unit:removeAbility(abilityTypeId)
|
|
637
645
|
end
|
|
638
646
|
end
|
|
@@ -665,8 +673,8 @@ function Buff.apply(self, ...)
|
|
|
665
673
|
end
|
|
666
674
|
end
|
|
667
675
|
function Buff.getByTypeId(self, unit, typeId)
|
|
668
|
-
local
|
|
669
|
-
local buff =
|
|
676
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
677
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
670
678
|
if __TS__InstanceOf(buff, self) then
|
|
671
679
|
return buff
|
|
672
680
|
end
|
|
@@ -680,9 +688,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
680
688
|
if self[121] ~= nil then
|
|
681
689
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
682
690
|
end
|
|
683
|
-
if self[
|
|
691
|
+
if self[145] then
|
|
684
692
|
unit:explode()
|
|
685
|
-
elseif self[
|
|
693
|
+
elseif self[144] then
|
|
686
694
|
unit:kill()
|
|
687
695
|
end
|
|
688
696
|
end
|
|
@@ -737,6 +745,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
737
745
|
end
|
|
738
746
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
739
747
|
if event.originalAmount ~= 0 then
|
|
748
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
749
|
+
if absorbedDamage > 0 then
|
|
750
|
+
event.amount = event.amount - absorbedDamage
|
|
751
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
752
|
+
local ____self__138_44 = self[138]
|
|
753
|
+
if ____self__138_44 == nil then
|
|
754
|
+
____self__138_44 = true
|
|
755
|
+
end
|
|
756
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
757
|
+
self:destroy()
|
|
758
|
+
end
|
|
759
|
+
end
|
|
740
760
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
741
761
|
self[133] = damageReceivedEventCount
|
|
742
762
|
if damageReceivedEventCount == self[134] then
|
|
@@ -824,8 +844,8 @@ __TS__SetDescriptor(
|
|
|
824
844
|
return
|
|
825
845
|
end
|
|
826
846
|
self[112] = damageInterval
|
|
827
|
-
local
|
|
828
|
-
local elapsed =
|
|
847
|
+
local ____opt_45 = self._timer
|
|
848
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
829
849
|
local timer = self[114]
|
|
830
850
|
if timer == nil then
|
|
831
851
|
timer = Timer:create()
|
|
@@ -904,8 +924,8 @@ __TS__SetDescriptor(
|
|
|
904
924
|
return
|
|
905
925
|
end
|
|
906
926
|
self[117] = healingInterval
|
|
907
|
-
local
|
|
908
|
-
local elapsed =
|
|
927
|
+
local ____opt_47 = self._timer
|
|
928
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
909
929
|
local timer = self[119]
|
|
910
930
|
if timer == nil then
|
|
911
931
|
timer = Timer:create()
|
|
@@ -986,24 +1006,50 @@ __TS__SetDescriptor(
|
|
|
986
1006
|
},
|
|
987
1007
|
true
|
|
988
1008
|
)
|
|
1009
|
+
__TS__SetDescriptor(
|
|
1010
|
+
Buff.prototype,
|
|
1011
|
+
"maxHealthIncrease",
|
|
1012
|
+
{
|
|
1013
|
+
get = function(self)
|
|
1014
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1015
|
+
end,
|
|
1016
|
+
set = function(self, maxHealthIncrease)
|
|
1017
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1018
|
+
end
|
|
1019
|
+
},
|
|
1020
|
+
true
|
|
1021
|
+
)
|
|
1022
|
+
__TS__SetDescriptor(
|
|
1023
|
+
Buff.prototype,
|
|
1024
|
+
"maxManaIncrease",
|
|
1025
|
+
{
|
|
1026
|
+
get = function(self)
|
|
1027
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1028
|
+
end,
|
|
1029
|
+
set = function(self, maxManaIncrease)
|
|
1030
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1031
|
+
end
|
|
1032
|
+
},
|
|
1033
|
+
true
|
|
1034
|
+
)
|
|
989
1035
|
__TS__SetDescriptor(
|
|
990
1036
|
Buff.prototype,
|
|
991
1037
|
"turnsIntoGhost",
|
|
992
1038
|
{
|
|
993
1039
|
get = function(self)
|
|
994
|
-
local
|
|
995
|
-
if
|
|
996
|
-
|
|
1040
|
+
local ____self__139_49 = self[139]
|
|
1041
|
+
if ____self__139_49 == nil then
|
|
1042
|
+
____self__139_49 = false
|
|
997
1043
|
end
|
|
998
|
-
return
|
|
1044
|
+
return ____self__139_49
|
|
999
1045
|
end,
|
|
1000
1046
|
set = function(self, turnsIntoGhost)
|
|
1001
|
-
if not turnsIntoGhost and self[
|
|
1047
|
+
if not turnsIntoGhost and self[139] then
|
|
1002
1048
|
self.object:decrementGhostCounter()
|
|
1003
|
-
self[
|
|
1004
|
-
elseif turnsIntoGhost and not self[
|
|
1049
|
+
self[139] = nil
|
|
1050
|
+
elseif turnsIntoGhost and not self[139] then
|
|
1005
1051
|
self.object:incrementGhostCounter()
|
|
1006
|
-
self[
|
|
1052
|
+
self[139] = true
|
|
1007
1053
|
end
|
|
1008
1054
|
end
|
|
1009
1055
|
},
|
|
@@ -1014,25 +1060,25 @@ __TS__SetDescriptor(
|
|
|
1014
1060
|
"stuns",
|
|
1015
1061
|
{
|
|
1016
1062
|
get = function(self)
|
|
1017
|
-
local
|
|
1018
|
-
if
|
|
1019
|
-
|
|
1063
|
+
local ____self__140_50 = self[140]
|
|
1064
|
+
if ____self__140_50 == nil then
|
|
1065
|
+
____self__140_50 = false
|
|
1020
1066
|
end
|
|
1021
|
-
return
|
|
1067
|
+
return ____self__140_50
|
|
1022
1068
|
end,
|
|
1023
1069
|
set = function(self, stuns)
|
|
1024
|
-
if not stuns and self[
|
|
1025
|
-
if self[
|
|
1070
|
+
if not stuns and self[140] then
|
|
1071
|
+
if self[141] then
|
|
1026
1072
|
self.object:decrementForceStunCounter()
|
|
1027
1073
|
end
|
|
1028
1074
|
self.object:decrementStunCounter()
|
|
1029
|
-
self[
|
|
1030
|
-
elseif stuns and not self[
|
|
1031
|
-
if self[
|
|
1075
|
+
self[140] = nil
|
|
1076
|
+
elseif stuns and not self[140] then
|
|
1077
|
+
if self[141] then
|
|
1032
1078
|
self.object:incrementForceStunCounter()
|
|
1033
1079
|
end
|
|
1034
1080
|
self.object:incrementStunCounter()
|
|
1035
|
-
self[
|
|
1081
|
+
self[140] = true
|
|
1036
1082
|
end
|
|
1037
1083
|
end
|
|
1038
1084
|
},
|
|
@@ -1043,23 +1089,23 @@ __TS__SetDescriptor(
|
|
|
1043
1089
|
"ignoresStunImmunity",
|
|
1044
1090
|
{
|
|
1045
1091
|
get = function(self)
|
|
1046
|
-
local
|
|
1047
|
-
if
|
|
1048
|
-
|
|
1092
|
+
local ____self__141_51 = self[141]
|
|
1093
|
+
if ____self__141_51 == nil then
|
|
1094
|
+
____self__141_51 = false
|
|
1049
1095
|
end
|
|
1050
|
-
return
|
|
1096
|
+
return ____self__141_51
|
|
1051
1097
|
end,
|
|
1052
1098
|
set = function(self, ignoresStunImmunity)
|
|
1053
|
-
if not ignoresStunImmunity and self[
|
|
1054
|
-
if self[
|
|
1099
|
+
if not ignoresStunImmunity and self[141] then
|
|
1100
|
+
if self[140] then
|
|
1055
1101
|
self.object:decrementForceStunCounter()
|
|
1056
1102
|
end
|
|
1057
|
-
self[
|
|
1058
|
-
elseif ignoresStunImmunity and not self[
|
|
1059
|
-
if self[
|
|
1103
|
+
self[141] = nil
|
|
1104
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1105
|
+
if self[140] then
|
|
1060
1106
|
self.object:incrementForceStunCounter()
|
|
1061
1107
|
end
|
|
1062
|
-
self[
|
|
1108
|
+
self[141] = true
|
|
1063
1109
|
end
|
|
1064
1110
|
end
|
|
1065
1111
|
},
|
|
@@ -1070,19 +1116,19 @@ __TS__SetDescriptor(
|
|
|
1070
1116
|
"disablesAutoAttack",
|
|
1071
1117
|
{
|
|
1072
1118
|
get = function(self)
|
|
1073
|
-
local
|
|
1074
|
-
if
|
|
1075
|
-
|
|
1119
|
+
local ____self__142_52 = self[142]
|
|
1120
|
+
if ____self__142_52 == nil then
|
|
1121
|
+
____self__142_52 = false
|
|
1076
1122
|
end
|
|
1077
|
-
return
|
|
1123
|
+
return ____self__142_52
|
|
1078
1124
|
end,
|
|
1079
1125
|
set = function(self, disablesAutoAttack)
|
|
1080
|
-
if not disablesAutoAttack and self[
|
|
1126
|
+
if not disablesAutoAttack and self[142] then
|
|
1081
1127
|
self.object:decrementDisableAutoAttackCounter()
|
|
1082
|
-
self[
|
|
1083
|
-
elseif disablesAutoAttack and not self[
|
|
1128
|
+
self[142] = nil
|
|
1129
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1084
1130
|
self.object:incrementDisableAutoAttackCounter()
|
|
1085
|
-
self[
|
|
1131
|
+
self[142] = true
|
|
1086
1132
|
end
|
|
1087
1133
|
end
|
|
1088
1134
|
},
|
|
@@ -1093,19 +1139,19 @@ __TS__SetDescriptor(
|
|
|
1093
1139
|
"providesInvulnerability",
|
|
1094
1140
|
{
|
|
1095
1141
|
get = function(self)
|
|
1096
|
-
local
|
|
1097
|
-
if
|
|
1098
|
-
|
|
1142
|
+
local ____self__143_53 = self[143]
|
|
1143
|
+
if ____self__143_53 == nil then
|
|
1144
|
+
____self__143_53 = false
|
|
1099
1145
|
end
|
|
1100
|
-
return
|
|
1146
|
+
return ____self__143_53
|
|
1101
1147
|
end,
|
|
1102
1148
|
set = function(self, providesInvulnerability)
|
|
1103
|
-
if not providesInvulnerability and self[
|
|
1149
|
+
if not providesInvulnerability and self[143] then
|
|
1104
1150
|
self.object:decrementInvulnerabilityCounter()
|
|
1105
|
-
self[
|
|
1106
|
-
elseif providesInvulnerability and not self[
|
|
1151
|
+
self[143] = nil
|
|
1152
|
+
elseif providesInvulnerability and not self[143] then
|
|
1107
1153
|
self.object:incrementInvulnerabilityCounter()
|
|
1108
|
-
self[
|
|
1154
|
+
self[143] = true
|
|
1109
1155
|
end
|
|
1110
1156
|
end
|
|
1111
1157
|
},
|
|
@@ -1116,17 +1162,17 @@ __TS__SetDescriptor(
|
|
|
1116
1162
|
"killsOnExpiration",
|
|
1117
1163
|
{
|
|
1118
1164
|
get = function(self)
|
|
1119
|
-
local
|
|
1120
|
-
if
|
|
1121
|
-
|
|
1165
|
+
local ____self__144_54 = self[144]
|
|
1166
|
+
if ____self__144_54 == nil then
|
|
1167
|
+
____self__144_54 = false
|
|
1122
1168
|
end
|
|
1123
|
-
return
|
|
1169
|
+
return ____self__144_54
|
|
1124
1170
|
end,
|
|
1125
1171
|
set = function(self, killsOnExpiration)
|
|
1126
|
-
if not killsOnExpiration and self[
|
|
1127
|
-
self[
|
|
1128
|
-
elseif killsOnExpiration and not self[
|
|
1129
|
-
self[
|
|
1172
|
+
if not killsOnExpiration and self[144] then
|
|
1173
|
+
self[144] = nil
|
|
1174
|
+
elseif killsOnExpiration and not self[144] then
|
|
1175
|
+
self[144] = true
|
|
1130
1176
|
end
|
|
1131
1177
|
end
|
|
1132
1178
|
},
|
|
@@ -1137,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1137
1183
|
"explodesOnExpiration",
|
|
1138
1184
|
{
|
|
1139
1185
|
get = function(self)
|
|
1140
|
-
local
|
|
1141
|
-
if
|
|
1142
|
-
|
|
1186
|
+
local ____self__145_55 = self[145]
|
|
1187
|
+
if ____self__145_55 == nil then
|
|
1188
|
+
____self__145_55 = false
|
|
1143
1189
|
end
|
|
1144
|
-
return
|
|
1190
|
+
return ____self__145_55
|
|
1145
1191
|
end,
|
|
1146
1192
|
set = function(self, killsOnExpiration)
|
|
1147
|
-
if not killsOnExpiration and self[
|
|
1148
|
-
self[
|
|
1149
|
-
elseif killsOnExpiration and not self[
|
|
1150
|
-
self[
|
|
1193
|
+
if not killsOnExpiration and self[145] then
|
|
1194
|
+
self[145] = nil
|
|
1195
|
+
elseif killsOnExpiration and not self[145] then
|
|
1196
|
+
self[145] = true
|
|
1151
1197
|
end
|
|
1152
1198
|
end
|
|
1153
1199
|
},
|
|
@@ -1272,9 +1318,23 @@ __TS__SetDescriptor(
|
|
|
1272
1318
|
__TS__SetDescriptor(
|
|
1273
1319
|
Buff.prototype,
|
|
1274
1320
|
"duration",
|
|
1275
|
-
{
|
|
1276
|
-
|
|
1277
|
-
|
|
1321
|
+
{
|
|
1322
|
+
get = function(self)
|
|
1323
|
+
return self[103]
|
|
1324
|
+
end,
|
|
1325
|
+
set = function(self, duration)
|
|
1326
|
+
if duration <= 0 then
|
|
1327
|
+
local timer = self._timer
|
|
1328
|
+
if timer ~= nil then
|
|
1329
|
+
timer:destroy()
|
|
1330
|
+
self._timer = nil
|
|
1331
|
+
end
|
|
1332
|
+
self[103] = 0
|
|
1333
|
+
else
|
|
1334
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1335
|
+
end
|
|
1336
|
+
end
|
|
1337
|
+
},
|
|
1278
1338
|
true
|
|
1279
1339
|
)
|
|
1280
1340
|
__TS__SetDescriptor(
|
|
@@ -1282,13 +1342,13 @@ __TS__SetDescriptor(
|
|
|
1282
1342
|
"remainingDuration",
|
|
1283
1343
|
{
|
|
1284
1344
|
get = function(self)
|
|
1285
|
-
local
|
|
1286
|
-
return
|
|
1345
|
+
local ____opt_56 = self._timer
|
|
1346
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1287
1347
|
end,
|
|
1288
1348
|
set = function(self, remainingDuration)
|
|
1289
|
-
local
|
|
1290
|
-
local
|
|
1291
|
-
local remainingDurationDelta =
|
|
1349
|
+
local ____remainingDuration_60 = remainingDuration
|
|
1350
|
+
local ____opt_58 = self._timer
|
|
1351
|
+
local remainingDurationDelta = ____remainingDuration_60 - (____opt_58 and ____opt_58.remaining or 0)
|
|
1292
1352
|
if remainingDurationDelta ~= 0 then
|
|
1293
1353
|
self[103] = self[103] + remainingDurationDelta
|
|
1294
1354
|
if remainingDuration <= 0 then
|
|
@@ -1303,7 +1363,7 @@ __TS__SetDescriptor(
|
|
|
1303
1363
|
remainingDuration,
|
|
1304
1364
|
self._spellStealPriority,
|
|
1305
1365
|
self._learnLevelMinimum,
|
|
1306
|
-
self[
|
|
1366
|
+
self[146]
|
|
1307
1367
|
) then
|
|
1308
1368
|
local timer = self._timer
|
|
1309
1369
|
if timer == nil then
|
|
@@ -1318,15 +1378,80 @@ __TS__SetDescriptor(
|
|
|
1318
1378
|
},
|
|
1319
1379
|
true
|
|
1320
1380
|
)
|
|
1381
|
+
__TS__SetDescriptor(
|
|
1382
|
+
Buff.prototype,
|
|
1383
|
+
"absorbedDamageFactor",
|
|
1384
|
+
{
|
|
1385
|
+
get = function(self)
|
|
1386
|
+
return self[135] or 1
|
|
1387
|
+
end,
|
|
1388
|
+
set = function(self, absorbedDamageFactor)
|
|
1389
|
+
if absorbedDamageFactor == 1 then
|
|
1390
|
+
self[135] = nil
|
|
1391
|
+
else
|
|
1392
|
+
self[135] = absorbedDamageFactor
|
|
1393
|
+
end
|
|
1394
|
+
end
|
|
1395
|
+
},
|
|
1396
|
+
true
|
|
1397
|
+
)
|
|
1398
|
+
__TS__SetDescriptor(
|
|
1399
|
+
Buff.prototype,
|
|
1400
|
+
"maximumDamageAbsorbed",
|
|
1401
|
+
{
|
|
1402
|
+
get = function(self)
|
|
1403
|
+
return self[136] or 0
|
|
1404
|
+
end,
|
|
1405
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1406
|
+
if maximumDamageAbsorbed == 0 then
|
|
1407
|
+
self[136] = nil
|
|
1408
|
+
else
|
|
1409
|
+
self[136] = maximumDamageAbsorbed
|
|
1410
|
+
end
|
|
1411
|
+
end
|
|
1412
|
+
},
|
|
1413
|
+
true
|
|
1414
|
+
)
|
|
1415
|
+
__TS__SetDescriptor(
|
|
1416
|
+
Buff.prototype,
|
|
1417
|
+
"damageAbsorbed",
|
|
1418
|
+
{get = function(self)
|
|
1419
|
+
return self[137] or 0
|
|
1420
|
+
end},
|
|
1421
|
+
true
|
|
1422
|
+
)
|
|
1423
|
+
__TS__SetDescriptor(
|
|
1424
|
+
Buff.prototype,
|
|
1425
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1426
|
+
{
|
|
1427
|
+
get = function(self)
|
|
1428
|
+
local ____self__138_61 = self[138]
|
|
1429
|
+
if ____self__138_61 == nil then
|
|
1430
|
+
____self__138_61 = true
|
|
1431
|
+
end
|
|
1432
|
+
return ____self__138_61
|
|
1433
|
+
end,
|
|
1434
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1435
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1436
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1437
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1438
|
+
else
|
|
1439
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1440
|
+
end
|
|
1441
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1442
|
+
end
|
|
1443
|
+
},
|
|
1444
|
+
true
|
|
1445
|
+
)
|
|
1321
1446
|
__TS__SetDescriptor(
|
|
1322
1447
|
Buff.prototype,
|
|
1323
1448
|
"abilityCooldownFactor",
|
|
1324
1449
|
{
|
|
1325
1450
|
get = function(self)
|
|
1326
|
-
return self[
|
|
1451
|
+
return self[147] or 1
|
|
1327
1452
|
end,
|
|
1328
1453
|
set = function(self, abilityCooldownFactor)
|
|
1329
|
-
local previousAbilityCooldownModifier = self[
|
|
1454
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1330
1455
|
if previousAbilityCooldownModifier then
|
|
1331
1456
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1332
1457
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
@@ -1338,8 +1463,8 @@ __TS__SetDescriptor(
|
|
|
1338
1463
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1339
1464
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1340
1465
|
end
|
|
1341
|
-
self[
|
|
1342
|
-
self[
|
|
1466
|
+
self[148] = modifier
|
|
1467
|
+
self[147] = abilityCooldownFactor
|
|
1343
1468
|
end
|
|
1344
1469
|
},
|
|
1345
1470
|
true
|