diff --git a/art/flashFiles/RECOVER_alphabet-letters.fla b/art/flashFiles/RECOVER_alphabet-letters.fla
new file mode 100644
index 00000000..79861b59
Binary files /dev/null and b/art/flashFiles/RECOVER_alphabet-letters.fla differ
diff --git a/art/flashFiles/alphabet-letters.fla b/art/flashFiles/alphabet-letters.fla
new file mode 100644
index 00000000..4f7a1609
Binary files /dev/null and b/art/flashFiles/alphabet-letters.fla differ
diff --git a/art/flashFiles/speech_bubble_talking.fla b/art/flashFiles/speech_bubble_talking.fla
index 61442922..79861b59 100644
Binary files a/art/flashFiles/speech_bubble_talking.fla and b/art/flashFiles/speech_bubble_talking.fla differ
diff --git a/art/flashFiles/speech_bubble_talking.fla.bak b/art/flashFiles/speech_bubble_talking.fla.bak
new file mode 100644
index 00000000..61442922
Binary files /dev/null and b/art/flashFiles/speech_bubble_talking.fla.bak differ
diff --git a/assets/data/charts/milf/bump.hx b/assets/data/charts/milf/bump.hx
index 750d8770..89b4b1c8 100644
--- a/assets/data/charts/milf/bump.hx
+++ b/assets/data/charts/milf/bump.hx
@@ -1,3 +1,5 @@
+import funkin.ui.Alphabet;
+
function beatHit(curBeat:Int) {
switch(curBeat) {
case 168:
@@ -5,4 +7,10 @@ function beatHit(curBeat:Int) {
case 200:
camZoomingInterval = 4;
}
+}
+
+function createPost() {
+ trace("OH FUCK");
+ var alpha = new Alphabet(0, 0, "azertyuiopmlkjhgfdsqwxcvbnAZERTYUIOPMLKJHGFDSQWXCVBN");
+ add(alpha);
}
\ No newline at end of file
diff --git a/assets/images/menus/alphabet.png b/assets/images/menus/alphabet.png
index a649e4c3..0b270978 100644
Binary files a/assets/images/menus/alphabet.png and b/assets/images/menus/alphabet.png differ
diff --git a/assets/images/menus/alphabet.xml b/assets/images/menus/alphabet.xml
index 1ff21df5..a5c09760 100644
--- a/assets/images/menus/alphabet.xml
+++ b/assets/images/menus/alphabet.xml
@@ -2,400 +2,400 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/bf.png b/assets/images/menus/storymenu/characters/bf.png
index 4754f31f..93bc4c40 100644
Binary files a/assets/images/menus/storymenu/characters/bf.png and b/assets/images/menus/storymenu/characters/bf.png differ
diff --git a/assets/images/menus/storymenu/characters/bf.xml b/assets/images/menus/storymenu/characters/bf.xml
new file mode 100644
index 00000000..7d1a7cc0
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/bf.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/dad.png b/assets/images/menus/storymenu/characters/dad.png
index 22692902..704f8c89 100644
Binary files a/assets/images/menus/storymenu/characters/dad.png and b/assets/images/menus/storymenu/characters/dad.png differ
diff --git a/assets/images/menus/storymenu/characters/dad.xml b/assets/images/menus/storymenu/characters/dad.xml
new file mode 100644
index 00000000..b98e9fd5
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/dad.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/gf.png b/assets/images/menus/storymenu/characters/gf.png
index 9e7116ba..afce65f5 100644
Binary files a/assets/images/menus/storymenu/characters/gf.png and b/assets/images/menus/storymenu/characters/gf.png differ
diff --git a/assets/images/menus/storymenu/characters/gf.xml b/assets/images/menus/storymenu/characters/gf.xml
new file mode 100644
index 00000000..c01799e4
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/gf.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/mom.png b/assets/images/menus/storymenu/characters/mom.png
index 3c7d7c91..14501a11 100644
Binary files a/assets/images/menus/storymenu/characters/mom.png and b/assets/images/menus/storymenu/characters/mom.png differ
diff --git a/assets/images/menus/storymenu/characters/mom.xml b/assets/images/menus/storymenu/characters/mom.xml
new file mode 100644
index 00000000..27f0862b
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/mom.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/parents-christmas.png b/assets/images/menus/storymenu/characters/parents-christmas.png
index 175b46fa..f913b9b6 100644
Binary files a/assets/images/menus/storymenu/characters/parents-christmas.png and b/assets/images/menus/storymenu/characters/parents-christmas.png differ
diff --git a/assets/images/menus/storymenu/characters/parents-christmas.xml b/assets/images/menus/storymenu/characters/parents-christmas.xml
new file mode 100644
index 00000000..9d95f65d
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/parents-christmas.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/pico.png b/assets/images/menus/storymenu/characters/pico.png
index 405ee2b3..51490a72 100644
Binary files a/assets/images/menus/storymenu/characters/pico.png and b/assets/images/menus/storymenu/characters/pico.png differ
diff --git a/assets/images/menus/storymenu/characters/pico.xml b/assets/images/menus/storymenu/characters/pico.xml
new file mode 100644
index 00000000..9e6832cd
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/pico.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/senpai.png b/assets/images/menus/storymenu/characters/senpai.png
new file mode 100644
index 00000000..fd6cc464
Binary files /dev/null and b/assets/images/menus/storymenu/characters/senpai.png differ
diff --git a/assets/images/menus/storymenu/characters/senpai.xml b/assets/images/menus/storymenu/characters/senpai.xml
new file mode 100644
index 00000000..9c507684
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/senpai.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/images/menus/storymenu/characters/spooky.png b/assets/images/menus/storymenu/characters/spooky.png
new file mode 100644
index 00000000..7bd966dd
Binary files /dev/null and b/assets/images/menus/storymenu/characters/spooky.png differ
diff --git a/assets/images/menus/storymenu/characters/spooky.xml b/assets/images/menus/storymenu/characters/spooky.xml
new file mode 100644
index 00000000..fd64b00a
--- /dev/null
+++ b/assets/images/menus/storymenu/characters/spooky.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/buildnumber.txt b/buildnumber.txt
index cf5106d7..5ed13cba 100644
--- a/buildnumber.txt
+++ b/buildnumber.txt
@@ -1 +1 @@
-999
\ No newline at end of file
+1002
\ No newline at end of file
diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx
index 99654d18..fcab431a 100644
--- a/source/funkin/game/PlayState.hx
+++ b/source/funkin/game/PlayState.hx
@@ -743,7 +743,9 @@ class PlayState extends MusicBeatState
#end
}
if (FlxG.keys.justPressed.F5) {
+ Logs.trace('Reloading scripts...', WARNING, YELLOW);
scripts.reload();
+ Logs.trace('Song scripts successfully reloaded.', WARNING, GREEN);
}
// FlxG.watch.addQuick('VOL', vocals.amplitudeLeft);
diff --git a/source/funkin/menus/StoryMenuState.hx b/source/funkin/menus/StoryMenuState.hx
index 1729b08a..4717bc55 100644
--- a/source/funkin/menus/StoryMenuState.hx
+++ b/source/funkin/menus/StoryMenuState.hx
@@ -32,6 +32,7 @@ class StoryMenuState extends MusicBeatState {
persistentUpdate = persistentDraw = true;
+ // WEEK INFO
scoreText = new FunkinText(10, 10, 0, "SCORE: -", 36);
scoreText.setFormat(Paths.font("vcr.ttf"), 32);
@@ -46,6 +47,25 @@ class StoryMenuState extends MusicBeatState {
for(e in [scoreText, weekTitle, weekBG])
add(e);
+
+ // DUMBASS ARROWS
+ var assets = Paths.getSparrowAtlas('menus/storymenu/assets');
+
+ var directions = ["left", "right"];
+
+ leftArrow = new FlxSprite((FlxG.width + 400) / 2, weekBG.y + weekBG.height + 10 + 10);
+ rightArrow = new FlxSprite(FlxG.width - 10, weekBG.y + weekBG.height + 10 + 10);
+ for(k=>arrow in [leftArrow, rightArrow]) {
+ var dir = directions[k];
+
+ arrow.frames = assets;
+ arrow.animation.addByPrefix('idle', 'arrow $dir');
+ arrow.animation.addByPrefix('press', 'arrow push $dir', 24, false);
+ arrow.animation.play('idle');
+ add(arrow);
+ }
+ rightArrow.x -= rightArrow.width;
+
}
public function loadXMLs() {
@@ -110,9 +130,18 @@ class StoryMenuState extends MusicBeatState {
}
}
}
- trace(weeks);
} catch(e) {
+ Logs.trace('Failed to parse data/weeks.xml: $e', ERROR);
+ }
+ }
+ public override function update(elapsed:Float) {
+ super.update(elapsed);
+ leftArrow.animation.play(controls.LEFT ? 'press' : 'idle');
+ rightArrow.animation.play(controls.RIGHT ? 'press' : 'idle');
+
+ if (controls.BACK) {
+ FlxG.switchState(new MainMenuState());
}
}
}
diff --git a/source/funkin/options/keybinds/KeybindSetting.hx b/source/funkin/options/keybinds/KeybindSetting.hx
index 310f7fc1..d0010464 100644
--- a/source/funkin/options/keybinds/KeybindSetting.hx
+++ b/source/funkin/options/keybinds/KeybindSetting.hx
@@ -79,10 +79,16 @@ class KeybindSetting extends FlxTypedSpriteGroup {
}
public function changeKeybind(callback:Void->Void, cancelCallback:Void->Void, p2:Bool = false) {
+
+ var flicker = FlxFlicker.flicker(this, 0, Options.flashingMenu ? 0.06 : 0.15, true, false, function(t) {
+ });
+
KeybindsOptions.instance.persistentDraw = true;
KeybindsOptions.instance.persistentUpdate = false;
KeybindsOptions.instance.openSubState(new ChangeKeybindSubState(function(key:FlxKey) {
+ flicker.stop();
+ flicker.destroy();
if (p2)
Reflect.setField(Options, 'P2_$value', [option2 = key]);
else
@@ -90,6 +96,8 @@ class KeybindSetting extends FlxTypedSpriteGroup {
updateText();
callback();
}, function() {
+ flicker.stop();
+ flicker.destroy();
if (p2)
Reflect.setField(Options, 'P2_$value', [option2 = 0]);
else
diff --git a/source/funkin/options/keybinds/KeybindsOptions.hx b/source/funkin/options/keybinds/KeybindsOptions.hx
index 0af91a14..19797f64 100644
--- a/source/funkin/options/keybinds/KeybindsOptions.hx
+++ b/source/funkin/options/keybinds/KeybindsOptions.hx
@@ -1,7 +1,6 @@
package funkin.options.keybinds;
import flixel.FlxCamera;
-import flixel.effects.FlxFlicker;
import funkin.system.Controls;
import funkin.options.Options;
import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
@@ -217,13 +216,11 @@ class KeybindsOptions extends MusicBeatSubstate {
if (alphabets.members[curSelected] != null) {
canSelect = false;
CoolUtil.playMenuSFX(1);
- FlxFlicker.flicker(alphabets.members[curSelected], 0.4, Options.flashingMenu ? 0.06 : 0.15, true, false, function(t) {
- alphabets.members[curSelected].changeKeybind(function() {
- canSelect = true;
- }, function() {
- canSelect = true;
- }, p2Selected);
- });
+ alphabets.members[curSelected].changeKeybind(function() {
+ canSelect = true;
+ }, function() {
+ canSelect = true;
+ }, p2Selected);
}
}
diff --git a/source/funkin/system/Logs.hx b/source/funkin/system/Logs.hx
index df6f2de6..e2370fd3 100644
--- a/source/funkin/system/Logs.hx
+++ b/source/funkin/system/Logs.hx
@@ -1,5 +1,7 @@
package funkin.system;
+import flixel.system.debug.log.LogStyle;
+import flixel.system.frontEnds.LogFrontEnd;
import haxe.Log;
import funkin.windows.WindowsAPI;
import funkin.windows.WindowsAPI.ConsoleColor;
@@ -18,6 +20,26 @@ class Logs {
logText(Std.string(v))
], TRACE));
};
+
+ LogFrontEnd.onLogs = function(Data, Style, FireOnce) {
+ var prefix = "[FLIXEL]";
+ var color:ConsoleColor = LIGHTGRAY;
+ var level:Level = INFO;
+ if (Style == LogStyle.CONSOLE) {prefix = "> "; color = WHITE; level = INFO; }
+ if (Style == LogStyle.ERROR) {prefix = "[FLIXEL ERROR]"; color = RED; level = ERROR; }
+ if (Style == LogStyle.NORMAL) {prefix = "[FLIXEL]"; color = WHITE; level = INFO; }
+ if (Style == LogStyle.NOTICE) {prefix = "[FLIXEL NOTICE]"; color = GREEN; level = WARNING;}
+ if (Style == LogStyle.WARNING) {prefix = "[FLIXEL WARNING]"; color = YELLOW; level = WARNING;}
+
+ var d:Dynamic = Data;
+ if (!(d is Array))
+ d = [d];
+ var a:Array = d;
+ var strs = [for(e in a) Std.string(e)];
+ for(e in strs) {
+ Logs.trace('$prefix $e', level, color);
+ }
+ };
}
public static function prepareColoredTrace(text:Array, level:Level = INFO) {