Skip to content

Attack Modifier Buffs

Attack modifier buffs change how a fighter's successful attack hits behave.

Supported modifiers

Modifier Effect
lifesteal Heals the attacker from actual health damage dealt by each hit
double_attack Performs a second independently calculated hit immediately after the first

Lifesteal

Lifesteal restores some of the attacker's health after a successful hit. Its value is the fraction of the target's actual health loss converted into healing. For example, value: 0.3 means 30% lifesteal.

Cowculator resolves each hit in this order:

  1. Calculate the hit's damage.
  2. Subtract any damage absorbed by shields.
  3. Limit the remaining damage to the target's current health.
  4. Multiply that actual health loss by the attacker's lifesteal percentage.
  5. Round the healing down to a whole number and restore health up to the attacker's maximum health.
lifesteal_healing = floor(actual_health_damage × lifesteal_percentage)

Damage absorbed by shields does not provide healing. Damage beyond the target's remaining health also does not provide healing.

Multiple lifesteal statuses add their percentages together. Cowculator applies the combined percentage once after each successful hit.

50% lifesteal with a shielded target

An attacker has 120/200 health and deals 100 calculated damage to a target with 20 shield and 60 health.

damage after shield = 100 - 20 = 80
actual health damage = min(80, 60) = 60
lifesteal healing = floor(60 × 0.5) = 30
attacker health = min(120 + 30, 200) = 150

Although the hit calculated 100 damage, lifesteal uses only the 60 health the target actually lost. The shield absorption and excess damage are excluded.

Double attack

Double attack performs up to two hits. Each hit recalculates damage and critical chance, consumes shields normally, and triggers lifesteal from its own actual health damage. The second hit does not run if the first knocks out the target.

Multiple double_attack statuses do not add more hits. If at least one is active, each attack action performs at most two hits. The modifier's value is ignored.

See Damage calculation for the per-hit formula and Status stacking for status reapplication behavior.