mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-04 05:17:28 +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>
75 lines
3.6 KiB
C#
75 lines
3.6 KiB
C#
using Content.Shared.Humanoid.Prototypes;
|
|
using Content.Shared.Dataset;
|
|
using Robust.Shared.Random;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Enums;
|
|
|
|
namespace Content.Shared.Humanoid
|
|
{
|
|
/// <summary>
|
|
/// Figure out how to name a humanoid with these extensions.
|
|
/// </summary>
|
|
public sealed class NamingSystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly IRobustRandom _random = default!;
|
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
|
|
|
public string GetName(string species, Gender? gender = null)
|
|
{
|
|
// if they have an old species or whatever just fall back to human I guess?
|
|
// Some downstream is probably gonna have this eventually but then they can deal with fallbacks.
|
|
if (!_prototypeManager.TryIndex(species, out SpeciesPrototype? speciesProto))
|
|
{
|
|
speciesProto = _prototypeManager.Index<SpeciesPrototype>("Human");
|
|
Log.Warning($"Unable to find species {species} for name, falling back to Human");
|
|
}
|
|
|
|
switch (speciesProto.Naming)
|
|
{
|
|
case SpeciesNaming.First:
|
|
return Loc.GetString("namepreset-first",
|
|
("first", GetFirstName(speciesProto, gender)));
|
|
// Start of Nyano - Summary: for Oni naming
|
|
case SpeciesNaming.LastNoFirst:
|
|
return Loc.GetString("namepreset-lastnofirst",
|
|
("first", GetFirstName(speciesProto, gender)), ("last", GetLastName(speciesProto)));
|
|
// End of Nyano - Summary: for Oni naming
|
|
case SpeciesNaming.TheFirstofLast:
|
|
return Loc.GetString("namepreset-thefirstoflast",
|
|
("first", GetFirstName(speciesProto, gender)), ("last", GetLastName(speciesProto)));
|
|
case SpeciesNaming.FirstDashFirst:
|
|
return Loc.GetString("namepreset-firstdashfirst",
|
|
("first1", GetFirstName(speciesProto, gender)), ("first2", GetFirstName(speciesProto, gender)));
|
|
case SpeciesNaming.LastFirst: // DeltaV: Rodentia name scheme
|
|
return Loc.GetString("namepreset-lastfirst",
|
|
("last", GetLastName(speciesProto)), ("first", GetFirstName(speciesProto, gender)));
|
|
case SpeciesNaming.FirstLast:
|
|
default:
|
|
return Loc.GetString("namepreset-firstlast",
|
|
("first", GetFirstName(speciesProto, gender)), ("last", GetLastName(speciesProto)));
|
|
}
|
|
}
|
|
|
|
public string GetFirstName(SpeciesPrototype speciesProto, Gender? gender = null)
|
|
{
|
|
switch (gender)
|
|
{
|
|
case Gender.Male:
|
|
return _random.Pick(_prototypeManager.Index<DatasetPrototype>(speciesProto.MaleFirstNames).Values);
|
|
case Gender.Female:
|
|
return _random.Pick(_prototypeManager.Index<DatasetPrototype>(speciesProto.FemaleFirstNames).Values);
|
|
default:
|
|
if (_random.Prob(0.5f))
|
|
return _random.Pick(_prototypeManager.Index<DatasetPrototype>(speciesProto.MaleFirstNames).Values);
|
|
else
|
|
return _random.Pick(_prototypeManager.Index<DatasetPrototype>(speciesProto.FemaleFirstNames).Values);
|
|
}
|
|
}
|
|
|
|
public string GetLastName(SpeciesPrototype speciesProto)
|
|
{
|
|
return _random.Pick(_prototypeManager.Index<DatasetPrototype>(speciesProto.LastNames).Values);
|
|
}
|
|
}
|
|
}
|