Черри пики 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:
@@ -54,7 +54,7 @@ public sealed class AudioUIController : UIController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(value))
|
if (!string.IsNullOrEmpty(value))
|
||||||
{
|
{
|
||||||
var resource = _cache.GetResource<AudioResource>(value);
|
var resource = GetSoundOrFallback(value, CCVars.UIClickSound.DefaultValue);
|
||||||
var source =
|
var source =
|
||||||
_audioManager.CreateAudioSource(resource);
|
_audioManager.CreateAudioSource(resource);
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ public sealed class AudioUIController : UIController
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(value))
|
if (!string.IsNullOrEmpty(value))
|
||||||
{
|
{
|
||||||
var hoverResource = _cache.GetResource<AudioResource>(value);
|
var hoverResource = GetSoundOrFallback(value, CCVars.UIHoverSound.DefaultValue);
|
||||||
var hoverSource =
|
var hoverSource =
|
||||||
_audioManager.CreateAudioSource(hoverResource);
|
_audioManager.CreateAudioSource(hoverResource);
|
||||||
|
|
||||||
@@ -95,4 +95,12 @@ public sealed class AudioUIController : UIController
|
|||||||
UIManager.SetHoverSound(null);
|
UIManager.SetHoverSound(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AudioResource GetSoundOrFallback(string path, string fallback)
|
||||||
|
{
|
||||||
|
if (!_cache.TryGetResource(path, out AudioResource? resource))
|
||||||
|
return _cache.GetResource<AudioResource>(fallback);
|
||||||
|
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -392,7 +392,8 @@ namespace Content.Server.Administration.Managers
|
|||||||
// я ебался в зад, поймите
|
// я ебался в зад, поймите
|
||||||
if (!data.HasFlag(AdminFlags.Permissions) && !data.HasFlag(AdminFlags.Host) &&
|
if (!data.HasFlag(AdminFlags.Permissions) && !data.HasFlag(AdminFlags.Host) &&
|
||||||
dbData.AdminServer != null && dbData.AdminServer != "unknown" && currentServerName != "unknown"
|
dbData.AdminServer != null && dbData.AdminServer != "unknown" && currentServerName != "unknown"
|
||||||
&& currentServerName != dbData.AdminServer)
|
&& currentServerName != dbData.AdminServer
|
||||||
|
&& _cfg.GetCVar(CCVars.AdminUseCustomNamesAdminRank))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -405,14 +405,21 @@ namespace Content.Server.Administration.Systems
|
|||||||
var escapedText = FormattedMessage.EscapeText(message.Text);
|
var escapedText = FormattedMessage.EscapeText(message.Text);
|
||||||
|
|
||||||
string bwoinkText;
|
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.
|
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))
|
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
|
||||||
{
|
{
|
||||||
bwoinkText = $"[color=red]{senderSession.Name}[/color]";
|
bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -435,6 +442,13 @@ namespace Content.Server.Administration.Systems
|
|||||||
RaiseNetworkEvent(msg, channel);
|
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
|
// Notify player
|
||||||
if (_playerManager.TryGetSessionById(message.UserId, out var session))
|
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.
|
// 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.
|
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))
|
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
|
||||||
{
|
{
|
||||||
overrideMsgText = $"[color=red]{_overrideClientName}[/color]";
|
overrideMsgText = $"[color=red]{adminPrefixWebhook}{_overrideClientName}[/color]";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using Content.Server.Body.Systems;
|
using Content.Server.Body.Systems;
|
||||||
|
using Content.Shared.Chat.Prototypes;
|
||||||
using Content.Shared.Damage;
|
using Content.Shared.Damage;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
using Robust.Shared.Audio; // WD
|
using Robust.Shared.Audio; // WD
|
||||||
|
|
||||||
@@ -51,10 +53,16 @@ namespace Content.Server.Body.Components
|
|||||||
public DamageSpecifier DamageRecovery = default!;
|
public DamageSpecifier DamageRecovery = default!;
|
||||||
|
|
||||||
[DataField]
|
[DataField]
|
||||||
public TimeSpan GaspPopupCooldown = TimeSpan.FromSeconds(8);
|
public TimeSpan GaspEmoteCooldown = TimeSpan.FromSeconds(8);
|
||||||
|
|
||||||
[ViewVariables]
|
[ViewVariables]
|
||||||
public TimeSpan LastGaspPopupTime;
|
public TimeSpan LastGaspEmoteTime;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The emote when gasps
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<EmotePrototype> GaspEmote = "Gasp";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How many cycles in a row has the mob been under-saturated?
|
/// How many cycles in a row has the mob been under-saturated?
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using Content.Server.Administration.Logs;
|
|||||||
using Content.Server.Atmos;
|
using Content.Server.Atmos;
|
||||||
using Content.Server.Atmos.EntitySystems;
|
using Content.Server.Atmos.EntitySystems;
|
||||||
using Content.Server.Body.Components;
|
using Content.Server.Body.Components;
|
||||||
|
using Content.Server.Chat.Systems;
|
||||||
using Content.Server.Chemistry.Containers.EntitySystems;
|
using Content.Server.Chemistry.Containers.EntitySystems;
|
||||||
using Content.Server.DoAfter;
|
using Content.Server.DoAfter;
|
||||||
using Content.Server.Nutrition.Components; // WD
|
using Content.Server.Nutrition.Components; // WD
|
||||||
@@ -42,14 +43,16 @@ public sealed class RespiratorSystem : EntitySystem
|
|||||||
[Dependency] private readonly BodySystem _bodySystem = default!;
|
[Dependency] private readonly BodySystem _bodySystem = default!;
|
||||||
[Dependency] private readonly DamageableSystem _damageableSys = default!;
|
[Dependency] private readonly DamageableSystem _damageableSys = default!;
|
||||||
[Dependency] private readonly LungSystem _lungSystem = default!;
|
[Dependency] private readonly LungSystem _lungSystem = default!;
|
||||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
|
||||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||||
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
|
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
|
||||||
|
[Dependency] private readonly ChatSystem _chat = default!;
|
||||||
[Dependency] private readonly InventorySystem _inventorySystem = default!; // WD
|
[Dependency] private readonly InventorySystem _inventorySystem = default!; // WD
|
||||||
[Dependency] private readonly ActionBlockerSystem _blocker = default!; // WD
|
[Dependency] private readonly ActionBlockerSystem _blocker = default!; // WD
|
||||||
[Dependency] private readonly AudioSystem _audio = default!; // WD
|
[Dependency] private readonly AudioSystem _audio = default!; // WD
|
||||||
[Dependency] private readonly DoAfterSystem _doAfter = default!; // WD
|
[Dependency] private readonly DoAfterSystem _doAfter = default!; // WD
|
||||||
[Dependency] private readonly DamageableSystem _damageable = default!; // WD
|
[Dependency] private readonly DamageableSystem _damageable = default!; // WD
|
||||||
|
[Dependency] private readonly SharedPopupSystem _popupSystem = default!; // WD
|
||||||
|
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -116,10 +119,10 @@ public sealed class RespiratorSystem : EntitySystem
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_gameTiming.CurTime >= respirator.LastGaspPopupTime + respirator.GaspPopupCooldown)
|
if (_gameTiming.CurTime >= respirator.LastGaspEmoteTime + respirator.GaspEmoteCooldown)
|
||||||
{
|
{
|
||||||
respirator.LastGaspPopupTime = _gameTiming.CurTime;
|
respirator.LastGaspEmoteTime = _gameTiming.CurTime;
|
||||||
_popupSystem.PopupEntity($"{Name(Identity.Entity(uid, EntityManager))} задыхается!", uid);
|
_chat.TryEmoteWithChat(uid, respirator.GaspEmote, ignoreActionBlocker: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
TakeSuffocationDamage((uid, respirator));
|
TakeSuffocationDamage((uid, respirator));
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ using Content.Server.Station.Systems;
|
|||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
using Content.Shared.StationRecords;
|
using Content.Shared.StationRecords;
|
||||||
using Robust.Shared.Audio.Systems;
|
using Robust.Shared.Audio.Systems;
|
||||||
|
using Content.Server.Chat.Managers;
|
||||||
|
|
||||||
namespace Content.Server.MassMedia.Systems;
|
namespace Content.Server.MassMedia.Systems;
|
||||||
|
|
||||||
@@ -35,6 +36,7 @@ public sealed class NewsSystem : SharedNewsSystem
|
|||||||
[Dependency] private readonly GameTicker _ticker = default!;
|
[Dependency] private readonly GameTicker _ticker = default!;
|
||||||
[Dependency] private readonly AccessReaderSystem _accessReader = default!;
|
[Dependency] private readonly AccessReaderSystem _accessReader = default!;
|
||||||
[Dependency] private readonly IdCardSystem _idCardSystem = default!;
|
[Dependency] private readonly IdCardSystem _idCardSystem = default!;
|
||||||
|
[Dependency] private readonly IChatManager _chatManager = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
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}"
|
$"{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);
|
articles.Add(article);
|
||||||
|
|
||||||
var args = new NewsArticlePublishedEvent(article);
|
var args = new NewsArticlePublishedEvent(article);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Content.Server.DeviceNetwork;
|
using Content.Server.DeviceNetwork;
|
||||||
using Content.Server.DeviceNetwork.Components;
|
using Content.Server.DeviceNetwork.Components;
|
||||||
using Content.Server.DeviceNetwork.Systems;
|
using Content.Server.DeviceNetwork.Systems;
|
||||||
using Content.Server.Medical.SuitSensors;
|
using Content.Server.Medical.SuitSensors;
|
||||||
|
|||||||
@@ -874,6 +874,52 @@ namespace Content.Shared.CCVar
|
|||||||
public static readonly CVarDef<bool> AdminBypassMaxPlayers =
|
public static readonly CVarDef<bool> AdminBypassMaxPlayers =
|
||||||
CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY);
|
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
|
* Explosions
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -138,3 +138,21 @@
|
|||||||
copyright: "Taken from ParadiseSS13"
|
copyright: "Taken from ParadiseSS13"
|
||||||
source: "https://github.com/ParadiseSS13/Paradise/commit/a34f1054cef5a44a67fdac3b67b811137c6071dd"
|
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"
|
||||||
|
|||||||
BIN
Resources/Audio/Animals/fox1.ogg
Normal file
BIN
Resources/Audio/Animals/fox1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox10.ogg
Normal file
BIN
Resources/Audio/Animals/fox10.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox11.ogg
Normal file
BIN
Resources/Audio/Animals/fox11.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox12.ogg
Normal file
BIN
Resources/Audio/Animals/fox12.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox13.ogg
Normal file
BIN
Resources/Audio/Animals/fox13.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox14.ogg
Normal file
BIN
Resources/Audio/Animals/fox14.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox2.ogg
Normal file
BIN
Resources/Audio/Animals/fox2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox3.ogg
Normal file
BIN
Resources/Audio/Animals/fox3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox4.ogg
Normal file
BIN
Resources/Audio/Animals/fox4.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox5.ogg
Normal file
BIN
Resources/Audio/Animals/fox5.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox6.ogg
Normal file
BIN
Resources/Audio/Animals/fox6.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox7.ogg
Normal file
BIN
Resources/Audio/Animals/fox7.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox8.ogg
Normal file
BIN
Resources/Audio/Animals/fox8.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Animals/fox9.ogg
Normal file
BIN
Resources/Audio/Animals/fox9.ogg
Normal file
Binary file not shown.
26
Resources/Audio/Effects/Gasp/attributions.yml
Normal file
26
Resources/Audio/Effects/Gasp/attributions.yml
Normal 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"
|
||||||
BIN
Resources/Audio/Effects/Gasp/deathgasp_1.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/deathgasp_1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/deathgasp_2.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/deathgasp_2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_1.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_2.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_3.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_4.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_4.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_5.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/female_deathgasp_5.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/gasp_female1.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/gasp_female1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/gasp_female2.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/gasp_female2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/gasp_female3.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/gasp_female3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/gasp_male1.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/gasp_male1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/gasp_male2.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/gasp_male2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_1.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_2.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_3.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_3.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_4.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_4.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_5.ogg
Normal file
BIN
Resources/Audio/Effects/Gasp/male_deathgasp_5.ogg
Normal file
Binary file not shown.
@@ -134,3 +134,8 @@
|
|||||||
license: "CC-BY-SA-3.0"
|
license: "CC-BY-SA-3.0"
|
||||||
copyright: "Taken from tgstation."
|
copyright: "Taken from tgstation."
|
||||||
source: "https://github.com/tgstation/tgstation/blob/a7f525bce9a359ab5282fc754078cd4b5678a006/sound/items"
|
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"
|
||||||
BIN
Resources/Audio/Items/pen_click.ogg
Normal file
BIN
Resources/Audio/Items/pen_click.ogg
Normal file
Binary file not shown.
@@ -35,5 +35,9 @@ see_own_notes = true
|
|||||||
deadmin_on_join = true
|
deadmin_on_join = true
|
||||||
new_player_threshold = 600
|
new_player_threshold = 600
|
||||||
|
|
||||||
|
[ahelp]
|
||||||
|
admin_prefix = false
|
||||||
|
admin_prefix_webhook = false
|
||||||
|
|
||||||
[worldgen]
|
[worldgen]
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
lung-behavior-gasp = Gasp
|
|
||||||
0
Resources/Locale/en-US/chat/emotes.ftl
Normal file
0
Resources/Locale/en-US/chat/emotes.ftl
Normal file
@@ -34,3 +34,4 @@ news-write-ui-richtext-tooltip = News articles support rich text
|
|||||||
{"[bullet/]bullet[/color]"}
|
{"[bullet/]bullet[/color]"}
|
||||||
|
|
||||||
news-pda-notification-header = New news article
|
news-pda-notification-header = New news article
|
||||||
|
news-publish-admin-announcement = {$actor} published news article {$title} by {$author}"
|
||||||
|
|||||||
1
Resources/Locale/ru-RU/_white/mobs/emote.ftl
Normal file
1
Resources/Locale/ru-RU/_white/mobs/emote.ftl
Normal file
@@ -0,0 +1 @@
|
|||||||
|
chat-emote-msg-gasp = задыхается
|
||||||
@@ -2482,7 +2482,7 @@
|
|||||||
interactFailureString: petting-failure-generic
|
interactFailureString: petting-failure-generic
|
||||||
interactSuccessSpawn: EffectHearts
|
interactSuccessSpawn: EffectHearts
|
||||||
interactSuccessSound:
|
interactSuccessSound:
|
||||||
path: /Audio/Animals/fox_squeak.ogg
|
collection: Fox
|
||||||
- type: Grammar
|
- type: Grammar
|
||||||
attributes:
|
attributes:
|
||||||
gender: epicene
|
gender: epicene
|
||||||
|
|||||||
@@ -529,7 +529,7 @@
|
|||||||
interactFailureString: petting-failure-generic
|
interactFailureString: petting-failure-generic
|
||||||
interactSuccessSpawn: EffectHearts
|
interactSuccessSpawn: EffectHearts
|
||||||
interactSuccessSound:
|
interactSuccessSound:
|
||||||
path: /Audio/Animals/fox_squeak.ogg
|
collection: Fox
|
||||||
- type: Butcherable
|
- type: Butcherable
|
||||||
syndieRoleRequired: true
|
syndieRoleRequired: true
|
||||||
spawned:
|
spawned:
|
||||||
|
|||||||
@@ -680,6 +680,7 @@
|
|||||||
scanDelay: 0
|
scanDelay: 0
|
||||||
- type: CartridgeLoader
|
- type: CartridgeLoader
|
||||||
uiKey: enum.PdaUiKey.Key
|
uiKey: enum.PdaUiKey.Key
|
||||||
|
notificationsEnabled: false
|
||||||
preinstalled:
|
preinstalled:
|
||||||
- CrewManifestCartridge
|
- CrewManifestCartridge
|
||||||
- NotekeeperCartridge
|
- NotekeeperCartridge
|
||||||
|
|||||||
@@ -325,6 +325,14 @@
|
|||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
materialComposition:
|
materialComposition:
|
||||||
Steel: 25
|
Steel: 25
|
||||||
|
- type: EmitSoundOnUse
|
||||||
|
sound:
|
||||||
|
path: /Audio/Items/pen_click.ogg
|
||||||
|
params:
|
||||||
|
volume: -4
|
||||||
|
maxDistance: 2
|
||||||
|
- type: UseDelay
|
||||||
|
delay: 0.3
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: Pen
|
parent: Pen
|
||||||
|
|||||||
0
Resources/Prototypes/Entities/Objects/Misc/pen.yml
Normal file
0
Resources/Prototypes/Entities/Objects/Misc/pen.yml
Normal file
@@ -56,6 +56,7 @@
|
|||||||
SheetSteel1:
|
SheetSteel1:
|
||||||
min: 1
|
min: 1
|
||||||
max: 2
|
max: 2
|
||||||
|
- type: AmbientOnPowered
|
||||||
- type: AmbientSound
|
- type: AmbientSound
|
||||||
volume: -9
|
volume: -9
|
||||||
range: 5
|
range: 5
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
min: 1
|
min: 1
|
||||||
max: 2
|
max: 2
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
|
- type: AmbientOnPowered
|
||||||
- type: AmbientSound
|
- type: AmbientSound
|
||||||
volume: -9
|
volume: -9
|
||||||
range: 5
|
range: 5
|
||||||
|
|||||||
@@ -22,6 +22,12 @@
|
|||||||
snapCardinals: true
|
snapCardinals: true
|
||||||
layers:
|
layers:
|
||||||
- state: server
|
- state: server
|
||||||
|
- type: AmbientOnPowered
|
||||||
|
- type: AmbientSound
|
||||||
|
volume: -9
|
||||||
|
range: 5
|
||||||
|
sound:
|
||||||
|
path: /Audio/Ambience/Objects/server_fans.ogg
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: SurveillanceCameraRouterBase
|
parent: SurveillanceCameraRouterBase
|
||||||
@@ -113,6 +119,7 @@
|
|||||||
subnetColor: "#088743"
|
subnetColor: "#088743"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
abstract: true
|
||||||
parent: [ BaseMachinePowered, ConstructibleMachine ]
|
parent: [ BaseMachinePowered, ConstructibleMachine ]
|
||||||
id: SurveillanceCameraWirelessRouterBase
|
id: SurveillanceCameraWirelessRouterBase
|
||||||
name: wireless camera router
|
name: wireless camera router
|
||||||
@@ -135,6 +142,12 @@
|
|||||||
sprite: Structures/Machines/server.rsi
|
sprite: Structures/Machines/server.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: server
|
- state: server
|
||||||
|
- type: AmbientOnPowered
|
||||||
|
- type: AmbientSound
|
||||||
|
volume: -9
|
||||||
|
range: 5
|
||||||
|
sound:
|
||||||
|
path: /Audio/Ambience/Objects/server_fans.ogg
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: SurveillanceCameraWirelessRouterBase
|
parent: SurveillanceCameraWirelessRouterBase
|
||||||
|
|||||||
@@ -21,6 +21,12 @@
|
|||||||
True: { visible: true }
|
True: { visible: true }
|
||||||
False: { visible: false }
|
False: { visible: false }
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
|
- type: AmbientOnPowered
|
||||||
|
- type: AmbientSound
|
||||||
|
volume: -9
|
||||||
|
range: 5
|
||||||
|
sound:
|
||||||
|
path: /Audio/Ambience/Objects/server_fans.ogg
|
||||||
- type: WiresVisuals
|
- type: WiresVisuals
|
||||||
- type: Physics
|
- type: Physics
|
||||||
bodyType: Static
|
bodyType: Static
|
||||||
|
|||||||
23
Resources/Prototypes/SoundCollections/deathgasp.yml
Normal file
23
Resources/Prototypes/SoundCollections/deathgasp.yml
Normal 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
|
||||||
18
Resources/Prototypes/SoundCollections/fox.yml
Normal file
18
Resources/Prototypes/SoundCollections/fox.yml
Normal 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
|
||||||
12
Resources/Prototypes/SoundCollections/gasp.yml
Normal file
12
Resources/Prototypes/SoundCollections/gasp.yml
Normal 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
|
||||||
@@ -34,6 +34,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: MaleDeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: FemaleHuman
|
id: FemaleHuman
|
||||||
@@ -70,6 +74,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: FemaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: FemaleDeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: MaleFelinid
|
id: MaleFelinid
|
||||||
@@ -108,6 +116,10 @@
|
|||||||
collection: FelinidGrowls
|
collection: FelinidGrowls
|
||||||
Purr:
|
Purr:
|
||||||
collection: FelinidPurrs
|
collection: FelinidPurrs
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: FemaleFelinid
|
id: FemaleFelinid
|
||||||
@@ -144,6 +156,10 @@
|
|||||||
collection: FelinidGrowls
|
collection: FelinidGrowls
|
||||||
Purr:
|
Purr:
|
||||||
collection: FelinidPurrs
|
collection: FelinidPurrs
|
||||||
|
Gasp:
|
||||||
|
collection: FemaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: SoundsHarpy
|
id: SoundsHarpy
|
||||||
@@ -200,7 +216,10 @@
|
|||||||
collection: HarpyCaws
|
collection: HarpyCaws
|
||||||
Chirp:
|
Chirp:
|
||||||
collection: HarpyChirps
|
collection: HarpyChirps
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: UnisexReptilian
|
id: UnisexReptilian
|
||||||
@@ -255,6 +274,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: MaleDeathGasp
|
||||||
params:
|
params:
|
||||||
variation: 0.125
|
variation: 0.125
|
||||||
|
|
||||||
@@ -293,6 +316,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: FemaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: FemaleDeathGasp
|
||||||
params:
|
params:
|
||||||
variation: 0.125
|
variation: 0.125
|
||||||
|
|
||||||
@@ -320,6 +347,10 @@
|
|||||||
collection: BikeHorn
|
collection: BikeHorn
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
params:
|
params:
|
||||||
variation: 0.125
|
variation: 0.125
|
||||||
|
|
||||||
@@ -338,6 +369,10 @@
|
|||||||
path: /Audio/Voice/Arachnid/arachnid_click.ogg
|
path: /Audio/Voice/Arachnid/arachnid_click.ogg
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: UnisexDwarf
|
id: UnisexDwarf
|
||||||
@@ -372,6 +407,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: MaleDeathGasp
|
||||||
params:
|
params:
|
||||||
variation: 0.125
|
variation: 0.125
|
||||||
pitch: 0.75
|
pitch: 0.75
|
||||||
@@ -409,6 +448,10 @@
|
|||||||
collection: Whistles
|
collection: Whistles
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: FemaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: FemaleDeathGasp
|
||||||
params:
|
params:
|
||||||
variation: 0.125
|
variation: 0.125
|
||||||
pitch: 0.75
|
pitch: 0.75
|
||||||
@@ -430,6 +473,10 @@
|
|||||||
path: /Audio/Voice/Moth/moth_squeak.ogg
|
path: /Audio/Voice/Moth/moth_squeak.ogg
|
||||||
Weh:
|
Weh:
|
||||||
collection: Weh
|
collection: Weh
|
||||||
|
Gasp:
|
||||||
|
collection: MaleGasp
|
||||||
|
DefaultDeathgasp:
|
||||||
|
collection: DeathGasp
|
||||||
|
|
||||||
- type: emoteSounds
|
- type: emoteSounds
|
||||||
id: UnisexSilicon
|
id: UnisexSilicon
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# vocal emotes
|
# vocal emotes
|
||||||
- type: emote
|
- type: emote
|
||||||
id: Scream
|
id: Scream
|
||||||
category: Vocal
|
category: Vocal
|
||||||
@@ -216,6 +216,14 @@
|
|||||||
chatMessages: [облизывается]
|
chatMessages: [облизывается]
|
||||||
allowMenu: true
|
allowMenu: true
|
||||||
|
|
||||||
|
- type: emote
|
||||||
|
id: Gasp
|
||||||
|
name: chat-emote-name-gasp
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- Respirator
|
||||||
|
chatMessages: ["chat-emote-msg-gasp"]
|
||||||
|
|
||||||
- type: emote
|
- type: emote
|
||||||
id: DefaultDeathgasp
|
id: DefaultDeathgasp
|
||||||
chatMessages: [ "emote-deathgasp" ]
|
chatMessages: [ "emote-deathgasp" ]
|
||||||
|
|||||||
Reference in New Issue
Block a user