Черри пики 7 (#592)

* Remake gasp popup to emote (#27736)

* fix

* Silence ringtones on admin PDAs (#29801)

* Silence ringtones on invisible PDAs

* Revert "Silence ringtones on invisible PDAs"

This reverts commit afc1041f31eebe82e83630a856a8856b877a9826.

* Literally just this

* Add an admin announcement for news article publishing

* Fix invalid UI hover/click sounds breaking client (#30067)

fixes #29561

* Display the administrator's title in ahelp and ahelp relay (#30075)

* Adding the admin prefix to the ahelp

* Updating the admin prefix

* The second update of the admin prefix

* Configuration correction

* fix

* Fix servers ambience sound (#30091)

* Fix servers ambience

* I'm silly

* Clean up

* Add pen clicking sound (#30531)

* Add pen clicking sound

* switch to OnUse and reduce distance a little

* Fix exploding pen clicking (#30533)

* fix pens

* added a bunch more fox noises (#27578)

* fuck it we ball

* added recommended copyright information

* revised copyright license

* revised copyright license x2

* finalized the fops

# reduced the number of audio clips
# adjusted the volume of all fox sounds to be consistent with each other

* added new sounds to the overall fox parent mob because we forgot oopsie

---------

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: to4no_fix <156101927+chavonadelal@users.noreply.github.com>
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: nao fujiwara <awkwarddryad@gmail.com>
This commit is contained in:
ThereDrD
2024-08-09 02:37:34 +03:00
committed by GitHub
parent 0678eca250
commit 3f97bdce2f
62 changed files with 307 additions and 27 deletions

View File

@@ -54,7 +54,7 @@ public sealed class AudioUIController : UIController
{
if (!string.IsNullOrEmpty(value))
{
var resource = _cache.GetResource<AudioResource>(value);
var resource = GetSoundOrFallback(value, CCVars.UIClickSound.DefaultValue);
var source =
_audioManager.CreateAudioSource(resource);
@@ -77,7 +77,7 @@ public sealed class AudioUIController : UIController
{
if (!string.IsNullOrEmpty(value))
{
var hoverResource = _cache.GetResource<AudioResource>(value);
var hoverResource = GetSoundOrFallback(value, CCVars.UIHoverSound.DefaultValue);
var hoverSource =
_audioManager.CreateAudioSource(hoverResource);
@@ -95,4 +95,12 @@ public sealed class AudioUIController : UIController
UIManager.SetHoverSound(null);
}
}
private AudioResource GetSoundOrFallback(string path, string fallback)
{
if (!_cache.TryGetResource(path, out AudioResource? resource))
return _cache.GetResource<AudioResource>(fallback);
return resource;
}
}

View File

@@ -392,7 +392,8 @@ namespace Content.Server.Administration.Managers
// я ебался в зад, поймите
if (!data.HasFlag(AdminFlags.Permissions) && !data.HasFlag(AdminFlags.Host) &&
dbData.AdminServer != null && dbData.AdminServer != "unknown" && currentServerName != "unknown"
&& currentServerName != dbData.AdminServer)
&& currentServerName != dbData.AdminServer
&& _cfg.GetCVar(CCVars.AdminUseCustomNamesAdminRank))
{
return null;
}

View File

@@ -405,14 +405,21 @@ namespace Content.Server.Administration.Systems
var escapedText = FormattedMessage.EscapeText(message.Text);
string bwoinkText;
string adminPrefix = "";
//Getting an administrator position
if (_config.GetCVar(CCVars.AhelpAdminPrefix) && senderAdmin is not null && senderAdmin.Title is not null)
{
adminPrefix = $"[bold]\\[{senderAdmin.Title}\\][/bold] ";
}
if (senderAdmin is not null && senderAdmin.Flags == AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently.
{
bwoinkText = $"[color=purple]{senderSession.Name}[/color]";
bwoinkText = $"[color=purple]{adminPrefix}{senderSession.Name}[/color]";
}
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
{
bwoinkText = $"[color=red]{senderSession.Name}[/color]";
bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
}
else
{
@@ -435,6 +442,13 @@ namespace Content.Server.Administration.Systems
RaiseNetworkEvent(msg, channel);
}
string adminPrefixWebhook = "";
if (_config.GetCVar(CCVars.AhelpAdminPrefixWebhook) && senderAdmin is not null && senderAdmin.Title is not null)
{
adminPrefixWebhook = $"[bold]\\[{senderAdmin.Title}\\][/bold] ";
}
// Notify player
if (_playerManager.TryGetSessionById(message.UserId, out var session))
{
@@ -447,11 +461,11 @@ namespace Content.Server.Administration.Systems
// Doing the same thing as above, but with the override name. Theres probably a better way to do this.
if (senderAdmin is not null && senderAdmin.Flags == AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently.
{
overrideMsgText = $"[color=purple]{_overrideClientName}[/color]";
overrideMsgText = $"[color=purple]{adminPrefixWebhook}{_overrideClientName}[/color]";
}
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
{
overrideMsgText = $"[color=red]{_overrideClientName}[/color]";
overrideMsgText = $"[color=red]{adminPrefixWebhook}{_overrideClientName}[/color]";
}
else
{

View File

@@ -1,5 +1,7 @@
using Content.Server.Body.Systems;
using Content.Shared.Chat.Prototypes;
using Content.Shared.Damage;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
using Robust.Shared.Audio; // WD
@@ -51,10 +53,16 @@ namespace Content.Server.Body.Components
public DamageSpecifier DamageRecovery = default!;
[DataField]
public TimeSpan GaspPopupCooldown = TimeSpan.FromSeconds(8);
public TimeSpan GaspEmoteCooldown = TimeSpan.FromSeconds(8);
[ViewVariables]
public TimeSpan LastGaspPopupTime;
public TimeSpan LastGaspEmoteTime;
/// <summary>
/// The emote when gasps
/// </summary>
[DataField]
public ProtoId<EmotePrototype> GaspEmote = "Gasp";
/// <summary>
/// How many cycles in a row has the mob been under-saturated?

View File

@@ -2,6 +2,7 @@ using Content.Server.Administration.Logs;
using Content.Server.Atmos;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Body.Components;
using Content.Server.Chat.Systems;
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.DoAfter;
using Content.Server.Nutrition.Components; // WD
@@ -42,14 +43,16 @@ public sealed class RespiratorSystem : EntitySystem
[Dependency] private readonly BodySystem _bodySystem = default!;
[Dependency] private readonly DamageableSystem _damageableSys = default!;
[Dependency] private readonly LungSystem _lungSystem = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly MobStateSystem _mobState = default!;
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
[Dependency] private readonly ChatSystem _chat = default!;
[Dependency] private readonly InventorySystem _inventorySystem = default!; // WD
[Dependency] private readonly ActionBlockerSystem _blocker = default!; // WD
[Dependency] private readonly AudioSystem _audio = default!; // WD
[Dependency] private readonly DoAfterSystem _doAfter = default!; // WD
[Dependency] private readonly DamageableSystem _damageable = default!; // WD
[Dependency] private readonly SharedPopupSystem _popupSystem = default!; // WD
public override void Initialize()
{
@@ -116,10 +119,10 @@ public sealed class RespiratorSystem : EntitySystem
continue;
}
if (_gameTiming.CurTime >= respirator.LastGaspPopupTime + respirator.GaspPopupCooldown)
if (_gameTiming.CurTime >= respirator.LastGaspEmoteTime + respirator.GaspEmoteCooldown)
{
respirator.LastGaspPopupTime = _gameTiming.CurTime;
_popupSystem.PopupEntity($"{Name(Identity.Entity(uid, EntityManager))} задыхается!", uid);
respirator.LastGaspEmoteTime = _gameTiming.CurTime;
_chat.TryEmoteWithChat(uid, respirator.GaspEmote, ignoreActionBlocker: true);
}
TakeSuffocationDamage((uid, respirator));

View File

@@ -20,6 +20,7 @@ using Content.Server.Station.Systems;
using Content.Shared.Popups;
using Content.Shared.StationRecords;
using Robust.Shared.Audio.Systems;
using Content.Server.Chat.Managers;
namespace Content.Server.MassMedia.Systems;
@@ -35,6 +36,7 @@ public sealed class NewsSystem : SharedNewsSystem
[Dependency] private readonly GameTicker _ticker = default!;
[Dependency] private readonly AccessReaderSystem _accessReader = default!;
[Dependency] private readonly IdCardSystem _idCardSystem = default!;
[Dependency] private readonly IChatManager _chatManager = default!;
public override void Initialize()
{
@@ -167,6 +169,12 @@ public sealed class NewsSystem : SharedNewsSystem
$"{ToPrettyString(author):actor} created news article {article.Title} by {article.Author}: {article.Content}"
);
_chatManager.SendAdminAnnouncement(Loc.GetString("news-publish-admin-announcement",
("actor", msg.Session.AttachedEntity),
("title", article.Title),
("author", article.Author ?? Loc.GetString("news-read-ui-no-author"))
));
articles.Add(article);
var args = new NewsArticlePublishedEvent(article);

View File

@@ -1,4 +1,4 @@
using Content.Server.DeviceNetwork;
using Content.Server.DeviceNetwork;
using Content.Server.DeviceNetwork.Components;
using Content.Server.DeviceNetwork.Systems;
using Content.Server.Medical.SuitSensors;

View File

@@ -874,6 +874,52 @@ namespace Content.Shared.CCVar
public static readonly CVarDef<bool> AdminBypassMaxPlayers =
CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY);
/// <summary>
/// Determine if custom rank names are used.
/// If it is false, it'd use the actual rank name regardless of the individual's title.
/// </summary>
/// <seealso cref="AhelpAdminPrefix"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AdminUseCustomNamesAdminRank =
CVarDef.Create("admin.use_custom_names_admin_rank", true, CVar.SERVERONLY);
/*
* AHELP
*/
/// <summary>
/// Ahelp rate limit values are accounted in periods of this size (seconds).
/// After the period has passed, the count resets.
/// </summary>
/// <seealso cref="AhelpRateLimitCount"/>
public static readonly CVarDef<int> AhelpRateLimitPeriod =
CVarDef.Create("ahelp.rate_limit_period", 2, CVar.SERVERONLY);
/// <summary>
/// How many ahelp messages are allowed in a single rate limit period.
/// </summary>
/// <seealso cref="AhelpRateLimitPeriod"/>
public static readonly CVarDef<int> AhelpRateLimitCount =
CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in ahelp.
/// If it is is false, only the admin's ckey will be displayed in the ahelp.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AhelpAdminPrefix =
CVarDef.Create("ahelp.admin_prefix", true, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in the webhook.
/// If it is is false, only the admin's ckey will be displayed in webhook.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefix"/>
public static readonly CVarDef<bool> AhelpAdminPrefixWebhook =
CVarDef.Create("ahelp.admin_prefix_webhook", true, CVar.SERVERONLY);
/*
* Explosions
*/

View File

@@ -7,7 +7,7 @@
license: "CC-BY-3.0"
copyright: "Modified from 'Meow 4.wav' by freesound user 'TRNGLE. The original audio was trimmed, split to mono, and converted from WAV to OGG format"
source: "https://freesound.org/people/TRNGLE/sounds/368006/"
- files: ["cat_meow2.ogg"]
license: "CC-BY-3.0"
copyright: "Created by freesound user 'TRNGLE. The original audio split to mono, and converted from WAV to OGG format"
@@ -117,24 +117,42 @@
license: "CC-BY-4.0"
copyright: "Audio is recorded/created by Pfranzen 'FreeSound.org'. The original audio was trimmed and renamed"
source: "https://freesound.org/people/pfranzen/sounds/322744/"
- files: ["dog_bark1.ogg"]
license: "CC0-1.0"
copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed"
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
- files: ["dog_bark2.ogg"]
license: "CC0-1.0"
copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed"
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
- files: ["dog_bark3.ogg"]
license: "CC0-1.0"
copyright: "Audio is recorded/created by KFerentchak 'FreeSound.org'. The original audio was trimmed and renamed"
source: "https://freesound.org/people/KFerentchak/sounds/235912/"
- files: ["nymph_chirp.ogg"]
license: "CC-BY-SA-3.0"
copyright: "Taken from ParadiseSS13"
source: "https://github.com/ParadiseSS13/Paradise/commit/a34f1054cef5a44a67fdac3b67b811137c6071dd"
- files:
- fox1.ogg
- fox2.ogg
- fox3.ogg
- fox4.ogg
- fox5.ogg
- fox6.ogg
- fox7.ogg
- fox8.ogg
- fox9.ogg
- fox10.ogg
- fox11.ogg
- fox12.ogg
- fox13.ogg
- fox14.ogg
copyright: "Created by fujiwaranao"
license: "CC-BY-NC-SA-4.0"
source: "https://github.com/space-wizards/space-station-14/pull/27578"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,26 @@
- files:
- deathgasp_1.ogg
- deathgasp_2.ogg
- female_deathgasp_1.ogg
- female_deathgasp_2.ogg
- female_deathgasp_3.ogg
- female_deathgasp_4.ogg
- female_deathgasp_5.ogg
- male_deathgasp_1.ogg
- male_deathgasp_2.ogg
- male_deathgasp_3.ogg
- male_deathgasp_4.ogg
- male_deathgasp_5.ogg
license: "CC-BY-SA-3.0"
copyright: "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/commit/4397f13c72998aa7e6ce192215c9f77b9d62eee2"
source: "https://github.com/ParadiseSS13/Paradise/tree/4397f13c72998aa7e6ce192215c9f77b9d62eee2/sound/goonstation/voice"
- files:
- gasp_female1.ogg
- gasp_female2.ogg
- gasp_female3.ogg
- gasp_male1.ogg
- gasp_male2.ogg
license: "CC-BY-SA-3.0"
copyright: "Taken from tgstation at https://github.com/tgstation/tgstation/commit/f7a49c4068f1277e6857baf0892d355f1c055974"
source: "https://github.com/tgstation/tgstation/tree/f7a49c4068f1277e6857baf0892d355f1c055974/sound/voice/human"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -134,3 +134,8 @@
license: "CC-BY-SA-3.0"
copyright: "Taken from tgstation."
source: "https://github.com/tgstation/tgstation/blob/a7f525bce9a359ab5282fc754078cd4b5678a006/sound/items"
- files: ["pen_click.ogg"]
license: "CC0-1.0"
copyright: "Created by dslrguide, converted to ogg and mono by Themias"
source: "https://freesound.org/people/dslrguide/sounds/321484"

Binary file not shown.

View File

@@ -35,5 +35,9 @@ see_own_notes = true
deadmin_on_join = true
new_player_threshold = 600
[ahelp]
admin_prefix = false
admin_prefix_webhook = false
[worldgen]
enabled = true

View File

@@ -1 +0,0 @@
lung-behavior-gasp = Gasp

View File

View File

@@ -34,3 +34,4 @@ news-write-ui-richtext-tooltip = News articles support rich text
{"[bullet/]bullet[/color]"}
news-pda-notification-header = New news article
news-publish-admin-announcement = {$actor} published news article {$title} by {$author}"

View File

@@ -0,0 +1 @@
chat-emote-msg-gasp = задыхается

View File

@@ -2482,7 +2482,7 @@
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg
collection: Fox
- type: Grammar
attributes:
gender: epicene

View File

@@ -529,7 +529,7 @@
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/fox_squeak.ogg
collection: Fox
- type: Butcherable
syndieRoleRequired: true
spawned:

View File

@@ -680,6 +680,7 @@
scanDelay: 0
- type: CartridgeLoader
uiKey: enum.PdaUiKey.Key
notificationsEnabled: false
preinstalled:
- CrewManifestCartridge
- NotekeeperCartridge

View File

@@ -325,6 +325,14 @@
- type: PhysicalComposition
materialComposition:
Steel: 25
- type: EmitSoundOnUse
sound:
path: /Audio/Items/pen_click.ogg
params:
volume: -4
maxDistance: 2
- type: UseDelay
delay: 0.3
- type: entity
parent: Pen

View File

@@ -56,6 +56,7 @@
SheetSteel1:
min: 1
max: 2
- type: AmbientOnPowered
- type: AmbientSound
volume: -9
range: 5

View File

@@ -48,6 +48,7 @@
min: 1
max: 2
- type: Appearance
- type: AmbientOnPowered
- type: AmbientSound
volume: -9
range: 5

View File

@@ -22,6 +22,12 @@
snapCardinals: true
layers:
- state: server
- type: AmbientOnPowered
- type: AmbientSound
volume: -9
range: 5
sound:
path: /Audio/Ambience/Objects/server_fans.ogg
- type: entity
parent: SurveillanceCameraRouterBase
@@ -113,6 +119,7 @@
subnetColor: "#088743"
- type: entity
abstract: true
parent: [ BaseMachinePowered, ConstructibleMachine ]
id: SurveillanceCameraWirelessRouterBase
name: wireless camera router
@@ -135,6 +142,12 @@
sprite: Structures/Machines/server.rsi
layers:
- state: server
- type: AmbientOnPowered
- type: AmbientSound
volume: -9
range: 5
sound:
path: /Audio/Ambience/Objects/server_fans.ogg
- type: entity
parent: SurveillanceCameraWirelessRouterBase

View File

@@ -21,6 +21,12 @@
True: { visible: true }
False: { visible: false }
- type: Appearance
- type: AmbientOnPowered
- type: AmbientSound
volume: -9
range: 5
sound:
path: /Audio/Ambience/Objects/server_fans.ogg
- type: WiresVisuals
- type: Physics
bodyType: Static

View File

@@ -0,0 +1,23 @@
- type: soundCollection
id: MaleDeathGasp
files:
- /Audio/Effects/Gasp/male_deathgasp_1.ogg
- /Audio/Effects/Gasp/male_deathgasp_2.ogg
- /Audio/Effects/Gasp/male_deathgasp_3.ogg
- /Audio/Effects/Gasp/male_deathgasp_4.ogg
- /Audio/Effects/Gasp/male_deathgasp_5.ogg
- type: soundCollection
id: FemaleDeathGasp
files:
- /Audio/Effects/Gasp/female_deathgasp_1.ogg
- /Audio/Effects/Gasp/female_deathgasp_2.ogg
- /Audio/Effects/Gasp/female_deathgasp_3.ogg
- /Audio/Effects/Gasp/female_deathgasp_4.ogg
- /Audio/Effects/Gasp/female_deathgasp_5.ogg
- type: soundCollection
id: DeathGasp
files:
- /Audio/Effects/Gasp/deathgasp_1.ogg
- /Audio/Effects/Gasp/deathgasp_2.ogg

View File

@@ -0,0 +1,18 @@
- type: soundCollection
id: Fox
files:
- /Audio/Animals/fox_squeak.ogg
- /Audio/Animals/fox1.ogg
- /Audio/Animals/fox2.ogg
- /Audio/Animals/fox3.ogg
- /Audio/Animals/fox4.ogg
- /Audio/Animals/fox5.ogg
- /Audio/Animals/fox6.ogg
- /Audio/Animals/fox7.ogg
- /Audio/Animals/fox8.ogg
- /Audio/Animals/fox9.ogg
- /Audio/Animals/fox10.ogg
- /Audio/Animals/fox11.ogg
- /Audio/Animals/fox12.ogg
- /Audio/Animals/fox13.ogg
- /Audio/Animals/fox14.ogg

View File

@@ -0,0 +1,12 @@
- type: soundCollection
id: MaleGasp
files:
- /Audio/Effects/Gasp/gasp_male1.ogg
- /Audio/Effects/Gasp/gasp_male2.ogg
- type: soundCollection
id: FemaleGasp
files:
- /Audio/Effects/Gasp/gasp_female1.ogg
- /Audio/Effects/Gasp/gasp_female2.ogg
- /Audio/Effects/Gasp/gasp_female3.ogg

View File

@@ -34,6 +34,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: MaleDeathGasp
- type: emoteSounds
id: FemaleHuman
@@ -70,6 +74,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
- type: emoteSounds
id: MaleFelinid
@@ -108,6 +116,10 @@
collection: FelinidGrowls
Purr:
collection: FelinidPurrs
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
- type: emoteSounds
id: FemaleFelinid
@@ -144,6 +156,10 @@
collection: FelinidGrowls
Purr:
collection: FelinidPurrs
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: DeathGasp
- type: emoteSounds
id: SoundsHarpy
@@ -200,7 +216,10 @@
collection: HarpyCaws
Chirp:
collection: HarpyChirps
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
- type: emoteSounds
id: UnisexReptilian
@@ -255,6 +274,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: MaleDeathGasp
params:
variation: 0.125
@@ -293,6 +316,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
params:
variation: 0.125
@@ -320,6 +347,10 @@
collection: BikeHorn
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
params:
variation: 0.125
@@ -338,6 +369,10 @@
path: /Audio/Voice/Arachnid/arachnid_click.ogg
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
- type: emoteSounds
id: UnisexDwarf
@@ -372,6 +407,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: MaleDeathGasp
params:
variation: 0.125
pitch: 0.75
@@ -409,6 +448,10 @@
collection: Whistles
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
params:
variation: 0.125
pitch: 0.75
@@ -430,6 +473,10 @@
path: /Audio/Voice/Moth/moth_squeak.ogg
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
- type: emoteSounds
id: UnisexSilicon

View File

@@ -1,4 +1,4 @@
# vocal emotes
# vocal emotes
- type: emote
id: Scream
category: Vocal
@@ -216,6 +216,14 @@
chatMessages: [облизывается]
allowMenu: true
- type: emote
id: Gasp
name: chat-emote-name-gasp
whitelist:
components:
- Respirator
chatMessages: ["chat-emote-msg-gasp"]
- type: emote
id: DefaultDeathgasp
chatMessages: [ "emote-deathgasp" ]