// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "UnitInfo.generated.h" /** * */ UCLASS() class SPACEBATTLER_API UUnitInfo : public UPrimaryDataAsset { GENERATED_BODY() public: int32 GetTier() const; TSubclassOf GetCharacterClass() const; protected: UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Information") FText Name; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (MultiLine = true), Category="Information") FText Description; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Information") UTexture2D* Texture2D; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Stats") float BaseHP; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Stats") float Attack; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Stats") float Cooldown; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attributes") bool IsRanged; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attributes") bool IsAOE; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attributes") float AOERange; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attributes") bool IsFlying; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Stats") float Range; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Stats") float Speed; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Information") int32 Tier; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Classes") TSubclassOf CharacterClass; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Melee Info") TSubclassOf MeleeDamageType; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Melee Info") UAnimMontage* MeleeMontage; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Ranged Info") TSubclassOf RangedProjectile; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Ranged Info") float RangedProjectileSpeed; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Ranged Info") int32 RangedProjectileAmount; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Ranged Info") float RangedProjectileDelay; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Ranged Info") UAnimMontage* RangedProjectileMontage; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Information") TArray UnitTags; };