From fae8b0173b439ad6260a6184fe1d796d757ea0b0 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 23 Oct 2022 08:55:13 +1100 Subject: [PATCH] Fix cargo order amounts (#12070) --- Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs index f0d898e3f6..f5c2e85cdb 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs @@ -424,21 +424,22 @@ public sealed partial class CargoSystem var pads = GetCargoPallets(component); DebugTools.Assert(orders.Sum(o => o.Amount) <= pads.Count); - for (var i = 0; i < orders.Count; i++) + for (var i = 0; i < pads.Count; i++) { - var order = orders[i]; + if (orders.Count == 0) + break; + var order = orders[0]; var coordinates = new EntityCoordinates(component.Owner, xformQuery.GetComponent(_random.PickAndTake(pads).Owner).LocalPosition); - var item = Spawn(_protoMan.Index(order.ProductId).Product, coordinates); SpawnAndAttachOrderManifest(item, order, coordinates, component); order.Amount--; if (order.Amount == 0) { - orders.RemoveSwap(i); + // Yes this is functioning as a stack, I was too lazy to re-jig the shuttle state event. + orders.RemoveSwap(0); orderDatabase.Orders.Remove(order.OrderNumber); - i--; } else {