diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp index e79fc2f..c330876 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp @@ -371,6 +371,8 @@ namespace HyperTwistTrainingCoachLibraryInternal == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + || SourceLabel + == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up") || SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-")) || SourceLabel.StartsWith( @@ -423,6 +425,8 @@ namespace HyperTwistTrainingCoachLibraryInternal == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + || SourceLabel + == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended") || SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-")) @@ -487,6 +491,11 @@ namespace HyperTwistTrainingCoachLibraryInternal } if (IsAlignedTightFollowUpGuidanceSourceLabel(SourceLabel)) { + if (SourceLabel + == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + return TEXT("higher-order reliable exact accepted aligned tight follow-up-packet branch completion dependability outcome reliability outcome acceptance outcome reliability outcome reliability outcome completion outcome completion reliability outcome completion history"); + } if (SourceLabel == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) { @@ -645,6 +654,11 @@ namespace HyperTwistTrainingCoachLibraryInternal } if (IsAlignedBroadRecommendedGuidanceSourceLabel(SourceLabel)) { + if (SourceLabel + == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + return TEXT("higher-order reliable exact accepted aligned broad recommended-packet branch completion dependability outcome reliability outcome acceptance outcome reliability outcome reliability outcome completion outcome completion reliability outcome completion history"); + } if (SourceLabel == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) { diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp index 27b1f39..b42e99e 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp @@ -498,6 +498,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + || SourceLabel + == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-")) || SourceLabel.StartsWith( TEXT("coach-memory-dashboard-accepted-aligned-follow-up-packet-tight-")) @@ -546,6 +548,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + || SourceLabel + == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") || SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-")) || SourceLabel.StartsWith( TEXT("coach-memory-dashboard-accepted-aligned-follow-up-packet-broad-")) @@ -1753,6 +1757,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal const int32 AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableCompletedCount = QueueExecutionSummary .CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount; + const int32 AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount = + QueueExecutionSummary + .StartedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount; + const int32 AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableCompletedCount = + QueueExecutionSummary + .CompletedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount; + const int32 AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount = + QueueExecutionSummary + .StartedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount; + const int32 AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableCompletedCount = + QueueExecutionSummary + .CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount; if (MethodDrillRecoveryStartedCount > 0) { Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount; @@ -2132,6 +2148,28 @@ namespace HyperTwistTrainingRepositoryLibraryInternal / static_cast( AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount); } + if (AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount > 0) + { + Snapshot.AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount += + AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount; + Snapshot.AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = + (static_cast( + AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableCompletedCount) + * 100.0f) + / static_cast( + AcceptedAlignedTightPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount); + } + if (AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount > 0) + { + Snapshot.AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount += + AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount; + Snapshot.AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = + (static_cast( + AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableCompletedCount) + * 100.0f) + / static_cast( + AcceptedAlignedBroadPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableStartedCount); + } const bool bStrongMethodDrillRecoveryHistory = MethodDrillRecoveryStartedCount >= 2 && MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount @@ -12214,6 +12252,46 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der 1, 14) : 0; + const int32 HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal = + (Snapshot + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + >= 2 + && Snapshot + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 88.0f) + ? FMath::Clamp( + Snapshot + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + - Snapshot + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + + (Snapshot + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 15) + : 0; + const int32 HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal = + (Snapshot + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + >= 2 + && Snapshot + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 86.0f) + ? FMath::Clamp( + Snapshot + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + - Snapshot + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + + (Snapshot + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 15) + : 0; if (AcceptedAlignedTightPacketOutcomeTrustSignal > AcceptedAlignedBroadPacketOutcomeTrustSignal) { @@ -13790,6 +13868,118 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable"); } } + if (HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal + > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal) + { + Snapshot.FollowUpGuidanceContinueBias += + HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal; + Snapshot.SuppressedPrimaryQueuePressureCount += FMath::Max( + 1, + HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal - 1); + ExplicitFollowUpHandoffSignal = FMath::Clamp( + ExplicitFollowUpHandoffSignal + + (HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal * 2), + 0, + 6); + if (QueueExecutionSummary.bHasOutstandingDeferredWork + || QueueExecutionSummary.StartedQueuedHandoffEventCount > 0) + { + ExplicitQueuedHandoffSignal = FMath::Clamp( + ExplicitQueuedHandoffSignal + + FMath::Min(2, HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal), + 0, + 5); + } + if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None + || Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::Recommended + || Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeTrustSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedBroadRecommendedPacketOutcomeAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedBroadRecommendedPacketExactAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedBroadRecommendedPacketExactOutcomeHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedBroadRecommendedPacketExactOutcomeAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedBroadRecommendedPacketExactOutcomeReliableHistorySource( + Snapshot.PreferredGuidanceSourceLabel)) + { + Snapshot.PreferredGuidanceLane = + EHyperTwistTrainingCoachGuidanceLane::FollowUp; + Snapshot.PreferredGuidanceSourceLabel = + TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable"); + } + if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None + || Snapshot.PreferredCoachHandoffKind + == EHyperTwistTrainingCoachHandoffKind::Recommended + || Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty() + || Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeTrustSource( + Snapshot.PreferredCoachHandoffSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( + Snapshot.PreferredCoachHandoffSourceLabel)) + { + Snapshot.PreferredCoachHandoffKind = + EHyperTwistTrainingCoachHandoffKind::FollowUp; + Snapshot.PreferredCoachHandoffSourceLabel = + TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable"); + } + } + else if (HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal + > HighestExactOutcomeTierAcceptedAlignedTightCompletionSignal) + { + Snapshot.RecommendedGuidanceContinueBias += + HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal; + Snapshot.SuppressedFollowUpQueuePressureCount += + HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal; + ExplicitRecommendedHandoffSignal = FMath::Clamp( + ExplicitRecommendedHandoffSignal + + (HighestExactOutcomeTierAcceptedAlignedBroadCompletionSignal * 2), + 0, + 6); + if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None + || Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp + || Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeTrustSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedTightFollowUpPacketOutcomeAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedTightFollowUpPacketExactAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedTightFollowUpPacketExactOutcomeHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedTightFollowUpPacketExactOutcomeAcceptedHistorySource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsReliableAcceptedAlignedTightFollowUpPacketExactOutcomeReliableHistorySource( + Snapshot.PreferredGuidanceSourceLabel)) + { + Snapshot.PreferredGuidanceLane = + EHyperTwistTrainingCoachGuidanceLane::Recommended; + Snapshot.PreferredGuidanceSourceLabel = + TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable"); + } + if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None + || Snapshot.PreferredCoachHandoffKind + == EHyperTwistTrainingCoachHandoffKind::FollowUp + || Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty() + || Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeTrustSource( + Snapshot.PreferredCoachHandoffSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( + Snapshot.PreferredCoachHandoffSourceLabel)) + { + Snapshot.PreferredCoachHandoffKind = + EHyperTwistTrainingCoachHandoffKind::Recommended; + Snapshot.PreferredCoachHandoffSourceLabel = + TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable"); + } + } if (StrongMethodDrillFollowUpPacketStartedCount > 0 && StrongMethodDrillFollowUpPacketStartedCount >= WeakMethodDrillFollowUpPacketStartedCount) @@ -16747,6 +16937,13 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito .StartedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += 1; } + if (HistoryEntry.StartActionSourceLabel + == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + Summary + .StartedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += + 1; + } if (HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( HistoryEntry.StartActionSourceLabel)) { @@ -16832,6 +17029,13 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito .StartedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += 1; } + if (HistoryEntry.StartActionSourceLabel + == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + Summary + .StartedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += + 1; + } if (Summary.LastStartedAtUtc.IsEmpty() || HyperTwistTrainingRepositoryLibraryInternal::CompareUtcStrings( HistoryEntry.EventAtUtc, @@ -17127,6 +17331,13 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito .CompletedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += 1; } + if (HistoryEntry.StartActionSourceLabel + == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + Summary + .CompletedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += + 1; + } if (HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeTrustSource( HistoryEntry.StartActionSourceLabel)) { @@ -17212,6 +17423,13 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito .CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += 1; } + if (HistoryEntry.StartActionSourceLabel + == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-reliable-exact-branch-dependability-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable")) + { + Summary + .CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount += + 1; + } CompletedCountsByEntryId.FindOrAdd(HistoryEntry.EntryId) += 1; if (Summary.LastCompletedAtUtc.IsEmpty() || HyperTwistTrainingRepositoryLibraryInternal::CompareUtcStrings( @@ -20011,6 +20229,46 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito 1, 16) : 0; + const int32 HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal = + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + >= 2 + && Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 88.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + - Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 15) + : 0; + const int32 HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal = + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + >= 2 + && Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 86.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + - Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount + + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 15) + : 0; if (AcceptedAlignedTightPacketOutcomeLaneSignal > AcceptedAlignedBroadPacketOutcomeLaneSignal) { if (Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::Timer @@ -20502,6 +20760,34 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito Summary.RecommendedLaneContinueBias += AcceptedAlignedBroadPacketHighestCompletionReliabilityOutcomeSummarySignal; } + if (HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal + > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal) + { + if (Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::Timer + || Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::VirtualCube) + { + Summary.DominantSuggestedMode = EHyperTwistTrainingDeliveryMode::CoachReviewed; + } + Summary.DominantSelectionPolicy = EHyperTwistTrainingSelectionPolicy::Scripted; + Summary.FollowUpLaneContinueBias += + HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal; + } + else if (HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal + > HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal) + { + if (Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::CoachReviewed + && Summary.EscalatedSequenceCount == 0 + && Summary.FollowUpReadySequenceCount == 0) + { + Summary.DominantSuggestedMode = EHyperTwistTrainingDeliveryMode::Timer; + } + if (Summary.DominantSelectionPolicy == EHyperTwistTrainingSelectionPolicy::Scripted) + { + Summary.DominantSelectionPolicy = EHyperTwistTrainingSelectionPolicy::Weighted; + } + Summary.RecommendedLaneContinueBias += + HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal; + } Summary.bHasRepeatRecommendationPressure = Summary.RepeatRecommendationSequenceCount > 0 && (Summary.RecurringCaseCount > 0 @@ -20537,6 +20823,8 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito > AcceptedAlignedBroadPacketReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableSignal || AcceptedAlignedTightPacketHighestCompletionReliabilityOutcomeSummarySignal > AcceptedAlignedBroadPacketHighestCompletionReliabilityOutcomeSummarySignal + || HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal + > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal || (Summary.bHasRepeatRecommendationPressure && Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::CoachReviewed); diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h index c7cafe3..a690f09 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h @@ -2259,6 +2259,18 @@ struct FHyperTwistTrainingCoachMemorySnapshot UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") bool bNeedsCoachIntervention = false; @@ -4173,6 +4185,18 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") int32 CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount = 0; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 StartedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 CompletedAcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 StartedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 CompletedAcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHandoffEventCount = 0; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") int32 StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount = 0; @@ -5185,6 +5209,18 @@ struct FHyperTwistTrainingCoachRecommendationHistorySummary UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") TArray RecurringCaseIds;