using Content.Shared.Damage; using Content.Shared.Tools; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Repairable { [RegisterComponent] public sealed 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. /// [ViewVariables(VVAccess.ReadWrite)] [DataField("damage")] public DamageSpecifier? Damage; [ViewVariables(VVAccess.ReadWrite)] [DataField("fuelCost")] public int FuelCost = 5; [ViewVariables(VVAccess.ReadWrite)] [DataField("qualityNeeded", customTypeSerializer:typeof(PrototypeIdSerializer))] public string QualityNeeded = "Welding"; [ViewVariables(VVAccess.ReadWrite)] [DataField("doAfterDelay")] public int DoAfterDelay = 1; /// /// A multiplier that will be applied to the above if an entity is repairing themselves. /// [ViewVariables(VVAccess.ReadWrite)] [DataField("selfRepairPenalty")] public float SelfRepairPenalty = 3f; } }