diff --git a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs index 0f6b9882ce..56013a669e 100644 --- a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs @@ -265,6 +265,8 @@ namespace Content.Server.Nutrition.EntitySystems drink.CancelToken = new CancellationTokenSource(); var moveBreak = user != target; + var flavors = _flavorProfileSystem.GetLocalizedFlavorsMessage(user, drinkSolution); + _doAfterSystem.DoAfter(new DoAfterEventArgs(user, forceDrink ? drink.ForceFeedDelay : drink.Delay, drink.CancelToken.Token, target, drink.Owner) { BreakOnUserMove = moveBreak, @@ -273,7 +275,7 @@ namespace Content.Server.Nutrition.EntitySystems BreakOnTargetMove = moveBreak, MovementThreshold = 0.01f, DistanceThreshold = 1.0f, - TargetFinishedEvent = new DrinkEvent(user, drink, drinkSolution), + TargetFinishedEvent = new DrinkEvent(user, drink, drinkSolution, flavors), BroadcastCancelledEvent = new DrinkCancelledEvent(drink), NeedHand = true, }); @@ -336,7 +338,7 @@ namespace Content.Server.Nutrition.EntitySystems return; } - var flavors = _flavorProfileSystem.GetLocalizedFlavorsMessage(args.User, drained); + var flavors = args.FlavorMessage; if (forceDrink) { diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 6752781a18..fad24a461d 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -94,6 +94,8 @@ namespace Content.Server.Nutrition.EntitySystems if (!_solutionContainerSystem.TryGetSolution(food.Owner, food.SolutionName, out var foodSolution)) return false; + var flavors = _flavorProfileSystem.GetLocalizedFlavorsMessage(food.Owner, user, foodSolution); + if (food.UsesRemaining <= 0) { _popupSystem.PopupEntity(Loc.GetString("food-system-try-use-food-is-empty", @@ -134,7 +136,7 @@ namespace Content.Server.Nutrition.EntitySystems BreakOnTargetMove = moveBreak, MovementThreshold = 0.01f, DistanceThreshold = 1.0f, - TargetFinishedEvent = new FeedEvent(user, food, foodSolution, utensils), + TargetFinishedEvent = new FeedEvent(user, food, foodSolution, flavors, utensils), BroadcastCancelledEvent = new ForceFeedCancelledEvent(food), NeedHand = true, }); @@ -180,7 +182,7 @@ namespace Content.Server.Nutrition.EntitySystems split.DoEntityReaction(uid, ReactionMethod.Ingestion); _stomachSystem.TryTransferSolution(firstStomach.Value.Comp.Owner, split, firstStomach.Value.Comp); - var flavors = _flavorProfileSystem.GetLocalizedFlavorsMessage(args.Food.Owner, args.User, split); + var flavors = args.FlavorMessage; if (forceFeed) { diff --git a/Content.Server/Nutrition/IngestionEvents.cs b/Content.Server/Nutrition/IngestionEvents.cs index b76b679a97..3c902a6819 100644 --- a/Content.Server/Nutrition/IngestionEvents.cs +++ b/Content.Server/Nutrition/IngestionEvents.cs @@ -22,13 +22,15 @@ public sealed class FeedEvent : EntityEventArgs public readonly EntityUid User; public readonly FoodComponent Food; public readonly Solution FoodSolution; + public readonly string FlavorMessage; public readonly List Utensils; - public FeedEvent(EntityUid user, FoodComponent food, Solution foodSolution, List utensils) + public FeedEvent(EntityUid user, FoodComponent food, Solution foodSolution, string flavorMessage, List utensils) { User = user; Food = food; FoodSolution = foodSolution; + FlavorMessage = flavorMessage; Utensils = utensils; } } @@ -54,12 +56,14 @@ public sealed class DrinkEvent : EntityEventArgs public readonly EntityUid User; public readonly DrinkComponent Drink; public readonly Solution DrinkSolution; + public readonly string FlavorMessage; - public DrinkEvent(EntityUid user, DrinkComponent drink, Solution drinkSolution) + public DrinkEvent(EntityUid user, DrinkComponent drink, Solution drinkSolution, string flavorMessage) { User = user; Drink = drink; DrinkSolution = drinkSolution; + FlavorMessage = flavorMessage; } }