diff --git a/assets/images/GF_assets.png b/assets/images/GF_assets.png
new file mode 100644
index 000000000..cd140156c
Binary files /dev/null and b/assets/images/GF_assets.png differ
diff --git a/assets/images/GF_assets.xml b/assets/images/GF_assets.xml
new file mode 100644
index 000000000..366cec7a6
--- /dev/null
+++ b/assets/images/GF_assets.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/PlayState.hx b/source/PlayState.hx
index 0ae64ca1c..8b99a9dc1 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -8,6 +8,7 @@ import flixel.addons.display.FlxGridOverlay;
import flixel.graphics.atlas.FlxAtlas;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxGroup.FlxTypedGroup;
+import flixel.math.FlxMath;
import flixel.system.FlxSound;
import flixel.text.FlxText;
import flixel.tweens.FlxTween;
@@ -38,6 +39,7 @@ class PlayState extends FlxState
private var boyfriend:Boyfriend;
private var notes:FlxTypedGroup;
+ private var unspawnNotes:Array = [];
private var strumLine:FlxSprite;
private var curSection:Int = 0;
@@ -49,6 +51,9 @@ class PlayState extends FlxState
private var strumLineNotes:FlxTypedGroup;
private var playerStrums:FlxTypedGroup;
+ private var camZooming:Bool = false;
+ private var curSong:String = "";
+
override public function create()
{
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.bg__png);
@@ -106,6 +111,8 @@ class PlayState extends FlxState
Conductor.changeBPM(songData.bpm);
FlxG.sound.playMusic("assets/music/" + songData.song + "_Inst.mp3");
+ curSong = songData.song;
+
vocals = new FlxSound().loadEmbedded("assets/music/" + songData.song + "_Voices.mp3");
FlxG.sound.list.add(vocals);
vocals.play();
@@ -149,14 +156,16 @@ class PlayState extends FlxState
+ ((Conductor.crochet * coolSection) * playerCounter);
var oldNote:Note;
- if (notes.members.length > 0)
- oldNote = notes.members[notes.members.length - 1];
+ if (unspawnNotes.length > 0)
+ oldNote = unspawnNotes[Std.int(unspawnNotes.length - 1)];
else
oldNote = null;
var swagNote:Note = new Note(daStrumTime, songNotes, oldNote);
swagNote.scrollFactor.set(0, 0);
+ unspawnNotes.push(swagNote);
+
swagNote.x += ((FlxG.width / 2) * playerCounter); // general offset
if (playerCounter == 1) // is the player
@@ -167,8 +176,6 @@ class PlayState extends FlxState
{
sectionScores[0][daBeats] += swagNote.noteScore;
}
-
- notes.add(swagNote);
}
daStep += 1;
@@ -181,8 +188,17 @@ class PlayState extends FlxState
daBeats += 1;
}
+ trace(unspawnNotes.length);
playerCounter += 1;
}
+
+ unspawnNotes.sort(sortByShit);
+ trace('FIRST NOTE ' + unspawnNotes[0]);
+ }
+
+ function sortByShit(Obj1:Note, Obj2:Note):Int
+ {
+ return FlxSort.byValues(FlxSort.ASCENDING, Obj1.strumTime, Obj2.strumTime);
}
var sortedNotes:Bool = false;
@@ -275,15 +291,37 @@ class PlayState extends FlxState
camFollow.setPosition(boyfriend.getGraphicMidpoint().x - 100, boyfriend.getGraphicMidpoint().y - 100);
}
+ if (camZooming)
+ {
+ FlxG.camera.zoom = FlxMath.lerp(1.05, FlxG.camera.zoom, 0.96);
+ }
+
if (playerTurn < 4)
{
sectionScored = false;
}
- FlxG.watch.addQuick("beatShit", playerTurn);
+ FlxG.watch.addQuick("beatShit", totalBeats);
+ if (curSong == 'Fresh' && totalBeats == 16)
+ {
+ camZooming = true;
+ }
everyBeat();
everyStep();
+ // better streaming of shit
+
+ FlxG.watch.addQuick('spsa', unspawnNotes[0].strumTime);
+ FlxG.watch.addQuick('weed', Conductor.songPosition);
+
+ if (unspawnNotes[0].strumTime - Conductor.songPosition < 5 * 1000)
+ {
+ var dunceNote:Note = unspawnNotes[0];
+ notes.add(dunceNote);
+
+ var index:Int = unspawnNotes.indexOf(dunceNote);
+ unspawnNotes.splice(index, 1);
+ }
notes.forEachAlive(function(daNote:Note)
{
@@ -488,7 +526,7 @@ class PlayState extends FlxState
if (!boyfriend.stunned)
{
trace('badNote');
- FlxG.sound.play('assets/sounds/missnote' + FlxG.random.int(1, 3) + ".mp3", 0.2);
+ FlxG.sound.play('assets/sounds/missnote' + FlxG.random.int(1, 3) + ".mp3", FlxG.random.float(0.05, 0.2));
boyfriend.stunned = true;
@@ -581,6 +619,9 @@ class PlayState extends FlxState
lastBeat += Conductor.crochet;
canHitText.text += "\nWEED\nWEED";
+ if (camZooming && FlxG.camera.zoom < 1.35 && totalBeats % 4 == 0)
+ FlxG.camera.zoom += 0.025;
+
totalBeats += 1;
dad.animation.play('idle');