Avoiding to struggle - a guide for beginers

how is asked in Pikacuq is tweaking A-Bot :), i will share parts of my combat.cs; but is always in dev. mode, so is not a clean code or even logical.
So for me, armor perma is off , because i fly an speed vni ( you can looking on forum to find him) and i dont need too much of him. Actually i think at some point I wil replace him with an drone damage2. So , when i need armor he will be later activated and deactivated.
NExt: later i change some tabs, and i have anchor var to make the difference between anomaly and near citadel position. Thats because sometime , its happens to be near citadel, and have some rats around and blues. Well, in my sense, the presence of anchor make the difference.

public class CombatTask : IBotTask
	{
		const int TargetCountMax = 2;

		public Bot bot;
		public bool OwnAnomaly = false;
		//public bool Jammed => ShipUi?.EWarElement?.Any(EwarElement => (EwarElement?.EWarType).RegexMatchSuccess("electronic")) ?? false;
		//	public bool Jammed => bot?.MemoryMeasurementAtTime?.Value?.ShipUi?.EWarElement?.Any(EwarElement => (EwarElement?.EWarType).RegexMatchSuccess("electronic")) ?? false;
		static public bool ActuallyAnomaly(Interface.MemoryStruct.IListEntry scanResult) =>
scanResult?.CellValueFromColumnHeader("Distance")?.RegexMatchSuccessIgnoreCase("km|m") ?? false;

		public bool Completed { private set; get; }

		public IEnumerable<IBotTask> Component
		{
			get
			{

				var ArmorPERMATANK = false;


				var memoryMeasurementAtTime = bot?.MemoryMeasurementAtTime;
				var memoryMeasurementAccu = bot?.MemoryMeasurementAccu;

				var memoryMeasurement = memoryMeasurementAtTime?.Value;

				if (!memoryMeasurement.ManeuverStartPossible())
					yield break;
				Tab OverviewTabActive =
				memoryMeasurement.WindowOverview?.FirstOrDefault()?.PresetTab
				?.OrderByDescending(tab => tab?.LabelColorOpacityMilli ?? 1500)
				?.FirstOrDefault();

				var combatTab = memoryMeasurement.WindowOverview?.FirstOrDefault()?.PresetTab
				?.OrderByDescending(tab => tab?.Label.Text.RegexMatchSuccessIgnoreCase("combat"))
				?.FirstOrDefault();

				var salvageTab = memoryMeasurement.WindowOverview?.FirstOrDefault()?.PresetTab
				?.OrderByDescending(tab => tab?.Label.Text.RegexMatchSuccessIgnoreCase("misc"))
				?.FirstOrDefault();

				var Anchor = memoryMeasurement?.WindowOverview?.FirstOrDefault()?.ListView?.Entry
				?.Where(entry => entry?.Name?.RegexMatchSuccessIgnoreCase("broken|pirate gate") ?? false)
				?.OrderBy(entry => entry?.DistanceMax ?? int.MaxValue)
				?.ToList();