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

83 lines
2.5 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "GameEvent.h"
#include "Templates/SubclassOf.h"
#include "RockEnemiesEvent.generated.h"
class APawn;
class AProjectile;
class UEnemyGroupDescriptor;
class UHealthComponentBase;
class UParticleSystem;
class USkeletalMeshComponent;
UCLASS(Blueprintable)
class ARockEnemiesEvent : public AGameEvent {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TSubclassOf<AProjectile> PowerUpClass;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float PowerUpGenerationTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<int32> KillAmountPerPlayer;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
TArray<int32> MaxEnemyCountPerPlayer;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TArray<APawn*> SpawnedRockEnemies;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, meta=(AllowPrivateAccess=true))
USkeletalMeshComponent* Mesh;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UParticleSystem* MuzzleEffect;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 PowerUpsPerGeneration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 GruntPointsAward;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 TankPointsAward;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UEnemyGroupDescriptor* RockEnemies;
public:
ARockEnemiesEvent();
protected:
UFUNCTION(BlueprintCallable)
void StopPowerupGeneration();
UFUNCTION(BlueprintCallable)
void StartPowerupGeneration();
UFUNCTION(BlueprintCallable)
void SpawnRockEnemies(float Difficulty, const TArray<FVector>& Locations);
UFUNCTION(BlueprintCallable, NetMulticast, Unreliable)
void ShowFireEffects(int32 selectedBone);
public:
UFUNCTION(BlueprintCallable)
void RockEnemySpawned(APawn* spawnedEnemy);
UFUNCTION(BlueprintCallable)
void RockEnemyDied(UHealthComponentBase* Health);
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnShoot();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void EnemySpawnedAfterComplete(APawn* spawnedEnemy);
};