GunDefs.cs

Defines shop item data for guns inside ProgressManager. Declares a DefaultGun ShopItemDef and builds an array of purchasable gun ShopItemDef entries with ids, names, prices, icons and description delegates.

File Access
public static partial class ProgressManager
{
	public static readonly ShopItemDef DefaultGun = new ShopItemDef
	{
		Id              = "gun_default",
		Category        = ShopItemCategory.Gun,
		Name            = "Standard Issue",
		Price           = 0,
		IconPath		= "/textures/ui/stats/bullet.png",
		ItemDescription = DefaultGunDescription
	};

	public static string DefaultGunDescription() => $"The starting gun.";

	private static ShopItemDef[] BuildGunItems()
	{
		// gun_default is always available in the loadout; it is not a purchasable shop item
		return new ShopItemDef[]
		{
			new ShopItemDef
			{
				Id                 = GunActiveReload.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Active Reloader",
				Price              = 4,
				RequiredPurchases  = 4,
				IconPath           = "/textures/ui/stats/num_projectiles.png",
				ItemDescription    = GunActiveReload.Description,
			},

			new ShopItemDef
			{
				Id                 = GunDashSlash.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Bayonet Rifle",
				Price              = 4,
				RequiredPurchases  = 2,
				IconPath           = "/textures/ui/stats/dash_slash.png",
				ItemDescription    = GunDashSlash.Description,
			},

			new ShopItemDef
			{
				Id                 = GunGolden.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Golden Gun",
				Price              = 3,
				RequiredPurchases  = 8,
				IconPath           = "/textures/ui/stats/crit.png",
				ItemDescription    = GunGolden.Description,
			},

			new ShopItemDef
			{
				Id                 = GunSniper.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Sniper Rifle",
				Price              = 5,
				RequiredPurchases  = 0,
				IconPath           = "/textures/ui/stats/sniper.png",
				ItemDescription    = GunSniper.Description,
			},

			new ShopItemDef
			{
				Id                 = GunBoomerang.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Boomerang Gun",
				Price              = 5,
				RequiredPurchases  = 0,
				IconPath           = "/textures/ui/stats/boomerang.png",
				ItemDescription    = GunBoomerang.Description,
			},

			new ShopItemDef
			{
				Id                 = GunUnpausedChoosing.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Fast Gun",
				Price              = 5,
				RequiredPurchases  = 1,
				IconPath           = "/textures/ui/stats/bullet_speed.png",
				ItemDescription    = GunUnpausedChoosing.Description,
			},

			new ShopItemDef
			{
				Id                 = GunEmptySockets.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Socket Shooter",
				Price              = 7,
				RequiredPurchases  = 5,
				IconPath           = "/textures/ui/stats/num_projectiles.png",
				ItemDescription    = GunEmptySockets.Description,
			},

			new ShopItemDef
			{
				Id                 = GunExtraSocket.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Gem Cannon",
				Price              = 6,
				RequiredPurchases  = 3,
				GemSocketCount     = 4,
				IconPath           = "/textures/ui/stats/chain.png",
				ItemDescription    = GunExtraSocket.Description,
			},

			new ShopItemDef
			{
				Id                 = GunRecoil.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "AK-47",
				Price              = 4,
				RequiredPurchases  = 2,
				IconPath           = "/textures/ui/stats/overkill.png",
				ItemDescription    = GunRecoil.Description,
			},

			new ShopItemDef
			{
				Id                 = GunTwoCharms.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Twin Charm Rifle",
				Price              = 5,
				RequiredPurchases  = 2,
				GemSocketCount     = 2,
				CharmSlotCount     = 2,
				IconPath           = "/textures/ui/stats/bullet.png",
				ItemDescription    = GunTwoCharms.Description,
			},

			new()
			{
				Id                 = GunHoming.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Homing Gun",
				Price              = 4,
				RequiredPurchases  = 2,
				IconPath           = "/textures/ui/stats/homing.png",
				ItemDescription    = GunHoming.Description,
			},

			new()
			{
				Id                 = GunPierce.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Drill Flinger",
				Price              = 8,
				RequiredPurchases  = 5,
				IconPath           = "/textures/ui/stats/bullet.png",
				ItemDescription    = GunPierce.Description,
			},

			new()
			{
				Id                 = GunRocketLauncher.ItemId,
				Category           = ShopItemCategory.Gun,
				Name               = "Rocket Launcher",
				Price              = 12,
				RequiredPurchases  = 2,
				IconPath           = "/textures/ui/stats/explosion.png",
				ItemDescription    = GunRocketLauncher.Description,
			},
		};
	}
}