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

#pragma once

#include "CoreMinimal.h"
#include "TravelObjectiveBase.h"
#include "WalkNakedWhileObservedObjective.generated.h"

// Cover RequiredMeters while fully naked AND with at least MinObservers watching — a "naked parade past
// a crowd" objective. Distance only accrues while both hold (lose your audience and progress stalls).
UCLASS(EditInlineNew, DisplayName = "Walk Naked While Observed")
class NAKEDDESIRE_API UWalkNakedWhileObservedObjective : public UTravelObjectiveBase
{
	GENERATED_BODY()

public:
	virtual FText GetDescription() const override;

protected:
	virtual bool DoesSampleCount() const override { return IsFullyNaked() && GetObserverCount() >= MinObservers; }

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