using Robust.Shared.Prototypes;
using Robust.Shared.GameStates;
namespace Content.Shared.DeviceLinking.Components;
///
/// A component for a random gate, which outputs a signal with a given probability.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class RandomGateComponent : Component
{
///
/// The input port for receiving signals.
///
[DataField]
public ProtoId InputPort = "RandomGateInput";
///
/// The output port for sending signals.
///
[DataField]
public ProtoId OutputPort = "Output";
///
/// The last output state of the gate.
///
[DataField, AutoNetworkedField]
public bool LastOutput;
///
/// The probability (0.0 to 1.0) that the gate will output a signal.
///
[DataField, AutoNetworkedField]
public float SuccessProbability = 0.5f;
}