22 FWeaponBlackholeActionContext(AActor* InAvatar,
AProjectileBase* InProjectile,
const FVector& InImpactPoint,
const float InSpawnAltitude) : Avatar(InAvatar), Projectile(InProjectile), ImpactPoint(InImpactPoint), SpawnAltitude(InSpawnAltitude) { }
31 return Projectile.Get();
45 UPROPERTY(Transient, BlueprintReadOnly, Category =
"WeaponPull")
46 TObjectPtr<AActor> Avatar =
nullptr;
48 UPROPERTY(Transient, BlueprintReadOnly, Category = "WeaponPull")
51 UPROPERTY(Transient, BlueprintReadOnly, Category = "WeaponPull")
52 FVector ImpactPoint = FVector::ZeroVector;
54 UPROPERTY(Transient, BlueprintReadOnly, Category = "WeaponPull")
55 float SpawnAltitude = 0.0f;
62UCLASS(EditInlineNew, DefaultToInstanced, BlueprintType, Blueprintable)
68 virtual void Enter(
const FInstancedStruct& InContext)
override;
70 virtual void Update(
float DeltaTime)
override;
71 virtual void Exit()
override;
74 void PerformPullAtLocation(
const FVector& Center,
float Radius,
float DeltaTime);
78 void OnProjectileCollided(AActor* SelfActor, AActor* OtherActor, FVector NormalImpulse,
const FHitResult& Hit);
81 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category =
"WeaponPull")
82 TObjectPtr<UCurveFloat> PullRadiusCurve =
nullptr;
84 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "WeaponPull", meta = (ClampMin = "0.0"))
85 float DefaultPullRadius = 400.0f;
87 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "WeaponPull")
88 float PullStrength = 900.0f;
90 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "WeaponPull", meta = (ClampMin = "0.0"))
91 float PullInterpSpeed = 3.0f;
93 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "WeaponPull")
94 TEnumAsByte<ECollisionChannel> PullOverlapChannel = ECC_Pawn;
97 FVector CachedImpactPoint = FVector::ZeroVector;
98 FVector CachedGroundPosition = FVector::ZeroVector;
99 float CachedSpawnAltitude = 0.0f;
101 TWeakObjectPtr<UWorld> CachedWorld;
102 TWeakObjectPtr<AActor> CachedAvatar;
Definition TickableAction.h:13
Definition WeaponBlackholeAction.h:16
FORCEINLINE AProjectileBase * GetProjectile() const
Definition WeaponBlackholeAction.h:29
FORCEINLINE AActor * GetAvatar() const
Definition WeaponBlackholeAction.h:24
FORCEINLINE float GetSpawnAltitude() const
Definition WeaponBlackholeAction.h:39
FWeaponBlackholeActionContext(AActor *InAvatar, AProjectileBase *InProjectile, const FVector &InImpactPoint, const float InSpawnAltitude)
Definition WeaponBlackholeAction.h:22
FWeaponBlackholeActionContext()=default
FORCEINLINE const FVector & GetImpactPoint() const
Definition WeaponBlackholeAction.h:34