Files
Naked-Desire/Source/NakedDesire/MissionBuilder/MissionGoal.h
T
2026-05-17 22:44:49 +03:00

59 lines
1.1 KiB
C++

// © 2025 Naked People Team. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "MissionGoal.generated.h"
class ANakedDesireCharacter;
class UMissionGoal;
class UGoalRestriction;
DECLARE_MULTICAST_DELEGATE_OneParam(FGoalUpdateSignature, UMissionGoal*);
/**
*
*/
UCLASS(EditInlineNew, BlueprintType)
class NAKEDDESIRE_API UMissionGoal : public UObject
{
GENERATED_BODY()
UPROPERTY(EditDefaultsOnly, Instanced)
TArray<UGoalRestriction*> Restrictions;
TArray<FDelegateHandle> RestrictionUpdateHandles;
public:
virtual void Init(ANakedDesireCharacter* PlayerCharacter);
virtual void Complete();
UFUNCTION(BlueprintPure)
bool GetIsCompleted() const
{
return IsCompleted;
}
UFUNCTION(BlueprintPure)
TArray<UGoalRestriction*> GetRestrictions() const
{
return Restrictions;
}
FGoalUpdateSignature OnUpdate;
bool CheckRestrictions();
UFUNCTION(BlueprintPure)
virtual FText GetDescription() const;
protected:
UPROPERTY()
ANakedDesireCharacter* Player = nullptr;
virtual void OnRestrictionUpdated(UGoalRestriction* Restriction);
bool IsCompleted = false;
};