182{
184
186 {
187 LOG_ERROR(LogCK,
"MainPlayerCharacter가 존재하지 않습니다.");
188 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
189 return;
190 }
191
192 FGameplayTag RequestedWeaponTag = FGameplayTag::EmptyTag;
193 const TSubclassOf<AWeaponProjectile>* FoundClass = nullptr;
194
196 {
197 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
198 return;
199 }
200
202 {
203 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
false);
204 return;
205 }
206
207 UProjectileLauncherComponent* Launcher =
Player->GetProjectileLauncherComponent();
208
209 if (Launcher == nullptr)
210 {
211 LOG_ERROR(LogCK,
"ProjectileLauncherComponent가 존재하지 않습니다.");
212 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
213 return;
214 }
215
217 {
218 LOG_ERROR(LogCK,
"TargetSelector가 존재하지 않습니다.");
219 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
220 return;
221 }
222
224
226 {
227 LOG_ERROR(LogCK,
"TargetSelector가 타겟을 결정하지 못했습니다.");
228 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
229 return;
230 }
231
233
235 {
236 LOG_ERROR(LogCK,
"무기 낙하 지점을 계산하지 못했습니다.");
237 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
238 return;
239 }
240
241 FVector From = FVector::ZeroVector;
242 FVector Direction = FVector::ZeroVector;
243 FVector ImpactPoint = FVector::ZeroVector;
244
246 {
247 LOG_ERROR(LogCK,
"무기 낙하 경로를 계산하지 못했습니다.");
248 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
249 return;
250 }
251
253
258
260 {
261 const float SpawnAltitude = From.Z - ImpactPoint.Z;
263 PullBehavior->Enter(FInstancedStruct::Make(ActionContext));
264
267 TickTask->ReadyForActivation();
268 }
269
270 if (UAbilityTask_WaitDelay* DelayTask = UAbilityTask_WaitDelay::WaitDelay(
this,
WeaponLaunchDelay))
271 {
272 DelayTask->OnFinish.AddDynamic(this, &ThisClass::LaunchSpawnedProjectile);
273 DelayTask->ReadyForActivation();
275 }
276 else
277 {
278 EndAbility(Handle, ActorInfo, ActivationInfo,
true,
true);
279 }
280}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30
Definition MainPlayerCharacter.h:39
Definition AT_WaitForTickableAction.h:14
static UAT_WaitForTickableAction * CreateTask(UGameplayAbility *OwningAbility, UTickableAction *InAction)
Definition AT_WaitForTickableAction.cpp:15
void ApplyEffectsToSelf(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo)
Definition GA_CombatBase.cpp:265
virtual void ApplyCooldown(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override
Definition GA_SkillBase.cpp:327
bool ComputeLaunchPath(const AMainPlayerCharacter *Player, const FWeaponRequestImpactResult &ImpactResult, FVector &OutFrom, FVector &OutDirection, FVector &OutImpactPoint) const
Definition GA_Skill_StarFall.cpp:347
float WeaponLaunchDelay
Definition GA_Skill_StarFall.h:74
bool ChangeTargetingAndActivateStrike(FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, FGameplayAbilityActivationInfo ActivationInfo, FGameplayTag RequestedWeaponTag)
Definition GA_Skill_StarFall.cpp:139
FVector PendingLaunchFrom
Definition GA_Skill_StarFall.h:98
virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
Definition GA_Skill_StarFall.cpp:314
FVector PendingLaunchDirection
Definition GA_Skill_StarFall.h:99
bool ComputeImpactPoint(const AMainPlayerCharacter *Player, const FTargetSelectionResult &TargetResult, FWeaponRequestImpactResult &OutImpactResult) const
Definition GA_Skill_StarFall.cpp:341
bool GetWeaponProjectileClassType(FGameplayTag &OutWeaponTag, const TSubclassOf< AWeaponProjectile > *&OutFoundClass) const
Definition GA_Skill_StarFall.cpp:92
TWeakObjectPtr< UProjectileLauncherComponent > PendingLauncher
Definition GA_Skill_StarFall.h:93
TSubclassOf< AWeaponProjectile > PendingProjectileClass
Definition GA_Skill_StarFall.h:90
Definition TargetSelector.h:26
Definition WeaponBlackholeAction.h:16
Definition ProjectilePathSelector.h:34