Learn trusted drill recovery plan reliability upstream
This commit is contained in:
parent
95f60229ee
commit
5f40aec955
4 changed files with 358 additions and 4 deletions
|
|
@ -702,6 +702,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("trusted tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable"))
|
||||
{
|
||||
return TEXT("reliable trusted tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
|
|
@ -734,6 +738,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("trusted broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable"))
|
||||
{
|
||||
return TEXT("reliable trusted broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
|
|
|
|||
|
|
@ -91,8 +91,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable")
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
|
||||
}
|
||||
|
|
@ -165,7 +167,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| IsNarrowMethodDrillFollowUpPacketStructureSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
|
|
@ -196,7 +199,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| IsBroadMethodDrillFollowUpPacketStructureSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
|
||||
}
|
||||
|
||||
FString DescribeRetainedMethodDrillRecoveryStanceLabel(const FString& SourceLabel)
|
||||
|
|
@ -702,6 +706,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("trusted tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable"))
|
||||
{
|
||||
return TEXT("reliable trusted tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
|
|
@ -730,6 +738,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("trusted broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable"))
|
||||
{
|
||||
return TEXT("reliable trusted broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
|
|
|
|||
|
|
@ -326,8 +326,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable")
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
|
||||
}
|
||||
|
|
@ -1015,6 +1017,28 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
BroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -1024,6 +1048,40 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
(static_cast<float>(MethodDrillRecoveryCompletedCount) * 100.0f)
|
||||
/ static_cast<float>(MethodDrillRecoveryStartedCount);
|
||||
}
|
||||
if ((TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
> 0)
|
||||
{
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanEventCount =
|
||||
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
|
||||
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
|
||||
TrustedTightMethodDrillRecoveryStructurePlanEventCount;
|
||||
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
|
||||
(static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
|
||||
* 100.0f)
|
||||
/ static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanEventCount);
|
||||
}
|
||||
if ((TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
> 0)
|
||||
{
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanEventCount =
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = FMath::Max(
|
||||
0,
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount +=
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanEventCount;
|
||||
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
|
||||
(static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
|
||||
* 100.0f)
|
||||
/ static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
|
||||
}
|
||||
const bool bStrongMethodDrillRecoveryHistory =
|
||||
MethodDrillRecoveryStartedCount >= 2
|
||||
&& MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount
|
||||
|
|
@ -1129,6 +1187,48 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bTrustedTightMethodDrillRecoveryStructurePlanHistory =
|
||||
(TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
&& TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
>= TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
&& Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
|
||||
const bool bTrustedBroadMethodDrillRecoveryStructurePlanHistory =
|
||||
(TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
&& (TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount)
|
||||
>= TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
&& Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanLaunchBias =
|
||||
bTrustedTightMethodDrillRecoveryStructurePlanHistory
|
||||
? FMath::Clamp(
|
||||
(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount * 2)
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ (Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore
|
||||
>= 80.0f
|
||||
? 1
|
||||
: 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias =
|
||||
bTrustedBroadMethodDrillRecoveryStructurePlanHistory
|
||||
? FMath::Clamp(
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
+ (Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
|
||||
>= 80.0f
|
||||
? 1
|
||||
: 0)
|
||||
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
|
|
@ -1347,6 +1447,30 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& TrustedTightMethodDrillRecoveryStructurePlanLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::
|
||||
|
|
@ -1596,7 +1720,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
|
||||
const bool bBroadMethodDrillRecoveryStructureHandoffSource =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
|
|
@ -1610,7 +1736,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
|
||||
const bool bStrongMethodDrillRecoveryMemoryHandoffSource =
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
|
||||
|
|
@ -7613,6 +7741,28 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
BroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -7622,6 +7772,40 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
(static_cast<float>(MethodDrillRecoveryCompletedCount) * 100.0f)
|
||||
/ static_cast<float>(MethodDrillRecoveryStartedCount);
|
||||
}
|
||||
if ((TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
> 0)
|
||||
{
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanEventCount =
|
||||
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
|
||||
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
|
||||
TrustedTightMethodDrillRecoveryStructurePlanEventCount;
|
||||
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
|
||||
(static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
|
||||
* 100.0f)
|
||||
/ static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanEventCount);
|
||||
}
|
||||
if ((TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
> 0)
|
||||
{
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanEventCount =
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = FMath::Max(
|
||||
0,
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount +=
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanEventCount;
|
||||
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
|
||||
(static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
|
||||
* 100.0f)
|
||||
/ static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
|
||||
}
|
||||
const bool bStrongMethodDrillRecoveryHistory =
|
||||
MethodDrillRecoveryStartedCount >= 2
|
||||
&& MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount
|
||||
|
|
@ -7727,6 +7911,48 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bTrustedTightMethodDrillRecoveryStructurePlanHistory =
|
||||
(TrustedTightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
&& TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
>= TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
&& Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
|
||||
const bool bTrustedBroadMethodDrillRecoveryStructurePlanHistory =
|
||||
(TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
&& (TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount)
|
||||
>= TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
&& Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
|
||||
const int32 TrustedTightMethodDrillRecoveryStructurePlanLaunchBias =
|
||||
bTrustedTightMethodDrillRecoveryStructurePlanHistory
|
||||
? FMath::Clamp(
|
||||
(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount * 2)
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedTightMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ (Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore
|
||||
>= 80.0f
|
||||
? 1
|
||||
: 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias =
|
||||
bTrustedBroadMethodDrillRecoveryStructurePlanHistory
|
||||
? FMath::Clamp(
|
||||
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
+ (Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
|
||||
>= 80.0f
|
||||
? 1
|
||||
: 0)
|
||||
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 StrongMethodDrillFollowUpPacketStartedCount =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount
|
||||
|
|
@ -8030,6 +8256,30 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& TrustedTightMethodDrillRecoveryStructurePlanLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::
|
||||
|
|
@ -10012,6 +10262,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -10027,6 +10280,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -10068,6 +10324,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
|
||||
|
|
@ -10080,6 +10340,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp)
|
||||
{
|
||||
|
|
@ -10116,6 +10380,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
|
||||
|
|
@ -10128,6 +10396,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended)
|
||||
{
|
||||
|
|
@ -10164,6 +10436,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
|
||||
|
|
@ -10176,6 +10452,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryDashboardHandoff)
|
||||
{
|
||||
|
|
@ -10239,6 +10519,11 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
Summary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
|
|
@ -10249,6 +10534,11 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
Summary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
break;
|
||||
case EHyperTwistTrainingCoachSessionQueueEventKind::Completed:
|
||||
Summary.CompletedEventCount += 1;
|
||||
|
|
@ -10272,6 +10562,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -10281,6 +10574,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -10314,6 +10610,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedWeakMethodDrillRecoveryMemoryHandoffEventCount += 1;
|
||||
|
|
@ -10326,6 +10626,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
|
|
|
|||
|
|
@ -1959,6 +1959,18 @@ struct FHyperTwistTrainingCoachMemorySnapshot
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
float MethodDrillRecoveryAverageOutcomeScore = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 TrustedTightMethodDrillRecoveryStructurePlanHistoryCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
float TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
float TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bNeedsCoachIntervention = false;
|
||||
|
||||
|
|
@ -3744,6 +3756,15 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
|
|
@ -3753,6 +3774,15 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedMethodDrillQueuedHandoffEventCount = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue