using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Eye.Blinding { [RegisterComponent] [NetworkedComponent] public sealed class BlindableComponent : Component { /// /// How many sources of blindness are affecting us? /// [DataField("sources")] public int Sources = 0; /// /// How many seconds will be subtracted from each attempt to add blindness to us? /// [DataField("blindResistance")] public float BlindResistance = 0; /// /// Replace with actual eye damage after bobby I guess /// [ViewVariables] public int EyeDamage = 0; /// /// Whether eye damage has accumulated enough to blind them. /// [ViewVariables] public bool EyeTooDamaged = false; /// /// Used to ensure that this doesn't break with sandbox or admin tools. /// This is not "enabled/disabled". /// public bool LightSetup = false; /// /// Gives an extra frame of blindness to reenable light manager during /// public bool GraceFrame = false; } [Serializable, NetSerializable] public sealed class BlindableComponentState : ComponentState { public readonly int Sources; public BlindableComponentState(int sources) { Sources = sources; } } }