fix UpdateBankAccount (#35749)

* trolled

* fun

* fuck me
This commit is contained in:
Milon
2025-03-09 21:50:24 +01:00
committed by GitHub
parent 03a8dee379
commit 8e10ff1f08
4 changed files with 15 additions and 12 deletions

View File

@@ -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<CargoOrderConsoleComponent>();
@@ -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);
}

View File

@@ -76,19 +76,23 @@ public sealed partial class CargoSystem : SharedCargoSystem
}
[PublicAPI]
public void UpdateBankAccount(EntityUid uid, StationBankAccountComponent component, int balanceAdded)
public void UpdateBankAccount(Entity<StationBankAccountComponent?> ent, int balanceAdded)
{
component.Balance += balanceAdded;
var query = EntityQueryEnumerator<BankClientComponent, TransformComponent>();
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<BankClientComponent, TransformComponent>();
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);
}

View File

@@ -73,7 +73,7 @@ public sealed partial class DeliverySystem : SharedDeliverySystem
if (!TryComp<StationBankAccountComponent>(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)

View File

@@ -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 <see cref="BankClientComponent"/> when the bank's balance is updated.
/// </summary>
[ByRefEvent]
public record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance);
public readonly record struct BankBalanceUpdatedEvent(EntityUid Station, int Balance);