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)