🛡️ RPGtowapo Mod
Un sistema RPG avanzado para Hytale que implementa niveles, atributos, HUDs personalizados y persistencia de datos dual.
📋 Información General
| Propiedad | Valor |
|---|---|
| ID del Mod | RPGtowapo |
| Versión | 1.0.0 |
| Autor | Kalaur |
| Package Base | com.kalaur.rpgtowapo |
⚡ Funcionalidades Implementadas
1. Sistema de Niveles y Experiencia
El mod implementa un sistema de progresión exponencial:
- Fórmula de XP:
BASE_XP * nivel^1.5 - Puntos de Stat: Otorga 2 puntos asignables por cada nivel subido.
- Comandos:
/addxppara testear la subida de nivel.
2. Stats y Atributos
| Tipo | Stats | Efecto Actual |
|---|---|---|
| Stats Nativas | Salud, Estamina, Maná | Modifican directamente los valores máximos del jugador (usando StaticModifier). |
| Atributos de Rol | Fuerza, Destreza, Constitución, Inteligencia, Sabiduría, Carisma | Se almacenan y persisten, pero aún no afectan mecánicas de daño/defensa (WIP). |
3. Interfaz de Usuario (UI)
El mod incluye interfaces personalizadas para la gestión del personaje:
- HUD Permanente: Barra de progreso de nivel visible en pantalla.
- Hoja de Personaje: UI interactiva (
Personaje.ui) accesible mediante item o comando. Permite:- Ver stats actuales.
- Asignar puntos disponibles usando botones +/-.
- Guardar cambios manualmente.
🏗️ Arquitectura Técnica
Persistencia Dual (Dual Storage)
Para garantizar que los datos no se pierdan y sean rápidos de acceder, se usa un patrón híbrido:
1. EntityStore (ECS): Datos en tiempo real asociados a la entidad en el mundo. Permite acceso rápido y efectos inmediatos.
2. Player Holder: Datos persistentes asociados a la cuenta del jugador. Asegura que los datos se guarden al cambiar de mundo o desconectarse.
2. Player Holder: Datos persistentes asociados a la cuenta del jugador. Asegura que los datos se guarden al cambiar de mundo o desconectarse.
Componentes Clave
- RPGtowapoPlugin.java Clase principal. Gestiona eventos de conexión y configuración inicial.
- PlayerRPGData.java Componente ECS con Codec para serialización de niveles y stats.
- StatsService.java Lógica de negocio para asignación de puntos y cálculo de modificadores.
- PersonajePage.java Lógica de la UI interactiva (Eventos de botones, actualización visual).
🚧 Próximos Pasos (Roadmap)
- Conectar Atributos (Fuerza, Const, etc.) al sistema de daño y defensa.
- Implementar sistema de Clases y Habilidades.
- Añadir equipamiento con requisitos de stats.