5#include "CoreMinimal.h"
6#include "Components/ActorComponent.h"
12#include "QuestGameStateComponent.generated.h"
14class UQuestGoalComponent;
18UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent))
24 UQuestGameStateComponent();
27 virtual
bool SaveGame() override;
28 virtual
bool LoadGame() override;
32 virtual
void UpdateAllQuestDetails();
34 virtual
void UpdateAllObjectiveDetails();
36 virtual
void UpdateQuestTimes();
38 virtual
void RebuildObjectiveReferences();
40 virtual
bool PlayerAdded(APlayerState* PlayerState) override;
41 virtual
bool PlayerRemoved(APlayerState* PlayerState) override;
43 virtual
bool AddQuestPlayer(UObject* QuestPlayer);
44 virtual
bool RemoveQuestPlayer(UObject* QuestPlayer);
46 virtual
FPlayerQuestStatus GetPlayerQuestStatus()
const override {
return PlayerQuestStatus;};
56 virtual void AddObjectiveAmount(
const FString& ObjectiveID,
const int32 Amount)
override;
64 virtual void QuestGoalFailed(UActorComponent* QuestGoalComponentRef)
override;
65 virtual void AddCredits(
const int32 Amount)
override;
67 virtual bool AddQuest(AActor* Caller,
const FString& QuestID,
const int32 ReporterID)
override;
68 virtual void QuestFailed(UActorComponent* QuestGoalComponentRef,
const FUniqueID& QuestID)
override;
79 virtual bool CreateQuest();
80 virtual bool CreateQuestObjective();
85 UFUNCTION(BlueprintCallable, Category=
"Quest State")
86 bool SaveQuests(const int32 UserIndex);
87 UFUNCTION(BlueprintCallable, Category="Quest State")
89 UFUNCTION(BlueprintNativeEvent, Category="Quest State")
90 void OnQuestsLoaded();
94 UFUNCTION(BlueprintImplementableEvent, Category="Quest State")
98 virtual
void BeginPlay() override;
104 virtual
void RemoveAllWaypoints(APlayerController* PlayerController) override;
105 virtual
void RemoveAllWaypoints();
107 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Game State")
108 UDataTable* QuestDataTable =
nullptr;
109 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Game State")
110 UDataTable* ObjectivesDataTable =
nullptr;
112 UFUNCTION(
Server, Reliable, BlueprintCallable, Category="Game State")
113 virtual
void Server_UpdatePlayerQuests();
116 void OnRep_PlayerQuestStatus();
117 UPROPERTY(ReplicatedUsing=OnRep_PlayerQuestStatus, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
120 void OnRep_CompleteQuestOutcome();
121 UPROPERTY(ReplicatedUsing=OnRep_CompleteQuestOutcome, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
124 void OnRep_NewQuestIndex();
125 UPROPERTY(ReplicatedUsing=OnRep_NewQuestIndex, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
126 int32 NewQuestIndex = -1;
128 void OnRep_CreditsAdded();
129 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
130 int32 CreditsAdded = 0;
131 UPROPERTY(ReplicatedUsing=OnRep_CreditsAdded, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
132 int32 CreditsDeltaID = 0;
135 void OnRep_ExperienceAdded();
136 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
137 int32 ExperienceAdded = 0;
138 UPROPERTY(ReplicatedUsing=OnRep_ExperienceAdded, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
139 int32 ExperienceDeltaID = 0;
142 void OnRep_ObjectiveComplete();
143 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
144 FString ObjectiveCompleteID = "";
145 UPROPERTY(ReplicatedUsing=OnRep_ObjectiveComplete, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
146 int32 ObjectiveCompleteDeltaID = 0;
148 void OnRep_ObjectiveFailed();
149 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
150 FString ObjectiveFailedID = "";
151 UPROPERTY(ReplicatedUsing=OnRep_ObjectiveFailed, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|
General")
152 int32 ObjectiveFailedDeltaID = 0;
156 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Quest State|Save")
158 UPROPERTY(VisibleAnywhere, Category="Quest State|Save")
161 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Quest State|Goals")
162 TArray<UQuestGoalComponent*> AllQuestGoals;
167 UPROPERTY(EditDefaultsOnly, Category="Quest State|Waypoints")
168 TSubclassOf<AActor> WaypointActorClass;
170 bool bLoadQuests = false;
173 UPROPERTY(Replicated)
174 TArray<class UObject*> PlayerComponents;
176 TArray<UQuestGoalComponent*> GetAllQuestGoalsWithQuestID(const FString& QuestID);
177 TArray<UQuestGoalComponent*> GetAllQuestGoalsWithObjectiveID(const FString& ObjectiveID);
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
EQuestStatus
Definition QuestData.h:57
DECLARE_LOG_CATEGORY_CLASS(LogQuestState, Display, All)
Definition QuestDataInterface.h:20
virtual bool GetQuestID(const int32 QuestIndex, FUniqueID &QuestID) const =0
virtual void PlaceWaypointsOnActors(APlayerController *PlayerController, const FUniqueID &QuestID)=0
virtual void RemoveWaypointsOnActors(APlayerController *PlayerController, const FUniqueID &QuestID)=0
virtual bool GetQuestIndex(const FQuestInfo &QuestInfo, int32 &Index) const =0
virtual bool GetQuestIndexFromID(const FUniqueID &QuestID, int32 &Index) const =0
virtual bool GetIsQuestActive(const int32 QuestIndex) const =0
virtual void RemoveObjectiveWaypointsOnActors(APlayerController *PlayerController, const FString &ObjectiveID)=0
virtual bool GetQuest(const int32 QuestIndex, FQuestInfo &QuestInfo) const =0
Definition QuestReporter.h:23
virtual void AddObjectiveUniqueAmount(const FUniqueID &ObjectiveID, const int32 Amount)=0
virtual void AddCredits(const int32 Amount)=0
virtual void AddObjectiveAmount(const FString &ObjectiveID, const int32 Amount)=0
virtual int32 RegisterQuestGoal(UActorComponent *QuestGoalComponentRef)=0
virtual void QuestGoalFailed(UActorComponent *QuestGoalComponentRef)=0
virtual void DebugRemoveQuest(const struct FQuestInfo &QuestInfo)=0
virtual void QuestFailed(UActorComponent *QuestGoalComponentRef, const FUniqueID &QuestID)=0
virtual bool AddQuest(AActor *Caller, const FString &QuestID, const int32 ReporterID)=0
virtual void AddExperience(const int32 Amount)=0
virtual void AddObjectivePenaltyUniqueAmount(const FUniqueID &ObjectiveID, const int32 Amount)=0
virtual void AddObjectivePenaltyAmount(const FString &ObjectiveID, const int32 Amount)=0
virtual void DebugFinishQuest(const struct FQuestInfo &QuestInfo, const EQuestStatus Outcome)=0
Definition QuestSystem.Build.cs:6
Definition QuestSaveGame.h:12
Definition QuestData.h:1117
Definition QuestData.h:798
Definition QuestData.h:1084
Definition BaseData.h:253