diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp index 92104a3..a7a3e14 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp @@ -381,6 +381,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-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-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-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( @@ -443,6 +445,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-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-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-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-")) @@ -507,6 +511,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-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 reliability completion outcome completion outcome 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-reliable-reliable-reliable-reliable-reliable")) { @@ -690,6 +699,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-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 reliability completion outcome completion outcome 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-reliable-reliable-reliable-reliable-reliable")) { diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp index 5fb32ac..adc6bca 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp @@ -508,6 +508,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-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-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-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-")) @@ -566,6 +568,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-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-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-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-")) @@ -9723,6 +9727,46 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der 1, 17) : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSignal = + (RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 94.0f) + ? FMath::Clamp( + RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 18) + : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSignal = + (RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 92.0f) + ? FMath::Clamp( + RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 18) + : 0; if (AcceptedAlignedTightPacketOutcomeBias > AcceptedAlignedBroadPacketOutcomeBias) { Snapshot.FollowUpGuidanceContinueBias += AcceptedAlignedTightPacketOutcomeBias; @@ -10892,6 +10936,75 @@ 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-reliable-reliable-reliable-reliable-reliable-reliable"); } } + if (HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSignal) + { + Snapshot.FollowUpGuidanceContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSignal; + Snapshot.SuppressedPrimaryQueuePressureCount += FMath::Max( + 1, + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSignal + - 1); + if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None + || Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::Recommended + || Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource( + 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-reliable-reliable-reliable-reliable-reliable"); + } + if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None + || Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended + || Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty() + || Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource( + Snapshot.PreferredCoachHandoffSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource( + 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-reliable-reliable-reliable-reliable-reliable"); + } + } + else if ( + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSignal) + { + Snapshot.RecommendedGuidanceContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSignal; + Snapshot.SuppressedFollowUpQueuePressureCount += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSignal; + if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None + || Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp + || Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource( + Snapshot.PreferredGuidanceSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource( + 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-reliable-reliable-reliable-reliable-reliable"); + } + if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None + || Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp + || Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty() + || Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history")) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource( + Snapshot.PreferredCoachHandoffSourceLabel) + || HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource( + 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-reliable-reliable-reliable-reliable-reliable"); + } + } if (!RecommendationHistory.FocusDeckId.IsEmpty() && (Snapshot.FocusDeckId.IsEmpty() @@ -19266,6 +19379,10 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito 0.0f; float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = 0.0f; + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = + 0.0f; + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = + 0.0f; FString LatestPlanSortUtc; for (const FHyperTwistTrainingCoachActionPlan& Plan : UserPlans) @@ -19764,6 +19881,22 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += OutcomeSummary.OutcomeScore; } + if (OutcomeSummary.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-reliable-reliable-reliable-reliable")) + { + Summary.AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount += + 1; + AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += + OutcomeSummary.OutcomeScore; + } + if (OutcomeSummary.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-reliable-reliable-reliable-reliable")) + { + Summary.AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount += + 1; + AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += + OutcomeSummary.OutcomeScore; + } if (OutcomeSummary.PlannedLaunchCaseCount > 0) { PlannedLaunchCaseCountAccumulator += @@ -20290,6 +20423,28 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito Summary .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); } + if (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + > 0) + { + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = + AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator + / static_cast( + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); + } + if (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + > 0) + { + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = + AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator + / static_cast( + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); + } const int32 AcceptedAlignedTightPacketOutcomeLaneSignal = (Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount >= 2 && Summary.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore >= 60.0f) @@ -21084,6 +21239,46 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito 1, 16) : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSummarySignal = + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 90.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 17) + : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSummarySignal = + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 88.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 17) + : 0; const int32 HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal = (Summary .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount @@ -21729,6 +21924,35 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito Summary.RecommendedLaneContinueBias += HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionSummarySignal; } + if (HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSummarySignal) + { + if (Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::Timer + || Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::VirtualCube) + { + Summary.DominantSuggestedMode = EHyperTwistTrainingDeliveryMode::CoachReviewed; + } + Summary.DominantSelectionPolicy = EHyperTwistTrainingSelectionPolicy::Scripted; + Summary.FollowUpLaneContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSummarySignal; + } + else if ( + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSummarySignal) + { + 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 += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSummarySignal; + } if (HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal) { @@ -21800,6 +22024,8 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeSummarySignal || HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionSummarySignal > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionSummarySignal + || HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeSummarySignal || HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal || (Summary.bHasRepeatRecommendationPressure diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h index 2a415dd..acfc233 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h @@ -5317,6 +5317,18 @@ struct FHyperTwistTrainingCoachRecommendationHistorySummary UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") TArray RecurringCaseIds;