mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-01 16:47:26 +00:00
* add: basic rodent species * add: rodentia base sprites * add: basic rodent hand/foot markings * add: ears i got em * add: tail markings * add: big ears by request * tweak: default markings, coloration everything uses skin color by default when added except for these new "default" markings which use tattoo * add: the rest of the basic body part markings * add: snout textures * add: pattern markings * add: cheek detail * add: sex variations for chest marking * add: give rodentia the generic markings * add: rodentia names * add: damage, voice, mass, emotes to rodentia * add: rummager ability for rodentia * remove: temperature protection from rodentia * add: some makeup markings for rodentia * add: include rodentia in misc pools * add: rodentia guidebook entries * tweak: adjust rodentia marking points * add: rodentia pie sprite * tweak desc * tweak: change rodentia name scheme * tweak: adjust damage modifiers for rodentia * add: rodentia always trigger mouse traps * tweak: rodentia have unique speech verbs * tweak: change rodentia inventory shape * tweak: rodentia take more phys dmg overall * tweak: made rodentia hungry * add: mouth storage component on rodents * add: server mouthstoragesystem * add: force-dump mouth storage on trip hmm the networking on this is a little ehh. but watever * add: rodentia drop mouth items on damage * add: blocked interactions if mouth is full * fix: corrected accent oops * tweak: tense * fuck this import in particular * tweak: spit damage threshold * fix: no redundant open actions * refactor: move this action into the types file * add: rodentia get ability to hide under tables etc. * tweak: change rodentia action icons * refactor: im renaming this component and system lol * refactor: rename this event too i was gonna refactor the whole system to be more like climbing, but the climbing system is convoluted so im just gonna do this and put it aside * tweak: fix the mouth storage icon the number covers it * tweak: check if colliding with table before un-sneaking * fix: crawl action cooldown and popup text * add: slowdown to sneak ability * refactor: fix this namespace * tweak: rummageable objects now use a cooldown * fix: newlines * Apply suggestions from code review Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Signed-off-by: portfiend <109661617+portfiend@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com> Signed-off-by: portfiend <109661617+portfiend@users.noreply.github.com> * fix: collision group variavbles * add: proper "full body" sprite * add: move blaze to head folder, "round face" marking * add: whisker markings * tweal: rodentia are 50% -> 33% hungrier 1.5x seemed excessive * refactor(mouthStorage): move OnExamined from server to shared * refactor(mousetrap): use HasComp * refactor(mouthStorage): use a public api instead of event here * refactor(yml): KILL REPETITION * refactor(parts/rodentia): KILL REPETITION --------- Signed-off-by: portfiend <109661617+portfiend@users.noreply.github.com> Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using Content.Server.Nutrition;
|
|
using Content.Server.Speech;
|
|
using Content.Server.Speech.EntitySystems;
|
|
using Content.Shared.DeltaV.Storage.Components;
|
|
using Content.Shared.DeltaV.Storage.EntitySystems;
|
|
using Content.Shared.Storage;
|
|
|
|
namespace Content.Server.DeltaV.Storage.EntitySystems;
|
|
|
|
public sealed class MouthStorageSystem : SharedMouthStorageSystem
|
|
{
|
|
[Dependency] private readonly ReplacementAccentSystem _replacement = default!;
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<MouthStorageComponent, AccentGetEvent>(OnAccent);
|
|
SubscribeLocalEvent<MouthStorageComponent, IngestionAttemptEvent>(OnIngestAttempt);
|
|
}
|
|
|
|
// Force you to mumble if you have items in your mouth
|
|
private void OnAccent(EntityUid uid, MouthStorageComponent component, AccentGetEvent args)
|
|
{
|
|
if (IsMouthBlocked(component))
|
|
args.Message = _replacement.ApplyReplacements(args.Message, "mumble");
|
|
}
|
|
|
|
// Attempting to eat or drink anything with items in your mouth won't work
|
|
private void OnIngestAttempt(EntityUid uid, MouthStorageComponent component, IngestionAttemptEvent args)
|
|
{
|
|
if (!IsMouthBlocked(component))
|
|
return;
|
|
|
|
if (!TryComp<StorageComponent>(component.MouthId, out var storage))
|
|
return;
|
|
|
|
var firstItem = storage.Container.ContainedEntities[0];
|
|
args.Blocker = firstItem;
|
|
args.Cancel();
|
|
}
|
|
}
|