using Content.Shared.Mind;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Roles;
///
/// This holds data for, and indicates, a Mind Role entity
///
[RegisterComponent, NetworkedComponent]
public sealed partial class MindRoleComponent : BaseMindRoleComponent
{
///
/// Marks this Mind Role as Antagonist
/// A single antag Mind Role is enough to make the owner mind count as Antagonist.
///
[DataField]
public bool Antag { get; set; } = false;
///
/// The mind's current antagonist/special role, or lack thereof;
///
[DataField]
public ProtoId? RoleType;
///
/// True if this mindrole is an exclusive antagonist. Antag setting is not checked if this is True.
///
[DataField]
public bool ExclusiveAntag { get; set; } = false;
///
/// The Mind that this role belongs to
///
public Entity Mind { get; set; }
///
/// The Antagonist prototype of this role
///
[DataField]
public ProtoId? AntagPrototype { get; set; }
///
/// The Job prototype of this role
///
[DataField]
public ProtoId? JobPrototype { get; set; }
}
// Why does this base component actually exist? It does make auto-categorization easy, but before that it was useless?
// I used it for easy organisation/bookkeeping of what components are for mindroles
[EntityCategory("Roles")]
public abstract partial class BaseMindRoleComponent : Component
{
}