implement Pursuit Sequence Logic
This commit is contained in:
@ -8,6 +8,8 @@
|
||||
#include "DTFluxPursuitManager.generated.h"
|
||||
|
||||
|
||||
class UDTFluxCoreSubsystem;
|
||||
|
||||
USTRUCT()
|
||||
struct FRequestData
|
||||
{
|
||||
@ -27,7 +29,7 @@ struct FRequestData
|
||||
FRequestData() = default;
|
||||
|
||||
FRequestData(const TArray<FGuid>& InRequestIds, const TMap<FGuid, FDTFluxStageRankings>& InStageRankings)
|
||||
: RequestIds(InRequestIds), StageRankings(InStageRankings)
|
||||
: RequestIds(InRequestIds), StageRankings(InStageRankings), ContestId(-1)
|
||||
{
|
||||
};
|
||||
|
||||
@ -63,9 +65,10 @@ struct FDTFluxPursuitGroup
|
||||
bool bIsFocus = false;
|
||||
};
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnPursuitSequenceReady, const TArray<FDTFluxPursuitInfo>,
|
||||
NextFocusPursuits,
|
||||
const TArray<FDTFluxPursuitInfo>, NextPursuit, bool, bIsTrtuncate);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnPursuitSequenceReady, const FDateTime, MassStartTime,
|
||||
const TArray<FDTFluxPursuitInfo>,
|
||||
NextFocusPursuits,
|
||||
const TArray<FDTFluxPursuitInfo>, NextPursuit, bool, bIsTrtuncate);
|
||||
|
||||
/**
|
||||
*
|
||||
@ -86,28 +89,32 @@ public:
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, VisibleAnywhere)
|
||||
bool bFocusIsTruncate = false;
|
||||
//
|
||||
// UPROPERTY()
|
||||
// TArray<FDTFluxStage> TargetStages;
|
||||
|
||||
UPROPERTY()
|
||||
int MaxSimultaneousPursuit = 7;
|
||||
int PursuitMaxSimultaneousPursuit = 7;
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="DTFlux|Pursuit",
|
||||
meta=(ClampMin="1", ClampMax="60", UIMin="0", UIMax="60"))
|
||||
int MassStartDelay = 10;
|
||||
|
||||
UPROPERTY()
|
||||
TArray<FDTFluxPursuitGroup> PursuitGrouped;
|
||||
FDateTime MassStartTime = FDateTime::MinValue();
|
||||
|
||||
UPROPERTY()
|
||||
TArray<FDTFluxPursuitGroup> GroupedPursuit;
|
||||
|
||||
UPROPERTY()
|
||||
int CurrentIndex = -1;
|
||||
|
||||
UPROPERTY(BlueprintCallable, Category="DTFlux|Pursuit")
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Pursuit")
|
||||
FOnPursuitSequenceReady OnPursuitSequenceReady;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Pursuit", meta=(Keywords="pursuit, launch, poursuite"))
|
||||
void InitPursuit(const TArray<int> InContestIds, const int MaxSimultaneousPursuit = 7);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Pursuit", meta=(Keywords="pursuit, launch, poursuite"))
|
||||
void LaunchPursuitSequenceFor(const TArray<FDTFluxContest> InContests);
|
||||
void GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFocusNext, TArray<FDTFluxPursuitInfo>& OutPursuitNext,
|
||||
bool& BIsFocusTruncate, const int MaxSimultaneousPursuit = 7);
|
||||
|
||||
UFUNCTION()
|
||||
void OnRequestResponse(const FGuid& RequestId, FDTFluxServerResponse& Response);
|
||||
@ -123,11 +130,15 @@ public:
|
||||
|
||||
private:
|
||||
TArray<FRequestData> PendingRequestData;
|
||||
|
||||
public:
|
||||
UFUNCTION()
|
||||
bool InitPursuit(FRequestData Data);
|
||||
|
||||
private:
|
||||
UDTFluxCoreSubsystem* CoreSubsystem = nullptr;
|
||||
UDTFluxNetworkSubsystem* NetworkSubsystem = nullptr;
|
||||
|
||||
UPROPERTY()
|
||||
bool bIsSequenceDone = true;
|
||||
UFUNCTION()
|
||||
void SetPursuitInfoIsMassStart(FDTFluxPursuitGroup NextFocusGroup);
|
||||
UFUNCTION()
|
||||
void InitPursuitForContests(const TArray<FDTFluxContest> InContests);
|
||||
UFUNCTION()
|
||||
bool InitPursuitForRequest(FRequestData Data);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user