{
_timer -= Delay;
- foreach (var account in EntityQuery<StationBankAccountComponent>())
+ var stationQuery = EntityQueryEnumerator<StationBankAccountComponent>();
+ while (stationQuery.MoveNext(out var uid, out var bank))
{
- account.Balance += account.IncreasePerSecond * Delay;
+ var balanceToAdd = bank.IncreasePerSecond * Delay;
+ UpdateBankAccount(uid, bank, balanceToAdd);
}
var query = EntityQueryEnumerator<CargoOrderConsoleComponent>();
$"{ToPrettyString(player):user} approved order [orderId:{order.OrderId}, quantity:{order.OrderQuantity}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bank.Balance}");
orderDatabase.Orders.Remove(order);
- DeductFunds(bank, cost);
+ UpdateBankAccount(station.Value, bank, -cost);
UpdateOrders(station.Value);
}
}
- private void DeductFunds(StationBankAccountComponent component, int amount)
- {
- component.Balance = Math.Max(0, component.Balance - amount);
- }
-
#region Station
private bool TryGetOrderDatabase([NotNullWhen(true)] EntityUid? stationUid, [MaybeNullWhen(false)] out StationCargoOrderDatabaseComponent dbComp)