diff --git a/source/Character.hx b/source/Character.hx index 51d683081..8565945e4 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -96,6 +96,25 @@ class Character extends FlxSprite addOffset("singDOWN", -50, -130); playAnim('danceRight'); + case 'mom': + tex = FlxAtlasFrames.fromSparrow(AssetPaths.Mom_Assets__png, AssetPaths.Mom_Assets__xml); + frames = tex; + + animation.addByPrefix('idle', "Mom Idle", 24, false); + animation.addByPrefix('singUP', "Mom Up Pose", 24, false); + animation.addByPrefix('singDOWN', "MOM DOWN POSE", 24, false); + animation.addByPrefix('singLEFT', 'Mom Left Pose', 24, false); + // ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT + // CUZ DAVE IS DUMB! + animation.addByPrefix('singRIGHT', 'Mom Pose Left', 24, false); + + playAnim('idle'); + + addOffset('idle'); + addOffset("singUP", 14, 71); + addOffset("singRIGHT", 10, -60); + addOffset("singLEFT", 250, -23); + addOffset("singDOWN", 20, -160); case 'monster': tex = FlxAtlasFrames.fromSparrow(AssetPaths.Monster_Assets__png, AssetPaths.Monster_Assets__xml); frames = tex; @@ -229,6 +248,8 @@ class Character extends FlxSprite { switch (curCharacter) { + case 'mom': + playAnim('idle'); case 'bf': case 'gf': diff --git a/source/ChartingState.hx b/source/ChartingState.hx index 41ed16e9c..cc93694e8 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -183,7 +183,7 @@ class ChartingState extends MusicBeatState stepperBPM.value = Conductor.bpm; stepperBPM.name = 'song_bpm'; - var characters:Array = ["bf", 'dad', 'gf', 'spooky', 'monster', 'pico']; + var characters:Array = ["bf", 'dad', 'gf', 'spooky', 'monster', 'pico', 'mom']; var player1DropDown = new FlxUIDropDownMenu(10, 100, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(character:String) { diff --git a/source/PlayState.hx b/source/PlayState.hx index 5541e5789..b16591b10 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -351,6 +351,7 @@ class PlayState extends MusicBeatState } var startTimer:FlxTimer; + var perfectMode:Bool = false; function startCountdown():Void { @@ -656,6 +657,16 @@ class PlayState extends MusicBeatState override public function update(elapsed:Float) { + #if !debug + perfectMode = false; + #end + + if (FlxG.keys.justPressed.NINE) + { + perfectMode = !perfectMode; + trace('PERFECT MODE! ' + perfectMode); + } + switch (curStage) { case 'philly': @@ -757,6 +768,8 @@ class PlayState extends MusicBeatState { camFollow.setPosition(dad.getMidpoint().x + 150, dad.getMidpoint().y - 100); // camFollow.setPosition(lucky.getMidpoint().x - 120, lucky.getMidpoint().y + 210); + if (dad.curCharacter == 'mom') + camFollow.y = dad.getMidpoint().y; vocals.volume = 1; if (SONG.song.toLowerCase() == 'tutorial') @@ -1150,6 +1163,9 @@ class PlayState extends MusicBeatState { for (daNote in possibleNotes) { + if (perfectMode) + noteCheck(true, daNote); + switch (daNote.noteData) { case 2: // NOTES YOU JUST PRESSED @@ -1497,6 +1513,13 @@ class PlayState extends MusicBeatState } // FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM); + // HARDCODING FOR MILF ZOOMS! + if (curSong.toLowerCase() == 'milf' && curBeat >= 168 && curBeat <= 200 && camZooming && FlxG.camera.zoom < 1.35) + { + FlxG.camera.zoom += 0.015; + camHUD.zoom += 0.03; + } + if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0) { FlxG.camera.zoom += 0.015;