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

#include <QuestData.h>

Public Member Functions

void StartQuest (const UObject *Owner)
 
void SetStatus (const EQuestStatus NewQuestStatus)
 
bool GetIsActive () const
 
EQuestStatus GetQuestStatus () const
 
TArray< FString > GetAllObjectiveIDs () const
 
int32 GetObjectivesNum () const
 
int32 GetTotalProgress () const
 
int32 GetTotalRequiredProgress () const
 
float SaveQuestTime (const UObject *Owner)
 
void ResumeFromElapsedTime ()
 
bool GetDidCompleteInTime (const float TimeToComplete) const
 
bool GetCanBeCompleted (const UObject *Owner, EQuestStatus &QuestOutcome)
 
float GetElapsedTime () const
 
float GetStartTime () const
 
int32 GetUniqueID () const
 
void SetUniqueID (const int32 ID)
 
TArray< FString > GetActiveObjectiveIDs () const
 
TArray< FString > GetNotStartedObjectiveIDs () const
 
TArray< FString > GetActiveObjectiveIDsWithMarkers () const
 

Public Attributes

TArray< const FQuestObjectives * > ObjectiveReferences
 

Protected Attributes

EQuestStatus QuestStatus = EQuestStatus::NotStarted
 
int32 UniqueID = 0
 
float StartTimeInSeconds = -1.0f
 
float ElapsedTime = -1.0f
 

Member Function Documentation

◆ GetActiveObjectiveIDs()

TArray< FString > FQuestInfoStatus::GetActiveObjectiveIDs ( ) const
inline
727 {
728 TArray<FString> ActiveObjectiveIDs;
729 for(const auto& Objective : ObjectiveReferences)
730 {
731 if(Objective != nullptr)
732 {
733 if(Objective->GetIsActive())
734 {
735 ActiveObjectiveIDs.Add(Objective->ObjectiveID);
736 }
737 }
738 }
739 return ActiveObjectiveIDs;
740 }
TArray< const FQuestObjectives * > ObjectiveReferences
Definition QuestData.h:776

◆ GetActiveObjectiveIDsWithMarkers()

TArray< FString > FQuestInfoStatus::GetActiveObjectiveIDsWithMarkers ( ) const
inline
758 {
759 TArray<FString> ActiveObjectiveIDs;
760 for(const auto& Objective : ObjectiveReferences)
761 {
762 if(Objective != nullptr)
763 {
764 if(Objective->GetIsActive())
765 {
766 if(Objective->bHasWorldMarker)
767 {
768 ActiveObjectiveIDs.Add(Objective->ObjectiveID);
769 }
770 }
771 }
772 }
773 return ActiveObjectiveIDs;
774 }

◆ GetAllObjectiveIDs()

TArray< FString > FQuestInfoStatus::GetAllObjectiveIDs ( ) const
inline
609 {
610 TArray<FString> AllObjectiveIDs;
611 for(const auto& Objective: ObjectiveReferences)
612 {
613 if(Objective == nullptr){continue;}
614 AllObjectiveIDs.AddUnique(Objective->ObjectiveID);
615 }
616 return AllObjectiveIDs;
617 }

◆ GetCanBeCompleted()

bool FQuestInfoStatus::GetCanBeCompleted ( const UObject * Owner,
EQuestStatus & QuestOutcome )
inline
677 {
678 //- Sets Elapsed Time //
680 QuestOutcome = QuestStatus;
681 if(QuestOutcome != EQuestStatus::Active){return false;}
682 //@ TODO add this function to Player Quest Status, which can check Objectives too
683 for(const FQuestObjectives* QuestObjective : ObjectiveReferences)
684 {
685 //- Don't Check Optional Objectives //
686 if(QuestObjective->bIsOptional){continue;}
687 if(QuestObjective->GetIsFailed())
688 {
689 QuestOutcome = EQuestStatus::Failed;
690 return true;
691 }
692 if(QuestObjective->bObjectiveTimed && !QuestObjective->GetDidCompleteInTime())
693 {
694 QuestOutcome = EQuestStatus::Failed;
695 return true;
696 }
697 //- If any of the non optional Objectives aren't complete //
698 if(QuestObjective->GetIsFinished() == false)
699 {
700 QuestOutcome = EQuestStatus::Active;
701 return false;
702 }
703 }
704 //- All Objectives Complete //
705 QuestOutcome = EQuestStatus::Completed;
706 return true;
707 }
EQuestStatus QuestStatus
Definition QuestData.h:780
float SaveQuestTime(const UObject *Owner)
Definition QuestData.h:649
Definition QuestData.h:361

◆ GetDidCompleteInTime()

bool FQuestInfoStatus::GetDidCompleteInTime ( const float TimeToComplete) const
inline
667 {
668 //- Sets ElapsedTime //
669 if(StartTimeInSeconds >= 0.0f)
670 {
671 return ElapsedTime <= TimeToComplete;
672 }
673 return false;
674 }
float StartTimeInSeconds
Definition QuestData.h:787
float ElapsedTime
Definition QuestData.h:789

