Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
AT_EnemyDashMove.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 "Abilities/Tasks/AbilityTask.h"
7#include "AT_EnemyDashMove.generated.h"
8
9class ACharacter;
10class UBoxComponent;
11class UCapsuleComponent;
12class UCharacterMovementComponent;
13class UCharacterMovementComponentBase;
14
15DECLARE_MULTICAST_DELEGATE_OneParam(FEnemyDashMoveHitSignature, const FHitResult&);
16DECLARE_MULTICAST_DELEGATE(FEnemyDashMoveSignature);
17
21UCLASS()
22class CK_UE_API UAT_EnemyDashMove : public UAbilityTask
23{
24 GENERATED_BODY()
25
26public:
28
29 static UAT_EnemyDashMove* EnemyDashMove(UGameplayAbility* OwningAbility, UBoxComponent* InDashHitBoxComponent, const FVector& InDashDirection, float InDashSpeed, float InMaxDistance, ECollisionChannel InHitTraceChannel);
30
31 virtual void Activate() override;
32 virtual void TickTask(float DeltaTime) override;
33 virtual void OnDestroy(bool bInOwnerFinished) override;
34
35protected:
36 bool SweepDashHit(const FVector& StartLocation, const FVector& EndLocation, FHitResult& OutHitResult) const;
37 void FinishDash();
38 void BroadcastTargetHit(const FHitResult& HitResult);
39
40public:
41 FEnemyDashMoveHitSignature OnTargetHit;
42
43 FEnemyDashMoveSignature OnFinished;
44
45protected:
46 UPROPERTY(Transient)
47 TObjectPtr<ACharacter> OwnerCharacter;
48
49 UPROPERTY(Transient)
50 TObjectPtr<UCharacterMovementComponent> MovementComponent;
51
52 UPROPERTY(Transient)
53 TObjectPtr<UCapsuleComponent> CapsuleComponent;
54
55 UPROPERTY(Transient)
56 TObjectPtr<UBoxComponent> DashHitBoxComponent;
57
58 UPROPERTY(Transient)
59 TObjectPtr<UCharacterMovementComponentBase> RotationComponent;
60
61 FVector DashDirection = FVector::ZeroVector;
62 float DashSpeed = 0.0f;
63 float MaxDistance = 0.0f;
64 float MovedDistance = 0.0f;
65 ECollisionChannel HitTraceChannel = ECC_Pawn;
66 ECollisionResponse CachedPawnCollisionResponse = ECR_Block;
67
68 bool bDashEnded = false;
69};
DECLARE_MULTICAST_DELEGATE(FEnemyDashMoveSignature)
DECLARE_MULTICAST_DELEGATE_OneParam(FEnemyDashMoveHitSignature, const FHitResult &)
Definition AT_EnemyDashMove.h:23
FEnemyDashMoveHitSignature OnTargetHit
Definition AT_EnemyDashMove.h:41
FEnemyDashMoveSignature OnFinished
Definition AT_EnemyDashMove.h:43