diff --git a/Project.xml b/Project.xml index d7ee924f5..b8f5a0c88 100644 --- a/Project.xml +++ b/Project.xml @@ -153,8 +153,8 @@ - - + + diff --git a/source/funkin/ComboCounter.hx b/source/funkin/ComboCounter.hx index a5f8b71b5..67b7a0fb3 100644 --- a/source/funkin/ComboCounter.hx +++ b/source/funkin/ComboCounter.hx @@ -31,6 +31,7 @@ class ComboCounter extends FlxTypedSpriteGroup { kill(); }; + effectStuff.setGraphicSize(Std.int(effectStuff.width * 0.7)); add(effectStuff); grpNumbers = new FlxTypedGroup(); @@ -90,7 +91,8 @@ class ComboCounter extends FlxTypedSpriteGroup while (daCombo > 0) { - var comboNumber:ComboNumber = new ComboNumber(420 - (130 * loopNum), 44 * loopNum, daCombo % 10); + var comboNumber:ComboNumber = new ComboNumber(450 - (100 * loopNum), 20 + 14 * loopNum, daCombo % 10); + comboNumber.setGraphicSize(Std.int(comboNumber.width * 0.7)); grpNumbers.add(comboNumber); add(comboNumber); diff --git a/source/funkin/StoryMenuState.hx b/source/funkin/StoryMenuState.hx index 55260b1e3..f988c462f 100644 --- a/source/funkin/StoryMenuState.hx +++ b/source/funkin/StoryMenuState.hx @@ -35,7 +35,7 @@ class StoryMenuState extends MusicBeatState ['Cocoa', 'Eggnog', 'Winter-Horrorland'], ['Senpai', 'Roses', 'Thorns'], ['Ugh', 'Guns', 'Stress'], - ['Darnell', "lit-up", "2hot"] + ['Darnell', "lit-up", "2hot", "blazin"] ]; var curDifficulty:Int = 1; diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 73e54e238..45ce056bf 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -416,6 +416,7 @@ class PlayState extends MusicBeatState add(cameraFollowPoint); comboPopUps = new PopUpStuff(); + comboPopUps.cameras = [camHUD]; add(comboPopUps); grpNoteSplashes = new FlxTypedGroup(); @@ -1813,10 +1814,22 @@ class PlayState extends MusicBeatState { FlxG.sound.music.pause(); - // BPM might change between the current and target section but IDGAF - FlxG.sound.music.time = Conductor.songPosition + (sec * 4 * (1000 * 60 / Conductor.bpm)); - - Conductor.update(); + var daBPM:Float = currentSong.bpm; + var daPos:Float = 0; + for (i in 0...(Std.int(curStep / 16 + sec))) + { + var section = SongLoad.getSong()[i]; + if (section == null) + continue; + if (section.changeBPM) + { + daBPM = SongLoad.getSong()[i].bpm; + } + daPos += 4 * (1000 * 60 / daBPM); + } + Conductor.songPosition = FlxG.sound.music.time = daPos; + Conductor.songPosition += Conductor.offset; + updateCurStep(); resyncVocals(); } #end @@ -2385,6 +2398,7 @@ class PlayState extends MusicBeatState { var animShit:ComboCounter = new ComboCounter(-100, 300, Highscore.tallies.combo); animShit.scrollFactor.set(0.6, 0.6); + animShit.cameras = [camHUD]; add(animShit); var frameShit:Float = (1 / 24) * 2; // equals 2 frames in the animation diff --git a/source/funkin/play/character/BaseCharacter.hx b/source/funkin/play/character/BaseCharacter.hx index ca708da8d..65cb18461 100644 --- a/source/funkin/play/character/BaseCharacter.hx +++ b/source/funkin/play/character/BaseCharacter.hx @@ -469,19 +469,13 @@ class BaseCharacter extends Bopper { // If the note is from the same strumline, play the sing animation. this.playSingAnimation(event.note.data.dir, false); + holdTimer = 0; } else if (!event.note.mustPress && characterType == DAD) { // If the note is from the same strumline, play the sing animation. this.playSingAnimation(event.note.data.dir, false); - } - else if (characterType == GF) - { - if (event.note.mustPress && this.comboNoteCounts.contains(event.comboCount)) - { - trace('Playing GF combo animation: combo${event.comboCount}'); - this.playAnimation('combo${event.comboCount}', true, true); - } + holdTimer = 0; } } diff --git a/source/funkin/ui/PopUpStuff.hx b/source/funkin/ui/PopUpStuff.hx index 0542ff14c..b724d7c3f 100644 --- a/source/funkin/ui/PopUpStuff.hx +++ b/source/funkin/ui/PopUpStuff.hx @@ -1,10 +1,10 @@ package funkin.ui; -import funkin.util.Constants; import flixel.FlxSprite; import flixel.group.FlxGroup.FlxTypedGroup; import flixel.tweens.FlxTween; import funkin.play.PlayState; +import funkin.util.Constants; using StringTools; @@ -20,21 +20,26 @@ class PopUpStuff extends FlxTypedGroup if (daRating == null) daRating = "good"; - var rating:FlxSprite = new FlxSprite(); + var rating:FlxSprite = new FlxSprite(0, 0); + rating.scrollFactor.set(0.2, 0.2); + + rating.zIndex = 1000; var ratingPath:String = daRating; if (PlayState.instance.currentStageId.startsWith('school')) ratingPath = "weeb/pixelUI/" + ratingPath + "-pixel"; rating.loadGraphic(Paths.image(ratingPath)); - rating.x = FlxG.width * 0.55 - 40; + rating.x = FlxG.width * 0.50; + rating.x -= FlxG.camera.scroll.x * 0.2; // make sure rating is visible lol! - if (rating.x < FlxG.camera.scroll.x) - rating.x = FlxG.camera.scroll.x; - else if (rating.x > FlxG.camera.scroll.x + FlxG.camera.width - rating.width) - rating.x = FlxG.camera.scroll.x + FlxG.camera.width - rating.width; + // if (rating.x < FlxG.camera.scroll.x) + // rating.x = FlxG.camera.scroll.x; + // else if (rating.x > FlxG.camera.scroll.x + FlxG.camera.width - rating.width) + // rating.x = FlxG.camera.scroll.x + FlxG.camera.width - rating.width; - rating.y = FlxG.camera.scroll.y + FlxG.camera.height * 0.4 - 60; + // FlxG.camera.scroll.y + + rating.y = FlxG.camera.height * 0.4 - 60; rating.acceleration.y = 550; rating.velocity.y -= FlxG.random.int(140, 175); rating.velocity.x -= FlxG.random.int(0, 10); @@ -76,14 +81,15 @@ class PopUpStuff extends FlxTypedGroup pixelShitPart2 = '-pixel'; } var comboSpr:FlxSprite = new FlxSprite().loadGraphic(Paths.image(pixelShitPart1 + 'combo' + pixelShitPart2)); - comboSpr.y = FlxG.camera.scroll.y + FlxG.camera.height * 0.4 + 80; - comboSpr.x = FlxG.width * 0.55; + comboSpr.y = FlxG.camera.height * 0.4 + 80; + comboSpr.x = FlxG.width * 0.50; + comboSpr.x -= FlxG.camera.scroll.x * 0.2; // make sure combo is visible lol! // 194 fits 4 combo digits - if (comboSpr.x < FlxG.camera.scroll.x + 194) - comboSpr.x = FlxG.camera.scroll.x + 194; - else if (comboSpr.x > FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width) - comboSpr.x = FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width; + // if (comboSpr.x < FlxG.camera.scroll.x + 194) + // comboSpr.x = FlxG.camera.scroll.x + 194; + // else if (comboSpr.x > FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width) + // comboSpr.x = FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width; comboSpr.acceleration.y = 600; comboSpr.velocity.y -= 150; diff --git a/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx b/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx index c40c9a4aa..a7c8cff5f 100644 --- a/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx +++ b/source/funkin/ui/stageBuildShit/StageOffsetSubstate.hx @@ -2,16 +2,22 @@ package funkin.ui.stageBuildShit; import flixel.FlxSprite; import flixel.input.mouse.FlxMouseEvent; +<<<<<<< HEAD import flixel.input.mouse.FlxMouseEventManager; +======= +>>>>>>> origin/feature/week-4-gameplay import flixel.math.FlxPoint; -import flixel.ui.FlxButton; import funkin.play.PlayState; +<<<<<<< HEAD import funkin.play.stage.StageData.StageDataParser; import funkin.play.stage.StageData; import haxe.ui.RuntimeComponentBuilder; import haxe.ui.containers.VBox; +======= +import funkin.play.stage.StageData; +import haxe.ui.RuntimeComponentBuilder; +>>>>>>> origin/feature/week-4-gameplay import haxe.ui.core.Component; -import openfl.Assets; import openfl.events.Event; import openfl.events.IOErrorEvent; import openfl.net.FileReference; @@ -81,11 +87,18 @@ class StageOffsetSubstate extends MusicBeatSubstate char.y = sprOld.y - (mosPosOld.y - FlxG.mouse.y); } + FlxG.mouse.visible = true; + CoolUtil.mouseCamDrag(); if (FlxG.keys.pressed.CONTROL) CoolUtil.mouseWheelZoom(); + if (FlxG.mouse.wheel != 0) + { + FlxG.camera.zoom += FlxG.mouse.wheel * 0.1; + } + if (FlxG.keys.justPressed.Y) { for (thing in PlayState.instance.currentStage)