// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "UTAD_UICharacter.generated.h" UCLASS(Blueprintable) class AUTAD_UICharacter : public ACharacter { GENERATED_BODY() public: AUTAD_UICharacter(); // Called every frame. virtual void Tick(float DeltaSeconds) override; // Called when the game starts virtual void BeginPlay() override; /** Returns TopDownCameraComponent subobject **/ FORCEINLINE class UCameraComponent* GetTopDownCameraComponent() const { return TopDownCameraComponent; } /** Returns CameraBoom subobject **/ FORCEINLINE class USpringArmComponent* GetCameraBoom() const { return CameraBoom; } /** Returns SkillTreeComponent subobject **/ UFUNCTION(BlueprintPure, Category = "Skill Tree") class USkillTreeComponent* GetSkillTreeComponent() const { return SkillTreeComponent; } /** Returns CharacterStatsComponent subobject **/ UFUNCTION(BlueprintPure, Category = "Character Stats") class UCharacterStatsComponent* GetStatsComponent() const { return CharacterStatsComponent; } // Level up function to grant skill points UFUNCTION(BlueprintCallable, Category = "Character") void LevelUp(); private: /** Top down camera */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) class UCameraComponent* TopDownCameraComponent; /** Camera boom positioning the camera above the character */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) class USpringArmComponent* CameraBoom; /** Skill Tree Component for managing character skills */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Skill Tree", meta = (AllowPrivateAccess = "true")) class USkillTreeComponent* SkillTreeComponent; /** Character Stats Component for managing health, damage, speed */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Character Stats", meta = (AllowPrivateAccess = "true")) class UCharacterStatsComponent* CharacterStatsComponent; // Current character level UPROPERTY(BlueprintReadOnly, Category = "Character", meta = (AllowPrivateAccess = "true")) int32 CharacterLevel; };