using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Medical.Healing; /// /// Applies a damage change to the target when used in an interaction. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class HealingComponent : Component { /// /// The amount of damage to heal per use. /// [DataField(required: true), AutoNetworkedField] public DamageSpecifier Damage = default!; /// /// This should generally be negative, /// since you're, like, trying to heal damage. /// [DataField, AutoNetworkedField] public float BloodlossModifier = 0.0f; /// /// Restore missing blood. /// [DataField, AutoNetworkedField] public float ModifyBloodLevel = 0.0f; /// /// The supported damage types are specified using a s. For a /// HealingComponent this filters what damage container type this component should work on. If null, /// all damage container types are supported. /// [DataField, AutoNetworkedField] public List>? DamageContainers; /// /// How long it takes to apply the damage. /// [DataField, AutoNetworkedField] public TimeSpan Delay = TimeSpan.FromSeconds(3f); /// /// Delay multiplier when healing yourself. /// [DataField, AutoNetworkedField] public float SelfHealPenaltyMultiplier = 3f; /// /// Sound played on healing begin. /// [DataField] public SoundSpecifier? HealingBeginSound = null; /// /// Sound played on healing end. /// [DataField] public SoundSpecifier? HealingEndSound = null; }