warscript 0.0.1-dev.989e1a3 → 0.0.1-dev.9979c8f
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/frame.lua +47 -1
- package/core/types/sound.lua +1 -1
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- 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 +53 -19
- package/engine/buff.lua +268 -142
- 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/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/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/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 +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.lua +1 -4
- 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,14 +397,15 @@ 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
|
|
392
404
|
buffByTypeId = {}
|
|
393
405
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
394
406
|
end
|
|
395
|
-
|
|
407
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
408
|
+
local ____opt_15 = self.previousBuff
|
|
396
409
|
if ____opt_15 ~= nil then
|
|
397
410
|
____opt_15:destroy()
|
|
398
411
|
end
|
|
@@ -468,24 +481,22 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
468
481
|
abilityTypeIds = {}
|
|
469
482
|
self._abilityTypeIds = abilityTypeIds
|
|
470
483
|
end
|
|
471
|
-
for
|
|
484
|
+
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
485
|
+
local abilityParameters = parametersAbilityTypeIds[abilityTypeId]
|
|
472
486
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
473
487
|
if addedAbility ~= nil then
|
|
474
488
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
475
489
|
_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
|
|
490
|
+
if abilityParameters.isButtonVisible == false then
|
|
491
|
+
_unit:hideAbility(abilityTypeId, true)
|
|
492
|
+
end
|
|
493
|
+
for ____, field in ipairs(abilityParameters.fields or emptyArray()) do
|
|
494
|
+
field[1]:setValue(
|
|
495
|
+
addedAbility,
|
|
496
|
+
resolveNumberValue(ability, level, field[2])
|
|
497
|
+
)
|
|
487
498
|
end
|
|
488
|
-
abilityTypeIds[
|
|
499
|
+
abilityTypeIds[#abilityTypeIds + 1] = abilityTypeId
|
|
489
500
|
end
|
|
490
501
|
end
|
|
491
502
|
local behaviorConstructors = parameters and parameters.behaviorConstructors or defaultParameters.behaviorConstructors
|
|
@@ -497,18 +508,20 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
497
508
|
self._behaviors = behaviors
|
|
498
509
|
end
|
|
499
510
|
end
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
if
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
511
|
+
if parameters ~= nil then
|
|
512
|
+
local additionalParameters = {}
|
|
513
|
+
for ____, key in ipairs(sortedKeysUnnested(parameters)) do
|
|
514
|
+
if not buffParametersKeys[key] then
|
|
515
|
+
if ability then
|
|
516
|
+
additionalParameters[key] = resolveCurrentAbilityDependentValue(ability, parameters[key])
|
|
517
|
+
else
|
|
518
|
+
additionalParameters[key] = parameters[key]
|
|
519
|
+
end
|
|
507
520
|
end
|
|
508
521
|
end
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
522
|
+
if (next(additionalParameters)) ~= nil then
|
|
523
|
+
self.parameters = additionalParameters
|
|
524
|
+
end
|
|
512
525
|
end
|
|
513
526
|
end
|
|
514
527
|
if duration ~= nil and duration > 0 then
|
|
@@ -522,7 +535,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
522
535
|
end
|
|
523
536
|
function Buff.prototype.onAbilityGained(self, ability)
|
|
524
537
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
525
|
-
local abilityCooldownModifier = self[
|
|
538
|
+
local abilityCooldownModifier = self[148]
|
|
526
539
|
if abilityCooldownModifier then
|
|
527
540
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
528
541
|
end
|
|
@@ -530,24 +543,38 @@ function Buff.prototype.onAbilityGained(self, ability)
|
|
|
530
543
|
end
|
|
531
544
|
function Buff.prototype.onAbilityLost(self, ability)
|
|
532
545
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
533
|
-
local abilityCooldownModifier = self[
|
|
546
|
+
local abilityCooldownModifier = self[148]
|
|
534
547
|
if abilityCooldownModifier then
|
|
535
548
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
536
549
|
end
|
|
537
550
|
end
|
|
538
551
|
end
|
|
539
552
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
553
|
+
self:flash(
|
|
554
|
+
self[105],
|
|
555
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
556
|
+
widgetOrXOrParametersOrDuration,
|
|
557
|
+
yOrParametersOrDuration,
|
|
558
|
+
parametersOrDuration
|
|
559
|
+
)
|
|
560
|
+
end
|
|
561
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
562
|
+
self:flash(
|
|
563
|
+
self[106],
|
|
564
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
565
|
+
widgetOrXOrParametersOrDuration,
|
|
566
|
+
yOrParametersOrDuration,
|
|
567
|
+
parametersOrDuration
|
|
568
|
+
)
|
|
569
|
+
end
|
|
570
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
540
571
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
541
|
-
Effect:flash(
|
|
572
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
542
573
|
else
|
|
543
574
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
544
575
|
local ____Effect_40 = Effect
|
|
545
576
|
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
|
-
)
|
|
577
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
551
578
|
local ____isWidgetProvided_38
|
|
552
579
|
if isWidgetProvided then
|
|
553
580
|
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
@@ -561,26 +588,8 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
561
588
|
)
|
|
562
589
|
end
|
|
563
590
|
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
|
-
)
|
|
591
|
+
function Buff.prototype.expire(self)
|
|
592
|
+
expireBuff(self)
|
|
584
593
|
end
|
|
585
594
|
function Buff.prototype.onCreate(self)
|
|
586
595
|
end
|
|
@@ -610,29 +619,29 @@ function Buff.prototype.onDestroy(self)
|
|
|
610
619
|
behavior:destroy()
|
|
611
620
|
end
|
|
612
621
|
end
|
|
613
|
-
local previousAbilityCooldownModifier = self[
|
|
622
|
+
local previousAbilityCooldownModifier = self[148]
|
|
614
623
|
if previousAbilityCooldownModifier then
|
|
615
624
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
616
625
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
617
626
|
end
|
|
618
627
|
end
|
|
619
|
-
if self[
|
|
628
|
+
if self[143] then
|
|
620
629
|
unit:decrementInvulnerabilityCounter()
|
|
621
630
|
end
|
|
622
|
-
if self[
|
|
631
|
+
if self[142] then
|
|
623
632
|
unit:decrementDisableAutoAttackCounter()
|
|
624
633
|
end
|
|
625
|
-
if self[
|
|
626
|
-
if self[
|
|
634
|
+
if self[140] then
|
|
635
|
+
if self[141] then
|
|
627
636
|
unit:decrementForceStunCounter()
|
|
628
637
|
end
|
|
629
638
|
unit:decrementStunCounter()
|
|
630
639
|
end
|
|
631
|
-
if self[
|
|
640
|
+
if self[139] then
|
|
632
641
|
unit:decrementGhostCounter()
|
|
633
642
|
end
|
|
634
643
|
if self._abilityTypeIds ~= nil then
|
|
635
|
-
for abilityTypeId in
|
|
644
|
+
for ____, abilityTypeId in ipairs(self._abilityTypeIds) do
|
|
636
645
|
unit:removeAbility(abilityTypeId)
|
|
637
646
|
end
|
|
638
647
|
end
|
|
@@ -665,8 +674,8 @@ function Buff.apply(self, ...)
|
|
|
665
674
|
end
|
|
666
675
|
end
|
|
667
676
|
function Buff.getByTypeId(self, unit, typeId)
|
|
668
|
-
local
|
|
669
|
-
local buff =
|
|
677
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
678
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
670
679
|
if __TS__InstanceOf(buff, self) then
|
|
671
680
|
return buff
|
|
672
681
|
end
|
|
@@ -680,9 +689,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
680
689
|
if self[121] ~= nil then
|
|
681
690
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
682
691
|
end
|
|
683
|
-
if self[
|
|
692
|
+
if self[145] then
|
|
684
693
|
unit:explode()
|
|
685
|
-
elseif self[
|
|
694
|
+
elseif self[144] then
|
|
686
695
|
unit:kill()
|
|
687
696
|
end
|
|
688
697
|
end
|
|
@@ -737,6 +746,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
737
746
|
end
|
|
738
747
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
739
748
|
if event.originalAmount ~= 0 then
|
|
749
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
750
|
+
if absorbedDamage > 0 then
|
|
751
|
+
event.amount = event.amount - absorbedDamage
|
|
752
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
753
|
+
local ____self__138_44 = self[138]
|
|
754
|
+
if ____self__138_44 == nil then
|
|
755
|
+
____self__138_44 = true
|
|
756
|
+
end
|
|
757
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
758
|
+
self:destroy()
|
|
759
|
+
end
|
|
760
|
+
end
|
|
740
761
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
741
762
|
self[133] = damageReceivedEventCount
|
|
742
763
|
if damageReceivedEventCount == self[134] then
|
|
@@ -824,8 +845,8 @@ __TS__SetDescriptor(
|
|
|
824
845
|
return
|
|
825
846
|
end
|
|
826
847
|
self[112] = damageInterval
|
|
827
|
-
local
|
|
828
|
-
local elapsed =
|
|
848
|
+
local ____opt_45 = self._timer
|
|
849
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
829
850
|
local timer = self[114]
|
|
830
851
|
if timer == nil then
|
|
831
852
|
timer = Timer:create()
|
|
@@ -904,8 +925,8 @@ __TS__SetDescriptor(
|
|
|
904
925
|
return
|
|
905
926
|
end
|
|
906
927
|
self[117] = healingInterval
|
|
907
|
-
local
|
|
908
|
-
local elapsed =
|
|
928
|
+
local ____opt_47 = self._timer
|
|
929
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
909
930
|
local timer = self[119]
|
|
910
931
|
if timer == nil then
|
|
911
932
|
timer = Timer:create()
|
|
@@ -986,24 +1007,50 @@ __TS__SetDescriptor(
|
|
|
986
1007
|
},
|
|
987
1008
|
true
|
|
988
1009
|
)
|
|
1010
|
+
__TS__SetDescriptor(
|
|
1011
|
+
Buff.prototype,
|
|
1012
|
+
"maxHealthIncrease",
|
|
1013
|
+
{
|
|
1014
|
+
get = function(self)
|
|
1015
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1016
|
+
end,
|
|
1017
|
+
set = function(self, maxHealthIncrease)
|
|
1018
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1019
|
+
end
|
|
1020
|
+
},
|
|
1021
|
+
true
|
|
1022
|
+
)
|
|
1023
|
+
__TS__SetDescriptor(
|
|
1024
|
+
Buff.prototype,
|
|
1025
|
+
"maxManaIncrease",
|
|
1026
|
+
{
|
|
1027
|
+
get = function(self)
|
|
1028
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1029
|
+
end,
|
|
1030
|
+
set = function(self, maxManaIncrease)
|
|
1031
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1032
|
+
end
|
|
1033
|
+
},
|
|
1034
|
+
true
|
|
1035
|
+
)
|
|
989
1036
|
__TS__SetDescriptor(
|
|
990
1037
|
Buff.prototype,
|
|
991
1038
|
"turnsIntoGhost",
|
|
992
1039
|
{
|
|
993
1040
|
get = function(self)
|
|
994
|
-
local
|
|
995
|
-
if
|
|
996
|
-
|
|
1041
|
+
local ____self__139_49 = self[139]
|
|
1042
|
+
if ____self__139_49 == nil then
|
|
1043
|
+
____self__139_49 = false
|
|
997
1044
|
end
|
|
998
|
-
return
|
|
1045
|
+
return ____self__139_49
|
|
999
1046
|
end,
|
|
1000
1047
|
set = function(self, turnsIntoGhost)
|
|
1001
|
-
if not turnsIntoGhost and self[
|
|
1048
|
+
if not turnsIntoGhost and self[139] then
|
|
1002
1049
|
self.object:decrementGhostCounter()
|
|
1003
|
-
self[
|
|
1004
|
-
elseif turnsIntoGhost and not self[
|
|
1050
|
+
self[139] = nil
|
|
1051
|
+
elseif turnsIntoGhost and not self[139] then
|
|
1005
1052
|
self.object:incrementGhostCounter()
|
|
1006
|
-
self[
|
|
1053
|
+
self[139] = true
|
|
1007
1054
|
end
|
|
1008
1055
|
end
|
|
1009
1056
|
},
|
|
@@ -1014,25 +1061,25 @@ __TS__SetDescriptor(
|
|
|
1014
1061
|
"stuns",
|
|
1015
1062
|
{
|
|
1016
1063
|
get = function(self)
|
|
1017
|
-
local
|
|
1018
|
-
if
|
|
1019
|
-
|
|
1064
|
+
local ____self__140_50 = self[140]
|
|
1065
|
+
if ____self__140_50 == nil then
|
|
1066
|
+
____self__140_50 = false
|
|
1020
1067
|
end
|
|
1021
|
-
return
|
|
1068
|
+
return ____self__140_50
|
|
1022
1069
|
end,
|
|
1023
1070
|
set = function(self, stuns)
|
|
1024
|
-
if not stuns and self[
|
|
1025
|
-
if self[
|
|
1071
|
+
if not stuns and self[140] then
|
|
1072
|
+
if self[141] then
|
|
1026
1073
|
self.object:decrementForceStunCounter()
|
|
1027
1074
|
end
|
|
1028
1075
|
self.object:decrementStunCounter()
|
|
1029
|
-
self[
|
|
1030
|
-
elseif stuns and not self[
|
|
1031
|
-
if self[
|
|
1076
|
+
self[140] = nil
|
|
1077
|
+
elseif stuns and not self[140] then
|
|
1078
|
+
if self[141] then
|
|
1032
1079
|
self.object:incrementForceStunCounter()
|
|
1033
1080
|
end
|
|
1034
1081
|
self.object:incrementStunCounter()
|
|
1035
|
-
self[
|
|
1082
|
+
self[140] = true
|
|
1036
1083
|
end
|
|
1037
1084
|
end
|
|
1038
1085
|
},
|
|
@@ -1043,23 +1090,23 @@ __TS__SetDescriptor(
|
|
|
1043
1090
|
"ignoresStunImmunity",
|
|
1044
1091
|
{
|
|
1045
1092
|
get = function(self)
|
|
1046
|
-
local
|
|
1047
|
-
if
|
|
1048
|
-
|
|
1093
|
+
local ____self__141_51 = self[141]
|
|
1094
|
+
if ____self__141_51 == nil then
|
|
1095
|
+
____self__141_51 = false
|
|
1049
1096
|
end
|
|
1050
|
-
return
|
|
1097
|
+
return ____self__141_51
|
|
1051
1098
|
end,
|
|
1052
1099
|
set = function(self, ignoresStunImmunity)
|
|
1053
|
-
if not ignoresStunImmunity and self[
|
|
1054
|
-
if self[
|
|
1100
|
+
if not ignoresStunImmunity and self[141] then
|
|
1101
|
+
if self[140] then
|
|
1055
1102
|
self.object:decrementForceStunCounter()
|
|
1056
1103
|
end
|
|
1057
|
-
self[
|
|
1058
|
-
elseif ignoresStunImmunity and not self[
|
|
1059
|
-
if self[
|
|
1104
|
+
self[141] = nil
|
|
1105
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1106
|
+
if self[140] then
|
|
1060
1107
|
self.object:incrementForceStunCounter()
|
|
1061
1108
|
end
|
|
1062
|
-
self[
|
|
1109
|
+
self[141] = true
|
|
1063
1110
|
end
|
|
1064
1111
|
end
|
|
1065
1112
|
},
|
|
@@ -1070,19 +1117,19 @@ __TS__SetDescriptor(
|
|
|
1070
1117
|
"disablesAutoAttack",
|
|
1071
1118
|
{
|
|
1072
1119
|
get = function(self)
|
|
1073
|
-
local
|
|
1074
|
-
if
|
|
1075
|
-
|
|
1120
|
+
local ____self__142_52 = self[142]
|
|
1121
|
+
if ____self__142_52 == nil then
|
|
1122
|
+
____self__142_52 = false
|
|
1076
1123
|
end
|
|
1077
|
-
return
|
|
1124
|
+
return ____self__142_52
|
|
1078
1125
|
end,
|
|
1079
1126
|
set = function(self, disablesAutoAttack)
|
|
1080
|
-
if not disablesAutoAttack and self[
|
|
1127
|
+
if not disablesAutoAttack and self[142] then
|
|
1081
1128
|
self.object:decrementDisableAutoAttackCounter()
|
|
1082
|
-
self[
|
|
1083
|
-
elseif disablesAutoAttack and not self[
|
|
1129
|
+
self[142] = nil
|
|
1130
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1084
1131
|
self.object:incrementDisableAutoAttackCounter()
|
|
1085
|
-
self[
|
|
1132
|
+
self[142] = true
|
|
1086
1133
|
end
|
|
1087
1134
|
end
|
|
1088
1135
|
},
|
|
@@ -1093,19 +1140,19 @@ __TS__SetDescriptor(
|
|
|
1093
1140
|
"providesInvulnerability",
|
|
1094
1141
|
{
|
|
1095
1142
|
get = function(self)
|
|
1096
|
-
local
|
|
1097
|
-
if
|
|
1098
|
-
|
|
1143
|
+
local ____self__143_53 = self[143]
|
|
1144
|
+
if ____self__143_53 == nil then
|
|
1145
|
+
____self__143_53 = false
|
|
1099
1146
|
end
|
|
1100
|
-
return
|
|
1147
|
+
return ____self__143_53
|
|
1101
1148
|
end,
|
|
1102
1149
|
set = function(self, providesInvulnerability)
|
|
1103
|
-
if not providesInvulnerability and self[
|
|
1150
|
+
if not providesInvulnerability and self[143] then
|
|
1104
1151
|
self.object:decrementInvulnerabilityCounter()
|
|
1105
|
-
self[
|
|
1106
|
-
elseif providesInvulnerability and not self[
|
|
1152
|
+
self[143] = nil
|
|
1153
|
+
elseif providesInvulnerability and not self[143] then
|
|
1107
1154
|
self.object:incrementInvulnerabilityCounter()
|
|
1108
|
-
self[
|
|
1155
|
+
self[143] = true
|
|
1109
1156
|
end
|
|
1110
1157
|
end
|
|
1111
1158
|
},
|
|
@@ -1116,17 +1163,17 @@ __TS__SetDescriptor(
|
|
|
1116
1163
|
"killsOnExpiration",
|
|
1117
1164
|
{
|
|
1118
1165
|
get = function(self)
|
|
1119
|
-
local
|
|
1120
|
-
if
|
|
1121
|
-
|
|
1166
|
+
local ____self__144_54 = self[144]
|
|
1167
|
+
if ____self__144_54 == nil then
|
|
1168
|
+
____self__144_54 = false
|
|
1122
1169
|
end
|
|
1123
|
-
return
|
|
1170
|
+
return ____self__144_54
|
|
1124
1171
|
end,
|
|
1125
1172
|
set = function(self, killsOnExpiration)
|
|
1126
|
-
if not killsOnExpiration and self[
|
|
1127
|
-
self[
|
|
1128
|
-
elseif killsOnExpiration and not self[
|
|
1129
|
-
self[
|
|
1173
|
+
if not killsOnExpiration and self[144] then
|
|
1174
|
+
self[144] = nil
|
|
1175
|
+
elseif killsOnExpiration and not self[144] then
|
|
1176
|
+
self[144] = true
|
|
1130
1177
|
end
|
|
1131
1178
|
end
|
|
1132
1179
|
},
|
|
@@ -1137,17 +1184,17 @@ __TS__SetDescriptor(
|
|
|
1137
1184
|
"explodesOnExpiration",
|
|
1138
1185
|
{
|
|
1139
1186
|
get = function(self)
|
|
1140
|
-
local
|
|
1141
|
-
if
|
|
1142
|
-
|
|
1187
|
+
local ____self__145_55 = self[145]
|
|
1188
|
+
if ____self__145_55 == nil then
|
|
1189
|
+
____self__145_55 = false
|
|
1143
1190
|
end
|
|
1144
|
-
return
|
|
1191
|
+
return ____self__145_55
|
|
1145
1192
|
end,
|
|
1146
1193
|
set = function(self, killsOnExpiration)
|
|
1147
|
-
if not killsOnExpiration and self[
|
|
1148
|
-
self[
|
|
1149
|
-
elseif killsOnExpiration and not self[
|
|
1150
|
-
self[
|
|
1194
|
+
if not killsOnExpiration and self[145] then
|
|
1195
|
+
self[145] = nil
|
|
1196
|
+
elseif killsOnExpiration and not self[145] then
|
|
1197
|
+
self[145] = true
|
|
1151
1198
|
end
|
|
1152
1199
|
end
|
|
1153
1200
|
},
|
|
@@ -1272,9 +1319,23 @@ __TS__SetDescriptor(
|
|
|
1272
1319
|
__TS__SetDescriptor(
|
|
1273
1320
|
Buff.prototype,
|
|
1274
1321
|
"duration",
|
|
1275
|
-
{
|
|
1276
|
-
|
|
1277
|
-
|
|
1322
|
+
{
|
|
1323
|
+
get = function(self)
|
|
1324
|
+
return self[103]
|
|
1325
|
+
end,
|
|
1326
|
+
set = function(self, duration)
|
|
1327
|
+
if duration <= 0 then
|
|
1328
|
+
local timer = self._timer
|
|
1329
|
+
if timer ~= nil then
|
|
1330
|
+
timer:destroy()
|
|
1331
|
+
self._timer = nil
|
|
1332
|
+
end
|
|
1333
|
+
self[103] = 0
|
|
1334
|
+
else
|
|
1335
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1336
|
+
end
|
|
1337
|
+
end
|
|
1338
|
+
},
|
|
1278
1339
|
true
|
|
1279
1340
|
)
|
|
1280
1341
|
__TS__SetDescriptor(
|
|
@@ -1282,13 +1343,13 @@ __TS__SetDescriptor(
|
|
|
1282
1343
|
"remainingDuration",
|
|
1283
1344
|
{
|
|
1284
1345
|
get = function(self)
|
|
1285
|
-
local
|
|
1286
|
-
return
|
|
1346
|
+
local ____opt_56 = self._timer
|
|
1347
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1287
1348
|
end,
|
|
1288
1349
|
set = function(self, remainingDuration)
|
|
1289
|
-
local
|
|
1290
|
-
local
|
|
1291
|
-
local remainingDurationDelta =
|
|
1350
|
+
local ____remainingDuration_60 = remainingDuration
|
|
1351
|
+
local ____opt_58 = self._timer
|
|
1352
|
+
local remainingDurationDelta = ____remainingDuration_60 - (____opt_58 and ____opt_58.remaining or 0)
|
|
1292
1353
|
if remainingDurationDelta ~= 0 then
|
|
1293
1354
|
self[103] = self[103] + remainingDurationDelta
|
|
1294
1355
|
if remainingDuration <= 0 then
|
|
@@ -1303,7 +1364,7 @@ __TS__SetDescriptor(
|
|
|
1303
1364
|
remainingDuration,
|
|
1304
1365
|
self._spellStealPriority,
|
|
1305
1366
|
self._learnLevelMinimum,
|
|
1306
|
-
self[
|
|
1367
|
+
self[146]
|
|
1307
1368
|
) then
|
|
1308
1369
|
local timer = self._timer
|
|
1309
1370
|
if timer == nil then
|
|
@@ -1318,15 +1379,80 @@ __TS__SetDescriptor(
|
|
|
1318
1379
|
},
|
|
1319
1380
|
true
|
|
1320
1381
|
)
|
|
1382
|
+
__TS__SetDescriptor(
|
|
1383
|
+
Buff.prototype,
|
|
1384
|
+
"absorbedDamageFactor",
|
|
1385
|
+
{
|
|
1386
|
+
get = function(self)
|
|
1387
|
+
return self[135] or 1
|
|
1388
|
+
end,
|
|
1389
|
+
set = function(self, absorbedDamageFactor)
|
|
1390
|
+
if absorbedDamageFactor == 1 then
|
|
1391
|
+
self[135] = nil
|
|
1392
|
+
else
|
|
1393
|
+
self[135] = absorbedDamageFactor
|
|
1394
|
+
end
|
|
1395
|
+
end
|
|
1396
|
+
},
|
|
1397
|
+
true
|
|
1398
|
+
)
|
|
1399
|
+
__TS__SetDescriptor(
|
|
1400
|
+
Buff.prototype,
|
|
1401
|
+
"maximumDamageAbsorbed",
|
|
1402
|
+
{
|
|
1403
|
+
get = function(self)
|
|
1404
|
+
return self[136] or 0
|
|
1405
|
+
end,
|
|
1406
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1407
|
+
if maximumDamageAbsorbed == 0 then
|
|
1408
|
+
self[136] = nil
|
|
1409
|
+
else
|
|
1410
|
+
self[136] = maximumDamageAbsorbed
|
|
1411
|
+
end
|
|
1412
|
+
end
|
|
1413
|
+
},
|
|
1414
|
+
true
|
|
1415
|
+
)
|
|
1416
|
+
__TS__SetDescriptor(
|
|
1417
|
+
Buff.prototype,
|
|
1418
|
+
"damageAbsorbed",
|
|
1419
|
+
{get = function(self)
|
|
1420
|
+
return self[137] or 0
|
|
1421
|
+
end},
|
|
1422
|
+
true
|
|
1423
|
+
)
|
|
1424
|
+
__TS__SetDescriptor(
|
|
1425
|
+
Buff.prototype,
|
|
1426
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1427
|
+
{
|
|
1428
|
+
get = function(self)
|
|
1429
|
+
local ____self__138_61 = self[138]
|
|
1430
|
+
if ____self__138_61 == nil then
|
|
1431
|
+
____self__138_61 = true
|
|
1432
|
+
end
|
|
1433
|
+
return ____self__138_61
|
|
1434
|
+
end,
|
|
1435
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1436
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1437
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1438
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1439
|
+
else
|
|
1440
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1441
|
+
end
|
|
1442
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1443
|
+
end
|
|
1444
|
+
},
|
|
1445
|
+
true
|
|
1446
|
+
)
|
|
1321
1447
|
__TS__SetDescriptor(
|
|
1322
1448
|
Buff.prototype,
|
|
1323
1449
|
"abilityCooldownFactor",
|
|
1324
1450
|
{
|
|
1325
1451
|
get = function(self)
|
|
1326
|
-
return self[
|
|
1452
|
+
return self[147] or 1
|
|
1327
1453
|
end,
|
|
1328
1454
|
set = function(self, abilityCooldownFactor)
|
|
1329
|
-
local previousAbilityCooldownModifier = self[
|
|
1455
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1330
1456
|
if previousAbilityCooldownModifier then
|
|
1331
1457
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1332
1458
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
@@ -1338,8 +1464,8 @@ __TS__SetDescriptor(
|
|
|
1338
1464
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1339
1465
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1340
1466
|
end
|
|
1341
|
-
self[
|
|
1342
|
-
self[
|
|
1467
|
+
self[148] = modifier
|
|
1468
|
+
self[147] = abilityCooldownFactor
|
|
1343
1469
|
end
|
|
1344
1470
|
},
|
|
1345
1471
|
true
|