Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
MultiHitProfile.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "Engine/DataAsset.h"
6#include "MultiHitProfile.generated.h"
7
8
9UENUM()
10enum class EMultiHitImpactPolicy : uint8
11{
12 None,
15};
16
17
21UCLASS()
22class CK_UE_API UDA_MultiHitProfile : public UDataAsset
23{
24 GENERATED_BODY()
25
26public:
27 FORCEINLINE float GetNormalDamageRatio() const { return NormalDamageRatio; }
28 FORCEINLINE float GetFinisherDamageRatio() const { return FinisherDamageRatio; }
29 FORCEINLINE float GetPerTargetCooldown() const { return PerTargetCooldown; }
30 FORCEINLINE bool ShouldCauseHitStop(const bool bIsFinisher) const
31 {
32 return HitStopPolicy == EMultiHitImpactPolicy::EveryHit
33 || (HitStopPolicy == EMultiHitImpactPolicy::FinisherOnly && bIsFinisher);
34 }
35 FORCEINLINE bool ShouldCauseKnockBack(const bool bIsFinisher) const
36 {
37 return KnockbackPolicy == EMultiHitImpactPolicy::EveryHit
38 || (KnockbackPolicy == EMultiHitImpactPolicy::FinisherOnly && bIsFinisher);
39 }
40
41protected:
42 // 일반 적중 비율. 다단의 마지막 타가 아닌 모든 적중에 적용.
43 UPROPERTY(EditAnywhere, Category = "MultiHit", meta = (ToolTip = "마지막 타격을 제외한 모든 다단 타격에 적용할 피해 배율입니다. 1.0은 100%입니다.", ClampMin = "0.0"))
44 float NormalDamageRatio = 0.25f;
45
46 // 마지막 타(Finisher) 비율.
47 UPROPERTY(EditAnywhere, Category = "MultiHit", meta = (ToolTip = "대상별 최대 타격 횟수에 도달한 마지막 타격에 적용할 피해 배율입니다. 1.0은 100%입니다.", ClampMin = "0.0"))
48 float FinisherDamageRatio = 1.5f;
49
50 // 같은 타겟에 다시 맞히기까지 최소 대기 시간(초). 0이면 매 틱 가능.
51 UPROPERTY(EditAnywhere, Category = "MultiHit", meta = (ToolTip = "동일 대상을 다시 타격하기까지 필요한 최소 시간입니다.", ClampMin = "0.0", Units = s))
52 float PerTargetCooldown = 0.05f;
53
54 // HitStop 적용 시점.
55 UPROPERTY(EditAnywhere, Category = "MultiHit|Impact", meta = (ToolTip = "다단 타격 중 히트 스톱을 적용할 타격 시점을 선택합니다."))
57
58 // 넉백 적용 시점. CombatData에 KnockbackData가 있어야 실제로 적용된다.
59 UPROPERTY(EditAnywhere, Category = "MultiHit|Impact", meta = (ToolTip = "다단 타격 중 넉백을 적용할 시점을 선택합니다. CombatData에 넉백 설정이 있어야 실제로 적용됩니다."))
61};
EMultiHitImpactPolicy
Definition MultiHitProfile.h:11
Definition MultiHitProfile.h:23
FORCEINLINE float GetNormalDamageRatio() const
Definition MultiHitProfile.h:27
FORCEINLINE float GetFinisherDamageRatio() const
Definition MultiHitProfile.h:28
FORCEINLINE float GetPerTargetCooldown() const
Definition MultiHitProfile.h:29
FORCEINLINE bool ShouldCauseHitStop(const bool bIsFinisher) const
Definition MultiHitProfile.h:30
FORCEINLINE bool ShouldCauseKnockBack(const bool bIsFinisher) const
Definition MultiHitProfile.h:35