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