// © 2025 Naked People Team. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "CoverageObjectiveBase.h"
#include "BareRegionObjective.generated.h"

// Which half is bare while the other stays covered.
UENUM(BlueprintType)
enum class EBareRegion : uint8
{
	Top    UMETA(DisplayName = "Topless (chest bare, below covered)"),
	Bottom UMETA(DisplayName = "Bottomless (below bare, chest covered)"),
};

// BeToplessOnly / BeBottomlessOnly: one region reads as revealing while the other stays covered. A
// deliberate half-exposure objective — distinct from BeFullyNaked (all bare) and StayBelowCoverage.
UCLASS(EditInlineNew, DisplayName = "Bare One Region Only")
class NAKEDDESIRE_API UBareRegionObjective : public UCoverageObjectiveBase
{
	GENERATED_BODY()

public:
	virtual FText GetDescription() const override;

protected:
	virtual bool IsConditionMet() const override;

private:
	UPROPERTY(EditDefaultsOnly)
	EBareRegion Region = EBareRegion::Top;
};