Space Plunder
Loading...
Searching...
No Matches
InteractionData.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Data/BaseData.h"
9#include "Engine/DataTable.h"
11#include "InteractionData.generated.h"
12
13
14DECLARE_STATS_GROUP(TEXT("Interaction Stat Group"), STATGROUP_Interaction, STATCAT_Advanced)
15DECLARE_CYCLE_STAT_EXTERN(TEXT("Interaction Component (All Functions)"), STATGROUP_Interaction_Component, STATGROUP_Interaction, INTERACTION_API);
16DECLARE_CYCLE_STAT_EXTERN(TEXT("Character Grabber Component (All Functions)"), STATGROUP_Interaction_CharacterGrabberComponent, STATGROUP_Interaction, INTERACTION_API);
17DECLARE_CYCLE_STAT_EXTERN(TEXT("Aim Assist Component (All Functions)"), STATGROUP_AimAssist_Component, STATGROUP_Interaction, INTERACTION_API);
18
19
20DECLARE_LOG_CATEGORY_CLASS(LogAimData, Display, All);
21
22
23UENUM(BlueprintType)
32
33
34
35USTRUCT(BlueprintType)
36struct FPingData : public FTableRowBase
37{
38 GENERATED_BODY()
39
40 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Ping")
41 FString ID = "";
42 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Ping")
43 // EInteractionType InteractionType = EInteractionType::Default;
44 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Ping")
45 FString Description = "Location";
46 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Ping")
47 UTexture2D* Icon = nullptr;
48
50 {
51 };
52 explicit FPingData(const FRadialSegmentData& RadialSegment)
53 {
54 ID = RadialSegment.Name;
55 Description = RadialSegment.Description;
56 Icon = RadialSegment.Icon;
57 }
58 explicit FPingData(const EAIStimuliType StimuliType)
59 {
60 ID = "StimuliType";
61 Description = UEnum::GetValueAsString(StimuliType);
62 Icon = nullptr;
63 }
64
65};
66
67
71USTRUCT(BlueprintType)
73{
74 GENERATED_BODY()
75
76 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
77 bool bCanMoveOtherPhysicsObjects = true;
78 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
79 float CustomThrowForceMultiplier = 1.0f;
80 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
81 bool bSnappable = false;
82
83 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
84 int32 Size = 1;
85 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
86 bool bCanSnapSameSize = false;
87 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
88 FRotator AutoRotation = FRotator::ZeroRotator;
89 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
90 bool bCanBeRotated = false;
91 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
92 bool bUseAutoRotation = false;
93
94 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category ="Interaction")
95 // TArray<UPrimitiveComponent*> SnapComponents;
96
98
99 // void SetSnapped(const bool bValue) {bSnapped = bValue;};
100 // bool GetIsSnapped() const {return bSnapped;};
101 // bool GetHasSnapComponents() const {return (SnapComponents.IsEmpty() == false);};
102
103 void Reset()
104 {
105 bCanMoveOtherPhysicsObjects = true;
106 CustomThrowForceMultiplier = 1.0f;
107 bSnappable = false;
108 AutoRotation = FRotator::ZeroRotator;
109 bUseAutoRotation = false;
110 GrabComponent = nullptr;
111 // SnapComponents.Empty();
112 Size = 1;
113 // bSnapped = false;
114 }
115protected:
116 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category ="Interaction")
117 UPrimitiveComponent* GrabComponent = nullptr;
118};
119
120
121
125USTRUCT(BlueprintType)
126struct FPickupItemData : public FTableRowBase
127{
128 GENERATED_BODY()
129
130 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
132 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
133 FCharacterInfo PickupInfo;
134 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
135 TSubclassOf<AActor> ActorClass;
136
137 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
138 // FString DisplayName = "Default Name";
139
140 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Category")
141 FGameplayTag CategoryTag = ItemCategoryTags::Default;
142 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Category")
143 // FGameplayTag SubCategoryTag = "Default Name";
144
145 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
146 int32 Weight = 1;
147 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category ="Interaction")
148 int32 Value = 1;
149
151 FPickupItemData(const FString& ItemID, const int32 ItemWeight, const int32 ItemValue):
152 ID(ItemID),Weight(ItemWeight),Value(ItemValue){}
153
155 {
156 return ID == Other.ID;
157 }
158
159 bool IsValid() const
160 {
161 if(ID.IsValid() == false){return false;}
162 if(ID.ID == "DefaultItemID"){return false;}
163 if(Weight < 0){return false;}
164 return true;
165 }
167 {
168 FPickupItemData EmptyItemData;
169 return EmptyItemData;
170 }
171};
172
173
174
175// - DataTable of Pings
176//- Get Ping from DataTable //
177
185USTRUCT(BlueprintType)
187{
188 GENERATED_BODY()
189
190
191 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Aim Assist")
192 FHitResult HitResult;
193 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Aim Assist")
194 float Hits = 0;
195 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Aim Assist")
196 AActor* Target = nullptr;
197
198 class IInteractionInterface* TargetInteraction = nullptr;
199
201 void AddHits(const float Value, const float MaxValue)
202 {
203 Hits += Value;
204 if(Hits >= MaxValue)
205 {
206 Hits = MaxValue;
207 }
208 if(Hits <= 0)
209 {
210 Hits = 0;
211 }
212 }
214 void AddHits(const float Value)
215 {
216 Hits += Value;
217 if(Hits <= 0)
218 {
219 Hits = 0;
220 }
221 }
222
224 {
225 if(TargetInteraction == nullptr)
226 {
227 UE_LOG(LogAimData, Error, TEXT("Invalid Interaction Interface on FAimAssistHit Struct"));
228 if(Target != nullptr)
229 {
230 return Target->GetActorLocation();
231 }
232 return FVector::ZeroVector;
233 }
234 return TargetInteraction->GetInteractionLocation();
235 }
236
237 FVector GetDirectionToTarget(const FVector& Location) const
238 {
239 return (GetInteractionLocation() - Location).GetSafeNormal();
240 }
241
242 bool operator==(const FAimAssistHit& Other) const
243 {
244 bool bEqual = true;
245 if(Target != Other.Target)
246 {
247 bEqual = false;
248 }
249 return bEqual;
250 }
251 bool IsValid() const
252 {
253 return Target != nullptr;
254 }
255};
256
257
262USTRUCT(BlueprintType)
264{
265 GENERATED_BODY()
266
267 //- Aim Assist //
268 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist")
269 bool bAimAssistEnabled = true;
270 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist")
271 bool bAimAssistOnlyWhenAimed = true;
272 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist")
273 bool bAimAssistVerticalAxis = false;
275 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Aim Assist|Trace")
276 float Radius = 125.0f;
278 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Aim Assist|Trace")
279 float TraceLength = 1000.0f;
281 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Aim Assist|Trace")
282 float TraceAimLengthMultiplier = 2.0f;
283 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Aim Assist|Trace")
284 float TraceAimRadiusMultiplier = 0.5f;
285
286 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
287 bool bUseDistance = true;
288 //- How close to the target until you stop getting multiplier //
289 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
290 float AssistDistanceClose = 250.0f;
291 //- How far from the target until you stop getting any Assist //
292 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
293 float AssistDistanceFar = 3000.0f;
294 //- How much the number will be clamped //
295 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
296 float AssistDistanceClampAmount = 0.65f;
297 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
298 float AutoIgnoreDistance = 100.0f;
299 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance")
300 float AutoIgnoreDistanceDecrease = 5.0f;
301
302
303 /* The Projected Distance from the Reticle to the Target */
304 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance 2D")
305 bool bUseDistance2D = true;
306 /* The Closest Distance 2D */
307 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance 2D")
308 float AssistDistance2DClose = 0.02f;
309 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance 2D")
310 float AssistDistance2DFar = 0.1f;
311 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance 2D")
312 float AssistDistance2DClampMin = 1.0f;
313 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Distance 2D")
314 float AssistDistance2DClampMax = 0.0f;
315
316 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
317 bool bOnlyAssistWhenCameraAxisMoving = true;
318
319 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
320 bool bUseCameraAxis = true;
321 // UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
322 // bool bUseCameraAxisMax = true;
323
324 //- How Long after we stop our Axis input do we stop //
325 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
326 float CameraStopTime = 0.5f;
327 //- The Highest Axis Amount (Combined) //
328 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
329 float AssistAxisTotal = 1.5f;
331 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
332 float AssistAxisClampMin = 0.1f;
334 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
335 float AssistAxisClampMax = 1.0f;
336
337
338
339 //- How much The Axis Total is multiplier by which is then removed from the Hits //
340 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
341 float AssistAxisRemovalMultiplier = 5.5f;
342 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
343 float MinAimAngle = 0.2f;
344 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis")
345 float MaxAimAngle = 1.0f;
346
347 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis|Distance 2D")
348 bool bSlowCameraAxisByDistance2D = true;
350 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis|Distance 2D")
351 float AssistAxisDistance2DClose = 0.02f;
353 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis|Distance 2D")
354 float AssistAxisDistance2DFar = 0.5f;
356 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis|Distance 2D")
357 float AssistAxisDistance2DClampMin = 0.4f;
359 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Axis|Distance 2D")
360 float AssistAxisDistance2DClampMax = 1.0f;
361
362
363 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Speed")
364 bool bUseSpeed = true;
365 //- The speed before we start Multiplying //
366 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Speed")
367 float AssistSpeedMin = 100.0f;
368 //- The speed at what we hit Full Assist //
369 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Speed")
370 float AssistSpeedMax = 200.0f;
371 //- 0 = No assist when still //
372 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Speed")
373 float AssistSpeedClampMin = 0.0f;
374 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Speed")
375 float AssistSpeedClampMax = 1.0f;
376
377
378 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist")
379 float OverallMultiplier = 0.05f;
381 // UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist")
382 // float OverallMultiplierNormalizedClampMax = 0.05f;
383
384 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Aim")
385 bool bUseAimMultiplier = true;
386 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Aim")
387 float AimMultiplier = 2.0f;
388
389 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Rotation")
390 bool bUseAddInput = true;
391
392 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Rotation")
393 float InputYawCameraDirectionOffset = 0.1f;
394 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Rotation")
395 float InputPitchCameraDirectionOffset = 0.1f;
396
397 /* Adjust this value to control the strength of the aim assist */
398 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Rotation")
399 float InputPitchLerpFactor = 0.1f;
400 /* Adjust this value to control the strength of the aim assist */
401 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Rotation")
402 float InputYawLerpFactor = 0.1f;
403
404 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
405 float TargetHitsMax = 500.0f;
406 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
407 float TargetHitsMin = 5.0f; //formally 25 in Player
408 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
409 float TargetHitsMaxClamp = 1.0f;
410 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
411 float TargetHitsMinClamp = 0.0f;
412
414 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
415 float TargetNotHitDecreaseAmount = 5.0f;
416 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Aim Assist|Target")
417 bool bOneHitPerTarget = false;
418
419 FAimAssist SetLevel(const int32 Level)
420 {
421 //More Assist
422 OverallMultiplier = DefaultOverallMultiplier * Level;
423 Radius = DefaultRadius * (0.1f * Level);
424 AssistAxisDistance2DClampMin = DefaultAxisDistance2DClampMin / Level;
425 bUseDistance = true;
426 bUseSpeed = true;
427 bOnlyAssistWhenCameraAxisMoving = false;
428 bUseAddInput = true;
429 TraceLength = DefaultTraceLength;
430 bAimAssistOnlyWhenAimed = false;
431 if(Level < 4)
432 {
433
434 }
435 if(Level < 3)
436 {
437 bUseSpeed = false;
438 }
439 if(Level < 2)
440 {
441 bAimAssistOnlyWhenAimed = true;
442 bOnlyAssistWhenCameraAxisMoving = true;
443 bUseDistance = false;
444 }
445 //Less Assist
446 if(Level < 1)
447 {
448 bUseAddInput = false;
449 TraceLength = 0.0f;
450 }
451 return *this;
452 }
453 float GetDefaultOverallMultiplier() const{return DefaultOverallMultiplier;}
454
456 {
457 DefaultOverallMultiplier = OverallMultiplier;
458 DefaultRadius = Radius;
459 DefaultTraceLength = TraceLength;
460 DefaultAxisDistance2DClampMin = AssistAxisDistance2DClampMin;
461 }
462
463private:
468
469public:
470 // static FAimAssist Default(const EDifficultyLevel DifficultyLevel)
471 // {
472 // FAimAssist Assist;
473 // switch (DifficultyLevel)
474 // {
475 // case EDifficultyLevel::Assisted:
476 // Assist.bAimAssistEnabled = true;
477 // Assist.bAimAssistVerticalAxis = true;
478 // Assist.AssistDistanceClose = 250.f;
479 // Assist.AssistDistanceFar = 5000.0f;
480 // Assist.AssistDistanceClampAmount = 1.0f;
481 // Assist.CameraStopTime = 0.01f;
482 // Assist.AssistAxisTotal = 1.5f;
483 // // Assist.AssistAxisClamp = 0.0f;
484 // Assist.AssistSpeedMin = 0.0f;
485 // Assist.AssistSpeedMax = 100.0f;
486 // Assist.AssistSpeedClampMin = 0.5f;
487 // break;
488 // case EDifficultyLevel::Easy:
489 // Assist.bAimAssistEnabled = true;
490 // Assist.bAimAssistVerticalAxis = true;
491 // Assist.AssistDistanceClose = 250.f;
492 // Assist.AssistDistanceFar = 5000.0f;
493 // Assist.AssistDistanceClampAmount = 0.8f;
494 // Assist.CameraStopTime = 0.025f;
495 // Assist.AssistAxisTotal = 1.5f;
496 // // Assist.AssistAxisClamp = 1.0f;
497 // Assist.AssistSpeedMin = 100.0f;
498 // Assist.AssistSpeedMax = 200.0f;
499 // Assist.AssistSpeedClampMin = 0.1f;
500 // break;
501 // default:
502 // case EDifficultyLevel::Normal:
503 // Assist.bAimAssistEnabled = true;
504 // Assist.bAimAssistVerticalAxis = false;
505 // Assist.AssistDistanceClose = 250.f;
506 // Assist.AssistDistanceFar = 5000.0f;
507 // Assist.AssistDistanceClampAmount = 0.65f;
508 // Assist.CameraStopTime = 0.15f;
509 // Assist.AssistAxisTotal = 1.5f;
510 // // Assist.AssistAxisClamp = 2.0f;
511 // Assist.AssistSpeedMin = 200.0f;
512 // Assist.AssistSpeedMax = 400.0f;
513 // Assist.AssistSpeedClampMin = 0.0f;
514 // break;
515 // case EDifficultyLevel::Hard:
516 // Assist.bAimAssistEnabled = true;
517 // Assist.bAimAssistVerticalAxis = false;
518 // Assist.AssistDistanceClose = 250.f;
519 // Assist.AssistDistanceFar = 5000.0f;
520 // Assist.AssistDistanceClampAmount = 0.1f;
521 // Assist.CameraStopTime = 0.15f;
522 // Assist.AssistAxisTotal = 1.5f;
523 // // Assist.AssistAxisClamp = 2.0f;
524 // Assist.AssistSpeedMin = 200.0f;
525 // Assist.AssistSpeedMax = 400.0f;
526 // Assist.AssistSpeedClampMin = 0.0f;
527 // break;
528 // case EDifficultyLevel::Expert:
529 // Assist.bAimAssistEnabled = false;
530 // Assist.bAimAssistVerticalAxis = false;
531 // Assist.AssistDistanceClose = 250.f;
532 // Assist.AssistDistanceFar = 5000.0f;
533 // Assist.AssistDistanceClampAmount = 0.05f;
534 // Assist.CameraStopTime = 0.25f;
535 // Assist.AssistAxisTotal = 1.5f;
536 // // Assist.AssistAxisClamp = 2.0f;
537 // Assist.AssistSpeedMin = 300.0f;
538 // Assist.AssistSpeedMax = 400.0f;
539 // Assist.AssistSpeedClampMin = 0.0f;
540 // break;
541 // case EDifficultyLevel::Master:
542 // Assist.bAimAssistEnabled = false;
543 // Assist.bAimAssistVerticalAxis = false;
544 // Assist.AssistDistanceClose = 250.f;
545 // Assist.AssistDistanceFar = 5000.0f;
546 // Assist.AssistDistanceClampAmount = 0.01f;
547 // Assist.CameraStopTime = 0.6f;
548 // Assist.AssistAxisTotal = 1.5f;
549 // // Assist.AssistAxisClamp = 2.0f;
550 // Assist.AssistSpeedMin = 350.0f;
551 // Assist.AssistSpeedMax = 400.0f;
552 // Assist.AssistSpeedClampMin = 0.0f;
553 // break;
554 // }
555 // return Assist;
556 // }
557
558 friend FArchive& operator<<(FArchive& Ar, FAimAssist& AssistData)
559 {
560 Ar << AssistData.bAimAssistEnabled;
561 Ar << AssistData.bAimAssistOnlyWhenAimed;
562 Ar << AssistData.bAimAssistVerticalAxis;
563 Ar << AssistData.Radius;
564 Ar << AssistData.TraceLength;
565 Ar << AssistData.TraceAimLengthMultiplier;
566 Ar << AssistData.TraceAimRadiusMultiplier;
567 Ar << AssistData.bUseDistance;
568 Ar << AssistData.AssistDistanceClose;
569 Ar << AssistData.AssistDistanceFar;
570 Ar << AssistData.AssistDistanceClampAmount;
571 Ar << AssistData.AutoIgnoreDistance;
572 Ar << AssistData.AutoIgnoreDistanceDecrease;
573 Ar << AssistData.bUseDistance2D;
574 Ar << AssistData.AssistDistance2DClose;
575 Ar << AssistData.AssistDistance2DFar;
576 Ar << AssistData.AssistDistance2DClampMin;
577 Ar << AssistData.AssistDistance2DClampMax;
578 Ar << AssistData.bOnlyAssistWhenCameraAxisMoving;
579 Ar << AssistData.bUseCameraAxis;
580 Ar << AssistData.CameraStopTime;
581 Ar << AssistData.AssistAxisTotal;
582 Ar << AssistData.AssistAxisClampMin;
583 Ar << AssistData.AssistAxisClampMax;
584 Ar << AssistData.AssistAxisRemovalMultiplier;
585 Ar << AssistData.MinAimAngle;
586 Ar << AssistData.MaxAimAngle;
587 Ar << AssistData.bSlowCameraAxisByDistance2D;
588 Ar << AssistData.AssistAxisDistance2DClose;
589 Ar << AssistData.AssistAxisDistance2DFar;
590 Ar << AssistData.AssistAxisDistance2DClampMin;
591 Ar << AssistData.AssistAxisDistance2DClampMax;
592 Ar << AssistData.bUseSpeed;
593 Ar << AssistData.AssistSpeedMin;
594 Ar << AssistData.AssistSpeedMax;
595 Ar << AssistData.AssistSpeedClampMin;
596 Ar << AssistData.AssistSpeedClampMax;
597
598 Ar << AssistData.OverallMultiplier;
599 Ar << AssistData.bUseAimMultiplier;
600 Ar << AssistData.AimMultiplier;
601 Ar << AssistData.bUseAddInput;
602 Ar << AssistData.InputYawCameraDirectionOffset;
603 Ar << AssistData.InputPitchCameraDirectionOffset;
604
605 Ar << AssistData.InputPitchLerpFactor;
606 Ar << AssistData.InputYawLerpFactor;
607 Ar << AssistData.TargetHitsMax;
608 Ar << AssistData.TargetHitsMin;
609 Ar << AssistData.TargetHitsMaxClamp;
610 Ar << AssistData.TargetHitsMinClamp;
611
612 Ar << AssistData.TargetNotHitDecreaseAmount;
613 Ar << AssistData.bOneHitPerTarget;
614
615 return Ar;
616 }
617};
EAIStimuliType
Definition BaseData.h:198
DECLARE_LOG_CATEGORY_CLASS(LogAimData, Display, All)
EMiniGameStatus
Definition InteractionData.h:25
@ Ready
Definition InteractionData.h:26
@ Failed
Definition InteractionData.h:29
@ InProgress
Definition InteractionData.h:27
@ Passed
Definition InteractionData.h:28
@ Complete
Definition InteractionData.h:30
DECLARE_CYCLE_STAT_EXTERN(TEXT("Interaction Component (All Functions)"), STATGROUP_Interaction_Component, STATGROUP_Interaction, INTERACTION_API)
DECLARE_STATS_GROUP(TEXT("LineOfSight Stat Group"), STATGROUP_LineOfSight, STATCAT_Advanced)
Definition InteractionInterface.h:18
Definition Interaction.Build.cs:6
Definition InteractionGameplayTags.cpp:19
Represents an aim assist hit.
Definition InteractionData.h:187
FVector GetDirectionToTarget(const FVector &Location) const
Definition InteractionData.h:237
void AddHits(const float Value)
Definition InteractionData.h:214
bool IsValid() const
Definition InteractionData.h:251
bool operator==(const FAimAssistHit &Other) const
Definition InteractionData.h:242
FVector GetInteractionLocation() const
Definition InteractionData.h:223
Structure representing the parameters for aim assist in a game.
Definition InteractionData.h:264
bool bAimAssistVerticalAxis
Definition InteractionData.h:273
float TraceAimRadiusMultiplier
Definition InteractionData.h:284
float AssistDistance2DFar
Definition InteractionData.h:310
float DefaultRadius
Definition InteractionData.h:465
float AssistDistanceClose
Definition InteractionData.h:290
float AutoIgnoreDistanceDecrease
Definition InteractionData.h:300
float InputYawLerpFactor
Definition InteractionData.h:402
bool bOneHitPerTarget
Definition InteractionData.h:417
float AssistAxisDistance2DClampMax
Definition InteractionData.h:360
float AimMultiplier
Definition InteractionData.h:387
float AssistAxisDistance2DClampMin
Definition InteractionData.h:357
float TraceAimLengthMultiplier
Definition InteractionData.h:282
float AssistAxisClampMin
Definition InteractionData.h:332
float AssistAxisRemovalMultiplier
Definition InteractionData.h:341
float AssistAxisTotal
Definition InteractionData.h:329
bool bAimAssistOnlyWhenAimed
Definition InteractionData.h:271
float AssistDistance2DClose
Definition InteractionData.h:308
bool bAimAssistEnabled
Definition InteractionData.h:269
float AssistSpeedClampMax
Definition InteractionData.h:375
bool bUseDistance
Definition InteractionData.h:287
float OverallMultiplier
Definition InteractionData.h:379
float AssistDistance2DClampMin
Definition InteractionData.h:312
float AssistDistanceClampAmount
Definition InteractionData.h:296
bool bOnlyAssistWhenCameraAxisMoving
Definition InteractionData.h:317
float AssistAxisDistance2DFar
Definition InteractionData.h:354
float GetDefaultOverallMultiplier() const
Definition InteractionData.h:453
float AssistSpeedMax
Definition InteractionData.h:370
float MaxAimAngle
Definition InteractionData.h:345
bool bUseSpeed
Definition InteractionData.h:364
FAimAssist()
Definition InteractionData.h:455
float AssistAxisClampMax
Definition InteractionData.h:335
bool bUseAddInput
Definition InteractionData.h:390
friend FArchive & operator<<(FArchive &Ar, FAimAssist &AssistData)
Definition InteractionData.h:558
bool bUseDistance2D
Definition InteractionData.h:305
float TargetHitsMaxClamp
Definition InteractionData.h:409
float CameraStopTime
Definition InteractionData.h:326
float AssistSpeedClampMin
Definition InteractionData.h:373
float TargetHitsMax
Definition InteractionData.h:405
float TargetHitsMin
Definition InteractionData.h:407
float DefaultAxisDistance2DClampMin
Definition InteractionData.h:467
float MinAimAngle
Definition InteractionData.h:343
float DefaultOverallMultiplier
Definition InteractionData.h:464
float DefaultTraceLength
Definition InteractionData.h:466
bool bUseAimMultiplier
Definition InteractionData.h:385
float Radius
Definition InteractionData.h:276
float TargetNotHitDecreaseAmount
Definition InteractionData.h:415
bool bSlowCameraAxisByDistance2D
Definition InteractionData.h:348
float AutoIgnoreDistance
Definition InteractionData.h:298
float InputYawCameraDirectionOffset
Definition InteractionData.h:393
bool bUseCameraAxis
Definition InteractionData.h:320
float InputPitchLerpFactor
Definition InteractionData.h:399
float TargetHitsMinClamp
Definition InteractionData.h:411
float AssistAxisDistance2DClose
Definition InteractionData.h:351
float TraceLength
Definition InteractionData.h:279
float AssistDistanceFar
Definition InteractionData.h:293
float InputPitchCameraDirectionOffset
Definition InteractionData.h:395
float AssistSpeedMin
Definition InteractionData.h:367
float AssistDistance2DClampMax
Definition InteractionData.h:314
Definition BaseData.h:310
Definition InteractionData.h:73
void Reset()
Definition InteractionData.h:103
Definition InteractionData.h:127
FPickupItemData(const FString &ItemID, const int32 ItemWeight, const int32 ItemValue)
Definition InteractionData.h:151
bool operator==(const FPickupItemData &Other) const
Definition InteractionData.h:154
static FPickupItemData Empty()
Definition InteractionData.h:166
bool IsValid() const
Definition InteractionData.h:159
Definition InteractionData.h:37
FPingData(const EAIStimuliType StimuliType)
Definition InteractionData.h:58
FPingData(const FRadialSegmentData &RadialSegment)
Definition InteractionData.h:52
Definition RadialWheelData.h:72
UTexture2D * Icon
Definition RadialWheelData.h:82
FString Description
Definition RadialWheelData.h:80
FString Name
Definition RadialWheelData.h:78
Definition BaseData.h:253