feat: reset button and only available if affordable
This commit is contained in:
		| @@ -24,19 +24,18 @@ protected: | ||||
|  | ||||
|     // Current skill points available | ||||
|     UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Skill Points", SaveGame) | ||||
|     int32 AvailableSkillPoints; | ||||
|  | ||||
|     int32 AvailableSkillPoints = 0; | ||||
|     // Total skill points earned | ||||
|     UPROPERTY(BlueprintReadOnly, Category = "Skill Points", SaveGame) | ||||
|     int32 TotalSkillPointsEarned; | ||||
|     int32 TotalSkillPointsEarned = 0; | ||||
|  | ||||
|     // Data table containing all skill definitions | ||||
|     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Skill Tree") | ||||
|     class UDataTable* SkillDataTable; | ||||
|     class UDataTable* SkillDataTable = nullptr; | ||||
|  | ||||
|     // All skills loaded from the data table | ||||
|     UPROPERTY(BlueprintReadOnly, Category = "Skill Tree") | ||||
|     TMap<FName, FSkillNodeRuntime> AllSkills; | ||||
|     TMap<FName, FSkillNodeRuntime> AllSkills = {}; | ||||
|  | ||||
|     // Currently purchased skills | ||||
|     UPROPERTY(BlueprintReadOnly, Category = "Skill Tree", SaveGame) | ||||
| @@ -93,10 +92,8 @@ public: | ||||
|     // Skill State Queries | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill State") | ||||
|     bool IsSkillPurchased(FName SkillID) const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill State") | ||||
|     bool IsSkillSelected(FName SkillID) const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill State") | ||||
|     bool IsSkillAvailable(FName SkillID) const; | ||||
|  | ||||
| @@ -116,19 +113,15 @@ public: | ||||
|     // Calculate total bonuses from purchased skills | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalHealthBonus() const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalDamageBonus() const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalSpeedBonus() const; | ||||
|  | ||||
| 	 | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalHealthBonusPercent() const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalDamageBonusPercent() const; | ||||
|  | ||||
|     UFUNCTION(BlueprintPure, Category = "Skill Bonuses") | ||||
|     float GetTotalSpeedBonusPercent() const; | ||||
|  | ||||
| @@ -139,16 +132,12 @@ public: | ||||
|     // Events | ||||
|     UPROPERTY(BlueprintAssignable, Category = "Skill Events") | ||||
|     FOnSkillPointsChanged OnSkillPointsChanged; | ||||
|  | ||||
|     UPROPERTY(BlueprintAssignable, Category = "Skill Events") | ||||
|     FOnSkillPurchased OnSkillPurchased; | ||||
|  | ||||
|     UPROPERTY(BlueprintAssignable, Category = "Skill Events") | ||||
|     FOnSkillSelectionChanged OnSkillSelectionChanged; | ||||
|  | ||||
|     UPROPERTY(BlueprintAssignable, Category = "Skill Events") | ||||
|     FOnSkillStateChanged OnSkillStateChanged; | ||||
|  | ||||
|     UPROPERTY(BlueprintAssignable, Category = "Skill Events") | ||||
|     FOnSelectionError OnSelectionError; | ||||
|  | ||||
| @@ -156,8 +145,9 @@ private: | ||||
|     // Internal helper functions | ||||
|     void UpdateSkillStates(); | ||||
|     void UpdateSelectionCost(); | ||||
|     bool ArePrerequisitesMet(const FSkillNodeData& SkillData) const; | ||||
|     bool ArePrerequisitesMet(const FSkillNodeData& SkillData, bool bIncludeSelected = false) const; | ||||
|     bool HasChildrenPurchased(FName SkillID) const; | ||||
|     void ApplySkillEffects(const FSkillNodeData& SkillData); | ||||
|     void RemoveSkillEffects(const FSkillNodeData& SkillData); | ||||
|     void CascadeDeselectDependents(FName SkillID); | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user