using Content.Shared.StatusIcon; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Overlays; /// /// This component allows you to see faction icons above mobs. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ShowFactionIconsComponent : Component { /// /// The faction icon to display /// [DataField("factionIcon", customTypeSerializer: typeof(PrototypeIdSerializer)), AutoNetworkedField] public string FactionIcon { get; set; } = "HostileFaction"; /// /// The job icon to display (if any) /// [DataField("jobIcon", customTypeSerializer: typeof(PrototypeIdSerializer)), AutoNetworkedField] public string JobIcon { get; set; } = "JobIconSoldier"; /// /// If this role is part of one of the squads /// [DataField("assignSquad"), AutoNetworkedField] public bool AssignSquad { get; set; } = false; /// /// The specific squad icon (e.g., "JobIconSquadAlphaSergeant") assigned by the server. /// [DataField("squadIcon", customTypeSerializer: typeof(PrototypeIdSerializer)), AutoNetworkedField] public string? SquadIcon { get; set; } /// /// The key/name of the squad the entity is assigned to (e.g., "Alpha"). /// [DataField("assignedSquadNameKey"), AutoNetworkedField] public string? AssignedSquadNameKey { get; set; } [DataField("isSergeantInSquad"), AutoNetworkedField] public bool IsSergeantInSquad { get; set; } /// /// Identifier for the major CivTeamDeathmatch Faction this entity belongs to (e.g., Faction1Id or Faction2Id from CivTDMFactionsComponent). /// [DataField("belongsToCivFactionId"), AutoNetworkedField] public string? BelongsToCivFactionId { get; set; } }