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;
}