85{
86 Super::TickTask(DeltaTime);
87
89 {
90 return;
91 }
92
94 {
96 return;
97 }
98
100 if (RemainingDistance <= KINDA_SMALL_NUMBER)
101 {
103 return;
104 }
105
108 const float StepDistance = FMath::Min(
DashSpeed * DeltaTime, RemainingDistance);
110
111
112 FHitResult DashHitResult;
113 const bool bWillHitTarget =
SweepDashHit(SweepStartLocation, SweepStartLocation + Delta, DashHitResult);
114
115
116 const float MoveFraction = bWillHitTarget ? FMath::Clamp(DashHitResult.Time, 0.0f, 1.0f) : 1.0f;
117 const FVector AppliedDelta = Delta * MoveFraction;
118
119 FHitResult MoveHitResult;
122
124 MovedDistance += FVector::Dist2D(StartLocation, EndLocation);
125
126
127 if (MoveHitResult.bBlockingHit)
128 {
130 return;
131 }
132
133
134 if (bWillHitTarget)
135 {
137 return;
138 }
139
141 {
143 }
144}
bool SweepDashHit(const FVector &StartLocation, const FVector &EndLocation, FHitResult &OutHitResult) const
Definition AT_EnemyDashMove.cpp:169
void BroadcastTargetHit(const FHitResult &HitResult)
Definition AT_EnemyDashMove.cpp:222
float MovedDistance
Definition AT_EnemyDashMove.h:64