5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
11#include "Explodables.generated.h"
22 UFUNCTION(BlueprintCallable,BlueprintPure)
23 FORCEINLINE
float GetDamageMax()
const {
return ExplosionDamageMax; }
24 virtual APlayerState* GetOwnedPlayerState()
const override;
25 virtual int32 GetTeam()
const override;
27 void SetHitResult(
const FHitResult& InHitResult);
31 void TriggerExplosion();
32 void InternalTriggerExplosion();
34 virtual float TakeDamage(
float Damage,
struct FDamageEvent
const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)
override;
35 virtual bool ShouldTakeDamage(
float Damage, FDamageEvent
const& DamageEvent, AController* EventInstigator, AActor* DamageCauser)
const;
36 virtual float InternalTakeRadialDamage(
float Damage, FRadialDamageEvent
const& RadialDamageEvent,
class AController* EventInstigator,
class AActor* DamageCauser)
override;
37 virtual void Died(
float Damage, FDamageEvent
const& DamageEvent, AController* EventInstigator, AActor* DamageCauser);
38 virtual void TornOff()
override;
40 UFUNCTION(NetMulticast, Reliable)
41 void Multicast_Reliable_Died(
float Damage, FDamageEvent const& DamageEvent, AActor* DamageCauser);
42 virtual
bool IsDead()
const override {
return bDied; }
43 UFUNCTION(BlueprintImplementableEvent)
44 void OnExplosionTriggered();
47 UPROPERTY(EditDefaultsOnly, Category = Explodable)
48 TSubclassOf<UDamageType> DamageType;
51 UPROPERTY(EditDefaultsOnly, Category = Explodable)
52 TArray <TEnumAsByte<EObjectTypeQuery>> ObjectTypes;
55 UPROPERTY(EditDefaultsOnly,Category = Explodable)
56 float MaxHealth = 0.0f;
58 UPROPERTY(EditDefaultsOnly, Category = Explodable)
61 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Explodable)
62 bool bDelayExplosion = false;
64 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (EditCondition = bDelayExplosion), Category = Explodable)
65 float ExplosionDelay = 1.0f;
68 UPROPERTY(EditDefaultsOnly, Category = Explodable)
69 float ExplosionDamageMax = 75.0f;
71 UPROPERTY(EditDefaultsOnly, Category = Explodable)
72 float ExplosionDamageMin = 1.0f;
74 UPROPERTY(EditDefaultsOnly, Category = Explodable)
75 float DamageFallOff = 0.8f;
77 UPROPERTY(EditDefaultsOnly, Category = Explodable)
78 float ExplosionRadius = 1000.0f;
80 FHitResult ExplodableHitResult;
82 FTimerHandle ExplosionDelayTimerHandle;
Definition: Explodables.h:17
Definition: HealthInterface.h:28
Definition: OwnedInterface.h:20
Definition: TeamInterface.h:26
Definition: WeaponInstance.h:220
virtual void BeginPlay() override
Definition: WeaponInstance.cpp:192