// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "Components/TextBlock.h"
#include "Blueprint/UserWidget.h"
#include "Quest.h"
#include "QuestSystem.generated.h"

UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class THE_TWILIGHT_ABYSS_API UQuestSystem : public UActorComponent
{
	GENERATED_BODY()

public:
	// Sets default values for this component's properties
	UQuestSystem();

	TArray<UQuest*> ActiveQuests;
	TArray<UQuest*> CompletedQuests;
	TArray<FString> CompletedQuestLines;
	TMap<FString, bool> QuestFlags;

protected:
	// Called when the game starts
	virtual void BeginPlay() override;

	UPROPERTY()
	TSubclassOf<UUserWidget> QuestWidget;

	FJsonObject WorldStateJsonTemplate;

public:
	// Called every frame
	virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
	void CheckActiveQuestConditions();
	FJsonObject GetWorldState();
};