using Content.Shared.NPC.Systems; using Robust.Shared.GameStates; namespace Content.Shared.NPC.Components; /// /// Prevents an NPC from attacking ignored entities from enemy factions. /// Can be added to if pettable, see PettableFriendComponent. /// [RegisterComponent, NetworkedComponent, Access(typeof(NpcFactionSystem), typeof(SharedNPCImprintingOnSpawnBehaviourSystem))] // TO DO (Metalgearsloth): If we start adding a billion access overrides they should be going through a system as then there's no reason to have access, but I'll fix this when I rework npcs. public sealed partial class FactionExceptionComponent : Component { /// /// Collection of entities that this NPC will refuse to attack /// [DataField] public HashSet Ignored = new(); /// /// Collection of entities that this NPC will attack, regardless of faction. /// [DataField] public HashSet Hostiles = new(); }