using Content.Shared.Examine; using Content.Shared.Eye.Blinding; using Content.Shared.IdentityManagement; using Robust.Shared.Network; namespace Content.Shared.Traits.Assorted; /// /// This handles permanent blindness, both the examine and the actual effect. /// public sealed class PermanentBlindnessSystem : EntitySystem { [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly SharedBlindingSystem _blinding = default!; /// public override void Initialize() { SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnExamined); } private void OnExamined(EntityUid uid, PermanentBlindnessComponent component, ExaminedEvent args) { if (args.IsInDetailsRange && !_net.IsClient) { args.PushMarkup(Loc.GetString("permanent-blindness-trait-examined", ("target", Identity.Entity(uid, EntityManager)))); } } private void OnShutdown(EntityUid uid, PermanentBlindnessComponent component, ComponentShutdown args) { _blinding.AdjustBlindSources(uid, false); } private void OnStartup(EntityUid uid, PermanentBlindnessComponent component, ComponentStartup args) { _blinding.AdjustBlindSources(uid, true); } }