Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
GA_CombatBase.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GAS/GA/GA_Base.h"
7#include "GA_CombatBase.generated.h"
8
9class UAT_Trace;
10class ATA_Trace;
11class UCombatDataBase;
12
16UCLASS()
17class CK_UE_API UGA_CombatBase : public UGA_Base
18{
19 GENERATED_BODY()
20
21public:
23
24 virtual void OnGiveAbility(const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilitySpec& Spec) override;
25 virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override;
26
27 FORCEINLINE bool GetHitStopEnable() const { return bApplyHitStop; }
28
29protected:
30 virtual void ApplyCombatData();
31
32 UFUNCTION()
33 void SetupHitCheckListeners();
34
35 UFUNCTION()
36 void SetupSingleHitCheckListener();
37
38 UFUNCTION()
39 void OnHitCheckStart(FGameplayEventData Payload);
40
41 UFUNCTION()
42 void OnHitCheckEnd(FGameplayEventData Payload);
43
44 UFUNCTION()
45 void OnSingleHitCheck(FGameplayEventData Payload);
46
47 UFUNCTION()
48 void OnTraceResultCallback(const FGameplayAbilityTargetDataHandle& TargetDataHandle, float CurrentLevel);
49
50 void GetValidTargets(const FGameplayAbilityTargetDataHandle& TargetDataHandle,TArray<AActor*>& OutValidActors) const;
51
52 void ApplyEffectsToTargets(const TArray<AActor*>& TargetActors, float CurrentLevel);
53
54 // 넉백 적용
55 void ApplyKnockbackToTargets(const TArray<AActor*>& TargetActors, AActor* Attacker);
56
57 // 글로벌 히트스탑 적용
58 void ApplyGlobalHitStop();
59
60 FORCEINLINE void SetHitStopEnabled(bool bEnable) { bApplyHitStop = bEnable; }
61
62private:
63 UFUNCTION()
64 void RestoreTimeDilation();
65
66public:
67 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Data")
68 TObjectPtr<UCombatDataBase> CombatData;
69
70protected:
71 UPROPERTY()
72 TObjectPtr<UAT_Trace> ActiveTraceTask;
73
74 UPROPERTY()
76
77 UPROPERTY()
78 TArray<TSubclassOf<UGameplayEffect>> TargetEffectClasses;
79
80 UPROPERTY()
81 FGameplayTag HitCheckStartTag;
82
83 UPROPERTY()
84 FGameplayTag HitCheckEndTag;
85
86 UPROPERTY()
87 TEnumAsByte<ECollisionChannel> TraceChannel;
88
89protected:
90 UPROPERTY()
91 uint8 bApplyKnockback : 1 = false;
92
93 UPROPERTY()
94 float KnockbackStrength = 700.0f;
95
96 UPROPERTY()
97 float KnockbackZComponent = 0.2f;
98
99 UPROPERTY()
100 uint8 bApplyHitStop : 1 = false;
101
102 UPROPERTY()
103 float HitStopDuration = 0.05f;
104
105 UPROPERTY()
107
108private:
109 UPROPERTY()
110 FTimerHandle HitStopTimerHandle;
111
112};
Definition TA_Trace.h:14
Definition AT_Trace.h:16
Definition CombatDataBase.h:15
FGameplayTag HitCheckStartTag
Definition CombatDataBase.h:51
float HitStopDuration
Definition CombatDataBase.h:44
TArray< TSubclassOf< UGameplayEffect > > TargetEffectClasses
Definition CombatDataBase.h:27
FGameplayTag HitCheckEndTag
Definition CombatDataBase.h:54
uint8 bApplyKnockback
Definition CombatDataBase.h:31
float HitStopTimeDilation
Definition CombatDataBase.h:47
float KnockbackZComponent
Definition CombatDataBase.h:37
float KnockbackStrength
Definition CombatDataBase.h:34
uint8 bApplyHitStop
Definition CombatDataBase.h:41
TEnumAsByte< ECollisionChannel > TraceChannel
Definition CombatDataBase.h:21
TSubclassOf< ATA_Trace > HitTraceClass
Definition CombatDataBase.h:24
Definition GA_Base.h:14
Definition GA_CombatBase.h:18
FORCEINLINE bool GetHitStopEnable() const
Definition GA_CombatBase.h:27