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;
}
}
}