CatStation/Content.Shared/Speech/Components/VocalComponent.cs
Pok 7a8fab78e3
Move Accents to Shared v2 (#44772)
* move-accents-to-shared

* Update AccentSystem.cs

* Update ListeningSystem.cs

* aaaaaa

* Update AccentSystem.cs

* oh god

* aaooao

* //

* review

* fix

* Update VocalSystem.cs
2026-07-25 22:29:39 +00:00

57 lines
1.7 KiB
C#

using Content.Shared.Chat.Prototypes;
using Content.Shared.Speech.EntitySystems;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Speech.Components;
/// <summary>
/// Component required for entities to be able to do vocal emotions.
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(VocalSystem))]
public sealed partial class VocalComponent : Component
{
//TODO: Wilhelm scream logic needs to be more generic
/// <summary>
/// Emote ID for screaming (for whilhelm scream)
/// </summary>
[DataField]
[AutoNetworkedField]
public ProtoId<EmotePrototype> ScreamId = "Scream";
/// <summary>
/// Sound specifier for Wilhelm scream
/// </summary>
[DataField]
[AutoNetworkedField]
public SoundSpecifier Wilhelm = new SoundPathSpecifier("/Audio/Voice/Human/wilhelm_scream.ogg");
/// <summary>
/// Odds that screaming will be a Wilhelm scream
/// </summary>
[DataField]
[AutoNetworkedField]
public float WilhelmProbability = 0.0002f;
/// <summary>
/// Default Emote Action to grant
/// </summary>
[DataField]
[AutoNetworkedField]
public EntProtoId? EmoteAction = "ActionScream";
[DataField]
[AutoNetworkedField]
public EntityUid? EmoteActionEntity;
/// <summary>
/// Currently loaded emote sounds prototype, based on entity sex on humanoids.
/// Null if no valid prototype for entity sex was found.
/// Generally everything should have this set. This provides the sounds for Urists as well.
/// </summary>
[DataField]
[AutoNetworkedField]
public ProtoId<EmoteSoundsPrototype>? EmoteSounds;
}