diff --git a/Assets/Resources/Sfx/games/rockers/count/1.wav b/Assets/Resources/Sfx/games/rockers/count/count1.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/1.wav rename to Assets/Resources/Sfx/games/rockers/count/count1.wav diff --git a/Assets/Resources/Sfx/games/rockers/count/1.wav.meta b/Assets/Resources/Sfx/games/rockers/count/count1.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/1.wav.meta rename to Assets/Resources/Sfx/games/rockers/count/count1.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/count/2.wav b/Assets/Resources/Sfx/games/rockers/count/count2.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/2.wav rename to Assets/Resources/Sfx/games/rockers/count/count2.wav diff --git a/Assets/Resources/Sfx/games/rockers/count/2.wav.meta b/Assets/Resources/Sfx/games/rockers/count/count2.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/2.wav.meta rename to Assets/Resources/Sfx/games/rockers/count/count2.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/count/3.wav b/Assets/Resources/Sfx/games/rockers/count/count3.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/3.wav rename to Assets/Resources/Sfx/games/rockers/count/count3.wav diff --git a/Assets/Resources/Sfx/games/rockers/count/3.wav.meta b/Assets/Resources/Sfx/games/rockers/count/count3.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/3.wav.meta rename to Assets/Resources/Sfx/games/rockers/count/count3.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/count/4.wav b/Assets/Resources/Sfx/games/rockers/count/count4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/4.wav rename to Assets/Resources/Sfx/games/rockers/count/count4.wav diff --git a/Assets/Resources/Sfx/games/rockers/count/4.wav.meta b/Assets/Resources/Sfx/games/rockers/count/count4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/count/4.wav.meta rename to Assets/Resources/Sfx/games/rockers/count/count4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordA7.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordA7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordA7.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordA7.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordA7.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordA7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordA7.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordA7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordAm7.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordAm7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordAm7.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordAm7.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordAm7.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordAm7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordAm7.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordAm7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordC.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordC.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordC.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordC.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordC.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordC.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordC.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordC.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordC7.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordC7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordC7.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordC7.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordC7.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordC7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordC7.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordC7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordCadd9.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordCadd9.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordCadd9.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordCadd9.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordCadd9.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordCadd9.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordCadd9.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordCadd9.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordDm.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordDm.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordDm.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordDm.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordDm7.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordDm7.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm7.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordDm7.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordDm7.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordDm7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordEm.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordEm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordEm.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordEm.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordEm.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordEm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordEm.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordEm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordF.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordF.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordF.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordF.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordF.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordF.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordF.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordF.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordFadd9.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordFadd9.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordFadd9.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordFadd9.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordFadd9.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordFadd9.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordFadd9.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordFadd9.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordFm.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordFm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordFm.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordFm.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordFm.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordFm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordFm.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordFm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordG.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordG.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordG.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordG.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordG.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordG.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordG.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordG.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordG7.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordG7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordG7.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordG7.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordG7.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordG7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordG7.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordG7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordGm.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordGm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordGm.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordGm.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordGm.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordGm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordGm.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordGm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordGsus4.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordGsus4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordGsus4.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordGsus4.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/ChordGsus4.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiChordGsus4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/ChordGsus4.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiChordGsus4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/NoteA2.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiNoteA2.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/NoteA2.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiNoteA2.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/NoteA2.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiNoteA2.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/NoteA2.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiNoteA2.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/doremi/NoteE2.wav b/Assets/Resources/Sfx/games/rockers/doremi/doremiNoteE2.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/NoteE2.wav rename to Assets/Resources/Sfx/games/rockers/doremi/doremiNoteE2.wav diff --git a/Assets/Resources/Sfx/games/rockers/doremi/NoteE2.wav.meta b/Assets/Resources/Sfx/games/rockers/doremi/doremiNoteE2.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/doremi/NoteE2.wav.meta rename to Assets/Resources/Sfx/games/rockers/doremi/doremiNoteE2.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordA.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordA.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordA.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordA.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordA.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordA.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordA.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordA.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordAsus4.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordAsus4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordAsus4.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordAsus4.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordAsus4.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordAsus4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordAsus4.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordAsus4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordBm.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordBm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordBm.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordBm.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordBm.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordBm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordBm.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordBm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordC#m7.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordC#m7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordC#m7.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordC#m7.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordC#m7.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordC#m7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordC#m7.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordC#m7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj7.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj7.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj7.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj7.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj7.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj9.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj9.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj9.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj9.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj9.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj9.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordDmaj9.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordDmaj9.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordF#5.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordF#5.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordF#5.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordF#5.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordF#5.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordF#5.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordF#5.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordF#5.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordG.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordG.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordG.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordG.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordG.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordG.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordG.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordG.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordG5.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordG5.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordG5.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordG5.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordG5.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordG5.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordG5.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordG5.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordGdim7.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordGdim7.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordGdim7.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordGdim7.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordGdim7.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordGdim7.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordGdim7.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordGdim7.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordGm.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordGm.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordGm.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordGm.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/ChordGm.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerChordGm.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/ChordGm.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerChordGm.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/NoteA#4.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA#4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/NoteA#4.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA#4.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/NoteA#4.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA#4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/NoteA#4.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA#4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/NoteA5.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA5.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/NoteA5.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA5.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/NoteA5.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA5.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/NoteA5.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerNoteA5.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/PracticeChordD.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerPracticeChordD.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/PracticeChordD.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerPracticeChordD.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/PracticeChordD.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerPracticeChordD.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/PracticeChordD.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerPracticeChordD.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordD.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordD.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordD.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordD.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordD.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordD.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordD.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordD.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordF#m.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordF#m.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordF#m.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordF#m.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordF#m.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordF#m.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix10ChordF#m.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix10ChordF#m.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix6ChordA.wav b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix6ChordA.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix6ChordA.wav rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix6ChordA.wav diff --git a/Assets/Resources/Sfx/games/rockers/rocker/Remix6ChordA.wav.meta b/Assets/Resources/Sfx/games/rockers/rocker/rockerRemix6ChordA.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/rocker/Remix6ChordA.wav.meta rename to Assets/Resources/Sfx/games/rockers/rocker/rockerRemix6ChordA.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/1.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub1.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/1.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub1.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/1.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub1.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/1.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub1.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/2.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub2.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/2.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub2.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/2.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub2.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/2.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub2.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/3.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub3.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/3.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub3.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/3.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub3.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/3.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub3.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/4.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/4.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub4.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/4.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/4.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/5.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub5.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/5.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub5.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/5.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub5.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/5.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub5.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/6.wav b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub6.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/6.wav rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub6.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/gleeClub/6.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub6.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/gleeClub/6.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/gleeClub/gleeClub6.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/1.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal1.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/1.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal1.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/1.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal1.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/1.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal1.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/2.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal2.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/2.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal2.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/2.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal2.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/2.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal2.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/3.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal3.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/3.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal3.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/3.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal3.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/3.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal3.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/4.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal4.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/4.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal4.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/4.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal4.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/4.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal4.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/5.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal5.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/5.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal5.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/5.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal5.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/5.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal5.wav.meta diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/6.wav b/Assets/Resources/Sfx/games/rockers/strings/normal/normal6.wav similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/6.wav rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal6.wav diff --git a/Assets/Resources/Sfx/games/rockers/strings/normal/6.wav.meta b/Assets/Resources/Sfx/games/rockers/strings/normal/normal6.wav.meta similarity index 100% rename from Assets/Resources/Sfx/games/rockers/strings/normal/6.wav.meta rename to Assets/Resources/Sfx/games/rockers/strings/normal/normal6.wav.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/1.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh1.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/1.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh1.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/1.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh1.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/1.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh1.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/2.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh2.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/2.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh2.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/2.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh2.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/2.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh2.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/3.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh3.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/3.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh3.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/3.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh3.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/3.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh3.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/4.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh4.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/4.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh4.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/4.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh4.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/4.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh4.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/5.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh5.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/5.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh5.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/hit/5.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/hit/mh5.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/hit/5.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/hit/mh5.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/1.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms1.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/1.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms1.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/1.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms1.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/1.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms1.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/2.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms2.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/2.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms2.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/2.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms2.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/2.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms2.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/3.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms3.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/3.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms3.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/3.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms3.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/3.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms3.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/4.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms4.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/4.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms4.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/4.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms4.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/4.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms4.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/5.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms5.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/5.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms5.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/shake/5.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/shake/ms5.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/shake/5.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/shake/ms5.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/1.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp1.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/1.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp1.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/1.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp1.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/1.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp1.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/2.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp2.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/2.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp2.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/2.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp2.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/2.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp2.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/3.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp3.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/3.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp3.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/3.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp3.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/3.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp3.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/4.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp4.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/4.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp4.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/4.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp4.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/4.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp4.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/5.ogg b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp5.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/5.ogg rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp5.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/5.ogg.meta b/Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp5.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/monkey/turnPass/5.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/monkey/turnPass/tp5.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/1.ogg b/Assets/Resources/Sfx/games/tambourine/player/hit/ph1.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/1.ogg rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph1.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/1.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/hit/ph1.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/1.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph1.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/2.ogg b/Assets/Resources/Sfx/games/tambourine/player/hit/ph2.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/2.ogg rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph2.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/2.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/hit/ph2.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/2.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph2.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/3.ogg b/Assets/Resources/Sfx/games/tambourine/player/hit/ph3.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/3.ogg rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph3.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/3.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/hit/ph3.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/3.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph3.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/4.ogg b/Assets/Resources/Sfx/games/tambourine/player/hit/ph4.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/4.ogg rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph4.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/4.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/hit/ph4.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/4.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph4.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/5.ogg b/Assets/Resources/Sfx/games/tambourine/player/hit/ph5.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/5.ogg rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph5.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/hit/5.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/hit/ph5.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/hit/5.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/hit/ph5.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/1.ogg b/Assets/Resources/Sfx/games/tambourine/player/shake/ps1.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/1.ogg rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps1.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/1.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/shake/ps1.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/1.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps1.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/2.ogg b/Assets/Resources/Sfx/games/tambourine/player/shake/ps2.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/2.ogg rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps2.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/2.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/shake/ps2.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/2.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps2.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/3.ogg b/Assets/Resources/Sfx/games/tambourine/player/shake/ps3.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/3.ogg rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps3.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/3.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/shake/ps3.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/3.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps3.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/4.ogg b/Assets/Resources/Sfx/games/tambourine/player/shake/ps4.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/4.ogg rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps4.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/4.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/shake/ps4.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/4.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps4.ogg.meta diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/5.ogg b/Assets/Resources/Sfx/games/tambourine/player/shake/ps5.ogg similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/5.ogg rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps5.ogg diff --git a/Assets/Resources/Sfx/games/tambourine/player/shake/5.ogg.meta b/Assets/Resources/Sfx/games/tambourine/player/shake/ps5.ogg.meta similarity index 100% rename from Assets/Resources/Sfx/games/tambourine/player/shake/5.ogg.meta rename to Assets/Resources/Sfx/games/tambourine/player/shake/ps5.ogg.meta diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index b362c60fe..9bf47831f 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -178,15 +178,18 @@ namespace HeavenStudio Conductor.instance.SetVolume(Beatmap.VolumeChanges[0]["volume"]); Conductor.instance.firstBeatOffset = Beatmap.data.offset; - if (Beatmap.Entities.Count >= 1) + if (!preLoaded) { - string game = Beatmap.Entities[0].datamodel.Split(0); - SetCurrentGame(game); - StartCoroutine(WaitAndSetGame(game)); - } - else - { - SetGame("noGame"); + if (Beatmap.Entities.Count >= 1) + { + string game = Beatmap.Entities[0].datamodel.Split(0); + SetCurrentGame(game); + StartCoroutine(WaitAndSetGame(game)); + } + else + { + SetGame("noGame"); + } } if (playMode) @@ -373,7 +376,7 @@ namespace HeavenStudio inf = GetGameInfo(gameName); if (inf != null && !(inf.inferred || inf.fxOnly)) { - if (inf.usesAssetBundle && !inf.AssetsLoaded) + if (inf.usesAssetBundle && !(inf.AssetsLoaded || inf.AlreadyLoading)) { gamesToPreload.Add(inf); Debug.Log($"ASYNC loading assetbundles for game {gameName}"); @@ -1134,13 +1137,20 @@ namespace HeavenStudio private IEnumerator WaitAndSetGame(string game, bool useMinigameColor = true) { var inf = GetGameInfo(game); - if (inf != null && inf.usesAssetBundle && !inf.AssetsLoaded) + if (inf != null && inf.usesAssetBundle) { - Debug.Log($"ASYNC loading assetbundles for game {game}"); - inf.LoadAssetsAsync().Forget(); + if (!(inf.AssetsLoaded || inf.AlreadyLoading)) + { + Debug.Log($"ASYNC loading assetbundles for game {game}"); + inf.LoadAssetsAsync().Forget(); + } yield return new WaitUntil(() => inf.AssetsLoaded); + SetGame(game, useMinigameColor); + } + else + { + SetGame(game, useMinigameColor); } - SetGame(game, useMinigameColor); } public void PreloadGameSequences(string game) diff --git a/Assets/Scripts/Games/Rockers/Rockers.cs b/Assets/Scripts/Games/Rockers/Rockers.cs index 6ade80903..1efed498b 100644 --- a/Assets/Scripts/Games/Rockers/Rockers.cs +++ b/Assets/Scripts/Games/Rockers/Rockers.cs @@ -208,7 +208,7 @@ namespace HeavenStudio.Games.Loaders offSet = 0.034f; break; } - SoundByte.PlayOneShot($"games/rockers/count/{e["count"]}", e.beat, 1, 1, false, null, offSet); + SoundByte.PlayOneShot($"games/rockers/count/count{e["count"]}", e.beat, 1, 1, false, null, offSet); } }, new GameAction("voiceLine", "Together Voice Line") diff --git a/Assets/Scripts/Games/Rockers/RockersRocker.cs b/Assets/Scripts/Games/Rockers/RockersRocker.cs index 7afdd95e7..b992da2c8 100644 --- a/Assets/Scripts/Games/Rockers/RockersRocker.cs +++ b/Assets/Scripts/Games/Rockers/RockersRocker.cs @@ -125,7 +125,7 @@ namespace HeavenStudio.Games.Scripts_Rockers if (pitches[i] == -1) continue; float pitch = SoundByte.GetPitchFromSemiTones(pitches[i], true); float volume = GetVolumeBasedOnAmountOfStrings(pitches.Length); - string soundName = "rockers/strings/" + (gleeClub ? "gleeClub/" : "normal/" + (i + 1)); + string soundName = "rockers/strings/" + (gleeClub ? "gleeClub/gleeClub" : "normal/normal" + (i + 1)); // Debug.Log("Pitch: " + pitch + " Volume: " + volume + " Name: " + soundName); stringSounds[i] = SoundByte.PlayOneShotGame(soundName, -1, pitch, volume, true); } @@ -138,40 +138,40 @@ namespace HeavenStudio.Games.Scripts_Rockers Rockers.PremadeSamples.None => "", Rockers.PremadeSamples.BendG5 => "rockers/BendG5", Rockers.PremadeSamples.BendC6 => "rockers/BendC6", - Rockers.PremadeSamples.ChordA => "rockers/rocker/ChordA", - Rockers.PremadeSamples.ChordAsus4 => "rockers/rocker/ChordAsus4", - Rockers.PremadeSamples.ChordBm => "rockers/rocker/ChordBm", - Rockers.PremadeSamples.ChordCSharpm7 => "rockers/rocker/ChordC#m7", - Rockers.PremadeSamples.ChordDmaj7 => "rockers/rocker/ChordDmaj7", - Rockers.PremadeSamples.ChordDmaj9 => "rockers/rocker/ChordDmaj9", - Rockers.PremadeSamples.ChordFSharp5 => "rockers/rocker/ChordF#5", - Rockers.PremadeSamples.ChordG => "rockers/rocker/ChordG", - Rockers.PremadeSamples.ChordG5 => "rockers/rocker/ChordG5", - Rockers.PremadeSamples.ChordGdim7 => "rockers/rocker/ChordGdim7", - Rockers.PremadeSamples.ChordGm => "rockers/rocker/ChordGm", - Rockers.PremadeSamples.NoteASharp4 => "rockers/rocker/NoteA#4", - Rockers.PremadeSamples.NoteA5 => "rockers/rocker/NoteA5", - Rockers.PremadeSamples.PracticeChordD => "rockers/rocker/PracticeChordD", - Rockers.PremadeSamples.Remix6ChordA => "rockers/rocker/Remix6ChordA", - Rockers.PremadeSamples.Remix10ChordD => "rockers/rocker/Remix10ChordD", - Rockers.PremadeSamples.Remix10ChordFSharpm => "rockers/rocker/Remix10ChordF#m", - Rockers.PremadeSamples.DoremiChordA7 => "rockers/doremi/ChordA7", - Rockers.PremadeSamples.DoremiChordAm7 => "rockers/doremi/ChordAm7", - Rockers.PremadeSamples.DoremiChordC => "rockers/doremi/ChordC", - Rockers.PremadeSamples.DoremiChordC7 => "rockers/doremi/ChordC7", - Rockers.PremadeSamples.DoremiChordCadd9 => "rockers/doremi/ChordCadd9", - Rockers.PremadeSamples.DoremiChordDm => "rockers/doremi/ChordDm", - Rockers.PremadeSamples.DoremiChordDm7 => "rockers/doremi/ChordDm7", - Rockers.PremadeSamples.DoremiChordEm => "rockers/doremi/ChordEm", - Rockers.PremadeSamples.DoremiChordF => "rockers/doremi/ChordF", - Rockers.PremadeSamples.DoremiChordFadd9 => "rockers/doremi/ChordFadd9", - Rockers.PremadeSamples.DoremiChordFm => "rockers/doremi/ChordFm", - Rockers.PremadeSamples.DoremiChordG => "rockers/doremi/ChordG", - Rockers.PremadeSamples.DoremiChordG7 => "rockers/doremi/ChordG7", - Rockers.PremadeSamples.DoremiChordGm => "rockers/doremi/ChordGm", - Rockers.PremadeSamples.DoremiChordGsus4 => "rockers/doremi/ChordGsus4", - Rockers.PremadeSamples.DoremiNoteA2 => "rockers/doremi/NoteA2", - Rockers.PremadeSamples.DoremiNoteE2 => "rockers/doremi/NoteE2", + Rockers.PremadeSamples.ChordA => "rockers/rocker/rockerChordA", + Rockers.PremadeSamples.ChordAsus4 => "rockers/rocker/rockerChordAsus4", + Rockers.PremadeSamples.ChordBm => "rockers/rocker/rockerChordBm", + Rockers.PremadeSamples.ChordCSharpm7 => "rockers/rocker/rockerChordC#m7", + Rockers.PremadeSamples.ChordDmaj7 => "rockers/rocker/rockerChordDmaj7", + Rockers.PremadeSamples.ChordDmaj9 => "rockers/rocker/rockerChordDmaj9", + Rockers.PremadeSamples.ChordFSharp5 => "rockers/rocker/rockerChordF#5", + Rockers.PremadeSamples.ChordG => "rockers/rocker/rockerChordG", + Rockers.PremadeSamples.ChordG5 => "rockers/rocker/rockerChordG5", + Rockers.PremadeSamples.ChordGdim7 => "rockers/rocker/rockerChordGdim7", + Rockers.PremadeSamples.ChordGm => "rockers/rocker/rockerChordGm", + Rockers.PremadeSamples.NoteASharp4 => "rockers/rocker/rockerNoteA#4", + Rockers.PremadeSamples.NoteA5 => "rockers/rocker/rockerNoteA5", + Rockers.PremadeSamples.PracticeChordD => "rockers/rocker/rockerPracticeChordD", + Rockers.PremadeSamples.Remix6ChordA => "rockers/rocker/rockerRemix6ChordA", + Rockers.PremadeSamples.Remix10ChordD => "rockers/rocker/rockerRemix10ChordD", + Rockers.PremadeSamples.Remix10ChordFSharpm => "rockers/rocker/rockerRemix10ChordF#m", + Rockers.PremadeSamples.DoremiChordA7 => "rockers/doremi/doremiChordA7", + Rockers.PremadeSamples.DoremiChordAm7 => "rockers/doremi/doremiChordAm7", + Rockers.PremadeSamples.DoremiChordC => "rockers/doremi/doremiChordC", + Rockers.PremadeSamples.DoremiChordC7 => "rockers/doremi/doremiChordC7", + Rockers.PremadeSamples.DoremiChordCadd9 => "rockers/doremi/doremiChordCadd9", + Rockers.PremadeSamples.DoremiChordDm => "rockers/doremi/doremiChordDm", + Rockers.PremadeSamples.DoremiChordDm7 => "rockers/doremi/doremiChordDm7", + Rockers.PremadeSamples.DoremiChordEm => "rockers/doremi/doremiChordEm", + Rockers.PremadeSamples.DoremiChordF => "rockers/doremi/doremiChordF", + Rockers.PremadeSamples.DoremiChordFadd9 => "rockers/doremi/doremiChordFadd9", + Rockers.PremadeSamples.DoremiChordFm => "rockers/doremi/doremiChordFm", + Rockers.PremadeSamples.DoremiChordG => "rockers/doremi/doremiChordG", + Rockers.PremadeSamples.DoremiChordG7 => "rockers/doremi/doremiChordG7", + Rockers.PremadeSamples.DoremiChordGm => "rockers/doremi/doremiChordGm", + Rockers.PremadeSamples.DoremiChordGsus4 => "rockers/doremi/doremiChordGsus4", + Rockers.PremadeSamples.DoremiNoteA2 => "rockers/doremi/doremiNoteA2", + Rockers.PremadeSamples.DoremiNoteE2 => "rockers/doremi/doremiNoteE2", _ => throw new System.NotImplementedException(), }; chordSound = SoundByte.PlayOneShotGame(soundName, -1, pitch, 1, true); diff --git a/Assets/Scripts/Games/Tambourine/Tambourine.cs b/Assets/Scripts/Games/Tambourine/Tambourine.cs index 1992674ee..dfbaf81ff 100644 --- a/Assets/Scripts/Games/Tambourine/Tambourine.cs +++ b/Assets/Scripts/Games/Tambourine/Tambourine.cs @@ -272,6 +272,7 @@ namespace HeavenStudio.Games var relevantInputs = GetAllInputsBetweenBeat(beat, beat + interval); relevantInputs.Sort((x, y) => x.beat.CompareTo(y.beat)); + List sounds = new(); for (int i = 0; i < relevantInputs.Count; i++) { bool isHit = relevantInputs[i].datamodel == "tambourine/hit"; @@ -282,10 +283,12 @@ namespace HeavenStudio.Games { MonkeyInput(inputBeat, isHit); })); + sounds.Add(new MultiSound.Sound($"tambourine/monkey/{(isHit ? "hit" : "shake")}/m{(isHit ? "h" : "s")}{UnityEngine.Random.Range(1, 6)}", inputBeat)); } } BeatAction.New(this, actions); + MultiSound.Play(sounds.ToArray(), true, true); if (autoPassTurn) { @@ -298,12 +301,10 @@ namespace HeavenStudio.Games if (hit) { monkeyAnimator.DoScaledAnimationAsync("MonkeySmack", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/monkey/hit/{UnityEngine.Random.Range(1, 6)}"); } else { monkeyAnimator.DoScaledAnimationAsync("MonkeyShake", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/monkey/shake/{UnityEngine.Random.Range(1, 6)}"); } } @@ -335,7 +336,7 @@ namespace HeavenStudio.Games private void PassTurn(double beat, double intervalBeat, float intervalLength, float length) { - SoundByte.PlayOneShotGame($"tambourine/monkey/turnPass/{UnityEngine.Random.Range(1, 6)}", beat); + SoundByte.PlayOneShotGame($"tambourine/monkey/turnPass/tp{UnityEngine.Random.Range(1, 6)}", beat); List actions = new() { new BeatAction.Action(beat, delegate @@ -417,7 +418,7 @@ namespace HeavenStudio.Games if (state >= 1f || state <= -1f) { handsAnimator.DoScaledAnimationAsync("Smack", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/player/hit/{UnityEngine.Random.Range(1, 6)}"); + SoundByte.PlayOneShotGame($"tambourine/player/hit/ph{UnityEngine.Random.Range(1, 6)}"); SoundByte.PlayOneShotGame("tambourine/miss"); sweatAnimator.DoScaledAnimationAsync("Sweating", 0.5f); misses++; @@ -435,7 +436,7 @@ namespace HeavenStudio.Games if (state >= 1f || state <= -1f) { handsAnimator.DoScaledAnimationAsync("Shake", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/player/shake/{UnityEngine.Random.Range(1, 6)}"); + SoundByte.PlayOneShotGame($"tambourine/player/shake/ps{UnityEngine.Random.Range(1, 6)}"); SoundByte.PlayOneShotGame("tambourine/miss"); sweatAnimator.DoScaledAnimationAsync("Sweating", 0.5f); misses++; @@ -454,12 +455,12 @@ namespace HeavenStudio.Games if (hit) { handsAnimator.DoScaledAnimationAsync("Smack", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/player/hit/{UnityEngine.Random.Range(1, 6)}"); + SoundByte.PlayOneShotGame($"tambourine/player/hit/ph{UnityEngine.Random.Range(1, 6)}"); } else { handsAnimator.DoScaledAnimationAsync("Shake", 0.5f); - SoundByte.PlayOneShotGame($"tambourine/player/shake/{UnityEngine.Random.Range(1, 6)}"); + SoundByte.PlayOneShotGame($"tambourine/player/shake/ps{UnityEngine.Random.Range(1, 6)}"); } } diff --git a/Assets/Scripts/Games/WorkingDough/PlayerEnterDoughBall.cs b/Assets/Scripts/Games/WorkingDough/PlayerEnterDoughBall.cs index 38ac59a64..aacdfe422 100644 --- a/Assets/Scripts/Games/WorkingDough/PlayerEnterDoughBall.cs +++ b/Assets/Scripts/Games/WorkingDough/PlayerEnterDoughBall.cs @@ -161,7 +161,6 @@ namespace HeavenStudio.Games.Scripts_WorkingDough Update(); return; } - Debug.Log($"hit at {beat}"); currentState = State.Hit; if (big) { diff --git a/Assets/Scripts/Games/WorkingDough/WorkingDough.cs b/Assets/Scripts/Games/WorkingDough/WorkingDough.cs index 1d527798e..c187da16e 100644 --- a/Assets/Scripts/Games/WorkingDough/WorkingDough.cs +++ b/Assets/Scripts/Games/WorkingDough/WorkingDough.cs @@ -419,7 +419,6 @@ namespace HeavenStudio.Games public void SpawnPlayerBall(double beat, bool isBig, bool hasGandw) { - Debug.Log($"Spawned player ball for beat {beat} (big: {isBig})"); var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall; var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder); diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 621ec8250..d4e4045ed 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -363,13 +363,14 @@ namespace HeavenStudio public List tags; public string defaultLocale = "en"; - public string wantAssetBundle = ""; + public string wantAssetBundle = null; public List supportedLocales; public bool inferred; - public bool usesAssetBundle => wantAssetBundle != ""; + public bool usesAssetBundle => wantAssetBundle is not null or ""; public bool hasLocales => supportedLocales.Count > 0; - public bool AssetsLoaded => ((hasLocales && localeLoaded && currentLoadedLocale == defaultLocale) || (!hasLocales)) && commonLoaded; + public bool AssetsLoaded => ((hasLocales && localeLoaded && currentLoadedLocale == defaultLocale) || (!hasLocales)) && commonLoaded && loadComplete; + public bool AlreadyLoading => alreadyLoading; public bool SequencesPreloaded => soundSequences != null; public string LoadableName => inferred ? "noGame" : name; public GameObject LoadedPrefab => loadedPrefab; @@ -383,6 +384,8 @@ namespace HeavenStudio private bool localePreloaded = false; private GameObject loadedPrefab = null; + bool loadComplete = false; + private SoundSequence.SequenceKeyValue[] soundSequences = null; public SoundSequence.SequenceKeyValue[] LoadedSoundSequences @@ -391,7 +394,7 @@ namespace HeavenStudio set => soundSequences = value; } - public Minigame(string name, string displayName, string color, bool hidden, bool fxOnly, List actions, List tags = null, string assetBundle = "", string defaultLocale = "en", List supportedLocales = null, bool inferred = false) + public Minigame(string name, string displayName, string color, bool hidden, bool fxOnly, List actions, List tags = null, string wantAssetBundle = null, string defaultLocale = "en", List supportedLocales = null, bool inferred = false) { this.name = name; this.displayName = displayName; @@ -401,7 +404,7 @@ namespace HeavenStudio this.fxOnly = fxOnly; this.tags = tags ?? new List(); - this.wantAssetBundle = assetBundle; + this.wantAssetBundle = wantAssetBundle; this.defaultLocale = defaultLocale; this.supportedLocales = supportedLocales ?? new List(); this.inferred = inferred; @@ -410,7 +413,7 @@ namespace HeavenStudio this.splitColorR = null; } - public Minigame(string name, string displayName, string color, string splitColorL, string splitColorR, bool hidden, bool fxOnly, List actions, List tags = null, string assetBundle = "", string defaultLocale = "en", List supportedLocales = null, bool inferred = false) + public Minigame(string name, string displayName, string color, string splitColorL, string splitColorR, bool hidden, bool fxOnly, List actions, List tags = null, string wantAssetBundle = null, string defaultLocale = "en", List supportedLocales = null, bool inferred = false) { this.name = name; this.displayName = displayName; @@ -420,7 +423,7 @@ namespace HeavenStudio this.fxOnly = fxOnly; this.tags = tags ?? new List(); - this.wantAssetBundle = assetBundle; + this.wantAssetBundle = wantAssetBundle; this.defaultLocale = defaultLocale; this.supportedLocales = supportedLocales ?? new List(); this.inferred = inferred; @@ -475,11 +478,13 @@ namespace HeavenStudio public async UniTaskVoid LoadAssetsAsync() { if (alreadyLoading || AssetsLoaded || !usesAssetBundle) return; + loadComplete = false; alreadyLoading = true; await UniTask.WhenAll(LoadCommonAssetBundleAsync(), LoadLocalizedAssetBundleAsync()); await UniTask.WhenAll(LoadGamePrefabAsync(), LoadCommonAudioClips(), LoadLocalizedAudioClips()); SoundByte.PreloadGameAudioClips(this); alreadyLoading = false; + loadComplete = true; } public async UniTask LoadCommonAssetBundleAsync() @@ -533,16 +538,23 @@ namespace HeavenStudio if (!commonLoaded) return; if (bundleCommon == null) return; - UnityEngine.Object asset = await bundleCommon.LoadAssetAsync(name).ToUniTask(timing: PlayerLoopTiming.PreLateUpdate); - loadedPrefab = asset as GameObject; + AssetBundleRequest request = bundleCommon.LoadAssetAsync(name); + request.completed += (op) => OnPrefabLoaded(op as AssetBundleRequest); + await request; + loadedPrefab = request.asset as GameObject; + } - // load sound sequences here for now - // this is taxing and is still done synchronously - // move sequences to their own assets so that we don't have to look up a component - if (loadedPrefab.TryGetComponent(out Games.Minigame minigame)) + void OnPrefabLoaded(AssetBundleRequest request) + { + GameObject prefab = request.asset as GameObject; + // // load sound sequences here for now + // // this is taxing and is still done synchronously + // // move sequences to their own assets so that we don't have to look up a component + if (prefab.TryGetComponent(out Games.Minigame minigame)) { soundSequences = minigame.SoundSequences; } + loadedPrefab = prefab; } public GameObject LoadGamePrefab() @@ -593,6 +605,7 @@ namespace HeavenStudio localePreloaded = false; } SoundByte.UnloadAudioClips(name); + loadComplete = false; } } @@ -741,35 +754,6 @@ namespace HeavenStudio GameManager.instance.ToggleInputs(eventCaller.currentEntity["toggle"]); } ), - - // These are still here for backwards-compatibility but are hidden in the editor - new GameAction("flash", "", 1f, true, - new List() - { - new Param("colorA", Color.white, "Start Color"), - new Param("colorB", Color.white, "End Color"), - new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), - new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), - new Param("ease", Util.EasingFunction.Ease.Linear, "Ease") - }, - hidden: true - ), - new GameAction("move camera", "", 1f, true, new List() - { - new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), - new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), - new Param("valC", new EntityTypes.Float(-0, 250, 10), "In / Out"), - new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type") - }, - hidden: true ), - new GameAction("rotate camera", "", 1f, true, new List() - { - new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), - new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), - new Param("valC", new EntityTypes.Integer(-360, 360, 0), "Roll"), - new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type") - }, - hidden: true ), }), new Minigame("countIn", "Count-Ins", "", false, true, new List() diff --git a/Assets/Scripts/Util/SoundByte.cs b/Assets/Scripts/Util/SoundByte.cs index b317d6d6b..b38d4ce74 100644 --- a/Assets/Scripts/Util/SoundByte.cs +++ b/Assets/Scripts/Util/SoundByte.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Cysharp.Threading.Tasks; using UnityEngine; @@ -86,10 +87,9 @@ namespace HeavenStudio.Util { cmnAb.LoadAllAssetsAsync().completed += (op) => { - //TODO: this can be more efficient if we bulk insert foreach (var clip in (op as AssetBundleRequest).allAssets.Cast()) { - OnResourceLoaded(clip, clip.name); + OnResourceLoaded(clip, $"games/{inf.name}/{clip.name}"); } }; } @@ -100,7 +100,7 @@ namespace HeavenStudio.Util { foreach (var clip in (op as AssetBundleRequest).allAssets.Cast()) { - OnResourceLoaded(clip, clip.name); + OnResourceLoaded(clip, $"games/{inf.name}/{clip.name}"); } }; } @@ -111,7 +111,7 @@ namespace HeavenStudio.Util var clips = Resources.LoadAll(path); foreach (var clip in clips) { - OnResourceLoaded(clip, clip.name); + OnResourceLoaded(clip, $"games/{inf.name}/{clip.name}"); } } } @@ -124,8 +124,12 @@ namespace HeavenStudio.Util public static void PreloadAudioClipAsync(string name, string game) { - if (audioClips.ContainsKey(name)) return; var inf = GameManager.instance.GetGameInfo(game); + if (inf != null) + { + name = $"games/{name}"; + } + if (audioClips.ContainsKey(name)) return; if (inf.usesAssetBundle) { var cmnAb = inf.GetCommonAssetBundle(); @@ -134,7 +138,7 @@ namespace HeavenStudio.Util var request = cmnAb.LoadAssetAsync(name); request.completed += (op) => { - OnResourceLoaded((op as ResourceRequest).asset as AudioClip, name); + OnResourceLoaded((op as ResourceRequest).asset as AudioClip, $"{game}/{name}"); }; } else @@ -145,7 +149,7 @@ namespace HeavenStudio.Util var request = locAb.LoadAssetAsync(name); request.completed += (op) => { - OnResourceLoaded((op as ResourceRequest).asset as AudioClip, name); + OnResourceLoaded((op as ResourceRequest).asset as AudioClip, $"{game}/{name}"); }; } } @@ -196,7 +200,12 @@ namespace HeavenStudio.Util public static void UnloadAudioClips(string game) { - foreach (string s in audioClips.Where(x => x.Key.Split('/')[0] == game).Select(x => x.Key).ToList()) + string[] split; + foreach (string s in audioClips.Where(x => + { + split = x.Key.Split('/'); + return split.Length > 2 && split[0] == "games" && split[1] == game; + }).Select(x => x.Key).ToList()) { audioClips.Remove(s); } @@ -267,30 +276,41 @@ namespace HeavenStudio.Util public static Sound PlayOneShot(string name, double beat = -1, float pitch = 1f, float volume = 1f, bool looping = false, string game = null, double offset = 0f) { AudioClip clip = null; - if (audioClips.ContainsKey(name)) + string soundName = name.Split('/')[^1]; + if (game != null) { - clip = audioClips[name]; - } - else if (game != null) - { - string soundName = name.Split('/')[2]; - var inf = GameManager.instance.GetGameInfo(game); - //first try the game's common assetbundle - // Debug.Log("Jukebox loading sound " + soundName + " from common"); - clip = inf.GetCommonAssetBundle()?.LoadAsset(soundName); - //then the localized one - if (clip == null) + string cachedName = $"games/{game}/{soundName}"; + if (audioClips.ContainsKey(cachedName)) { - // Debug.Log("Jukebox loading sound " + soundName + " from locale"); - clip = inf.GetLocalizedAssetBundle()?.LoadAsset(soundName); + clip = audioClips[cachedName]; + } + else + { + var inf = GameManager.instance.GetGameInfo(game); + //first try the game's common assetbundle + // Debug.Log("Jukebox loading sound " + soundName + " from common"); + clip = inf.GetCommonAssetBundle()?.LoadAsset(soundName); + //then the localized one + if (clip == null) + { + // Debug.Log("Jukebox loading sound " + soundName + " from locale"); + clip = inf.GetLocalizedAssetBundle()?.LoadAsset(soundName); + } } } //can't load from assetbundle, load from resources if (clip == null) { - // Debug.Log("Jukebox loading sound " + name + " from resources"); - clip = Resources.Load($"Sfx/{name}"); + if (audioClips.ContainsKey(name)) + { + clip = audioClips[name]; + } + else + { + // Debug.Log("Jukebox loading sound " + name + " from resources"); + clip = Resources.Load($"Sfx/{name}"); + } } if (looping || beat != -1 || pitch != 1f) @@ -327,30 +347,43 @@ namespace HeavenStudio.Util public static Sound PlayOneShotScheduled(string name, double targetTime, float pitch = 1f, float volume = 1f, bool looping = false, string game = null) { Sound snd = GetAvailableScheduledSound(); - AudioClip clip = null; - if (audioClips.ContainsKey(name)) + string soundName = name.Split('/')[^1]; + if (game != null) { - clip = audioClips[name]; - } - else if (game != null) - { - string soundName = name.Split('/')[2]; - var inf = GameManager.instance.GetGameInfo(game); - //first try the game's common assetbundle - // Debug.Log("Jukebox loading sound " + soundName + " from common"); - clip = inf.GetCommonAssetBundle()?.LoadAsset(soundName); - //then the localized one - if (clip == null) + string cachedName = $"games/{game}/{soundName}"; + if (audioClips.ContainsKey(cachedName)) { - // Debug.Log("Jukebox loading sound " + soundName + " from locale"); - clip = inf.GetLocalizedAssetBundle()?.LoadAsset(soundName); + clip = audioClips[cachedName]; + } + else + { + var inf = GameManager.instance.GetGameInfo(game); + //first try the game's common assetbundle + // Debug.Log("Jukebox loading sound " + soundName + " from common"); + clip = inf.GetCommonAssetBundle()?.LoadAsset(soundName); + //then the localized one + if (clip == null) + { + // Debug.Log("Jukebox loading sound " + soundName + " from locale"); + clip = inf.GetLocalizedAssetBundle()?.LoadAsset(soundName); + } } } //can't load from assetbundle, load from resources if (clip == null) - clip = Resources.Load($"Sfx/{name}"); + { + if (audioClips.ContainsKey(name)) + { + clip = audioClips[name]; + } + else + { + // Debug.Log("Jukebox loading sound " + name + " from resources"); + clip = Resources.Load($"Sfx/{name}"); + } + } // abort if no clip found