diff --git a/assets/data/dadbattle/dadbattle.json b/assets/data/dadbattle/dadbattle.json new file mode 100644 index 000000000..fd8c30e1b --- /dev/null +++ b/assets/data/dadbattle/dadbattle.json @@ -0,0 +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 diff --git a/assets/data/tutorial/Tutorial.json b/assets/data/tutorial/Tutorial.json index 2d902d012..8d8308a60 100644 Binary files a/assets/data/tutorial/Tutorial.json and b/assets/data/tutorial/Tutorial.json differ diff --git a/assets/music/Dadbattle.mp3 b/assets/music/Dadbattle.mp3 new file mode 100644 index 000000000..51d658ddf Binary files /dev/null and b/assets/music/Dadbattle.mp3 differ diff --git a/assets/music/Dadbattle_Inst.mp3 b/assets/music/Dadbattle_Inst.mp3 new file mode 100644 index 000000000..d4ee5c7ad Binary files /dev/null and b/assets/music/Dadbattle_Inst.mp3 differ diff --git a/assets/music/Dadbattle_Voices.mp3 b/assets/music/Dadbattle_Voices.mp3 new file mode 100644 index 000000000..dde421c33 Binary files /dev/null and b/assets/music/Dadbattle_Voices.mp3 differ diff --git a/source/ChartingState.hx b/source/ChartingState.hx index 6495ce02d..d408fcbbc 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -40,8 +40,6 @@ class ChartingState extends MusicBeatState */ var curSection:Int = 0; - var sectionInfo:Array; - var bpmTxt:FlxText; var strumLine:FlxSprite; @@ -63,11 +61,6 @@ class ChartingState extends MusicBeatState var typingShit:FlxInputText; - /** - * What part of the SECTION it's on, relative to the grid. - */ - var page:Int = 1; - override function create() { gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16); @@ -146,6 +139,19 @@ class ChartingState extends MusicBeatState loadSong(_song.song); }); + var reloadSongJson:FlxButton = new FlxButton(reloadSong.x, saveButton.y + 30, "Reload JSON", function() + { + loadJson(_song.song.toLowerCase()); + }); + + var stepperSpeed:FlxUINumericStepper = new FlxUINumericStepper(10, 80, 0.1, 1, 0.1, 10, 1, null); + stepperSpeed.value = _song.speed; + stepperSpeed.name = 'song_speed'; + + var stepperBPM:FlxUINumericStepper = new FlxUINumericStepper(10, 65, 1, 1, 1, 250, 0, null); + stepperBPM.value = Conductor.bpm; + stepperBPM.name = 'song_bpm'; + var tab_group_song = new FlxUI(null, UI_box); tab_group_song.name = "Song"; tab_group_song.add(UI_songTitle); @@ -153,6 +159,9 @@ class ChartingState extends MusicBeatState tab_group_song.add(check_voices); tab_group_song.add(saveButton); tab_group_song.add(reloadSong); + tab_group_song.add(reloadSongJson); + tab_group_song.add(stepperBPM); + tab_group_song.add(stepperSpeed); UI_box.addGroup(tab_group_song); UI_box.scrollFactor.set(); @@ -172,9 +181,11 @@ class ChartingState extends MusicBeatState stepperLength.value = _song.notes[curSection].lengthInSteps; stepperLength.name = "section_length"; + var stepperCopy:FlxUINumericStepper = new FlxUINumericStepper(110, 30, 1, 1, 1, 999, 0); + var copyButton:FlxButton = new FlxButton(110, 8, "Copy last section", function() { - copySection(); + copySection(Std.int(stepperCopy.value)); }); check_mustHitSection = new FlxUICheckBox(10, 30, null, null, "Must hit section", 100); @@ -188,6 +199,7 @@ class ChartingState extends MusicBeatState }; tab_group_section.add(stepperLength); + tab_group_section.add(stepperCopy); tab_group_section.add(check_mustHitSection); tab_group_section.add(copyButton); @@ -249,6 +261,14 @@ class ChartingState extends MusicBeatState _song.notes[curSection].lengthInSteps = Std.int(nums.value); updateGrid(); } + else if (wname == 'song_speed') + { + _song.speed = nums.value; + } + else if (wname == 'song_bpm') + { + Conductor.changeBPM(Std.int(nums.value)); + } } // FlxG.log.add(id + " WEED " + sender + " WEED " + data + " WEED " + params); @@ -398,13 +418,16 @@ class ChartingState extends MusicBeatState } } - function copySection() + function copySection(?sectionNum:Int = 1) { - var daSec = FlxMath.maxInt(curSection, 1); + var daSec = FlxMath.maxInt(curSection, sectionNum); - for (note in _song.notes[daSec - 1].notes) + for (note in _song.notes[daSec - sectionNum].notes) { - _song.notes[daSec].notes.push([note[0] + Conductor.stepCrochet * _song.notes[daSec].lengthInSteps, note[1]]); + _song.notes[daSec].notes.push([ + note[0] + Conductor.stepCrochet * (_song.notes[daSec].lengthInSteps * sectionNum), + note[1] + ]); } updateGrid(); @@ -431,7 +454,7 @@ class ChartingState extends MusicBeatState { var daNoteInfo = i[1]; - var note:Note = new Note(i[0], daNoteInfo); + var note:Note = new Note(i[0], daNoteInfo % 4); note.setGraphicSize(GRID_SIZE, GRID_SIZE); note.updateHitbox(); note.x = Math.floor(i[1] * GRID_SIZE); @@ -450,7 +473,7 @@ class ChartingState extends MusicBeatState { for (i in _song.notes[curSection].notes) { - if (i[0] == note.strumTime && i[1] == note.noteData) + if (i[0] == note.strumTime && i[1] % 4 == note.noteData) { FlxG.log.add('FOUND EVIL NUMBER'); _song.notes[curSection].notes.remove(i); @@ -525,10 +548,16 @@ class ChartingState extends MusicBeatState return noteData; } + function loadJson(song:String):Void + { + PlayState.SONG = Song.loadFromJson(song); + FlxG.resetState(); + } + private function saveLevel() { var json = { - "song": _song.song, + "song": _song, "bpm": Conductor.bpm, "sections": _song.notes.length, 'notes': _song.notes @@ -542,8 +571,7 @@ class ChartingState extends MusicBeatState _file.addEventListener(Event.COMPLETE, onSaveComplete); _file.addEventListener(Event.CANCEL, onSaveCancel); _file.addEventListener(IOErrorEvent.IO_ERROR, onSaveError); - _file.save(data.trim(), json.song.toLowerCase() + ".json"); - _file.browse(); + _file.save(data.trim(), json.song.song.toLowerCase() + ".json"); } } diff --git a/source/PlayState.hx b/source/PlayState.hx index a11a283e8..4dc908f8a 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -71,7 +71,7 @@ class PlayState extends MusicBeatState persistentDraw = true; if (SONG == null) - SONG = Song.loadFromJson('smash'); + SONG = Song.loadFromJson('tutorial'); var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.stageback__png); // bg.setGraphicSize(Std.int(bg.width * 2.5)); @@ -270,7 +270,14 @@ class PlayState extends MusicBeatState sectionScores[1].push(0); var daStrumTime:Float = songNotes[0]; - var daNoteData:Int = songNotes[1]; + var daNoteData:Int = Std.int(songNotes[1] % 4); + + var gottaHitNote:Bool = section.mustHitSection; + + if (songNotes[1] > 3) + { + gottaHitNote = !section.mustHitSection; + } var oldNote:Note; if (unspawnNotes.length > 0) @@ -283,7 +290,7 @@ class PlayState extends MusicBeatState unspawnNotes.push(swagNote); - swagNote.mustPress = section.mustHitSection; + swagNote.mustPress = gottaHitNote; if (swagNote.mustPress) { @@ -473,16 +480,18 @@ class PlayState extends MusicBeatState sectionScored = true; } - if (playerTurn == 0 && generatedMusic) + if (generatedMusic && PlayState.SONG.notes[curBeat % 4] != null) { - if (camFollow.x != dad.getGraphicMidpoint().x + 150) + if (camFollow.x != dad.getGraphicMidpoint().x + 150 && PlayState.SONG.notes[curBeat % 4].mustHitSection) + { camFollow.setPosition(dad.getGraphicMidpoint().x + 150, dad.getGraphicMidpoint().y - 100); - vocals.volume = 1; - } + vocals.volume = 1; + } - if (playerTurn == Std.int((sectionLengths[curSection] * 8) / 2) && camFollow.x != boyfriend.getGraphicMidpoint().x - 100) - { - camFollow.setPosition(boyfriend.getGraphicMidpoint().x - 100, boyfriend.getGraphicMidpoint().y - 100); + if (PlayState.SONG.notes[curBeat % 4].mustHitSection && camFollow.x != boyfriend.getGraphicMidpoint().x - 100) + { + camFollow.setPosition(boyfriend.getGraphicMidpoint().x - 100, boyfriend.getGraphicMidpoint().y - 100); + } } if (camZooming) @@ -584,7 +593,7 @@ class PlayState extends MusicBeatState daNote.destroy(); } - daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * 0.45); + daNote.y = (strumLine.y - (Conductor.songPosition - daNote.strumTime) * (0.45 * PlayState.SONG.speed)); if (daNote.y < -daNote.height) { diff --git a/source/Song.hx b/source/Song.hx index 4776e9c7f..441778c77 100644 --- a/source/Song.hx +++ b/source/Song.hx @@ -13,6 +13,7 @@ class Song public var sections:Int; public var sectionLengths:Array = []; public var needsVoices:Bool = true; + public var speed:Float = 1; public function new(song, notes, bpm, sections) { @@ -45,14 +46,16 @@ class Song trace(rawJson); - var songData = Json.parse(rawJson); + var songData:Song = Json.parse(rawJson).song; - daNotes = songData.notes; - daSong = songData.song; - daSections = songData.sections; - daBpm = songData.bpm; - daSectionLengths = songData.sectionLengths; + trace('LOADED FROM JSON: ' + songData.song); + /* + daNotes = songData.notes; + daSong = songData.song; + daSections = songData.sections; + daBpm = songData.bpm; + daSectionLengths = songData.sectionLengths; */ - return new Song(daSong, daNotes, daBpm, daSections); + return songData; } }