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

#pragma once

#include "CoreMinimal.h"
#include "NakedDesire/MissionBuilder/MissionGoal.h"
#include "NakedDesire/Player/PrivateBodyPartType.h"
#include "FlashGoal.generated.h"

class ANPCAIController;
/**
 * 
 */
UCLASS(EditInlineNew)
class NAKEDDESIRE_API UFlashGoal : public UMissionGoal
{
	GENERATED_BODY()

	UPROPERTY(EditDefaultsOnly, meta = (ClampMin = 1))
	int RequiredFlashCount = 1;

	UPROPERTY(EditDefaultsOnly)
	EPrivateBodyPartType BodyType;

	FDelegateHandle PlayerNoticedHandle;

	UPROPERTY()
	TSet<AActor*> NoticedActors;

public:
	virtual void Init(ANakedDesireCharacter* PlayerCharacter) override;
	virtual void Complete() override;
	virtual FText GetDescription() const override;

private:
	void OnPlayerNoticed(ANPCAIController* NPC);
};
