56 lines
2.6 KiB
C++
56 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
|
#include "SkillTreeTypes.h"
|
|
#include "SkillTreeBlueprintLibrary.generated.h"
|
|
|
|
// Forward declarations
|
|
class USkillTreeComponent;
|
|
|
|
UCLASS()
|
|
class UTAD_UI_API USkillTreeBlueprintLibrary : public UBlueprintFunctionLibrary
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
// UI Helper Functions
|
|
|
|
// Get state color for UI display
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill State Color"))
|
|
static FLinearColor GetSkillStateColor(ESkillNodeState State);
|
|
|
|
// Get state text for UI display
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill State Text"))
|
|
static FText GetSkillStateText(ESkillNodeState State);
|
|
|
|
// Check if a skill can be selected with detailed reason
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill Availability Text"))
|
|
static FText GetSkillAvailabilityText(USkillTreeComponent* SkillTreeComponent, FName SkillID);
|
|
|
|
// Get formatted description with current values
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Format Skill Description"))
|
|
static FText FormatSkillDescription(const FSkillNodeData& NodeData);
|
|
|
|
// Calculate total stats preview (including selected but not purchased skills)
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Health Bonus"))
|
|
static float GetPreviewTotalHealthBonus(USkillTreeComponent* SkillTreeComponent);
|
|
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Damage Bonus"))
|
|
static float GetPreviewTotalDamageBonus(USkillTreeComponent* SkillTreeComponent);
|
|
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Speed Bonus"))
|
|
static float GetPreviewTotalSpeedBonus(USkillTreeComponent* SkillTreeComponent);
|
|
|
|
// Check if any skills are selected
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Has Selected Skills"))
|
|
static bool HasSelectedSkills(USkillTreeComponent* SkillTreeComponent);
|
|
|
|
// Check if player can respec
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Can Player Respec"))
|
|
static bool CanPlayerRespec(USkillTreeComponent* SkillTreeComponent);
|
|
|
|
// Get the connections between skills for line rendering
|
|
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill Connections"))
|
|
static TArray<FName> GetSkillConnections(USkillTreeComponent* SkillTreeComponent, FName SkillID);
|
|
}; |