using Content.Shared.Mobs; using Robust.Shared.GameStates; namespace Content.Shared.DamageOverlay; /// /// A component to add overlays to the screen of the controlling player depending on the damage the entity has taken. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(raiseAfterAutoHandleState: true, fieldDeltas: true)] [Access(typeof(SharedDamageOverlaySystem))] public sealed partial class DamageOverlayComponent : Component { /// /// The mobstate the overlay currently shows. /// [DataField, AutoNetworkedField] public MobState CurrentState = MobState.Alive; /// /// Controls the red vignette around the screen, which closes in as you take damage. /// [DataField, AutoNetworkedField] public float PainLevel; /// /// Controls the white vignette around the screen, which closes the closer you are to death. /// [DataField, AutoNetworkedField] public float CritLevel; /// /// Used for lerping the white overlay from when the entity dies. /// [DataField, AutoNetworkedField] public float DeadLevel; /// /// Darkens your screen around the edges based on how much asphyxiation damage you have. /// [DataField, AutoNetworkedField] public float OxygenLevel; }