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:
Leon Friedrich
2022-06-23 16:33:25 +12:00
committed by GitHub
parent bf489adb91
commit c25f2e6283
19 changed files with 395 additions and 4 deletions

View 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);
}
}
}