using Robust.Shared.Prototypes; namespace Content.Server._NF.Salvage; /// /// This component exists as a sort of stateful marker for a /// killswitch meant to keep salvage mobs from doing stuff they /// really shouldn't (attacking station). /// The main thing is that adding this component ties the mob to /// whatever it's currently parented to. /// [RegisterComponent] public sealed partial class NFSalvageMobRestrictionsComponent : Component { [DataField, ViewVariables(VVAccess.ReadOnly)] public EntityUid LinkedGridEntity = EntityUid.Invalid; /// /// If set to false, this mob will not be despawned when its linked entity is despawned. /// Useful for event ghost roles, for instance. /// [DataField] public bool DespawnIfOffLinkedGrid = true; // On walking off grid [DataField] public string LeaveGridPopup = "dungeon-boss-grid-warning"; /// /// Components to be added when the mob leave the grid. /// [DataField] public ComponentRegistry AddComponentsLeaveGrid { get; set; } = new(); /// /// Components to be removed when the mob leave the grid. /// [DataField] public ComponentRegistry RemoveComponentsLeaveGrid { get; set; } = new(); /// /// Components to be added when the mob return to the grid. /// [DataField] public ComponentRegistry AddComponentsReturnGrid { get; set; } = new(); /// /// Components to be removed when the mob return to the grid. /// [DataField] public ComponentRegistry RemoveComponentsReturnGrid { get; set; } = new(); // On death /// /// Components to be added on death. /// [DataField] public ComponentRegistry AddComponentsOnDeath { get; set; } = new(); /// /// Components to be removed on death. /// [DataField] public ComponentRegistry RemoveComponentsOnDeath { get; set; } = new(); /// /// Components to be added on revivel. /// [DataField] public ComponentRegistry AddComponentsOnRevival { get; set; } = new(); /// /// Components to be removed on revival. /// [DataField] public ComponentRegistry RemoveComponentsOnRevival { get; set; } = new(); }