// © 2025 Naked People Team. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Object.h" #include "GoalRestriction.generated.h" class ANakedDesireCharacter; class UGoalRestriction; DECLARE_MULTICAST_DELEGATE_OneParam(FMissionRestrictionUpdateSignature, UGoalRestriction*); /** * */ UCLASS(EditInlineNew, BlueprintType) class NAKEDDESIRE_API UGoalRestriction : public UObject { GENERATED_BODY() public: FMissionRestrictionUpdateSignature OnUpdate; UFUNCTION(BlueprintPure) bool GetIsSuccess() const { return IsSuccess; } virtual void Init(ANakedDesireCharacter* PlayerCharacter); virtual void Complete(); virtual void Complete(bool Value); virtual void Stop() {}; UFUNCTION(BlueprintPure) virtual FText GetDescription() const; protected: UPROPERTY() ANakedDesireCharacter* Player = nullptr; bool IsSuccess = false; };