diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index 1552f13678..9b6407c689 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -62,7 +62,7 @@ namespace Content.Server.Cargo.Systems return; _audio.PlayPvs(component.ConfirmSound, uid); - UpdateBankAccount(stationUid.Value, bank, (int) price); + UpdateBankAccount((stationUid.Value, bank), (int) price); QueueDel(args.Used); args.Handled = true; } @@ -103,7 +103,7 @@ namespace Content.Server.Cargo.Systems while (stationQuery.MoveNext(out var uid, out var bank)) { var balanceToAdd = bank.IncreasePerSecond * Delay; - UpdateBankAccount(uid, bank, balanceToAdd); + UpdateBankAccount((uid, bank), balanceToAdd); } var query = EntityQueryEnumerator(); @@ -229,7 +229,7 @@ namespace Content.Server.Cargo.Systems $"{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); - UpdateBankAccount(station.Value, bank, -cost); + UpdateBankAccount((station.Value, bank), -cost); UpdateOrders(station.Value); } diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index b93a0f3315..1b776b8bd0 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -76,19 +76,23 @@ public sealed partial class CargoSystem : SharedCargoSystem } [PublicAPI] - public void UpdateBankAccount(EntityUid uid, StationBankAccountComponent component, int balanceAdded) + public void UpdateBankAccount(Entity ent, int balanceAdded) { - component.Balance += balanceAdded; - var query = EntityQueryEnumerator(); + if (!Resolve(ent, ref ent.Comp)) + return; - var ev = new BankBalanceUpdatedEvent(uid, component.Balance); + ent.Comp.Balance += balanceAdded; + + var ev = new BankBalanceUpdatedEvent(ent, ent.Comp.Balance); + + var query = EntityQueryEnumerator(); while (query.MoveNext(out var client, out var comp, out var xform)) { var station = _station.GetOwningStation(client, xform); - if (station != uid) + if (station != ent) continue; - comp.Balance = component.Balance; + comp.Balance = ent.Comp.Balance; Dirty(client, comp); RaiseLocalEvent(client, ref ev); } diff --git a/Content.Server/Delivery/DeliverySystem.cs b/Content.Server/Delivery/DeliverySystem.cs index 2923c6b86e..8ac8722821 100644 --- a/Content.Server/Delivery/DeliverySystem.cs +++ b/Content.Server/Delivery/DeliverySystem.cs @@ -73,7 +73,7 @@ public sealed partial class DeliverySystem : SharedDeliverySystem if (!TryComp(ent.Comp.RecipientStation, out var account)) return; - _cargo.UpdateBankAccount(ent, account, ent.Comp.SpesoReward); + _cargo.UpdateBankAccount((ent.Comp.RecipientStation.Value, account), ent.Comp.SpesoReward); } public override void Update(float frameTime) diff --git a/Content.Shared/Cargo/Components/BankClientComponent.cs b/Content.Shared/Cargo/Components/BankClientComponent.cs index 4fd7085503..a2bf804570 100644 --- a/Content.Shared/Cargo/Components/BankClientComponent.cs +++ b/Content.Shared/Cargo/Components/BankClientComponent.cs @@ -1,4 +1,3 @@ -using Content.Shared.Cargo; using Robust.Shared.GameStates; namespace Content.Shared.Cargo.Components; @@ -23,4 +22,4 @@ public sealed partial class BankClientComponent : Component /// Raised on an entity with when the bank's balance is updated. /// [ByRefEvent] -public record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance); +public readonly record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance);