diff --git a/Content.Server/PDA/Ringer/RingerComponent.cs b/Content.Server/PDA/Ringer/RingerComponent.cs index 69cd656592..1e84528aa5 100644 --- a/Content.Server/PDA/Ringer/RingerComponent.cs +++ b/Content.Server/PDA/Ringer/RingerComponent.cs @@ -1,11 +1,8 @@ using Content.Shared.PDA; -using Robust.Shared.GameObjects; -using Robust.Shared.Serialization.Manager.Attributes; -using Robust.Shared.ViewVariables; namespace Content.Server.PDA.Ringer { - [RegisterComponent, ComponentProtoName("Ringer")] + [RegisterComponent] public sealed class RingerComponent : Component { [ViewVariables] @@ -23,5 +20,16 @@ namespace Content.Server.PDA.Ringer [DataField("isPlaying")] public bool IsPlaying = false; + + /// + /// How far the sound projects in metres. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("range")] + public float Range = 3f; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField("volume")] + public float Volume = -4f; } } diff --git a/Content.Server/PDA/Ringer/RingerSystem.cs b/Content.Server/PDA/Ringer/RingerSystem.cs index 009baccb20..8d5e04941d 100644 --- a/Content.Server/PDA/Ringer/RingerSystem.cs +++ b/Content.Server/PDA/Ringer/RingerSystem.cs @@ -114,7 +114,14 @@ namespace Content.Server.PDA.Ringer if (ringer.TimeElapsed < NoteDelay) continue; ringer.TimeElapsed -= NoteDelay; - SoundSystem.Play(Filter.Pvs(ringer.Owner, entityManager: EntityManager), GetSound(ringer.Ringtone[ringer.NoteCount])); + var ringerXform = Transform(ringer.Owner); + + SoundSystem.Play( + Filter.Empty().AddInRange(ringerXform.MapPosition, ringer.Range), + GetSound(ringer.Ringtone[ringer.NoteCount]), + ringer.Owner, + AudioParams.Default.WithMaxDistance(ringer.Range).WithVolume(ringer.Volume)); + ringer.NoteCount++; if (ringer.NoteCount > 3) diff --git a/Resources/Audio/Effects/RingtoneNotes/a.ogg b/Resources/Audio/Effects/RingtoneNotes/a.ogg index 1717aa88f9..c9a4b41520 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/a.ogg and b/Resources/Audio/Effects/RingtoneNotes/a.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/asharp.ogg b/Resources/Audio/Effects/RingtoneNotes/asharp.ogg index e773ca91a1..7ee114aded 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/asharp.ogg and b/Resources/Audio/Effects/RingtoneNotes/asharp.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/b.ogg b/Resources/Audio/Effects/RingtoneNotes/b.ogg index f762867d47..19a38b82d5 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/b.ogg and b/Resources/Audio/Effects/RingtoneNotes/b.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/c.ogg b/Resources/Audio/Effects/RingtoneNotes/c.ogg index 11ebbd614b..0973bfa576 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/c.ogg and b/Resources/Audio/Effects/RingtoneNotes/c.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/csharp.ogg b/Resources/Audio/Effects/RingtoneNotes/csharp.ogg index 0bb8da6b96..41bf7ea507 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/csharp.ogg and b/Resources/Audio/Effects/RingtoneNotes/csharp.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/d.ogg b/Resources/Audio/Effects/RingtoneNotes/d.ogg index 4598b7bbf7..f2ee369273 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/d.ogg and b/Resources/Audio/Effects/RingtoneNotes/d.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/dsharp.ogg b/Resources/Audio/Effects/RingtoneNotes/dsharp.ogg index 40eb53548d..395e7f5546 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/dsharp.ogg and b/Resources/Audio/Effects/RingtoneNotes/dsharp.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/e.ogg b/Resources/Audio/Effects/RingtoneNotes/e.ogg index d391b3c0da..3669e6f55e 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/e.ogg and b/Resources/Audio/Effects/RingtoneNotes/e.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/f.ogg b/Resources/Audio/Effects/RingtoneNotes/f.ogg index b6a3c28bdf..df11fa17eb 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/f.ogg and b/Resources/Audio/Effects/RingtoneNotes/f.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/fsharp.ogg b/Resources/Audio/Effects/RingtoneNotes/fsharp.ogg index fe45a57a25..870cd240c9 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/fsharp.ogg and b/Resources/Audio/Effects/RingtoneNotes/fsharp.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/g.ogg b/Resources/Audio/Effects/RingtoneNotes/g.ogg index 555bd18269..ae94765da7 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/g.ogg and b/Resources/Audio/Effects/RingtoneNotes/g.ogg differ diff --git a/Resources/Audio/Effects/RingtoneNotes/gsharp.ogg b/Resources/Audio/Effects/RingtoneNotes/gsharp.ogg index e06d1bc9bf..dedd929fcd 100644 Binary files a/Resources/Audio/Effects/RingtoneNotes/gsharp.ogg and b/Resources/Audio/Effects/RingtoneNotes/gsharp.ogg differ diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index b2e9946ddc..857b42638a 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -103,6 +103,7 @@ - savemap - tpgrid - gridtc + - togglespritenetsync - Flags: ADMIN Commands: