using Content.Shared.Popups; using Robust.Shared.GameStates; namespace Content.Shared.Abilities.Psionics; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] public sealed partial class PsionicFamiliarComponent : Component { /// /// The entity that summoned this Familiar. /// [DataField, AutoNetworkedField] public EntityUid? Master; /// /// Whether the familiar is allowed to attack its Master. /// [DataField] public bool CanAttackMaster; /// /// Popup to play when a familiar that isn't allowed to attack its Master, attempts to do so. /// [DataField] public string AttackMasterText = "psionic-familiar-cant-attack-master"; /// /// Popup type to use when failing to attack the familiar's Master. /// [DataField] public PopupType AttackPopupType = PopupType.SmallCaution; /// /// Text to display when a Familiar is forced to return from whence it came. /// [DataField] public string DespawnText = "psionic-familiar-despawn-text"; /// /// Popup type to use when a Familiar is forced to return from whence it came. /// [DataField] public PopupType DespawnPopopType = PopupType.MediumCaution; /// /// Whether a Psionic Familiar is sent back from whence it came if its Master dies. /// [DataField] public bool DespawnOnMasterDeath = true; /// /// Whether a Psionic Familiar is sent back from whence it came if it dies. /// [DataField] public bool DespawnOnFamiliarDeath = true; /// /// Whether a Psionic Familiar is sent back from whence it came if its Master is mindbroken. /// [DataField] public bool DespawnOnMasterMindbroken = true; /// /// Should the Familiar despawn when the player controlling it disconnects. /// [DataField] public bool DespawnOnPlayerDetach; /// /// Whether a Psionic Familiar inherits its Master's factions. /// This can get people into trouble if the familiar inherits a hostile faction such as Syndicate. /// [DataField] public bool InheritMasterFactions = true; }