#pragma once #include "SkillTreeState.h" #include "IngameSkillTree.Generated.h" USTRUCT() struct FIngameSkillTreeSkill { GENERATED_BODY() public: UPROPERTY() TArray placedPoints; UPROPERTY(BlueprintReadOnly) class UBaseSkillObject* skillObject; UPROPERTY(BlueprintReadOnly) class UAbilityInfo* selectedEffect; UPROPERTY(BlueprintReadOnly) int32 selectedEffectIndex; UPROPERTY(BlueprintReadOnly) float power; UPROPERTY(BlueprintReadOnly) int32 level; // Kind of ability on the button bar UPROPERTY(BlueprintReadOnly) int32 abilityType; }; UCLASS() class AIngameSkillTree : public AActor { GENERATED_BODY() public: AIngameSkillTree(const FObjectInitializer& init); ~AIngameSkillTree(); virtual void BeginPlay() override; void BuildFromState(const FSkillTreeState& state); TArray GetSkillsForLevel(class ADefaultPlayerState* player); TArray GetSkillsForLevel(float level); void UpdatePowerForSkill(FIngameSkillTreeSkill& skill, float level); private: UPROPERTY() TArray m_skills; };