| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using Robust.Shared.Audio;
- using Robust.Shared.GameStates;
- namespace Content.Shared.Damage.Components;
- /// <summary>
- /// This component is added to entities that you want to damage the player
- /// if the player interacts with it. For example, if a player tries touching
- /// a hot light bulb or an anomaly. This damage can be cancelled if the user
- /// has a component that protects them from this.
- /// </summary>
- [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
- public sealed partial class DamageOnInteractComponent : Component
- {
- /// <summary>
- /// How much damage to apply to the person making contact
- /// </summary>
- [DataField(required: true), AutoNetworkedField]
- public DamageSpecifier Damage = default!;
- /// <summary>
- /// Whether the damage should be resisted by a person's armor values
- /// and the <see cref="DamageOnInteractProtectionComponent"/>
- /// </summary>
- [DataField]
- public bool IgnoreResistances;
- /// <summary>
- /// What kind of localized text should pop up when they interact with the entity
- /// </summary>
- [DataField]
- public LocId? PopupText;
- /// <summary>
- /// The sound that should be made when interacting with the entity
- /// </summary>
- [DataField]
- public SoundSpecifier InteractSound = new SoundPathSpecifier("/Audio/Effects/lightburn.ogg");
- /// <summary>
- /// Generic boolean to toggle the damage application on and off
- /// This is useful for things that can be toggled on or off, like a stovetop
- /// </summary>
- [DataField, AutoNetworkedField]
- public bool IsDamageActive = true;
- }
|