using Content.Shared.CrystallPunk.LockKey; using Content.Shared.Damage; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.CrystallPunk.LockKey; /// /// A component of a lock that stores its keyhole shape, complexity, and current state. /// [RegisterComponent] public sealed partial class CPLockComponent : Component { [DataField] public List? LockShape = null; [DataField] public float LockPickDamageChance = 0.2f; /// /// On which element of the shape sequence the lock is now located. It's necessary for the mechanics of breaking and entering. /// [DataField] public int LockpickStatus = 0; /// /// after a lock is broken into, it leaves a description on it that it's been tampered with. /// [DataField] public bool LockpickeddFailMarkup = false; /// /// If not null, automatically generates a lock for the specified category on initialization. This ensures that the lock will be opened with a key of the same category. /// [DataField] public ProtoId? AutoGenerateShape = null; }