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

95 lines
3.3 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "AmmoDrivenWeapon.h"
#include "EGooGunFireMode.h"
#include "GooGun.generated.h"
class UAnimMontage;
class UFXSystemAsset;
class UFXSystemComponent;
class USoundCue;
UCLASS(Abstract, Blueprintable)
class AGooGun : public AAmmoDrivenWeapon {
GENERATED_BODY()
public:
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FChargingDelegate);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FChargeChangedDelegate, float, charge);
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FChargingDelegate OnStartCharging;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FChargingDelegate OnEndCharging;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FChargingDelegate OnChargingFailed;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FChargeChangedDelegate OnChargeChanged;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ChargeTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 ShotCostCharged;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ChargeThreshold;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float AutoStopCharingAfterSeconds;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 ShotCostCycle;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
EGooGunFireMode FireMode;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
USoundCue* FullyChargedFireSound;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 ChargedShotCount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float BuckShotSpreadV;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float BuckShotSpreadH;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float BuckshotArcCompensation;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UFXSystemAsset* ChargeupParticles;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UFXSystemAsset* ChargeupFireMuzzleFlash;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Instanced, Transient, meta=(AllowPrivateAccess=true))
UFXSystemComponent* ChargeupParticleInstance;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* FP_ChargeupMontage;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UAnimMontage* TP_ChargeupMontage;
public:
AGooGun();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnPuddleSuckedIn();
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetOverChargeProgress() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetIsCharging();
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetChargeProgress() const;
};