using System.Diagnostics.CodeAnalysis; using Content.Shared.Mind; using Content.Shared.Mobs.Systems; using Content.Shared.Silicons.StationAi; namespace Content.Shared.Objectives.Systems; /// /// This filters for specific minds form /// public sealed partial class AliveAiTargetSystem : MindTargetSystem { [Dependency] private MobStateSystem _mobState = default!; [Dependency] private SharedStationAiSystem _ai = default!; protected override bool ValidateEntity(Entity entity, [NotNullWhen(true)] out Entity? mind) { mind = null; if (!_ai.TryGetHeld((entity, entity.Comp2), out var held) || _mobState.IsDead(held.Value)) return false; if (!Mind.TryGetMind(held.Value, out var mindId, out var mindComp)) return false; mind = (mindId, mindComp); return true; } } public sealed partial class AliveAiPool : MindPool;