using Content.Shared.Roles; using Content.Shared.StatusIcon; using Robust.Shared.Prototypes; namespace Content.Shared.Implants; /// /// A chameleon clothing outfit. Used for the chameleon controller jobs! Has various fields to help describe a full /// job - all the fields are optional and override each other if necessary so you should fill out the maximum amount /// that make sense for the best outcome. /// [Prototype] public sealed partial class ChameleonOutfitPrototype : IPrototype { /// [ViewVariables, IdDataField] public string ID { get; private set; } = string.Empty; /// /// Job this outfit is based off of. Will use various things (job icon, job name, loadout etc...) for the outfit. /// This has the lowest priority for clothing if the user has no custom loadout, but highest if they do. /// [DataField] public ProtoId? Job; /// /// Name of the outfit. This will be used for varous things like the chameleon controller UI and the agent IDs job /// name. /// [DataField] public LocId? Name; /// /// This name is only used in the chameleon controller UI. /// [DataField] public LocId? LoadoutName; /// /// Generic staring gear. Sometimes outfits don't have jobs but do have starting gear (E.g. Cluwne). /// [DataField] public ProtoId? StartingGear; /// /// Icon for the outfit - used for stuff like the UI or agent ID. /// [DataField] public ProtoId? Icon; [DataField] public List>? Departments; [DataField] public bool HasMindShield; /// /// Custom equipment for this specific chameleon outfit. If your making a new outfit that's just for the controller /// use this! It can be mixed with the rest of the fields though, it just takes highest priority right under /// user specified loadouts. /// [DataField] public Dictionary Equipment { get; set; } = new(); }