using Content.Server.Mind; using Content.Server.Objectives.Components; using Content.Shared.Delivery; using Content.Shared.FingerprintReader; namespace Content.Server.Objectives.Systems; public sealed partial class MailFraudObjectiveSystem : EntitySystem { [Dependency] private MindSystem _mind = default!; [Dependency] private FingerprintReaderSystem _fingerprintReader = default!; [Dependency] private CounterConditionSystem _counterCondition = default!; public override void Initialize() { SubscribeLocalEvent(OnDeliveryOpened); } private void OnDeliveryOpened(Entity ent, ref DeliveryOpenedEvent args) { if (!ent.Comp.WasPenalized) return; //not fraud if (_fingerprintReader.IsAllowed(ent.Owner, args.User, out var _, showPopup: false, checkGloves: false)) return; //cutting open your own letter if (!_mind.TryGetMind(args.User, out var mindUid, out var mind)) return; foreach (var obj in _mind.EnumerateObjectives((mindUid, mind))) { _counterCondition.IncreaseCount(obj); } } }