Flavor profiles (#10991)
* flavor profiles TODO: every single flavor! yeah!!! * adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message * multiple and single flavor messages * start on flavor localization, multiple flavors in localized flavors * flavor prototypes * a few more flavors, descriptions on what each section of the flavor file should be doing * localization for flavor profiles in drink/food system * adds an event that allows a flavor profile list to be transformed base on the user entity * raises it on the food entity too * changes a field in flavor, adds some more flavors, starts adding flavor prototypes * adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors' * changes call ordering in flavorprofile, adds flavor to ignored components server-side flavor is really just a popup message, and those are all processed server-side * fixes where food tried to get the flavor of the user instead of the food * single flavors will now get the localized string * getting the flavor message now ensures that flavors are deduplicated * makes flavor processing more strictly unique bu making everything hashsets * yeah, that could just not have distinctby now * adds flavorprofile directly to food base instead for generic food taste * FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes * flavorprofilesystem now broadcasts the flavor profile modification event * adds more flavors to the flavor profile loc file * skips a flavor, if the flavor string is null/empty * adds some more flavors, adds generic medicine flavor to medicinal chemicals * more food flavors, adds flavors to swallowing * adds some cocktails to the set of flavor profiles * regenerates flavor prototypes * adds flavor type to all flavors, adds whitespace between variants * adds more flavors, adds flavors to several chemicals and food items this is the part that took the longest * changes backup flavor message * spelling mistake * more flavors, and flavors on food * readds all the type fields, whoops * fixes localization strings for forcefeeding food/drink * fixes multiple flavor profile * adds flavor limit for flavors * makes that fetch the cvardef instead
This commit is contained in:
@@ -32,6 +32,7 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
public sealed class DrinkSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly FoodSystem _foodSystem = default!;
|
||||
[Dependency] private readonly FlavorProfileSystem _flavorProfileSystem = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
|
||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||
@@ -335,13 +336,15 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
return;
|
||||
}
|
||||
|
||||
var flavors = _flavorProfileSystem.GetLocalizedFlavorsMessage(args.User, drained);
|
||||
|
||||
if (forceDrink)
|
||||
{
|
||||
var targetName = Identity.Entity(uid, EntityManager);
|
||||
var userName = Identity.Entity(args.User, EntityManager);
|
||||
|
||||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-force-feed-success", ("user", userName)), uid, Filter.Entities(uid));
|
||||
Loc.GetString("drink-component-force-feed-success", ("user", userName), ("flavors", flavors)), uid, Filter.Entities(uid));
|
||||
|
||||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-force-feed-success-user", ("target", targetName)),
|
||||
@@ -350,7 +353,10 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
else
|
||||
{
|
||||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-try-use-drink-success-slurp"), args.User, Filter.Pvs(args.User));
|
||||
Loc.GetString("drink-component-try-use-drink-success-slurp-taste", ("flavors", flavors)), args.User,
|
||||
Filter.Entities(args.User));
|
||||
_popupSystem.PopupEntity(
|
||||
Loc.GetString("drink-component-try-use-drink-success-slurp"), args.User, Filter.PvsExcept(args.User));
|
||||
}
|
||||
|
||||
SoundSystem.Play(args.Drink.UseSound.GetSound(), Filter.Pvs(uid), uid, AudioParams.Default.WithVolume(-2f));
|
||||
|
||||
Reference in New Issue
Block a user