Add bleating accent to goats (#34273)
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
namespace Content.Server.Speech.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Makes this entity speak like a sheep or a goat in all chat messages it sends.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class BleatingAccentComponent : Component { }
|
||||
28
Content.Server/Speech/EntitySystems/BleatingAccentSystem.cs
Normal file
28
Content.Server/Speech/EntitySystems/BleatingAccentSystem.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using Content.Server.Speech.Components;
|
||||
|
||||
namespace Content.Server.Speech.EntitySystems;
|
||||
|
||||
public sealed partial class BleatingAccentSystem : EntitySystem
|
||||
{
|
||||
private static readonly Regex BleatRegex = new("([mbdlpwhrkcnytfo])([aiu])", RegexOptions.IgnoreCase);
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<BleatingAccentComponent, AccentGetEvent>(OnAccentGet);
|
||||
}
|
||||
|
||||
private void OnAccentGet(Entity<BleatingAccentComponent> entity, ref AccentGetEvent args)
|
||||
{
|
||||
args.Message = Accentuate(args.Message);
|
||||
}
|
||||
|
||||
public static string Accentuate(string message)
|
||||
{
|
||||
// Repeats the vowel in certain consonant-vowel pairs
|
||||
// So you taaaalk liiiike thiiiis
|
||||
return BleatRegex.Replace(message, "$1$2$2$2$2");
|
||||
}
|
||||
}
|
||||
@@ -118,6 +118,11 @@ chat-speech-verb-canine-1 = barks
|
||||
chat-speech-verb-canine-2 = woofs
|
||||
chat-speech-verb-canine-3 = howls
|
||||
|
||||
chat-speech-verb-name-goat = Goat
|
||||
chat-speech-verb-goat-1 = bleats
|
||||
chat-speech-verb-goat-2 = grunts
|
||||
chat-speech-verb-goat-3 = cries
|
||||
|
||||
chat-speech-verb-name-small-mob = Mouse
|
||||
chat-speech-verb-small-mob-1 = squeaks
|
||||
chat-speech-verb-small-mob-2 = pieps
|
||||
|
||||
@@ -998,6 +998,15 @@
|
||||
- type: Grammar
|
||||
attributes:
|
||||
gender: female # Here because of UdderComponent
|
||||
- type: Speech
|
||||
speechSounds: Goat
|
||||
speechVerb: Goat
|
||||
- type: Vocal
|
||||
sounds:
|
||||
Female: Goat
|
||||
Male: Goat
|
||||
Unsexed: Goat
|
||||
- type: BleatingAccent
|
||||
- type: InteractionPopup
|
||||
successChance: 0.2
|
||||
interactSuccessString: petting-success-goat
|
||||
|
||||
@@ -527,3 +527,10 @@
|
||||
path: /Audio/Animals/parrot_raught.ogg
|
||||
params:
|
||||
variation: 0.125
|
||||
|
||||
- type: emoteSounds
|
||||
id: Goat
|
||||
sound:
|
||||
path: /Audio/Animals/goat_bah.ogg
|
||||
params:
|
||||
variation: 0.125
|
||||
|
||||
@@ -159,3 +159,12 @@
|
||||
path: /Audio/Animals/chicken_cluck_happy.ogg
|
||||
exclaimSound:
|
||||
path: /Audio/Animals/chicken_cluck_happy.ogg
|
||||
|
||||
- type: speechSounds
|
||||
id: Goat
|
||||
saySound:
|
||||
path: /Audio/Animals/goat_bah.ogg
|
||||
askSound:
|
||||
path: /Audio/Animals/goat_bah.ogg
|
||||
exclaimSound:
|
||||
path: /Audio/Animals/goat_bah.ogg
|
||||
|
||||
@@ -110,6 +110,14 @@
|
||||
- chat-speech-verb-canine-2
|
||||
- chat-speech-verb-canine-3
|
||||
|
||||
- type: speechVerb
|
||||
id: Goat
|
||||
name: chat-speech-verb-name-goat
|
||||
speechVerbStrings:
|
||||
- chat-speech-verb-goat-1
|
||||
- chat-speech-verb-goat-2
|
||||
- chat-speech-verb-goat-3
|
||||
|
||||
- type: speechVerb
|
||||
id: LargeMob
|
||||
name: chat-speech-verb-name-large-mob
|
||||
|
||||
Reference in New Issue
Block a user