using Content.Shared.Body; using Content.Shared.DoAfter; using Content.Shared.Humanoid; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.MagicMirror; /// /// Allows humanoids to change their appearance mid-round. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(MagicMirrorSystem))] public sealed partial class MagicMirrorComponent : Component { /// /// The id for a doAfter our is doing. Stored as an ushort so it can be networked and one day predicted. /// [DataField, AutoNetworkedField] public ushort? DoAfter; /// /// Magic mirror target, used for validating UI messages. /// [DataField, AutoNetworkedField] public EntityUid? Target; [DataField(required: true)] public HashSet> Organs; [DataField(required: true)] public HashSet Layers; /// /// Do after time to modify an entity's markings /// [DataField, ViewVariables(VVAccess.ReadWrite)] public TimeSpan ModifyTime = TimeSpan.FromSeconds(7); /// /// Sound emitted when slots are changed /// [DataField, ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier? ChangeHairSound = new SoundPathSpecifier("/Audio/Items/scissors.ogg"); }