Normal Drinker Vulp Trait and Speedup Drinking as MessyDrinker - #6431
Normal Drinker Vulp Trait and Speedup Drinking as MessyDrinker#6431Coryler wants to merge 1 commit into
Conversation
|
Triaged by siphynith:
You can view the discussion here and write comments starting with |
|
CR consensus: Approved
Review closed by siphynith. |
|
As detailed in the Content-Review channel, the trait "Normal drinker" is subject to removal once the vulpkanine jump ability has been added. This comment serves as a warning, and will be used in case complaints such as "But I've grown accustomed to the trait!" or "the trait is an inherent part of my character!" are made. |
| /// Drinking Speed Delay Reduction, which speeds up the drinking speed of Vulpkanin | ||
| /// </summary> | ||
| [DataField, AutoNetworkedField] | ||
| public FixedPoint2 DrinkDelayReduction = 0.5; |
There was a problem hiding this comment.
Reduction implies that you're subtracting from the time, not using as a multiplier. Probably can be a float too.
| public FixedPoint2 DrinkDelayReduction = 0.5; | |
| public float DrinkSpeedMultiplier = 0.5f; |
| trait-hemophilia-desc = Your body fails to make blood clots. | ||
|
|
||
| trait-normal-drinker-name = Normal Drinker | ||
| trait-normal-drinker-desc = You're not like your kin. You drink sophisticated. |
There was a problem hiding this comment.
| trait-normal-drinker-desc = You're not like your kin. You drink sophisticated. | |
| trait-normal-drinker-desc = You're not like your kin. You drink more sophisticated, but you do not drink nearly as fast as other vulpkanins. |
| // Delta V - Begin Messy Drinker Speed | ||
| if (TryComp<MessyDrinkerComponent>(args.User, out var comp) && entity.Comp.Solution.ToLower() == MessyDrinkerSolution.ToLower()) | ||
| { | ||
| args.Time *= comp.DrinkDelayReduction.Double(); | ||
| } | ||
| // Delta V - End |
There was a problem hiding this comment.
- I'm not a huge fan of putting this in
IngestionSystem.Blockers.cs. - This doesn't check if the person drinking is the person who has MessyDrinker (aka it doesn't check are you drinking yourself or is someone feeding you).
- Not a fan of hard-coding
MessyDrinkerSolution
It may be better to put this in IngestionSystem.cs, right before the DoAfter and right after CanConsume, like so:
// Check if despite being able to digest the item something is blocking us from eating.
if (!CanConsume(args.User, entity, args.Ingested, out var solution, out var time))
return;
// BEGIN DeltaV - Messy Drinkers drink faster
if (args.User == entity.Owner && TryComp<MessyDrinkerComponent>(entity, out var messyDrinker))
{
var proto = GetEdibleType(food);
if (proto is { } edibleType && messyDrinker.SpillableTypes.Contains(edibleType))
time *= messyDrinker.DrinkSpeedMultiplier;
}
// END DeltaV
if (!_doAfter.TryStartDoAfter(GetEdibleDoAfterArgs(args.User, entity, food, time ?? TimeSpan.Zero)))
return;
About the PR
Made Messy Drinker faster drinker and added a Trait which makes Vulps normal drinker again
Why / Balance
Makes Messy Drinker a bit more senseful as why you're messy. Also allows people who don't want to be that... to be don't.
Technical details
Media
Screencast_20260820_102808.webm
Requirements
Licensing
Changelog
🆑