using Content.Shared.Drunk; using Robust.Shared.Prototypes; namespace Content.Shared.EntityEffects.Effects.StatusEffects; /// /// Applies the drunk status effect to this entity. /// The duration of the effect is equal to modified by scale. /// /// public sealed partial class DrunkEntityEffectSystem : EntityEffectSystem { [Dependency] private readonly SharedDrunkSystem _drunk = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { var boozePower = args.Effect.BoozePower * args.Scale; _drunk.TryApplyDrunkenness(entity, boozePower); } } /// public sealed partial class Drunk : EntityEffectBase { /// /// BoozePower is how long each metabolism cycle will make the drunk effect last for. /// [DataField] public TimeSpan BoozePower = TimeSpan.FromSeconds(3f); public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("entity-effect-guidebook-drunk", ("chance", Probability)); }