El documento más importante del códice
El daño final no es el daño base. Es el resultado de pasar el daño base por una tubería de modificadores en orden fijo (
getEffectiveDamage). El orden importa: cambiarlo cambia el equilibrio. Esta nota refleja la tubería completa y actual (incluye skins, dobles golpes y críticos).
El orden exacto (lado atacante)
function getEffectiveDamage(attacker, weapon) {
if (attacker.stunned) return 0 // 0. aturdido -> no pega
let dmg = WEAPON_DAMAGE[weapon] // 1. base 5/10/15
if (puño && passives.puno) dmg = 10 // 2. pasiva puño
if (puño && Guante) dmg += 1 // Guante
if (puño && Manopla) dmg += 2 * stacks // Manopla (combo)
if (puñal && passives.punal) dmg = 5 // pasiva puñal (baja)
if (bate && Hacha) dmg += 2 // Hacha
if (puñal && Espada) dmg += 3 // Espada
if (puñal && Tridente) dmg = 15 // Tridente (override)
if (thrown) dmg = ceil(dmg * 1.5) // 3. lanzamiento
if (hp <= 10) dmg = ceil(dmg * 1.5) // 4. last-stand
if (comboReady) dmg = ceil(dmg * 2) // 5. combo
if (martilloHit) dmg = ceil(dmg * 2) // 6. Martillo (cada 3)
if (garraHit) dmg = ceil(dmg * 2) // 7. Garra (50%)
if (critMult > 1) dmg = ceil(dmg * critMult) // 8. critico (x2 / x2.5)
dmg += 2 * furor // 9. furor (suma plana)
return dmg
}| # | Capa | Efecto | Tipo |
|---|---|---|---|
| 0 | Aturdido | →0 | corte total |
| 1 | Base | 5 / 10 / 15 | — |
| 2 | Pasivas + skins de daño | reemplazo / suma | objetos-funcionales |
| 3 | lanzamiento | ×1.5 | multiplicador |
| 4 | last-stand | ×1.5 | multiplicador |
| 5 | combo | ×2 | multiplicador |
| 6-7 | Martillo / Garra | ×2 | multiplicador |
| 8 | Crítico | ×2 / ×2.5 | multiplicador |
| 9 | furor | +2 por stack | suma al final |
Por qué el orden
- Las sumas/reemplazos (pasivas, skins planas) fijan el daño base antes de multiplicar.
- Los multiplicadores (lanzamiento, last-stand, combo, dobles, crítico) se apilan multiplicativamente → se disparan juntos.
- El furor suma después: un suelo fiable que no escala con los críticos.
La capa de defensa (lado receptor)
Tras calcular el daño, pasa por la defensa del rival antes de restar vida — ver defensa:
incomingDamage(attacker, defender, dmg):
if (attacker Rayo) return dmg // ignora la defensa
if (defender Paraguas && !usado) return 0 // bloquea el primer ataque
if (defender Sartén) dmg -= 1
return dmgY antes, la Varita 🪄 tiene un 20% de anular el golpe (esquiva).
El golpe máximo teórico
Bate (15) → lanzado → last-stand → combo → con crítico de Katana (×2.5)… el techo es altísimo cuando todo se alinea. Que sea posible pero difícil de alinear es lo que premia la lectura experta. Ver 50 HP.
Lo que NO entra aquí
- El veneno y la quemadura se aplican fuera de esta función (daño fijo por ronda, ignoran estos modificadores).
- La curacion (Bate de oro, Rosa) suma vida; no resta.
Conexiones
Cruce de pasivas · objetos-funcionales · lanzamiento · last-stand · combo · criticos · furor · defensa. Si tocas cualquiera, revísala aquí.