feat: add readmes
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Damage_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Health_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Health_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Health_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Health_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Health_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Health_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Damage_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Health_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Speed_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Start.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Skill_Start.uasset
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T1.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T2.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Speed_T3.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Art/T_Start.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Art/T_Start.uasset
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										130
									
								
								README-es.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								README-es.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,130 @@ | |||||||
|  | # Proyecto UI U-Tad | ||||||
|  |  | ||||||
|  | **[Read in English](README.md)** | **Español** | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## Implementación del Sistema de Árbol de Habilidades | ||||||
|  |  | ||||||
|  | ### Resumen | ||||||
|  | Un sistema completo de árbol de habilidades con progresión basada en nodos, validación de prerrequisitos, líneas de conexión visuales y configuración orientada a datos. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## Arquitectura: Decisión de Blueprint | ||||||
|  |  | ||||||
|  | ### Implementación en Blueprint | ||||||
|  | **Componentes:** `WBP_SkillTree`, `WBP_SkillNode`, `WBP_SkillNodeTooltip` | ||||||
|  |  | ||||||
|  | **Justificación:** | ||||||
|  | - **Velocidad de iteración**: El diseño y estilización de UI requiere iteración visual rápida | ||||||
|  | - **Amigable para diseñadores**: Artistas/diseñadores pueden modificar la UI sin conocimientos de C++ | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## Sistemas Principales | ||||||
|  |  | ||||||
|  | ### 1. Capa de Datos (`SkillTreeTypes.h`) | ||||||
|  | **Estructuras:** | ||||||
|  | - `FSkillNodeData`: Fila de definición de habilidad para la tabla de datos (nombre, coste, prerrequisitos, efectos, bandera de inicio) | ||||||
|  | - `FSkillNodeRuntime`: Envoltorio de estado en tiempo de ejecución | ||||||
|  | - `ESkillNodeState`: Enum de estado (Bloqueado, Disponible, Seleccionado, Comprado) | ||||||
|  |  | ||||||
|  | **Decisión**: El diseño basado en Data Table permite a no programadores configurar habilidades sin recompilar. | ||||||
|  |  | ||||||
|  | ### 2. Capa de Lógica (`SkillTreeComponent`) | ||||||
|  | **Responsabilidades:** | ||||||
|  | - Inicialización del árbol de habilidades desde DataTable | ||||||
|  | - Gestión de estado (prerrequisitos, comprobaciones de asequibilidad) | ||||||
|  | - Validación de selección y confirmación de compra | ||||||
|  | - Auto-compra de habilidades iniciales | ||||||
|  | - Gestión de puntos de habilidad | ||||||
|  | - Ganchos de aplicación de efectos | ||||||
|  |  | ||||||
|  | **Características Clave:** | ||||||
|  | - **Ordenación por orden de compra**: Asegura que los prerrequisitos se compren antes que los dependientes | ||||||
|  | - **Deselección en cascada**: Eliminar un prerrequisito deselecciona las habilidades dependientes | ||||||
|  | - **Habilidades iniciales**: Marcadas en DataTable, auto-compradas en init, preservadas en reset | ||||||
|  | - **Agregación de estadísticas**: Proporciona funciones `GetTotal[Stat]Bonus()` para sumar bonificaciones de todas las habilidades compradas | ||||||
|  |  | ||||||
|  | ### 3. Capa de Integración de Estadísticas (`CharacterStatsComponent`) | ||||||
|  | **Responsabilidades:** | ||||||
|  | - Cálculo automático de estadísticas desde habilidades compradas | ||||||
|  | - Gestión de estadísticas del personaje (Salud, Daño, Velocidad) | ||||||
|  | - Actualizaciones en tiempo real cuando se compran habilidades | ||||||
|  | - Integración con velocidad de movimiento | ||||||
|  |  | ||||||
|  | **Cómo funciona:** | ||||||
|  | - Encuentra SkillTreeComponent en el mismo actor en BeginPlay | ||||||
|  | - Escucha el evento `OnSkillPurchased` | ||||||
|  | - Itera todas las habilidades compradas, suma bonificaciones planas + porcentuales | ||||||
|  | - Aplica fórmula: `StatFinal = Base + BonusPlano + (Base * BonusPorcentual / 100)` | ||||||
|  | - Auto-actualiza la velocidad de CharacterMovementComponent | ||||||
|  | - Emite eventos de cambio de estadísticas para actualizaciones de UI | ||||||
|  |  | ||||||
|  | **Decisión**: Un componente de estadísticas separado mantiene las responsabilidades separadas - SkillTreeComponent maneja la progresión, CharacterStatsComponent maneja la aplicación de estadísticas. Hace ambos reutilizables independientemente. | ||||||
|  |  | ||||||
|  | ### 4. Capa de Visualización (`SkillTreeConnectionsWidget`) | ||||||
|  | **Responsabilidades:** | ||||||
|  | - Dibujado automático de líneas entre nodos prerrequisito (¡Solo necesitas colocar los nodos en la UI!) | ||||||
|  | - Coloreado dinámico de líneas basado en estados de habilidades | ||||||
|  | - Refresco basado en eventos cuando cambian los estados | ||||||
|  |  | ||||||
|  | **Enfoque Técnico:** | ||||||
|  | - **Búsqueda genérica**: Funciona con cualquier jerarquía de widgets para que diseñadores/artistas no estén limitados al crear el widget del árbol de habilidades (Canvas, Overlay, Grid) | ||||||
|  | - **Override de NativePaint**: Renderizado directo con Slate para rendimiento | ||||||
|  | - **Binding de delegados**: Se refresca automáticamente cuando cambian los estados de las habilidades | ||||||
|  |  | ||||||
|  | **Decisión**: Un único widget auto-contenido elimina la gestión manual de líneas y complejidad de Blueprint. | ||||||
|  |  | ||||||
|  | ### 5. Capa de UI (Blueprints) | ||||||
|  | **WBP_SkillNode & WBP_SkillNodeTooltip:** | ||||||
|  | - Muestra icono de habilidad, estado, coste | ||||||
|  | - Maneja eventos de clic (seleccionar/deseleccionar) | ||||||
|  | - Almacena SkillID para búsqueda en tiempo de ejecución | ||||||
|  | - Soporte de tooltip personalizado para mostrar detalles de habilidad | ||||||
|  | - Actualizaciones de estado en tiempo real mediante binding de eventos permiten feedback visual instantáneo | ||||||
|  |  | ||||||
|  | **WBP_SkillTree:** | ||||||
|  | - Contiene nodos de habilidad colocados manualmente | ||||||
|  | - Referencia a SkillTreeComponent | ||||||
|  | - Aloja SkillTreeConnectionsWidget que dibuja líneas entre nodos automáticamente | ||||||
|  | - Se vincula a eventos del componente para actualizaciones de UI | ||||||
|  |  | ||||||
|  | **Decisión**: La colocación manual de nodos permite diseños personalizados (lineal, radial, ramificado) según preferencia del diseñador. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## Decisiones Clave de Diseño | ||||||
|  |  | ||||||
|  | ### 1. Prerrequisitos de habilidades en DataTable | ||||||
|  | **Alternativa**: Hard-coded en C++ o referencias a DataAssets | ||||||
|  | **Elegido**: Array en DataTable | ||||||
|  | **Razón**: Los diseñadores pueden modificar dependencias de habilidades sin intervención del programador y sin recompilar | ||||||
|  |  | ||||||
|  | ### 2. Componente vs Subsistema | ||||||
|  | **Alternativa**: Game Instance Subsystem | ||||||
|  | **Elegido**: Actor Component | ||||||
|  | **Razón**: Soporta múltiples árboles de habilidades por jugador (ej., árbol de combate, árbol de crafteo) y más fácil integración con guardar/cargar | ||||||
|  |  | ||||||
|  | ### 3. Widget de Conexiones Único | ||||||
|  | **Alternativa**: Widgets de línea individuales por conexión con gestión manual | ||||||
|  | **Elegido**: Un widget dibuja todas las líneas automáticamente | ||||||
|  | **Razón**: Elimina gestión de arrays, mejor rendimiento, manejo automático de coordenadas | ||||||
|  |  | ||||||
|  | ### 4. Componente de Estadísticas Separado | ||||||
|  | **Alternativa**: Aplicar estadísticas directamente en SkillTreeComponent | ||||||
|  | **Elegido**: CharacterStatsComponent separado | ||||||
|  | **Razón**: Separación de responsabilidades - SkillTreeComponent es reutilizable para cualquier sistema de progresión, CharacterStatsComponent específicamente maneja estadísticas de personaje. Permite árboles de habilidades sin bonificaciones de stats, o stats sin árboles de habilidades. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | ## Aspectos Técnicos Destacados | ||||||
|  |  | ||||||
|  | - **Arquitectura basada en eventos**: El componente emite cambios de estado, la UI responde automáticamente | ||||||
|  | - **Validación de máquina de estados**: Previene transiciones inválidas (ej., no se pueden seleccionar habilidades bloqueadas) | ||||||
|  | - **Aplicación automática de estadísticas**: CharacterStatsComponent escucha compras de habilidades, recalcula estadísticas, las aplica al personaje | ||||||
|  | - **Renderizado consciente de geometría**: Las líneas se adaptan a cualquier sistema de posicionamiento de widgets | ||||||
|  | - **Configuración orientada a datos**: Cero cambios de código y no necesita compilar para nuevas habilidades o diseños de árbol | ||||||
|  | - **Funcionalidad de reinicio**: Reembolsa habilidades no iniciales, mantiene puntos de inicio | ||||||
|  | - **Diseño modular**: Progresión de habilidades, estadísticas y visualización son independientes | ||||||
| @@ -1,5 +1,9 @@ | |||||||
| # U-Tad UI Project | # U-Tad UI Project | ||||||
|  |  | ||||||
|  | **English** | **[Leer en Español](README-es.md)** | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
| ## Skill Tree System Implementation | ## Skill Tree System Implementation | ||||||
|  |  | ||||||
| ### Overview | ### Overview | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								RawContent/T_Skill_Start.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								RawContent/T_Skill_Start.png
									 (Stored with Git LFS)
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user