From 8f761677caa3e79a669148d2d0e615fbafb8bcf2 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Mon, 24 Jan 2022 16:59:10 +0100
Subject: [PATCH] HybridStrategy.DoSelectBestOption: When Braking search with
 MaxBY MechanicalAssistPower instead of MinBy

---
 .../Strategies/HybridStrategy.cs                   | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
index 1ee19809d0..0fad01a6d2 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
@@ -1598,13 +1598,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 				if (filtered3.Length == 0) {
 					filtered3 = filtered2;
 				}
-
 				var filteredCurrentGear = filtered3.Where(x => x.Gear.Equals(currentGear)).ToArray();
 				if (filteredCurrentGear.Length > 0) {
-					best = filteredCurrentGear.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+					if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) {
+						best = filteredCurrentGear.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+					} else {
+						best = filteredCurrentGear.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+					}
 					return best;
 				}
-				best = filtered3.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+
+				if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) {
+					best = filtered3.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+				} else {
+					best = filtered3.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
+				}
 				if (best != null) {
 					return best;
 				}
-- 
GitLab