#include <EnemyCharacter.h>
◆ AEnemyCharacter()
| AEnemyCharacter::AEnemyCharacter |
( |
| ) |
|
21{
22 AttributeSet = CreateDefaultSubobject<UEnemyAttributeSet>(TEXT(
"EnemyAttributeSet"));
23 HpBar = CreateDefaultSubobject<UGASWidgetComponent>(TEXT(
"WidgetHpBar"));
24 HpBar->SetupAttachment(GetRootComponent());
25 HpBar->SetRelativeLocation(FVector(0.0f, 0.0f, 180.0f));
26 HpBar->SetDrawSize(FVector2D(150.0f, 15.0f));
27 HpBar->SetWidgetSpace(EWidgetSpace::Screen);
28 HpBar->SetCollisionEnabled(ECollisionEnabled::NoCollision);
29}
TObjectPtr< UEnemyAttributeSet > AttributeSet
Definition EnemyCharacterBase.h:164
TObjectPtr< UGASWidgetComponent > HpBar
Definition EnemyCharacter.h:74
◆ BindCharacterDelegates()
| void AEnemyCharacter::BindCharacterDelegates |
( |
| ) |
|
|
overrideprotectedvirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
83{
84 Super::BindCharacterDelegates();
85
87 {
88 return;
89 }
90
92 {
93 HitStunTagDelegateHandle =
ASC->RegisterGameplayTagEvent(TAG_CHARACTER_STATE_ISHITSTUN, EGameplayTagEventType::NewOrRemoved).AddUObject(
this, &ThisClass::OnHitStunTagChanged);
94 }
95
97 {
99 }
100}
TObjectPtr< UAbilitySystemComponent > ASC
Definition CharacterBase.h:80
FDelegateHandle HitStunTagDelegateHandle
Definition EnemyCharacter.h:80
FDelegateHandle GEAppliedDelegateHandle
Definition EnemyCharacter.h:81
◆ EndPlay()
| void AEnemyCharacter::EndPlay |
( |
const EEndPlayReason::Type |
EndPlayReason | ) |
|
|
overrideprotectedvirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
35{
37 {
38 if (UWorld* World = GetWorld())
39 {
41 }
42 }
43
44 Super::EndPlay(EndPlayReason);
45}
FTimerHandle DeadTimerHandle
Definition EnemyCharacterBase.h:160
◆ ForceReturnToPool()
| void AEnemyCharacter::ForceReturnToPool |
( |
bool |
bIsSpawnedEnemy = false | ) |
|
|
overridevirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
49{
51 {
53 }
54
55 Super::ForceReturnToPool(bIsSpawnedEnemy);
56}
◆ GetAbilityBasedWidgetInterface()
◆ GetAICombatExitRadius()
| FORCEINLINE float AEnemyCharacter::GetAICombatExitRadius |
( |
| ) |
const |
|
inline |
40 {
42 }
float AICombatExitRadius
Definition EnemyCharacter.h:77
◆ GetAICombatRadius()
| FORCEINLINE float AEnemyCharacter::GetAICombatRadius |
( |
| ) |
const |
|
inline |
35 {
37 }
float AICombatRadius
Definition EnemyCharacter.h:76
◆ GetHitReactMontage()
| UAnimMontage * AEnemyCharacter::GetHitReactMontage |
( |
| ) |
const |
|
overrideprotectedvirtual |
ACharacterBase(으)로부터 재구현되었습니다.
144{
146}
const FEnemyExtendedData * EnemyExtendedData
Definition EnemyCharacterBase.h:191
TObjectPtr< UAnimMontage > HitReactMontage
Definition CharacterControlData.h:156
◆ InitializeAttributes()
| void AEnemyCharacter::InitializeAttributes |
( |
| ) |
|
|
overrideprotectedvirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
62{
63 Super::InitializeAttributes();
64
66 {
67 return;
68 }
69
71
72 if (CombatRow == nullptr)
73 {
74 LOG_WARNING(LogCKAttribute,
"Enemy AI Combat Row 없음");
75 return;
76 }
77
80}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
TObjectPtr< UCharacterControlData > CharacterControlData
Definition EnemyCharacterBase.h:167
Definition EnemyAITable.h:12
float Combat_Radius
Definition EnemyAITable.h:17
float Combat_Exit_Radius
Definition EnemyAITable.h:20
TObjectPtr< UDataTable > EnemyAICombatTable
Definition CharacterControlData.h:147
◆ OnAnyGameplayEffectApplied()
| void AEnemyCharacter::OnAnyGameplayEffectApplied |
( |
UAbilitySystemComponent * |
InASC, |
|
|
const FGameplayEffectSpec & |
Spec, |
|
|
FActiveGameplayEffectHandle |
Handle |
|
) |
| |
|
protected |
184{
185 if (!Spec.Def)
186 {
187 return;
188 }
189
191 {
192 return;
193 }
194
195 const FGameplayTagContainer& GrantedTags = Spec.Def->GetGrantedTags();
196 if (GrantedTags.IsEmpty())
197 {
198 return;
199 }
200
201 if (!GrantedTags.HasTag(TAG_CHARACTER_STATE_ISHITSTUN))
202 {
203 return;
204 }
205
207 {
209
211 {
212 FStateTreeEvent Event;
213 Event.Tag = TAG_CHARACTER_STATE_ISSTUN_START;
215 }
216 }
217}
virtual bool IsDead() const
Definition CharacterBase.cpp:65
TObjectPtr< AAIController > CachedAIController
Definition EnemyCharacterBase.h:185
TObjectPtr< UStateTreeAIComponent > CachedStateTreeComp
Definition EnemyCharacterBase.h:188
◆ OnDeath()
| void AEnemyCharacter::OnDeath |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ OnHitReactMontageEnded()
| void AEnemyCharacter::OnHitReactMontageEnded |
( |
UAnimMontage * |
Montage, |
|
|
bool |
bInterrupted |
|
) |
| |
|
overrideprotectedvirtual |
ACharacterBase(으)로부터 재구현되었습니다.
160{
161
162 if (bInterrupted)
163 {
164 return;
165 }
166
168}
void TrySendStunEnd() const
Definition EnemyCharacter.cpp:219
◆ OnHitStunTagChanged()
| void AEnemyCharacter::OnHitStunTagChanged |
( |
const FGameplayTag |
CallbackTag, |
|
|
int32 |
NewCount |
|
) |
| const |
|
protected |
174{
175 LOG_INFO(LogCKAttribute,
"OnHitStunTagChanged: NewCount=%d", NewCount);
176
177 if (NewCount == 0)
178 {
180 }
181}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
◆ OnReturnToPool_Implementation()
| void AEnemyCharacter::OnReturnToPool_Implementation |
( |
| ) |
|
|
overrideprotectedvirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
126{
127 Super::OnReturnToPool_Implementation();
128
130}
FOnSpawnEnemyDead OnSpawnEnemyDead
Definition EnemyCharacterBase.h:159
◆ RotateHitSource()
| void AEnemyCharacter::RotateHitSource |
( |
const FVector & |
HitFromLocation | ) |
|
|
overrideprotectedvirtual |
ACharacterBase(으)로부터 재구현되었습니다.
149{
150 Super::RotateHitSource(HitFromLocation);
151
152
153 if (AController* CharController = GetController())
154 {
155 CharController->SetControlRotation(GetActorRotation());
156 }
157}
◆ TrySendStunEnd()
| void AEnemyCharacter::TrySendStunEnd |
( |
| ) |
const |
|
protected |
220{
221 const bool bHasHitStunTag =
ASC->HasMatchingGameplayTag(TAG_CHARACTER_STATE_ISHITSTUN);
222
223 bool bMontagePlaying = false;
224
226 {
227 UAnimInstance* Anim = GetMesh()->GetAnimInstance();
228 bMontagePlaying = Anim && Anim->Montage_IsPlaying(HitReactMontage);
229 }
230
231 if (bHasHitStunTag || bMontagePlaying)
232 {
233 return;
234 }
235
236
238 {
239 FStateTreeEvent Event;
240 Event.Tag = TAG_CHARACTER_STATE_ISSTUN_END;
242 }
243}
virtual UAnimMontage * GetHitReactMontage() const override
Definition EnemyCharacter.cpp:143
◆ UnbindCharacterDelegates()
| void AEnemyCharacter::UnbindCharacterDelegates |
( |
| ) |
|
|
overrideprotectedvirtual |
AEnemyCharacterBase(으)로부터 재구현되었습니다.
103{
105 {
107 {
110 }
111
113 {
116 }
117 }
118
119 Super::UnbindCharacterDelegates();
120}
◆ AICombatExitRadius
| float AEnemyCharacter::AICombatExitRadius = 0.0f |
|
protected |
◆ AICombatRadius
| float AEnemyCharacter::AICombatRadius = 0.0f |
|
protected |
◆ GEAppliedDelegateHandle
| FDelegateHandle AEnemyCharacter::GEAppliedDelegateHandle |
|
private |
◆ HitStunTagDelegateHandle
| FDelegateHandle AEnemyCharacter::HitStunTagDelegateHandle |
|
private |
◆ HpBar
이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: