using Content.Server.Objectives.Components; using Content.Shared.Objectives.Components; namespace Content.Server.Objectives.Systems; public sealed partial class ChangelingObjectiveSystem : EntitySystem { [Dependency] private readonly NumberObjectiveSystem _number = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAbsorbGetProgress); SubscribeLocalEvent(OnStealDNAGetProgress); } private void OnAbsorbGetProgress(EntityUid uid, AbsorbConditionComponent comp, ref ObjectiveGetProgressEvent args) { var target = _number.GetTarget(uid); if (target != 0) args.Progress = MathF.Min(comp.Absorbed / target, 1f); else args.Progress = 1f; } private void OnStealDNAGetProgress(EntityUid uid, StealDNAConditionComponent comp, ref ObjectiveGetProgressEvent args) { var target = _number.GetTarget(uid); if (target != 0) args.Progress = MathF.Min(comp.DNAStolen / target, 1f); else args.Progress = 1f; } }