diff --git a/src/features/song-select/song-data.ts b/src/features/song-select/song-data.ts index ed52d25..97458a4 100644 --- a/src/features/song-select/song-data.ts +++ b/src/features/song-select/song-data.ts @@ -2,75 +2,243 @@ import type { Song } from './types' export const SONGS: Song[] = [ { - title: 'Neon Runner', - artist: 'Pulse Reactor', - bpm: 175, - difficulty: 4, - duration: '3:10', - genre: 'Electro', + id: 'get-lucky', + title: 'Get Lucky', + artist: 'Daft Punk', + bpm: 116, + difficulty: 3, + duration: '2:28', + genre: 'Disco', + color: '#D4A017', + chartUrl: '/songs/get-lucky/chart.ssc', + audioUrl: '/songs/get-lucky/audio.ogg', + }, + { + id: 'axion', + title: 'Axion', + artist: 'Reso', + bpm: 140, + difficulty: 3, + duration: '2:14', + genre: 'Drum & Bass', color: '#D94A0A', + chartUrl: '/songs/axion/chart.ssc', + audioUrl: '/songs/axion/audio.ogg', }, { - title: 'Burning Step', - artist: 'Luna Flux', - bpm: 168, - difficulty: 3, - duration: '2:54', - genre: 'Dance Pop', + id: 'blue', + title: 'Blue', + artist: 'Au5 & Fractal', + bpm: 175, + difficulty: 5, + duration: '2:28', + genre: 'Dubstep', color: '#2A51C7', + chartUrl: '/songs/blue/chart.ssc', + audioUrl: '/songs/blue/audio.ogg', }, { - title: 'Solar Break', - artist: 'System Vibe', - bpm: 182, + id: 'caelumize', + title: 'Caelumize', + artist: 'void', + bpm: 175, difficulty: 5, - duration: '3:26', - genre: 'Hard Dance', - color: '#EF6C14', + duration: '1:57', + genre: 'Artcore', + color: '#9B59B6', + chartUrl: '/songs/caelumize/chart.ssc', + audioUrl: '/songs/caelumize/audio.ogg', }, { - title: 'Arc Flash', - artist: 'NOVA//CTRL', - bpm: 160, - difficulty: 2, - duration: '2:41', - genre: 'Synthwave', - color: '#3C9B5E', - }, - { - title: 'Heatline', - artist: 'Mira K', - bpm: 190, + id: 'drift', + title: 'Drift', + artist: 'Metrik', + bpm: 174, difficulty: 5, - duration: '2:30', - genre: 'Techno', - color: '#C7313A', + duration: '2:20', + genre: 'Drum & Bass', + color: '#27AE60', + chartUrl: '/songs/drift/chart.ssc', + audioUrl: '/songs/drift/audio.ogg', }, { - title: 'Volt Parade', - artist: 'Skyline Unit', - bpm: 148, - difficulty: 2, - duration: '3:03', - genre: 'Nu Disco', - color: '#0E9A9A', - }, - { - title: 'Firecode', - artist: 'Cipher Girls', - bpm: 172, + id: 'fang-banger', + title: 'Fang Banger', + artist: 'Bro Safari & Space Laces', + bpm: 140, difficulty: 4, - duration: '3:14', - genre: 'Club', - color: '#A641D2', + duration: '2:27', + genre: 'Bass', + color: '#C0392B', + chartUrl: '/songs/fang-banger/chart.ssc', + audioUrl: '/songs/fang-banger/audio.ogg', }, { - title: 'Street Impact', - artist: 'Delta Move', - bpm: 156, + id: 'future-music', + title: 'Future MUSiC', + artist: 'Ym1024 feat. lamie*', + bpm: 132, difficulty: 3, - duration: '2:58', - genre: 'Breakbeat', - color: '#A88516', + duration: '2:14', + genre: 'J-Core', + color: '#1ABC9C', + chartUrl: '/songs/future-music/chart.ssc', + audioUrl: '/songs/future-music/audio.ogg', + }, + { + id: 'g-symphonicore', + title: 'G-SYMPHONiCORE', + artist: 'Jugem-T', + bpm: 212, + difficulty: 5, + duration: '2:21', + genre: 'Speedcore', + color: '#E67E22', + chartUrl: '/songs/g-symphonicore/chart.ssc', + audioUrl: '/songs/g-symphonicore/audio.ogg', + }, + { + id: 'heartbeats', + title: 'HeartBeats', + artist: '獣音ロウ.Revo', + bpm: 128, + difficulty: 4, + duration: '2:49', + genre: 'Happy Hardcore', + color: '#E84393', + chartUrl: '/songs/heartbeats/chart.ssc', + audioUrl: '/songs/heartbeats/audio.ogg', + }, + { + id: 'jump-ya-body', + title: 'Jump Ya Body', + artist: 'Kill The Noise feat. Mercedes', + bpm: 140, + difficulty: 3, + duration: '2:10', + genre: 'Bass', + color: '#8D6E63', + chartUrl: '/songs/jump-ya-body/chart.ssc', + audioUrl: '/songs/jump-ya-body/audio.ogg', + }, + { + id: 'kokeshi-neko-medley', + title: 'Kokeshi Neko Medley', + artist: 'Ino', + bpm: 216, + difficulty: 5, + duration: '2:43', + genre: 'J-Core', + color: '#AD1457', + chartUrl: '/songs/kokeshi-neko-medley/chart.ssc', + audioUrl: '/songs/kokeshi-neko-medley/audio.ogg', + }, + { + id: 'lightspeed-remix', + title: 'Lightspeed (Remix)', + artist: 'Kill The Noise & Datsik', + bpm: 108, + difficulty: 4, + duration: '2:23', + genre: 'Dubstep', + color: '#5C6BC0', + chartUrl: '/songs/lightspeed-remix/chart.ssc', + audioUrl: '/songs/lightspeed-remix/audio.ogg', + }, + { + id: 'mess', + title: 'Mess', + artist: 'Anamanaguchi', + bpm: 112, + difficulty: 4, + duration: '2:14', + genre: 'Chiptune', + color: '#00B894', + chartUrl: '/songs/mess/chart.ssc', + audioUrl: '/songs/mess/audio.ogg', + }, + { + id: 'monkey-business', + title: 'Monkey Business', + artist: 'kors k', + bpm: 160, + difficulty: 4, + duration: '1:58', + genre: 'Happy Hardcore', + color: '#F4A300', + chartUrl: '/songs/monkey-business/chart.ssc', + audioUrl: '/songs/monkey-business/audio.ogg', + }, + { + id: 'neurobazaar', + title: 'Neurobazaar', + artist: 'zircon', + bpm: 130, + difficulty: 4, + duration: '2:16', + genre: 'Electronica', + color: '#0984E3', + chartUrl: '/songs/neurobazaar/chart.ssc', + audioUrl: '/songs/neurobazaar/audio.ogg', + }, + { + id: 'peacock', + title: 'Peacock', + artist: '7 Minutes Dead', + bpm: 120, + difficulty: 4, + duration: '2:29', + genre: 'Electro', + color: '#00ACC1', + chartUrl: '/songs/peacock/chart.ssc', + audioUrl: '/songs/peacock/audio.ogg', + }, + { + id: 'plasticity', + title: 'Plasticity', + artist: 'Minor Rain', + bpm: 168, + difficulty: 5, + duration: '2:25', + genre: 'Artcore', + color: '#7B1FA2', + chartUrl: '/songs/plasticity/chart.ssc', + audioUrl: '/songs/plasticity/audio.ogg', + }, + { + id: 'souten', + title: 'Souten (Key-Kai mix)', + artist: 'Meine Meinung', + bpm: 182, + difficulty: 4, + duration: '2:05', + genre: 'Trance', + color: '#0277BD', + chartUrl: '/songs/souten-sta-s-key-kai-mix/chart.ssc', + audioUrl: '/songs/souten-sta-s-key-kai-mix/audio.ogg', + }, + { + id: 'the-edge', + title: 'The Edge', + artist: 'KOAN Sound', + bpm: 140, + difficulty: 3, + duration: '2:28', + genre: 'Electro', + color: '#607D8B', + chartUrl: '/songs/the-edge/chart.ssc', + audioUrl: '/songs/the-edge/audio.ogg', + }, + { + id: 'trap', + title: 'Trap', + artist: 'Bluescreens', + bpm: 174, + difficulty: 4, + duration: '2:01', + genre: 'Drum & Bass', + color: '#D32F2F', + chartUrl: '/songs/trap/chart.ssc', + audioUrl: '/songs/trap/audio.ogg', }, ] diff --git a/src/features/song-select/types.ts b/src/features/song-select/types.ts index be42f26..8f97a97 100644 --- a/src/features/song-select/types.ts +++ b/src/features/song-select/types.ts @@ -1,4 +1,5 @@ export type Song = { + id: string title: string artist: string bpm: number @@ -6,4 +7,6 @@ export type Song = { duration: string genre: string color: string + chartUrl: string + audioUrl: string } diff --git a/src/game/songIndex.ts b/src/game/songIndex.ts index 7bc6173..e47dab0 100644 --- a/src/game/songIndex.ts +++ b/src/game/songIndex.ts @@ -1,29 +1,2 @@ -export interface SongEntry { - id: string - title: string - chartUrl: string - audioUrl: string -} - -export const SONGS: SongEntry[] = [ - { id: 'axion', title: 'Axion', chartUrl: '/songs/axion/chart.ssc', audioUrl: '/songs/axion/audio.ogg' }, - { id: 'blue', title: 'Blue', chartUrl: '/songs/blue/chart.ssc', audioUrl: '/songs/blue/audio.ogg' }, - { id: 'caelumize', title: 'Caelumize', chartUrl: '/songs/caelumize/chart.ssc', audioUrl: '/songs/caelumize/audio.ogg' }, - { id: 'drift', title: 'Drift', chartUrl: '/songs/drift/chart.ssc', audioUrl: '/songs/drift/audio.ogg' }, - { id: 'fang-banger', title: 'Fang Banger', chartUrl: '/songs/fang-banger/chart.ssc', audioUrl: '/songs/fang-banger/audio.ogg' }, - { id: 'future-music', title: 'Future MUSiC', chartUrl: '/songs/future-music/chart.ssc', audioUrl: '/songs/future-music/audio.ogg' }, - { id: 'get-lucky', title: 'Get Lucky', chartUrl: '/songs/get-lucky/chart.ssc', audioUrl: '/songs/get-lucky/audio.ogg' }, - { id: 'g-symphonicore', title: 'G-SYMPHONiCORE', chartUrl: '/songs/g-symphonicore/chart.ssc', audioUrl: '/songs/g-symphonicore/audio.ogg' }, - { id: 'heartbeats', title: 'HeartBeats', chartUrl: '/songs/heartbeats/chart.ssc', audioUrl: '/songs/heartbeats/audio.ogg' }, - { id: 'jump-ya-body', title: 'Jump Ya Body', chartUrl: '/songs/jump-ya-body/chart.ssc', audioUrl: '/songs/jump-ya-body/audio.ogg' }, - { id: 'kokeshi-neko-medley', title: 'Kokeshi Neko Medley', chartUrl: '/songs/kokeshi-neko-medley/chart.ssc', audioUrl: '/songs/kokeshi-neko-medley/audio.ogg' }, - { id: 'lightspeed-remix', title: 'Lightspeed (Remix)', chartUrl: '/songs/lightspeed-remix/chart.ssc', audioUrl: '/songs/lightspeed-remix/audio.ogg' }, - { id: 'mess', title: 'Mess', chartUrl: '/songs/mess/chart.ssc', audioUrl: '/songs/mess/audio.ogg' }, - { id: 'monkey-business', title: 'Monkey Business', chartUrl: '/songs/monkey-business/chart.ssc', audioUrl: '/songs/monkey-business/audio.ogg' }, - { id: 'neurobazaar', title: 'Neurobazaar', chartUrl: '/songs/neurobazaar/chart.ssc', audioUrl: '/songs/neurobazaar/audio.ogg' }, - { id: 'peacock', title: 'Peacock', chartUrl: '/songs/peacock/chart.ssc', audioUrl: '/songs/peacock/audio.ogg' }, - { id: 'plasticity', title: 'Plasticity', chartUrl: '/songs/plasticity/chart.ssc', audioUrl: '/songs/plasticity/audio.ogg' }, - { id: 'souten', title: 'Souten (Key-Kai mix)', chartUrl: '/songs/souten-sta-s-key-kai-mix/chart.ssc', audioUrl: '/songs/souten-sta-s-key-kai-mix/audio.ogg' }, - { id: 'the-edge', title: 'The Edge', chartUrl: '/songs/the-edge/chart.ssc', audioUrl: '/songs/the-edge/audio.ogg' }, - { id: 'trap', title: 'Trap', chartUrl: '/songs/trap/chart.ssc', audioUrl: '/songs/trap/audio.ogg' }, -] +export { SONGS } from '../features/song-select/song-data' +export type { Song } from '../features/song-select/types'