5#include "CoreMinimal.h"
7#include "DeployableControlledRocket.generated.h"
9class UStaticMeshComponent;
14 GENERATED_UCLASS_BODY()
17 virtual void DeployComplete()
override;
18 virtual void Died(
float Damage, FDamageEvent
const& DamageEvent, AController* EventInstigator, AActor* DamageCauser, APlayerState* InstigatorPlayerState)
override;
21 virtual void BeginPlay()
override;
22 virtual void Tick(
float DeltaTime)
override;
23 virtual void UpdateDeployableTransform(
float DeltaTime)
override;
24 virtual void QueryAndInformTargets();
25 virtual void TriggerExplosion(
const FVector& ExplosionLocation);
27 virtual void StopControlling()
override;
28 virtual void Fire()
override;
31 void Server_Reliable_Fire();
34 virtual
void OnRocketHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult&
Hit);
36 UFUNCTION(BlueprintImplementableEvent, Category = "Rocket|Explosion")
37 void K2_PlayExplosionEffects(const FVector& ExplosionLocation);
39 UFUNCTION(BlueprintImplementableEvent, Category = "Rocket|
Widget")
40 void SetWarningState(
bool bNewState);
42 UFUNCTION(NetMulticast, Unreliable)
43 virtual
void Multicast_Explosion_PlayExplosionEffects_Unreliable(const FVector& ExplosionLocation);
47 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rocket")
48 float DistanceCheckForWarningTargets = 20000.f;
50 UPROPERTY(EditDefaultsOnly, Category = "Rocket")
51 float RadiusForWarningTargets = 2000.f;
53 UPROPERTY(EditDefaultsOnly, Category = "Rocket")
54 float TargetWarningMinDot = 0.93f;
56 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement")
57 bool bApplyLaunchVelocityAfterDeploy = false;
59 UPROPERTY(EditDefaultsOnly, Category ="Rocket|
Movement")
60 FVector LaunchVelocity = FVector(1000,0,0);
62 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement")
63 float MaxSpeed = 6000.f;
65 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement")
66 float SpeedIncreasePerSecond = 1000;
68 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement")
69 float LocationInterpolationSpeed = 2.f;
71 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement")
72 float RotationInterpolationSpeed = 2.f;
75 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement|Rotation")
76 float YawBreakingRate = 1.f;
78 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement|Rotation")
79 float PitchAccelerationRate = 1.f;
81 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement|Rotation")
82 FVector2D MinMaxYawRotationAcceleration = FVector2D(-2.f, 2.f);
84 UPROPERTY(EditDefaultsOnly, Category = "Rocket|
Movement|Rotation")
85 FRotator RocketMeshRotationOffset = FRotator::ZeroRotator;
88 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
89 TSubclassOf<UDamageType> ExplosionDamageType;
91 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
92 float ImpactDepenetrationAmount = 100.f;
93 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
94 bool bUseWeaponDamageAsImpactdamage = true;
96 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
97 float ExplosionRadius = 500.f;
99 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
100 float ExplosionDamageMin = 5000.f;
102 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
103 float ExplosionDamageMax = 5000.f;
105 UPROPERTY(EditDefaultsOnly, Category = "Rocket|Explosion")
106 float ExplosionDamageFallOff = 0.8f;
108 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rocket|Explosion")
109 float MaxLifetimeForDamageMultiplication = 5.f;
111 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rocket|Explosion")
112 UCurveFloat* LifetimeBasedDamageMultiplierCurve =
nullptr;
114 FVector PreviousRocketLocation = FVector::ZeroVector;
115 FRotator PreviousRocketRotation = FRotator::ZeroRotator;
116 FVector2D RotationAcceleration = FVector2D::ZeroVector;
117 bool bTriggeredExplosion = false;
Definition: DeployableControllable.h:30
Definition: DeployableControlledRocket.h:13
virtual bool CanOwningWeaponInstanceFire() const
Definition: DeployableControlledRocket.h:26