5#include "CoreMinimal.h"
7#include "OrbitalLaser.generated.h"
21 GENERATED_UCLASS_BODY()
24 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
25 float GetChargeTime()
const {
return ChargeTime; }
26 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
27 float GetFiringTime()
const {
return FiringTime; }
28 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
29 float GetFinishingTime()
const {
return FinishDuration; }
30 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
32 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
33 float GetDamageRadius()
const {
return DamageRadius; }
34 UFUNCTION(BlueprintCallable,Category = OrbitalLaser)
35 float GetExplosionRadius()
const {
return DamageRadius; }
36 UFUNCTION(BlueprintCallable, Category = OrbitalLaser)
37 void SetExplosionRadius(
float NewExplosionRadius) { DamageRadius = NewExplosionRadius; }
40 virtual void BeginPlay()
override;
45 void TraceOrbitalLaser();
50 UFUNCTION(BlueprintImplementableEvent)
51 void OnChargingStart();
53 UFUNCTION(BlueprintImplementableEvent)
56 UFUNCTION(BlueprintImplementableEvent)
57 void OnFinishingStart();
60 UFUNCTION(BlueprintCallable)
62 void FiringComplete();
66 FTimerHandle ChargingTimerHandle;
67 FTimerHandle FinishingTimerHandle;
68 FTimerHandle FiringTimerHandle;
70 TArray<FHitResult> CachedHits;
72 UPROPERTY(EditDefaultsOnly,Category = OrbitalLaser)
73 float FiringTime = 1.0f;
75 UPROPERTY(EditDefaultsOnly,Category = OrbitalLaser)
76 float ChargeTime = 1.0f;
78 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
79 float FinishDuration = 1.0f;
82 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
83 TArray <TEnumAsByte<EObjectTypeQuery>> ObjectTypes;
85 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
86 float LaserHeight = 1.0f;
88 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
89 float DamageRadius = 1.0f;
91 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
92 float BaseLaserDamage = 300.f;
94 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
95 float MinDamage = 1.0f;
97 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
98 float MaxDamageRadius = 200.0f;
100 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
101 float DamageFallOff = 0.7;
104 UPROPERTY(EditDefaultsOnly, Category = OrbitalLaser)
105 TSubclassOf<AActor> ActorToSpawnOnExplosion = NULL;
107 UPROPERTY(ReplicatedUsing = OnRep_State)
EOrbitalLaserState
Definition: OrbitalLaser.h:11
Definition: OrbitalLaser.h:20
Definition: WeaponInstanceActor.h:16