diff --git a/Project.xml b/Project.xml
index b5bf7197f3..80c962c908 100644
--- a/Project.xml
+++ b/Project.xml
@@ -54,9 +54,12 @@
-
-
-
+
+
diff --git a/assets/fonts/pixel.otf b/assets/fonts/pixel.otf
new file mode 100644
index 0000000000..91ddd05c0b
Binary files /dev/null and b/assets/fonts/pixel.otf differ
diff --git a/assets/images/weeb/pixelUI/dialogueBox-pixel.png b/assets/images/weeb/pixelUI/dialogueBox-pixel.png
new file mode 100644
index 0000000000..c7d88ff5f2
Binary files /dev/null and b/assets/images/weeb/pixelUI/dialogueBox-pixel.png differ
diff --git a/assets/images/weeb/pixelUI/dialogueBox-pixel.xml b/assets/images/weeb/pixelUI/dialogueBox-pixel.xml
new file mode 100644
index 0000000000..e0a1070a56
--- /dev/null
+++ b/assets/images/weeb/pixelUI/dialogueBox-pixel.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/sounds/pixelText.mp3 b/assets/sounds/pixelText.mp3
new file mode 100644
index 0000000000..981d310fcd
Binary files /dev/null and b/assets/sounds/pixelText.mp3 differ
diff --git a/assets/sounds/pixelText.ogg b/assets/sounds/pixelText.ogg
new file mode 100644
index 0000000000..6f3b8f24e9
Binary files /dev/null and b/assets/sounds/pixelText.ogg differ
diff --git a/source/DialogueBox.hx b/source/DialogueBox.hx
index 17f3d616d9..9be4fd4827 100644
--- a/source/DialogueBox.hx
+++ b/source/DialogueBox.hx
@@ -2,38 +2,99 @@ package;
import flixel.FlxG;
import flixel.FlxSprite;
+import flixel.addons.text.FlxTypeText;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxSpriteGroup;
import flixel.input.FlxKeyManager;
+import flixel.text.FlxText;
+import flixel.util.FlxTimer;
+
+using StringTools;
class DialogueBox extends FlxSpriteGroup
{
var box:FlxSprite;
+ var curCharacter:String = '';
+
var dialogue:Alphabet;
var dialogueList:Array = [];
+ // SECOND DIALOGUE FOR THE PIXEL SHIT INSTEAD???
+ var swagDialogue:FlxTypeText;
+
+ var dropText:FlxText;
+
public var finishThing:Void->Void;
+ var portraitLeft:FlxSprite;
+ var portraitRight:FlxSprite;
+
public function new(talkingRight:Bool = true, ?dialogueList:Array)
{
super();
- box = new FlxSprite(40);
- box.frames = FlxAtlasFrames.fromSparrow('assets/images/speech_bubble_talking.png', 'assets/images/speech_bubble_talking.xml');
- box.animation.addByPrefix('normalOpen', 'Speech Bubble Normal Open', 24, false);
- box.animation.addByPrefix('normal', 'speech bubble normal', 24);
+ var bgFade:FlxSprite = new FlxSprite(-200, -200).makeGraphic(Std.int(FlxG.width * 1.3), Std.int(FlxG.height * 1.3), 0xFFB3DFd8);
+ bgFade.scrollFactor.set();
+ bgFade.alpha = 0;
+ add(bgFade);
+
+ new FlxTimer().start(0.83, function(tmr:FlxTimer)
+ {
+ bgFade.alpha += (1 / 5) * 0.7;
+ if (bgFade.alpha > 0.7)
+ bgFade.alpha = 0.7;
+ }, 5);
+
+ portraitLeft = new FlxSprite(-20, 40);
+ portraitLeft.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/senpaiPortrait.png', 'assets/images/weeb/senpaiPortrait.xml');
+ portraitLeft.animation.addByPrefix('enter', 'Senpai Portrait Enter', 24, false);
+ portraitLeft.setGraphicSize(Std.int(portraitLeft.width * PlayState.daPixelZoom * 0.9));
+ portraitLeft.updateHitbox();
+ portraitLeft.scrollFactor.set();
+ add(portraitLeft);
+ portraitLeft.visible = false;
+
+ portraitRight = new FlxSprite(0, 40);
+ portraitRight.frames = FlxAtlasFrames.fromSparrow('assets/images/weeb/bfPortrait.png', 'assets/images/weeb/bfPortrait.xml');
+ portraitRight.animation.addByPrefix('enter', 'Boyfriend portrait enter', 24, false);
+ portraitRight.setGraphicSize(Std.int(portraitRight.width * PlayState.daPixelZoom * 0.9));
+ portraitRight.updateHitbox();
+ portraitRight.scrollFactor.set();
+ add(portraitRight);
+ 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);
box.animation.play('normalOpen');
+ box.setGraphicSize(Std.int(box.width * PlayState.daPixelZoom * 0.9));
+ box.updateHitbox();
add(box);
+ box.screenCenter(X);
+ portraitLeft.screenCenter(X);
+
if (!talkingRight)
{
box.flipX = true;
}
+ dropText = new FlxText(242, 502, Std.int(FlxG.width * 0.6), "", 32);
+ dropText.font = 'Pixel Arial 11 Bold';
+ dropText.color = 0xFFD89494;
+ add(dropText);
+
+ swagDialogue = new FlxTypeText(240, 500, Std.int(FlxG.width * 0.6), "", 32);
+ swagDialogue.font = 'Pixel Arial 11 Bold';
+ swagDialogue.color = 0xFF3F2021;
+ swagDialogue.sounds = [FlxG.sound.load('assets/sounds/pixelText' + TitleState.soundExt, 0.6)];
+ add(swagDialogue);
+
dialogue = new Alphabet(0, 80, "", false, true);
// dialogue.x = 90;
- add(dialogue);
+ // add(dialogue);
this.dialogueList = dialogueList;
}
@@ -43,6 +104,8 @@ class DialogueBox extends FlxSpriteGroup
override function update(elapsed:Float)
{
+ dropText.text = swagDialogue.text;
+
if (box.animation.curAnim != null)
{
if (box.animation.curAnim.name == 'normalOpen' && box.animation.curAnim.finished)
@@ -79,8 +142,39 @@ class DialogueBox extends FlxSpriteGroup
function startDialogue():Void
{
- var theDialog:Alphabet = new Alphabet(0, 70, dialogueList[0], false, true);
- dialogue = theDialog;
- add(theDialog);
+ cleanDialog();
+
+ // var theDialog:Alphabet = new Alphabet(0, 70, dialogueList[0], false, true);
+ // dialogue = theDialog;
+ // add(theDialog);
+
+ // swagDialogue.text = ;
+ swagDialogue.resetText(dialogueList[0]);
+ swagDialogue.start(0.02, true);
+
+ switch (curCharacter)
+ {
+ case 'dad':
+ portraitRight.visible = false;
+ if (!portraitLeft.visible)
+ {
+ portraitLeft.visible = true;
+ portraitLeft.animation.play('enter');
+ }
+ case 'bf':
+ portraitLeft.visible = false;
+ if (!portraitRight.visible)
+ {
+ portraitRight.visible = true;
+ portraitRight.animation.play('enter');
+ }
+ }
+ }
+
+ function cleanDialog():Void
+ {
+ var splitName:Array = dialogueList[0].split(":");
+ curCharacter = splitName[1];
+ dialogueList[0] = dialogueList[0].substr(splitName[1].length + 2).trim();
}
}
diff --git a/source/PlayState.hx b/source/PlayState.hx
index 6a336ec9c2..8eb75aa4e3 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -148,6 +148,12 @@ class PlayState extends MusicBeatState
"If you can beat me here...",
"Only then I will even CONSIDER letting you\ndate my daughter!"
];
+ case 'senpai':
+ dialogue = [
+ ':dad:Ah, a new fair maiden has come in search of true love!',
+ ":dad:A serenade between gentlemen shall decide where her beautiful heart shall reside.",
+ ":bf:Beep bo bop"
+ ];
}
if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
@@ -511,7 +517,7 @@ class PlayState extends MusicBeatState
var doof:DialogueBox = new DialogueBox(false, dialogue);
// doof.x += 70;
- doof.y = FlxG.height * 0.5;
+ // doof.y = FlxG.height * 0.5;
doof.scrollFactor.set();
doof.finishThing = startCountdown;
@@ -619,7 +625,9 @@ class PlayState extends MusicBeatState
});
});
case 'senpai':
- schoolIntro();
+ schoolIntro(doof);
+ case 'roses':
+ schoolIntro(doof);
default:
startCountdown();
}
@@ -629,7 +637,7 @@ class PlayState extends MusicBeatState
switch (curSong.toLowerCase())
{
case 'senpai':
- schoolIntro();
+ schoolIntro(doof);
default:
startCountdown();
}
@@ -638,7 +646,7 @@ class PlayState extends MusicBeatState
super.create();
}
- function schoolIntro():Void
+ function schoolIntro(?dialogueBox:DialogueBox):Void
{
var black:FlxSprite = new FlxSprite(-100, -100).makeGraphic(FlxG.width * 2, FlxG.height * 2, FlxColor.BLACK);
black.scrollFactor.set();
@@ -647,8 +655,6 @@ class PlayState extends MusicBeatState
new FlxTimer().start(0.3, function(tmr:FlxTimer)
{
black.alpha -= 0.15;
- if (!startedCountdown)
- startCountdown();
if (black.alpha > 0)
{
@@ -656,6 +662,13 @@ class PlayState extends MusicBeatState
}
else
{
+ if (dialogueBox != null)
+ {
+ add(dialogueBox);
+ }
+ else
+ startCountdown();
+
remove(black);
}
});