5#include "CoreMinimal.h"
7#include "Engine/EngineTypes.h"
8#include "DeployableMine.generated.h"
10class UProjectileMovementComponent;
11class USphereComponent;
12class UAfflictionInstance;
17 GENERATED_UCLASS_BODY()
21 UFUNCTION(BlueprintCallable)
22 float GetLaunchTime()
const {
return LaunchTime; }
23 UFUNCTION(BlueprintCallable)
24 float GetLaunchHeight()
const {
return TriggeredLaunchHeight; }
25 UFUNCTION(BlueprintCallable)
26 float GetTriggerDelayTime()
const {
return TriggerDelay; }
27 UFUNCTION(BlueprintCallable)
28 float GetMotionSensorSize()
const {
return MotionSensorRadius; }
29 UFUNCTION(BlueprintCallable)
30 float GetExplosionRadius()
const {
return ExplosionRadius; }
33 bool CheckForMovingEnemies();
35 virtual void Died(
float Damage, FDamageEvent
const& DamageEvent, AController* EventInstigator, AActor* DamageCauser, APlayerState* InstigatorPlayerState)
override;
36 virtual void Tick(
float DeltaTime)
override;
37 void TriggerExplosion(
bool bUseTimer);
40 void OnMineBounce(const FHitResult& ImpactResult, const FVector& ImpactVelocity);
42 void OnMineStopMoving(const FHitResult& ImpactResult);
43 UFUNCTION(BlueprintImplementableEvent)
45 UFUNCTION(BlueprintImplementableEvent)
46 void OnMineTriggered();
47 UFUNCTION(BlueprintImplementableEvent)
48 void OnMineArmed(const FHitResult& ImpactResult);
51 virtual
void Explosion();
53 void OnOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex,
bool bFromSweep, const FHitResult & SweepResult);
54 UFUNCTION(NetMulticast,Unreliable)
55 void Multicast_Explosion_PlayExplosionEffects_UnReliable();
56 UFUNCTION(NetMulticast, Unreliable)
57 void Multicast_MineTriggered_PlayTriggerEffects_Unrealiable();
60 UPROPERTY(EditDefaultsOnly)
61 UProjectileMovementComponent* ProjectileMovementComponent;
64 UPROPERTY(EditDefaultsOnly)
68 UPROPERTY(EditDefaultsOnly)
69 TSubclassOf<UDamageType> DamageType;
71 UPROPERTY(EditDefaultsOnly)
72 float MotionSensorRadius = 3000.0f;
74 UPROPERTY(EditDefaultsOnly)
75 float LaunchTime = 3.0f;
77 UPROPERTY(EditDefaultsOnly)
78 float TriggerDelay = 3.0f;
81 UPROPERTY(EditDefaultsOnly)
82 float ExplosionDamageMax = 75.0f;
84 UPROPERTY(EditDefaultsOnly)
85 float ExplosionDamageMin = 1.0f;
87 UPROPERTY(EditDefaultsOnly)
88 float DamageFallOff = 0.8f;
90 UPROPERTY(EditDefaultsOnly)
91 float ExplosionRadius = 1000.0f;
93 UPROPERTY(EditDefaultsOnly)
94 float TriggeredLaunchHeight = 3000.0f;
96 UPROPERTY(EditDefaultsOnly)
97 TSubclassOf<UAfflictionInstance> ProximityWarningAfflictionClass;
99 UPROPERTY(EditDefaultsOnly, meta = (Bitmask, BitmaskEnum = "ECollisionChannel"))
100 TArray<TEnumAsByte<ECollisionChannel>> AllowableBounceProfiles;
102 int32 ExplosionInterpolaterID;
103 FTimerHandle ExplosionDelayTimer;
104 bool bExplosionTriggered;
105 FVector SurfaceNormal;
Definition: Deployable.h:47
Definition: DeployableMine.h:16