using Content.Shared.Weapons.Ranged.Systems; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Weapons.Ranged.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true), Access(typeof(SharedGunSystem))] public sealed partial class SolutionAmmoProviderComponent : Component { /// /// The solution where reagents are extracted from for the projectile. /// [DataField(required: true), AutoNetworkedField] public string SolutionId = default!; /// /// How much reagent it costs to fire once. /// [DataField, AutoNetworkedField] public float FireCost = 5; /// /// The amount of shots currently available. /// used for network predictions. /// [DataField, AutoNetworkedField] public int Shots; /// /// The max amount of shots the gun can fire. /// used for network prediction /// [DataField, AutoNetworkedField] public int MaxShots; /// /// The prototype that's fired by the gun. /// [DataField("proto")] public EntProtoId Prototype; }