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