diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp index 37221ee..3019ff4 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp @@ -335,6 +335,10 @@ namespace HyperTwistTrainingCoachLibraryInternal return SourceLabel == TEXT("recommendation-history-aligned-tight-follow-up-outcome") || SourceLabel == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome") + || 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") TEXT("-reliable") @@ -440,6 +444,10 @@ namespace HyperTwistTrainingCoachLibraryInternal return SourceLabel == TEXT("recommendation-history-aligned-broad-recommended-outcome") || SourceLabel == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome") + || 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") TEXT("-reliable") diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp index 47fe185..e435f7c 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp @@ -464,6 +464,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal { return SourceLabel == TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome") + || 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") TEXT("-reliable") @@ -563,6 +567,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal { return SourceLabel == TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome") + || 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") TEXT("-reliable") @@ -10945,6 +10953,46 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der 1, 11) : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal = + (RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 98.0f) + ? FMath::Clamp( + RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 10) + : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal = + (RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 96.0f) + ? FMath::Clamp( + RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - RecommendationHistory + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (RecommendationHistory + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 10) + : 0; if (AcceptedAlignedTightPacketOutcomeBias > AcceptedAlignedBroadPacketOutcomeBias) { Snapshot.FollowUpGuidanceContinueBias += AcceptedAlignedTightPacketOutcomeBias; @@ -13501,6 +13549,84 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der } } + if (HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal) + { + Snapshot.FollowUpGuidanceContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal; + Snapshot.SuppressedPrimaryQueuePressureCount += FMath::Max( + 1, + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal + - 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-reliable"); + } + } + else if ( + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal) + { + Snapshot.RecommendedGuidanceContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal; + Snapshot.SuppressedFollowUpQueuePressureCount += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSignal; + 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable") + TEXT("-reliable"); + } + } + if (!RecommendationHistory.FocusDeckId.IsEmpty() && (Snapshot.FocusDeckId.IsEmpty() || RecommendationHistory.bShouldBiasCoachReviewed)) @@ -22190,6 +22316,10 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito 0.0f; float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = 0.0f; + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = + 0.0f; + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator = + 0.0f; FString LatestPlanSortUtc; for (const FHyperTwistTrainingCoachActionPlan& Plan : UserPlans) @@ -22848,6 +22978,24 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable")) + { + Summary.AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount += + 1; + AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += + 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-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable-reliable") + TEXT("-reliable")) + { + Summary.AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount += + 1; + AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator += + OutcomeSummary.OutcomeScore; + } if (OutcomeSummary.PlannedLaunchCaseCount > 0) { PlannedLaunchCaseCountAccumulator += @@ -23594,6 +23742,28 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito Summary .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); } + if (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + > 0) + { + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = + AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator + / static_cast( + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); + } + if (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + > 0) + { + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = + AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAccumulator + / static_cast( + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount); + } const int32 AcceptedAlignedTightPacketOutcomeLaneSignal = (Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount >= 2 && Summary.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore >= 60.0f) @@ -25108,6 +25278,46 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito 1, 10) : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal = + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 94.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 9) + : 0; + const int32 HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal = + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + >= 2 + && Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 92.0f) + ? FMath::Clamp( + Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + - Summary + .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount + + (Summary + .AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore + >= 100.0f + ? 1 + : 0), + 1, + 9) + : 0; const int32 HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal = (Summary .AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedHistoryCount @@ -26275,6 +26485,35 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito Summary.RecommendedLaneContinueBias += HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionSummarySignal; } + if (HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal) + { + if (Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::Timer + || Summary.DominantSuggestedMode == EHyperTwistTrainingDeliveryMode::VirtualCube) + { + Summary.DominantSuggestedMode = EHyperTwistTrainingDeliveryMode::CoachReviewed; + } + Summary.DominantSelectionPolicy = EHyperTwistTrainingSelectionPolicy::Scripted; + Summary.FollowUpLaneContinueBias += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal; + } + else if ( + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal) + { + 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 += + HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal; + } if (HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal) { @@ -26380,6 +26619,8 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal || HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionSummarySignal > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionSummarySignal + || HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedTightCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal + > HighestExactCompletionReliabilityOutcomeTierAcceptedAlignedBroadCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeCompletionOutcomeSummarySignal || HighestExactOutcomeTierAcceptedAlignedTightCompletionSummarySignal > HighestExactOutcomeTierAcceptedAlignedBroadCompletionSummarySignal || (Summary.bHasRepeatRecommendationPressure diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h index ffa303a..9a770e1 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h @@ -5677,6 +5677,18 @@ struct FHyperTwistTrainingCoachRecommendationHistorySummary UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAcceptedAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float AcceptedAlignedBroadRecommendedPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableAverageScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") int32 AcceptedAlignedTightFollowUpPacketTrustReliableExactOutcomeReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableReliableHistoryCount = 0;