Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
GA_Skill_StarFall.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
8#include "GA_Skill_StarFall.generated.h"
9
12class UProjectileLauncherComponent;
13class UTargetSelector;
16
23UCLASS()
24class CK_UE_API UGA_Skill_StarFall : public UGA_SkillBase
25{
26 GENERATED_BODY()
27
28public:
30
31public:
32 virtual bool CanActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayTagContainer* SourceTags = nullptr, const FGameplayTagContainer* TargetTags = nullptr, FGameplayTagContainer* OptionalRelevantTags = nullptr) const override;
33 virtual void ActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData* TriggerEventData) override;
34 virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override;
35
36protected:
37 virtual void ApplyCombatData() override;
38
39protected:
40 UFUNCTION()
41 void OnLauncherProjectileLaunched(const AProjectileBase* Projectile);
42
43 UFUNCTION()
44 void OnLauncherProjectileDeactivated(AProjectileBase* Projectile, EProjectileDeactivationOption Option);
45
46 UFUNCTION()
47 void LaunchSpawnedProjectile();
48
49protected:
50 bool ComputeImpactPoint(const AMainPlayerCharacter* Player, const FTargetSelectionResult& TargetResult, FWeaponRequestImpactResult& OutImpactResult) const;
51 bool ComputeLaunchPath(const AMainPlayerCharacter* Player, const FWeaponRequestImpactResult& ImpactResult, FVector& OutFrom, FVector& OutDirection, FVector& OutImpactPoint) const;
52 bool GetWeaponProjectileClassType(FGameplayTag& OutWeaponTag, const TSubclassOf<AWeaponProjectile>*& OutFoundClass) const;
53 bool ChangeTargetingAndActivateStrike(FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, FGameplayAbilityActivationInfo ActivationInfo, FGameplayTag RequestedWeaponTag);
54 void SubscribeLauncher(UProjectileLauncherComponent* Launcher);
55 void UnsubscribeLauncher();
56
57protected:
58 UPROPERTY(Transient)
59 float MaxImpactDistance = 0.0f;
60
61 UPROPERTY(Transient)
62 float ImpactObstructionOffset = 0.0f;
63
64 UPROPERTY(Transient)
65 float SpawnHeightAboveImpact = 0.0f;
66
67 UPROPERTY(Transient)
68 float SpawnLateralOffset = 0.0f;
69
70 UPROPERTY(Transient)
71 float SpawnForwardOffset = 0.0f;
72
73 UPROPERTY(Transient)
74 float WeaponLaunchDelay = 0.0f;
75
76private:
77 UPROPERTY(Transient)
78 TObjectPtr<UTargetSelector> TargetSelector;
79
80 UPROPERTY(Transient)
81 TObjectPtr<UTickableProjectileActionBase> PullBehavior;
82
83 UPROPERTY(Transient)
84 TWeakObjectPtr<UProjectileLauncherComponent> CachedLauncher;
85
86 UPROPERTY(Transient)
87 TWeakObjectPtr<AProjectileBase> SpawnedProjectile;
88
89 UPROPERTY(Transient)
90 TSubclassOf<AWeaponProjectile> PendingProjectileClass;
91
92 UPROPERTY(Transient)
93 TWeakObjectPtr<UProjectileLauncherComponent> PendingLauncher;
94
95private:
96 bool bLauncherSubscribed = false;
97
98 FVector PendingLaunchFrom = FVector::ZeroVector;
99 FVector PendingLaunchDirection = FVector::ForwardVector;
100
102};
EProjectileDeactivationOption
Definition ProjectileBase.h:40
Definition MainPlayerCharacter.h:39
Definition ProjectileBase.h:81
Definition WeaponProjectile.h:18
Definition GA_SkillBase.h:14
Definition GA_Skill_StarFall.h:25
Definition TargetSelector.h:46
Definition TickableProjectileActionBase.h:16
Definition ProjectilePathSelector.h:51
Definition TargetSelector.h:26
Definition ProjectilePathSelector.h:34