Quieter Meat Kudzu (#39304)

Init Commit

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
Princess Cheeseballs
2025-10-12 03:36:54 -07:00
committed by GitHub
parent 7578f06461
commit 2c1fc92e5c
4 changed files with 39 additions and 16 deletions

View File

@@ -46,7 +46,11 @@ public sealed class AutoEmoteSystem : EntitySystem
if (autoEmotePrototype.WithChat)
{
_chatSystem.TryEmoteWithChat(uid, autoEmotePrototype.EmoteId, autoEmotePrototype.HiddenFromChatWindow ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal);
_chatSystem.TryEmoteWithChat(uid,
autoEmotePrototype.EmoteId,
autoEmotePrototype.HiddenFromChatWindow ? ChatTransmitRange.HideChat : ChatTransmitRange.Normal,
ignoreActionBlocker: autoEmotePrototype.IgnoreActionBlocker,
forceEmote: autoEmotePrototype.Force);
}
else
{

View File

@@ -14,30 +14,44 @@ public sealed partial class AutoEmotePrototype : IPrototype
/// The ID of the emote prototype.
/// </summary>
[DataField("emote", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EmotePrototype>))]
public string EmoteId = String.Empty;
public string EmoteId = string.Empty;
/// <summary>
/// How often an attempt at the emote will be made.
/// </summary>
[DataField("interval", required: true)]
[DataField(required: true)]
public TimeSpan Interval;
/// <summary>
/// Probability of performing the emote each interval.
/// <summary>
/// </summary>
[DataField("chance")]
public float Chance = 1;
/// <summary>
/// Also send the emote in chat.
/// <summary>
[DataField("withChat")]
/// </summary>
[DataField]
public bool WithChat = true;
/// <summary>
/// Should we ignore action blockers?
/// This does nothing if WithChat is false.
/// </summary>
[DataField]
public bool IgnoreActionBlocker;
/// <summary>
/// Should we ignore whitelists and force the emote?
/// This does nothing if WithChat is false.
/// </summary>
[DataField]
public bool Force;
/// <summary>
/// Hide the chat message from the chat window, only showing the popup.
/// This does nothing if WithChat is false.
/// <summary>
[DataField("hiddenFromChatWindow")]
public bool HiddenFromChatWindow = false;
/// </summary>
[DataField]
public bool HiddenFromChatWindow;
}

View File

@@ -256,13 +256,9 @@
Quantity: 2
- ReagentId: Protein
Quantity: 1
- type: Respirator
damage:
types:
Asphyxiation: 0.25
damageRecovery:
types:
Asphyxiation: -0.25
- type: AutoEmote # Meat Kudzu used to have respirator, but couldn't breathe so all it would do is gasp.
emotes:
- MeatGasp
- type: Tag
tags:
- Meat

View File

@@ -12,3 +12,12 @@
interval: 5.0
chance: 0.5
withChat: false
# Kudzu
- type: autoEmote
id: MeatGasp
emote: Gasp
interval: 4.0 # Same interval as a full breathing cycle
chance: 0.01 # Make it very rare
ignoreActionBlocker: true
force: true
hiddenFromChatWindow: true