Resistencia Dev c723b373d3
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 6s
Feat: Add HelpModal and scrollable lobby list
2025-12-27 23:22:01 +01:00
2025-12-27 23:05:15 +01:00

Francia Ocupada (La Resistencia)

🎮 Estado Actual: v1.4 - ESTABLE

Proyecto renombrado a "Traición en París" / "Francia Ocupada".

Funcionalidades Implementadas

Backend (Socket.io + Node.js)

  • Sistema de Reconexión Inteligente: Los jugadores pueden recargar la página o volver a entrar y mantienen su sesión (ID de socket actualizado en tiempo real).
  • Persistencia de Partidas: Las partidas no se pierden si un jugador se desconecta brevemente.
  • Control de Sesiones: Seguimiento de matchNumber y matchResults para estadísticas continuas en el dashboard de admin.
  • Lógica de Juego Completa:
    • Roles ocultos y asignación aleatoria balanceada.
    • Fases: Lobby, Intro, Reveal Role, Roll Call, Vote Leader, Team Building, Vote Team, Mission, Mission Reveal, Mission Result, Assassin Phase.
    • Reglas especiales: 4ª misión con 7+ jug. requiere 2 fallos, 5 rechazos de líder = Victoria espía.
    • Temporizadores de seguridad para votaciones de líder.

Frontend (Next.js + Tailwind + Framer Motion)

  • Diseño Premium: Estética "World War II" con tipografías, colores y assets temáticos (fichas de póker, documentos secretos, mapas tácticos).
  • UX Fluida: Animaciones de transición entre todas las fases.
  • Feedback Visual:
    • Cartas de rol específicas para cada personaje (Marlene, Capitán Philippe, Francotirador, etc.).
    • Tablero táctico dinámico que muestra el progreso de la partida.
    • Indicadores claros de "Tu Turno" o "Esperando al líder".
  • Audio: Banda sonora y efectos de sonido integrados.

🎨 Últimas Mejoras (v1.4 - Diciembre 2025)

  • 🔄 Fix Crítico: Solucionado bug donde el Líder perdía sus botones de acción al recargar la página.
  • 📊 Dashboard Admin: Panel de administración mejorado con historial de partidas y estadísticas de victorias.
  • 🖼️ Assets: Nuevas imágenes para roles y fondos de victoria/derrota.
  • 📱 Responsividad: Mejoras en la vista móvil para la fase de "Pasando Lista" y Tablero.

🚀 Despliegue y Ejecución

Requisitos

  • Docker y Docker Compose
  • Node.js 18+ (para desarrollo local)

Ejecución con Docker (Producción)

# Desplegar todo el stack
./deploy.sh

El script deploy.sh se encarga de:

  1. Bajar los últimos cambios de main.
  2. Construir las imágenes con tags de versión.
  3. Levantar los contenedores (Client, Server, DB).

Desarrollo Local

# Servidor
cd server && npm run dev

# Cliente
cd client && npm run dev

🌐 URLs

📝 Ramas Git

  • main: Rama de producción (Estable v1.4).
  • develop: Rama de desarrollo e integración.

👥 Roles del Juego

La Resistencia (Aliados)

  • Marlene (Merlín): Conoce a los espías. Debe mantenerse oculta.
  • Capitán Philippe (Percival): Conoce a Marlene (y al Agente Doble). Debe protegerla.
  • Partisanos: Miembros leales de la resistencia. No saben nada.

El Eje (Alemanes/Espías)

  • Francotirador (Asesino): Si los aliados ganan las 3 misiones, tiene un disparo final para matar a Marlene y robar la victoria.
  • Agente Doble (Morgana): Se hace pasar por Marlene ante el Capitán Philippe.
  • Comandante Schmidt (Mordred): Espía desconocido para Marlene.
  • Infiltrado (Oberon): Espía que no conoce a los otros espías.
  • Colaboricionistas: Espías estándar.

🔧 Stack Tecnológico

  • Frontend: Next.js 14, React, TypeScript, Framer Motion, TailwindCSS
  • Backend: Node.js, Express, Socket.IO, TypeScript
  • Base de Datos: PostgreSQL 15
  • Infraestructura: Docker, Nginx (Proxy Inverso)
Description
Repositori amb el joc Web: Francia Ocupada
Readme 124 MiB
Languages
TypeScript 92%
Shell 7.1%
Dockerfile 0.5%
CSS 0.3%