Retain reliable drill recovery plan history upstream

This commit is contained in:
axiomlogicnexus 2026-04-29 20:14:50 +02:00
parent bb13fa4afa
commit 7718fd6a3e
4 changed files with 153 additions and 21 deletions

View file

@ -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")

View file

@ -1168,6 +1168,41 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
* 100.0f)
/ static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
}
if ((ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount =
ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount;
Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
* 100.0f)
/ static_cast<float>(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<float>(ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
* 100.0f)
/ static_cast<float>(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<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
}
if ((ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount =
ReliableTrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ ReliableTrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
ReliableTrustedTightMethodDrillRecoveryStructurePlanEventCount;
Snapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(ReliableTrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
* 100.0f)
/ static_cast<float>(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<float>(ReliableTrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
* 100.0f)
/ static_cast<float>(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(

View file

@ -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;

View file

@ -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;