53 AEnemyCharacterBase(
const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
56 virtual void PostInitializeComponents()
override;
57 virtual void BeginPlay()
override;
58 virtual void PossessedBy(AController* NewController)
override;
59 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
63 virtual void ForceReturnToPool(
bool bIsSpawnedEnemy =
false);
66 virtual void ShowLockOnMarker()
override;
67 virtual void HideLockOnMarker()
override;
68 virtual void ShowTargetingMarker(
float MarkerAlpha)
override;
69 virtual void HideTargetingMarker()
override;
70 virtual bool IsTargetable()
const override;
84 return ConstellationID;
89 return TargetingMarker;
99 return MotionWarpingComponent;
104 return CharacterControlData.Get();
109 virtual void InitializeAttributes()
override;
110 virtual void GiveDefaultAbilities();
111 virtual void RebindHpBarWidget();
112 virtual void BindCharacterDelegates();
113 virtual void UnbindCharacterDelegates();
121 void StopAILogic(
const FString& Reason);
125 virtual void OnSpawnFromPool_Implementation()
override;
126 virtual void OnReturnToPool_Implementation()
override;
129 void ActivateEnemyState();
130 void DeactivateEnemyState();
131 virtual void ResetEnemyBehaviorComponents();
138 virtual
void OnDeath();
140 virtual
void PlayDeadAnimation() override;
143 virtual
IAbilityBasedWidgetInterface* GetAbilityBasedWidgetInterface() PURE_VIRTUAL(ACK_CharacterEnemy::GetAbilityBasedWidgetInterface, return
nullptr;)
146 void RequestReturnToPool(
float DeadEventDelayTime = 2.0f);
150 void PlayMeshPulse(const FGameplayTag& DamageTypeTag);
153 void StopMeshPulse();
156 void GrantExpToPlayer() const;
159 FOnSpawnEnemyDead OnSpawnEnemyDead;
160 FTimerHandle DeadTimerHandle;
166 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Data")
169 UPROPERTY(EditAnywhere, BlueprintReadOnly, Instanced, Category = "Flow")
172 UPROPERTY(EditAnywhere, BlueprintReadOnly, Instanced, Category = "Flow")
175 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI")
176 TObjectPtr<UTargetingMarkerComponent> LockOnMarker;
178 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "
UI")
179 TObjectPtr<UTargetingMarkerComponent> TargetingMarker;
181 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Component")
182 TObjectPtr<UEnemyMotionWarpingComponent> MotionWarpingComponent;
185 TObjectPtr<AAIController> CachedAIController;
188 TObjectPtr<UStateTreeAIComponent> CachedStateTreeComp;
193 FTransform InitialMeshRelativeTransform;
195 FName ConstellationID;
197 float EnemyExp = 0.0f;
200 TWeakObjectPtr<UEnemyGroggyComponent> CachedGroggyComponent;
205 FDelegateHandle MoveSpeedDelegateHandle;
206 FDelegateHandle GroggyStateDelegateHandle;