#include "GameFramework/Character.h"
#include "BaseCharacter.generated.h"
class TESTPHASE_API ABaseCharacter : public ACharacter
virtual void BeginPlay() override;
virtual void Tick( float DeltaSeconds ) override;
virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Base Character")
UPROPERTY(blueprintReadWrite, EditAnywhere, Category = "Base Character")
UPROPERTY(BlueprintReadWrite, EditAnyhwere, Category=Enum)
TypeCharacter TypeCharacterEnum;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Base Character")
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Base Character")
FString Name = "Anonymous";
UPROPERTY(BleuprintReadOnly, VisibleAnywhere, Catagory = "Base Character")
virtual void CalculateDead();
UFUNCTION(BlueprintCallable, Category = "Base Character")
virtual void CalculateHealth(float delta);
UFUNCTION(BlueprintCallable, Category = "Base Character")
virtual void CalculateEnergy(float delta);
UFUNCTION(BlueprintCallable, Category = "Base Character")
virtual void CalculateArmor(float delta);
UFUNCTION(BlueprintCallable, Category = "Base Character")
virtual FString GetTypeCharacterEnumAsString(TypeCharacter::Type EnumValue);
UFUNCTION(BlueprintCallable, Category = "Base Character")
virtual FString getNameAsString();
virtual void PostEditChangeProperty(FPropertyChangedEvent& FPropertyChangedEvent)
enum class TypeCharacter : uint8
TC_Friendly UMETA(DisplayName = "Friendly"),
TC_Enemy UMETA(DisplayName = "Enemy"),
TC_Neutral UMETA(DisplayName = "Neutral")
#include "BaseCharacter.h"
ABaseCharacter::ABaseCharacter()
PrimaryActorTick.bCanEverTick = true;
void ABaseCharacter::BeginPlay()
void ABaseCharacter::Tick( float DeltaTime )
Super::Tick( DeltaTime );
void ABaseCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent)
Super::SetupPlayerInputComponent(InputComponent);
void ABaseCharacter::CalculateHealth(float delta)
void ABaseCharacter::CalculateEnergy(float echo)
void ABaseCharacter::CalculateArmor(float alpha)
FString ABaseCharacter::GetTypeCharacterEnumAsString(TypeCharacter EnumValue)
const UEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE, TEXT("TypeCharacter"), true);
if (!EnumPtr) return FString("Invalid");
return EnumPtr->GetEnumName(EnumValue);
void ABaseCharacter::CalculateDead()
FString ABaseCharacter::getNameAsString()
void ABaseCharacter::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
TypeCharacterEnum = TypeCharacter::TC_Neutral;
Super::PostEditChangeProperty(PropertyChangedEvent);