feat(BuildCalc) Optimized the build calculator

This commit is contained in:
2022-04-13 15:13:06 -04:00
parent 656b914c6e
commit 39db0afbe5
22 changed files with 803 additions and 561 deletions
+12 -8
View File
@@ -99,8 +99,8 @@ public class EconomyOverTimeModel
}
// Remove Funds from Build Order
var ordersAtTime = buildOrder.GetOrdersAt(interval);
if (buildOrder.StartedOrders.TryGetValue(interval, out var ordersAtTime))
{
foreach (var order in ordersAtTime)
{
var foundEntity = EntityModel.GetDictionary()[order.DataType];
@@ -115,16 +115,20 @@ public class EconomyOverTimeModel
if (production.RequiresWorker) economyAtSecond.BusyWorkerCount += 1;
}
}
}
// Handle new entities
var completedAtInterval = buildOrder.GetCompletedAt(interval);
foreach (var newEntity in completedAtInterval)
if (buildOrder.StartedOrders.TryGetValue(interval, out var ordersCompletedAtTime))
{
var harvest = newEntity;
if (harvest != null) economyAtSecond.Harvesters.Add(harvest);
foreach (var newEntity in ordersCompletedAtTime)
{
var harvest = newEntity;
if (harvest != null) economyAtSecond.Harvesters.Add(harvest);
var production = newEntity.Production();
if (production != null && production.RequiresWorker) economyAtSecond.BusyWorkerCount -= 1;
var production = newEntity.Production();
if (production != null && production.RequiresWorker) economyAtSecond.BusyWorkerCount -= 1;
}
}
}
}