fix special tiles / wip add halloween themes
|
|
@ -109,6 +109,10 @@ export const series1: Lootbox = {
|
|||
id: "romance",
|
||||
rarity: "uncommon",
|
||||
},
|
||||
{
|
||||
id: "rainbow",
|
||||
rarity: "uncommon",
|
||||
},
|
||||
{
|
||||
id: "flowers",
|
||||
rarity: "rare",
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 443 B |
|
After Width: | Height: | Size: 287 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 384 B |
|
After Width: | Height: | Size: 289 B |
|
After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 476 B |
|
After Width: | Height: | Size: 382 B |
|
After Width: | Height: | Size: 739 B |
|
After Width: | Height: | Size: 460 B |
|
After Width: | Height: | Size: 149 B |
|
After Width: | Height: | Size: 272 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 351 B |
|
After Width: | Height: | Size: 425 B |
|
After Width: | Height: | Size: 287 B |
|
After Width: | Height: | Size: 287 B |
|
After Width: | Height: | Size: 376 B |
|
After Width: | Height: | Size: 288 B |
|
After Width: | Height: | Size: 388 B |
|
After Width: | Height: | Size: 557 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 750 B |
|
After Width: | Height: | Size: 520 B |
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 266 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 353 B |
|
After Width: | Height: | Size: 423 B |
|
After Width: | Height: | Size: 293 B |
|
After Width: | Height: | Size: 346 B |
|
After Width: | Height: | Size: 376 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 370 B |
|
After Width: | Height: | Size: 695 B |
|
After Width: | Height: | Size: 406 B |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 490 B |
|
After Width: | Height: | Size: 148 B |
|
After Width: | Height: | Size: 272 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 252 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 288 B After Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 280 B |
|
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 335 B |
|
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 220 B After Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 395 B |
|
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 330 B |
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 1023 B |
|
Before Width: | Height: | Size: 755 B After Width: | Height: | Size: 894 B |
|
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 445 B |
|
After Width: | Height: | Size: 832 B |
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 826 B |
|
After Width: | Height: | Size: 954 B |
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 955 B |
|
|
@ -13,9 +13,9 @@ export interface Theme {
|
|||
size: number;
|
||||
mine: LazySprite | WeightedLazySprites[];
|
||||
tile: LazySprite | WeightedLazySprites[];
|
||||
revealed: LazySprite;
|
||||
revealed: LazySprite | WeightedLazySprites[];
|
||||
flag: LazySprite | WeightedLazySprites[];
|
||||
questionMark: LazySprite;
|
||||
questionMark: LazySprite | WeightedLazySprites[];
|
||||
lastPos: LazySprite;
|
||||
1: LazySprite;
|
||||
2: LazySprite;
|
||||
|
|
@ -57,7 +57,7 @@ export const mainWithSpecials = (
|
|||
|
||||
export const useTheme = (theme: Theme) => {
|
||||
const [loadedTheme, setLoadedTheme] = useState<LoadedTheme | undefined>(
|
||||
undefined,
|
||||
undefined
|
||||
);
|
||||
useEffect(() => {
|
||||
const loadTheme = async () => {
|
||||
|
|
@ -74,12 +74,12 @@ export const useTheme = (theme: Theme) => {
|
|||
weight: sprite.weight,
|
||||
sprite: await Assets.load((await sprite.sprite()).default),
|
||||
};
|
||||
}),
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
return [key, loaded] as const;
|
||||
}),
|
||||
})
|
||||
);
|
||||
setLoadedTheme(Object.fromEntries(loadedEntries) as LoadedTheme);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import type { Theme } from "../Theme";
|
||||
|
||||
export const crimson: Theme = {
|
||||
export const crimsonTheme: Theme = {
|
||||
size: 32,
|
||||
mine: () => import("../../assets/themes/color-palettes/crimson/mine.png"),
|
||||
tile: () => import("../../assets/themes/color-palettes/crimson/tile.png"),
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { blackAndWhiteTheme } from "./black-and-white";
|
|||
import { catsTheme } from "./cats";
|
||||
import { circuitTheme } from "./circuit";
|
||||
import { circuitBinaryTheme } from "./circuit-binary";
|
||||
import { crimson } from "./color-palettes/crimson";
|
||||
import { crimsonTheme } from "./color-palettes/crimson";
|
||||
import { nauticalTheme } from "./color-palettes/nautical";
|
||||
import { shadowWarriorTheme } from "./color-palettes/shadow-warrior";
|
||||
import { upInSmokeTheme } from "./color-palettes/up-in-smoke";
|
||||
|
|
@ -31,6 +31,7 @@ import { minecraftNetherTheme } from "./minecraft-nether";
|
|||
import { minecraftOverworldTheme } from "./minecraft-overworld";
|
||||
import { MLGTheme } from "./MLG";
|
||||
import { poopTheme } from "./poop";
|
||||
import { rainbowTheme } from "./rainbow";
|
||||
import { retroWaveTheme } from "./retro-wave";
|
||||
import { romanceTheme } from "./romance";
|
||||
import { techiesDireTheme } from "./techies-dire";
|
||||
|
|
@ -287,6 +288,12 @@ export const themes = [
|
|||
name: "Crimson",
|
||||
tags: [],
|
||||
id: "crimson",
|
||||
theme: crimson,
|
||||
theme: crimsonTheme,
|
||||
},
|
||||
{
|
||||
name: "Rainbow",
|
||||
tags: [],
|
||||
id: "rainbow",
|
||||
theme: rainbowTheme,
|
||||
},
|
||||
] as const satisfies ThemeEntry[];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
import { even, type Theme } from "./Theme";
|
||||
|
||||
export const rainbowTheme: Theme = {
|
||||
size: 32,
|
||||
mine: () => import("../assets/themes/colors/rainbow/mine.png"),
|
||||
tile: even(
|
||||
() => import("../assets/themes/colors/blue/tile.png"),
|
||||
() => import("../assets/themes/colors/green/tile.png"),
|
||||
() => import("../assets/themes/colors/orange/tile.png"),
|
||||
() => import("../assets/themes/colors/pink/tile.png"),
|
||||
() => import("../assets/themes/colors/red/tile.png"),
|
||||
() => import("../assets/themes/colors/turquoise/tile.png"),
|
||||
() => import("../assets/themes/colors/yellow/tile.png")
|
||||
),
|
||||
revealed: even(
|
||||
() => import("../assets/themes/colors/blue/revealed.png"),
|
||||
() => import("../assets/themes/colors/green/revealed.png"),
|
||||
() => import("../assets/themes/colors/orange/revealed.png"),
|
||||
() => import("../assets/themes/colors/pink/revealed.png"),
|
||||
() => import("../assets/themes/colors/red/revealed.png"),
|
||||
() => import("../assets/themes/colors/turquoise/revealed.png"),
|
||||
() => import("../assets/themes/colors/yellow/revealed.png")
|
||||
),
|
||||
flag: even(
|
||||
() => import("../assets/themes/colors/blue/flag.png"),
|
||||
() => import("../assets/themes/colors/green/flag.png"),
|
||||
() => import("../assets/themes/colors/orange/flag.png"),
|
||||
() => import("../assets/themes/colors/pink/flag.png"),
|
||||
() => import("../assets/themes/colors/red/flag.png"),
|
||||
() => import("../assets/themes/colors/turquoise/flag.png"),
|
||||
() => import("../assets/themes/colors/yellow/flag.png")
|
||||
),
|
||||
questionMark: even(
|
||||
() => import("../assets/themes/colors/blue/question-mark.png"),
|
||||
() => import("../assets/themes/colors/green/question-mark.png"),
|
||||
() => import("../assets/themes/colors/orange/question-mark.png"),
|
||||
() => import("../assets/themes/colors/pink/question-mark.png"),
|
||||
() => import("../assets/themes/colors/red/question-mark.png"),
|
||||
() => import("../assets/themes/colors/turquoise/question-mark.png"),
|
||||
() => import("../assets/themes/colors/yellow/question-mark.png")
|
||||
),
|
||||
lastPos: () => import("../assets/themes/colors/rainbow/last-pos.png"),
|
||||
1: () => import("../assets/themes/colors/blue/1.png"),
|
||||
2: () => import("../assets/themes/colors/green/2.png"),
|
||||
3: () => import("../assets/themes/colors/orange/3.png"),
|
||||
4: () => import("../assets/themes/colors/pink/4.png"),
|
||||
5: () => import("../assets/themes/colors/red/5.png"),
|
||||
6: () => import("../assets/themes/colors/turquoise/6.png"),
|
||||
7: () => import("../assets/themes/colors/yellow/7.png"),
|
||||
8: () => import("../assets/themes/default/8.png"),
|
||||
};
|
||||