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; }
}