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

#pragma once

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

// StayBelowCoverage(threshold, duration): every exposable region must read at or below CoverageThreshold
// — revealing all over without being fully nude. Names its own threshold rather than reusing the player's
// reveal cutoff, so it can ask for "barely dressed" independent of the observation tuning.
UCLASS(EditInlineNew, DisplayName = "Stay Below Coverage")
class NAKEDDESIRE_API UStayBelowCoverageObjective : public UCoverageObjectiveBase
{
	GENERATED_BODY()

public:
	virtual FText GetDescription() const override;

protected:
	virtual bool IsConditionMet() const override;

private:
	UPROPERTY(EditDefaultsOnly, meta = (ClampMin = 0, ClampMax = 1))
	float CoverageThreshold = 0.5f;
};