diff --git a/assets/preload/data/satin-panties/satin-panties-hard.json b/assets/preload/data/satin-panties/satin-panties-hard.json index 27ac0b6..d1578b2 100644 --- a/assets/preload/data/satin-panties/satin-panties-hard.json +++ b/assets/preload/data/satin-panties/satin-panties-hard.json @@ -1 +1,2904 @@ -{"song":{"player1":"bf-car","gfVersion":"gf-car","notes":[{"sectionNotes":[[0,0,0],[272.727264,0,0],[545.4545,0,0],[818.181763,0,0],[954.5454,0,0],[1227.27271,0,0],[1363.63635,0,0],[1636.36353,0,0],[1909.09082,0,0],[2045.45447,0,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[2181.818,3,0],[2454.54541,3,0],[2727.27271,3,0],[3000,3,0],[3136.36353,3,0],[3409.09082,3,0],[3545.45435,3,0],[3818.18164,3,0],[4090.909,3,0],[4227.27246,3,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[4636.36328,2,0],[4909.091,3,0],[5181.818,2,0],[5318.18164,3,0],[5590.90869,0,0],[5863.636,2,0],[6000,3,0],[6272.727,0,0],[6409.091,3,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[6818.18164,2,0],[7090.90869,3,0],[7363.636,2,0],[7500,3,0],[7772.727,0,0],[8045.454,2,0],[8181.818,3,0],[8318.182,0,0],[8454.545,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[8727.272,6,545.4545],[9000,2,0],[9272.727,3,0],[9545.454,2,0],[9681.818,3,0],[9954.545,0,0],[10227.2725,2,0],[10363.6357,3,0],[10636.3633,0,0],[10772.7266,3,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[11181.8174,2,0],[11454.5449,3,0],[11727.2725,2,0],[11863.6357,3,0],[12136.3633,0,0],[12409.0908,2,0],[12545.4541,3,0],[12681.8174,0,0],[12818.1816,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[13090.9082,6,545.4545],[13363.6357,1,0],[13500,1,0],[13636.3633,0,0],[13909.0908,0,0],[14045.4541,3,0],[14181.8174,2,272.727264],[14590.9082,3,0],[14727.2725,0,0],[15000,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[15272.7266,3,272.727264],[15681.8174,0,0],[15954.5449,0,0],[16090.9082,0,0],[16227.2725,0,0],[16363.6357,2,272.727264],[16772.7266,3,0],[16909.09,0,0],[17045.4531,1,0],[17181.8184,0,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[17454.5449,6,545.4545],[17727.2715,1,0],[17863.6367,1,0],[18000,0,0],[18272.7266,0,0],[18409.09,3,0],[18545.4531,2,272.727264],[18954.5449,3,0],[19090.9082,0,0],[19363.6367,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[19636.3633,3,272.727264],[20045.4531,0,0],[20318.1816,0,0],[20454.5449,0,0],[20590.9082,0,0],[20727.2715,2,272.727264],[21136.3633,3,0],[21272.7266,0,0],[21409.09,1,0],[21545.4531,0,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[21818.1816,6,409.090881],[21818.1816,2,409.090881],[22363.6348,7,0],[22363.6348,3,0],[22500,6,0],[22500,2,0],[22636.3633,7,0],[22636.3633,3,0],[22772.7266,6,0],[22772.7266,2,0],[22909.09,4,0],[22909.09,0,0],[23045.4531,5,0],[23045.4531,1,0],[23181.8184,4,0],[23181.8184,0,0],[23318.1816,5,0],[23318.1816,1,0],[23454.5449,4,0],[23454.5449,0,0],[23590.9082,7,0],[23590.9082,3,0],[23727.2715,4,0],[23727.2715,0,0],[23863.6348,7,0],[23863.6348,3,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[24000,1,409.090881],[24000,5,409.090881],[24545.4531,4,0],[24545.4531,0,0],[24681.8184,7,0],[24681.8184,3,0],[24818.1816,4,0],[24818.1816,0,0],[24954.5449,7,0],[24954.5449,3,0],[25090.9082,6,136.363632],[25090.9082,2,136.363632],[25363.6348,7,0],[25363.6348,3,0],[25636.3633,7,0],[25636.3633,3,0],[25909.09,5,0],[25909.09,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[26181.8164,4,409.090881],[26181.8164,3,409.090881],[26727.2715,0,409.090881],[26727.2715,7,409.090881],[27272.7266,6,0],[27272.7266,2,0],[27545.4531,6,0],[27545.4531,2,0],[27681.8164,6,0],[27681.8164,2,0],[27818.1816,7,409.090881],[27818.1816,0,409.090881]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[28363.6348,5,409.090881],[28363.6348,1,409.090881],[28909.09,7,409.090881],[28909.09,3,409.090881],[29454.5449,6,409.090881],[29454.5449,2,409.090881],[30000,4,0],[30000,0,0],[30272.7266,7,409.090881],[30272.7266,3,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[30545.4531,5,545.4545],[30818.1816,2,0],[30954.5449,3,0],[31090.9082,0,0],[31363.6348,1,0],[31636.3633,3,0],[31772.7266,0,0],[31909.09,3,0],[32181.8164,3,0],[32318.1816,0,0],[32454.5449,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[33000,1,0],[33136.3633,3,0],[33272.7266,0,136.363632],[33545.4531,1,0],[33818.18,2,0],[33954.543,3,0],[34090.9063,0,0],[34227.2734,0,0],[34363.6367,3,0],[34500,0,0],[34636.3633,0,0],[34772.7266,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[34909.09,7,0],[35045.4531,6,0],[35181.8164,2,0],[35181.8164,7,0],[35318.18,3,0],[35454.543,0,0],[35727.2734,1,0],[36000,3,0],[36136.3633,0,0],[36272.7266,3,0],[36545.4531,3,0],[36681.8164,0,0],[36818.18,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[37363.6367,1,0],[37500,3,0],[37636.3633,0,136.363632],[37909.09,1,0],[38181.8164,2,0],[38318.18,3,0],[38454.543,0,0],[38590.9063,0,0],[38727.2734,7,0],[38727.2734,3,0],[38863.6367,4,0],[38863.6367,0,0],[39000,5,0],[39000,0,0],[39136.3633,7,0],[39136.3633,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[39272.7266,2,136.363632],[39272.7266,7,0],[39409.09,6,0],[39545.4531,7,0],[39545.4531,2,0],[39681.8164,3,0],[39818.18,0,0],[39954.543,1,0],[40090.9063,3,0],[40227.2734,1,0],[40363.6367,3,0],[40500,0,0],[40636.3633,3,0],[40772.7266,1,0],[40909.09,3,0],[41045.4531,0,0],[41181.8164,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[41454.543,0,0],[41727.27,1,0],[41863.6367,3,0],[42000,0,136.363632],[42272.7266,1,0],[42545.4531,2,0],[42681.8164,3,0],[42818.18,0,0],[42954.543,0,0],[43090.9063,7,0],[43090.9063,3,0],[43227.27,4,0],[43227.27,0,0],[43363.6367,5,0],[43363.6367,0,0],[43500,7,0],[43500,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[43636.3633,2,136.363632],[43909.09,2,0],[44045.4531,3,0],[44181.8164,0,0],[44318.18,1,0],[44454.543,3,0],[44590.9063,1,0],[44727.27,3,0],[44863.6367,0,0],[45000,3,0],[45136.3633,1,0],[45272.7266,3,0],[45409.09,0,0],[45545.4531,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[45818.18,0,0],[46090.9063,1,0],[46227.27,3,0],[46363.6367,0,136.363632],[46636.3633,1,0],[46909.09,2,0],[47045.4531,3,0],[47181.8164,0,0],[47318.18,0,0],[47454.543,3,0],[47590.9063,0,0],[47727.27,0,0],[47863.6367,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[48272.7266,2,0],[48409.09,3,0],[48545.4531,0,0],[48681.8164,3,0],[48818.18,0,0],[48954.543,2,0],[49090.9063,3,0],[49363.6367,3,0],[49636.3633,1,0],[49909.09,0,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[50454.543,3,0],[50590.9063,1,0],[50727.27,0,0],[50863.6367,3,0],[51000,2,0],[51272.7266,0,0],[51545.4531,2,0],[51818.18,0,0],[52090.9063,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[52363.6328,6,545.4545],[52636.3633,2,0],[52772.7266,3,0],[52909.09,0,0],[53045.4531,3,0],[53181.8164,0,0],[53318.18,2,0],[53454.543,3,0],[53727.27,3,0],[54000,1,0],[54272.7266,0,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[54818.18,3,0],[54954.543,1,0],[55090.9063,0,0],[55227.27,3,0],[55363.6328,2,0],[55636.3633,0,0],[55909.09,2,0],[56181.8164,0,0],[56454.543,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[56727.27,6,409.090881],[56727.27,2,409.090881],[57272.7266,3,0],[57272.7266,7,0],[57409.09,2,0],[57409.09,6,0],[57545.4531,3,0],[57545.4531,7,0],[57681.8164,2,0],[57681.8164,6,0],[57818.18,0,0],[57818.18,4,0],[57954.543,1,0],[57954.543,5,0],[58090.9063,0,0],[58090.9063,4,0],[58227.27,1,0],[58227.27,5,0],[58363.6328,0,0],[58363.6328,4,0],[58500,3,0],[58500,7,0],[58636.3633,0,0],[58636.3633,4,0],[58772.7266,3,0],[58772.7266,7,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[58909.09,1,409.090881],[58909.09,5,409.090881],[59454.543,4,0],[59454.543,0,0],[59590.9063,7,0],[59590.9063,3,0],[59727.27,4,0],[59727.27,0,0],[59863.6328,7,0],[59863.6328,3,0],[60000,6,136.363632],[60000,2,136.363632],[60272.7266,7,0],[60272.7266,3,0],[60545.4531,7,0],[60545.4531,3,0],[60818.18,5,0],[60818.18,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[61090.9063,0,409.090881],[61090.9063,7,409.090881],[61636.3633,4,409.090881],[61636.3633,3,409.090881],[62181.8164,2,0],[62181.8164,6,0],[62454.543,2,0],[62454.543,6,0],[62590.9063,2,0],[62590.9063,6,0],[62727.27,3,409.090881],[62727.27,4,409.090881]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[63272.7266,5,409.090881],[63272.7266,1,409.090881],[63818.18,7,409.090881],[63818.18,3,409.090881],[64363.6328,6,409.090881],[64363.6328,2,409.090881],[64909.09,4,0],[64909.09,0,0],[65181.8164,7,0],[65181.8164,3,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[65454.543,5,545.4545],[65454.543,2,0],[65727.27,2,0],[65863.63,3,0],[66000,0,0],[66272.73,1,0],[66545.45,3,0],[66681.81,0,0],[66818.18,3,0],[67090.91,3,0],[67227.27,0,0],[67363.63,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[67909.0859,1,0],[68045.45,3,0],[68181.81,0,136.363632],[68454.55,1,0],[68727.27,2,0],[68818.18,0,0],[68909.0859,3,0],[69000,0,0],[69181.81,0,0],[69272.73,3,0],[69363.63,0,0],[69454.55,3,0],[69545.45,1,0],[69727.27,0,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[69818.18,5,409.090881],[70090.91,2,0],[70227.27,3,0],[70363.63,0,0],[70363.63,7,409.090881],[70636.36,1,0],[70909.0859,3,0],[70909.0859,6,409.090881],[71045.45,0,0],[71181.81,3,0],[71454.55,3,0],[71454.55,7,409.090881],[71590.91,0,0],[71727.27,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[72000,5,409.090881],[72272.73,1,0],[72409.0859,3,0],[72545.45,0,136.363632],[72545.45,7,409.090881],[72818.18,1,0],[73090.91,2,0],[73181.81,0,0],[73272.73,3,0],[73363.63,0,0],[73545.45,0,0],[73636.36,3,0],[73727.27,0,0],[73818.18,3,0],[73909.0859,1,0],[74090.91,0,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[74181.81,0,136.363632],[74181.81,5,409.090881],[74454.55,2,0],[74590.91,3,0],[74727.27,0,0],[74727.27,7,409.090881],[74863.63,1,0],[75000,3,0],[75136.36,1,0],[75272.73,3,0],[75272.73,6,409.090881],[75409.0859,0,0],[75545.45,3,0],[75681.81,1,0],[75818.18,3,0],[75818.18,7,409.090881],[75954.55,0,0],[76090.91,1,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[76363.63,0,0],[76363.63,5,409.090881],[76636.36,1,0],[76772.73,3,0],[76909.0859,0,136.363632],[76909.0859,7,409.090881],[77181.81,1,0],[77454.55,2,0],[77454.55,6,409.090881],[77590.91,3,0],[77727.27,0,0],[77863.63,0,0],[78000,3,0],[78000,7,0],[78136.36,0,0],[78136.36,4,0],[78272.73,0,0],[78272.73,4,0],[78409.0859,1,0],[78409.0859,5,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[78545.45,0,136.363632],[78818.18,2,0],[78954.55,3,0],[79090.91,0,0],[79227.27,1,0],[79363.63,3,0],[79500,1,0],[79636.36,3,0],[79772.73,0,0],[79909.0859,3,0],[80045.45,1,0],[80181.81,3,0],[80318.18,0,0],[80454.55,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[80727.27,0,0],[81000,1,0],[81136.36,3,0],[81272.73,0,136.363632],[81545.45,1,0],[81818.18,2,0],[81954.54,3,0],[82090.91,0,0],[82227.27,0,0],[82363.63,3,0],[82500,0,0],[82636.36,0,0],[82772.73,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[82909.0859,7,1090.909],[83181.81,2,0],[83454.54,3,0],[83727.27,2,0],[83863.63,3,0],[84136.36,0,0],[84409.0859,2,0],[84545.45,3,0],[84818.18,0,0],[84954.54,3,0]],"lengthInSteps":16,"mustHitSection":false},{"sectionNotes":[[85363.63,2,0],[85636.36,3,0],[85909.0859,2,0],[86045.45,3,0],[86318.18,0,0],[86590.91,2,0],[86727.27,3,0],[86863.63,0,0],[87000,1,0]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[[87272.73,2,545.4545]],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"mustHitSection":true},{"lengthInSteps":16,"altAnim":false,"typeOfSection":0,"sectionNotes":[],"bpm":110,"changeBPM":false,"mustHitSection":true}],"player2":"mom-car","song":"Satin Panties","stage":"limo","needsVoices":true,"validScore":true,"bpm":110,"speed":1.8}} \ No newline at end of file +{ + "song": { + "player1": "bf-car", + "player2": "mom-car", + "notes": [ + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 0, + 0, + 0 + ], + [ + 272.727264, + 0, + 0 + ], + [ + 545.4545, + 0, + 0 + ], + [ + 818.181763, + 0, + 0 + ], + [ + 954.5454, + 0, + 0 + ], + [ + 1227.27271, + 0, + 0 + ], + [ + 1363.63635, + 0, + 0 + ], + [ + 1636.36353, + 0, + 0 + ], + [ + 1909.09082, + 0, + 0 + ], + [ + 2045.45447, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 2181.818, + 3, + 0 + ], + [ + 2454.54541, + 3, + 0 + ], + [ + 2727.27271, + 3, + 0 + ], + [ + 3000, + 3, + 0 + ], + [ + 3136.36353, + 3, + 0 + ], + [ + 3409.09082, + 3, + 0 + ], + [ + 3545.45435, + 3, + 0 + ], + [ + 3818.18164, + 3, + 0 + ], + [ + 4090.909, + 3, + 0 + ], + [ + 4227.27246, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 4636.36328, + 2, + 0 + ], + [ + 4909.091, + 3, + 0 + ], + [ + 5181.818, + 2, + 0 + ], + [ + 5318.18164, + 3, + 0 + ], + [ + 5590.90869, + 0, + 0 + ], + [ + 5863.636, + 2, + 0 + ], + [ + 6000, + 3, + 0 + ], + [ + 6272.727, + 0, + 0 + ], + [ + 6409.091, + 3, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 6818.18164, + 2, + 0 + ], + [ + 7090.90869, + 3, + 0 + ], + [ + 7363.636, + 2, + 0 + ], + [ + 7500, + 3, + 0 + ], + [ + 7772.727, + 0, + 0 + ], + [ + 8045.454, + 2, + 0 + ], + [ + 8181.818, + 3, + 0 + ], + [ + 8318.182, + 0, + 0 + ], + [ + 8454.545, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 8727.272, + 6, + 545.4545 + ], + [ + 9000, + 2, + 0 + ], + [ + 9272.727, + 3, + 0 + ], + [ + 9545.454, + 2, + 0 + ], + [ + 9681.818, + 3, + 0 + ], + [ + 9954.545, + 0, + 0 + ], + [ + 10227.2725, + 2, + 0 + ], + [ + 10363.6357, + 3, + 0 + ], + [ + 10636.3633, + 0, + 0 + ], + [ + 10772.7266, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 11181.8174, + 2, + 0 + ], + [ + 11454.5449, + 3, + 0 + ], + [ + 11727.2725, + 2, + 0 + ], + [ + 11863.6357, + 3, + 0 + ], + [ + 12136.3633, + 0, + 0 + ], + [ + 12409.0908, + 2, + 0 + ], + [ + 12545.4541, + 3, + 0 + ], + [ + 12681.8174, + 0, + 0 + ], + [ + 12818.1816, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 13090.9082, + 6, + 545.4545 + ], + [ + 13363.6357, + 1, + 0 + ], + [ + 13500, + 1, + 0 + ], + [ + 13636.3633, + 0, + 0 + ], + [ + 13909.0908, + 0, + 0 + ], + [ + 14045.4541, + 3, + 0 + ], + [ + 14181.8174, + 2, + 272.727264 + ], + [ + 14590.9082, + 3, + 0 + ], + [ + 14727.2725, + 0, + 0 + ], + [ + 15000, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 15272.7266, + 3, + 272.727264 + ], + [ + 15681.8174, + 0, + 0 + ], + [ + 15954.5449, + 0, + 0 + ], + [ + 16090.9082, + 0, + 0 + ], + [ + 16227.2725, + 0, + 0 + ], + [ + 16363.6357, + 2, + 272.727264 + ], + [ + 16772.7266, + 3, + 0 + ], + [ + 16909.09, + 0, + 0 + ], + [ + 17045.4531, + 1, + 0 + ], + [ + 17181.8184, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 17454.5449, + 6, + 545.4545 + ], + [ + 17727.2715, + 1, + 0 + ], + [ + 17863.6367, + 1, + 0 + ], + [ + 18000, + 0, + 0 + ], + [ + 18272.7266, + 0, + 0 + ], + [ + 18409.09, + 3, + 0 + ], + [ + 18545.4531, + 2, + 272.727264 + ], + [ + 18954.5449, + 3, + 0 + ], + [ + 19090.9082, + 0, + 0 + ], + [ + 19363.6367, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 19636.3633, + 3, + 272.727264 + ], + [ + 20045.4531, + 0, + 0 + ], + [ + 20318.1816, + 0, + 0 + ], + [ + 20454.5449, + 0, + 0 + ], + [ + 20590.9082, + 0, + 0 + ], + [ + 20727.2715, + 2, + 272.727264 + ], + [ + 21136.3633, + 3, + 0 + ], + [ + 21272.7266, + 0, + 0 + ], + [ + 21409.09, + 1, + 0 + ], + [ + 21545.4531, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 21818.1816, + 6, + 409.090881 + ], + [ + 21818.1816, + 2, + 409.090881 + ], + [ + 22363.6348, + 7, + 0 + ], + [ + 22363.6348, + 3, + 0 + ], + [ + 22500, + 6, + 0 + ], + [ + 22500, + 2, + 0 + ], + [ + 22636.3633, + 7, + 0 + ], + [ + 22636.3633, + 3, + 0 + ], + [ + 22772.7266, + 6, + 0 + ], + [ + 22772.7266, + 2, + 0 + ], + [ + 22909.09, + 4, + 0 + ], + [ + 22909.09, + 0, + 0 + ], + [ + 23045.4531, + 5, + 0 + ], + [ + 23045.4531, + 1, + 0 + ], + [ + 23181.8184, + 4, + 0 + ], + [ + 23181.8184, + 0, + 0 + ], + [ + 23318.1816, + 5, + 0 + ], + [ + 23318.1816, + 1, + 0 + ], + [ + 23454.5449, + 4, + 0 + ], + [ + 23454.5449, + 0, + 0 + ], + [ + 23590.9082, + 7, + 0 + ], + [ + 23590.9082, + 3, + 0 + ], + [ + 23727.2715, + 4, + 0 + ], + [ + 23727.2715, + 0, + 0 + ], + [ + 23863.6348, + 7, + 0 + ], + [ + 23863.6348, + 3, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 24000, + 1, + 409.090881 + ], + [ + 24000, + 5, + 409.090881 + ], + [ + 24545.4531, + 4, + 0 + ], + [ + 24545.4531, + 0, + 0 + ], + [ + 24681.8184, + 7, + 0 + ], + [ + 24681.8184, + 3, + 0 + ], + [ + 24818.1816, + 4, + 0 + ], + [ + 24818.1816, + 0, + 0 + ], + [ + 24954.5449, + 7, + 0 + ], + [ + 24954.5449, + 3, + 0 + ], + [ + 25090.9082, + 6, + 136.363632 + ], + [ + 25090.9082, + 2, + 136.363632 + ], + [ + 25363.6348, + 7, + 0 + ], + [ + 25363.6348, + 3, + 0 + ], + [ + 25636.3633, + 7, + 0 + ], + [ + 25636.3633, + 3, + 0 + ], + [ + 25909.09, + 5, + 0 + ], + [ + 25909.09, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 26181.8164, + 4, + 409.090881 + ], + [ + 26181.8164, + 3, + 409.090881 + ], + [ + 26727.2715, + 0, + 409.090881 + ], + [ + 26727.2715, + 7, + 409.090881 + ], + [ + 27272.7266, + 6, + 0 + ], + [ + 27272.7266, + 2, + 0 + ], + [ + 27545.4531, + 6, + 0 + ], + [ + 27545.4531, + 2, + 0 + ], + [ + 27681.8164, + 6, + 0 + ], + [ + 27681.8164, + 2, + 0 + ], + [ + 27818.1816, + 7, + 409.090881 + ], + [ + 27818.1816, + 0, + 409.090881 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 28363.6348, + 5, + 409.090881 + ], + [ + 28363.6348, + 1, + 409.090881 + ], + [ + 28909.09, + 7, + 409.090881 + ], + [ + 28909.09, + 3, + 409.090881 + ], + [ + 29454.5449, + 6, + 409.090881 + ], + [ + 29454.5449, + 2, + 409.090881 + ], + [ + 30000, + 4, + 0 + ], + [ + 30000, + 0, + 0 + ], + [ + 30272.7266, + 7, + 409.090881 + ], + [ + 30272.7266, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 30545.4531, + 5, + 545.4545 + ], + [ + 30818.1816, + 2, + 0 + ], + [ + 30954.5449, + 3, + 0 + ], + [ + 31090.9082, + 0, + 0 + ], + [ + 31363.6348, + 1, + 0 + ], + [ + 31636.3633, + 3, + 0 + ], + [ + 31772.7266, + 0, + 0 + ], + [ + 31909.09, + 3, + 0 + ], + [ + 32181.8164, + 3, + 0 + ], + [ + 32318.1816, + 0, + 0 + ], + [ + 32454.5449, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 33000, + 1, + 0 + ], + [ + 33136.3633, + 3, + 0 + ], + [ + 33272.7266, + 0, + 136.363632 + ], + [ + 33545.4531, + 1, + 0 + ], + [ + 33818.18, + 2, + 0 + ], + [ + 33954.543, + 3, + 0 + ], + [ + 34090.9063, + 0, + 0 + ], + [ + 34227.2734, + 0, + 0 + ], + [ + 34363.6367, + 3, + 0 + ], + [ + 34500, + 0, + 0 + ], + [ + 34636.3633, + 0, + 0 + ], + [ + 34772.7266, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 34909.09, + 7, + 0 + ], + [ + 35045.4531, + 6, + 0 + ], + [ + 35181.8164, + 2, + 0 + ], + [ + 35181.8164, + 7, + 0 + ], + [ + 35318.18, + 3, + 0 + ], + [ + 35454.543, + 0, + 0 + ], + [ + 35727.2734, + 1, + 0 + ], + [ + 36000, + 3, + 0 + ], + [ + 36136.3633, + 0, + 0 + ], + [ + 36272.7266, + 3, + 0 + ], + [ + 36545.4531, + 3, + 0 + ], + [ + 36681.8164, + 0, + 0 + ], + [ + 36818.18, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 37363.6367, + 1, + 0 + ], + [ + 37500, + 3, + 0 + ], + [ + 37636.3633, + 0, + 136.363632 + ], + [ + 37909.09, + 1, + 0 + ], + [ + 38181.8164, + 2, + 0 + ], + [ + 38318.18, + 3, + 0 + ], + [ + 38454.543, + 0, + 0 + ], + [ + 38590.9063, + 0, + 0 + ], + [ + 38727.2734, + 7, + 0 + ], + [ + 38727.2734, + 3, + 0 + ], + [ + 38863.6367, + 4, + 0 + ], + [ + 38863.6367, + 0, + 0 + ], + [ + 39000, + 5, + 0 + ], + [ + 39000, + 0, + 0 + ], + [ + 39136.3633, + 7, + 0 + ], + [ + 39136.3633, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 39272.7266, + 2, + 136.363632 + ], + [ + 39272.7266, + 7, + 0 + ], + [ + 39409.09, + 6, + 0 + ], + [ + 39545.4531, + 7, + 0 + ], + [ + 39545.4531, + 2, + 0 + ], + [ + 39681.8164, + 3, + 0 + ], + [ + 39818.18, + 0, + 0 + ], + [ + 39954.543, + 1, + 0 + ], + [ + 40090.9063, + 3, + 0 + ], + [ + 40227.2734, + 1, + 0 + ], + [ + 40363.6367, + 3, + 0 + ], + [ + 40500, + 0, + 0 + ], + [ + 40636.3633, + 3, + 0 + ], + [ + 40772.7266, + 1, + 0 + ], + [ + 40909.09, + 3, + 0 + ], + [ + 41045.4531, + 0, + 0 + ], + [ + 41181.8164, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 41454.543, + 0, + 0 + ], + [ + 41727.27, + 1, + 0 + ], + [ + 41863.6367, + 3, + 0 + ], + [ + 42000, + 0, + 136.363632 + ], + [ + 42272.7266, + 1, + 0 + ], + [ + 42545.4531, + 2, + 0 + ], + [ + 42681.8164, + 3, + 0 + ], + [ + 42818.18, + 0, + 0 + ], + [ + 42954.543, + 0, + 0 + ], + [ + 43090.9063, + 7, + 0 + ], + [ + 43090.9063, + 3, + 0 + ], + [ + 43227.27, + 4, + 0 + ], + [ + 43227.27, + 0, + 0 + ], + [ + 43363.6367, + 5, + 0 + ], + [ + 43363.6367, + 0, + 0 + ], + [ + 43500, + 7, + 0 + ], + [ + 43500, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 43636.3633, + 2, + 136.363632 + ], + [ + 43909.09, + 2, + 0 + ], + [ + 44045.4531, + 3, + 0 + ], + [ + 44181.8164, + 0, + 0 + ], + [ + 44318.18, + 1, + 0 + ], + [ + 44454.543, + 3, + 0 + ], + [ + 44590.9063, + 1, + 0 + ], + [ + 44727.27, + 3, + 0 + ], + [ + 44863.6367, + 0, + 0 + ], + [ + 45000, + 3, + 0 + ], + [ + 45136.3633, + 1, + 0 + ], + [ + 45272.7266, + 3, + 0 + ], + [ + 45409.09, + 0, + 0 + ], + [ + 45545.4531, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 45818.18, + 0, + 0 + ], + [ + 46090.9063, + 1, + 0 + ], + [ + 46227.27, + 3, + 0 + ], + [ + 46363.6367, + 0, + 136.363632 + ], + [ + 46636.3633, + 1, + 0 + ], + [ + 46909.09, + 2, + 0 + ], + [ + 47045.4531, + 3, + 0 + ], + [ + 47181.8164, + 0, + 0 + ], + [ + 47318.18, + 0, + 0 + ], + [ + 47454.543, + 3, + 0 + ], + [ + 47590.9063, + 0, + 0 + ], + [ + 47727.27, + 0, + 0 + ], + [ + 47863.6367, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 48272.7266, + 2, + 0 + ], + [ + 48409.09, + 3, + 0 + ], + [ + 48545.4531, + 0, + 0 + ], + [ + 48681.8164, + 3, + 0 + ], + [ + 48818.18, + 0, + 0 + ], + [ + 48954.543, + 2, + 0 + ], + [ + 49090.9063, + 3, + 0 + ], + [ + 49363.6367, + 3, + 0 + ], + [ + 49636.3633, + 1, + 0 + ], + [ + 49909.09, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 50454.543, + 3, + 0 + ], + [ + 50590.9063, + 1, + 0 + ], + [ + 50727.27, + 0, + 0 + ], + [ + 50863.6367, + 3, + 0 + ], + [ + 51000, + 2, + 0 + ], + [ + 51272.7266, + 0, + 0 + ], + [ + 51545.4531, + 2, + 0 + ], + [ + 51818.18, + 0, + 0 + ], + [ + 52090.9063, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 52363.6328, + 6, + 545.4545 + ], + [ + 52636.3633, + 2, + 0 + ], + [ + 52772.7266, + 3, + 0 + ], + [ + 52909.09, + 0, + 0 + ], + [ + 53045.4531, + 3, + 0 + ], + [ + 53181.8164, + 0, + 0 + ], + [ + 53318.18, + 2, + 0 + ], + [ + 53454.543, + 3, + 0 + ], + [ + 53727.27, + 3, + 0 + ], + [ + 54000, + 1, + 0 + ], + [ + 54272.7266, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 54818.18, + 3, + 0 + ], + [ + 54954.543, + 1, + 0 + ], + [ + 55090.9063, + 0, + 0 + ], + [ + 55227.27, + 3, + 0 + ], + [ + 55363.6328, + 2, + 0 + ], + [ + 55636.3633, + 0, + 0 + ], + [ + 55909.09, + 2, + 0 + ], + [ + 56181.8164, + 0, + 0 + ], + [ + 56454.543, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 56727.27, + 6, + 409.090881 + ], + [ + 56727.27, + 2, + 409.090881 + ], + [ + 57272.7266, + 3, + 0 + ], + [ + 57272.7266, + 7, + 0 + ], + [ + 57409.09, + 2, + 0 + ], + [ + 57409.09, + 6, + 0 + ], + [ + 57545.4531, + 3, + 0 + ], + [ + 57545.4531, + 7, + 0 + ], + [ + 57681.8164, + 2, + 0 + ], + [ + 57681.8164, + 6, + 0 + ], + [ + 57818.18, + 0, + 0 + ], + [ + 57818.18, + 4, + 0 + ], + [ + 57954.543, + 1, + 0 + ], + [ + 57954.543, + 5, + 0 + ], + [ + 58090.9063, + 0, + 0 + ], + [ + 58090.9063, + 4, + 0 + ], + [ + 58227.27, + 1, + 0 + ], + [ + 58227.27, + 5, + 0 + ], + [ + 58363.6328, + 0, + 0 + ], + [ + 58363.6328, + 4, + 0 + ], + [ + 58500, + 3, + 0 + ], + [ + 58500, + 7, + 0 + ], + [ + 58636.3633, + 0, + 0 + ], + [ + 58636.3633, + 4, + 0 + ], + [ + 58772.7266, + 3, + 0 + ], + [ + 58772.7266, + 7, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 58909.09, + 1, + 409.090881 + ], + [ + 58909.09, + 5, + 409.090881 + ], + [ + 59454.543, + 4, + 0 + ], + [ + 59454.543, + 0, + 0 + ], + [ + 59590.9063, + 7, + 0 + ], + [ + 59590.9063, + 3, + 0 + ], + [ + 59727.27, + 4, + 0 + ], + [ + 59727.27, + 0, + 0 + ], + [ + 59863.6328, + 7, + 0 + ], + [ + 59863.6328, + 3, + 0 + ], + [ + 60000, + 6, + 136.363632 + ], + [ + 60000, + 2, + 136.363632 + ], + [ + 60272.7266, + 7, + 0 + ], + [ + 60272.7266, + 3, + 0 + ], + [ + 60545.4531, + 7, + 0 + ], + [ + 60545.4531, + 3, + 0 + ], + [ + 60818.18, + 5, + 0 + ], + [ + 60818.18, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 61090.9063, + 0, + 409.090881 + ], + [ + 61090.9063, + 7, + 409.090881 + ], + [ + 61636.3633, + 4, + 409.090881 + ], + [ + 61636.3633, + 3, + 409.090881 + ], + [ + 62181.8164, + 2, + 0 + ], + [ + 62181.8164, + 6, + 0 + ], + [ + 62454.543, + 2, + 0 + ], + [ + 62454.543, + 6, + 0 + ], + [ + 62590.9063, + 2, + 0 + ], + [ + 62590.9063, + 6, + 0 + ], + [ + 62727.27, + 3, + 409.090881 + ], + [ + 62727.27, + 4, + 409.090881 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 63272.7266, + 5, + 409.090881 + ], + [ + 63272.7266, + 1, + 409.090881 + ], + [ + 63818.18, + 7, + 409.090881 + ], + [ + 63818.18, + 3, + 409.090881 + ], + [ + 64363.6328, + 6, + 409.090881 + ], + [ + 64363.6328, + 2, + 409.090881 + ], + [ + 64909.09, + 4, + 0 + ], + [ + 64909.09, + 0, + 0 + ], + [ + 65181.8164, + 7, + 0 + ], + [ + 65181.8164, + 3, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 65454.543, + 5, + 545.4545 + ], + [ + 65454.543, + 2, + 0 + ], + [ + 65727.27, + 2, + 0 + ], + [ + 65863.63, + 3, + 0 + ], + [ + 66000, + 0, + 0 + ], + [ + 66272.73, + 1, + 0 + ], + [ + 66545.45, + 3, + 0 + ], + [ + 66681.81, + 0, + 0 + ], + [ + 66818.18, + 3, + 0 + ], + [ + 67090.91, + 3, + 0 + ], + [ + 67227.27, + 0, + 0 + ], + [ + 67363.63, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 67909.0859, + 1, + 0 + ], + [ + 68045.45, + 3, + 0 + ], + [ + 68181.81, + 0, + 136.363632 + ], + [ + 68454.55, + 1, + 0 + ], + [ + 68727.27, + 2, + 0 + ], + [ + 69000, + 0, + 0 + ], + [ + 69272.73, + 3, + 0 + ], + [ + 69545.45, + 1, + 0 + ], + [ + 68818.1818181819, + 0, + 0 + ], + [ + 68909.090909091, + 3, + 0 + ], + [ + 69181.8181818182, + 0, + 0 + ], + [ + 69363.6363636364, + 0, + 0 + ], + [ + 69454.5454545455, + 3, + 0 + ], + [ + 69727.2727272728, + 0, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 69818.18, + 5, + 409.090881 + ], + [ + 70090.91, + 2, + 0 + ], + [ + 70227.27, + 3, + 0 + ], + [ + 70363.63, + 0, + 0 + ], + [ + 70363.63, + 7, + 409.090881 + ], + [ + 70636.36, + 1, + 0 + ], + [ + 70909.0859, + 3, + 0 + ], + [ + 70909.0859, + 6, + 409.090881 + ], + [ + 71045.45, + 0, + 0 + ], + [ + 71181.81, + 3, + 0 + ], + [ + 71454.55, + 3, + 0 + ], + [ + 71454.55, + 7, + 409.090881 + ], + [ + 71590.91, + 0, + 0 + ], + [ + 71727.27, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 72000, + 5, + 409.090881 + ], + [ + 72272.73, + 1, + 0 + ], + [ + 72409.0859, + 3, + 0 + ], + [ + 72545.45, + 0, + 136.363632 + ], + [ + 72545.45, + 7, + 409.090881 + ], + [ + 72818.18, + 1, + 0 + ], + [ + 73090.91, + 2, + 0 + ], + [ + 73363.63, + 0, + 0 + ], + [ + 73636.36, + 3, + 0 + ], + [ + 73909.0859, + 1, + 0 + ], + [ + 73181.8181818182, + 0, + 0 + ], + [ + 73272.7272727273, + 3, + 0 + ], + [ + 73545.4545454546, + 0, + 0 + ], + [ + 73727.2727272727, + 0, + 0 + ], + [ + 73818.1818181819, + 3, + 0 + ], + [ + 74090.9090909091, + 0, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 74181.81, + 0, + 136.363632 + ], + [ + 74181.81, + 5, + 409.090881 + ], + [ + 74454.55, + 2, + 0 + ], + [ + 74590.91, + 3, + 0 + ], + [ + 74727.27, + 0, + 0 + ], + [ + 74727.27, + 7, + 409.090881 + ], + [ + 74863.63, + 1, + 0 + ], + [ + 75000, + 3, + 0 + ], + [ + 75136.36, + 1, + 0 + ], + [ + 75272.73, + 3, + 0 + ], + [ + 75272.73, + 6, + 409.090881 + ], + [ + 75409.0859, + 0, + 0 + ], + [ + 75545.45, + 3, + 0 + ], + [ + 75681.81, + 1, + 0 + ], + [ + 75818.18, + 3, + 0 + ], + [ + 75818.18, + 7, + 409.090881 + ], + [ + 75954.55, + 0, + 0 + ], + [ + 76090.91, + 1, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 76363.63, + 0, + 0 + ], + [ + 76363.63, + 5, + 409.090881 + ], + [ + 76636.36, + 1, + 0 + ], + [ + 76772.73, + 3, + 0 + ], + [ + 76909.0859, + 0, + 136.363632 + ], + [ + 76909.0859, + 7, + 409.090881 + ], + [ + 77181.81, + 1, + 0 + ], + [ + 77454.55, + 2, + 0 + ], + [ + 77454.55, + 6, + 409.090881 + ], + [ + 77590.91, + 3, + 0 + ], + [ + 77727.27, + 0, + 0 + ], + [ + 77863.63, + 0, + 0 + ], + [ + 78000, + 3, + 0 + ], + [ + 78000, + 7, + 0 + ], + [ + 78136.36, + 0, + 0 + ], + [ + 78136.36, + 4, + 0 + ], + [ + 78272.73, + 0, + 0 + ], + [ + 78272.73, + 4, + 0 + ], + [ + 78409.0859, + 1, + 0 + ], + [ + 78409.0859, + 5, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 78545.45, + 0, + 136.363632 + ], + [ + 78818.18, + 2, + 0 + ], + [ + 78954.55, + 3, + 0 + ], + [ + 79090.91, + 0, + 0 + ], + [ + 79227.27, + 1, + 0 + ], + [ + 79363.63, + 3, + 0 + ], + [ + 79500, + 1, + 0 + ], + [ + 79636.36, + 3, + 0 + ], + [ + 79772.73, + 0, + 0 + ], + [ + 79909.0859, + 3, + 0 + ], + [ + 80045.45, + 1, + 0 + ], + [ + 80181.81, + 3, + 0 + ], + [ + 80318.18, + 0, + 0 + ], + [ + 80454.55, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 80727.27, + 0, + 0 + ], + [ + 81000, + 1, + 0 + ], + [ + 81136.36, + 3, + 0 + ], + [ + 81272.73, + 0, + 136.363632 + ], + [ + 81545.45, + 1, + 0 + ], + [ + 81818.18, + 2, + 0 + ], + [ + 81954.54, + 3, + 0 + ], + [ + 82090.91, + 0, + 0 + ], + [ + 82227.27, + 0, + 0 + ], + [ + 82363.63, + 3, + 0 + ], + [ + 82500, + 0, + 0 + ], + [ + 82636.36, + 0, + 0 + ], + [ + 82772.73, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 82909.0859, + 7, + 1090.909 + ], + [ + 83181.81, + 2, + 0 + ], + [ + 83454.54, + 3, + 0 + ], + [ + 83727.27, + 2, + 0 + ], + [ + 83863.63, + 3, + 0 + ], + [ + 84136.36, + 0, + 0 + ], + [ + 84409.0859, + 2, + 0 + ], + [ + 84545.45, + 3, + 0 + ], + [ + 84818.18, + 0, + 0 + ], + [ + 84954.54, + 3, + 0 + ] + ], + "mustHitSection": false + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 85363.63, + 2, + 0 + ], + [ + 85636.36, + 3, + 0 + ], + [ + 85909.0859, + 2, + 0 + ], + [ + 86045.45, + 3, + 0 + ], + [ + 86318.18, + 0, + 0 + ], + [ + 86590.91, + 2, + 0 + ], + [ + 86727.27, + 3, + 0 + ], + [ + 86863.63, + 0, + 0 + ], + [ + 87000, + 1, + 0 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [ + [ + 87272.73, + 2, + 545.4545 + ] + ], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [], + "mustHitSection": true + }, + { + "lengthInSteps": 16, + "sectionNotes": [], + "mustHitSection": true + }, + { + "sectionNotes": [], + "typeOfSection": 0, + "lengthInSteps": 16, + "altAnim": false, + "mustHitSection": true, + "changeBPM": false, + "bpm": 110 + }, + { + "lengthInSteps": 16, + "altAnim": false, + "typeOfSection": 0, + "sectionNotes": [], + "bpm": 110, + "changeBPM": false, + "mustHitSection": true + } + ], + "gfVersion": "gf-car", + "song": "Satin Panties", + "stage": "limo", + "needsVoices": true, + "validScore": true, + "speed": 1.8, + "bpm": 110 + } +} \ No newline at end of file diff --git a/source/ChartingState.hx b/source/ChartingState.hx index 5de9335..14a7e5d 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -1,6 +1,7 @@ package; import flixel.FlxCamera; +import flixel.FlxObject; import flixel.addons.ui.FlxUIText; import haxe.zip.Writer; import Conductor.BPMChangeEvent; @@ -48,6 +49,7 @@ class ChartingState extends MusicBeatState public var snap:Int = 1; var UI_box:FlxUITabMenu; + var UI_options:FlxUITabMenu; /** * Array of notes showing when each section STARTS in STEPS @@ -68,6 +70,9 @@ class ChartingState extends MusicBeatState var GRID_SIZE:Int = 40; + var subDivisions:Float = 1; + var defaultSnap:Bool = true; + var dummyArrow:FlxSprite; var curRenderedNotes:FlxTypedGroup; @@ -98,6 +103,8 @@ class ChartingState extends MusicBeatState public var snapText:FlxText; + var camFollow:FlxObject; + override function create() { curSection = lastSection; @@ -121,16 +128,17 @@ class ChartingState extends MusicBeatState }; } - gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16); - add(gridBG); + addGrid(1); var blackBorder:FlxSprite = new FlxSprite(60,10).makeGraphic(120,100,FlxColor.BLACK); blackBorder.scrollFactor.set(); blackBorder.alpha = 0.3; + /* snapText = new FlxText(60,10,0,"Snap: 1/" + snap + " (Press SHIFT to unsnap the cursor)\nAdd Notes: 1-8 (or click)\nDiff: 0", 14); snapText.scrollFactor.set(); + */ gridBlackLine = new FlxSprite(gridBG.x + gridBG.width / 2).makeGraphic(2, Std.int(gridBG.height), FlxColor.BLACK); add(gridBlackLine); @@ -171,7 +179,7 @@ class ChartingState extends MusicBeatState bpmTxt.scrollFactor.set(); add(bpmTxt); - strumLine = new FlxSprite(0, 50).makeGraphic(Std.int(FlxG.width / 2), 4); + strumLine = new FlxSprite(0, 50).makeGraphic(Std.int(GRID_SIZE * 8), 4); add(strumLine); dummyArrow = new FlxSprite().makeGraphic(GRID_SIZE, GRID_SIZE); @@ -185,27 +193,102 @@ class ChartingState extends MusicBeatState ]; UI_box = new FlxUITabMenu(null, tabs, true); - + + UI_box.scrollFactor.set(); UI_box.resize(300, 400); - UI_box.x = FlxG.width / 2; + UI_box.x = FlxG.width / 2 + 40; UI_box.y = 20; add(UI_box); + var opt_tabs = [{name: "Options", label:'Editor Options'}]; + + UI_options = new FlxUITabMenu(null, opt_tabs, true); + + UI_options.scrollFactor.set(); + UI_options.selected_tab = 0; + UI_options.resize(300, 200); + UI_options.x = UI_box.x; + UI_options.y = FlxG.height - 300; + add(UI_options); + addSongUI(); addSectionUI(); addNoteUI(); + addOptionsUI(); + add(curRenderedNotes); add(curRenderedSustains); add(blackBorder); - add(snapText); + //add(snapText); super.create(); } + function addGrid(?divisions:Float = 1) + { + // This here is because non-integer numbers aren't supported as grid sizes, making the grid slowly 'drift' as it goes on + var h = GRID_SIZE / divisions; + if (Math.floor(h) != h) + h = GRID_SIZE; + + remove(gridBG); + gridBG = FlxGridOverlay.create(GRID_SIZE, Std.int(h), GRID_SIZE * 8, GRID_SIZE * 16); + add(gridBG); + } + + var stepperDiv:FlxUINumericStepper; + var check_snap:FlxUICheckBox; + function addOptionsUI() + { + stepperDiv = new FlxUINumericStepper(10, 26, 1, subDivisions, 1, 4); + stepperDiv.value = 0; + stepperDiv.name = 'divisions'; + + var stepperDivLabel = new FlxText(8, 10, 'Grid sub-divisions'); + + var hitsounds = new FlxUICheckBox(10, 60, null, null, "Play hitsounds", 100); + hitsounds.checked = false; + hitsounds.callback = function() + { + playClaps = hitsounds.checked; + }; + + var check_mute_inst = new FlxUICheckBox(10, 90, null, null, "Mute Instrumental", 100); + check_mute_inst.checked = false; + check_mute_inst.callback = function() + { + var vol:Float = 1; + + if (check_mute_inst.checked) + vol = 0; + + FlxG.sound.music.volume = vol; + }; + + check_snap = new FlxUICheckBox(80, 25, null, null, "Snap to grid", 100); + check_snap.checked = defaultSnap; + // _song.needsVoices = check_voices.checked; + check_snap.callback = function() + { + defaultSnap = check_snap.checked; + trace('CHECKED!'); + }; + + var tab_options = new FlxUI(null, UI_options); + tab_options.name = "Options"; + tab_options.add(stepperDiv); + tab_options.add(stepperDivLabel); + tab_options.add(check_snap); + tab_options.add(hitsounds); + tab_options.add(check_mute_inst); + + UI_options.addGroup(tab_options); + } + function addSongUI():Void { var UI_songTitle = new FlxUIInputText(10, 10, 70, _song.song, 8); @@ -220,18 +303,6 @@ class ChartingState extends MusicBeatState trace('CHECKED!'); }; - var check_mute_inst = new FlxUICheckBox(10, 200, null, null, "Mute Instrumental (in editor)", 100); - check_mute_inst.checked = false; - check_mute_inst.callback = function() - { - var vol:Float = 1; - - if (check_mute_inst.checked) - vol = 0; - - FlxG.sound.music.volume = vol; - }; - var saveButton:FlxButton = new FlxButton(110, 8, "Save", function() { saveLevel(); @@ -283,14 +354,6 @@ class ChartingState extends MusicBeatState stepperSongVol.value = FlxG.sound.music.volume; stepperSongVol.name = 'song_instvol'; - - var hitsounds = new FlxUICheckBox(10, stepperSongVol.y + 60, null, null, "Play hitsounds", 100); - hitsounds.checked = false; - hitsounds.callback = function() - { - playClaps = hitsounds.checked; - }; - var stepperSongVolLabel = new FlxText(74, 110, 'Instrumental Volume'); @@ -359,7 +422,7 @@ class ChartingState extends MusicBeatState tab_group_song.add(UI_songTitle); tab_group_song.add(restart); tab_group_song.add(check_voices); - tab_group_song.add(check_mute_inst); + //tab_group_song.add(check_mute_inst); tab_group_song.add(saveButton); tab_group_song.add(reloadSong); tab_group_song.add(reloadSongJson); @@ -379,7 +442,7 @@ class ChartingState extends MusicBeatState tab_group_song.add(shiftNoteDialLabel3); tab_group_song.add(stepperShiftNoteDialms); tab_group_song.add(shiftNoteButton); - tab_group_song.add(hitsounds); + //tab_group_song.add(hitsounds); var tab_group_assets = new FlxUI(null, UI_box); tab_group_assets.name = "Assets"; @@ -396,9 +459,11 @@ class ChartingState extends MusicBeatState UI_box.addGroup(tab_group_song); UI_box.addGroup(tab_group_assets); - UI_box.scrollFactor.set(); + + camFollow = new FlxObject(280, 0, 1, 1); + add(camFollow); - FlxG.camera.follow(strumLine); + FlxG.camera.follow(camFollow); } var stepperLength:FlxUINumericStepper; @@ -447,7 +512,7 @@ class ChartingState extends MusicBeatState check_mustHitSection.checked = true; // _song.needsVoices = check_mustHit.checked; - check_altAnim = new FlxUICheckBox(10, 400, null, null, "Alternate Animation", 100); + check_altAnim = new FlxUICheckBox(10, 340, null, null, "Alternate Animation", 100); check_altAnim.name = 'check_altAnim'; check_changeBPM = new FlxUICheckBox(10, 60, null, null, 'Change BPM', 100); @@ -575,53 +640,55 @@ class ChartingState extends MusicBeatState var nums:FlxUINumericStepper = cast sender; var wname = nums.name; FlxG.log.add(wname); - if (wname == 'section_length') - { - if (nums.value <= 4) - nums.value = 4; - _song.notes[curSection].lengthInSteps = Std.int(nums.value); - updateGrid(); - } - else if (wname == 'song_speed') - { - if (nums.value <= 0) - nums.value = 0; - _song.speed = nums.value; - } - else if (wname == 'song_bpm') - { - if (nums.value <= 0) - nums.value = 1; - tempBpm = Std.int(nums.value); - Conductor.mapBPMChanges(_song); - Conductor.changeBPM(Std.int(nums.value)); - } - else if (wname == 'note_susLength') - { - if (curSelectedNote == null) - return; - if (nums.value <= 0) - nums.value = 0; - curSelectedNote[2] = nums.value; - updateGrid(); - } - else if (wname == 'section_bpm') + switch (wname) { - if (nums.value <= 0.1) - nums.value = 0.1; - _song.notes[curSection].bpm = Std.int(nums.value); - updateGrid(); - }else if (wname == 'song_vocalvol') - { - if (nums.value <= 0.1) - nums.value = 0.1; - vocals.volume = nums.value; - }else if (wname == 'song_instvol') - { - if (nums.value <= 0.1) - nums.value = 0.1; - FlxG.sound.music.volume = nums.value; + case 'section_length': + if (nums.value <= 4) + nums.value = 4; + _song.notes[curSection].lengthInSteps = Std.int(nums.value); + updateGrid(); + + case 'song_speed': + if (nums.value <= 0) + nums.value = 0; + _song.speed = nums.value; + + case 'song_bpm': + if (nums.value <= 0) + nums.value = 1; + tempBpm = Std.int(nums.value); + Conductor.mapBPMChanges(_song); + Conductor.changeBPM(Std.int(nums.value)); + + case 'note_susLength': + if (curSelectedNote == null) + return; + + if (nums.value <= 0) + nums.value = 0; + curSelectedNote[2] = nums.value; + updateGrid(); + + case 'section_bpm': + if (nums.value <= 0.1) + nums.value = 0.1; + _song.notes[curSection].bpm = Std.int(nums.value); + updateGrid(); + + case 'song_vocalvol': + if (nums.value <= 0.1) + nums.value = 0.1; + vocals.volume = nums.value; + + case 'song_instvol': + if (nums.value <= 0.1) + nums.value = 0.1; + FlxG.sound.music.volume = nums.value; + + case 'divisions': + subDivisions = nums.value; + updateGrid(); } } @@ -668,7 +735,7 @@ class ChartingState extends MusicBeatState { updateHeads(); - snapText.text = "Snap: 1/" + snap + " (" + (doSnapShit ? "Shift to disable" : "Snap Disabled, Shift to renable. It's a bit buggy") + ")\nAdd Notes: 1-8 (or click)"; + //snapText.text = "Snap: 1/" + snap + " (" + (doSnapShit ? "Shift to disable" : "Snap Disabled, Shift to renable. It's a bit buggy") + ")\nAdd Notes: 1-8 (or click)"; curStep = recalculateSteps(); @@ -680,9 +747,18 @@ class ChartingState extends MusicBeatState snap = 192; if (snap <= 1) snap = 1;*/ - + /* if (FlxG.keys.justPressed.SHIFT) doSnapShit = !doSnapShit; + */ + + doSnapShit = defaultSnap; + if (FlxG.keys.pressed.SHIFT) + { + doSnapShit = !defaultSnap; + } + + check_snap.checked = doSnapShit; Conductor.songPosition = FlxG.sound.music.time; _song.song = typingShit.text; @@ -717,7 +793,7 @@ class ChartingState extends MusicBeatState } strumLine.y = getYfromStrum((Conductor.songPosition - sectionStartTime()) % (Conductor.stepCrochet * _song.notes[curSection].lengthInSteps)); - + camFollow.y = strumLine.y; if (playClaps) @@ -861,11 +937,20 @@ class ChartingState extends MusicBeatState && FlxG.mouse.y > gridBG.y && FlxG.mouse.y < gridBG.y + (GRID_SIZE * _song.notes[curSection].lengthInSteps)) { + dummyArrow.visible = true; + dummyArrow.x = Math.floor(FlxG.mouse.x / GRID_SIZE) * GRID_SIZE; - if (FlxG.keys.pressed.SHIFT) - dummyArrow.y = FlxG.mouse.y; + + var div_by:Float = GRID_SIZE / subDivisions; + + if (doSnapShit) + dummyArrow.y = Math.floor(FlxG.mouse.y / div_by) * div_by; else - dummyArrow.y = Math.floor(FlxG.mouse.y / GRID_SIZE) * GRID_SIZE; + dummyArrow.y = FlxG.mouse.y; + } + else + { + dummyArrow.visible = false; } if (FlxG.keys.justPressed.ENTER) @@ -977,11 +1062,12 @@ class ChartingState extends MusicBeatState trace(increase + " - " + curStep + " - " + (curStep + increase)); - curStep += increase; + // *Maybe a pre-snap goes here but I don't really know, I don't chart with number keys + FlxG.sound.music.time += (increase * Conductor.stepCrochet) / subDivisions; - var stepMs = curStep * Conductor.stepCrochet; + var msStep = FlxG.sound.music.time / Conductor.stepCrochet; - FlxG.sound.music.time = stepMs; + curStep = Std.int(msStep); } else FlxG.sound.music.time -= (amount * Conductor.stepCrochet * 0.4); @@ -1199,9 +1285,7 @@ class ChartingState extends MusicBeatState function updateGrid():Void { - remove(gridBG); - gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16); - add(gridBG); + addGrid(subDivisions); remove(gridBlackLine); gridBlackLine = new FlxSprite(gridBG.x + gridBG.width / 2).makeGraphic(2, Std.int(gridBG.height), FlxColor.BLACK); diff --git a/source/Note.hx b/source/Note.hx index 4116d1a..151912f 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -112,6 +112,10 @@ class Note extends FlxSprite } else { + if (PlayState.SONG.noteStyle == null) { + switch(PlayState.storyWeek) {case 6: noteTypeCheck = 'pixel';} + } else {noteTypeCheck = PlayState.SONG.noteStyle;} + switch (noteTypeCheck) { case 'pixel': diff --git a/source/PlayState.hx b/source/PlayState.hx index d4c5ad6..880195b 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -2794,16 +2794,20 @@ class PlayState extends MusicBeatState daNote.visible = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].visible; daNote.x = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].x; if (!daNote.isSustainNote) - daNote.modAngle = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].angle; - daNote.alpha = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].alpha; + daNote.angle = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].angle; + if (daNote.sustainActive) + daNote.alpha = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].alpha; + daNote.modAngle = playerStrums.members[Math.floor(Math.abs(daNote.noteData))].angle; } else if (!daNote.wasGoodHit && !daNote.modifiedByLua) { daNote.visible = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].visible; daNote.x = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].x; if (!daNote.isSustainNote) - daNote.modAngle = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].angle; - daNote.alpha = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].alpha; + daNote.angle = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].angle; + if (daNote.sustainActive) + daNote.alpha = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].alpha; + daNote.modAngle = strumLineNotes.members[Math.floor(Math.abs(daNote.noteData))].angle; } if (daNote.isSustainNote) @@ -2825,11 +2829,6 @@ class PlayState extends MusicBeatState { daNote.kill(); notes.remove(daNote, true); - if (!daNote.isParent) - { - for(i in daNote.parent.children) - i.sustainActive = false; - } } else { @@ -2840,29 +2839,33 @@ class PlayState extends MusicBeatState totalNotesHit += 1; else { - if (daNote.isSustainNote) - { - daNote.kill(); - notes.remove(daNote, true); - } - else - { + if (!daNote.isSustainNote) health -= 0.075; - vocals.volume = 0; - if (theFunne) - noteMiss(daNote.noteData, daNote); - } + vocals.volume = 0; + if (theFunne && daNote.sustainActive) + noteMiss(daNote.noteData, daNote); } } else { - health -= 0.075; + if (!daNote.isSustainNote) + health -= 0.075; vocals.volume = 0; - if (theFunne) + if (theFunne && daNote.sustainActive) noteMiss(daNote.noteData, daNote); } } + if (!daNote.wasGoodHit && daNote.isSustainNote && daNote.sustainActive && daNote.spotInLine != daNote.parent.children.length) + { + health -= 0.2; // give a health punishment for failing a LN + trace("hold fell over at " + daNote.spotInLine); + for(i in daNote.parent.children) + { + i.sustainActive = false; + } + } + daNote.visible = false; daNote.kill(); notes.remove(daNote, true); @@ -3092,7 +3095,7 @@ class PlayState extends MusicBeatState score = -300; combo = 0; misses++; - health -= 0.2; + health -= 0.35; ss = false; shits++; if (FlxG.save.data.accuracyMod == 0) @@ -3100,7 +3103,7 @@ class PlayState extends MusicBeatState case 'bad': daRating = 'bad'; score = 0; - health -= 0.06; + health -= 0.1; ss = false; bads++; if (FlxG.save.data.accuracyMod == 0) @@ -3111,12 +3114,12 @@ class PlayState extends MusicBeatState ss = false; goods++; if (health < 2) - health += 0.04; + health += 0.02; if (FlxG.save.data.accuracyMod == 0) totalNotesHit += 0.75; case 'sick': if (health < 2) - health += 0.1; + health += 0.15; if (FlxG.save.data.accuracyMod == 0) totalNotesHit += 1; sicks++; @@ -3680,7 +3683,7 @@ class PlayState extends MusicBeatState { if (!boyfriend.stunned) { - health -= 0.04; + //health -= 0.2; if (combo > 5 && gf.animOffsets.exists('sad')) { gf.playAnim('sad'); @@ -3718,8 +3721,14 @@ class PlayState extends MusicBeatState if (FlxG.save.data.accuracyMod == 1) totalNotesHit -= 1; - songScore -= 10; - + if (daNote != null) + { + if (!daNote.isSustainNote) + songScore -= 10; + } + else + songScore -= 10; + FlxG.sound.play(Paths.soundRandom('missnote', 1, 3), FlxG.random.float(0.1, 0.2)); // FlxG.sound.play(Paths.sound('missnote1'), 1, false); // FlxG.log.add('played imss note');