The damage an attack deals depends on the card's Strength scaling, the powers on the attacker and the target, rounding, and the target's Block.

The examples use Slay the Spire 1, a normal attack, one enemy, no stance and no effects beyond those named.

Which attack benefits from Strength?

Heavy Blade costs 2 energy and adds three times your Strength to its 14 base damage. Its upgrade changes the Strength multiplier to five; base damage stays 14. Sword Boomerang costs 1 energy and adds Strength to each of its three 3-damage hits. Its upgrade adds a fourth hit.

With 3 Strength and no other modifiers:

CardCalculationDamage before Block
Heavy Blade14 + (3 × 3)23
Heavy Blade+14 + (5 × 3)29
Sword Boomerang(3 + 3) × 3 hits18
Sword Boomerang+(3 + 3) × 4 hits24

Heavy Blade+ gains 6 damage from the upgrade in this situation. Sword Boomerang+ also gains 6 at a lower energy cost, but each hit targets a random living enemy, so with several enemies its damage is split. Each hit is calculated against its own target.

Negative Strength follows the same card rules. At −3 Strength, Heavy Blade deals 14 − 9 = 5, while Heavy Blade+ reaches 14 − 15 = −1 and is clamped to 0. An upgrade can therefore reduce this card's damage while your Strength is negative.

Follow the calculation to HP loss

Suppose you have 3 Strength and Weak. The enemy has Vulnerable and 8 Block. For Heavy Blade+, the stages are:

StageOperationRunning damage
Base damageStart at 1414
StrengthAdd 5 × 329
WeakMultiply by 0.7521.75
VulnerableMultiply by 1.532.625
RoundingRound down32
Enemy BlockSubtract 824 HP lost

The fractional value survives both multipliers. Rounding 21.75 down before applying Vulnerable would incorrectly produce 31 damage instead of 32. Block is consumed after damage has been calculated; it does not reduce the number that Strength, Weak or Vulnerable modify.

Sword Boomerang+ in the same situation calculates each hit as (3 + 3) × 0.75 × 1.5 = 6.75, rounded down to 6. Four hits deal 24 damage before Block and 16 HP after consuming the enemy's 8 Block. Rounding the combined 6.75 × 4 would incorrectly produce 27 damage.

Against an enemy with 20 HP and 8 Block, Heavy Blade+ kills in this situation; Sword Boomerang+ leaves 4 HP but costs 1 energy less.

The game's operation order

The game applies modifiers in the steps below. Within one step, powers with a lower priority number apply first.

For a normal card attack calculated against an enemy:

  1. Start with the card's base damage and any card-specific calculation.
  2. Apply the player's relic damage modifiers.
  3. Apply the attacker's power modifiers. Strength uses priority 5; Weak uses 99, so Strength is added before Weak multiplies the result.
  4. Apply the attacker's stance. Wrath multiplies outgoing normal damage by 2; Divinity multiplies it by 3.
  5. Apply the target's incoming-damage power modifiers, including Vulnerable.
  6. Apply the attacker's final-damage power modifiers, then the target's final incoming-damage power modifiers.
  7. Clamp negative damage to zero and round down to an integer.
  8. Resolve the hit: Intangible reduces the damage to 1, Block absorbs what it can, and the rest is lost as HP.

Weak and Vulnerable stacks are duration

Two stacks of Weak do not mean half damage. Normal Weak multiplies attack damage by 0.75 regardless of its duration. Normal Vulnerable multiplies incoming attack damage by 1.5.

Relics can change those factors: Paper Krane makes Weak on enemies use 0.6; Paper Phrog makes Vulnerable on enemies use 1.75; Odd Mushroom makes Vulnerable on the player use 1.25.

A Skill example: Dexterity before Frail

An unupgraded Ironclad Defend starts at 5 Block. With 2 Dexterity and Frail, it grants:

(5 + 2) × 0.75 = 5.25 → 5 Block.

Dexterity uses priority 5 and Frail uses 10, so the addition comes first. After the ordinary Block modifiers, the game runs its final Block modifiers, clamps a negative result to zero, and rounds down. Applying Frail to 5 and only then adding Dexterity would incorrectly produce 5.75 instead of 5.25.

Defend+ starts at 8 Block, so the same conditions give (8 + 2) × 0.75 = 7.5 → 7 Block. The upgrade gains 2 usable Block here, despite adding 3 to the base value.