using Content.Shared.Physics; using Robust.Shared.Prototypes; namespace Content.Shared.Lightning.Components; /// /// Handles how lightning acts and is spawned. Use the ShootLightning method to fire lightning from one user to a target. /// public abstract partial class SharedLightningComponent : Component { /// /// Can this lightning arc? /// [DataField] public bool CanArc; /// /// How much should lightning arc in total? /// Controls the amount of bolts that will spawn. /// [DataField] public int MaxTotalArcs = 50; /// /// The prototype ID used for arcing bolts. Usually will be the same name as the main proto but it could be flexible. /// [DataField] public EntProtoId LightningPrototype = "Lightning"; /// /// The target that the lightning will Arc to. /// [DataField] public EntityUid? ArcTarget; /// /// How far should this lightning go? /// [DataField] public float MaxLength = 5f; /// /// List of targets that this collided with already /// [DataField] public HashSet ArcTargets = new(); /// /// What should this arc to? /// [DataField] public int CollisionMask = (int) (CollisionGroup.MobMask | CollisionGroup.MachineMask); }