Represents a gun loadout item. Declares lists for charm anchor objects and gem slots, and tracks currently spawned charm and gem GameObjects used by player code.
using Sandbox;
public class Gun : LoadoutItem
{
[Property] public List<GameObject> CharmAnchors { get; set; }
[Property] public List<GameObject> GemSlots { get; set; }
/// <summary>
/// The currently spawned charm GameObjects on this gun (one per charm slot).
/// Managed by Player.SpawnCharmOnGunObj / Player.SwapCharmRpc.
/// </summary>
public List<GameObject> CurrentCharms { get; set; } = new();
public List<GameObject> GetCharmAnchors() => CharmAnchors ?? [];
/// <summary>
/// The currently spawned gem GameObjects, one per filled slot.
/// Managed by Player.SpawnGemsOnGunObj / Player.SwapGemsRpc.
/// </summary>
public List<GameObject> CurrentGems { get; set; } = new();
}