Skip to content

feat: Leaderboard configurable - ordenamiento, tamaño, posición del jugador#14

Open
michumichifu wants to merge 1 commit intolino9999:masterfrom
michumichifu:feature/configurable-leaderboard
Open

feat: Leaderboard configurable - ordenamiento, tamaño, posición del jugador#14
michumichifu wants to merge 1 commit intolino9999:masterfrom
michumichifu:feature/configurable-leaderboard

Conversation

@michumichifu
Copy link
Copy Markdown

Resumen

El leaderboard actualmente ordena por total_levels, un contador acumulativo que nunca se resetea al cambiar de temporada. Esto hace que los jugadores veteranos ocupen permanentemente las primeras posiciones sin importar su actividad en la temporada actual.

Este PR agrega configurabilidad completa al leaderboard y corrige el reset de temporada.

Cambios

Ordenamiento configurable (config.yml):

leaderboard:
  sort-by: level          # Opciones: level, total_levels, xp, battle_coins
  tiebreaker: xp          # Ordenamiento secundario para desempates
  min-level: 2            # Filtra jugadores inactivos
  size: 20                # Jugadores mostrados (máx 27, antes hardcodeado a 10)
  reset-total-levels-on-season-end: true

Posición del jugador: Nuevo item "Tu Posición" (RECOVERY_COMPASS, slot 31) que muestra la posición en el ranking aunque no esté en el top. Usa query eficiente con COUNT(*).

Barra de progreso XP: Barra visual en el lore de cada jugador del top.

Reset de temporada: resetSeason() ahora opcionalmente resetea total_levels a 0, para que el leaderboard refleje la temporada actual.

El problema (antes de este PR)

Posición Jugador Nivel Actual XP Actual total_levels Justo?
#1 JugadorVeterano 5 29 167 No
#3 JugadorActivo 54 9,388 54 Debería ser #1

Retrocompatible

  • Valores por defecto mantienen el comportamiento existente si no se configura
  • No requiere cambios en el esquema de la BD
  • Todos los placeholders existentes siguen funcionando

…ugador, barra XP

- Ordenamiento del leaderboard configurable via config.yml (sort-by, tiebreaker)
- Tamaño configurable (default 20, max 27, antes hardcodeado a 10)
- Filtro min-level para excluir jugadores inactivos
- Item "Tu Posición" con ranking personal eficiente via COUNT(*)
- Barra de progreso XP visual en el lore
- Opción para resetear total_levels al cambiar temporada
- Corrige que el leaderboard ordenaba por total_levels acumulativo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant