From d20573b76cffb076e1633d3e2b776469f0bbbc96 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Tue, 19 Jan 2021 21:44:09 -0500
Subject: [PATCH] more christmas stuff

---
 source/Character.hx     | 31 ++++++++++++++++++++++++++++++-
 source/ChartingState.hx |  4 +---
 source/HealthIcon.hx    |  1 +
 source/PlayState.hx     |  2 +-
 4 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/source/Character.hx b/source/Character.hx
index eb85b3438..f5dc9f1fe 100644
--- a/source/Character.hx
+++ b/source/Character.hx
@@ -271,6 +271,33 @@ class Character extends FlxSprite
 				addOffset('deathConfirm', 37, 69);
 				addOffset('scared', -4);
 
+				flipX = true;
+
+			case 'bf-christmas':
+				var tex = FlxAtlasFrames.fromSparrow('assets/images/christmas/bfChristmas.png', 'assets/images/christmas/bfChristmas.xml');
+				frames = tex;
+				animation.addByPrefix('idle', 'BF idle dance', 24, false);
+				animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false);
+				animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false);
+				animation.addByPrefix('singRIGHT', 'BF NOTE RIGHT0', 24, false);
+				animation.addByPrefix('singDOWN', 'BF NOTE DOWN0', 24, false);
+				animation.addByPrefix('singUPmiss', 'BF NOTE UP MISS', 24, false);
+				animation.addByPrefix('singLEFTmiss', 'BF NOTE LEFT MISS', 24, false);
+				animation.addByPrefix('singRIGHTmiss', 'BF NOTE RIGHT MISS', 24, false);
+				animation.addByPrefix('singDOWNmiss', 'BF NOTE DOWN MISS', 24, false);
+				animation.addByPrefix('hey', 'BF HEY', 24, false);
+
+				addOffset('idle', -5);
+				addOffset("singUP", -29, 27);
+				addOffset("singRIGHT", -38, -7);
+				addOffset("singLEFT", 12, -6);
+				addOffset("singDOWN", -10, -50);
+				addOffset("singUPmiss", -29, 27);
+				addOffset("singRIGHTmiss", -30, 21);
+				addOffset("singLEFTmiss", 12, 24);
+				addOffset("singDOWNmiss", -11, -19);
+				addOffset("hey", 7, 4);
+
 				flipX = true;
 			case 'bf-car':
 				var tex = FlxAtlasFrames.fromSparrow('assets/images/bfCar.png', 'assets/images/bfCar.xml');
@@ -345,7 +372,7 @@ class Character extends FlxSprite
 			flipX = !flipX;
 
 			// Doesn't flip for BF, since his are already in the right place???
-			if (character != 'bf' && character != 'bf-car')
+			if (character != 'bf' && character != 'bf-car' && character != 'bf-christmas')
 			{
 				// var animArray
 				var oldRight = animation.getByName('singRIGHT').frames;
@@ -410,6 +437,8 @@ class Character extends FlxSprite
 					playAnim('idle');
 				case 'bf':
 					playAnim('idle');
+				case 'bf-christmas':
+					playAnim('idle');
 				case 'bf-car':
 					playAnim('idle');
 				case 'gf':
diff --git a/source/ChartingState.hx b/source/ChartingState.hx
index 48b693298..75fc9e254 100644
--- a/source/ChartingState.hx
+++ b/source/ChartingState.hx
@@ -225,9 +225,7 @@ class ChartingState extends MusicBeatState
 		stepperBPM.value = Conductor.bpm;
 		stepperBPM.name = 'song_bpm';
 
-		var characters:Array<String> = [
-			"bf", 'dad', 'gf', 'spooky', 'monster', 'pico', 'mom', 'mom-car', 'bf-car', 'parents-christmas', 'monster-christmas'
-		];
+		var characters:Array<String> = CoolUtil.coolTextFile('assets/data/characterList.txt');
 
 		for (i in Assets.getText('assets/images/custom_chars/charlist.txt').split('\n'))
 		{
diff --git a/source/HealthIcon.hx b/source/HealthIcon.hx
index e519e6974..eb6db8a06 100644
--- a/source/HealthIcon.hx
+++ b/source/HealthIcon.hx
@@ -12,6 +12,7 @@ class HealthIcon extends FlxSprite
 		antialiasing = true;
 		animation.add('bf', [0, 1], 0, false, isPlayer);
 		animation.add('bf-car', [0, 1], 0, false, isPlayer);
+		animation.add('bf-christmas', [0, 1], 0, false, isPlayer);
 		animation.add('spooky', [2, 3], 0, false, isPlayer);
 		animation.add('pico', [4, 5], 0, false, isPlayer);
 		animation.add('mom', [6, 7], 0, false, isPlayer);
diff --git a/source/PlayState.hx b/source/PlayState.hx
index 775d2c15a..6808e45de 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -289,7 +289,7 @@ class PlayState extends MusicBeatState
 			tree.scrollFactor.set(0.85, 0.85);
 			add(tree);
 
-			bottomBoppers = new FlxSprite(-280, 220);
+			bottomBoppers = new FlxSprite(-300, 220);
 			bottomBoppers.frames = FlxAtlasFrames.fromSparrow('assets/images/christmas/bottomBop.png', 'assets/images/christmas/bottomBop.xml');
 			bottomBoppers.animation.addByPrefix('bop', 'Bottom Level Boppers', 24, false);
 			bottomBoppers.antialiasing = true;