diff --git a/Content.Shared/PDA/SharedRingerSystem.cs b/Content.Shared/PDA/SharedRingerSystem.cs index 941c29e1729..3405be25437 100644 --- a/Content.Shared/PDA/SharedRingerSystem.cs +++ b/Content.Shared/PDA/SharedRingerSystem.cs @@ -210,12 +210,37 @@ private void StartRingtone(Entity ent) UpdateRingerUi(ent); - _popup.PopupPredicted(Loc.GetString("comp-ringer-vibration-popup"), - ent, - ent.Owner, - Filter.Pvs(ent, 0.05f), - false, - PopupType.Medium); + // Hardlight start - differentiate ringer popup text recipients. + EntityUid? recipient = null; + string? ownerName = null; + + if (TryComp(ent.Owner, out var pda)) + { + recipient = pda.PdaOwner; + ownerName = pda.OwnerName; + } + + var selfMessage = Loc.GetString("comp-ringer-vibration-popup-self"); + var othersMessage = ownerName != null + ? Loc.GetString("comp-ringer-vibration-popup-other-owner", ("owner", ownerName)) + : Loc.GetString("comp-ringer-vibration-popup-other-unknown"); // Fallback if no owner. + + if (recipient != null) + { + _popup.PopupEntity(selfMessage, ent.Owner, recipient.Value, PopupType.Medium); + + _popup.PopupEntity( + othersMessage, + ent.Owner, + Filter.PvsExcept(recipient.Value, entityManager: EntityManager), + true, + PopupType.Small); + } + else + { + _popup.PopupPredicted(selfMessage, othersMessage, ent.Owner, recipient, PopupType.Medium); + } + // Hardlight end DirtyFields(ent.AsNullable(), null, diff --git a/Resources/Locale/en-US/pda/Ringer/ringer-component.ftl b/Resources/Locale/en-US/pda/Ringer/ringer-component.ftl index 25b8f356808..fad6040fec3 100644 --- a/Resources/Locale/en-US/pda/Ringer/ringer-component.ftl +++ b/Resources/Locale/en-US/pda/Ringer/ringer-component.ftl @@ -3,7 +3,11 @@ # For the PDA Ringer screen -comp-ringer-vibration-popup = Your PDA vibrates +# Hardlight start +comp-ringer-vibration-popup-self = Your PDA vibrates +comp-ringer-vibration-popup-other-owner = {$owner}'s PDA vibrates +comp-ringer-vibration-popup-other-unknown = A nearby PDA rings +# Hardlight end comp-ringer-ui-menu-title = Ringtone