5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
7#include "TelekenesisActor.generated.h"
11class UTelekenesisComponent;
23 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
24 float ProjectileFollowSpeed = 10.0f;
26 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
27 float PlayerPullSpeed = 10.0f;
29 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
30 FVector PlayerPullOffset = FVector(300.0f, 100.0f, 0.0f);
32 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
33 float VelocityOffsetMultiplier = 20.0f;
35 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
36 bool bHideSelectedActor = false;
38 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
39 USoundBase* PullSound =
nullptr;
41 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
42 USoundBase* PushSound =
nullptr;
44 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
45 UParticleSystem* DebrisEffect =
nullptr;
47 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
48 UParticleSystem* SecondaryEffect =
nullptr;
50 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
51 UParticleSystem* DestroyedEffect =
nullptr;
53 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
54 UParticleSystem* TakeDamageEffect =
nullptr;
56 UFUNCTION(BlueprintPure)
57 bool HasTarget()
const {
return Target.IsValid(); }
58 UFUNCTION(BlueprintCallable)
59 virtual void SetCollisionComponent(UPrimitiveComponent*
const InCollisionComponent);
61 UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName =
"OnActorContextInfo", ScriptName =
"OnActorContextInfo"))
62 void K2_OnActorContextInfo(AActor* Actor, UPrimitiveComponent* Component, int32 InstanceId);
63 UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName = "OnImpact", ScriptName = "OnImpact"))
64 void K2_OnImpact(const FHitResult&
Hit);
65 UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName = "OnFollowProjectile", ScriptName = "OnFollowProjectile"))
67 UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName = "OnDie", ScriptName = "OnDie"))
70 virtual
void BeginPlay() override;
71 virtual
void OnActorContextInfo(AActor* Actor, UPrimitiveComponent* Component, int32 InstanceId = INDEX_NONE);
72 virtual
void PullToPlayer(ACharacter* const Character);
74 virtual
void Tick(
float DeltaTime) override;
75 virtual
float TakeDamage(
float Damage, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override;
77 virtual
void SetReleased();
78 virtual
void ReleaseTimeout();
81 virtual
void OnImpact(const FHitResult&
Hit);
83 virtual UTelekenesisComponent* GetOwningComponent() const;
87 TWeakObjectPtr<ACharacter> PlayerTarget =
nullptr;
88 TWeakObjectPtr<AActor> SelectedActor =
nullptr;
89 TWeakObjectPtr<UPrimitiveComponent> SelectedComponent =
nullptr;
90 UPrimitiveComponent* CollisionComponent =
nullptr;
91 bool bHasTarget = false;
92 bool bReleased = false;
Definition: Projectile.h:18
Definition: TelekenesisActor.h:16