Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
EnemyGroggyComponent.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
6#include "EnemyGroggyComponent.generated.h"
7
8class UAbilitySystemComponent;
9class UAnimMontage;
11
12UENUM(BlueprintType)
13enum class EEnemyGroggyState : uint8
14{
15 Normal,
16 Groggy,
18};
19
21
22UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
23class CK_UE_API UEnemyGroggyComponent : public UEnemyBehaviorComponent
24{
25 GENERATED_BODY()
26
27public:
28 virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
29 virtual void InitializeBehavior(const FEnemyExtendedData& EnemyExtendedData, FName RowName) override;
30 virtual void ResetState() override;
31
32 void EnterGroggy();
33 void EndGroggy();
34 void CompleteGroggyRecovery();
35
36 FORCEINLINE UAnimMontage* GetGroggyMontage() const { return GroggyMontage; }
37 FORCEINLINE FName GetGroggyEndSectionName() const { return GroggyEndSectionName; }
38
39private:
40 // 그로기 관련 상태를 Normal 로 되돌리는 공통 부분.
41 void ClearGroggyState();
42
43 void SetGroggyValue(float NewValue);
44 void SetGroggyTagCount(int32 NewCount) const;
45
46public:
47 FOnGroggyStateChanged OnGroggyStateChanged;
48
49protected:
50 float MaxGroggyValue = 100.0f;
51
52 float GroggyDuration = 5.0f;
53
54 float DamageTakenMultiplierInGroggy = 1.2f;
55
56 UPROPERTY(Transient)
58
59 UPROPERTY(Transient)
60 TObjectPtr<UAnimMontage> GroggyMontage;
61
62 FName GroggyEndSectionName;
63
64 UPROPERTY(Transient)
65 TObjectPtr<UAbilitySystemComponent> CachedASC;
66
67 UPROPERTY(Transient)
68 TObjectPtr<UEnemyAttributeSet> CachedEnemyAttributeSet;
69
70private:
71 FTimerHandle GroggyTimerHandle;
72 FDelegateHandle GroggyStateDelegateHandle;
73};
EEnemyGroggyState
Definition EnemyGroggyComponent.h:14
DECLARE_MULTICAST_DELEGATE_OneParam(FOnGroggyStateChanged, EEnemyGroggyState)
Definition EnemyAttributeSet.h:12
Definition EnemyBehaviorComponent.h:13
Definition CharacterControlData.h:142