using Content.Shared.Body.Components; using Content.Shared.Body.Systems; using Content.Shared.Chemistry.Reagent; using Content.Shared.Forensics; namespace Content.Server.Body.Systems; public sealed class BloodstreamSystem : SharedBloodstreamSystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnDnaGenerated); } // forensics is not predicted yet private void OnDnaGenerated(Entity entity, ref GenerateDnaEvent args) { if (SolutionContainer.ResolveSolution(entity.Owner, entity.Comp.BloodSolutionName, ref entity.Comp.BloodSolution, out var bloodSolution)) { var data = NewEntityBloodData(entity); entity.Comp.BloodReferenceSolution.SetReagentData(data); foreach (var reagent in bloodSolution.Contents) { List reagentData = reagent.Reagent.EnsureReagentData(); reagentData.RemoveAll(x => x is DnaData); reagentData.AddRange(data); } } else Log.Error("Unable to set bloodstream DNA, solution entity could not be resolved"); } }