41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // 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();
 | |
| };
 |