# La Resistencia - Estado del Proyecto

## 🎮 Estado Actual: FUNCIONAL (Parcial)

### ✅ Funcionalidades Implementadas

#### Backend (100% Completo)
- ✅ Sistema de salas y jugadores
- ✅ Asignación de roles (Resistencia/Espías)
- ✅ Fases del juego: LOBBY, INTRO, REVEAL_ROLE, ROLL_CALL, VOTE_LEADER, TEAM_BUILDING, VOTE_TEAM, MISSION
- ✅ **Nuevas fases**: MISSION_REVEAL, MISSION_RESULT (lógica completa)
- ✅ Votación de líder con sistema de aprobación/rechazo
- ✅ Selección y votación de equipos
- ✅ Votación de misiones (éxito/sabotaje)
- ✅ **Barajado aleatorio de votos de misión**
- ✅ **Histórico de misiones** (MissionRecord)
- ✅ Reglas correctas de éxito/fracaso (misión 4 con 7+ jugadores requiere 2 fallos)
- ✅ Sistema de victoria (3 misiones exitosas o 3 fallidas)
- ✅ Fase de asesinato (ASSASSIN_PHASE)

#### Frontend (Funcional hasta MISSION)
- ✅ Lobby con creación/unión de partidas
- ✅ Intro con música y animaciones
- ✅ Revelación de roles con cartas
- ✅ Roll call con avatares
- ✅ Votación de líder con timer de 10 segundos
- ✅ Selección de equipo por el líder
- ✅ Votación de equipo
- ✅ Votación de misión (éxito/sabotaje solo para espías)
- ✅ Componente VotingTimer funcionando

### ❌ Pendiente de Implementar (Solo UI)

1. **Fase MISSION_REVEAL**: Pantalla que muestra las cartas de votación una a una (backend listo)
2. **Fase MISSION_RESULT**: Pantalla resumen con resultado de la misión (backend listo)
3. **Histórico de Misiones**: Componente visual en esquina mostrando misiones completadas (backend listo)

## 🚀 Cómo Ejecutar

```bash
# Iniciar todos los servicios
docker compose up -d

# Ver logs
docker compose logs -f

# Detener servicios
docker compose down
```

## 🌐 URLs

- **Cliente**: http://localhost:3000
- **Servidor**: http://localhost:4000
- **Base de Datos**: localhost:5432

## 📝 Git

### Ramas
- `master`: Estado inicial con errores
- `fix-gameboard`: Estado actual funcional ✅

### Commits Importantes
1. `8d423ac` - Estado inicial con errores de sintaxis
2. `44d7418` - GameBoard limpio y funcional
3. `5bb1b17` - VotingTimer agregado correctamente

## 🐛 Problemas Conocidos

1. **CPU Alta en Servidor**: El servidor puede consumir mucha CPU. Si ocurre, reiniciar con `docker compose restart server`
2. **Fases MISSION_REVEAL y MISSION_RESULT**: No tienen UI implementada. El juego se quedará en esa fase si se completa una misión.

## 📋 Próximos Pasos

1. Implementar UI para MISSION_REVEAL (mostrar cartas una a una con animación)
2. Implementar UI para MISSION_RESULT (pantalla resumen)
3. Agregar histórico de misiones visual
4. Optimizar rendimiento del servidor

## 🎯 Reglas del Juego Implementadas

- Votación de líder: mayoría simple aprueba
- 5 rechazos consecutivos: victoria de espías
- Misiones: 1 fallo = fracaso (excepto misión 4 con 7+ jugadores que requiere 2 fallos)
- 3 misiones exitosas: victoria de resistencia (con fase de asesinato)
- 3 misiones fallidas: victoria de espías

## 🔧 Tecnologías

- **Frontend**: Next.js 14, React, TypeScript, Framer Motion, TailwindCSS
- **Backend**: Node.js, Express, Socket.IO, TypeScript
- **Base de Datos**: PostgreSQL 15
- **Containerización**: Docker, Docker Compose
