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

#pragma once

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

// At least RequiredObservers NPCs observing while any region is revealing (not necessarily fully nude).
// Generalizes "naked near NPCs" to partial exposure.
UCLASS(EditInlineNew, DisplayName = "Be Observed While Exposed")
class NAKEDDESIRE_API UBeObservedWhileExposedObjective : public UCoverageObjectiveBase
{
	GENERATED_BODY()

public:
	virtual FText GetDescription() const override;

protected:
	virtual bool IsConditionMet() const override { return IsAnyPartRevealing() && GetObserverCount() >= RequiredObservers; }

private:
	UPROPERTY(EditDefaultsOnly, meta = (ClampMin = 1))
	int32 RequiredObservers = 1;
};