404d35f7322af4b9a170f8f172daa63bfef8a470
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 5s
- Removido el paso de copia con rsync/cp que causaba error - El script deploy.sh ya hace git pull para actualizar el código - Simplifica el workflow y evita dependencias innecesarias - El runner solo ejecuta el script, no necesita copiar archivos
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 Victoria)
- ✅ Lobby con creación/unión de partidas
- ✅ Intro con música y animaciones (título: "Traidores en París")
- ✅ Revelación de roles con cartas
- ✅ Roll call con avatares
- ✅ Votación de líder con timer de 10 segundos (esquina superior izquierda)
- ✅ Selección de equipo por el líder
- ✅ Votación de equipo con cartas cuadradas (aceptar/rechazar)
- ✅ Votación de misión (éxito/sabotaje solo para espías)
- ✅ Fase MISSION_REVEAL: Animación de cartas de votación revelándose
- ✅ Fase MISSION_RESULT: Pantalla resumen con mapa táctico y tokens de victoria/fracaso
- ✅ Histórico de Misiones: Círculos clicables en esquina superior derecha
- ✅ Mapa táctico: Tablero con tokens de misiones y marcadores de resultado
- ✅ Pantallas de victoria (Aliados/Nazis)
- ✅ Fase de asesinato (ASSASSIN_PHASE)
🎨 Mejoras de UI Recientes (2025-12-13)
- ✅ Timer de votación reposicionado (esquina superior izquierda, fixed, 20px margen)
- ✅ Cartas de votación de líder redimensionadas (cuadradas 32x32)
- ✅ Eliminado contador de votos rechazados en resultado de misión
- ✅ Mapa táctico permanece visible durante toda la fase MISSION_RESULT
- ✅ Tokens de victoria/fracaso posicionados en el mapa (ajuste fino pendiente para tokens 3, 4, 5)
⚠️ Pendiente de Ajustar
- Posiciones de tokens en mapa: Afinar ubicación de tokens de misiones 3, 4 y 5 en el tablero táctico
🚀 Cómo Ejecutar
# 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 erroresfix-gameboard: Estado actual funcional ✅
Commits Importantes
8d423ac- Estado inicial con errores de sintaxis44d7418- GameBoard limpio y funcional5bb1b17- VotingTimer agregado correctamente
🐛 Problemas Conocidos
- CPU Alta en Servidor: El servidor puede consumir mucha CPU. Si ocurre, reiniciar con
docker compose restart server - Posiciones de tokens en mapa: Los tokens de misiones 3, 4 y 5 necesitan ajuste fino en sus coordenadas
📋 Próximos Pasos
- Afinar posiciones de tokens de misiones 3, 4 y 5 en el mapa táctico
- Optimizar rendimiento del servidor
- Testing exhaustivo de todas las fases del juego
- Ajustes finales de UX/UI según feedback de jugadores
🎯 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
Description
Languages
TypeScript
92%
Shell
7.1%
Dockerfile
0.5%
CSS
0.3%