Damage
Damage is the means of depleting a unit's health. The damage from an attack - weapon, Special Attack or skill - depends on the character's or target's attack/weapon strength and various damage modifiers, such as ATK stat and damage taken debuffs.
Overview
The amount of damage dealt is calculated via the following procedure:
First, the base damage is calculated from the weapon damage and the character's ATK:
attackDamage = 10 * totalWeaponDamage * totalATK/100%
Then randomization is added to the base damage if the base damage is greater than 2. This will result in the new value being within ±10% range of the base value if the base damage is higher than 20 or ±2 damage if base damage is less than 20:
randAttackDamage = attackDamage - random(max((attackDamage * 0.1), 2)) + random(max((attackDamage * 0.2), 4)
Lastly the value is multiplied by damage modifiers and rounded to closest integer. In the case of a result that ends in .5 the rounding is to the nearest even integer.
totalDamage = round(randAttackDamage * damageMod)
Weapon damage
The damage dealt by a weapon or an attack depends on its base damage modifier, enhancements applied to a weapon beyond its max level and the Growth bonus to the character's main weapon or special attack.
totalWeaponDamage = weaponDamage + enhancementBonus + growthBonus
Weapon damage bonuses
Some attacks have effects that add directly to the base weapon damage of that attack.
Effect | Type | Weapon Specific | Character |
---|---|---|---|
![]() |
Skill | ![]() |
![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon damage bonuses, such as level up, stamp and enchantment bonuses, are multiplied directly to weapon's base damage. The bonuses from Level Ups stack multiplicatively with each other and the base weapon damage. The bonuses from stamps and enchantments are also applied to the base weapon damage.
weaponDamage = baseWeaponDamage/100% * (1 + attackStampBonus/100%) * (1 + soloStampBonus/100%) * (1 + attackEnchantmentBonus1/100%) * (1 + attackEnchantmentBonus2/100%) * (1 + levelBonus1/100%) * (1 + levelBonus2/100%) * (1 + levelBonus3/100%) * ...
Effect | Type | Weapon Specific | Character |
---|---|---|---|
![]() |
Skill | ![]() |
![]() |
![]() |
Skill | ![]() |
![]() |
![]() |
Skill | - | ![]() |
![]() |
Special Attack | ![]() |
![]() |
![]() |
Weapon | ![]() |
- |
![]() |
Weapon | ![]() |
![]() |
![]() |
Item | - | - |
![]() |
Stamp | - | - |
![]() |
Stamp | - | - |
![]() |
Stamp | - | - |
![]() |
Stamp | - | - |
Damage +15% | Enhancement | - | - |
|
Enhancement bonus
Enhancement bonus is a flat damage bonus applied to weapons using an Anvil's "Upgrade" option on a max level weapon, increasing the weapon's base damage for each successful enhancement. The bonus are split based on the number of attacks in the weapon's main attack sequence, including additional projectiles Projectile Up Stamp,
Klutz, or the +1 Projectile enchantment. This value is referred to as splitCount
Some weapons have a custom splitCount that is hard coded which ignore extra projectiles and projectile count. Below is a table of these weapons and their splitCounts
Weapon | Splitcount |
---|---|
![]() |
8 |
![]() |
4 |
![]() |
6 |
![]() |
6 |
![]() |
6 |
![]() |
10 |
![]() |
6 |
![]() |
8 |
Additionally, levels 2 and 3 of Blacksmith's Gear provide a multiplier to the enhancement bonus
enhancementBonus = (0.2 + ( max(1, blacksmithsGearLevel) - 1) / 20) * weaponEnhancements) / splitCount
Growth bonus
Growth is flat damage bonus that only applies to the character's main weapon's or Special Attack's damage. Similarly to enhancements, the bonus is divided by the number of the attacks in the weapon's attack sequence. Additionally, if the attack's hit cooldown is less than 20, the growth bonus is gradually reduced to a minimum of 20%.
growthBonus = (0.01 * growthLevel * playerLevel * min(20, max(4, hitCD))/20) / splitCount
ATK
The damage dealt by a character is most notably modified by their ATK-stat. The characters total ATK is the sum of their base ATK stat and all ATK bonuses from items and the character's skills. ATK bonuses stack additively.
totalATK = baseATK + (bonus1 + bonus2 + bonus3 + ...)
Damage modifiers
Damage modifiers are multipliers to the attack's damage. Damage modifiers generally stack multiplicatively with each other and additively with other effects of the same type.
damageMod = (1 + totalCritMod/100% * BonusCritDamage) * bonusDamageTaken * DB * SkillDamage * DR
Critical hits
Critical hits multiply the damage dealt based on their critical damage modifier, if triggered. By default each character's critical damage modifier is 50%, meaning that their critical hits deal 1.5x damage. Some abilities can change the character's or the weapon's critical hit modifier.
Critical damage modifiers from different sources stack additively with each other. Critical damage modifiers that effect all damage are summed together as CRT Damage in the pause menu.
CRT Damage does not include baseCritMod.
totalCritMod = baseCritMod + (critMod1 + critMod2 + critMod3 + ...)
totalCritMod is only relevant to the damage calculation if your hit is a critical hit. On a regular hit, totalCritMod is 0. If you are looking for average damage you can multiply totalCritMod by CRT/100% before using it in the damageMod calcualation.
Effect | Type | Character |
---|---|---|
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Special Attack | ![]() |
![]() |
Weapon | ![]() |
![]() |
Item | - |
![]() |
Stamp | - |
Crit Damage +10% | Enhancement | - |
Bonus Crit Damage
When a player character gains CRT above 100% the excess is converted to Bonus Crit Damage.
BonusCritDamage = 1 + ((Crit% - 100)/200)
Bonus damage taken
Bonus damage taken modifiers are applied by debuffs. Bonuses of this type stack additively with each other.
bonusDamageTaken = 1+((bonus1 + bonus2 + bonus3 + ...) / 100%)
Effect | Type | Character |
---|---|---|
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Special Attack | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | ![]() |
![]() |
Weapon | - |
![]() |
Stamp | - |
Damage bonus
Damage bonus (DB) is a separate variable from bonus damage taken. Instead of being based on debuffs on enemies, these effects directly boost the character damage. Currently, all effects that modify DB are expressed in a multiplier form in the game text, rather than a percentage form, with the exception of Slumber. These modifiers stack additively with each other.
DB = 1 + (bonus1-1) + (bonus2-1) ...
Effect | Type | Character |
---|---|---|
![]() |
Skill | ![]() |
![]() |
Weapon | - |
![]() |
Item | - |
![]() |
Item | - |
![]() |
Item | - |
Skill Damage
Several effects in the game boost damage for skills. These effects are additive with each other and serve as a multiplier on damage for valid skills. Skills that copy damage from another source do not work with skill damage.
Effect | Type | Character |
---|---|---|
![]() |
Item | - |
![]() |
Item | - |
![]() |
Upgrade | - |
![]() |
Fan Letter | - |
Damage reduction
The damage reduction modifier is comprised of the various reductions to the damage the target receives from the attacker. This type of modifiers exceptionally stack multiplicatively with each other. Currently only damage dealt to the player is impacted by this modifier but since the game uses the same formula for dealing damage to the player as it does for dealing damage to enemies, this variable is included.
DR = (1 - reduction1/100%) * (1 - reduction2/100%) * (1 - reduction3/100%) * ...
Effect | Type | Character |
---|---|---|
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Special Attack | ![]() |
![]() |
Item | - |
![]() |
Item | - |
![]() |
Item | - |
![]() |
Item | - |
![]() |
Upgrade | - |
On-hit damage
Some sources apply damage as an on-hit effect. These on-hit effects are all multipliers that are applied after totalDamage is calculated. Some of these effects have their own rounding or flooring of the damage that they apply, so the order in which the effects are applied in the damage formula makes a difference. The order in which on-hit effects are applied is non-deterministic.
After all applicable on-hit affects are applied the final damage is rounded one last time. All rounding both by on-hit effects and by this last step follows the same rule for numbers ending in .5.
Effect | Type | Character | Rounding Type |
---|---|---|---|
![]() |
Skill | ![]() |
- |
![]() |
Skill | ![]() |
Floor |
![]() |
Skill | ![]() |
Floor |
![]() |
Skill | ![]() |
- |
![]() |
Skill | ![]() |
Round |
![]() |
Skill | ![]() |
- |
![]() |
Skill | ![]() |
? |
![]() |
Skill | ![]() |
? |
![]() |
Weapon | ![]() |
- |
![]() |
Item | - | Floor |
![]() |
Item | - | Floor |
![]() |
Item | - | Floor |
![]() |
Item | - | Floor |
![]() |
Stamp | - | Round |
Direct damage
A few effects in this game deal damage directly rather than going through the full damage calculation. Most of these effects copy damage from a triggering source and modify it in some manner. In the case of direct damage all of the steps of the damage calculation are skipped except for on-hit effects.
Effect | Type | Character |
---|---|---|
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Skill | ![]() |
![]() |
Weapon | ![]() |
![]() |
Item | - |
![]() |
Stamp | - |
References
- ↑ 1.0 1.1 1.2 /u/ctom42. Holocure Damage Formula Deep Dive.
Gameplay | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Main | |||||||||||
Mechanics | |||||||||||
Stages |
| ||||||||||
Holo House | |||||||||||
Other |