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