Resistencia Dev fd23cae2ff
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 6s
refactor: Simplificar CI/CD usando script de deployment en el host
- Creado deploy.sh que se ejecuta directamente en el host
- Simplificado workflow para ejecutar el script en lugar de comandos inline
- El script maneja todo: git pull, docker build, docker deploy
- Evita problemas de 'docker: command not found' en el runner
- El runner solo necesita Node.js para checkout, luego ejecuta el script del host
2025-12-13 15:50:48 +01:00

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

  1. 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

📝 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. Posiciones de tokens en mapa: Los tokens de misiones 3, 4 y 5 necesitan ajuste fino en sus coordenadas

📋 Próximos Pasos

  1. Afinar posiciones de tokens de misiones 3, 4 y 5 en el mapa táctico
  2. Optimizar rendimiento del servidor
  3. Testing exhaustivo de todas las fases del juego
  4. 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
Repositori amb el joc Web: Francia Ocupada
Readme 124 MiB
Languages
TypeScript 92%
Shell 7.1%
Dockerfile 0.5%
CSS 0.3%