// Copyright Echo Devgroup #pragma once #include "CoreMinimal.h" #include "AbilitySystem/Data/CharacterClassInfo.h" #include "Character/AuraCharacterBase.h" #include "Interact/EnemyInterface.h" #include "UI/WidgetController/OverlayWidgetController.h" #include "AuraEnemy.generated.h" class UWidgetComponent; /** * */ UCLASS() class AURA_API AAuraEnemy : public AAuraCharacterBase, public IEnemyInterface { GENERATED_BODY() public: AAuraEnemy(); bool bHighlighted = false; //Enemy Interface virtual void HighlightActor() override; virtual void UnHighlightActor() override; virtual int32 GetPlayerLevel() override; virtual void Die() override; UPROPERTY(BlueprintAssignable) FOnAttributeChangedSignature OnHealthChanged; UPROPERTY(BlueprintAssignable) FOnAttributeChangedSignature OnMaxHealthChanged; void HitReactTagChanged(const FGameplayTag CallbackTag, int32 NewCount); UPROPERTY(BlueprintReadOnly, Category = "Combat") bool bHitReacting = false; UPROPERTY(BlueprintReadOnly, Category = "Combat") float BaseWalkSpeed = 250.f; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Combat") float LifeSpan = 5.f; protected: virtual void BeginPlay() override; virtual void InitAbilityActorInfo() override; virtual void InitializeDefaultAttributes() const override; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class Defaults") int32 Level = 1; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class Defaults") FText Name; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class Defaults") ECharacterClass CharacterClass = ECharacterClass::Warrior; UPROPERTY(VisibleAnywhere, BlueprintReadOnly) TObjectPtr HealthBar; private: };