Space Plunder
Loading...
Searching...
No Matches
FQuestInfo Struct Reference

#include <QuestData.h>

Inheritance diagram for FQuestInfo:

Public Member Functions

 FQuestInfo ()
 
 FQuestInfo (const FQuestInfoStatus &QuestStatus)
 
bool operator== (const FQuestInfo &Other) const
 
bool operator!= (const FQuestInfo &Other) const
 
bool operator== (const FUniqueID &OtherID) const
 
bool operator!= (const FUniqueID &OtherID) const
 
bool IsValid () const
 
bool GetIsActive () const
 
EQuestStatus GetQuestStatus () const
 
void SetUniqueID (const int32 ID)
 
FUniqueID GetUniqueID () const
 
void SetStatus (const EQuestStatus NewQuestStatus)
 
int32 GetObjectivesNum () const
 
int32 GetTotalProgress () const
 
int32 GetTotalRequiredProgress () const
 
float GetElapsedTime () const
 
float GetStartTime () const
 
void StartQuest (const UObject *Owner)
 
float SaveQuestTime (const UObject *Owner)
 
void ResumeFromElapsedTime ()
 
bool GetIsQuestInTime () const
 
TArray< FQuestObjectivesGetCompletedObjectives () const
 
TArray< FString > GetActiveObjectiveIDs () const
 
TArray< FString > GetNotStartedObjectiveIDs () const
 
TArray< FString > GetActiveObjectiveIDsWithMarkers () const
 
FQuestReward GetFullQuestReward () const
 
TArray< FQuestObjectivesGetObjectives () const
 
bool GetCanBeCompleted (const UObject *Owner, EQuestStatus &QuestOutcome)
 

Static Public Member Functions

static FQuestInfo Empty ()
 

Public Attributes

FString QuestID = "QID_01"
 
FString QuestName = "Quest Name"
 
FString Description = "Quest Description"
 
TArray< FString > ObjectiveIDs = {"QOID_01", "QOID_02"}
 
bool bUniqueObjectives = true
 
bool bShowOverallProgress = false
 
FQuestReward Reward = FQuestReward()
 
TArray< FString > RequiredQuests
 
TArray< FString > QuestsToBeAddedAfterCompletion
 
bool bCanQuestBeAbandoned = false
 
bool bCanQuestFail = false
 
bool bCanRetry = false
 
bool bRepeatable = false
 
FQuestInfoStatus Status
 
bool bQuestTimed = false
 
float TimeToComplete = 10.0f
 
FGameplayTag CategoryTag
 
EFilterQuestType Category = EFilterQuestType::Main
 
EQuestLocation Location = EQuestLocation::PlayerShip
 
FGameplayTag LocationTag
 
int32 RecommendedLevel = 0
 

Constructor & Destructor Documentation

◆ FQuestInfo() [1/2]

FQuestInfo::FQuestInfo ( )
inline
858 {
859
860 }

◆ FQuestInfo() [2/2]

FQuestInfo::FQuestInfo ( const FQuestInfoStatus & QuestStatus)
inlineexplicit
863 {
864 Status = QuestStatus;
865 }
FQuestInfoStatus Status
Definition QuestData.h:836

Member Function Documentation

◆ Empty()

static FQuestInfo FQuestInfo::Empty ( )
inlinestatic
901 {
902 FQuestInfo EmptyQuestInfo;
903 return EmptyQuestInfo;
904 }
Definition QuestData.h:798

◆ GetActiveObjectiveIDs()

TArray< FString > FQuestInfo::GetActiveObjectiveIDs ( ) const
inline
991 {
993 }
TArray< FString > GetActiveObjectiveIDs() const
Definition QuestData.h:726

◆ GetActiveObjectiveIDsWithMarkers()

TArray< FString > FQuestInfo::GetActiveObjectiveIDsWithMarkers ( ) const
inline
999 {
1001 }
TArray< FString > GetActiveObjectiveIDsWithMarkers() const
Definition QuestData.h:757

◆ GetCanBeCompleted()

bool FQuestInfo::GetCanBeCompleted ( const UObject * Owner,
EQuestStatus & QuestOutcome )
inline
1030 {
1031 //- Sets Elapsed Time //
1033 if(GetIsQuestInTime())
1034 {
1035 return Status.GetCanBeCompleted(Owner, QuestOutcome);
1036 }
1037 QuestOutcome = EQuestStatus::Failed;
1038 return true;
1039 }
bool GetIsQuestInTime() const
Definition QuestData.h:966
float SaveQuestTime(const UObject *Owner)
Definition QuestData.h:956
bool GetCanBeCompleted(const UObject *Owner, EQuestStatus &QuestOutcome)
Definition QuestData.h:676

◆ GetCompletedObjectives()

