using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Weapons.Ranged.Upgrades.Components; /// /// Component that stores and manages that modify a given weapon. /// [RegisterComponent, NetworkedComponent, Access(typeof(GunUpgradeSystem))] public sealed partial class UpgradeableGunComponent : Component { /// /// ID of container that holds upgrades. /// [DataField] public string UpgradesContainerId = "upgrades"; /// /// Whitelist which denotes the types of upgrades that can be added. /// [DataField] public EntityWhitelist Whitelist = new(); /// /// Sound played when upgrade is inserted. /// [DataField] public SoundSpecifier? InsertSound = new SoundPathSpecifier("/Audio/Effects/thunk.ogg"); /// /// The maximum amount of upgrades this gun can hold. /// [DataField] public int MaxUpgradeCount = 2; }