◆ GetElapsedTime()

float FQuestInfoStatus::GetElapsedTime ( ) const
inline
709 {
710 return ElapsedTime;
711 }

◆ GetIsActive()

bool FQuestInfoStatus::GetIsActive ( ) const
inline
601 {
602 return QuestStatus == EQuestStatus::Active;
603 }

◆ GetNotStartedObjectiveIDs()

TArray< FString > FQuestInfoStatus::GetNotStartedObjectiveIDs ( ) const
inline
742 {
743 TArray<FString> NotStartedObjectiveIDs;
744 for(const auto& Objective : ObjectiveReferences)
745 {
746 if(Objective != nullptr)
747 {
748 if(Objective->GetIsNotYetStarted())
749 {
750 NotStartedObjectiveIDs.Add(Objective->ObjectiveID);
751 }
752 }
753 }
754 return NotStartedObjectiveIDs;
755 }

◆ GetObjectivesNum()

int32 FQuestInfoStatus::GetObjectivesNum ( ) const
inline
619 {
620 return ObjectiveReferences.Num();
621 }

◆ GetQuestStatus()

EQuestStatus FQuestInfoStatus::GetQuestStatus ( ) const
inline
605 {
606 return QuestStatus;
607 }

◆ GetStartTime()

float FQuestInfoStatus::GetStartTime ( ) const
inline
713 {
714 return StartTimeInSeconds;
715 }

◆ GetTotalProgress()

int32 FQuestInfoStatus::GetTotalProgress ( ) const
inline
623 {
624 int32 TotalProgress = 0;
625 for(const auto& Objective : ObjectiveReferences)
626 {
627 if(Objective == nullptr){continue;}
628 if(!Objective->bIsOptional)
629 {
630 TotalProgress += Objective->GetCurrentProgress();
631 }
632 }
633 return TotalProgress;
634 }

◆ GetTotalRequiredProgress()

int32 FQuestInfoStatus::GetTotalRequiredProgress ( ) const
inline
637 {
638 int32 TotalRequired = 0;
639 for(const auto& Objective : ObjectiveReferences)
640 {
641 if(Objective == nullptr){continue;}
642 if(!Objective->bIsOptional)
643 {
644 TotalRequired += Objective->RequiredProgress;
645 }
646 }
647 return TotalRequired;
648 }

◆ GetUniqueID()

int32 FQuestInfoStatus::GetUniqueID ( ) const
inline
717 {
718 return UniqueID;
719 }
int32 UniqueID
Definition QuestData.h:782

◆ ResumeFromElapsedTime()

void FQuestInfoStatus::ResumeFromElapsedTime ( )
inline
662 {
663 if(QuestStatus != EQuestStatus::Active){return;}
665 }

◆ SaveQuestTime()

float FQuestInfoStatus::SaveQuestTime ( const UObject * Owner)
inline
650 {
651 if(GetIsActive())
652 {
653 if(const UWorld* World = GEngine->GetWorldFromContextObject(Owner, EGetWorldErrorMode::LogAndReturnNull))
654 {
655 const float CurrentTimeInSeconds = World->GetTimeSeconds();
656 ElapsedTime = CurrentTimeInSeconds - StartTimeInSeconds;
657 }
658 }
659 return ElapsedTime;
660 }
bool GetIsActive() const
Definition QuestData.h:600

◆ SetStatus()

void FQuestInfoStatus::SetStatus ( const EQuestStatus NewQuestStatus)
inline
597 {
598 QuestStatus = NewQuestStatus;
599 }

◆ SetUniqueID()

void FQuestInfoStatus::SetUniqueID ( const int32 ID)
inline
721 {
722 UniqueID = ID;
723 }

◆ StartQuest()

void FQuestInfoStatus::StartQuest ( const UObject * Owner)
inline
588 {
589 if(GetQuestStatus() == EQuestStatus::Active){return;}
590 SetStatus(EQuestStatus::Active);
591 if(const UWorld* World = GEngine->GetWorldFromContextObject(Owner, EGetWorldErrorMode::LogAndReturnNull))
592 {
593 StartTimeInSeconds = World->GetTimeSeconds();
594 }
595 }
void SetStatus(const EQuestStatus NewQuestStatus)
Definition QuestData.h:596
EQuestStatus GetQuestStatus() const
Definition QuestData.h:604

Member Data Documentation

◆ ElapsedTime

float FQuestInfoStatus::ElapsedTime = -1.0f
protected

◆ ObjectiveReferences

TArray<const FQuestObjectives*> FQuestInfoStatus::ObjectiveReferences

◆ QuestStatus

EQuestStatus FQuestInfoStatus::QuestStatus = EQuestStatus::NotStarted
protected

◆ StartTimeInSeconds

float FQuestInfoStatus::StartTimeInSeconds = -1.0f
protected

◆ UniqueID

int32 FQuestInfoStatus::UniqueID = 0
protected

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