diff --git a/SSBM Music - Break The Targets-Vc1wzDWFvf8.mp3 b/SSBM Music - Break The Targets-Vc1wzDWFvf8.mp3 deleted file mode 100644 index 5e8e81374..000000000 Binary files a/SSBM Music - Break The Targets-Vc1wzDWFvf8.mp3 and /dev/null differ diff --git a/art/GF_ass_sets.fla b/art/GF_ass_sets.fla new file mode 100644 index 000000000..c61801a02 Binary files /dev/null and b/art/GF_ass_sets.fla differ diff --git a/assets/data/dadbattle/dadbattle.json b/assets/data/dadbattle/dadbattle.json index fd8c30e1b..c4365166b 100644 --- a/assets/data/dadbattle/dadbattle.json +++ b/assets/data/dadbattle/dadbattle.json @@ -1 +1 @@ -{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[10667,2],[11000,0],[11167,1],[11333,2],[11750,0],[11833,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[12000,2],[12167,3],[12333,0],[12500,1],[12667,2],[13083,0],[13250,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[13333.666666666666,2],[13666.666666666666,0],[13833.666666666666,1],[13999.666666666666,2],[14416.666666666666,0],[14499.666666666666,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[14666.666666666666,2],[14833.666666666666,3],[14999.666666666666,0],[15166.666666666666,1],[15333.666666666666,2],[15749.666666666666,0],[15916.666666666666,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[16000,1],[16333,0],[16500,3],[16667,1],[16917,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[17333,1],[17348,1],[17750,0],[17917,0],[18083,3],[18250,3],[18417,3],[18583,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[18666.666666666668,1],[18999.666666666668,0],[19166.666666666668,3],[19333.666666666668,1],[19583.666666666668,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[19999.666666666668,1],[20014.666666666668,1],[20416.666666666668,0],[20583.666666666668,0],[20749.666666666668,3],[20916.666666666668,3],[21083.666666666668,3],[21249.666666666668,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[21750,2],[21917,1],[22083,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[22833,1],[23000,3],[23250,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[24417,2],[24750,1],[25000,0],[25167,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[25333,2],[25342,2],[25500,3],[25583,0],[25750,1],[25917,3],[26083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[27083.333333333332,2],[27250.333333333332,1],[27416.333333333332,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[28166.333333333332,1],[28333.333333333332,3],[28583.333333333332,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[29750.333333333332,2],[30083.333333333332,1],[30333.333333333332,0],[30500.333333333332,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[30666.333333333332,2],[30675.333333333332,2],[30833.333333333332,3],[30916.333333333332,0],[31083.333333333332,1],[31250.333333333332,3],[31416.333333333332,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[32167,0],[32333,3],[32500,2],[32750,1],[33000,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[33500,2],[33667,3],[33833,1],[34083,2],[34417,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[34669,0],[35000,1],[35333,3],[35667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[36008,2],[36333,3],[36750,0],[36750,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[37583,1],[37750,3],[37917,2],[38083,0],[38167,2],[38333,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[38679,0],[38750,3],[38833,0],[39000,1],[39167,0],[39333,2],[39500,3],[39667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[40167,0],[40333,3],[40500,1],[40750,2],[40917,3],[41083,1],[41250,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[41337,4],[41750,6],[41583,5],[41917,7],[42083,6],[42250,5],[42417,4],[42583,5],[41348,0],[41583,1],[41750,0],[41917,3],[42167,2],[42333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[42833.666666666664,0],[42999.666666666664,3],[43166.666666666664,2],[43416.666666666664,1],[43666.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[44166.666666666664,2],[44333.666666666664,3],[44499.666666666664,1],[44749.666666666664,2],[45083.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[45335.666666666664,0],[45666.666666666664,1],[45999.666666666664,3],[46333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[46674.666666666664,2],[46999.666666666664,3],[47416.666666666664,0],[47416.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[48249.666666666664,1],[48416.666666666664,3],[48583.666666666664,2],[48749.666666666664,0],[48833.666666666664,2],[48999.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[49345.666666666664,0],[49416.666666666664,3],[49499.666666666664,0],[49666.666666666664,1],[49833.666666666664,0],[49999.666666666664,2],[50166.666666666664,3],[50333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[50833.666666666664,0],[50999.666666666664,3],[51166.666666666664,1],[51416.666666666664,2],[51583.666666666664,3],[51749.666666666664,1],[51916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[52014.666666666664,0],[52250,0],[52417,2],[52583,2],[52750,3],[53000,1],[53000,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[53333.666666666664,2],[53666.666666666664,0],[53833.666666666664,1],[53999.666666666664,2],[54416.666666666664,0],[54499.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[54666.666666666664,2],[54833.666666666664,3],[54999.666666666664,0],[55166.666666666664,1],[55333.666666666664,2],[55749.666666666664,0],[55916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[56000.33333333333,2],[56333.33333333333,0],[56500.33333333333,1],[56666.33333333333,2],[57083.33333333333,0],[57166.33333333333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[57333,1],[57333.33333333333,2],[57500.33333333333,3],[57666.33333333333,0],[57833.33333333333,1],[58000.33333333333,2],[58416.33333333333,0],[58583.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[58666.666666666664,1],[58999.666666666664,0],[59166.666666666664,3],[59333.666666666664,1],[59583.666666666664,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[59999.666666666664,1],[60014.666666666664,1],[60416.666666666664,0],[60583.666666666664,0],[60749.666666666664,3],[60916.666666666664,3],[61083.666666666664,3],[61249.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[61333.33333333333,1],[61666.33333333333,0],[61833.33333333333,3],[62000.33333333333,1],[62250.33333333333,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[62666.33333333333,1],[62681.33333333333,1],[63083.33333333333,0],[63250.33333333333,0],[63416.33333333333,3],[63583.33333333333,3],[63750.33333333333,3],[63916.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[64416.666666666664,2],[64583.666666666664,1],[64749.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[65499.666666666664,1],[65666.66666666666,3],[65916.66666666666,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[67083.66666666666,2],[67416.66666666666,1],[67666.66666666666,0],[67833.66666666666,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[67999.66666666666,2],[68008.66666666666,2],[68166.66666666666,3],[68249.66666666666,0],[68416.66666666666,1],[68583.66666666666,3],[68749.66666666666,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[69750,2],[69917,1],[70083,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[70833,1],[71000,3],[71250,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[72417,2],[72750,1],[73000,0],[73167,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[73333,2],[73342,2],[73500,3],[73583,0],[73750,1],[73917,3],[74083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]}],"needsVoices":true,"speed":1.9000000000000004},"bpm":180,"sections":59,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[10667,2],[11000,0],[11167,1],[11333,2],[11750,0],[11833,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[12000,2],[12167,3],[12333,0],[12500,1],[12667,2],[13083,0],[13250,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[13333.666666666666,2],[13666.666666666666,0],[13833.666666666666,1],[13999.666666666666,2],[14416.666666666666,0],[14499.666666666666,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[14666.666666666666,2],[14833.666666666666,3],[14999.666666666666,0],[15166.666666666666,1],[15333.666666666666,2],[15749.666666666666,0],[15916.666666666666,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[16000,1],[16333,0],[16500,3],[16667,1],[16917,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[17333,1],[17348,1],[17750,0],[17917,0],[18083,3],[18250,3],[18417,3],[18583,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[18666.666666666668,1],[18999.666666666668,0],[19166.666666666668,3],[19333.666666666668,1],[19583.666666666668,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[19999.666666666668,1],[20014.666666666668,1],[20416.666666666668,0],[20583.666666666668,0],[20749.666666666668,3],[20916.666666666668,3],[21083.666666666668,3],[21249.666666666668,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[21750,2],[21917,1],[22083,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[22833,1],[23000,3],[23250,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[24417,2],[24750,1],[25000,0],[25167,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[25333,2],[25342,2],[25500,3],[25583,0],[25750,1],[25917,3],[26083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[27083.333333333332,2],[27250.333333333332,1],[27416.333333333332,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[28166.333333333332,1],[28333.333333333332,3],[28583.333333333332,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[29750.333333333332,2],[30083.333333333332,1],[30333.333333333332,0],[30500.333333333332,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[30666.333333333332,2],[30675.333333333332,2],[30833.333333333332,3],[30916.333333333332,0],[31083.333333333332,1],[31250.333333333332,3],[31416.333333333332,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[32167,0],[32333,3],[32500,2],[32750,1],[33000,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[33500,2],[33667,3],[33833,1],[34083,2],[34417,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[34669,0],[35000,1],[35333,3],[35667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[36008,2],[36333,3],[36750,0],[36750,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[37583,1],[37750,3],[37917,2],[38083,0],[38167,2],[38333,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[38679,0],[38750,3],[38833,0],[39000,1],[39167,0],[39333,2],[39500,3],[39667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[40167,0],[40333,3],[40500,1],[40750,2],[40917,3],[41083,1],[41250,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[41337,4],[41750,6],[41583,5],[41917,7],[42083,6],[42250,5],[42417,4],[42583,5],[41348,0],[41583,1],[41750,0],[41917,3],[42167,2],[42333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[42833.666666666664,0],[42999.666666666664,3],[43166.666666666664,2],[43416.666666666664,1],[43666.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[44166.666666666664,2],[44333.666666666664,3],[44499.666666666664,1],[44749.666666666664,2],[45083.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[45335.666666666664,0],[45666.666666666664,1],[45999.666666666664,3],[46333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[46674.666666666664,2],[46999.666666666664,3],[47416.666666666664,0],[47416.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[48249.666666666664,1],[48416.666666666664,3],[48583.666666666664,2],[48749.666666666664,0],[48833.666666666664,2],[48999.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[49345.666666666664,0],[49416.666666666664,3],[49499.666666666664,0],[49666.666666666664,1],[49833.666666666664,0],[49999.666666666664,2],[50166.666666666664,3],[50333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[50833.666666666664,0],[50999.666666666664,3],[51166.666666666664,1],[51416.666666666664,2],[51583.666666666664,3],[51749.666666666664,1],[51916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[52014.666666666664,0],[52250,0],[52417,2],[52583,2],[52750,3],[53000,1],[53000,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[53333.666666666664,2],[53666.666666666664,0],[53833.666666666664,1],[53999.666666666664,2],[54416.666666666664,0],[54499.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[54666.666666666664,2],[54833.666666666664,3],[54999.666666666664,0],[55166.666666666664,1],[55333.666666666664,2],[55749.666666666664,0],[55916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[56000.33333333333,2],[56333.33333333333,0],[56500.33333333333,1],[56666.33333333333,2],[57083.33333333333,0],[57166.33333333333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[57333,1],[57333.33333333333,2],[57500.33333333333,3],[57666.33333333333,0],[57833.33333333333,1],[58000.33333333333,2],[58416.33333333333,0],[58583.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[58666.666666666664,1],[58999.666666666664,0],[59166.666666666664,3],[59333.666666666664,1],[59583.666666666664,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[59999.666666666664,1],[60014.666666666664,1],[60416.666666666664,0],[60583.666666666664,0],[60749.666666666664,3],[60916.666666666664,3],[61083.666666666664,3],[61249.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[61333.33333333333,1],[61666.33333333333,0],[61833.33333333333,3],[62000.33333333333,1],[62250.33333333333,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[62666.33333333333,1],[62681.33333333333,1],[63083.33333333333,0],[63250.33333333333,0],[63416.33333333333,3],[63583.33333333333,3],[63750.33333333333,3],[63916.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[64416.666666666664,2],[64583.666666666664,1],[64749.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[65499.666666666664,1],[65666.66666666666,3],[65916.66666666666,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[67083.66666666666,2],[67416.66666666666,1],[67666.66666666666,0],[67833.66666666666,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[67999.66666666666,2],[68008.66666666666,2],[68166.66666666666,3],[68249.66666666666,0],[68416.66666666666,1],[68583.66666666666,3],[68749.66666666666,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[69750,2],[69917,1],[70083,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[70833,1],[71000,3],[71250,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[72417,2],[72750,1],[73000,0],[73167,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[73333,2],[73342,2],[73500,3],[73583,0],[73750,1],[73917,3],[74083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]}]} \ No newline at end of file +{"song":{"song":"Dadbattle","bpm":180,"sections":45,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[10667,2],[11000,0],[11167,1],[11333,2],[11750,0],[11833,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[12000,2],[12167,3],[12333,0],[12500,1],[12667,2],[13083,0],[13250,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[13333.666666666666,2],[13666.666666666666,0],[13833.666666666666,1],[13999.666666666666,2],[14416.666666666666,0],[14499.666666666666,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[14666.666666666666,2],[14833.666666666666,3],[14999.666666666666,0],[15166.666666666666,1],[15333.666666666666,2],[15749.666666666666,0],[15916.666666666666,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[16000,1],[16333,0],[16500,3],[16667,1],[16917,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[17333,1],[17348,1],[17750,0],[17917,0],[18083,3],[18250,3],[18417,3],[18583,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[18666.666666666668,1],[18999.666666666668,0],[19166.666666666668,3],[19333.666666666668,1],[19583.666666666668,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[19999.666666666668,1],[20014.666666666668,1],[20416.666666666668,0],[20583.666666666668,0],[20749.666666666668,3],[20916.666666666668,3],[21083.666666666668,3],[21249.666666666668,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[21750,2],[21917,1],[22083,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[22833,1],[23000,3],[23250,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[24417,2],[24750,1],[25000,0],[25167,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[25333,2],[25342,2],[25500,3],[25583,0],[25750,1],[25917,3],[26083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[27083.333333333332,2],[27250.333333333332,1],[27416.333333333332,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[28166.333333333332,1],[28333.333333333332,3],[28583.333333333332,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[29750.333333333332,2],[30083.333333333332,1],[30333.333333333332,0],[30500.333333333332,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[30666.333333333332,2],[30675.333333333332,2],[30833.333333333332,3],[30916.333333333332,0],[31083.333333333332,1],[31250.333333333332,3],[31416.333333333332,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[32167,0],[32333,3],[32500,2],[32750,1],[33000,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[33500,2],[33667,3],[33833,1],[34083,2],[34417,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[34669,0],[35000,1],[35333,3],[35667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[36008,2],[36333,3],[36750,0],[36750,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[37583,1],[37750,3],[37917,2],[38083,0],[38167,2],[38333,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[38679,0],[38750,3],[38833,0],[39000,1],[39167,0],[39333,2],[39500,3],[39667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[40167,0],[40333,3],[40500,1],[40750,2],[40917,3],[41083,1],[41250,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[41337,4],[41750,6],[41583,5],[41917,7],[42083,6],[42250,5],[42417,4],[42583,5],[41348,0],[41583,1],[41750,0],[41917,3],[42167,2],[42333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[42833.666666666664,0],[42999.666666666664,3],[43166.666666666664,2],[43416.666666666664,1],[43666.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[44166.666666666664,2],[44333.666666666664,3],[44499.666666666664,1],[44749.666666666664,2],[45083.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[45335.666666666664,0],[45666.666666666664,1],[45999.666666666664,3],[46333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[46674.666666666664,2],[46999.666666666664,3],[47416.666666666664,0],[47416.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[48249.666666666664,1],[48416.666666666664,3],[48583.666666666664,2],[48749.666666666664,0],[48833.666666666664,2],[48999.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[49345.666666666664,0],[49416.666666666664,3],[49499.666666666664,0],[49666.666666666664,1],[49833.666666666664,0],[49999.666666666664,2],[50166.666666666664,3],[50333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[50833.666666666664,0],[50999.666666666664,3],[51166.666666666664,1],[51416.666666666664,2],[51583.666666666664,3],[51749.666666666664,1],[51916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[52014.666666666664,0],[52250,0],[52417,2],[52583,2],[52750,3],[53000,1],[53000,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[53333.666666666664,2],[53666.666666666664,0],[53833.666666666664,1],[53999.666666666664,2],[54416.666666666664,0],[54499.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[54666.666666666664,2],[54833.666666666664,3],[54999.666666666664,0],[55166.666666666664,1],[55333.666666666664,2],[55749.666666666664,0],[55916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[56000.33333333333,2],[56333.33333333333,0],[56500.33333333333,1],[56666.33333333333,2],[57083.33333333333,0],[57166.33333333333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[57333,1],[57333.33333333333,2],[57500.33333333333,3],[57666.33333333333,0],[57833.33333333333,1],[58000.33333333333,2],[58416.33333333333,0],[58583.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[58666.666666666664,1],[58999.666666666664,0],[59166.666666666664,3],[59333.666666666664,1],[59583.666666666664,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[59999.666666666664,1],[60014.666666666664,1],[60416.666666666664,0],[60583.666666666664,0],[60749.666666666664,3],[60916.666666666664,3],[61083.666666666664,3],[61249.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[61333.33333333333,1],[61666.33333333333,0],[61833.33333333333,3],[62000.33333333333,1],[62250.33333333333,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[62666.33333333333,1],[62681.33333333333,1],[63083.33333333333,0],[63250.33333333333,0],[63416.33333333333,3],[63583.33333333333,3],[63750.33333333333,3],[63916.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[64416.666666666664,2],[64583.666666666664,1],[64749.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[65499.666666666664,1],[65666.66666666666,3],[65916.66666666666,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[67083.66666666666,2],[67416.66666666666,1],[67666.66666666666,0],[67833.66666666666,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[67999.66666666666,2],[68008.66666666666,2],[68166.66666666666,3],[68249.66666666666,0],[68416.66666666666,1],[68583.66666666666,3],[68749.66666666666,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[69750,2],[69917,1],[70083,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[70833,1],[71000,3],[71250,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[72417,2],[72750,1],[73000,0],[73167,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[73333,2],[73342,2],[73500,3],[73583,0],[73750,1],[73917,3],[74083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]}],"needsVoices":true,"speed":1.9000000000000004,"player1":"bf","player2":"dad"},"bpm":180,"sections":61,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[10667,2],[11000,0],[11167,1],[11333,2],[11750,0],[11833,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[12000,2],[12167,3],[12333,0],[12500,1],[12667,2],[13083,0],[13250,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[13333.666666666666,2],[13666.666666666666,0],[13833.666666666666,1],[13999.666666666666,2],[14416.666666666666,0],[14499.666666666666,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[14666.666666666666,2],[14833.666666666666,3],[14999.666666666666,0],[15166.666666666666,1],[15333.666666666666,2],[15749.666666666666,0],[15916.666666666666,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[16000,1],[16333,0],[16500,3],[16667,1],[16917,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[17333,1],[17348,1],[17750,0],[17917,0],[18083,3],[18250,3],[18417,3],[18583,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[18666.666666666668,1],[18999.666666666668,0],[19166.666666666668,3],[19333.666666666668,1],[19583.666666666668,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[19999.666666666668,1],[20014.666666666668,1],[20416.666666666668,0],[20583.666666666668,0],[20749.666666666668,3],[20916.666666666668,3],[21083.666666666668,3],[21249.666666666668,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[21750,2],[21917,1],[22083,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[22833,1],[23000,3],[23250,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[24417,2],[24750,1],[25000,0],[25167,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[25333,2],[25342,2],[25500,3],[25583,0],[25750,1],[25917,3],[26083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[27083.333333333332,2],[27250.333333333332,1],[27416.333333333332,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[28166.333333333332,1],[28333.333333333332,3],[28583.333333333332,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[29750.333333333332,2],[30083.333333333332,1],[30333.333333333332,0],[30500.333333333332,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[30666.333333333332,2],[30675.333333333332,2],[30833.333333333332,3],[30916.333333333332,0],[31083.333333333332,1],[31250.333333333332,3],[31416.333333333332,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[32167,0],[32333,3],[32500,2],[32750,1],[33000,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[33500,2],[33667,3],[33833,1],[34083,2],[34417,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[34669,0],[35000,1],[35333,3],[35667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[36008,2],[36333,3],[36750,0],[36750,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[37583,1],[37750,3],[37917,2],[38083,0],[38167,2],[38333,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[38679,0],[38750,3],[38833,0],[39000,1],[39167,0],[39333,2],[39500,3],[39667,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[40167,0],[40333,3],[40500,1],[40750,2],[40917,3],[41083,1],[41250,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[41337,4],[41750,6],[41583,5],[41917,7],[42083,6],[42250,5],[42417,4],[42583,5],[41348,0],[41583,1],[41750,0],[41917,3],[42167,2],[42333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[42833.666666666664,0],[42999.666666666664,3],[43166.666666666664,2],[43416.666666666664,1],[43666.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[44166.666666666664,2],[44333.666666666664,3],[44499.666666666664,1],[44749.666666666664,2],[45083.666666666664,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[45335.666666666664,0],[45666.666666666664,1],[45999.666666666664,3],[46333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[46674.666666666664,2],[46999.666666666664,3],[47416.666666666664,0],[47416.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[48249.666666666664,1],[48416.666666666664,3],[48583.666666666664,2],[48749.666666666664,0],[48833.666666666664,2],[48999.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[49345.666666666664,0],[49416.666666666664,3],[49499.666666666664,0],[49666.666666666664,1],[49833.666666666664,0],[49999.666666666664,2],[50166.666666666664,3],[50333.666666666664,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[50833.666666666664,0],[50999.666666666664,3],[51166.666666666664,1],[51416.666666666664,2],[51583.666666666664,3],[51749.666666666664,1],[51916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[52014.666666666664,0],[52250,0],[52417,2],[52583,2],[52750,3],[53000,1],[53000,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[53333.666666666664,2],[53666.666666666664,0],[53833.666666666664,1],[53999.666666666664,2],[54416.666666666664,0],[54499.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[54666.666666666664,2],[54833.666666666664,3],[54999.666666666664,0],[55166.666666666664,1],[55333.666666666664,2],[55749.666666666664,0],[55916.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[56000.33333333333,2],[56333.33333333333,0],[56500.33333333333,1],[56666.33333333333,2],[57083.33333333333,0],[57166.33333333333,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[57333,1],[57333.33333333333,2],[57500.33333333333,3],[57666.33333333333,0],[57833.33333333333,1],[58000.33333333333,2],[58416.33333333333,0],[58583.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[58666.666666666664,1],[58999.666666666664,0],[59166.666666666664,3],[59333.666666666664,1],[59583.666666666664,2]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[59999.666666666664,1],[60014.666666666664,1],[60416.666666666664,0],[60583.666666666664,0],[60749.666666666664,3],[60916.666666666664,3],[61083.666666666664,3],[61249.666666666664,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[61333.33333333333,1],[61666.33333333333,0],[61833.33333333333,3],[62000.33333333333,1],[62250.33333333333,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[62666.33333333333,1],[62681.33333333333,1],[63083.33333333333,0],[63250.33333333333,0],[63416.33333333333,3],[63583.33333333333,3],[63750.33333333333,3],[63916.33333333333,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[64416.666666666664,2],[64583.666666666664,1],[64749.666666666664,3]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[65499.666666666664,1],[65666.66666666666,3],[65916.66666666666,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[67083.66666666666,2],[67416.66666666666,1],[67666.66666666666,0],[67833.66666666666,1]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"notes":[[67999.66666666666,2],[68008.66666666666,2],[68166.66666666666,3],[68249.66666666666,0],[68416.66666666666,1],[68583.66666666666,3],[68749.66666666666,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[69750,2],[69917,1],[70083,3]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[70833,1],[71000,3],[71250,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[72417,2],[72750,1],[73000,0],[73167,1]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[[73333,2],[73342,2],[73500,3],[73583,0],[73750,1],[73917,3],[74083,2]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"notes":[]}]} \ No newline at end of file diff --git a/assets/images/GF_assets.png b/assets/images/GF_assets.png index cd140156c..c6d07793f 100644 Binary files a/assets/images/GF_assets.png and b/assets/images/GF_assets.png differ diff --git a/assets/images/GF_assets.xml b/assets/images/GF_assets.xml index 366cec7a6..63ab27506 100644 --- a/assets/images/GF_assets.xml +++ b/assets/images/GF_assets.xml @@ -2,135 +2,192 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/AnimationDebug.hx b/source/AnimationDebug.hx index a637847f4..6a938d683 100644 --- a/source/AnimationDebug.hx +++ b/source/AnimationDebug.hx @@ -12,10 +12,10 @@ import flixel.util.FlxColor; /** *DEBUG MODE */ -class Charting extends FlxState +class AnimationDebug extends FlxState { var bf:Boyfriend; - var dad:Dad; + var dad:Character; var char:Character; var textAnim:FlxText; var dumbTexts:FlxTypedGroup; @@ -40,7 +40,7 @@ class Charting extends FlxState if (isDad) { - dad = new Dad(0, 0); + dad = new Character(0, 0); dad.screenCenter(); dad.debugMode = true; add(dad); diff --git a/source/Character.hx b/source/Character.hx index 8caf4f37a..ca9211d79 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -1,16 +1,93 @@ package; import flixel.FlxSprite; +import flixel.graphics.frames.FlxAtlasFrames; class Character extends FlxSprite { public var animOffsets:Map>; public var debugMode:Bool = false; - public function new(x:Float, y:Float) + public var isPlayer:Bool = false; + public var curCharacter:String = 'bf'; + + public function new(x:Float, y:Float, ?character:String = "bf", ?isPlayer:Bool = false) { animOffsets = new Map>(); super(x, y); + + curCharacter = character; + this.isPlayer = isPlayer; + + var tex:FlxAtlasFrames; + antialiasing = true; + + switch (curCharacter) + { + case 'bf': + case 'gf': + // GIRLFRIEND CODE + tex = FlxAtlasFrames.fromSparrow(AssetPaths.GF_assets__png, AssetPaths.GF_assets__xml); + frames = tex; + animation.addByPrefix('cheer', 'GF Cheer', 24, false); + animation.addByPrefix('singLEFT', 'GF left note', 24, false); + animation.addByPrefix('singRIGHT', 'GF Right Note', 24, false); + animation.addByPrefix('singUP', 'GF Up Note', 24, false); + animation.addByPrefix('singDOWN', 'GF Down Note', 24, false); + animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false); + animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); + animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); + + addOffset('cheer'); + addOffset('sad'); + addOffset('danceLeft'); + addOffset('danceRight'); + + addOffset("singUP"); + addOffset("singRIGHT"); + addOffset("singLEFT"); + addOffset("singDOWN"); + + playAnim('danceRight'); + + case 'dad': + // DAD ANIMATION LOADING CODE + tex = FlxAtlasFrames.fromSparrow(AssetPaths.DADDY_DEAREST__png, AssetPaths.DADDY_DEAREST__xml); + frames = tex; + animation.addByPrefix('idle', 'Dad idle dance', 24); + animation.addByPrefix('singUP', 'Dad Sing Note UP', 24); + animation.addByPrefix('singRIGHT', 'Dad Sing Note RIGHT', 24); + animation.addByPrefix('singDOWN', 'Dad Sing Note DOWN', 24); + animation.addByPrefix('singLEFT', 'Dad Sing Note LEFT', 24); + playAnim('idle'); + + addOffset('idle'); + addOffset("singUP", -6, 50); + addOffset("singRIGHT", 0, 27); + addOffset("singLEFT", -10, 10); + addOffset("singDOWN", 0, -30); + } + } + + private var danced:Bool = false; + + /** + * FOR GF DANCING SHIT + */ + public function dance() + { + switch (curCharacter) + { + case 'gf': + danced = !danced; + + if (danced) + playAnim('danceRight'); + else + playAnim('danceLeft'); + case 'dad': + playAnim('idle'); + } } public function playAnim(AnimName:String, Force:Bool = false, Reversed:Bool = false, Frame:Int = 0):Void diff --git a/source/ChartingState.hx b/source/ChartingState.hx index 409d494c0..1adfb7a69 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -7,6 +7,7 @@ import flixel.addons.ui.FlxInputText; import flixel.addons.ui.FlxUI9SliceSprite; import flixel.addons.ui.FlxUI; import flixel.addons.ui.FlxUICheckBox; +import flixel.addons.ui.FlxUIDropDownMenu; import flixel.addons.ui.FlxUIInputText; import flixel.addons.ui.FlxUINumericStepper; import flixel.addons.ui.FlxUITabMenu; @@ -60,6 +61,7 @@ class ChartingState extends MusicBeatState var _song:Song; var typingShit:FlxInputText; + var curSelectedNote:Note = new Note(0, 0, null); override function create() { @@ -152,6 +154,21 @@ class ChartingState extends MusicBeatState stepperBPM.value = Conductor.bpm; stepperBPM.name = 'song_bpm'; + var characters:Array = ["bf", 'dad', 'gf']; + + var player1DropDown = new FlxUIDropDownMenu(10, 100, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(character:String) + { + _song.player1 = characters[Std.parseInt(character)]; + }); + player1DropDown.selectedLabel = _song.player1; + + var player2DropDown = new FlxUIDropDownMenu(140, 100, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(character:String) + { + _song.player2 = characters[Std.parseInt(character)]; + }); + + player2DropDown.selectedLabel = _song.player2; + var tab_group_song = new FlxUI(null, UI_box); tab_group_song.name = "Song"; tab_group_song.add(UI_songTitle); @@ -162,6 +179,8 @@ class ChartingState extends MusicBeatState tab_group_song.add(reloadSongJson); tab_group_song.add(stepperBPM); tab_group_song.add(stepperSpeed); + tab_group_song.add(player1DropDown); + tab_group_song.add(player2DropDown); UI_box.addGroup(tab_group_song); UI_box.scrollFactor.set(); @@ -422,12 +441,9 @@ class ChartingState extends MusicBeatState { var daSec = FlxMath.maxInt(curSection, sectionNum); - for (note in _song.notes[daSec - sectionNum].notes) + for (note in _song.notes[daSec - sectionNum].sectionNotes) { - _song.notes[daSec].notes.push([ - note[0] + Conductor.stepCrochet * (_song.notes[daSec].lengthInSteps * sectionNum), - note[1] - ]); + _song.notes[daSec].sectionNotes.push(note); } updateGrid(); @@ -448,7 +464,7 @@ class ChartingState extends MusicBeatState curRenderedNotes.remove(curRenderedNotes.members[0], true); } - var sectionInfo:Array = _song.notes[curSection].notes; + var sectionInfo:Array = _song.notes[curSection].sectionNotes; for (i in sectionInfo) { @@ -471,12 +487,12 @@ class ChartingState extends MusicBeatState function deleteNote(note:Note):Void { - for (i in _song.notes[curSection].notes) + for (i in _song.notes[curSection].sectionNotes) { - if (i[0] == note.strumTime && i[1] % 4 == note.noteData) + if (i.strumTime == note.strumTime && i.noteData % 4 == note.noteData) { FlxG.log.add('FOUND EVIL NUMBER'); - _song.notes[curSection].notes.remove(i); + _song.notes[curSection].sectionNotes.remove(i); } } @@ -485,10 +501,10 @@ class ChartingState extends MusicBeatState private function addNote():Void { - _song.notes[curSection].notes.push([ - Math.round(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * 16))), - Math.floor(FlxG.mouse.x / GRID_SIZE) - ]); + var swagNote:Note = new Note(Math.round(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * 16))), + Math.floor(FlxG.mouse.x / GRID_SIZE)); + + _song.notes[curSection].sectionNotes.push(swagNote); trace(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * 16))); trace(curSection); @@ -542,7 +558,7 @@ class ChartingState extends MusicBeatState for (i in _song.notes) { - noteData.push(i.notes); + noteData.push(i.sectionNotes); } return noteData; diff --git a/source/Conductor.hx b/source/Conductor.hx index f1e3d4c77..b63d53654 100644 --- a/source/Conductor.hx +++ b/source/Conductor.hx @@ -12,10 +12,12 @@ class Conductor public static var songPosition:Float; public static var offset:Float = 0; - public static var safeFrames:Int = 5; + public static var safeFrames:Int = 10; public static var safeZoneOffset:Float = (safeFrames / 60) * 1000; // is calculated in create(), is safeFrames in milliseconds - public function new() {} + public function new() + { + } public static function changeBPM(newBpm:Int) { diff --git a/source/Dad.hx b/source/Dad.hx deleted file mode 100644 index b0228c487..000000000 --- a/source/Dad.hx +++ /dev/null @@ -1,26 +0,0 @@ -package; - -import flixel.graphics.frames.FlxAtlasFrames; - -class Dad extends Character -{ - public function new(x:Float, y:Float) - { - super(x, y); - var dadTex = FlxAtlasFrames.fromSparrow(AssetPaths.DADDY_DEAREST__png, AssetPaths.DADDY_DEAREST__xml); - frames = dadTex; - antialiasing = true; - animation.addByPrefix('idle', 'Dad idle dance', 24); - animation.addByPrefix('singUP', 'Dad Sing Note UP', 24); - animation.addByPrefix('singRIGHT', 'Dad Sing Note RIGHT', 24); - animation.addByPrefix('singDOWN', 'Dad Sing Note DOWN', 24); - animation.addByPrefix('singLEFT', 'Dad Sing Note LEFT', 24); - playAnim('idle'); - - addOffset('idle'); - addOffset("singUP", -6, 50); - addOffset("singRIGHT", 0, 27); - addOffset("singLEFT", -10, 10); - addOffset("singDOWN", 0, -30); - } -} diff --git a/source/Girlfriend.hx b/source/Girlfriend.hx deleted file mode 100644 index fe04683a7..000000000 --- a/source/Girlfriend.hx +++ /dev/null @@ -1,37 +0,0 @@ -package; - -import flixel.graphics.frames.FlxAtlasFrames; - -class Girlfriend extends Character -{ - public function new(x:Float, y:Float) - { - super(x, y); - - var tex = FlxAtlasFrames.fromSparrow(AssetPaths.GF_assets__png, AssetPaths.GF_assets__xml); - frames = tex; - animation.addByPrefix('cheer', 'GF Cheer'); - animation.addByIndices('sad', 'gf sad', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "", 24, false); - animation.addByIndices('danceLeft', 'GF Dancing Beat', [30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false); - animation.addByIndices('danceRight', 'GF Dancing Beat', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false); - - addOffset('cheer'); - addOffset('sad'); - addOffset('danceLeft'); - addOffset('danceRight'); - - playAnim('danceRight'); - } - - private var danced:Bool = false; - - public function dance() - { - danced = !danced; - - if (danced) - playAnim('danceRight'); - else - playAnim('danceLeft'); - } -} diff --git a/source/Note.hx b/source/Note.hx index c15d72a5b..5ea093e49 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -15,6 +15,8 @@ class Note extends FlxSprite public var wasGoodHit:Bool = false; public var prevNote:Note; + public var sustainLength:Float = 0; + public var noteScore:Float = 1; public static var swagWidth:Float = 160 * 0.7; diff --git a/source/PlayState.hx b/source/PlayState.hx index 9c64a635e..3e07cf547 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -33,8 +33,8 @@ class PlayState extends MusicBeatState private var vocals:FlxSound; - private var dad:Dad; - private var gf:Girlfriend; + private var dad:Character; + private var gf:Character; private var boyfriend:Boyfriend; private var notes:FlxTypedGroup; @@ -96,14 +96,20 @@ class PlayState extends MusicBeatState stageCurtains.scrollFactor.set(1.3, 1.3); stageCurtains.active = false; - gf = new Girlfriend(400, 130); + gf = new Character(400, 130, 'gf'); gf.scrollFactor.set(0.95, 0.95); gf.antialiasing = true; add(gf); - dad = new Dad(100, 100); + dad = new Character(100, 100, SONG.player2); add(dad); + if (SONG.player2 == 'gf') + { + dad.setPosition(gf.x, gf.y); + gf.visible = false; + } + boyfriend = new Boyfriend(770, 450); add(boyfriend); @@ -263,7 +269,7 @@ class PlayState extends MusicBeatState { var coolSection:Int = Std.int(section.lengthInSteps / 4); - for (songNotes in section.notes) + for (songNotes in section.sectionNotes) { sectionScores[0].push(0); sectionScores[1].push(0); @@ -454,12 +460,11 @@ class PlayState extends MusicBeatState healthHeads.animation.play('unhealthy'); else healthHeads.animation.play('healthy'); - /* - if (FlxG.keys.justPressed.NINE) - FlxG.switchState(new Charting()); - if (FlxG.keys.justPressed.EIGHT) - FlxG.switchState(new Charting(true)); - */ + + /* if (FlxG.keys.justPressed.NINE) + FlxG.switchState(new Charting()); */ + if (FlxG.keys.justPressed.EIGHT) + FlxG.switchState(new AnimationDebug(true)); if (countingDown) { @@ -477,7 +482,7 @@ class PlayState extends MusicBeatState if (playerTurn == (sectionLengths[curSection] * 8) - 1 && !sectionScored) { - popUpScore(); + // popUpScore(); sectionScored = true; } @@ -488,15 +493,15 @@ class PlayState extends MusicBeatState trace(PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection); } - if (camFollow.x != dad.getGraphicMidpoint().x + 150 && !PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection) + if (camFollow.x != dad.getMidpoint().x + 150 && !PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection) { - camFollow.setPosition(dad.getGraphicMidpoint().x + 150, dad.getGraphicMidpoint().y - 100); + camFollow.setPosition(dad.getMidpoint().x + 150, dad.getMidpoint().y - 100); vocals.volume = 1; } - if (PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection && camFollow.x != boyfriend.getGraphicMidpoint().x - 100) + if (PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection && camFollow.x != boyfriend.getMidpoint().x - 100) { - camFollow.setPosition(boyfriend.getGraphicMidpoint().x - 100, boyfriend.getGraphicMidpoint().y - 100); + camFollow.setPosition(boyfriend.getMidpoint().x - 100, boyfriend.getMidpoint().y - 100); } } @@ -626,29 +631,47 @@ class PlayState extends MusicBeatState keyShit(); } - private function popUpScore():Void + private function popUpScore(strumtime:Float):Void { - boyfriend.playAnim('hey'); - vocals.volume = 1; + var noteDiff:Float = Math.abs(strumtime - Conductor.songPosition); + + trace(noteDiff); + + // boyfriend.playAnim('hey'); + // vocals.volume = 1; var placement:String = Std.string(combo); // var placement:String = sectionScores[1][curSection] + '/' + sectionScores[0][curSection]; var coolText:FlxText = new FlxText(0, 0, 0, placement, 32); coolText.screenCenter(); - coolText.x = FlxG.width * 0.75; + coolText.x = FlxG.width * 0.55; // var rating:FlxSprite = new FlxSprite(); - var daRating:String = "shit"; + var daRating:String = "sick"; - if (combo > 60) - daRating = 'sick'; - else if (combo > 12) - daRating = 'good' - else if (combo > 4) + if (noteDiff > Conductor.safeZoneOffset * 0.9) + { + daRating = 'shit'; + } + else if (noteDiff > Conductor.safeZoneOffset * 0.75) + { daRating = 'bad'; + } + else if (noteDiff > Conductor.safeZoneOffset * 0.2) + { + daRating = 'good'; + } + + /* if (combo > 60) + daRating = 'sick'; + else if (combo > 12) + daRating = 'good' + else if (combo > 4) + daRating = 'bad'; + */ rating.loadGraphic('assets/images/' + daRating + ".png"); rating.screenCenter(); rating.x = coolText.x - 40; @@ -669,7 +692,7 @@ class PlayState extends MusicBeatState comboSpr.setGraphicSize(Std.int(comboSpr.width * 0.7)); comboSpr.updateHitbox(); comboSpr.velocity.x += FlxG.random.int(1, 10); - add(comboSpr); + // add(comboSpr); add(rating); var seperatedScore:Array = []; @@ -1017,6 +1040,7 @@ class PlayState extends MusicBeatState { if (!note.wasGoodHit) { + popUpScore(note.strumTime); combo += 1; if (note.noteData >= 0) @@ -1072,7 +1096,7 @@ class PlayState extends MusicBeatState if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0) FlxG.camera.zoom += 0.025; - dad.playAnim('idle'); + dad.dance(); healthHeads.setGraphicSize(Std.int(healthHeads.width + 20)); if (totalBeats % gfSpeed == 0) diff --git a/source/Section.hx b/source/Section.hx index 530402fa0..4b1950c70 100644 --- a/source/Section.hx +++ b/source/Section.hx @@ -2,10 +2,7 @@ package; class Section { - /** - * NOT ACTUAL NOTE DATA! Just holds strum time and which part of the chart it is! - */ - public var notes:Array = []; + public var sectionNotes:Array = []; public var lengthInSteps:Int = 16; public var typeOfSection:Int = 0; diff --git a/source/Song.hx b/source/Song.hx index 441778c77..ab7c4e1c8 100644 --- a/source/Song.hx +++ b/source/Song.hx @@ -15,6 +15,9 @@ class Song public var needsVoices:Bool = true; public var speed:Float = 1; + public var player1:String = 'bf'; + public var player2:String = 'dad'; + public function new(song, notes, bpm, sections) { this.song = song;