From 7718fd6a3ecb2dfa7651bae9230d1b2fc2e6f214 Mon Sep 17 00:00:00 2001 From: axiomlogicnexus Date: Wed, 29 Apr 2026 20:14:50 +0200 Subject: [PATCH] Retain reliable drill recovery plan history upstream --- .../HyperTwistCoachDashboardWidget.cpp | 60 +++++++++---- .../HyperTwistTrainingRepositoryLibrary.cpp | 86 ++++++++++++++++++- .../HyperTwistCoachDashboardWidget.h | 4 + .../HyperTwistTrainingTypes.h | 24 ++++++ 4 files changed, 153 insertions(+), 21 deletions(-) diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistCoachDashboardWidget.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistCoachDashboardWidget.cpp index dab6965..f7decc0 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistCoachDashboardWidget.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistCoachDashboardWidget.cpp @@ -6779,13 +6779,13 @@ FHyperTwistCoachDashboardQueueRecoveryWeighting UHyperTwistCoachDashboardWidget: Weighting.MethodDrillUpstreamAverageOutcomeScore = CachedCoachPanelState.MethodDrillRecoveryAverageOutcomeScore; Weighting.ReliableTrustedTightPlanHistoryCount = - CachedCoachPanelState.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount; + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount; Weighting.ReliableTrustedBroadPlanHistoryCount = - CachedCoachPanelState.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount; + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount; Weighting.ReliableTrustedTightPlanAverageOutcomeScore = - CachedCoachPanelState.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore; + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore; Weighting.ReliableTrustedBroadPlanAverageOutcomeScore = - CachedCoachPanelState.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore; + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore; const bool bStrongMethodDrillRecoveryMemory = Weighting.MethodDrillUpstreamHistoryCount >= 2 && Weighting.MethodDrillUpstreamStrongCount >= Weighting.MethodDrillUpstreamWeakCount @@ -7834,6 +7834,14 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap CachedCoachPanelState.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore; Entry.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = CachedCoachPanelState.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore; + Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount = + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount; + Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount; + Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore; + Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore; Entry.bStrongPressureDominant = Entry.MethodDrillRecoveryHistoryCount >= 2 && Entry.StrongMethodDrillRecoveryHistoryCount @@ -7857,15 +7865,15 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap && Entry.BroadMethodDrillPacketStructureRecoveryPromoteCount >= Entry.NarrowMethodDrillPacketStructureRecoveryLaunchCount; Entry.bReliableTrustedTightStructurePlanDominant = - Entry.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount >= 2 - && Entry.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f - && Entry.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount - >= Entry.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount; + Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount >= 2 + && Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f + && Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount + >= Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount; Entry.bReliableTrustedBroadStructurePlanDominant = - Entry.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount >= 2 - && Entry.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f - && Entry.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount - >= Entry.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount; + Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount >= 2 + && Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f + && Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount + >= Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount; Entry.bUsedMethodDrillRecoveryMemoryForRecovery = QueueRecoveryWeighting.bHasMethodDrillMemorySignal; Entry.bUsedMethodDrillRecoveryMemoryForHandoff = @@ -8050,6 +8058,10 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap == Entry.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount && MethodDrillRecoveryMemoryHistoryEntries.Last().TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount == Entry.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount + && MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount + == Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount + && MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount + == Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount && FMath::IsNearlyEqual( MethodDrillRecoveryMemoryHistoryEntries.Last().MethodDrillRecoveryAverageOutcomeScore, Entry.MethodDrillRecoveryAverageOutcomeScore) @@ -8059,6 +8071,12 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap && FMath::IsNearlyEqual( MethodDrillRecoveryMemoryHistoryEntries.Last().TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore, Entry.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore) + && FMath::IsNearlyEqual( + MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore, + Entry.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore) + && FMath::IsNearlyEqual( + MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore, + Entry.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore) && MethodDrillRecoveryMemoryHistoryEntries.Last().bStrongPressureDominant == Entry.bStrongPressureDominant && MethodDrillRecoveryMemoryHistoryEntries.Last().bWeakPressureDominant @@ -9730,10 +9748,10 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation() } CoachHandoffRecommendationDetailLine += FString::Printf( TEXT(" | reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f"), - CachedCoachPanelState.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount, - CachedCoachPanelState.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount, - CachedCoachPanelState.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore, - CachedCoachPanelState.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount, + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount, + CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore, + CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore ); CoachHandoffRecommendationDetailLine += FString::Printf( TEXT(" | reliable trusted tight accepted q/f/r %d/%d/%d, broad accepted q/f/r %d/%d/%d"), @@ -10631,7 +10649,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation() SelectedMethodDrillRecoveryMemoryHistoryEntry != nullptr && SelectedMethodDrillRecoveryMemoryHistoryEntry->IsStructurallyValid() ? FString::Printf( - TEXT("Source: %s | Strong/weak/history %d/%d/%d avg %.1f | Structure recovery narrow %d/%d broad %d/%d | Reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f | Dominant pressure: %s | Structure bias: %s | Reliable stance: %s | Stance: %s | Recovery memory tipped: %s | Handoff memory tipped: %s | Packet kind: %s | Packet source: %s | Packet headline: %s | Packet action: %s | Packet focus %d | Plan mode: %s | Plan selection: %s | Plan posture: %s | Plan source: %s | Plan alignment: %s | Plan comparison tight aligned/diverged %d/%d broad aligned/diverged %d/%d reliable tight aligned/diverged %d/%d reliable broad aligned/diverged %d/%d | Plan preferred: %s | Tight/broad structure plan: %s/%s | Packet stance: %s | Recovery posture: %s | Handoff posture: %s"), + TEXT("Source: %s | Strong/weak/history %d/%d/%d avg %.1f | Structure recovery narrow %d/%d broad %d/%d | Trusted plan history tight/broad %d/%d avg %.1f/%.1f | Reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f | Dominant pressure: %s | Structure bias: %s | Reliable stance: %s | Stance: %s | Recovery memory tipped: %s | Handoff memory tipped: %s | Packet kind: %s | Packet source: %s | Packet headline: %s | Packet action: %s | Packet focus %d | Plan mode: %s | Plan selection: %s | Plan posture: %s | Plan source: %s | Plan alignment: %s | Plan comparison tight aligned/diverged %d/%d broad aligned/diverged %d/%d reliable tight aligned/diverged %d/%d reliable broad aligned/diverged %d/%d | Plan preferred: %s | Tight/broad structure plan: %s/%s | Packet stance: %s | Recovery posture: %s | Handoff posture: %s"), *MethodDrillRecoveryMemorySourceLine, SelectedMethodDrillRecoveryMemoryHistoryEntry->StrongMethodDrillRecoveryHistoryCount, SelectedMethodDrillRecoveryMemoryHistoryEntry->WeakMethodDrillRecoveryHistoryCount, @@ -10653,6 +10671,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation() ->TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore, SelectedMethodDrillRecoveryMemoryHistoryEntry ->TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore, + SelectedMethodDrillRecoveryMemoryHistoryEntry + ->ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount, + SelectedMethodDrillRecoveryMemoryHistoryEntry + ->ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount, + SelectedMethodDrillRecoveryMemoryHistoryEntry + ->ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore, + SelectedMethodDrillRecoveryMemoryHistoryEntry + ->ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore, *MethodDrillRecoveryMemoryDominantPressureLine, SelectedMethodDrillRecoveryMemoryHistoryEntry->bNarrowPacketStructureRecoveryDominant ? TEXT("narrow continuation") diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp index f297c20..e77d288 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp @@ -1168,6 +1168,41 @@ namespace HyperTwistTrainingRepositoryLibraryInternal * 100.0f) / static_cast(TrustedBroadMethodDrillRecoveryStructurePlanEventCount); } + if ((ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount) + > 0) + { + const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount = + ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount; + Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount += + ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount; + Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = + (static_cast(ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount) + * 100.0f) + / static_cast(ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount); + } + if ((ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount) + > 0) + { + const int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount = + ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount; + const int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = + FMath::Max( + 0, + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount + - ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount + ); + Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount += + ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount; + Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = + (static_cast(ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount) + * 100.0f) + / static_cast(ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount); + } const bool bStrongMethodDrillRecoveryHistory = MethodDrillRecoveryStartedCount >= 2 && MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount @@ -1320,14 +1355,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount) >= 2 && ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount - >= ReliableTrustedTightMethodDrillRecoveryStructurePlanOutstandingCount; + >= ReliableTrustedTightMethodDrillRecoveryStructurePlanOutstandingCount + && Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore + >= 60.0f; const bool bReliableTrustedBroadMethodDrillRecoveryStructurePlanHistory = (ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount) >= 2 && (ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount + ReliableTrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount) - >= ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount; + >= ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount + && Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore + >= 60.0f; const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanLaunchBias = bReliableTrustedTightMethodDrillRecoveryStructurePlanHistory ? FMath::Clamp( @@ -7960,6 +7999,41 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der * 100.0f) / static_cast(TrustedBroadMethodDrillRecoveryStructurePlanEventCount); } + if ((ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount) + > 0) + { + const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount = + ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount; + Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount += + ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount; + Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = + (static_cast(ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount) + * 100.0f) + / static_cast(ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount); + } + if ((ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount) + > 0) + { + const int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount = + ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount; + const int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = + FMath::Max( + 0, + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount + + ReliableTrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount + - ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount + ); + Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount += + ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount; + Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = + (static_cast(ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount) + * 100.0f) + / static_cast(ReliableTrustedBroadMethodDrillRecoveryStructurePlanEventCount); + } const bool bStrongMethodDrillRecoveryHistory = MethodDrillRecoveryStartedCount >= 2 && MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount @@ -8112,14 +8186,18 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der + ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount) >= 2 && ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount - >= ReliableTrustedTightMethodDrillRecoveryStructurePlanOutstandingCount; + >= ReliableTrustedTightMethodDrillRecoveryStructurePlanOutstandingCount + && Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore + >= 60.0f; const bool bReliableTrustedBroadMethodDrillRecoveryStructurePlanHistory = (ReliableTrustedBroadMethodDrillRecoveryStructurePlanStartedCount + ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount) >= 2 && (ReliableTrustedBroadMethodDrillRecoveryStructurePlanPromotedCount + ReliableTrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount) - >= ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount; + >= ReliableTrustedBroadMethodDrillRecoveryStructurePlanCompletedCount + && Snapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore + >= 60.0f; const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanLaunchBias = bReliableTrustedTightMethodDrillRecoveryStructurePlanHistory ? FMath::Clamp( diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistCoachDashboardWidget.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistCoachDashboardWidget.h index 6dbacc1..fbb131d 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistCoachDashboardWidget.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistCoachDashboardWidget.h @@ -385,6 +385,10 @@ struct FHyperTwistCoachDashboardMethodDrillRecoveryMemoryHistoryEntry int32 TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0; float TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; float TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount = 0; + int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0; + float ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + float ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; float MethodDrillRecoveryAverageOutcomeScore = 0.0f; bool bStrongPressureDominant = false; bool bWeakPressureDominant = false; diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h index 179924a..b5cfcc2 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h @@ -1971,6 +1971,18 @@ struct FHyperTwistTrainingCoachMemorySnapshot UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") bool bNeedsCoachIntervention = false; @@ -5044,6 +5056,18 @@ struct FHyperTwistTrainingCoachPanelState UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") float TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + int32 ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") + float ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist") int32 SignalCount = 0;