Files
Delta-v/Content.Shared/_DV/Cargo/Systems/LogisticStatsSystem.cs
T
5c527dc6a2 mail refactor + predicted mail (#5031)
* scope? i don't know her

* more cleanup, Entity<T>

* priority mail timer, shared dependencies

* MailSystem file-scoped namespace

* change FTL text

* TODOs

* mailteleporter file-scoped namespace

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove the evil nyano mail

* Update Content.Shared/_DV/Mail/MailTeleporterComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Milon <plmilonpl@gmail.com>

---------

Signed-off-by: Milon <plmilonpl@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-27 07:27:24 -06:00

65 lines
2.0 KiB
C#

using Content.Shared._DV.Cargo.Components;
using JetBrains.Annotations;
namespace Content.Shared._DV.Cargo.Systems;
public sealed partial class LogisticStatsSystem : EntitySystem
{
[PublicAPI]
public void AddOpenedMailEarnings(EntityUid uid, StationLogisticStatsComponent component, int earnedMoney)
{
component.Metrics = component.Metrics with
{
Earnings = component.Metrics.Earnings + earnedMoney,
OpenedCount = component.Metrics.OpenedCount + 1
};
UpdateLogisticsStats(uid);
}
[PublicAPI]
public void AddExpiredMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney)
{
component.Metrics = component.Metrics with
{
ExpiredLosses = component.Metrics.ExpiredLosses + lostMoney,
ExpiredCount = component.Metrics.ExpiredCount + 1
};
UpdateLogisticsStats(uid);
}
[PublicAPI]
public void AddDamagedMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney)
{
component.Metrics = component.Metrics with
{
DamagedLosses = component.Metrics.DamagedLosses + lostMoney,
DamagedCount = component.Metrics.DamagedCount + 1
};
UpdateLogisticsStats(uid);
}
[PublicAPI]
public void AddTamperedMailLosses(EntityUid uid, StationLogisticStatsComponent component, int lostMoney)
{
component.Metrics = component.Metrics with
{
TamperedLosses = component.Metrics.TamperedLosses + lostMoney,
TamperedCount = component.Metrics.TamperedCount + 1
};
UpdateLogisticsStats(uid);
}
private void UpdateLogisticsStats(EntityUid uid)
{
var ev = new LogisticStatsUpdatedEvent(uid);
RaiseLocalEvent(uid, ref ev);
}
}
[ByRefEvent]
public record struct LogisticStatsUpdatedEvent(EntityUid Station)
{
public EntityUid Station = Station;
public bool Handled = false;
}