diff --git a/CHANGELOG.md b/CHANGELOG.md index 114615a79..9d899d9f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed +- Moved all the intro texts to its own txt file instead of being hardcoded, this allows for much easier customization. File is in the data folder, called "introText.txt", follow the format in there and you're probably good to go! ### Fixed - Cleaned up some charting on South on hard mode - Fixed some animation timings, should feel both better to play, and watch. +- Maaaybe fixed notes popping up randomly at the top of the screen for a frame or two? If this isn't fixed, uhh yall shout at me lolol ## [0.2.1.2] - 2020-11-06 ### Fixed diff --git a/Preloader.hx b/Preloader.hx index 932df79b7..c979c9c79 100644 --- a/Preloader.hx +++ b/Preloader.hx @@ -13,7 +13,7 @@ import flixel.FlxG; class Preloader extends FlxBasePreloader { - public function new(MinDisplayTime:Float=4, ?AllowedURLs:Array) + public function new(MinDisplayTime:Float=3, ?AllowedURLs:Array) { super(MinDisplayTime, AllowedURLs); } diff --git a/source/ChartingState.hx b/source/ChartingState.hx index deeb34924..1dd6eb0b6 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -374,16 +374,24 @@ class ChartingState extends MusicBeatState var updatedSection:Bool = false; + function lengthBpmBullshit():Float + { + if (_song.notes[curSection].changeBPM) + return _song.notes[curSection].lengthInSteps * (_song.notes[curSection].bpm / _song.bpm); + else + return _song.notes[curSection].lengthInSteps; + } + override function update(elapsed:Float) { Conductor.songPosition = FlxG.sound.music.time; _song.song = typingShit.text; - strumLine.y = getYfromStrum(Conductor.songPosition % (Conductor.stepCrochet * _song.notes[curSection].lengthInSteps)); + strumLine.y = getYfromStrum(Conductor.songPosition % (Conductor.stepCrochet * lengthBpmBullshit())); if (curBeat % 4 == 0) { - if (curStep > (_song.notes[curSection].lengthInSteps) * (curSection + 1)) + if (curStep > lengthBpmBullshit() * (curSection + 1)) { trace(curStep); trace((_song.notes[curSection].lengthInSteps) * (curSection + 1)); @@ -525,14 +533,14 @@ class ChartingState extends MusicBeatState vocals.pause(); var daNum:Int = 0; - var daLength:Int = 0; + var daLength:Float = 0; while (daNum <= sec) { - daLength += _song.notes[daNum].lengthInSteps; + daLength += lengthBpmBullshit(); daNum++; } - FlxG.sound.music.time = (daLength - (_song.notes[sec].lengthInSteps)) * Conductor.stepCrochet; + FlxG.sound.music.time = (daLength - lengthBpmBullshit()) * Conductor.stepCrochet; vocals.time = FlxG.sound.music.time; updateCurStep(); } @@ -620,7 +628,7 @@ class ChartingState extends MusicBeatState note.setGraphicSize(GRID_SIZE, GRID_SIZE); note.updateHitbox(); note.x = Math.floor(daNoteInfo * GRID_SIZE); - note.y = getYfromStrum(daStrumTime) % gridBG.height; + note.y = Math.floor(getYfromStrum(daStrumTime)) % gridBG.height; curRenderedNotes.add(note); @@ -691,7 +699,7 @@ class ChartingState extends MusicBeatState private function addNote():Void { - var noteStrum = Math.round(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * 16))); + var noteStrum = getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * lengthBpmBullshit())); var noteData = Math.floor(FlxG.mouse.x / GRID_SIZE); var noteSus = 0; @@ -699,7 +707,7 @@ class ChartingState extends MusicBeatState curSelectedNote = _song.notes[curSection].sectionNotes[_song.notes[curSection].sectionNotes.length - 1]; - trace(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * 16))); + trace(getStrumTime(dummyArrow.y) + (curSection * (Conductor.stepCrochet * lengthBpmBullshit()))); trace(curSection); updateGrid(); diff --git a/source/MusicBeatState.hx b/source/MusicBeatState.hx index 791cd95c7..0d9da14a5 100644 --- a/source/MusicBeatState.hx +++ b/source/MusicBeatState.hx @@ -34,7 +34,7 @@ class MusicBeatState extends FlxUIState everyStep(); updateCurStep(); - curBeat = Math.round(curStep / 4); + curBeat = Math.floor(curStep / 4); super.update(elapsed); } diff --git a/source/TitleState.hx b/source/TitleState.hx index 3fc2b4ac5..fdd89ac19 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -20,6 +20,7 @@ import flixel.tweens.FlxEase; import flixel.tweens.FlxTween; import flixel.util.FlxColor; import flixel.util.FlxTimer; +import lime.utils.Assets; class TitleState extends MusicBeatState { @@ -32,15 +33,6 @@ class TitleState extends MusicBeatState var textGroup:FlxGroup; var ngSpr:FlxSprite; - var wackyIntros:Array> = [ - ['Shoutouts to tom fulp', 'lmao'], ["Ludum dare", "extraordinaire"], ['Cyberzone', 'coming soon'], ['love to thriftman', 'swag'], - ['ULTIMATE RHYTHM GAMING', 'probably'], ['DOPE ASS GAME', 'playstation magazine'], ['in loving memory of', 'henryeyes'], ['dancin', 'forever'], - ['Ritz dx', 'rest in peace'], ['rate five', 'pls no blam'], ['rhythm gaming', 'ultimate'], ['game of the year', 'forever'], - ['you already know', 'we really out here'], ['rise and grind', 'love to luis'], ['like parappa', 'but cooler'], - ['album of the year', 'chuckie finster'], ["free gitaroo man", "with love to wandaboy"], ['better than geometry dash', 'fight me robtop'], - ['kiddbrute for president', 'vote now'], ['play dead estate', 'on newgrounds'], ['this a god damn prototype', 'we workin on it okay'], - ['WOMEN ARE real', 'this is official'], ['Nintendo Switch', 'Pre-orders now available']]; - var curWacky:Array = []; var wackyImage:FlxSprite; @@ -53,7 +45,7 @@ class TitleState extends MusicBeatState PlayerSettings.init(); - curWacky = FlxG.random.getObject(wackyIntros); + curWacky = FlxG.random.getObject(getIntroTextShit()); // DEBUG BULLSHIT @@ -76,7 +68,7 @@ class TitleState extends MusicBeatState } #if SKIP_TO_PLAYSTATE - FlxG.switchState(new StoryMenuState()); + FlxG.switchState(new ChartingState()); #else startIntro(); #end @@ -193,6 +185,21 @@ class TitleState extends MusicBeatState // credGroup.add(credTextShit); } + function getIntroTextShit():Array> + { + var fullText:String = Assets.getText('assets/data/introText.txt'); + + var firstArray:Array = fullText.split('\n'); + var swagGoodArray:Array> = []; + + for (i in firstArray) + { + swagGoodArray.push(i.split('--')); + } + + return swagGoodArray; + } + var transitioning:Bool = false; override function update(elapsed:Float)