Al empezar la partida los dos jugadores no son simétricos. Uno es el asaltado (defensor) y otro el ladrón (atacante). El reparto es 50/50:
// 50/50: quién es defensor (asaltado) vs atacante (ladrón)
const playerIsDefender = Math.random() < 0.5La diferencia: el bate
La única asimetría mecánica es quién empieza con el bate:
hp: INITIAL_HP,
isDefender,
hasBat: isDefender, // el defensor nace con el bate en la mano- Asaltado / defensor → empieza con 🏏. Es el que estaba en casa cuando llegó el chorizo.
- Ladrón / atacante → empieza sin bate, solo 👊 y 🔪. Tiene que robar el bate para acceder al arma fuerte.
El rol es permanente, la posesión no
Tras cada ronda y entre partidas, los roles (
isDefender) se conservan, perohasBatse resetea al dueño original. El bate vuelve a su sitio salvo que se haya robado en esa ronda. Ver el-bate.
// Al reiniciar partida: se conservan roles, se restaura posesión
p.hasBat = p.isDefenderPor qué importa para el diseño
El rol define tu plan de apertura:
- El defensor puede ir a daño bruto con el bate desde la ronda 1, pero debe proteger su posesión de un puño ladrón.
- El atacante juega a robar: si acierta puño contra el bate del rival, le quita el arma y el tempo a la vez.
Esto se cruza con la pasiva de bate (el calcetín), que existe precisamente para que el defensor pueda resistir un intento de robo.