using Content.Shared.Chemistry.Reagent; using Content.Server.Disease; using Content.Shared.Disease.Components; using Robust.Shared.Random; using JetBrains.Annotations; namespace Content.Server.Chemistry.ReagentEffects { /// /// Default metabolism for medicine reagents. /// [UsedImplicitly] public sealed class ChemCauseRandomDisease : ReagentEffect { /// /// A disease to choose from. /// [DataField("diseases", required: true)] [ViewVariables(VVAccess.ReadWrite)] public List Diseases = default!; public override void Effect(ReagentEffectArgs args) { if (args.EntityManager.TryGetComponent(args.SolutionEntity, out var diseased)) return; var random = IoCManager.Resolve(); EntitySystem.Get().TryAddDisease(args.SolutionEntity, random.Pick(Diseases)); } } }