diff --git a/assets/data/thorns/thornsDialogue.txt b/assets/data/thorns/thornsDialogue.txt
new file mode 100644
index 000000000..5ca923953
--- /dev/null
+++ b/assets/data/thorns/thornsDialogue.txt
@@ -0,0 +1,5 @@
+:dad:Direct contact with real humans, after being trapped in here fro so long...
+:dad:and HER of all people.
+:dad:I'll make her father pay for what he's done to me and all the others,,,,
+:dad:I'll beat you and make you take my place.
+:dad:You don't mind your bodies being borrowed right? It's only fair...
\ No newline at end of file
diff --git a/assets/images/weeb/pixelUI/dialogueBox-evil.png b/assets/images/weeb/pixelUI/dialogueBox-evil.png
new file mode 100644
index 000000000..5f0a44588
Binary files /dev/null and b/assets/images/weeb/pixelUI/dialogueBox-evil.png differ
diff --git a/assets/images/weeb/pixelUI/dialogueBox-evil.xml b/assets/images/weeb/pixelUI/dialogueBox-evil.xml
new file mode 100644
index 000000000..94a1fb456
--- /dev/null
+++ b/assets/images/weeb/pixelUI/dialogueBox-evil.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.png b/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.png
new file mode 100644
index 000000000..5ed523897
Binary files /dev/null and b/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.png differ
diff --git a/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.xml b/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.xml
new file mode 100644
index 000000000..4f247aa69
--- /dev/null
+++ b/assets/images/weeb/pixelUI/dialogueBox-senpaiMad.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/weeb/spiritFaceForward.png b/assets/images/weeb/spiritFaceForward.png
new file mode 100644
index 000000000..48fc94488
Binary files /dev/null and b/assets/images/weeb/spiritFaceForward.png differ
diff --git a/assets/music/LunchboxScary.mp3 b/assets/music/LunchboxScary.mp3
new file mode 100644
index 000000000..65c3b1fca
Binary files /dev/null and b/assets/music/LunchboxScary.mp3 differ
diff --git a/assets/music/LunchboxScary.ogg b/assets/music/LunchboxScary.ogg
new file mode 100644
index 000000000..da8646a73
Binary files /dev/null and b/assets/music/LunchboxScary.ogg differ
diff --git a/assets/sounds/ANGRY.mp3 b/assets/sounds/ANGRY.mp3
new file mode 100644
index 000000000..d836fedd2
Binary files /dev/null and b/assets/sounds/ANGRY.mp3 differ
diff --git a/assets/sounds/ANGRY.ogg b/assets/sounds/ANGRY.ogg
new file mode 100644
index 000000000..d3bdf02e3
Binary files /dev/null and b/assets/sounds/ANGRY.ogg differ
diff --git a/assets/sounds/ANGRY_TEXT_BOX.mp3 b/assets/sounds/ANGRY_TEXT_BOX.mp3
new file mode 100644
index 000000000..8992eeb95
Binary files /dev/null and b/assets/sounds/ANGRY_TEXT_BOX.mp3 differ
diff --git a/assets/sounds/ANGRY_TEXT_BOX.ogg b/assets/sounds/ANGRY_TEXT_BOX.ogg
new file mode 100644
index 000000000..48069c07f
Binary files /dev/null and b/assets/sounds/ANGRY_TEXT_BOX.ogg differ
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();
}