using Content.Shared.Damage; using Content.Shared.Tools; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Repairable; /// /// Use this component to mark a device as repairable. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class RepairableComponent : Component { /// /// All the damage to change information is stored in this . /// /// /// If this data-field is specified, it will change damage by this amount instead of setting all damage to 0. /// in order to heal/repair the damage values have to be negative. /// [DataField, AutoNetworkedField] public DamageSpecifier? Damage; /// /// Cost of fuel used to repair this device. /// [DataField, AutoNetworkedField] public int FuelCost = 5; /// /// Tool quality necessary to repair this device. /// [DataField, AutoNetworkedField] public ProtoId QualityNeeded = "Welding"; /// /// The base tool use delay (seconds). This will be modified by the tool's quality /// [DataField, AutoNetworkedField] public int DoAfterDelay = 1; /// /// A multiplier that will be applied to the above if an entity is repairing themselves. /// [DataField, AutoNetworkedField] public float SelfRepairPenalty = 3f; /// /// Whether an entity is allowed to repair itself. /// [DataField, AutoNetworkedField] public bool AllowSelfRepair = true; }