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