Static partial ProgressManager class method that builds and returns an array of ShopItemDef entries for gem items used in the shop. It constructs multiple ShopItemDef instances with ids, categories, names, prices, upgrade price arrays, required purchase counts, icon paths and references to description fields on gem types.
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,
},
};
}
}