minesweeper/shared/lootboxes.ts

250 lines
3.9 KiB
TypeScript

import type { themes } from "../src/themes";
import lootbox1 from "../src/assets/illustrations/lootbox1.png?w=360&inline";
import lootboxEvent1 from "../src/assets/illustrations/lootbox-event1.png?w=360&inline";
export const rarities = [
{
name: "Common",
id: "common",
weight: 1,
},
{
name: "Uncommon",
id: "uncommon",
weight: 0.5,
},
{
name: "Rare",
id: "rare",
weight: 0.25,
},
{
name: "Legendary",
id: "legendary",
weight: 0.1,
},
] as const;
export const getWeight = (rarity: Rarity) =>
rarities.find((r) => r.id === rarity)?.weight ?? 0;
export type Rarity = (typeof rarities)[number]["id"];
type ThemeId = (typeof themes)[number]["id"];
interface Lootbox {
name: string;
id: string;
price: number;
priceText: string;
image: string;
noDuplicates: boolean;
items: {
id: ThemeId;
rarity: Rarity;
}[];
}
export const series1: Lootbox = {
name: "Series 1",
id: "series1",
price: 5000,
priceText: "5.000",
image: lootbox1,
noDuplicates: false,
items: [
{
id: "basic",
rarity: "common",
},
{
id: "black-and-white",
rarity: "common",
},
{
id: "blue",
rarity: "common",
},
{
id: "green",
rarity: "common",
},
{
id: "orange",
rarity: "common",
},
{
id: "pink",
rarity: "common",
},
{
id: "purple",
rarity: "common",
},
{
id: "red",
rarity: "common",
},
{
id: "turquoise",
rarity: "common",
},
{
id: "yellow",
rarity: "common",
},
{
id: "nautical",
rarity: "uncommon",
},
{
id: "up-in-smoke",
rarity: "uncommon",
},
{
id: "shadow-warrior",
rarity: "uncommon",
},
{
id: "crimson",
rarity: "uncommon",
},
{
id: "romance",
rarity: "uncommon",
},
{
id: "rainbow",
rarity: "uncommon",
},
{
id: "flowers",
rarity: "rare",
},
{
id: "dinos",
rarity: "rare",
},
{
id: "cats",
rarity: "rare",
},
{
id: "mine-dogs",
rarity: "rare",
},
{
id: "tron-blue",
rarity: "rare",
},
{
id: "tron-orange",
rarity: "rare",
},
{
id: "circuit",
rarity: "rare",
},
{
id: "circuit-binary",
rarity: "rare",
},
{
id: "farm",
rarity: "rare",
},
{
id: "halli-galli",
rarity: "rare",
},
{
id: "insects",
rarity: "rare",
},
{
id: "poop",
rarity: "rare",
},
{
id: "underwater",
rarity: "rare",
},
{
id: "retro-wave",
rarity: "legendary",
},
{
id: "elden-ring",
rarity: "legendary",
},
{
id: "janitor-tresh",
rarity: "legendary",
},
{
id: "teemo",
rarity: "legendary",
},
{
id: "ziggs",
rarity: "legendary",
},
{
id: "minecraft-nether",
rarity: "legendary",
},
{
id: "minecraft-overworld",
rarity: "legendary",
},
{
id: "techies-dire",
rarity: "legendary",
},
{
id: "techies-radiant",
rarity: "legendary",
},
{
id: "isaac",
rarity: "legendary",
},
{
id: "mlg",
rarity: "legendary",
},
],
};
export const halloween: Lootbox = {
name: "Halloween",
id: "halloween",
price: 6000,
priceText: "6.000",
noDuplicates: true,
image: lootboxEvent1,
items: [
{
id: "skeleton",
rarity: "rare",
},
{
id: "vampire",
rarity: "rare",
},
{
id: "ghost",
rarity: "rare",
},
{
id: "pumpkin",
rarity: "rare",
},
{
id: "zombie",
rarity: "rare",
},
],
};
export const lootboxes = [series1];