DRG-Femboy-Voice/Source/FSD/Public/ElectricalSMG.h
2025-04-15 12:39:31 -07:00

49 lines
1.5 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "Engine/NetSerialization.h"
#include "Engine/NetSerialization.h"
#include "AmmoDrivenWeapon.h"
#include "Templates/SubclassOf.h"
#include "ElectricalSMG.generated.h"
class UFSDPhysicalMaterial;
class UHealthComponentBase;
class UParticleSystem;
class UPrimitiveComponent;
class USoundCue;
class UStatusEffect;
UCLASS(Blueprintable)
class AElectricalSMG : public AAmmoDrivenWeapon {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSubclassOf<UStatusEffect> AoEStatusEffect;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* AoEParticle;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USoundCue* AoESound;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float AoEStatusEffectChance;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float AoEStatusEffectRange;
public:
AElectricalSMG();
protected:
UFUNCTION(BlueprintCallable)
void OnTargetDamaged(UHealthComponentBase* Health, float Amount, UPrimitiveComponent* HitComponent, UFSDPhysicalMaterial* PhysicalMaterial);
UFUNCTION(BlueprintCallable)
void OnStatusEffectPushed(UHealthComponentBase* Health);
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void All_OnAoETriggered(const FVector_NetQuantize& Location, const FVector_NetQuantizeNormal& Normal) const;
};