From 8144c5684e05f5b32ce16a21b4a26f5e3153c38c Mon Sep 17 00:00:00 2001 From: "N.N" Date: Fri, 17 Oct 2025 09:55:33 +0200 Subject: [PATCH] fix HasAdequateRefineryCount blocking unit building --- .../Traits/BotModules/BaseBuilderBotModule.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/BotModules/BaseBuilderBotModule.cs b/OpenRA.Mods.Common/Traits/BotModules/BaseBuilderBotModule.cs index bd3c057617..48ce53aa53 100644 --- a/OpenRA.Mods.Common/Traits/BotModules/BaseBuilderBotModule.cs +++ b/OpenRA.Mods.Common/Traits/BotModules/BaseBuilderBotModule.cs @@ -251,7 +251,7 @@ namespace OpenRA.Mods.Common.Traits DefenseCenter = newLocation; } - bool IBotRequestPauseUnitProduction.PauseUnitProduction => !IsTraitDisabled && !HasAdequateRefineryCount(); + bool IBotRequestPauseUnitProduction.PauseUnitProduction => !IsTraitDisabled && !HasMinimalRefineryCount(); void IBotTick.BotTick(IBot bot) { @@ -477,14 +477,16 @@ namespace OpenRA.Mods.Common.Traits // Require at least one refinery, unless we can't build it. public bool HasAdequateRefineryCount() => Info.RefineryTypes.Count == 0 || - AIUtils.CountActorByCommonName(RefineryBuildings) >= MinimumRefineryCount() || + AIUtils.CountActorByCommonName(RefineryBuildings) >= OptimalRefineryCount() || AIUtils.CountActorByCommonName(powerBuildings) == 0 || AIUtils.CountActorByCommonName(ConstructionYardBuildings) == 0; - int MinimumRefineryCount() => + int OptimalRefineryCount() => AIUtils.CountActorByCommonName(ProductionBuildings) > 0 ? Info.InititalMinimumRefineryCount + Info.AdditionalMinimumRefineryCount : Info.InititalMinimumRefineryCount; + bool HasMinimalRefineryCount() => + AIUtils.CountActorByCommonName(RefineryBuildings) >= Info.InititalMinimumRefineryCount; List IGameSaveTraitData.IssueTraitData(Actor self) {