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

98 lines
3.3 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "EventParticipant.h"
#include "FSDPawn.h"
#include "TowerEventModule.generated.h"
class ATowerEventModule;
class UArmorHealthDamageComponent;
class UEnemyHealthComponent;
class UParticleSystem;
class UParticleSystemComponent;
class USceneComponent;
class USkeletalMesh;
class USkeletalMeshComponent;
class USoundCue;
class UStaticMesh;
class UStaticMeshComponent;
class UWeakpointGlowComponent;
UCLASS(Blueprintable)
class FSD_API ATowerEventModule : public AFSDPawn, public IEventParticipant {
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USceneComponent* Root;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USkeletalMeshComponent* Mesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UEnemyHealthComponent* Health;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UArmorHealthDamageComponent* ArmorDamage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UWeakpointGlowComponent* WeakpointGlow;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
UParticleSystemComponent* SmokeParticles;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FRotator MainBodyRotation;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USkeletalMesh* DestroyedMesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USoundCue* ExplosionSound;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* ExplosionEffect;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
ATowerEventModule* PreviousModule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Replicated, Transient, meta=(AllowPrivateAccess=true))
ATowerEventModule* NextModule;
private:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UStaticMesh* ArmorMesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 ArmorPieces;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ArmorLifetime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ArmorPopForce;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ArmorShedDelay;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
TArray<UStaticMeshComponent*> ArmorMeshes;
public:
ATowerEventModule();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnAttack();
UFUNCTION(BlueprintCallable)
void HideArmorPlates();
UFUNCTION(BlueprintCallable)
void DestroyArmor();
// Fix for true pure virtual functions not being implemented
};