Drunk Shader (#8910)
Co-authored-by: Kara D <lunarautomaton6@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
29
Content.Shared/Drunk/DrunkSystem.cs
Normal file
29
Content.Shared/Drunk/DrunkSystem.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Content.Shared.Speech.EntitySystems;
|
||||
using Content.Shared.StatusEffect;
|
||||
|
||||
namespace Content.Shared.Drunk;
|
||||
|
||||
public abstract class SharedDrunkSystem : EntitySystem
|
||||
{
|
||||
public const string DrunkKey = "Drunk";
|
||||
|
||||
[Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!;
|
||||
[Dependency] private readonly SharedSlurredSystem _slurredSystem = default!;
|
||||
|
||||
public void TryApplyDrunkenness(EntityUid uid, float boozePower,
|
||||
StatusEffectsComponent? status = null)
|
||||
{
|
||||
if (!Resolve(uid, ref status, false))
|
||||
return;
|
||||
|
||||
_slurredSystem.DoSlur(uid, TimeSpan.FromSeconds(boozePower), status);
|
||||
if (!_statusEffectsSystem.HasStatusEffect(uid, DrunkKey, status))
|
||||
{
|
||||
_statusEffectsSystem.TryAddStatusEffect<DrunkComponent>(uid, DrunkKey, TimeSpan.FromSeconds(boozePower), true, status);
|
||||
}
|
||||
else
|
||||
{
|
||||
_statusEffectsSystem.TryAddTime(uid, DrunkKey, TimeSpan.FromSeconds(boozePower), status);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user