Gemas — 8 niveles XP
Componente: block_xp Community v19.0 (plugin de comunidad, sin modificaciones de código)
Alcance: 1 — Gamificación
Estado: Definido (pendiente de aplicación por curso)
Propósito
Sistema de progresión por experiencia: el estudiante acumula XP por su actividad en el curso y asciende por 8 niveles temáticos ("Gemas"), cada uno con imagen propia.
Los 8 niveles
Método de cálculo flat: umbrales fijos con incrementos constantes de 500 XP (sin curva).
| Nivel | Nombre | XP mínimo |
|---|---|---|
| 1 | Gema Alba | 0 |
| 2 | Gema Aqua | 500 |
| 3 | Gema Violeta | 1.000 |
| 4 | Gema Esmeralda | 1.500 |
| 5 | Gema Solar | 2.000 |
| 6 | Gema Coral | 2.500 |
| 7 | Gema Índigo | 3.000 |
| 8 | Gema Prisma | 3.500 |
Dónde vive la configuración
La definición de niveles se almacena por curso en mdl_block_xp_config, columna levelsdata (JSON):
{
"v": 2,
"algo": {"method": "flat", "base": 500, "coef": 1.0, "incr": 500},
"xp": [0, 500, 1000, 1500, 2000, 2500, 3000, 3500],
"name": ["Gema Alba", "Gema Aqua", "Gema Violeta", "Gema Esmeralda",
"Gema Solar", "Gema Coral", "Gema Índigo", "Gema Prisma"]
}
La aplicación se hace vía Admin UI del bloque (Configuración → Niveles → "Permitir personalizar los niveles", 8 niveles, método Flat) o vía UPDATE mdl_block_xp_config masivo. El procedimiento completo, con backup previo y checkpoints, está en el Plan operativo de Gamificación (Fase 1).
Imágenes
8 PNG de 256×256 px con fondo transparente, una por Gema, cargadas por nivel desde la Admin UI del bloque. Los prompts de diseño están en la propuesta v2 (xlsx), sheet GEMAS.
Verificación
SELECT levels, JSON_EXTRACT(levelsdata, '$.name')
FROM mdl_block_xp_config
WHERE enabled = 1;
-- Esperado: levels = 8, nombres Gema Alba … Gema Prisma
En la UI: el bloque XP del curso debe mostrar "Gema Alba" como nivel 1 y el próximo nivel a 500 XP.