Buff actions values are calculated using the following formula:
num = buffAction.baseParam + (total plusTypes buffs values) - (total minusTypes buff values)
if buffAction.limit in (normal, lower):
if num < 0:
num = 0
num = num - buffAction.baseValue;
if buffAction.limit in (normal, upper):
if maxRate < num:
num = maxRate
return num
- Buff action variables can be found here:
baseParam
baseValue
limit
maxRate
is a property of the buff item. This value can be found in the DB or API. If there are multiple buffs, the lastmaxRate
is used. Different buffs of the same buff action usually have the samemaxRate
value.- For example: we are trying to calculate
cardMod
with 10 level 10 Merlin's Hero Creation applied and no buster damage down: cardMod
-> buff actioncommandAtk
->plusTypes
buff typeupCommandall
baseParam
: 1000baseValue
: 0limit
: normalmaxRate
: 5000
num
= 1000 + 500 * 10 = 6000 (baseParam
= 1000 and there are 10 Hero Creation, each hasValue
of 500)limit
is normal butnum
> 0 so lower bound is not appliednum
=num
-baseValue
= 6000 - 0 = 6000limit
is normal andnum
>maxRate
so upper bound is applied ->num
= 5000- The final
cardMod
value is 5000 or 500%.