diff --git a/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs index 80a98fef4c..e8c8a9f908 100644 --- a/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs @@ -582,7 +582,8 @@ namespace OpenRA.Mods.Common.Traits return; } - var costThisFrame = RemainingCost / RemainingTime; + var expectedRemainingCost = RemainingTime == 1 ? 0 : TotalCost * RemainingTime / Math.Max(1, TotalTime); + var costThisFrame = RemainingCost - expectedRemainingCost; if (costThisFrame != 0 && !pr.TakeCash(costThisFrame, true)) return;