using Robust.Shared.Audio; namespace Content.Shared.Weapons.Misc; public abstract partial class BaseForceGunComponent : Component { [ViewVariables(VVAccess.ReadWrite), DataField("lineColor"), AutoNetworkedField] public Color LineColor = Color.Orange; /// /// The entity the tethered target has a joint to. /// [DataField("tetherEntity"), AutoNetworkedField] public virtual EntityUid? TetherEntity { get; set; } /// /// The entity currently tethered. /// [ViewVariables(VVAccess.ReadWrite), DataField("tethered"), AutoNetworkedField] public virtual EntityUid? Tethered { get; set; } /// /// Can the tethergun unanchor entities. /// [ViewVariables(VVAccess.ReadWrite), DataField("canUnanchor"), AutoNetworkedField] public bool CanUnanchor = false; [ViewVariables(VVAccess.ReadWrite), DataField("canTetherAlive"), AutoNetworkedField] public bool CanTetherAlive = false; /// /// Max force between the tether entity and the tethered target. /// [ViewVariables(VVAccess.ReadWrite), DataField("maxForce"), AutoNetworkedField] public float MaxForce = 200f; [ViewVariables(VVAccess.ReadWrite), DataField("frequency"), AutoNetworkedField] public float Frequency = 10f; [ViewVariables(VVAccess.ReadWrite), DataField("dampingRatio"), AutoNetworkedField] public float DampingRatio = 2f; /// /// Maximum amount of mass a tethered entity can have. /// [ViewVariables(VVAccess.ReadWrite), DataField("massLimit"), AutoNetworkedField] public float MassLimit = 100f; [ViewVariables(VVAccess.ReadWrite), DataField("sound"), AutoNetworkedField] public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/weoweo.ogg") { Params = AudioParams.Default.WithLoop(true).WithVolume(-8f), }; public EntityUid? Stream; }