TArray< FQuestObjectives > FQuestInfo::GetCompletedObjectives ( ) const
inline
978 {
979 TArray<FQuestObjectives> CompletedObjectives;
980 for(const auto& Objective : Status.ObjectiveReferences)
981 {
982 if(Objective == nullptr){continue;}
983 if(Objective->GetIsComplete())
984 {
985 CompletedObjectives.AddUnique(*Objective);
986 }
987 }
988 return CompletedObjectives;
989 }

◆ GetElapsedTime()

float FQuestInfo::GetElapsedTime ( ) const
inline
943 {
944 return Status.GetElapsedTime();
945 }
float GetElapsedTime() const
Definition QuestData.h:708

◆ GetFullQuestReward()

FQuestReward FQuestInfo::GetFullQuestReward ( ) const
inline
1003 {
1004 FQuestReward FullReward = Reward;
1005 for(const auto& Objective : GetCompletedObjectives())
1006 {
1007 FullReward.Credits += Objective.RewardBonus.Credits;
1008 FullReward.Experience += Objective.RewardBonus.Experience;
1009 }
1010 return FullReward;
1011 }
TArray< FQuestObjectives > GetCompletedObjectives() const
Definition QuestData.h:977
FQuestReward Reward
Definition QuestData.h:819
Definition QuestData.h:167
int32 Experience
Definition QuestData.h:171
int32 Credits
Definition QuestData.h:173

◆ GetIsActive()

bool FQuestInfo::GetIsActive ( ) const
inline
907 {
908 return Status.GetIsActive();
909 }
bool GetIsActive() const
Definition QuestData.h:600

◆ GetIsQuestInTime()

bool FQuestInfo::GetIsQuestInTime ( ) const
inline

Returns if the Quest was completed in time, returns true if not a timed quest, NOT if finished

967 {
968 if(bQuestTimed)
969 {
971 }
972 return true;
973 }
float TimeToComplete
Definition QuestData.h:842
bool bQuestTimed
Definition QuestData.h:840
bool GetDidCompleteInTime(const float TimeToComplete) const
Definition QuestData.h:666

◆ GetNotStartedObjectiveIDs()

TArray< FString > FQuestInfo::GetNotStartedObjectiveIDs ( ) const
inline
995 {
997 }
TArray< FString > GetNotStartedObjectiveIDs() const
Definition QuestData.h:741

◆ GetObjectives()

TArray< FQuestObjectives > FQuestInfo::GetObjectives ( ) const
inline
1013 {
1014 TArray<FQuestObjectives> Objectives;
1015 for(const auto Objective : Status.ObjectiveReferences)
1016 {
1017 if(Objective == nullptr || Objective->ObjectiveID.IsEmpty())
1018 {
1019 UE_LOG(LogTemp, Warning, TEXT("Null objective pointer"));
1020 continue;
1021 }
1022 const FQuestObjectives ObjectiveCopy = *Objective;
1023 Objectives.Add(ObjectiveCopy);
1024 }
1025 return Objectives;
1026 }
Definition QuestData.h:361

◆ GetObjectivesNum()

int32 FQuestInfo::GetObjectivesNum ( ) const
inline
929 {
930 return Status.ObjectiveReferences.Num();
931 }
TArray< const FQuestObjectives * > ObjectiveReferences
Definition QuestData.h:776

◆ GetQuestStatus()

EQuestStatus FQuestInfo::GetQuestStatus ( ) const
inline
911 {
912 return Status.GetQuestStatus();
913 }
EQuestStatus GetQuestStatus() const
Definition QuestData.h:604

◆ GetStartTime()

float FQuestInfo::GetStartTime ( ) const
inline
947 {
948 return Status.GetStartTime();
949 }
float GetStartTime() const
Definition QuestData.h:712

◆ GetTotalProgress()

int32 FQuestInfo::GetTotalProgress ( ) const
inline
933 {
934 return Status.GetTotalProgress();
935 }
int32 GetTotalProgress() const
Definition QuestData.h:622

◆ GetTotalRequiredProgress()

int32 FQuestInfo::GetTotalRequiredProgress ( ) const
inline
938 {
940 }
int32 GetTotalRequiredProgress() const
Definition QuestData.h:636

◆ GetUniqueID()

FUniqueID FQuestInfo::GetUniqueID ( ) const
inline
919 {
922 return ID;
923 }
FString QuestID
Definition QuestData.h:802
int32 GetUniqueID() const
Definition QuestData.h:716
Definition BaseData.h:253
void SetUniqueNumber(const int32 NewID)
Definition BaseData.h:259

◆ IsValid()

bool FQuestInfo::IsValid ( ) const
inline
894 {
895 if(QuestID == "Default Quest"){return false;}
896 if(QuestName == "Default Name"){return false;}
897 if(Status.GetObjectivesNum() == 0){return false;}
898 return true;
899 }
FString QuestName
Definition QuestData.h:805
int32 GetObjectivesNum() const
Definition QuestData.h:618

