Docs: Update README to v1.4
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 6s
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 6s
This commit is contained in:
141
README.md
141
README.md
@@ -1,104 +1,91 @@
|
||||
# La Resistencia - Estado del Proyecto
|
||||
# Francia Ocupada (La Resistencia)
|
||||
|
||||
## 🎮 Estado Actual: FUNCIONAL (Parcial)
|
||||
## 🎮 Estado Actual: v1.4 - ESTABLE
|
||||
|
||||
Proyecto renombrado a **"Traición en París"** / **"Francia Ocupada"**.
|
||||
|
||||
### ✅ 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)
|
||||
#### 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 (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)
|
||||
#### 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.
|
||||
|
||||
### 🎨 Mejoras de UI Recientes (2025-12-13)
|
||||
### 🎨 Últimas Mejoras (v1.4 - Diciembre 2025)
|
||||
|
||||
- ✅ 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)
|
||||
- 🔄 **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.
|
||||
|
||||
### ⚠️ Pendiente de Ajustar
|
||||
## 🚀 Despliegue y Ejecución
|
||||
|
||||
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
|
||||
### Requisitos
|
||||
- Docker y Docker Compose
|
||||
- Node.js 18+ (para desarrollo local)
|
||||
|
||||
### Ejecución con Docker (Producción)
|
||||
```bash
|
||||
# Iniciar todos los servicios
|
||||
docker compose up -d
|
||||
# Desplegar todo el stack
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
# Ver logs
|
||||
docker compose logs -f
|
||||
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).
|
||||
|
||||
# Detener servicios
|
||||
docker compose down
|
||||
### Desarrollo Local
|
||||
```bash
|
||||
# Servidor
|
||||
cd server && npm run dev
|
||||
|
||||
# Cliente
|
||||
cd client && npm run dev
|
||||
```
|
||||
|
||||
## 🌐 URLs
|
||||
|
||||
- **Cliente**: http://localhost:3000
|
||||
- **Servidor**: http://localhost:4000
|
||||
- **Base de Datos**: localhost:5432
|
||||
- **Juego**: https://franciaocupada.martivich.es
|
||||
- **API**: https://api.franciaocupada.martivich.es
|
||||
- **Dashboard Admin**: (Accesible vía socket evento `admin_get_data`)
|
||||
|
||||
## 📝 Git
|
||||
## 📝 Ramas Git
|
||||
|
||||
### Ramas
|
||||
- `master`: Estado inicial con errores
|
||||
- `fix-gameboard`: Estado actual funcional ✅
|
||||
- `main`: Rama de producción (Estable v1.4).
|
||||
- `develop`: Rama de desarrollo e integración.
|
||||
|
||||
### Commits Importantes
|
||||
1. `8d423ac` - Estado inicial con errores de sintaxis
|
||||
2. `44d7418` - GameBoard limpio y funcional
|
||||
3. `5bb1b17` - VotingTimer agregado correctamente
|
||||
## 👥 Roles del Juego
|
||||
|
||||
## 🐛 Problemas Conocidos
|
||||
**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.
|
||||
|
||||
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
|
||||
**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.
|
||||
|
||||
## 📋 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
|
||||
## 🔧 Stack Tecnológico
|
||||
|
||||
- **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
|
||||
- **Infraestructura**: Docker, Nginx (Proxy Inverso)
|
||||
|
||||
Reference in New Issue
Block a user