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

#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "SessionManagerSubsystem.h"
#include "LossPresentationConfig.generated.h"

class ULevelSequence;

/**
 * Data-driven cutscene-per-loss-cause map (GDD §4.4, §17.4). The USessionLossResolver
 * looks up the sequence for the resolved cause, plays it, then teleports the player home.
 * A cause with no entry skips straight to the teleport; SafeReturn never plays one (the
 * player walked home). Soft refs so cutscene assets only load when a loss actually fires.
 */
UCLASS()
class NAKEDDESIRE_API ULossPresentationConfig : public UPrimaryDataAsset
{
	GENERATED_BODY()

public:
	UPROPERTY(EditDefaultsOnly, Category = "Loss")
	TMap<ESessionLossCause, TSoftObjectPtr<ULevelSequence>> LossCutscenes;
};