GemDefs.cs

Static partial ProgressManager class method that builds and returns an array of ShopItemDef entries representing gem shop items. It constructs multiple ShopItemDef objects with ids, category, names, prices, upgrade price arrays, icon paths and references to gem description constants.

File Access
public static partial class ProgressManager
{
	private static ShopItemDef[] BuildGemItems()
	{
		return new ShopItemDef[]
		{
			new ShopItemDef
			{
				Id                    = GemEmerald.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Emerald",
				Price                 = 2,
				UpgradePrices         = new[] { 3, 5, 8, 12, 18, 22, 25 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/hp_regen.png",
				GemDescription        = GemEmerald.Description,
				GemUpgradeDescription = GemEmerald.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemCharcoal.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Charcoal",
				Price                 = 2,
				UpgradePrices         = new[] { 3, 4, 5, 7, 9, 13, 18, 22, 25 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/bullet.png",
				GemDescription        = GemCharcoal.Description,
				GemUpgradeDescription = GemCharcoal.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemSapphire.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Sapphire",
				Price                 = 3,
				UpgradePrices         = new[] { 4, 5, 6, 8, 10, 13, 18, 22, 25 },
				RequiredPurchases     = 1,
				IconPath              = "/textures/ui/stats/move.png",
				GemDescription        = GemSapphire.Description,
				GemUpgradeDescription = GemSapphire.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemBloodstone.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Bloodstone",
				Price                 = 2,
				UpgradePrices         = new[] { 3, 4, 5, 7, 9, 13, 18, 22, 25 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/max_hp.png",
				GemDescription        = GemBloodstone.Description,
				GemUpgradeDescription = GemBloodstone.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemTopaz.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Topaz",
				Price                 = 3,
				UpgradePrices         = new[] { 4, 5, 6, 8, 10, 13, 18, 22, 25 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/attack_speed.png",
				GemDescription        = GemTopaz.Description,
				GemUpgradeDescription = GemTopaz.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemPoisonNumHits.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Malachite",
				Price                 = 15,
				UpgradePrices         = new[] { 25, 40 },
				RequiredPurchases     = 1,
				IconPath              = "/textures/ui/stats/poison_lose.png",
				GemDescription        = GemPoisonNumHits.Description,
				GemUpgradeDescription = GemPoisonNumHits.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemRerolls.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Celestite",
				Price                 = 8,
				UpgradePrices         = new[] { 12, 16, 22, 28, 36, 45, 56, 70 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/reroll.png",
				GemDescription        = GemRerolls.Description,
				GemUpgradeDescription = GemRerolls.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemGold.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Gold",
				Price                 = 8,
				UpgradePrices         = new[] { 12, 16, 22, 28, 36, 45, 55, 65, 75 },
				RequiredPurchases     = 4,
				IconPath              = "/textures/ui/stats/perk_choices.png",
				GemDescription        = GemGold.Description,
				GemUpgradeDescription = GemGold.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemIron.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Iron",
				Price                 = 2,
				UpgradePrices         = new[] { 3, 4, 5, 7, 9, 11, 14, 18 },
				RequiredPurchases     = 0,
				IconPath              = "/textures/ui/stats/armor.png",
				GemDescription        = GemIron.Description,
				GemUpgradeDescription = GemIron.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemLightningChain.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Voltite",
				Price                 = 20,
				UpgradePrices         = new[] { 30, 45, 65, 90, 130, 180, 240, 320 },
				RequiredPurchases     = 1,
				IconPath              = "/textures/ui/stats/chain.png",
				GemDescription        = GemLightningChain.Description,
				GemUpgradeDescription = GemLightningChain.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemHoming.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Eyeball",
				Price                 = 14,
				UpgradePrices         = new[] { 19, 25, 32, 40 },
				RequiredPurchases     = 4,
				IconPath              = "/textures/ui/stats/homing.png",
				GemDescription        = GemHoming.Description,
				GemUpgradeDescription = GemHoming.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemDodge.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Quicksilver",
				Price                 = 15,
				UpgradePrices         = new[] { 25, 40 },
				RequiredPurchases     = 2,
				IconPath              = "/textures/ui/stats/dodge.png",
				GemDescription        = GemDodge.Description,
				GemUpgradeDescription = GemDodge.UpgradeDescription,
			},

			new ShopItemDef
			{
				Id                    = GemMagnet.ItemId,
				Category              = ShopItemCategory.Gem,
				Name                  = "Magnet",
				Price                 = 12,
				UpgradePrices         = new[] { 18, 26, 36, 48, 62, 80 },
				RequiredPurchases     = 1,
				IconPath              = "/textures/ui/stats/coin_attract.png",
				GemDescription        = GemMagnet.Description,
				GemUpgradeDescription = GemMagnet.UpgradeDescription,
			},
		};
	}
}