From b0af2f66807c169d1af740944f318b0f087eb110 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Tue, 2 Feb 2021 04:54:36 -0500
Subject: [PATCH] IM PISSED IM MAD BUT WE CLOSE

---
 source/DialogueBox.hx | 57 +++++++++++++++++++++++++++++++++++++------
 source/PlayState.hx   |  7 ++++++
 2 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/source/DialogueBox.hx b/source/DialogueBox.hx
index f8dbfe647..62c1cb1f5 100644
--- a/source/DialogueBox.hx
+++ b/source/DialogueBox.hx
@@ -7,6 +7,7 @@ import flixel.graphics.frames.FlxAtlasFrames;
 import flixel.group.FlxSpriteGroup;
 import flixel.input.FlxKeyManager;
 import flixel.text.FlxText;
+import flixel.util.FlxColor;
 import flixel.util.FlxTimer;
 
 using StringTools;
@@ -37,8 +38,15 @@ class DialogueBox extends FlxSpriteGroup
 	{
 		super();
 
-		FlxG.sound.playMusic('assets/music/Lunchbox' + TitleState.soundExt, 0);
-		FlxG.sound.music.fadeIn(1, 0, 0.8);
+		switch (PlayState.SONG.song.toLowerCase())
+		{
+			case 'senpai':
+				FlxG.sound.playMusic('assets/music/Lunchbox' + TitleState.soundExt, 0);
+				FlxG.sound.music.fadeIn(1, 0, 0.8);
+			case 'thorns':
+				FlxG.sound.playMusic('assets/music/LunchboxScary' + TitleState.soundExt, 0);
+				FlxG.sound.music.fadeIn(1, 0, 0.8);
+		}
 
 		bgFade = new FlxSprite(-200, -200).makeGraphic(Std.int(FlxG.width * 1.3), Std.int(FlxG.height * 1.3), 0xFFB3DFd8);
 		bgFade.scrollFactor.set();
@@ -71,9 +79,32 @@ class DialogueBox extends FlxSpriteGroup
 		portraitRight.visible = false;
 
 		box = new FlxSprite(-20, 45);
-		box.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/pixelUI/dialogueBox-pixel.png', 'assets/images/weeb/pixelUI/dialogueBox-pixel.xml');
-		box.animation.addByPrefix('normalOpen', 'Text Box Appear', 24, false);
-		box.animation.addByIndices('normal', 'Text Box Appear', [4], "", 24);
+
+		switch (PlayState.SONG.song.toLowerCase())
+		{
+			case 'senpai':
+				box.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/pixelUI/dialogueBox-pixel.png',
+					'assets/images/weeb/pixelUI/dialogueBox-pixel.xml');
+				box.animation.addByPrefix('normalOpen', 'Text Box Appear', 24, false);
+				box.animation.addByIndices('normal', 'Text Box Appear', [4], "", 24);
+			case 'roses':
+				FlxG.sound.play('assets/sounds/ANGRY_TEXT_BOX' + TitleState.soundExt);
+
+				box.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/pixelUI/dialogueBox-senpaiMad.png',
+					'assets/images/weeb/pixelUI/dialogueBox-senpaiMad.xml');
+				box.animation.addByPrefix('normalOpen', 'SENPAI ANGRY IMPACT SPEECH', 24, false);
+				box.animation.addByIndices('normal', 'SENPAI ANGRY IMPACT SPEECH', [4], "", 24);
+
+			case 'thorns':
+				box.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/pixelUI/dialogueBox-evil.png', 'assets/images/weeb/pixelUI/dialogueBox-evil.xml');
+				box.animation.addByPrefix('normalOpen', 'Spirit Textbox spawn', 24, false);
+				box.animation.addByIndices('normal', 'Spirit Textbox spawn', [11], "", 24);
+
+				var face:FlxSprite = new FlxSprite(180, 170).loadGraphic('assets/images/weeb/spiritFaceForward.png');
+				face.setGraphicSize(Std.int(face.width * 6));
+				add(face);
+		}
+
 		box.animation.play('normalOpen');
 		box.setGraphicSize(Std.int(box.width * PlayState.daPixelZoom * 0.9));
 		box.updateHitbox();
@@ -87,7 +118,7 @@ class DialogueBox extends FlxSpriteGroup
 
 		if (!talkingRight)
 		{
-			box.flipX = true;
+			// box.flipX = true;
 		}
 
 		dropText = new FlxText(242, 502, Std.int(FlxG.width * 0.6), "", 32);
@@ -113,6 +144,16 @@ class DialogueBox extends FlxSpriteGroup
 
 	override function update(elapsed:Float)
 	{
+		// HARD CODING CUZ IM STUPDI
+		if (PlayState.SONG.song.toLowerCase() == 'roses')
+			portraitLeft.visible = false;
+		if (PlayState.SONG.song.toLowerCase() == 'thorns')
+		{
+			portraitLeft.color = FlxColor.BLACK;
+			swagDialogue.color = FlxColor.WHITE;
+			dropText.color = FlxColor.BLACK;
+		}
+
 		dropText.text = swagDialogue.text;
 
 		if (box.animation.curAnim != null)
@@ -141,7 +182,9 @@ class DialogueBox extends FlxSpriteGroup
 				if (!isEnding)
 				{
 					isEnding = true;
-					FlxG.sound.music.fadeOut(2.2, 0);
+
+					if (PlayState.SONG.song.toLowerCase() == 'senpai' || PlayState.SONG.song.toLowerCase() == 'thorns')
+						FlxG.sound.music.fadeOut(2.2, 0);
 
 					new FlxTimer().start(0.2, function(tmr:FlxTimer)
 					{
diff --git a/source/PlayState.hx b/source/PlayState.hx
index a65f9da6e..1e27b93d9 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -165,6 +165,8 @@ class PlayState extends MusicBeatState
 				dialogue = CoolUtil.coolTextFile('assets/data/senpai/senpaiDialogue.txt');
 			case 'roses':
 				dialogue = CoolUtil.coolTextFile('assets/data/roses/rosesDialogue.txt');
+			case 'thorns':
+				dialogue = CoolUtil.coolTextFile('assets/data/thorns/thornsDialogue.txt');
 		}
 
 		if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
@@ -736,6 +738,9 @@ class PlayState extends MusicBeatState
 				case 'senpai':
 					schoolIntro(doof);
 				case 'roses':
+					FlxG.sound.play('assets/sounds/ANGRY' + TitleState.soundExt);
+					schoolIntro(doof);
+				case 'thorns':
 					schoolIntro(doof);
 				default:
 					startCountdown();
@@ -749,6 +754,8 @@ class PlayState extends MusicBeatState
 					schoolIntro(doof);
 				case 'roses':
 					schoolIntro(doof);
+				case 'thorns':
+					schoolIntro(doof);
 				default:
 					startCountdown();
 			}