Skip to content

Latest commit

 

History

History
55 lines (48 loc) · 2.45 KB

damage.md

File metadata and controls

55 lines (48 loc) · 2.45 KB

Damage

Damage formula:

damage for this card =
(01)    servantAtk
(02)    * npDamageMultiplier
(03)    * {firstCardBonus + [cardDamageValue * max(1 + cardMod, 0)]}
(04)    * classAtkBonus
(05)    * triangleModifier
(06)    * attributeModifier
(07)    * randomModifier
(08)    * 0.23
(09)    * max(1 + atkMod - defMod, 0)
(10)    * criticalModifier
(11)    * extraCardModifier
(12)    * max(1 - specialDefMod, 0)
(13)    * max([1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)], 0.001)
(18)    * max(1 + damageSpecialMod, 0.001)
(14)    * [1 + ((superEffectiveModifier - 1) * isSuperEffective)]
(15)    + dmgPlusAdd
(16)    + selfDmgCutAdd
(17)    + (servantAtk * busterChainMod)

damage = Math.Floor(Math.Max(damage, 0))

Mapping of damage formula terms to buff actions:

  • cardMod = actor.commandAtk - target.commandDef
  • atkMod = actor.atk
  • defMod = target.defence or target.defencePierce if it's a defence piercing NP
  • specialDefMod = target.specialdefence
  • powerMod = actor.damage + actor.damageIndividuality + actor.damageIndividualityActiveonly + actor.damageEventPoint
  • selfDamageMod = target.selfdamage
  • critDamageMod = actor.criticalDamage
  • npDamageMod = actor.npdamage
  • damageSpecialMod = actor.damageSpecial
  • superEffectiveModifier = function Correction value
  • dmgPlusAdd = actor.givenDamage
  • selfDmgCutAdd = target.receiveDamage

Other constants lookup: