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

#pragma once

#include "CoreMinimal.h"
#include "ObserverObjectiveBase.h"
#include "GatherCrowdObjective.generated.h"

// Draw a crowd: at least RequiredObservers NPCs observing the player simultaneously. With
// RequiredHoldSeconds > 0 the crowd must hold for that long; 0 = the instant the count is reached.
UCLASS(EditInlineNew, DisplayName = "Gather a Crowd")
class NAKEDDESIRE_API UGatherCrowdObjective : public UObserverObjectiveBase
{
	GENERATED_BODY()

public:
	virtual FText GetDescription() const override;

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

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