◆ operator!=() [1/2]

bool FQuestInfo::operator!= ( const FQuestInfo & Other) const
inline
876 {
877 // Define what makes two FQuestInfo structs equal.
878 // In this example, we assume two FQuestInfo are equal if their QuestIDs are equal.
879 // You may need to adjust this based on what makes sense for your use case.
880 return (QuestID != Other.QuestID) || (GetUniqueID() != Other.GetUniqueID());
881 }
FUniqueID GetUniqueID() const
Definition QuestData.h:918

◆ operator!=() [2/2]

bool FQuestInfo::operator!= ( const FUniqueID & OtherID) const
inline
888 {
889 if(bUniqueObjectives){return (GetUniqueID() != OtherID);}
890 return (QuestID != OtherID.ID);
891 }
bool bUniqueObjectives
Definition QuestData.h:813
FString ID
Definition BaseData.h:257

◆ operator==() [1/2]

bool FQuestInfo::operator== ( const FQuestInfo & Other) const
inline
869 {
870 // Define what makes two FQuestInfo structs equal.
871 // In this example, we assume two FQuestInfo are equal if their QuestIDs are equal.
872 // You may need to adjust this based on what makes sense for your use case.
873 return (QuestID == Other.QuestID) && (GetUniqueID() == Other.GetUniqueID());
874 }

◆ operator==() [2/2]

bool FQuestInfo::operator== ( const FUniqueID & OtherID) const
inline
883 {
884 if(bUniqueObjectives){return (GetUniqueID() == OtherID);}
885 return (QuestID == OtherID.ID);
886 }

◆ ResumeFromElapsedTime()

void FQuestInfo::ResumeFromElapsedTime ( )
inline
962 {
964 }
void ResumeFromElapsedTime()
Definition QuestData.h:661

◆ SaveQuestTime()

float FQuestInfo::SaveQuestTime ( const UObject * Owner)
inline
957 {
958 const float ElapsedTime = Status.SaveQuestTime(Owner);
959 return ElapsedTime;
960 }
float SaveQuestTime(const UObject *Owner)
Definition QuestData.h:649

◆ SetStatus()

void FQuestInfo::SetStatus ( const EQuestStatus NewQuestStatus)
inline
925 {
926 Status.SetStatus(NewQuestStatus);
927 }
void SetStatus(const EQuestStatus NewQuestStatus)
Definition QuestData.h:596

◆ SetUniqueID()

void FQuestInfo::SetUniqueID ( const int32 ID)
inline
915 {
917 }
void SetUniqueID(const int32 ID)
Definition QuestData.h:720

◆ StartQuest()

void FQuestInfo::StartQuest ( const UObject * Owner)
inline
953 {
955 }
void StartQuest(const UObject *Owner)
Definition QuestData.h:587

Member Data Documentation

◆ bCanQuestBeAbandoned

bool FQuestInfo::bCanQuestBeAbandoned = false

◆ bCanQuestFail

bool FQuestInfo::bCanQuestFail = false

◆ bCanRetry

bool FQuestInfo::bCanRetry = false

◆ bQuestTimed

bool FQuestInfo::bQuestTimed = false

◆ bRepeatable

bool FQuestInfo::bRepeatable = false

This Quest can be done Multiple Times

◆ bShowOverallProgress

bool FQuestInfo::bShowOverallProgress = false

◆ bUniqueObjectives

bool FQuestInfo::bUniqueObjectives = true

◆ Category

EFilterQuestType FQuestInfo::Category = EFilterQuestType::Main

◆ CategoryTag

FGameplayTag FQuestInfo::CategoryTag

◆ Description

FString FQuestInfo::Description = "Quest Description"

◆ Location

◆ LocationTag

FGameplayTag FQuestInfo::LocationTag

◆ ObjectiveIDs

TArray<FString> FQuestInfo::ObjectiveIDs = {"QOID_01", "QOID_02"}
810{"QOID_01", "QOID_02"};

◆ QuestID

FString FQuestInfo::QuestID = "QID_01"

◆ QuestName

FString FQuestInfo::QuestName = "Quest Name"

◆ QuestsToBeAddedAfterCompletion

TArray<FString> FQuestInfo::QuestsToBeAddedAfterCompletion

◆ RecommendedLevel

int32 FQuestInfo::RecommendedLevel = 0

◆ RequiredQuests

TArray<FString> FQuestInfo::RequiredQuests

◆ Reward

FQuestReward FQuestInfo::Reward = FQuestReward()

◆ Status

FQuestInfoStatus FQuestInfo::Status

◆ TimeToComplete

float FQuestInfo::TimeToComplete = 10.0f

The documentation for this struct was generated from the following file: