* Add the chameleon controller implant * address the issues (Git please dont kill me) * Address the review and fix some merge conflicts! * Cleanup * Add use delay * Silly mistakes * Making a PR at 2 am: Gone wrong * Predict use delay and disable the buttons until you can choose another * First phase custom clothing * Better system, now relays to agent id and mindshield. Chameleon loadouts are a lot better to work with as well * Address the review! No more evil goto * Slams way is better I should have read more closely xD * Some of the jobs * Add to Cargo, CentComm, Service, Passenger, Ninja, Cluwne, Wizard + Minor changes to existing; Add chameleon to bandanas, medals, jugsuits and HUDs * Add everything else * Fix test * Job name * This looks better * Add department organization * Minor cleanup * Added some mindshields * Remove redudent comment and change funcion name to be clearer * Fix cluwne outfit * fix merge conflicts --------- Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
65 lines
2.2 KiB
C#
65 lines
2.2 KiB
C#
using Content.Shared.Roles;
|
|
using Content.Shared.StatusIcon;
|
|
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Shared.Implants;
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
[Prototype]
|
|
public sealed partial class ChameleonOutfitPrototype : IPrototype
|
|
{
|
|
/// <inheritdoc/>
|
|
[ViewVariables, IdDataField]
|
|
public string ID { get; private set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
[DataField]
|
|
public ProtoId<JobPrototype>? Job;
|
|
|
|
/// <summary>
|
|
/// Name of the outfit. This will be used for varous things like the chameleon controller UI and the agent IDs job
|
|
/// name.
|
|
/// </summary>
|
|
[DataField]
|
|
public LocId? Name;
|
|
|
|
/// <summary>
|
|
/// This name is only used in the chameleon controller UI.
|
|
/// </summary>
|
|
[DataField]
|
|
public LocId? LoadoutName;
|
|
|
|
/// <summary>
|
|
/// Generic staring gear. Sometimes outfits don't have jobs but do have starting gear (E.g. Cluwne).
|
|
/// </summary>
|
|
[DataField]
|
|
public ProtoId<StartingGearPrototype>? StartingGear;
|
|
|
|
/// <summary>
|
|
/// Icon for the outfit - used for stuff like the UI or agent ID.
|
|
/// </summary>
|
|
[DataField]
|
|
public ProtoId<JobIconPrototype>? Icon;
|
|
|
|
[DataField]
|
|
public List<ProtoId<DepartmentPrototype>>? Departments;
|
|
|
|
[DataField]
|
|
public bool HasMindShield;
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
[DataField]
|
|
public Dictionary<string, EntProtoId> Equipment { get; set; } = new();
|
|
}
|