From 36361ff0a40c52386a6a06663c363b6f274f9951 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Fri, 6 Nov 2020 02:21:29 -0800
Subject: [PATCH] Seperated tutorials

---
 source/FreeplayState.hx  | 12 ++++++++++++
 source/MenuItem.hx       | 13 +++++--------
 source/StoryMenuState.hx | 18 +++++++-----------
 source/TitleState.hx     |  3 +++
 4 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx
index f906e8f07..6d010f2a5 100644
--- a/source/FreeplayState.hx
+++ b/source/FreeplayState.hx
@@ -17,6 +17,7 @@ class FreeplayState extends MusicBeatState
 
 	var selector:FlxText;
 	var curSelected:Int = 0;
+	var curDifficulty:Int = 1;
 
 	var scoreText:FlxText;
 	var lerpScore:Int = 0;
@@ -77,6 +78,7 @@ class FreeplayState extends MusicBeatState
 		add(scoreText);
 
 		changeSelection();
+		changeDiff();
 
 		// FlxG.sound.playMusic('assets/music/title' + TitleState.soundExt, 0);
 		// FlxG.sound.music.fadeIn(2, 0, 0.8);
@@ -143,6 +145,16 @@ class FreeplayState extends MusicBeatState
 		}
 	}
 
+	function changeDiff(change:Int = 0)
+	{
+		curDifficulty += change;
+
+		if (curDifficulty < 0)
+			curDifficulty = 2;
+		if (curDifficulty > 2)
+			curDifficulty = 0;
+	}
+
 	function changeSelection(change:Int = 0)
 	{
 		NGio.logEvent('Fresh');
diff --git a/source/MenuItem.hx b/source/MenuItem.hx
index 5aae4ee28..e5bf62c9e 100644
--- a/source/MenuItem.hx
+++ b/source/MenuItem.hx
@@ -10,7 +10,7 @@ class MenuItem extends FlxSpriteGroup
 	public var targetY:Float = 0;
 	public var week:FlxSprite;
 
-	public function new(x:Float, y:Float, weekNum:Int = 0, unlocked:Bool = false)
+	public function new(x:Float, y:Float, weekNum:Int = 0)
 	{
 		super(x, y);
 
@@ -18,18 +18,15 @@ class MenuItem extends FlxSpriteGroup
 
 		week = new FlxSprite();
 		week.frames = tex;
-		week.animation.addByPrefix('week0', "WEEK1 select", 24);
-		week.animation.addByPrefix('week1', "week2 select", 24);
+		// TUTORIAL IS WEEK 0
+		week.animation.addByPrefix('week0', 'tutorial selected', 24);
+		week.animation.addByPrefix('week1', "WEEK1 select", 24);
+		week.animation.addByPrefix('week2', "week2 select", 24);
 		add(week);
 
 		week.animation.play('week' + weekNum);
 		week.animation.pause();
 		week.updateHitbox();
-
-		if (!unlocked)
-		{
-			week.alpha = 0.6;
-		}
 	}
 
 	override function update(elapsed:Float)
diff --git a/source/StoryMenuState.hx b/source/StoryMenuState.hx
index ca6ba28f7..a12af46f0 100644
--- a/source/StoryMenuState.hx
+++ b/source/StoryMenuState.hx
@@ -16,12 +16,12 @@ class StoryMenuState extends MusicBeatState
 {
 	var scoreText:FlxText;
 
-	var weekData:Array<Dynamic> = [['Tutorial', 'Bopeebo', 'Fresh', 'Dadbattle'], ['Spookeez', 'South']];
+	var weekData:Array<Dynamic> = [['Tutorial'], ['Bopeebo', 'Fresh', 'Dadbattle'], ['Spookeez', 'South']];
 	var curDifficulty:Int = 1;
 
-	public static var weekUnlocked:Array<Bool> = [true, false];
+	public static var weekUnlocked:Array<Bool> = [true, true, false];
 
-	var weekCharacters:Array<Dynamic> = [['dad', 'bf', 'gf'], ['spooky', 'bf', 'gf']];
+	var weekCharacters:Array<Dynamic> = [['dad', 'bf', 'gf'], ['dad', 'bf', 'gf'], ['spooky', 'bf', 'gf']];
 	var curWeek:Int = 0;
 
 	var txtTracklist:FlxText;
@@ -68,12 +68,7 @@ class StoryMenuState extends MusicBeatState
 
 		for (i in 0...weekData.length)
 		{
-			var unlocked:Bool = true;
-
-			if (i == 1)
-				unlocked = false;
-
-			var weekThing:MenuItem = new MenuItem(0, yellowBG.y + yellowBG.height + 10, i, unlocked);
+			var weekThing:MenuItem = new MenuItem(0, yellowBG.y + yellowBG.height + 10, i);
 			weekThing.y += ((weekThing.height + 20) * i);
 			weekThing.targetY = i;
 			grpWeekText.add(weekThing);
@@ -82,6 +77,7 @@ class StoryMenuState extends MusicBeatState
 			weekThing.antialiasing = true;
 			// weekThing.updateHitbox();
 
+			// Needs an offset thingie
 			if (!weekUnlocked[i])
 			{
 				var lock:FlxSprite = new FlxSprite(weekThing.width + 10 + weekThing.x);
@@ -120,7 +116,7 @@ class StoryMenuState extends MusicBeatState
 		difficultySelectors = new FlxGroup();
 		add(difficultySelectors);
 
-		leftArrow = new FlxSprite(grpWeekText.members[0].x + 370, grpWeekText.members[0].y + 10);
+		leftArrow = new FlxSprite(grpWeekText.members[0].x + grpWeekText.members[0].width + 10, grpWeekText.members[0].y + 10);
 		leftArrow.frames = ui_tex;
 		leftArrow.animation.addByPrefix('idle', "arrow left");
 		leftArrow.animation.addByPrefix('press', "arrow push left");
@@ -303,7 +299,7 @@ class StoryMenuState extends MusicBeatState
 		for (item in grpWeekText.members)
 		{
 			item.targetY = bullShit - curWeek;
-			if (item.targetY == Std.int(0))
+			if (item.targetY == Std.int(0) && weekUnlocked[curWeek])
 				item.alpha = 1;
 			else
 				item.alpha = 0.6;
diff --git a/source/TitleState.hx b/source/TitleState.hx
index 003563583..b3d81eac7 100644
--- a/source/TitleState.hx
+++ b/source/TitleState.hx
@@ -68,6 +68,9 @@ class TitleState extends MusicBeatState
 		if (FlxG.save.data.weekUnlocked != null)
 		{
 			StoryMenuState.weekUnlocked = FlxG.save.data.weekUnlocked;
+
+			if (StoryMenuState.weekUnlocked.length < 3)
+				StoryMenuState.weekUnlocked.insert(0, true);
 		}
 
 		#if SKIP_TO_PLAYSTATE