Label retained drill recovery posture upstream
This commit is contained in:
parent
43f3b154ff
commit
fff0233d3c
4 changed files with 572 additions and 61 deletions
|
|
@ -177,7 +177,8 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
bool IsQueueRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.StartsWith(TEXT("coach-memory-queue-"))
|
||||
|| IsDashboardHandoffGuidanceSource(SourceLabel);
|
||||
|| IsDashboardHandoffGuidanceSource(SourceLabel)
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-method-drill-recovery-"));
|
||||
}
|
||||
|
||||
FString DescribeCoachMemorySourceLabel(const FString& SourceLabel)
|
||||
|
|
@ -222,26 +223,50 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-queued"))
|
||||
{
|
||||
return TEXT("accepted queued handoff history");
|
||||
|
|
@ -302,26 +327,50 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-queued"))
|
||||
{
|
||||
return TEXT("accepted deferred-overflow queued outcome handoff");
|
||||
|
|
@ -382,10 +431,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("successful retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-posture history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-posture history");
|
||||
}
|
||||
|
||||
return SourceLabel.IsEmpty() ? TEXT("n/a") : SourceLabel;
|
||||
}
|
||||
|
|
@ -409,18 +466,25 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
const bool bDeferredFirstSuppressionDriven,
|
||||
const bool bMethodDrillDriven = false,
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
EMethodDrillRecoveryMemoryBias::None)
|
||||
EMethodDrillRecoveryMemoryBias::None,
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven = false)
|
||||
{
|
||||
if (MethodDrillRecoveryMemoryBias == EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-strong-queued");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-strong-recommended");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-recommended");
|
||||
default:
|
||||
return FString();
|
||||
}
|
||||
|
|
@ -430,11 +494,17 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-weak-queued");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-weak-recommended");
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-recommended");
|
||||
default:
|
||||
return FString();
|
||||
}
|
||||
|
|
@ -1247,6 +1317,25 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
MethodDrillRecoveryMemoryHistoryEntries,
|
||||
true
|
||||
);
|
||||
const bool bUseStrongRetainedMethodDrillRecoveryPosture =
|
||||
!bHasDeferredFirstSuppressionSignal
|
||||
&& QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchCount > 0
|
||||
&& (QueueRecoveryWeighting.PreferredActionKind
|
||||
== FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::LaunchRecovery
|
||||
|| (!QueueRecoveryWeighting.IsStructurallyValid() && bUpstreamPrefersLaunchRecovery))
|
||||
&& (QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchReducedCount > 0
|
||||
|| QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchCount
|
||||
>= QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteCount);
|
||||
const bool bUseWeakRetainedMethodDrillRecoveryPosture =
|
||||
!bHasDeferredFirstSuppressionSignal
|
||||
&& !DeferredEntryId.IsEmpty()
|
||||
&& QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteCount > 0
|
||||
&& (QueueRecoveryWeighting.PreferredActionKind
|
||||
== FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::PromoteDeferred
|
||||
|| (!QueueRecoveryWeighting.IsStructurallyValid() && !bUpstreamPrefersLaunchRecovery))
|
||||
&& (QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteReducedCount > 0
|
||||
|| QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteCount
|
||||
>= QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchCount);
|
||||
|
||||
auto StartRunAndRefresh = [this](const FHyperTwistTrainingRunState& RunState)
|
||||
{
|
||||
|
|
@ -1267,7 +1356,8 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
bHasDeferredFirstSuppressionSignal,
|
||||
bPrefersFollowUp,
|
||||
bUseMethodDrillRecoverySignal,
|
||||
RetainedMethodDrillRecoveryMemoryBias
|
||||
bUseStrongRetainedMethodDrillRecoveryPosture,
|
||||
bUseWeakRetainedMethodDrillRecoveryPosture
|
||||
](
|
||||
const TCHAR* AppliedActionLabel,
|
||||
const FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind ActionKind,
|
||||
|
|
@ -1284,12 +1374,12 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
bBeforeCompletionGap,
|
||||
bHasDeferredFirstSuppressionSignal && bPrefersFollowUp,
|
||||
bUseMethodDrillRecoverySignal,
|
||||
bUseMethodDrillRecoverySignal
|
||||
&& RetainedMethodDrillRecoveryMemoryBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong,
|
||||
bUseMethodDrillRecoverySignal
|
||||
&& RetainedMethodDrillRecoveryMemoryBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak,
|
||||
bUseStrongRetainedMethodDrillRecoveryPosture
|
||||
&& ActionKind
|
||||
== FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::LaunchRecovery,
|
||||
bUseWeakRetainedMethodDrillRecoveryPosture
|
||||
&& ActionKind
|
||||
== FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::PromoteDeferred,
|
||||
bSucceeded
|
||||
);
|
||||
UpdateDashboardPresentation();
|
||||
|
|
@ -1299,7 +1389,8 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
[
|
||||
bHasDeferredFirstSuppressionSignal,
|
||||
bUseMethodDrillRecoverySignal,
|
||||
RetainedMethodDrillRecoveryMemoryBias
|
||||
RetainedMethodDrillRecoveryMemoryBias,
|
||||
bUseStrongRetainedMethodDrillRecoveryPosture
|
||||
](
|
||||
const EHyperTwistTrainingCoachHandoffKind HandoffKind)
|
||||
{
|
||||
|
|
@ -1310,6 +1401,16 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
true
|
||||
);
|
||||
}
|
||||
if (bUseStrongRetainedMethodDrillRecoveryPosture)
|
||||
{
|
||||
return HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
HandoffKind,
|
||||
false,
|
||||
false,
|
||||
HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong,
|
||||
true
|
||||
);
|
||||
}
|
||||
if (bUseMethodDrillRecoverySignal)
|
||||
{
|
||||
return HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
|
|
@ -6928,6 +7029,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
bool bHandoffRecommendationUsedDeferredFirstSuppressionSignal = false;
|
||||
bool bHandoffRecommendationUsedMethodDrillWeighting = false;
|
||||
bool bHandoffRecommendationUsedMethodDrillRecoveryMemory = false;
|
||||
bool bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture = false;
|
||||
bool bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture = false;
|
||||
const HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias
|
||||
CurrentMethodDrillRecoveryMemoryBias =
|
||||
HyperTwistCoachDashboardWidgetInternal::ResolveMethodDrillRecoveryMemoryBias(
|
||||
|
|
@ -6954,6 +7057,44 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
!= HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None
|
||||
? RetainedMethodDrillRecoveryMemoryHandoffBias
|
||||
: CurrentMethodDrillRecoveryMemoryBias;
|
||||
auto UsesStrongRetainedMethodDrillRecoveryPostureForKind = [
|
||||
&HandoffHistoryBias
|
||||
](const HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind Kind)
|
||||
{
|
||||
switch (Kind)
|
||||
{
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue:
|
||||
return HandoffHistoryBias.StrongRetainedMethodDrillQueueAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.StrongRetainedMethodDrillQueueRecommendationCount > 0;
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::FollowUp:
|
||||
return HandoffHistoryBias.StrongRetainedMethodDrillFollowUpAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.StrongRetainedMethodDrillFollowUpRecommendationCount > 0;
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended:
|
||||
return HandoffHistoryBias.StrongRetainedMethodDrillRecommendedAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.StrongRetainedMethodDrillRecommendedRecommendationCount > 0;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
};
|
||||
auto UsesWeakRetainedMethodDrillRecoveryPostureForKind = [
|
||||
&HandoffHistoryBias
|
||||
](const HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind Kind)
|
||||
{
|
||||
switch (Kind)
|
||||
{
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue:
|
||||
return HandoffHistoryBias.WeakRetainedMethodDrillQueueAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.WeakRetainedMethodDrillQueueRecommendationCount > 0;
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::FollowUp:
|
||||
return HandoffHistoryBias.WeakRetainedMethodDrillFollowUpAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.WeakRetainedMethodDrillFollowUpRecommendationCount > 0;
|
||||
case HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended:
|
||||
return HandoffHistoryBias.WeakRetainedMethodDrillRecommendedAcceptedDeltaCount > 0
|
||||
|| HandoffHistoryBias.WeakRetainedMethodDrillRecommendedRecommendationCount > 0;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
};
|
||||
if (!bCanUseCoachHandoff)
|
||||
{
|
||||
CoachHandoffRecommendationStatusLine =
|
||||
|
|
@ -7358,11 +7499,45 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
}
|
||||
bDisplayedCoachHandoffRecommendationUsedDeferredFirstSuppressionSignal =
|
||||
bHandoffRecommendationUsedDeferredFirstSuppressionSignal;
|
||||
bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture =
|
||||
!bHandoffRecommendationUsedDeferredFirstSuppressionSignal
|
||||
&& HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
&& UsesStrongRetainedMethodDrillRecoveryPostureForKind(HandoffRecommendationKind)
|
||||
&& (bHandoffRecommendationUsedHistory
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryMemory);
|
||||
bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture =
|
||||
!bHandoffRecommendationUsedDeferredFirstSuppressionSignal
|
||||
&& HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
&& UsesWeakRetainedMethodDrillRecoveryPostureForKind(HandoffRecommendationKind)
|
||||
&& (bHandoffRecommendationUsedHistory
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryMemory);
|
||||
bDisplayedCoachHandoffRecommendationUsedMethodDrillWeighting =
|
||||
bHandoffRecommendationUsedMethodDrillWeighting
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryMemory;
|
||||
if (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
&& RetainedMethodDrillRecoveryMemoryHandoffBias
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|| bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture;
|
||||
if (bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture)
|
||||
{
|
||||
DisplayedCoachHandoffMethodDrillRecoveryMemoryStartActionSourceLabel =
|
||||
HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
DisplayedCoachHandoffRecommendationKind,
|
||||
false,
|
||||
false,
|
||||
bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak,
|
||||
true
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None)
|
||||
{
|
||||
DisplayedCoachHandoffMethodDrillRecoveryMemoryStartActionSourceLabel =
|
||||
|
|
@ -7370,7 +7545,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
DisplayedCoachHandoffRecommendationKind,
|
||||
false,
|
||||
false,
|
||||
RetainedMethodDrillRecoveryMemoryHandoffBias
|
||||
EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -7482,12 +7657,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
bRecommendedReadyForHandoff,
|
||||
bHandoffRecommendationUsedDeferredFirstSuppressionSignal,
|
||||
bHandoffRecommendationUsedMethodDrillWeighting,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture,
|
||||
bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture
|
||||
);
|
||||
FString QueuedRunLabel = CachedCoachPanelState.NextQueueSourceLabel.IsEmpty()
|
||||
? TEXT("Start Queue")
|
||||
|
|
|
|||
|
|
@ -47,7 +47,13 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended");
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
|
|
@ -55,6 +61,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
return IsMethodDrillDashboardHandoffSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak");
|
||||
}
|
||||
|
|
@ -62,18 +70,30 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
bool IsStrongMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-"))
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-weak-"))
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-"))
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak");
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +128,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
bool IsQueueRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.StartsWith(TEXT("coach-memory-queue-"))
|
||||
|| IsDashboardHandoffGuidanceSource(SourceLabel);
|
||||
|| IsDashboardHandoffGuidanceSource(SourceLabel)
|
||||
|| IsMethodDrillRecoveryMemorySource(SourceLabel);
|
||||
}
|
||||
|
||||
FString DescribeCoachMemorySourceLabel(const FString& SourceLabel)
|
||||
|
|
@ -173,6 +194,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued handoff history");
|
||||
|
|
@ -185,6 +218,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-queue-follow-up"))
|
||||
{
|
||||
return TEXT("queue follow-up recovery memory");
|
||||
|
|
@ -241,6 +286,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued dashboard handoff");
|
||||
|
|
@ -253,6 +310,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-queued"))
|
||||
{
|
||||
return TEXT("accepted deferred-overflow queued outcome handoff");
|
||||
|
|
@ -317,6 +386,14 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("weak retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-posture history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-posture history");
|
||||
}
|
||||
|
||||
return SourceLabel.IsEmpty() ? TEXT("none") : SourceLabel;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,9 +79,15 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-"));
|
||||
}
|
||||
|
||||
|
|
@ -89,14 +95,36 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended");
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended");
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsMethodDrillRecoveryCoachMemorySource(const FString& SourceLabel)
|
||||
|
|
@ -104,7 +132,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
return SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak");
|
||||
}
|
||||
|
||||
EHyperTwistTrainingCoachHandoffKind DashboardHandoffKindFromSourceLabel(const FString& SourceLabel)
|
||||
|
|
@ -114,7 +144,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued"))
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
}
|
||||
|
|
@ -123,7 +155,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up"))
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
}
|
||||
|
|
@ -132,7 +166,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended"))
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
}
|
||||
|
|
@ -153,7 +189,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
const bool bDeferredFirstDriven = false,
|
||||
const bool bMethodDrillDriven = false,
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
EMethodDrillRecoveryMemoryBias::None
|
||||
EMethodDrillRecoveryMemoryBias::None,
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven = false
|
||||
)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
|
|
@ -164,11 +201,19 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-queued");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-strong-queued");
|
||||
}
|
||||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Weak)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-queued");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-weak-queued");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-queued");
|
||||
|
|
@ -186,11 +231,19 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-follow-up");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-strong-follow-up");
|
||||
}
|
||||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Weak)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-follow-up");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-weak-follow-up");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-follow-up");
|
||||
|
|
@ -208,11 +261,19 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-recommended");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-strong-recommended");
|
||||
}
|
||||
if (MethodDrillRecoveryMemoryBias
|
||||
== EMethodDrillRecoveryMemoryBias::Weak)
|
||||
{
|
||||
if (bRetainedMethodDrillRecoveryPostureDriven)
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-recommended");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recovery-weak-recommended");
|
||||
}
|
||||
return TEXT("coach-memory-dashboard-method-drill-recommended");
|
||||
|
|
@ -611,6 +672,24 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
WeakMethodDrillRecoveryMemoryStartedCount
|
||||
- WeakMethodDrillRecoveryMemoryCompletedCount
|
||||
);
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureStartedCount =
|
||||
QueueExecutionSummary.StartedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureCompletedCount =
|
||||
QueueExecutionSummary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureOutstandingCount = FMath::Max(
|
||||
0,
|
||||
StrongRetainedMethodDrillRecoveryPostureStartedCount
|
||||
- StrongRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
);
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureStartedCount =
|
||||
QueueExecutionSummary.StartedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureCompletedCount =
|
||||
QueueExecutionSummary.CompletedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureOutstandingCount = FMath::Max(
|
||||
0,
|
||||
WeakRetainedMethodDrillRecoveryPostureStartedCount
|
||||
- WeakRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -662,6 +741,24 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 RetainedMethodDrillRecoveryPostureLaunchBias =
|
||||
StrongRetainedMethodDrillRecoveryPostureStartedCount > 0
|
||||
? FMath::Clamp(
|
||||
(StrongRetainedMethodDrillRecoveryPostureCompletedCount * 2)
|
||||
- StrongRetainedMethodDrillRecoveryPostureOutstandingCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 RetainedMethodDrillRecoveryPosturePromoteBias =
|
||||
WeakRetainedMethodDrillRecoveryPostureStartedCount > 0
|
||||
? FMath::Clamp(
|
||||
(WeakRetainedMethodDrillRecoveryPostureOutstandingCount * 2)
|
||||
- WeakRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
if (ExplicitQueuedHandoffSignal > 0
|
||||
|| ExplicitFollowUpHandoffSignal > 0
|
||||
|| ExplicitRecommendedHandoffSignal > 0)
|
||||
|
|
@ -669,11 +766,16 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
if (ExplicitQueuedHandoffSignal >= ExplicitFollowUpHandoffSignal
|
||||
&& ExplicitQueuedHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0;
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? EMethodDrillRecoveryMemoryBias::Strong
|
||||
: (ExplicitMethodDrillQueuedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
? EMethodDrillRecoveryMemoryBias::Strong
|
||||
: EMethodDrillRecoveryMemoryBias::None;
|
||||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -681,16 +783,22 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
else if (ExplicitFollowUpHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0;
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? EMethodDrillRecoveryMemoryBias::Strong
|
||||
: (ExplicitMethodDrillFollowUpHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
? EMethodDrillRecoveryMemoryBias::Strong
|
||||
: EMethodDrillRecoveryMemoryBias::None;
|
||||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -698,16 +806,22 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPosturePromoteBias > 0;
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? EMethodDrillRecoveryMemoryBias::Weak
|
||||
: (ExplicitMethodDrillRecommendedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPromoteBias > 0
|
||||
? EMethodDrillRecoveryMemoryBias::Weak
|
||||
: EMethodDrillRecoveryMemoryBias::None;
|
||||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -715,7 +829,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -728,7 +843,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ ExplicitMethodDrillQueuedHandoffSignal
|
||||
+ ExplicitMethodDrillFollowUpHandoffSignal
|
||||
+ MethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryLaunchBias;
|
||||
+ RetainedMethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryPostureLaunchBias;
|
||||
const int32 WeightedRecommendedRecoverySignal =
|
||||
ExplicitRecommendedRecoverySignal
|
||||
+ ExplicitRecommendedHandoffSignal
|
||||
|
|
@ -736,7 +852,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ ExplicitDeferredFirstRecommendedHandoffSignal
|
||||
+ ExplicitMethodDrillRecommendedHandoffSignal
|
||||
+ MethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPromoteBias;
|
||||
+ RetainedMethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPosturePromoteBias;
|
||||
const bool bQueueHistoryPrefersFollowUp =
|
||||
DominantDeferredLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|| (DominantCompletedLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|
|
@ -754,7 +871,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ (DominantDeferredLane != EHyperTwistTrainingCoachGuidanceLane::None ? 1.5f : 0.0f)
|
||||
- (QueueExecutionSummary.bHasCompletionGap ? 1.0f : 0.0f)
|
||||
+ (static_cast<float>(MethodDrillRecoveryPromoteBias) * 1.5f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPromoteBias) * 1.75f);
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPromoteBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPosturePromoteBias) * 2.0f);
|
||||
const float LaunchRecoveryActionPressure =
|
||||
(QueueExecutionSummary.bHasCompletionGap ? 4.0f : 0.0f)
|
||||
+ (QueueExecutionSummary.bHasBlockedFollowUpFriction ? 2.5f : 0.0f)
|
||||
|
|
@ -770,7 +888,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ static_cast<float>(ExplicitMethodDrillFollowUpHandoffSignal)
|
||||
+ static_cast<float>(ExplicitMethodDrillRecommendedHandoffSignal) * 0.5f
|
||||
+ (static_cast<float>(MethodDrillRecoveryLaunchBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f);
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPostureLaunchBias) * 2.25f);
|
||||
if (PromoteRecoveryActionPressure > 0.0f || LaunchRecoveryActionPressure > 0.0f)
|
||||
{
|
||||
if (PromoteRecoveryActionPressure > LaunchRecoveryActionPressure)
|
||||
|
|
@ -799,6 +918,29 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
}
|
||||
}
|
||||
if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 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-posture-strong");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& RetainedMethodDrillRecoveryPosturePromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-posture-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|
|
@ -6770,6 +6912,24 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
WeakMethodDrillRecoveryMemoryStartedCount
|
||||
- WeakMethodDrillRecoveryMemoryCompletedCount
|
||||
);
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureStartedCount =
|
||||
QueueExecutionSummary.StartedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureCompletedCount =
|
||||
QueueExecutionSummary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 StrongRetainedMethodDrillRecoveryPostureOutstandingCount = FMath::Max(
|
||||
0,
|
||||
StrongRetainedMethodDrillRecoveryPostureStartedCount
|
||||
- StrongRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
);
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureStartedCount =
|
||||
QueueExecutionSummary.StartedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureCompletedCount =
|
||||
QueueExecutionSummary.CompletedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount;
|
||||
const int32 WeakRetainedMethodDrillRecoveryPostureOutstandingCount = FMath::Max(
|
||||
0,
|
||||
WeakRetainedMethodDrillRecoveryPostureStartedCount
|
||||
- WeakRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -6821,6 +6981,24 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 RetainedMethodDrillRecoveryPostureLaunchBias =
|
||||
StrongRetainedMethodDrillRecoveryPostureStartedCount > 0
|
||||
? FMath::Clamp(
|
||||
(StrongRetainedMethodDrillRecoveryPostureCompletedCount * 2)
|
||||
- StrongRetainedMethodDrillRecoveryPostureOutstandingCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 RetainedMethodDrillRecoveryPosturePromoteBias =
|
||||
WeakRetainedMethodDrillRecoveryPostureStartedCount > 0
|
||||
? FMath::Clamp(
|
||||
(WeakRetainedMethodDrillRecoveryPostureOutstandingCount * 2)
|
||||
- WeakRetainedMethodDrillRecoveryPostureCompletedCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
if (ExplicitQueuedHandoffSignal > 0
|
||||
|| ExplicitFollowUpHandoffSignal > 0
|
||||
|| ExplicitRecommendedHandoffSignal > 0)
|
||||
|
|
@ -6828,12 +7006,17 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
if (ExplicitQueuedHandoffSignal >= ExplicitFollowUpHandoffSignal
|
||||
&& ExplicitQueuedHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0;
|
||||
const HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias =
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: (ExplicitMethodDrillQueuedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None;
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -6841,17 +7024,23 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
else if (ExplicitFollowUpHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0;
|
||||
const HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias =
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: (ExplicitMethodDrillFollowUpHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None;
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -6859,17 +7048,23 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven =
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPosturePromoteBias > 0;
|
||||
const HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias =
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
: (ExplicitMethodDrillRecommendedHandoffSignal > 0
|
||||
&& RetainedMethodDrillRecoveryPromoteBias > 0
|
||||
? HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None;
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
|
|
@ -6877,7 +7072,8 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -6890,7 +7086,8 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ ExplicitMethodDrillQueuedHandoffSignal
|
||||
+ ExplicitMethodDrillFollowUpHandoffSignal
|
||||
+ MethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryLaunchBias;
|
||||
+ RetainedMethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryPostureLaunchBias;
|
||||
const int32 WeightedRecommendedRecoverySignal =
|
||||
ExplicitRecommendedRecoverySignal
|
||||
+ ExplicitRecommendedHandoffSignal
|
||||
|
|
@ -6898,7 +7095,8 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ ExplicitDeferredFirstRecommendedHandoffSignal
|
||||
+ ExplicitMethodDrillRecommendedHandoffSignal
|
||||
+ MethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPromoteBias;
|
||||
+ RetainedMethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPosturePromoteBias;
|
||||
const bool bQueueHistoryPrefersFollowUp =
|
||||
DominantDeferredLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|| (DominantCompletedLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|
|
@ -6916,7 +7114,8 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ (DominantDeferredLane != EHyperTwistTrainingCoachGuidanceLane::None ? 1.5f : 0.0f)
|
||||
- (QueueExecutionSummary.bHasCompletionGap ? 1.0f : 0.0f)
|
||||
+ (static_cast<float>(MethodDrillRecoveryPromoteBias) * 1.5f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPromoteBias) * 1.75f);
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPromoteBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPosturePromoteBias) * 2.0f);
|
||||
const float LaunchRecoveryActionPressure =
|
||||
(QueueExecutionSummary.bHasCompletionGap ? 4.0f : 0.0f)
|
||||
+ (QueueExecutionSummary.bHasBlockedFollowUpFriction ? 2.5f : 0.0f)
|
||||
|
|
@ -6932,7 +7131,8 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ static_cast<float>(ExplicitMethodDrillFollowUpHandoffSignal)
|
||||
+ static_cast<float>(ExplicitMethodDrillRecommendedHandoffSignal) * 0.5f
|
||||
+ (static_cast<float>(MethodDrillRecoveryLaunchBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f);
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPostureLaunchBias) * 2.25f);
|
||||
if (PromoteRecoveryActionPressure > 0.0f || LaunchRecoveryActionPressure > 0.0f)
|
||||
{
|
||||
if (PromoteRecoveryActionPressure > LaunchRecoveryActionPressure)
|
||||
|
|
@ -6961,6 +7161,29 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
}
|
||||
}
|
||||
if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 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-posture-strong");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& RetainedMethodDrillRecoveryPosturePromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-posture-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|
|
@ -8832,6 +9055,12 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::Queue)
|
||||
{
|
||||
Summary.StartedQueuedHandoffEventCount += 1;
|
||||
|
|
@ -8888,6 +9117,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryMemoryHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
}
|
||||
if (Summary.LastStartedAtUtc.IsEmpty()
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::CompareUtcStrings(
|
||||
HistoryEntry.EventAtUtc,
|
||||
|
|
@ -8944,6 +9181,12 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const EHyperTwistTrainingCoachHandoffKind CompletedHandoffKind =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::DashboardHandoffKindFromSourceLabel(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -8967,6 +9210,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.CompletedWeakMethodDrillRecoveryMemoryHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
CompletedCountsByEntryId.FindOrAdd(HistoryEntry.EntryId) += 1;
|
||||
if (Summary.LastCompletedAtUtc.IsEmpty()
|
||||
|
|
|
|||
|
|
@ -3690,6 +3690,18 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedWeakMethodDrillRecoveryMemoryHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedWeakRetainedMethodDrillRecoveryPostureHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PromotedFollowUpEventCount = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue