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

51 lines
1.6 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "ResourceBasedObjective.h"
#include "ResourceObjective.generated.h"
class UCappedResource;
class UResourceData;
UCLASS(Abstract, Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent))
class FSD_API UResourceObjective : public UResourceBasedObjective {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
UResourceData* Resource;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ResourcesRequired;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, ReplicatedUsing=OnRep_ResourcesCollected, meta=(AllowPrivateAccess=true))
float ResourcesCollected;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float ResourceBuffer;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float RoundToNearest;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FText ObjectivesText;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FText CreditsRewardText;
public:
UResourceObjective();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
protected:
UFUNCTION(BlueprintCallable)
void OnResourceChanged(UCappedResource* CappedResource, float Amount);
UFUNCTION(BlueprintCallable)
void OnRep_ResourcesCollected(float prevAmount);
public:
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetRequiredAmount(float missionScaling) const;
};